суббота, 11 января 2014 г.

Воспроизведение wav на Arduino

Для дальнейшей работы мне понадобится воспроизвести заранее записанный звук на Adruino. Сделал по этому примеру, там есть информация и о том, как сконвертировать свой звук в нужный формат, я это пока не стал делать. Рингтон взял из архива "PWM Sound.rar". Вот что получилось.



Ниже код, я его слепил в 1 файл.


/*
 * speaker_pcm
 *
 * Plays 8-bit PCM audio on pin 11 using pulse-width modulation (PWM).
 * For Arduino with Atmega168 at 16 MHz.
 *
 * Uses two timers. The first changes the sample value 8000 times a second.
 * The second holds pin 11 high for 0-255 ticks out of a 256-tick cycle,
 * depending on sample value. The second timer repeats 62500 times per second
 * (16000000 / 256), much faster than the playback rate (8000 Hz), so
 * it almost sounds halfway decent, just really quiet on a PC speaker.
 *
 * Takes over Timer 1 (16-bit) for the 8000 Hz timer. This breaks PWM
 * (analogWrite()) for Arduino pins 9 and 10. Takes Timer 2 (8-bit)
 * for the pulse width modulation, breaking PWM for pins 11 & 3.
 *
 * References:
 *     http://www.uchobby.com/index.php/2007/11/11/arduino-sound-part-1/
 *     http://www.atmel.com/dyn/resources/prod_documents/doc2542.pdf
 *     http://www.evilmadscientist.com/article.php/avrdac
 *     http://gonium.net/md/2006/12/27/i-will-think-before-i-code/
 *     http://fly.cc.fer.hr/GDM/articles/sndmus/speaker2.html
 *     http://www.gamedev.net/reference/articles/article442.asp
 *
 * Michael Smith <michael@hurts.ca>
 */

#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

#define SAMPLE_RATE 8000

/*
 * The audio data needs to be unsigned, 8-bit, 8000 Hz, and small enough
 * to fit in flash. 10000-13000 samples is about the limit.
 *
 * sounddata.h should look like this:
 *     const int sounddata_length=10000;
 *     const unsigned char sounddata_data[] PROGMEM = { ..... };
 *
 * You can use wav2c from GBA CSS:
 *     http://thieumsweb.free.fr/english/gbacss.html
 * Then add "PROGMEM" in the right place. I hacked it up to dump the samples
 * as unsigned rather than signed, but it shouldn't matter.
 *
 * http://musicthing.blogspot.com/2005/05/tiny-music-makers-pt-4-mac-startup.html
 * mplayer -ao pcm macstartup.mp3
 * sox audiodump.wav -v 1.32 -c 1 -r 8000 -u -1 macstartup-8000.wav
 * sox macstartup-8000.wav macstartup-cut.wav trim 0 10000s
 * wav2c macstartup-cut.wav sounddata.h sounddata
 *
 * (starfox) nb. under sox 12.18 (distributed in CentOS 5), i needed to run
 * the following command to convert my wav file to the appropriate format:
 * sox audiodump.wav -c 1 -r 8000 -u -b macstartup-8000.wav
 */


// sounddata sound made by wav2c
// (wav2c modified to use unsigned samples)

/* const int sounddata_sampleRate=8000; */
const int sounddata_length=11531;

const unsigned char sounddata_data[] PROGMEM = {
0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7C, 0x7E, 0x78, 0x69, 0x5E, 0x6A, 
0x87, 0x98, 0x9E, 0x8C, 0x7C, 0x8C, 0x98, 0xBA, 0x9C, 0x9E, 0x78, 0x81, 0x85, 0x93, 0x8C, 0x6C, 0x65, 0x47, 0x7C, 0x5C, 
0x88, 0x57, 0x6C, 0x60, 0x75, 0x8E, 0x81, 0x9A, 0x6E, 0xA3, 0x75, 0xB8, 0x80, 0xA6, 0x7E, 0x8E, 0x85, 0x75, 0x7E, 0x5E, 
0x88, 0x52, 0x7A, 0x2B, 0x67, 0x3C, 0x8F, 0x7A, 0x8E, 0x69, 0x6A, 0x95, 0x98, 0xE2, 0x95, 0xB1, 0x65, 0xAA, 0x8F, 0xBF, 
0x9C, 0x65, 0x6A, 0x39, 0x85, 0x61, 0x95, 0x37, 0x52, 0x37, 0x6A, 0x93, 0x8A, 0x8F, 0x5A, 0x95, 0x81, 0xDF, 0xB1, 0xBA, 
0x80, 0x8E, 0x98, 0xA8, 0xBC, 0x6C, 0x77, 0x37, 0x78, 0x5E, 0x8F, 0x4C, 0x4B, 0x43, 0x52, 0x96, 0x7E, 0xA3, 0x52, 0x96, 
0x75, 0xD1, 0xBD, 0xB4, 0x98, 0x78, 0xAC, 0x8E, 0xD4, 0x6C, 0x87, 0x37, 0x6E, 0x69, 0x7C, 0x77, 0x30, 0x60, 0x2E, 0x9E, 
0x71, 0xAA, 0x60, 0x7E, 0x88, 0x9E, 0xDD, 0x9A, 0xBC, 0x65, 0xAF, 0x87, 0xC6, 0x8F, 0x75, 0x60, 0x47, 0x81, 0x61, 0x8F, 
0x34, 0x5C, 0x35, 0x7C, 0x85, 0x91, 0x81, 0x63, 0x95, 0x87, 0xDA, 0xA3, 0xBC, 0x77, 0x9A, 0x93, 0xAF, 0xA8, 0x71, 0x70, 
0x40, 0x81, 0x5C, 0x91, 0x40, 0x57, 0x3B, 0x67, 0x8C, 0x83, 0x96, 0x52, 0x98, 0x75, 0xDA, 0xA5, 0xBA, 0x7E, 0x83, 0xA3, 
0x98, 0xCA, 0x60, 0x88, 0x2D, 0x83, 0x61, 0x88, 0x60, 0x37, 0x59, 0x3E, 0xA5, 0x69, 0xAA, 0x4E, 0x88, 0x7E, 0xB3, 0xC8, 
0x9A, 0xAD, 0x63, 0xB6, 0x87, 0xCA, 0x7A, 0x7A, 0x50, 0x57, 0x81, 0x69, 0x83, 0x2E, 0x5E, 0x37, 0x8E, 0x78, 0x91, 0x6E, 
0x69, 0x8A, 0x96, 0xD1, 0x9E, 0xAF, 0x6A, 0xA1, 0x8F, 0xBC, 0x93, 0x75, 0x60, 0x4B, 0x81, 0x63, 0x8E, 0x39, 0x5A, 0x32, 
0x7C, 0x7E, 0x8A, 0x80, 0x5A, 0x93, 0x7C, 0xDB, 0x93, 0xBF, 0x6E, 0x96, 0x96, 0xA6, 0xB4, 0x65, 0x80, 0x2E, 0x8F, 0x59, 
0x93, 0x47, 0x49, 0x49, 0x53, 0x9F, 0x67, 0xA3, 0x45, 0x98, 0x75, 0xC6, 0xAC, 0xA1, 0x9A, 0x6E, 0xB6, 0x88, 0xC8, 0x67, 
0x83, 0x45, 0x71, 0x77, 0x70, 0x71, 0x34, 0x61, 0x3E, 0x98, 0x6E, 0x95, 0x63, 0x78, 0x88, 0xA3, 0xC3, 0x96, 0xAA, 0x6A, 
0xA8, 0x8E, 0xBC, 0x80, 0x7C, 0x57, 0x5C, 0x80, 0x69, 0x80, 0x37, 0x60, 0x35, 0x8C, 0x73, 0x91, 0x70, 0x69, 0x8C, 0x8E, 
0xD2, 0x8C, 0xBC, 0x65, 0xA6, 0x8C, 0xB4, 0x96, 0x70, 0x75, 0x40, 0x93, 0x57, 0x95, 0x3B, 0x61, 0x3E, 0x71, 0x8A, 0x71, 
0x98, 0x4C, 0x9C, 0x70, 0xD1, 0x95, 0xB1, 0x85, 0x80, 0xAA, 0x8F, 0xBC, 0x61, 0x8C, 0x3B, 0x85, 0x69, 0x7C, 0x63, 0x45, 
0x5C, 0x49, 0x9C, 0x69, 0x98, 0x59, 0x85, 0x80, 0xB3, 0xB1, 0x96, 0x9E, 0x73, 0xAA, 0x8F, 0xB8, 0x75, 0x83, 0x50, 0x70, 
0x78, 0x75, 0x73, 0x43, 0x60, 0x43, 0x9A, 0x6C, 0x96, 0x61, 0x7A, 0x80, 0x9F, 0xBF, 0x8E, 0xB1, 0x63, 0xAD, 0x81, 0xC1, 
0x7C, 0x81, 0x63, 0x52, 0x91, 0x5E, 0x91, 0x34, 0x71, 0x39, 0x8C, 0x7C, 0x81, 0x85, 0x5A, 0x9A, 0x78, 0xD6, 0x83, 0xB6, 
0x73, 0x93, 0x9E, 0x9F, 0xAA, 0x67, 0x87, 0x3E, 0x93, 0x63, 0x8C, 0x52, 0x5A, 0x53, 0x63, 0x9A, 0x6A, 0x96, 0x55, 0x91, 
0x78, 0xBF, 0x9C, 0xA1, 0x8C, 0x77, 0xA5, 0x91, 0xB4, 0x65, 0x87, 0x47, 0x80, 0x75, 0x7E, 0x67, 0x4C, 0x5E, 0x4E, 0x9E, 
0x6C, 0x9A, 0x59, 0x87, 0x78, 0xAF, 0xB1, 0x91, 0xA5, 0x6A, 0xAD, 0x87, 0xC1, 0x70, 0x88, 0x55, 0x6E, 0x88, 0x6E, 0x85, 
0x3C, 0x73, 0x3C, 0x9E, 0x6E, 0x8F, 0x6E, 0x6E, 0x8E, 0x8A, 0xC8, 0x7C, 0xB4, 0x61, 0xA5, 0x8C, 0xAF, 0x8E, 0x6E, 0x75, 
0x4C, 0x9C, 0x60, 0x8C, 0x42, 0x6A, 0x4B, 0x81, 0x8C, 0x75, 0x8A, 0x57, 0x98, 0x80, 0xCA, 0x88, 0xA6, 0x78, 0x8C, 0xA1, 
0x9F, 0xA6, 0x63, 0x83, 0x47, 0x96, 0x6C, 0x8A, 0x53, 0x59, 0x5C, 0x69, 0x9E, 0x6A, 0x95, 0x50, 0x95, 0x78, 0xC1, 0x98, 
0x96, 0x8A, 0x71, 0xAF, 0x8C, 0xBA, 0x5E, 0x87, 0x49, 0x88, 0x7E, 0x7E, 0x70, 0x42, 0x70, 0x4E, 0xAC, 0x6A, 0x96, 0x57, 
0x7C, 0x87, 0xA6, 0xBA, 0x81, 0xA3, 0x60, 0xB3, 0x8C, 0xBC, 0x77, 0x75, 0x63, 0x67, 0x98, 0x6E, 0x8A, 0x3B, 0x70, 0x4C, 
0x9C, 0x7E, 0x85, 0x6E, 0x61, 0x93, 0x8E, 0xCA, 0x7C, 0xA5, 0x61, 0xA1, 0x98, 0xAD, 0x91, 0x69, 0x73, 0x53, 0x9F, 0x6A, 
0x93, 0x40, 0x63, 0x52, 0x81, 0x93, 0x75, 0x85, 0x4C, 0x9A, 0x7C, 0xCB, 0x87, 0x9E, 0x70, 0x85, 0xAA, 0x9A, 0xB1, 0x5A, 
0x83, 0x49, 0x9F, 0x75, 0x8E, 0x5A, 0x4E, 0x67, 0x61, 0xAA, 0x69, 0x93, 0x45, 0x8C, 0x81, 0xB8, 0xA3, 0x85, 0x8A, 0x6A, 
0xB4, 0x8C, 0xBD, 0x65, 0x7E, 0x53, 0x81, 0x8E, 0x7E, 0x77, 0x39, 0x70, 0x55, 0xAA, 0x73, 0x8C, 0x53, 0x75, 0x8A, 0x9E, 
0xB8, 0x7E, 0x98, 0x5C, 0xB1, 0x8E, 0xBF, 0x7C, 0x71, 0x65, 0x6E, 0xA1, 0x71, 0x8F, 0x34, 0x71, 0x4E, 0x9E, 0x81, 0x83, 
0x6A, 0x55, 0x98, 0x87, 0xCD, 0x78, 0x9E, 0x5C, 0xA1, 0x9A, 0xAC, 0x9E, 0x5E, 0x7C, 0x52, 0xA8, 0x71, 0x9A, 0x42, 0x5A, 
0x5C, 0x7E, 0x9E, 0x6E, 0x81, 0x3E, 0x96, 0x7A, 0xC6, 0x8F, 0x8F, 0x70, 0x7E, 0xB1, 0x9A, 0xBC, 0x5A, 0x7E, 0x53, 0x9E, 
0x83, 0x8F, 0x60, 0x45, 0x6A, 0x63, 0xA8, 0x6E, 0x8C, 0x40, 0x81, 0x81, 0xB3, 0xA8, 0x81, 0x81, 0x67, 0xB6, 0x8F, 0xC6, 
0x67, 0x78, 0x57, 0x83, 0x93, 0x83, 0x80, 0x30, 0x6E, 0x52, 0xAA, 0x75, 0x8C, 0x4C, 0x69, 0x8E, 0x96, 0xC4, 0x78, 0x95, 
0x57, 0xB3, 0x95, 0xC3, 0x87, 0x67, 0x69, 0x69, 0xA8, 0x77, 0x96, 0x30, 0x67, 0x50, 0x93, 0x8C, 0x80, 0x6C, 0x49, 0x96, 
0x81, 0xCF, 0x81, 0x95, 0x5C, 0x9A, 0xA1, 0xAD, 0xA8, 0x59, 0x78, 0x50, 0xA6, 0x78, 0x9A, 0x45, 0x50, 0x5A, 0x78, 0x9F, 
0x73, 0x80, 0x37, 0x93, 0x78, 0xC8, 0x96, 0x8E, 0x70, 0x78, 0xB3, 0x9C, 0xC4, 0x5E, 0x7A, 0x4C, 0x9C, 0x85, 0x91, 0x65, 
0x3B, 0x6A, 0x5C, 0xAC, 0x71, 0x8E, 0x3C, 0x7E, 0x83, 0xB1, 0xB6, 0x81, 0x83, 0x60, 0xB8, 0x8F, 0xCA, 0x6E, 0x70, 0x57, 
0x7C, 0x96, 0x81, 0x85, 0x2B, 0x69, 0x4E, 0xA8, 0x7C, 0x8A, 0x4E, 0x5C, 0x8F, 0x93, 0xCB, 0x7E, 0x95, 0x55, 0xAA, 0x95, 
0xC1, 0x8F, 0x63, 0x65, 0x60, 0xA8, 0x77, 0x9C, 0x32, 0x60, 0x50, 0x8F, 0x91, 0x81, 0x70, 0x43, 0x95, 0x80, 0xD2, 0x8A, 
0x95, 0x5C, 0x91, 0xA5, 0xAA, 0xAF, 0x57, 0x75, 0x4B, 0xA1, 0x7A, 0x9C, 0x4C, 0x4B, 0x5A, 0x71, 0xA6, 0x77, 0x87, 0x37, 
0x8C, 0x7C, 0xC6, 0xA1, 0x8C, 0x71, 0x71, 0xAF, 0x9A, 0xC8, 0x60, 0x78, 0x47, 0x93, 0x87, 0x93, 0x70, 0x35, 0x65, 0x55, 
0xB1, 0x75, 0x93, 0x40, 0x75, 0x81, 0xAC, 0xBD, 0x81, 0x87, 0x57, 0xB3, 0x91, 0xCA, 0x77, 0x6C, 0x53, 0x71, 0x9A, 0x81, 
0x8E, 0x2E, 0x65, 0x4B, 0xA3, 0x85, 0x8F, 0x59, 0x57, 0x8E, 0x8F, 0xD1, 0x81, 0x96, 0x53, 0xA3, 0x95, 0xBF, 0x96, 0x61, 
0x65, 0x55, 0xA5, 0x7A, 0x9F, 0x37, 0x59, 0x50, 0x8A, 0x9A, 0x81, 0x77, 0x3E, 0x91, 0x7C, 0xD4, 0x8E, 0x98, 0x5C, 0x83, 
0xA5, 0xA8, 0xB8, 0x59, 0x71, 0x42, 0x9F, 0x7C, 0x9E, 0x52, 0x43, 0x59, 0x6A, 0xAD, 0x78, 0x8E, 0x37, 0x87, 0x7C, 0xC3, 
0xA8, 0x8C, 0x77, 0x63, 0xAF, 0x95, 0xCA, 0x63, 0x73, 0x43, 0x88, 0x8E, 0x8F, 0x77, 0x34, 0x63, 0x53, 0xB1, 0x7E, 0x96, 
0x47, 0x70, 0x80, 0xAD, 0xC1, 0x85, 0x88, 0x50, 0xAC, 0x8F, 0xCA, 0x78, 0x6A, 0x52, 0x69, 0x9E, 0x81, 0x93, 0x2E, 0x67, 
0x45, 0xA8, 0x8C, 0x8F, 0x61, 0x4E, 0x8E, 0x8C, 0xD8, 0x81, 0x96, 0x4C, 0x96, 0x98, 0xBA, 0x9E, 0x5C, 0x65, 0x49, 0xA8, 
0x7C, 0xA1, 0x3E, 0x53, 0x4E, 0x85, 0xA8, 0x83, 0x80, 0x3C, 0x8A, 0x7E, 0xD2, 0x96, 0x95, 0x5E, 0x77, 0xA5, 0xA8, 0xBC, 
0x5E, 0x6E, 0x3E, 0x9A, 0x85, 0xA1, 0x5C, 0x45, 0x55, 0x69, 0xB4, 0x7C, 0x95, 0x37, 0x7E, 0x77, 0xC4, 0xAC, 0x8A, 0x75, 
0x59, 0xAC, 0x96, 0xCF, 0x67, 0x73, 0x3E, 0x80, 0x96, 0x91, 0x81, 0x34, 0x61, 0x4E, 0xB4, 0x83, 0x98, 0x4C, 0x61, 0x7C, 
0xA6, 0xCD, 0x83, 0x8E, 0x47, 0x9F, 0x96, 0xCA, 0x87, 0x69, 0x52, 0x5E, 0xA1, 0x87, 0x9C, 0x34, 0x5E, 0x42, 0xA1, 0x96, 
0x91, 0x6A, 0x47, 0x81, 0x8A, 0xD6, 0x8A, 0x98, 0x4E, 0x8A, 0x95, 0xBF, 0xA5, 0x65, 0x61, 0x3E, 0xA5, 0x81, 0xA8, 0x47, 
0x53, 0x43, 0x80, 0xAA, 0x88, 0x8C, 0x37, 0x80, 0x73, 0xD8, 0x9C, 0x96, 0x60, 0x65, 0xA5, 0xA5, 0xC8, 0x61, 0x75, 0x35, 
0x8F, 0x8A, 0xA5, 0x6A, 0x40, 0x52, 0x57, 0xBA, 0x81, 0x9E, 0x3E, 0x6E, 0x70, 0xBC, 0xB8, 0x8F, 0x7C, 0x4B, 0xA1, 0x91, 
0xD4, 0x73, 0x75, 0x3E, 0x6E, 0x9A, 0x93, 0x8E, 0x35, 0x5E, 0x43, 0xB1, 0x8A, 0x9F, 0x59, 0x59, 0x7A, 0x9A, 0xCF, 0x88, 
0x95, 0x45, 0x8F, 0x93, 0xC8, 0x93, 0x6E, 0x53, 0x52, 0x9C, 0x88, 0xA1, 0x40, 0x5C, 0x3B, 0x96, 0x9A, 0x98, 0x75, 0x49, 
0x7A, 0x83, 0xDA, 0x8E, 0xA1, 0x4B, 0x80, 0x8F, 0xB8, 0xAF, 0x69, 0x6C, 0x34, 0x9F, 0x80, 0xB1, 0x52, 0x55, 0x40, 0x75, 
0xB3, 0x85, 0x9A, 0x39, 0x83, 0x6C, 0xD1, 0xA3, 0x96, 0x6E, 0x55, 0x9E, 0x9A, 0xCB, 0x65, 0x77, 0x34, 0x87, 0x8F, 0x9E, 
0x78, 0x40, 0x59, 0x52, 0xB4, 0x87, 0x9E, 0x50, 0x6A, 0x77, 0xB3, 0xBC, 0x8F, 0x83, 0x4B, 0x96, 0x91, 0xC6, 0x7A, 0x77, 
0x45, 0x67, 0x95, 0x93, 0x91, 0x45, 0x5A, 0x42, 0xAC, 0x8C, 0xA1, 0x60, 0x5E, 0x73, 0x98, 0xCB, 0x8C, 0x9A, 0x43, 0x8E, 
0x81, 0xCA, 0x8E, 0x75, 0x57, 0x47, 0x9F, 0x7E, 0xAD, 0x43, 0x69, 0x39, 0x91, 0x9C, 0x93, 0x88, 0x45, 0x81, 0x73, 0xDB, 
0x8A, 0xA3, 0x55, 0x70, 0x93, 0xA3, 0xB8, 0x61, 0x7A, 0x34, 0x95, 0x83, 0xA5, 0x69, 0x55, 0x50, 0x69, 0xAF, 0x85, 0x9A, 
0x4B, 0x77, 0x70, 0xBF, 0xA5, 0x96, 0x75, 0x59, 0x8C, 0x96, 0xBF, 0x70, 0x7A, 0x39, 0x80, 0x87, 0x9F, 0x7E, 0x53, 0x59, 
0x50, 0xAC, 0x83, 0xA8, 0x52, 0x73, 0x63, 0xAF, 0xB4, 0x8F, 0x8F, 0x47, 0x98, 0x7C, 0xCB, 0x77, 0x83, 0x4B, 0x60, 0x93, 
0x87, 0xA5, 0x47, 0x71, 0x37, 0xA6, 0x8A, 0x9E, 0x73, 0x57, 0x7C, 0x80, 0xCD, 0x83, 0xA3, 0x4C, 0x81, 0x85, 0xB1, 0x9C, 
0x6E, 0x6A, 0x42, 0x9C, 0x7E, 0xA6, 0x59, 0x65, 0x49, 0x80, 0xA1, 0x8E, 0x8F, 0x50, 0x78, 0x75, 0xC6, 0x93, 0x9C, 0x60, 
0x6E, 0x88, 0x9F, 0xAD, 0x6E, 0x78, 0x3E, 0x8E, 0x7E, 0xAA, 0x69, 0x63, 0x52, 0x6C, 0xAA, 0x85, 0xA3, 0x4E, 0x81, 0x63, 
0xBC, 0x9C, 0x9A, 0x7A, 0x57, 0x91, 0x83, 0xC4, 0x67, 0x88, 0x39, 0x7E, 0x85, 0x96, 0x8A, 0x52, 0x70, 0x47, 0xB1, 0x7C, 
0xAA, 0x5C, 0x6E, 0x70, 0x96, 0xBA, 0x83, 0x9A, 0x47, 0x95, 0x7C, 0xBA, 0x80, 0x78, 0x5A, 0x5A, 0x96, 0x83, 0xA1, 0x52, 
0x71, 0x49, 0x9A, 0x91, 0x96, 0x78, 0x5E, 0x7A, 0x80, 0xBD, 0x87, 0x9C, 0x55, 0x81, 0x7E, 0xAD, 0x93, 0x75, 0x6A, 0x4E, 
0x95, 0x7A, 0xA6, 0x59, 0x77, 0x49, 0x85, 0x93, 0x8E, 0x8F, 0x52, 0x83, 0x67, 0xC6, 0x83, 0xA3, 0x61, 0x73, 0x88, 0x91, 
0xB1, 0x65, 0x8A, 0x39, 0x93, 0x75, 0xA6, 0x73, 0x63, 0x67, 0x5E, 0xAD, 0x77, 0xA6, 0x50, 0x81, 0x69, 0xA8, 0x9F, 0x88, 
0x85, 0x55, 0x93, 0x7E, 0xB8, 0x70, 0x83, 0x4E, 0x75, 0x8A, 0x8E, 0x8C, 0x5A, 0x73, 0x53, 0xA1, 0x81, 0xA1, 0x69, 0x73, 
0x71, 0x93, 0xAD, 0x87, 0x8F, 0x55, 0x8E, 0x78, 0xB3, 0x7A, 0x83, 0x5C, 0x65, 0x8E, 0x80, 0xA3, 0x53, 0x7E, 0x47, 0x9F, 
0x85, 0x9C, 0x77, 0x63, 0x83, 0x77, 0xBD, 0x77, 0xA5, 0x52, 0x8A, 0x78, 0xA1, 0x98, 0x6E, 0x7C, 0x47, 0x9F, 0x70, 0xAA, 
0x5A, 0x77, 0x5E, 0x7E, 0x9E, 0x81, 0x9A, 0x50, 0x8E, 0x67, 0xB8, 0x88, 0x93, 0x6E, 0x6A, 0x8F, 0x88, 0xAD, 0x69, 0x83, 
0x50, 0x8E, 0x80, 0x9A, 0x78, 0x63, 0x6C, 0x67, 0xA8, 0x7E, 0x9E, 0x57, 0x81, 0x71, 0xA6, 0x96, 0x88, 0x7E, 0x60, 0x91, 
0x7A, 0xB1, 0x6A, 0x87, 0x52, 0x80, 0x87, 0x8F, 0x88, 0x59, 0x7A, 0x59, 0xAA, 0x77, 0x9F, 0x60, 0x7A, 0x78, 0x8E, 0xAF, 
0x78, 0x95, 0x4E, 0x9A, 0x75, 0xAF, 0x78, 0x7A, 0x6A, 0x69, 0x9C, 0x75, 0xA5, 0x50, 0x81, 0x57, 0x9A, 0x8A, 0x8E, 0x7C, 
0x5E, 0x8E, 0x75, 0xBA, 0x75, 0x96, 0x57, 0x87, 0x83, 0x96, 0x96, 0x65, 0x7C, 0x55, 0x9E, 0x78, 0xA3, 0x5E, 0x71, 0x65, 
0x81, 0x9C, 0x7E, 0x91, 0x52, 0x8E, 0x70, 0xB1, 0x87, 0x8F, 0x67, 0x70, 0x8E, 0x88, 0xA8, 0x61, 0x85, 0x4E, 0x9A, 0x7E, 
0x9E, 0x75, 0x65, 0x75, 0x6C, 0xAA, 0x77, 0x9F, 0x4E, 0x88, 0x70, 0xA6, 0x96, 0x80, 0x80, 0x55, 0x9F, 0x75, 0xB6, 0x67, 
0x81, 0x57, 0x81, 0x91, 0x88, 0x95, 0x4C, 0x83, 0x59, 0xAD, 0x7C, 0x96, 0x63, 0x6A, 0x87, 0x87, 0xB1, 0x75, 0x8E, 0x4E, 
0x95, 0x7E, 0xA8, 0x81, 0x6E, 0x6C, 0x69, 0xA3, 0x80, 0x9F, 0x55, 0x77, 0x61, 0x9A, 0x8C, 0x91, 0x75, 0x5A, 0x88, 0x7A, 
0xB6, 0x77, 0x8F, 0x52, 0x85, 0x85, 0x9C, 0x93, 0x67, 0x75, 0x55, 0xA6, 0x77, 0xAC, 0x59, 0x71, 0x63, 0x87, 0xA3, 0x7E, 
0x91, 0x47, 0x8F, 0x6C, 0xB6, 0x81, 0x8C, 0x61, 0x69, 0x98, 0x83, 0xB3, 0x5A, 0x81, 0x50, 0x9C, 0x87, 0x9A, 0x7E, 0x5A, 
0x7A, 0x6A, 0xB1, 0x78, 0x9E, 0x4E, 0x7A, 0x78, 0x9C, 0x9F, 0x7A, 0x7A, 0x52, 0x9A, 0x7A, 0xB1, 0x6C, 0x7A, 0x59, 0x81, 
0x95, 0x8C, 0x98, 0x52, 0x7E, 0x60, 0xAC, 0x81, 0x9A, 0x5E, 0x6A, 0x81, 0x88, 0xAF, 0x73, 0x8C, 0x47, 0x95, 0x78, 0xAA, 
0x83, 0x70, 0x69, 0x67, 0xA5, 0x80, 0xAA, 0x53, 0x80, 0x5E, 0x9E, 0x8F, 0x8C, 0x80, 0x50, 0x8E, 0x73, 0xBA, 0x77, 0x8F, 
0x50, 0x7E, 0x87, 0x93, 0x9E, 0x61, 0x7E, 0x52, 0xA6, 0x7A, 0xAA, 0x67, 0x69, 0x6A, 0x81, 0xA5, 0x80, 0x91, 0x47, 0x8A, 
0x71, 0xAD, 0x87, 0x88, 0x65, 0x61, 0x93, 0x83, 0xAF, 0x65, 0x7C, 0x50, 0x98, 0x88, 0x9F, 0x80, 0x5C, 0x75, 0x6E, 0xAD, 
0x7C, 0x9F, 0x4E, 0x7C, 0x75, 0x9F, 0x9E, 0x7E, 0x78, 0x4E, 0x9C, 0x75, 0xB4, 0x6A, 0x7A, 0x55, 0x80, 0x96, 0x8A, 0xA1, 
0x50, 0x81, 0x5A, 0xAF, 0x81, 0x9E, 0x63, 0x60, 0x87, 0x80, 0xB4, 0x71, 0x8F, 0x45, 0x8E, 0x7C, 0xA3, 0x8A, 0x69, 0x6C, 
0x60, 0xA6, 0x7E, 0xAC, 0x5A, 0x78, 0x65, 0x93, 0x96, 0x8C, 0x83, 0x52, 0x87, 0x75, 0xB1, 0x80, 0x8C, 0x52, 0x78, 0x87, 
0x8F, 0x9A, 0x65, 0x75, 0x55, 0x9F, 0x7C, 0xAA, 0x6E, 0x71, 0x69, 0x83, 0xA3, 0x83, 0x98, 0x49, 0x8A, 0x6C, 0xAC, 0x83, 
0x8A, 0x67, 0x60, 0x8F, 0x77, 0xAF, 0x61, 0x85, 0x4C, 0x95, 0x85, 0x9C, 0x8C, 0x5C, 0x80, 0x69, 0xAF, 0x78, 0xA5, 0x59, 
0x7A, 0x77, 0x91, 0x9E, 0x7A, 0x83, 0x4B, 0x96, 0x70, 0xA8, 0x73, 0x78, 0x61, 0x77, 0x96, 0x85, 0xA3, 0x5E, 0x83, 0x61, 
0xA5, 0x85, 0x9A, 0x6E, 0x63, 0x83, 0x7E, 0xA8, 0x75, 0x8C, 0x4C, 0x88, 0x75, 0x9E, 0x87, 0x71, 0x6C, 0x61, 0xA1, 0x7C, 
0xAC, 0x63, 0x80, 0x67, 0x96, 0x91, 0x8E, 0x88, 0x57, 0x8C, 0x6A, 0xAD, 0x77, 0x93, 0x53, 0x75, 0x83, 0x85, 0x9C, 0x63, 
0x81, 0x50, 0xA3, 0x77, 0xA6, 0x77, 0x71, 0x78, 0x77, 0xA8, 0x7A, 0x9E, 0x4E, 0x88, 0x6E, 0x9F, 0x88, 0x80, 0x75, 0x5C, 
0x95, 0x73, 0xA8, 0x67, 0x81, 0x5C, 0x8A, 0x8C, 0x93, 0x91, 0x65, 0x83, 0x70, 0xA8, 0x7E, 0x9C, 0x61, 0x7A, 0x7A, 0x8A, 
0x95, 0x78, 0x83, 0x55, 0x91, 0x73, 0xA1, 0x71, 0x7E, 0x61, 0x80, 0x95, 0x85, 0x9E, 0x5E, 0x8C, 0x65, 0xA5, 0x7C, 0x96, 
0x70, 0x6A, 0x85, 0x78, 0xA8, 0x6A, 0x93, 0x4C, 0x8F, 0x73, 0x96, 0x83, 0x6E, 0x7C, 0x61, 0xA6, 0x73, 0xAC, 0x63, 0x85, 
0x70, 0x91, 0x98, 0x7E, 0x8F, 0x53, 0x93, 0x6C, 0xA8, 0x73, 0x88, 0x67, 0x71, 0x8E, 0x7A, 0x9C, 0x61, 0x85, 0x5E, 0x9C, 
0x81, 0x96, 0x7A, 0x71, 0x83, 0x7C, 0xA1, 0x78, 0x91, 0x5A, 0x85, 0x73, 0x98, 0x83, 0x7A, 0x71, 0x67, 0x8F, 0x77, 0x9F, 
0x65, 0x81, 0x60, 0x93, 0x88, 0x93, 0x88, 0x69, 0x88, 0x70, 0xAC, 0x73, 0x9C, 0x5C, 0x7E, 0x7A, 0x8C, 0x96, 0x6C, 0x87, 
0x52, 0x9C, 0x6C, 0xA1, 0x6C, 0x78, 0x70, 0x77, 0xA1, 0x78, 0xA1, 0x59, 0x8F, 0x6C, 0xA3, 0x85, 0x87, 0x78, 0x60, 0x8E, 
0x71, 0xA8, 0x67, 0x87, 0x57, 0x85, 0x81, 0x88, 0x85, 0x65, 0x7E, 0x69, 0xA5, 0x80, 0x9F, 0x6A, 0x80, 0x7A, 0x91, 0x98, 
0x80, 0x81, 0x5C, 0x8C, 0x75, 0xA5, 0x70, 0x80, 0x60, 0x78, 0x8C, 0x83, 0x95, 0x5C, 0x83, 0x5E, 0xA5, 0x80, 0x9E, 0x73, 
0x75, 0x83, 0x81, 0xAA, 0x70, 0x91, 0x50, 0x8F, 0x70, 0x9C, 0x83, 0x71, 0x75, 0x5E, 0x9A, 0x71, 0xA3, 0x59, 0x80, 0x63, 
0x91, 0x98, 0x87, 0x91, 0x60, 0x96, 0x70, 0xB1, 0x7A, 0x8C, 0x61, 0x73, 0x85, 0x85, 0x9E, 0x61, 0x81, 0x57, 0x95, 0x7A, 
0x95, 0x71, 0x6A, 0x73, 0x77, 0xA1, 0x85, 0x96, 0x60, 0x8C, 0x75, 0xA5, 0x8C, 0x81, 0x70, 0x65, 0x8A, 0x7C, 0x9F, 0x67, 
0x80, 0x57, 0x88, 0x80, 0x91, 0x80, 0x61, 0x7C, 0x69, 0xAA, 0x80, 0xA1, 0x63, 0x88, 0x7C, 0x98, 0x9E, 0x77, 0x85, 0x52, 
0x96, 0x6E, 0xAC, 0x6C, 0x78, 0x63, 0x70, 0x96, 0x7A, 0x9A, 0x52, 0x87, 0x5C, 0xA3, 0x8A, 0x95, 0x7C, 0x69, 0x91, 0x7A, 
0xB6, 0x71, 0x8A, 0x55, 0x81, 0x7C, 0x93, 0x8A, 0x63, 0x75, 0x5C, 0x98, 0x7A, 0x9E, 0x60, 0x73, 0x6A, 0x88, 0xA1, 0x8C, 
0x8A, 0x63, 0x8E, 0x7C, 0xB1, 0x80, 0x88, 0x60, 0x73, 0x83, 0x8A, 0x9A, 0x61, 0x7A, 0x53, 0x95, 0x7C, 0x9F, 0x69, 0x69, 
0x70, 0x78, 0xAA, 0x81, 0x9F, 0x57, 0x91, 0x75, 0xAA, 0x95, 0x7E, 0x71, 0x5A, 0x91, 0x73, 0xAD, 0x5C, 0x7A, 0x55, 0x81, 
0x8C, 0x8C, 0x8C, 0x52, 0x83, 0x63, 0xAD, 0x8A, 0x9C, 0x69, 0x7A, 0x87, 0x91, 0xAF, 0x73, 0x83, 0x52, 0x8A, 0x78, 0xA1, 
0x7A, 0x6A, 0x67, 0x69, 0x95, 0x85, 0x98, 0x55, 0x78, 0x61, 0x9C, 0x96, 0x95, 0x7C, 0x67, 0x8A, 0x83, 0xB4, 0x81, 0x85, 
0x52, 0x7E, 0x7A, 0x9C, 0x8A, 0x63, 0x70, 0x5A, 0x96, 0x80, 0xA1, 0x5E, 0x75, 0x65, 0x8C, 0xA3, 0x91, 0x8F, 0x5A, 0x93, 
0x77, 0xBC, 0x85, 0x87, 0x5E, 0x6A, 0x88, 0x81, 0xA5, 0x57, 0x7C, 0x4E, 0x8F, 0x83, 0x9C, 0x73, 0x5C, 0x78, 0x6E, 0xB3, 
0x85, 0x9C, 0x5C, 0x87, 0x7E, 0xA3, 0xA3, 0x7A, 0x77, 0x55, 0x8E, 0x78, 0xAA, 0x67, 0x70, 0x59, 0x77, 0x8F, 0x8F, 0x8A, 
0x57, 0x7A, 0x63, 0xA8, 0x91, 0x9E, 0x6C, 0x75, 0x87, 0x93, 0xB4, 0x7A, 0x83, 0x4E, 0x87, 0x77, 0xA5, 0x7A, 0x67, 0x61, 
0x63, 0x96, 0x85, 0xA1, 0x52, 0x77, 0x60, 0x9A, 0x9C, 0x96, 0x81, 0x63, 0x8E, 0x80, 0xBC, 0x81, 0x8C, 0x53, 0x75, 0x7A, 
0x95, 0x95, 0x5A, 0x6E, 0x50, 0x95, 0x80, 0xA3, 0x61, 0x6E, 0x69, 0x80, 0xAC, 0x8E, 0x9A, 0x59, 0x8E, 0x77, 0xB6, 0x95, 
0x85, 0x67, 0x60, 0x88, 0x7E, 0xA8, 0x5E, 0x77, 0x4E, 0x83, 0x88, 0x98, 0x81, 0x5A, 0x75, 0x67, 0xAF, 0x8E, 0x9E, 0x63, 
0x80, 0x7C, 0xA1, 0xAA, 0x80, 0x7C, 0x50, 0x87, 0x73, 0xAC, 0x70, 0x6E, 0x53, 0x6C, 0x8F, 0x8E, 0x96, 0x57, 0x7A, 0x5E, 
0xA5, 0x95, 0x9F, 0x75, 0x70, 0x83, 0x8A, 0xBC, 0x85, 0x8A, 0x4C, 0x80, 0x73, 0xA1, 0x85, 0x67, 0x65, 0x55, 0x95, 0x83, 
0xA6, 0x5E, 0x73, 0x5C, 0x8E, 0xA1, 0x98, 0x8E, 0x60, 0x8A, 0x78, 0xBC, 0x88, 0x8E, 0x5E, 0x6A, 0x7E, 0x8A, 0x9E, 0x61, 
0x71, 0x49, 0x8C, 0x81, 0xA1, 0x73, 0x67, 0x6C, 0x75, 0xAA, 0x91, 0x9E, 0x61, 0x85, 0x75, 0xAF, 0x9C, 0x8C, 0x70, 0x5A, 
0x81, 0x7C, 0xAA, 0x65, 0x75, 0x4C, 0x7A, 0x85, 0x96, 0x8A, 0x61, 0x73, 0x60, 0xAA, 0x8E, 0xA8, 0x67, 0x7A, 0x78, 0x96, 
0xAF, 0x85, 0x87, 0x4E, 0x83, 0x70, 0xA6, 0x77, 0x71, 0x59, 0x5E, 0x8E, 0x87, 0xA3, 0x5A, 0x7A, 0x5C, 0x9C, 0x98, 0xA1, 
0x83, 0x6A, 0x85, 0x80, 0xBA, 0x85, 0x91, 0x53, 0x75, 0x75, 0x95, 0x8C, 0x67, 0x69, 0x50, 0x8E, 0x7E, 0xA5, 0x69, 0x75, 
0x61, 0x83, 0xA3, 0x96, 0x98, 0x61, 0x87, 0x75, 0xB4, 0x91, 0x91, 0x63, 0x65, 0x7A, 0x81, 0xA1, 0x65, 0x77, 0x45, 0x85, 
0x7E, 0x9F, 0x7E, 0x69, 0x70, 0x6E, 0xA8, 0x8E, 0xA6, 0x65, 0x85, 0x73, 0xA3, 0xA1, 0x8E, 0x7C, 0x52, 0x81, 0x73, 0xA5, 
0x6E, 0x75, 0x50, 0x70, 0x85, 0x8E, 0x96, 0x61, 0x78, 0x5C, 0xA5, 0x8F, 0xA8, 0x77, 0x73, 0x7C, 0x8E, 0xAF, 0x87, 0x8C, 
0x50, 0x7E, 0x6E, 0x9C, 0x7E, 0x70, 0x60, 0x57, 0x8A, 0x83, 0xA5, 0x65, 0x78, 0x5C, 0x96, 0x98, 0x9F, 0x8E, 0x69, 0x87, 
0x7A, 0xB6, 0x8A, 0x96, 0x5A, 0x70, 0x73, 0x8C, 0x95, 0x67, 0x6C, 0x49, 0x8C, 0x7A, 0xA5, 0x75, 0x73, 0x67, 0x7A, 0xA1, 
0x95, 0xA1, 0x63, 0x83, 0x73, 0xAF, 0x96, 0x93, 0x6E, 0x5C, 0x7E, 0x77, 0x9F, 0x69, 0x77, 0x47, 0x78, 0x7C, 0x9C, 0x8A, 
0x69, 0x70, 0x67, 0xA8, 0x8F, 0xAC, 0x6C, 0x7E, 0x7A, 0x9A, 0xA6, 0x8E, 0x85, 0x50, 0x7C, 0x6C, 0xA3, 0x75, 0x75, 0x50, 
0x65, 0x87, 0x88, 0x9C, 0x63, 0x78, 0x5E, 0x9C, 0x91, 0xA8, 0x81, 0x6E, 0x80, 0x85, 0xB4, 0x88, 0x95, 0x50, 0x77, 0x70, 
0x93, 0x88, 0x6E, 0x63, 0x52, 0x88, 0x7E, 0xA8, 0x6E, 0x77, 0x5E, 0x8A, 0x9E, 0x9E, 0x98, 0x65, 0x88, 0x78, 0xB3, 0x91, 
0x98, 0x61, 0x67, 0x73, 0x83, 0x9A, 0x6A, 0x70, 0x43, 0x83, 0x7A, 0xA1, 0x7E, 0x70, 0x69, 0x73, 0xA3, 0x91, 0xAA, 0x65, 
0x83, 0x70, 0xA8, 0x9F, 0x93, 0x78, 0x53, 0x80, 0x70, 0xA1, 0x6E, 0x73, 0x49, 0x70, 0x7E, 0x93, 0x95, 0x65, 0x75, 0x60, 
0xA3, 0x91, 0xAC, 0x75, 0x73, 0x7C, 0x93, 0xAD, 0x8F, 0x8C, 0x50, 0x7A, 0x6C, 0x9E, 0x7E, 0x71, 0x53, 0x59, 0x88, 0x83, 
0xA3, 0x69, 0x75, 0x5E, 0x96, 0x95, 0xA6, 0x8C, 0x6A, 0x80, 0x7E, 0xB4, 0x8F, 0x9C, 0x55, 0x70, 0x70, 0x8E, 0x8F, 0x6E, 
0x67, 0x47, 0x87, 0x77, 0xAA, 0x73, 0x75, 0x63, 0x7E, 0xA3, 0x98, 0xA3, 0x63, 0x85, 0x75, 0xAF, 0x98, 0x9C, 0x6C, 0x60, 
0x78, 0x77, 0x9F, 0x6C, 0x71, 0x42, 0x78, 0x7A, 0x9E, 0x8A, 0x6C, 0x6C, 0x6A, 0xA3, 0x91, 0xB1, 0x6C, 0x7C, 0x71, 0x9C, 
0xA8, 0x96, 0x83, 0x52, 0x7A, 0x70, 0xA3, 0x75, 0x77, 0x49, 0x63, 0x7E, 0x8C, 0xA1, 0x69, 0x77, 0x5C, 0x9E, 0x93, 0xAF, 
0x81, 0x71, 0x7A, 0x87, 0xB1, 0x8F, 0x9A, 0x50, 0x78, 0x69, 0x96, 0x8A, 0x71, 0x5E, 0x49, 0x83, 0x78, 0xAA, 0x70, 0x78, 
0x5A, 0x88, 0x98, 0xA1, 0x9E, 0x69, 0x81, 0x71, 0xAF, 0x98, 0x9F, 0x63, 0x67, 0x71, 0x83, 0x98, 0x71, 0x6E, 0x43, 0x7C, 
0x73, 0xA5, 0x85, 0x73, 0x67, 0x70, 0x9F, 0x9A, 0xAD, 0x6A, 0x80, 0x6C, 0xA3, 0x9E, 0x9E, 0x7C, 0x59, 0x77, 0x6E, 0xA1, 
0x77, 0x77, 0x43, 0x69, 0x75, 0x95, 0x95, 0x6E, 0x71, 0x61, 0x9E, 0x8F, 0xB3, 0x7A, 0x7C, 0x71, 0x8E, 0xA6, 0x98, 0x91, 
0x55, 0x78, 0x67, 0x9E, 0x7E, 0x7C, 0x53, 0x59, 0x7A, 0x7C, 0xA5, 0x70, 0x7E, 0x59, 0x93, 0x91, 0xAD, 0x91, 0x6E, 0x80, 
0x77, 0xB1, 0x8F, 0xA1, 0x5E, 0x70, 0x6A, 0x85, 0x93, 0x73, 0x69, 0x45, 0x7A, 0x73, 0xA6, 0x7C, 0x78, 0x65, 0x7A, 0x9A, 
0x9C, 0xA6, 0x70, 0x81, 0x71, 0xA5, 0x9A, 0xA1, 0x71, 0x63, 0x70, 0x78, 0x9A, 0x73, 0x77, 0x47, 0x71, 0x70, 0x9C, 0x88, 
0x77, 0x6C, 0x6C, 0x9C, 0x93, 0xB3, 0x71, 0x83, 0x6C, 0x98, 0x9F, 0x9A, 0x87, 0x5A, 0x7A, 0x67, 0x9E, 0x77, 0x80, 0x4E, 
0x63, 0x75, 0x85, 0x9E, 0x6C, 0x7C, 0x5A, 0x9A, 0x8C, 0xB1, 0x87, 0x78, 0x7A, 0x7E, 0xAC, 0x8E, 0x9F, 0x5A, 0x75, 0x67, 
0x8E, 0x88, 0x77, 0x65, 0x4C, 0x7A, 0x73, 0xA1, 0x77, 0x7E, 0x63, 0x85, 0x95, 0x9F, 0x9E, 0x73, 0x83, 0x73, 0xA5, 0x93, 
0x9E, 0x6C, 0x6E, 0x6E, 0x7E, 0x8F, 0x75, 0x73, 0x4B, 0x75, 0x6A, 0x9C, 0x80, 0x7E, 0x69, 0x77, 0x96, 0x93, 0xAC, 0x73, 
0x8A, 0x6A, 0x9F, 0x93, 0x9C, 0x7E, 0x65, 0x78, 0x69, 0x9C, 0x70, 0x81, 0x4B, 0x6E, 0x6C, 0x8A, 0x93, 0x71, 0x7E, 0x60, 
0x9E, 0x88, 0xAF, 0x81, 0x83, 0x78, 0x87, 0xA3, 0x8E, 0x95, 0x60, 0x7C, 0x67, 0x91, 0x7C, 0x7A, 0x60, 0x59, 0x75, 0x78, 
0x9A, 0x73, 0x80, 0x65, 0x8C, 0x8E, 0xA3, 0x8F, 0x80, 0x80, 0x7C, 0xA1, 0x8E, 0x9C, 0x67, 0x78, 0x67, 0x87, 0x85, 0x77, 
0x6C, 0x53, 0x78, 0x6C, 0x9C, 0x75, 0x83, 0x65, 0x80, 0x91, 0x98, 0xA3, 0x75, 0x8E, 0x6C, 0xA5, 0x8A, 0xA1, 0x77, 0x6E, 
0x73, 0x71, 0x93, 0x6C, 0x7E, 0x4C, 0x73, 0x69, 0x91, 0x83, 0x77, 0x7A, 0x6A, 0x9C, 0x88, 0xAC, 0x7A, 0x8A, 0x77, 0x8F, 
0x98, 0x91, 0x8E, 0x65, 0x7A, 0x69, 0x95, 0x73, 0x7C, 0x5A, 0x65, 0x73, 0x80, 0x8F, 0x75, 0x80, 0x67, 0x91, 0x8A, 0xA8, 
0x88, 0x85, 0x7E, 0x85, 0x9F, 0x8C, 0x96, 0x65, 0x7E, 0x67, 0x8C, 0x7A, 0x7A, 0x65, 0x5A, 0x75, 0x71, 0x98, 0x6E, 0x88, 
0x63, 0x8E, 0x8C, 0x9C, 0x96, 0x7A, 0x8C, 0x73, 0xA6, 0x87, 0x9F, 0x6C, 0x78, 0x70, 0x7C, 0x8E, 0x6C, 0x7A, 0x50, 0x7C, 
0x6A, 0x91, 0x7A, 0x7E, 0x77, 0x77, 0x98, 0x8A, 0xA5, 0x78, 0x8E, 0x75, 0x98, 0x91, 0x91, 0x83, 0x6C, 0x7A, 0x70, 0x8E, 
0x6E, 0x7A, 0x57, 0x71, 0x6E, 0x87, 0x85, 0x75, 0x80, 0x6E, 0x96, 0x8A, 0xA5, 0x7E, 0x8C, 0x7A, 0x8F, 0x96, 0x8E, 0x8F, 
0x69, 0x81, 0x69, 0x95, 0x70, 0x7E, 0x5E, 0x65, 0x77, 0x78, 0x8F, 0x6E, 0x8A, 0x65, 0x96, 0x87, 0x9F, 0x8A, 0x80, 0x8A, 
0x7A, 0xA6, 0x80, 0x98, 0x69, 0x80, 0x70, 0x83, 0x7E, 0x6E, 0x75, 0x57, 0x80, 0x6A, 0x93, 0x71, 0x81, 0x71, 0x81, 0x96, 
0x8F, 0x9A, 0x7A, 0x8F, 0x78, 0x9F, 0x87, 0x93, 0x78, 0x73, 0x78, 0x78, 0x8C, 0x6A, 0x78, 0x59, 0x77, 0x70, 0x8E, 0x78, 
0x7E, 0x7A, 0x78, 0x98, 0x8A, 0xA1, 0x78, 0x8F, 0x75, 0x98, 0x8F, 0x8F, 0x83, 0x6E, 0x80, 0x6E, 0x95, 0x67, 0x80, 0x59, 
0x71, 0x75, 0x7E, 0x88, 0x6E, 0x87, 0x6A, 0x9E, 0x87, 0xA1, 0x80, 0x87, 0x83, 0x88, 0x9F, 0x80, 0x95, 0x67, 0x85, 0x6E, 
0x8E, 0x75, 0x70, 0x6A, 0x5E, 0x7E, 0x73, 0x91, 0x6A, 0x85, 0x6E, 0x8F, 0x93, 0x93, 0x91, 0x7A, 0x8C, 0x7E, 0xA3, 0x83, 
0x91, 0x70, 0x7C, 0x75, 0x83, 0x83, 0x69, 0x73, 0x57, 0x7E, 0x71, 0x8C, 0x71, 0x7E, 0x71, 0x83, 0x98, 0x8F, 0x9C, 0x77, 
0x8F, 0x77, 0xA5, 0x88, 0x8F, 0x7A, 0x70, 0x7E, 0x78, 0x91, 0x67, 0x7C, 0x55, 0x78, 0x71, 0x87, 0x7C, 0x71, 0x7E, 0x70, 
0xA1, 0x88, 0xA3, 0x7A, 0x8C, 0x7C, 0x95, 0x98, 0x83, 0x8A, 0x65, 0x85, 0x70, 0x95, 0x6E, 0x75, 0x63, 0x65, 0x7C, 0x7A, 
0x8A, 0x6A, 0x81, 0x6C, 0x9A, 0x8E, 0x9A, 0x87, 0x81, 0x88, 0x85, 0xA5, 0x81, 0x8E, 0x69, 0x7C, 0x73, 0x8E, 0x7C, 0x70, 
0x6A, 0x5C, 0x7E, 0x75, 0x8F, 0x6A, 0x81, 0x6C, 0x8E, 0x96, 0x95, 0x93, 0x78, 0x8C, 0x78, 0xA6, 0x85, 0x91, 0x6C, 0x75, 
0x78, 0x81, 0x8E, 0x67, 0x77, 0x52, 0x7E, 0x71, 0x91, 0x75, 0x78, 0x77, 0x78, 0xA1, 0x8C, 0xA3, 0x75, 0x8E, 0x7A, 0x9C, 
0x93, 0x87, 0x81, 0x67, 0x81, 0x73, 0x95, 0x6C, 0x78, 0x5A, 0x70, 0x78, 0x81, 0x87, 0x6C, 0x7E, 0x6E, 0x9E, 0x8E, 0x9E, 
0x81, 0x85, 0x81, 0x8E, 0x9E, 0x85, 0x8C, 0x65, 0x80, 0x71, 0x93, 0x77, 0x75, 0x65, 0x63, 0x7A, 0x78, 0x8F, 0x69, 0x81, 
0x69, 0x95, 0x91, 0x9C, 0x8E, 0x7C, 0x88, 0x80, 0xA6, 0x83, 0x93, 0x69, 0x7A, 0x73, 0x88, 0x85, 0x6C, 0x75, 0x55, 0x7E, 
0x71, 0x93, 0x70, 0x7C, 0x71, 0x83, 0x9A, 0x91, 0x9E, 0x77, 0x8E, 0x77, 0xA1, 0x8C, 0x8E, 0x75, 0x6C, 0x7C, 0x78, 0x8F, 
0x6A, 0x78, 0x57, 0x77, 0x75, 0x88, 0x7E, 0x73, 0x7C, 0x73, 0x9E, 0x8C, 0xA1, 0x7A, 0x8A, 0x7E, 0x96, 0x95, 0x88, 0x85, 
0x67, 0x81, 0x71, 0x95, 0x6E, 0x7A, 0x5C, 0x6A, 0x7A, 0x80, 0x8A, 0x6C, 0x81, 0x6A, 0x9C, 0x8E, 0x9F, 0x85, 0x81, 0x87, 
0x87, 0xA3, 0x80, 0x8F, 0x65, 0x7E, 0x70, 0x8C, 0x7E, 0x70, 0x6C, 0x5C, 0x80, 0x73, 0x93, 0x6E, 0x7E, 0x6C, 0x88, 0x96, 
0x95, 0x96, 0x78, 0x8C, 0x7C, 0xA3, 0x85, 0x8E, 0x6E, 0x73, 0x78, 0x7E, 0x8A, 0x6E, 0x75, 0x57, 0x7C, 0x75, 0x8F, 0x77, 
0x78, 0x73, 0x7E, 0x9A, 0x8F, 0x9E, 0x77, 0x8E, 0x78, 0x9E, 0x8E, 0x8E, 0x78, 0x6C, 0x7E, 0x75, 0x93, 0x6C, 0x7A, 0x59, 
0x75, 0x73, 0x83, 0x85, 0x71, 0x7E, 0x6E, 0x9E, 0x88, 0xA5, 0x7E, 0x87, 0x80, 0x8C, 0x9C, 0x81, 0x8A, 0x63, 0x83, 0x70, 
0x8F, 0x77, 0x75, 0x67, 0x65, 0x7E, 0x78, 0x8F, 0x6A, 0x81, 0x6E, 0x93, 0x8F, 0x96, 0x8E, 0x7E, 0x8A, 0x83, 0x9F, 0x85, 
0x8F, 0x69, 0x78, 0x77, 0x83, 0x81, 0x70, 0x71, 0x5C, 0x7E, 0x70, 0x8E, 0x70, 0x80, 0x70, 0x87, 0x93, 0x91, 0x9A, 0x78, 
0x8E, 0x7C, 0x9E, 0x87, 0x8E, 0x73, 0x75, 0x7C, 0x78, 0x8C, 0x6A, 0x7A, 0x59, 0x7E, 0x71, 0x8A, 0x7C, 0x75, 0x7C, 0x78, 
0x9E, 0x8A, 0x9F, 0x78, 0x8E, 0x80, 0x93, 0x93, 0x85, 0x85, 0x67, 0x85, 0x71, 0x8F, 0x70, 0x77, 0x60, 0x71, 0x78, 0x7E, 
0x87, 0x6E, 0x80, 0x70, 0x98, 0x8C, 0x9E, 0x87, 0x83, 0x88, 0x87, 0x9C, 0x80, 0x8C, 0x65, 0x83, 0x70, 0x8C, 0x77, 0x77, 
0x6C, 0x69, 0x7E, 0x77, 0x85, 0x5C, 0x70, 0x61, 0x8C, 0x8A, 0x8C, 0x81, 0x67, 0x80, 0x78, 0xA6, 0x8F, 0xA3, 0x7C, 0x80, 
0x7C, 0x8A, 0x96, 0x8A, 0x96, 0x6E, 0x9A, 0x73, 0x8C, 0x7A, 0x7A, 0x81, 0x8F, 0x8F, 0x81, 0x88, 0x53, 0x83, 0x71, 0x87, 
0x8C, 0x6E, 0x61, 0x61, 0x6C, 0x6E, 0x9C, 0x61, 0x8C, 0x65, 0x77, 0x8E, 0x8A, 0x88, 0x93, 0x83, 0x8A, 0xAD, 0x87, 0xAC, 
0x85, 0x7A, 0x93, 0x7A, 0x8C, 0x83, 0x65, 0x59, 0x69, 0x3C, 0x78, 0x4E, 0x5A, 0x6A, 0x6C, 0x7C, 0x85, 0x6A, 0x75, 0x8A, 
0x81, 0xCD, 0xBC, 0xAC, 0xAD, 0x7C, 0x9C, 0xA5, 0xAF, 0x9F, 0xB3, 0x50, 0x85, 0x5A, 0x61, 0x70, 0x60, 0x5E, 0x6A, 0x59, 
0x4C, 0x6E, 0x3E, 0x6C, 0x80, 0x88, 0xAD, 0x87, 0x8C, 0x80, 0x9A, 0x98, 0xDD, 0xA6, 0xB1, 0x88, 0x73, 0x96, 0x8E, 0x9E, 
0x96, 0x80, 0x57, 0x7C, 0x52, 0x70, 0x6C, 0x55, 0x80, 0x6C, 0x69, 0x75, 0x6C, 0x55, 0x91, 0x7E, 0x9F, 0xA3, 0x6E, 0x80, 
0x75, 0x87, 0xA8, 0xBF, 0x88, 0xA5, 0x65, 0x83, 0x96, 0x8A, 0xA1, 0x96, 0x71, 0x78, 0x8A, 0x60, 0x95, 0x6A, 0x6A, 0x93, 
0x67, 0x73, 0x69, 0x52, 0x4C, 0x93, 0x61, 0xA5, 0x7A, 0x5C, 0x77, 0x71, 0x8F, 0xB4, 0xAF, 0x87, 0x9F, 0x73, 0x9F, 0xB1, 
0x98, 0xB8, 0x8A, 0x88, 0x80, 0x8A, 0x5E, 0x83, 0x4C, 0x70, 0x73, 0x59, 0x63, 0x4E, 0x40, 0x61, 0x7E, 0x7C, 0x9E, 0x6A, 
0x6C, 0x88, 0x83, 0xBF, 0xBD, 0xB1, 0x9A, 0x9F, 0x85, 0xBC, 0x93, 0x9E, 0x91, 0x70, 0x7E, 0x71, 0x69, 0x60, 0x61, 0x47, 
0x83, 0x5C, 0x63, 0x69, 0x3E, 0x63, 0x80, 0x8F, 0x9C, 0xA1, 0x5C, 0x95, 0x88, 0x9A, 0xD2, 0x9A, 0x9C, 0x85, 0x7C, 0x7E, 
0xB3, 0x70, 0x9F, 0x7C, 0x63, 0x87, 0x67, 0x63, 0x6E, 0x63, 0x69, 0x9A, 0x65, 0x73, 0x6E, 0x43, 0x8C, 0x8A, 0x95, 0x93, 
0x7A, 0x49, 0x8F, 0x73, 0x9E, 0xB4, 0x7E, 0x87, 0x81, 0x78, 0x96, 0xA5, 0x77, 0x9F, 0x7E, 0x81, 0x95, 0x73, 0x75, 0x73, 
0x73, 0x80, 0x91, 0x5C, 0x69, 0x43, 0x52, 0x7C, 0x7A, 0x8A, 0x71, 0x5E, 0x57, 0x8E, 0x7C, 0xBC, 0x96, 0x8A, 0x95, 0x83, 
0xA3, 0xA8, 0xA5, 0x8F, 0xAA, 0x7A, 0x9F, 0x7C, 0x61, 0x71, 0x53, 0x73, 0x77, 0x6C, 0x4C, 0x55, 0x2E, 0x6C, 0x83, 0x77, 
0x9C, 0x5A, 0x69, 0x7E, 0x98, 0x9E, 0xCF, 0x87, 0xA1, 0x9F, 0x85, 0xB3, 0x9E, 0x83, 0x91, 0x85, 0x6E, 0x95, 0x59, 0x53, 
0x70, 0x4E, 0x83, 0x7A, 0x5E, 0x53, 0x5C, 0x40, 0x9E, 0x8A, 0x8E, 0x95, 0x61, 0x7A, 0x98, 0x9F, 0xA6, 0xB3, 0x6A, 0x9A, 
0x85, 0x85, 0xA1, 0x80, 0x7C, 0x85, 0x81, 0x77, 0x93, 0x50, 0x69, 0x70, 0x6A, 0x9A, 0x75, 0x6E, 0x55, 0x69, 0x61, 0xAA, 
0x7C, 0x8E, 0x6E, 0x57, 0x7C, 0x85, 0x9A, 0x98, 0x88, 0x73, 0x95, 0x83, 0x98, 0x9F, 0x77, 0x9C, 0x83, 0x98, 0x93, 0x85, 
0x5E, 0x85, 0x6C, 0x8F, 0x93, 0x5E, 0x65, 0x47, 0x55, 0x7A, 0x8E, 0x6A, 0x81, 0x50, 0x63, 0x8A, 0x80, 0xA6, 0x95, 0x7A, 
0x8F, 0xA3, 0x8A, 0xB6, 0x8C, 0x87, 0xAA, 0x85, 0x9F, 0x8C, 0x65, 0x57, 0x80, 0x55, 0x95, 0x70, 0x4B, 0x5A, 0x3E, 0x65, 
0x8C, 0x81, 0x6A, 0x87, 0x4E, 0x88, 0x9F, 0x8E, 0xB6, 0x8C, 0x8E, 0xA3, 0xA8, 0x8A, 0xAD, 0x73, 0x85, 0x9A, 0x78, 0x95, 
0x67, 0x55, 0x5E, 0x7A, 0x69, 0x95, 0x5C, 0x53, 0x5C, 0x55, 0x8C, 0x93, 0x85, 0x78, 0x7C, 0x6A, 0x9F, 0x96, 0x98, 0x9F, 
0x75, 0x93, 0x91, 0x96, 0x87, 0x8F, 0x6C, 0x98, 0x87, 0x8E, 0x8E, 0x59, 0x6A, 0x70, 0x85, 0x8A, 0x8A, 0x55, 0x6A, 0x57, 
0x6E, 0xA1, 0x77, 0x7E, 0x69, 0x63, 0x73, 0x98, 0x77, 0x9C, 0x80, 0x71, 0xA8, 0x8C, 0x95, 0x93, 0x81, 0x81, 0xB3, 0x85, 
0xA1, 0x87, 0x52, 0x88, 0x7E, 0x88, 0x8F, 0x71, 0x42, 0x6C, 0x4B, 0x7A, 0x95, 0x5C, 0x75, 0x61, 0x69, 0x83, 0x98, 0x78, 
0xA5, 0x7E, 0x8A, 0xB8, 0x8E, 0x9F, 0x93, 0x8C, 0x96, 0xB1, 0x83, 0x98, 0x65, 0x52, 0x81, 0x70, 0x83, 0x71, 0x55, 0x43, 
0x67, 0x53, 0x8F, 0x7E, 0x63, 0x78, 0x69, 0x87, 0x95, 0x98, 0x8F, 0xA5, 0x83, 0xAC, 0xAA, 0x87, 0x9C, 0x78, 0x91, 0x96, 
0x98, 0x78, 0x83, 0x45, 0x6C, 0x80, 0x77, 0x8C, 0x60, 0x57, 0x5C, 0x6A, 0x73, 0xA1, 0x71, 0x77, 0x81, 0x6C, 0x9F, 0x88, 
0x8C, 0x8A, 0x8C, 0x7E, 0xAD, 0x81, 0x80, 0x8A, 0x6C, 0xA1, 0x96, 0x8E, 0x83, 0x75, 0x50, 0x95, 0x85, 0x88, 0x91, 0x55, 
0x65, 0x6E, 0x6E, 0x85, 0x8F, 0x55, 0x75, 0x6C, 0x69, 0x96, 0x6C, 0x85, 0x85, 0x85, 0x8A, 0xB1, 0x73, 0x96, 0x8A, 0x8A, 
0xB8, 0x9C, 0x91, 0x88, 0x70, 0x6E, 0xA5, 0x7E, 0x85, 0x71, 0x42, 0x69, 0x5A, 0x70, 0x7C, 0x71, 0x4E, 0x7E, 0x65, 0x81, 
0x93, 0x75, 0x9C, 0x8C, 0x9E, 0xA3, 0xA8, 0x80, 0xA5, 0x8C, 0xAA, 0xB1, 0x83, 0x88, 0x67, 0x5C, 0x78, 0x88, 0x69, 0x75, 
0x4B, 0x45, 0x70, 0x53, 0x88, 0x78, 0x6E, 0x69, 0x8A, 0x6C, 0xA3, 0x88, 0x8A, 0xAC, 0x8F, 0xA6, 0xA6, 0x87, 0x7E, 0x98, 
0x83, 0xAC, 0x93, 0x6C, 0x7E, 0x50, 0x6E, 0x88, 0x87, 0x70, 0x78, 0x43, 0x6E, 0x7A, 0x6A, 0x9C, 0x75, 0x73, 0x81, 0x88, 
0x73, 0x9F, 0x70, 0x91, 0x9C, 0x83, 0xA1, 0x87, 0x71, 0x83, 0x95, 0x8F, 0xAD, 0x80, 0x71, 0x7E, 0x59, 0x93, 0x8C, 0x8C, 
0x73, 0x70, 0x4C, 0x81, 0x67, 0x78, 0x87, 0x5E, 0x71, 0x75, 0x6E, 0x78, 0x85, 0x6C, 0x9E, 0x91, 0x8C, 0xAA, 0x77, 0x87, 
0x93, 0xA3, 0xAA, 0xAF, 0x75, 0x87, 0x71, 0x6E, 0x9F, 0x7C, 0x7E, 0x63, 0x55, 0x50, 0x77, 0x55, 0x80, 0x70, 0x59, 0x83, 
0x71, 0x7A, 0x87, 0x80, 0x8C, 0xB6, 0x93, 0xA5, 0xA3, 0x6E, 0xA1, 0x98, 0xAA, 0xA8, 0x91, 0x5E, 0x7E, 0x55, 0x77, 0x8E, 
0x65, 0x71, 0x53, 0x50, 0x65, 0x70, 0x61, 0x8E, 0x6C, 0x71, 0x93, 0x6E, 0x8E, 0x88, 0x8C, 0x9F, 0xB3, 0x8A, 0xA6, 0x7E, 
0x6E, 0x9C, 0x87, 0xA3, 0x8F, 0x73, 0x5E, 0x75, 0x5C, 0x93, 0x88, 0x6E, 0x78, 0x57, 0x6C, 0x78, 0x78, 0x7E, 0x8F, 0x70, 
0x8A, 0x88, 0x6C, 0x8F, 0x6E, 0x8F, 0x9A, 0x96, 0x81, 0x95, 0x60, 0x87, 0x9C, 0x93, 0xB3, 0x83, 0x71, 0x75, 0x77, 0x7A, 
0xA6, 0x7A, 0x78, 0x75, 0x52, 0x7A, 0x6A, 0x6C, 0x78, 0x77, 0x60, 0x88, 0x61, 0x6A, 0x81, 0x6A, 0xA6, 0x9C, 0x91, 0x8F, 
0x8C, 0x6C, 0xAA, 0x9F, 0xA6, 0xB6, 0x71, 0x80, 0x7A, 0x75, 0x88, 0x96, 0x63, 0x77, 0x5C, 0x4B, 0x75, 0x55, 0x71, 0x77, 
0x71, 0x71, 0x8C, 0x63, 0x83, 0x85, 0x85, 0xBD, 0x9C, 0x9E, 0x91, 0x7E, 0x83, 0xB3, 0x9A, 0xAC, 0x93, 0x5C, 0x78, 0x60, 
0x73, 0x87, 0x7A, 0x5C, 0x71, 0x50, 0x65, 0x75, 0x5E, 0x87, 0x7A, 0x80, 0x85, 0x81, 0x69, 0x8F, 0x80, 0xA3, 0xB8, 0x8A, 
0x9A, 0x75, 0x73, 0x8A, 0xA5, 0x8C, 0xA3, 0x6A, 0x63, 0x7C, 0x5E, 0x8E, 0x88, 0x77, 0x73, 0x73, 0x57, 0x7E, 0x6C, 0x6C, 
0x98, 0x75, 0x8E, 0x80, 0x70, 0x6E, 0x8A, 0x7A, 0xAD, 0x9E, 0x7E, 0x8F, 0x63, 0x81, 0x9A, 0xA1, 0x9E, 0x9F, 0x65, 0x7E, 
0x7A, 0x70, 0x9F, 0x80, 0x7C, 0x7A, 0x65, 0x5C, 0x78, 0x57, 0x75, 0x85, 0x63, 0x8A, 0x63, 0x63, 0x6C, 0x83, 0x88, 0xB8, 
0x8C, 0x8E, 0x87, 0x6A, 0x9F, 0xA3, 0xA8, 0xA6, 0x8C, 0x69, 0x87, 0x70, 0x7C, 0x96, 0x65, 0x81, 0x63, 0x59, 0x5C, 0x67, 
0x55, 0x88, 0x78, 0x7A, 0x8F, 0x5C, 0x7A, 0x83, 0x95, 0xAC, 0xB8, 0x87, 0x96, 0x7C, 0x7E, 0xAC, 0x98, 0xA5, 0x93, 0x70, 
0x67, 0x73, 0x60, 0x81, 0x7C, 0x61, 0x85, 0x52, 0x63, 0x63, 0x67, 0x70, 0x9C, 0x77, 0x8F, 0x80, 0x61, 0x8A, 0x87, 0x9E, 
0xB3, 0x9C, 0x80, 0x88, 0x67, 0x85, 0x9F, 0x85, 0xA6, 0x77, 0x6C, 0x70, 0x71, 0x6E, 0x98, 0x75, 0x81, 0x85, 0x57, 0x77, 
0x67, 0x71, 0x88, 0x95, 0x7A, 0x93, 0x60, 0x67, 0x88, 0x7A, 0xA6, 0x9E, 0x83, 0x7C, 0x7A, 0x6A, 0x9F, 0x9A, 0x8F, 0xAC, 
0x6C, 0x83, 0x73, 0x75, 0x80, 0x95, 0x70, 0x8F, 0x6E, 0x55, 0x71, 0x55, 0x73, 0x88, 0x7E, 0x7C, 0x75, 0x52, 0x71, 0x85, 
0x83, 0xB6, 0x8E, 0x8C, 0x83, 0x7A, 0x83, 0xAC, 0x91, 0xA6, 0x98, 0x6C, 0x85, 0x69, 0x77, 0x85, 0x83, 0x71, 0x88, 0x52, 
0x5E, 0x65, 0x59, 0x8A, 0x87, 0x85, 0x87, 0x70, 0x60, 0x8E, 0x88, 0xA1, 0xB8, 0x80, 0x96, 0x73, 0x80, 0x8E, 0xA3, 0x87, 
0xA6, 0x75, 0x70, 0x7C, 0x5A, 0x7E, 0x7C, 0x78, 0x87, 0x7E, 0x52, 0x6E, 0x67, 0x6E, 0xA5, 0x7E, 0x91, 0x77, 0x60, 0x70, 
0x8F, 0x83, 0xA8, 0x98, 0x77, 0x8C, 0x61, 0x83, 0x8F, 0x8C, 0x8F, 0x9E, 0x71, 0x7E, 0x73, 0x69, 0x95, 0x81, 0x8F, 0x8F, 
0x6A, 0x5C, 0x71, 0x63, 0x88, 0x96, 0x73, 0x8A, 0x5C, 0x60, 0x75, 0x87, 0x87, 0xAC, 0x7E, 0x87, 0x81, 0x6A, 0x9C, 0x93, 
0x9A, 0xA6, 0x98, 0x75, 0x88, 0x69, 0x7C, 0x98, 0x7A, 0x9C, 0x73, 0x5C, 0x59, 0x63, 0x60, 0x8F, 0x7A, 0x73, 0x7A, 0x45, 
0x73, 0x7C, 0x8A, 0x9C, 0xA3, 0x80, 0x95, 0x7C, 0x7C, 0xA8, 0x88, 0xA8, 0xA1, 0x83, 0x7A, 0x77, 0x5E, 0x85, 0x83, 0x77, 
0x93, 0x55, 0x52, 0x59, 0x60, 0x78, 0x98, 0x77, 0x88, 0x70, 0x5A, 0x8E, 0x88, 0x9E, 0xAA, 0x98, 0x88, 0x93, 0x6E, 0x8F, 
0x98, 0x85, 0xAC, 0x8A, 0x78, 0x6C, 0x63, 0x63, 0x8E, 0x78, 0x8E, 0x80, 0x4C, 0x69, 0x5C, 0x78, 0x8F, 0x91, 0x7C, 0x8A, 
0x5C, 0x6E, 0x91, 0x7A, 0xA6, 0x91, 0x8C, 0x85, 0x7A, 0x69, 0x95, 0x83, 0x8F, 0xAC, 0x78, 0x81, 0x69, 0x65, 0x83, 0x95, 
0x87, 0x9A, 0x6E, 0x52, 0x75, 0x5C, 0x8E, 0x93, 0x80, 0x7C, 0x75, 0x50, 0x80, 0x81, 0x7C, 0xA8, 0x85, 0x8E, 0x87, 0x73, 
0x7C, 0x9E, 0x87, 0xAF, 0xA3, 0x7A, 0x81, 0x5E, 0x73, 0x8F, 0x8F, 0x8A, 0x8A, 0x4C, 0x55, 0x63, 0x5C, 0x93, 0x78, 0x7C, 
0x71, 0x65, 0x5A, 0x8E, 0x77, 0x98, 0xA3, 0x8A, 0x9E, 0x7A, 0x78, 0x8E, 0x96, 0x96, 0xB4, 0x8C, 0x73, 0x71, 0x4E, 0x88, 
0x81, 0x8A, 0x85, 0x6A, 0x47, 0x65, 0x5E, 0x7A, 0x98, 0x73, 0x8F, 0x75, 0x65, 0x7A, 0x8E, 0x83, 0xAD, 0x9A, 0x91, 0x98, 
0x69, 0x7E, 0x8E, 0x8A, 0xA3, 0xA3, 0x71, 0x70, 0x5C, 0x5C, 0x96, 0x81, 0x95, 0x81, 0x61, 0x55, 0x77, 0x67, 0x96, 0x8A, 
0x7C, 0x8E, 0x67, 0x6C, 0x80, 0x7C, 0x88, 0xA6, 0x85, 0x91, 0x7E, 0x57, 0x8A, 0x7C, 0x9A, 0xA8, 0x98, 0x6E, 0x75, 0x5A, 
0x81, 0x9C, 0x85, 0x9F, 0x6C, 0x60, 0x60, 0x70, 0x73, 0x96, 0x77, 0x81, 0x80, 0x57, 0x77, 0x70, 0x77, 0x9A, 0x9A, 0x8F, 
0x95, 0x6C, 0x71, 0x9A, 0x85, 0xBC, 0xA5, 0x8A, 0x75, 0x6E, 0x5E, 0x9C, 0x88, 0x8C, 0x8C, 0x59, 0x5C, 0x60, 0x61, 0x7A, 
0x85, 0x70, 0x88, 0x6C, 0x5E, 0x81, 0x6C, 0x8F, 0xA1, 0x9F, 0x96, 0x8F, 0x5E, 0x88, 0x8F, 0x93, 0xBD, 0x8E, 0x80, 0x67, 
0x60, 0x6C, 0x98, 0x78, 0x8C, 0x75, 0x4E, 0x6A, 0x5C, 0x73, 0x87, 0x85, 0x81, 0x8F, 0x6A, 0x75, 0x81, 0x70, 0xAC, 0x9C, 
0xA6, 0x95, 0x78, 0x63, 0x91, 0x85, 0xA5, 0xAD, 0x75, 0x78, 0x5C, 0x61, 0x83, 0x8F, 0x80, 0x8F, 0x67, 0x5E, 0x73, 0x60, 
0x85, 0x81, 0x83, 0x8A, 0x81, 0x63, 0x7A, 0x70, 0x81, 0xA8, 0x91, 0x9E, 0x7C, 0x67, 0x70, 0x8C, 0x8A, 0xB4, 0x93, 0x78, 
0x7A, 0x59, 0x80, 0x8C, 0x87, 0x8A, 0x88, 0x59, 0x73, 0x69, 0x63, 0x8F, 0x73, 0x8C, 0x88, 0x71, 0x69, 0x78, 0x67, 0x9C, 
0xA3, 0x93, 0xA3, 0x6C, 0x70, 0x87, 0x93, 0x9F, 0xB6, 0x7C, 0x7A, 0x70, 0x59, 0x8E, 0x83, 0x81, 0x87, 0x71, 0x59, 0x75, 
0x57, 0x70, 0x8A, 0x71, 0x93, 0x80, 0x6C, 0x71, 0x7A, 0x7C, 0xAF, 0xA1, 0x9A, 0x91, 0x63, 0x7E, 0x85, 0x98, 0xA1, 0x9A, 
0x6C, 0x7A, 0x5A, 0x6E, 0x88, 0x77, 0x87, 0x78, 0x69, 0x67, 0x71, 0x61, 0x88, 0x83, 0x8A, 0x9E, 0x73, 0x7C, 0x70, 0x7C, 
0x93, 0xAD, 0x8F, 0x9C, 0x70, 0x63, 0x88, 0x7E, 0x9F, 0x98, 0x80, 0x6E, 0x73, 0x59, 0x87, 0x83, 0x7A, 0x96, 0x70, 0x77, 
0x7A, 0x6A, 0x73, 0x91, 0x7E, 0x95, 0x8F, 0x63, 0x7E, 0x63, 0x7E, 0x9E, 0x9A, 0x83, 0x8F, 0x57, 0x71, 0x87, 0x81, 0xA5, 
0x91, 0x75, 0x7E, 0x73, 0x6C, 0x96, 0x7E, 0x87, 0x93, 0x6C, 0x7E, 0x70, 0x67, 0x78, 0x8C, 0x7A, 0x9E, 0x71, 0x65, 0x73, 
0x63, 0x8E, 0x9C, 0x96, 0x87, 0x87, 0x60, 0x8C, 0x8A, 0x96, 0xA6, 0x83, 0x81, 0x7A, 0x73, 0x7C, 0x8A, 0x77, 0x8F, 0x7E, 
0x6C, 0x7E, 0x57, 0x71, 0x78, 0x83, 0x83, 0x8F, 0x61, 0x78, 0x69, 0x78, 0xA5, 0x96, 0x93, 0x8A, 0x71, 0x75, 0x8F, 0x81, 
0x9F, 0x93, 0x73, 0x8C, 0x6A, 0x73, 0x80, 0x7A, 0x78, 0x93, 0x67, 0x7E, 0x75, 0x57, 0x83, 0x81, 0x8A, 0x96, 0x85, 0x63, 
0x85, 0x67, 0x8F, 0xA8, 0x88, 0x8E, 0x7E, 0x6A, 0x83, 0x8E, 0x81, 0x9F, 0x7C, 0x73, 0x8A, 0x69, 0x7C, 0x7C, 0x7E, 0x81, 
0x93, 0x6C, 0x87, 0x63, 0x69, 0x85, 0x83, 0x8F, 0x87, 0x70, 0x6A, 0x77, 0x6E, 0x9C, 0x93, 0x83, 0x88, 0x6A, 0x7A, 0x83, 
0x88, 0x8F, 0x96, 0x77, 0x8A, 0x7A, 0x73, 0x85, 0x77, 0x88, 0x8A, 0x7E, 0x73, 0x7C, 0x57, 0x7E, 0x80, 0x85, 0x95, 0x73, 
0x6C, 0x73, 0x70, 0x85, 0xA5, 0x81, 0x91, 0x83, 0x70, 0x95, 0x85, 0x91, 0x98, 0x8A, 0x77, 0x95, 0x69, 0x7C, 0x7C, 0x6E, 
0x8F, 0x81, 0x71, 0x77, 0x6A, 0x57, 0x8C, 0x7E, 0x8A, 0x8E, 0x65, 0x77, 0x77, 0x7E, 0x95, 0x9F, 0x7A, 0x91, 0x77, 0x7A, 
0x91, 0x7A, 0x8F, 0x8C, 0x7C, 0x7E, 0x88, 0x63, 0x7E, 0x73, 0x7A, 0x91, 0x78, 0x78, 0x73, 0x67, 0x73, 0x95, 0x83, 0x98, 
0x7C, 0x6C, 0x80, 0x77, 0x8C, 0x96, 0x8C, 0x7C, 0x88, 0x6E, 0x8A, 0x81, 0x81, 0x93, 0x7C, 0x83, 0x83, 0x7A, 0x6E, 0x83, 
0x70, 0x96, 0x8C, 0x75, 0x81, 0x67, 0x6E, 0x87, 0x8E, 0x85, 0x91, 0x61, 0x78, 0x7A, 0x73, 0x98, 0x8A, 0x7A, 0x81, 0x7A, 
0x75, 0x95, 0x75, 0x85, 0x93, 0x75, 0x8E, 0x85, 0x73, 0x78, 0x85, 0x77, 0x9F, 0x78, 0x77, 0x7C, 0x60, 0x78, 0x91, 0x85, 
0x85, 0x80, 0x60, 0x85, 0x7C, 0x80, 0x9A, 0x7E, 0x80, 0x85, 0x81, 0x85, 0x95, 0x75, 0x96, 0x85, 0x81, 0x8E, 0x78, 0x73, 
0x78, 0x80, 0x83, 0x93, 0x6C, 0x7E, 0x6A, 0x6C, 0x85, 0x87, 0x87, 0x80, 0x70, 0x6E, 0x8A, 0x78, 0x95, 0x8C, 0x77, 0x8A, 
0x78, 0x83, 0x85, 0x81, 0x78, 0x96, 0x71, 0x8F, 0x80, 0x6C, 0x7C, 0x75, 0x81, 0x93, 0x80, 0x6C, 0x81, 0x65, 0x80, 0x95, 
0x7E, 0x8F, 0x75, 0x6C, 0x80, 0x88, 0x7A, 0x9C, 0x75, 0x7A, 0x8C, 0x77, 0x8A, 0x8A, 0x75, 0x85, 0x91, 0x73, 0x96, 0x77, 
0x71, 0x81, 0x7E, 0x8C, 0x93, 0x77, 0x71, 0x7C, 0x67, 0x91, 0x8A, 0x7E, 0x81, 0x69, 0x73, 0x83, 0x85, 0x7E, 0x93, 0x6A, 
0x87, 0x7C, 0x80, 0x87, 0x7E, 0x7C, 0x8E, 0x8A, 0x80, 0x8F, 0x6A, 0x7E, 0x80, 0x81, 0x96, 0x7E, 0x73, 0x6E, 0x73, 0x77, 
0x96, 0x7C, 0x87, 0x73, 0x65, 0x87, 0x7E, 0x85, 0x8E, 0x80, 0x75, 0x91, 0x77, 0x8E, 0x8A, 0x78, 0x8E, 0x8C, 0x81, 0x8A, 
0x7C, 0x69, 0x88, 0x7A, 0x8E, 0x91, 0x6C, 0x75, 0x71, 0x71, 0x8A, 0x93, 0x70, 0x88, 0x65, 0x75, 0x8C, 0x83, 0x8A, 0x8C, 
0x75, 0x81, 0x8A, 0x70, 0x93, 0x78, 0x78, 0x91, 0x81, 0x81, 0x83, 0x70, 0x6E, 0x8F, 0x78, 0x98, 0x7E, 0x69, 0x77, 0x73, 
0x83, 0x93, 0x8A, 0x77, 0x85, 0x63, 0x87, 0x8A, 0x7E, 0x8C, 0x7E, 0x78, 0x85, 0x81, 0x78, 0x8E, 0x73, 0x8C, 0x8E, 0x7E, 
0x87, 0x75, 0x70, 0x83, 0x8C, 0x87, 0x98, 0x6C, 0x71, 0x77, 0x75, 0x91, 0x8E, 0x7C, 0x78, 0x73, 0x6A, 0x8F, 0x7A, 0x8A, 
0x87, 0x73, 0x81, 0x83, 0x78, 0x81, 0x83, 0x73, 0x9A, 0x81, 0x83, 0x81, 0x6A, 0x7A, 0x8C, 0x88, 0x8C, 0x88, 0x5E, 0x7C, 
0x71, 0x81, 0x9A, 0x80, 0x7C, 0x7A, 0x71, 0x78, 0x93, 0x73, 0x93, 0x7E, 0x7A, 0x8C, 0x7E, 0x78, 0x85, 0x7E, 0x81, 0x9C, 
0x78, 0x85, 0x75, 0x67, 0x8A, 0x8A, 0x8C, 0x8A, 0x7A, 0x63, 0x81, 0x70, 0x91, 0x8F, 0x7A, 0x7C, 0x75, 0x71, 0x85, 0x87, 
0x7A, 0x8E, 0x77, 0x85, 0x85, 0x73, 0x7C, 0x7E, 0x7C, 0x8E, 0x8E, 0x77, 0x83, 0x63, 0x7A, 0x8E, 0x88, 0x91, 0x80, 0x6A, 
0x70, 0x80, 0x78, 0x9F, 0x7A, 0x80, 0x7C, 0x73, 0x7C, 0x87, 0x7C, 0x83, 0x88, 0x73, 0x93, 0x78, 0x71, 0x85, 0x77, 0x8F, 
0x93, 0x87, 0x78, 0x80, 0x60, 0x8F, 0x8E, 0x8A, 0x91, 0x75, 0x6C, 0x7A, 0x7C, 0x83, 0x9C, 0x70, 0x81, 0x7A, 0x6E, 0x83, 
0x81, 0x7A, 0x8A, 0x83, 0x7A, 0x8F, 0x6C, 0x77, 0x81, 0x7C, 0x96, 0x8E, 0x7C, 0x77, 0x71, 0x69, 0x9A, 0x85, 0x8E, 0x83, 
0x6E, 0x6E, 0x7C, 0x7C, 0x8E, 0x8C, 0x73, 0x88, 0x73, 0x7C, 0x83, 0x78, 0x85, 0x87, 0x83, 0x85, 0x87, 0x65, 0x85, 0x78, 
0x8F, 0x95, 0x83, 0x7A, 0x71, 0x6C, 0x80, 0x98, 0x80, 0x93, 0x77, 0x70, 0x7E, 0x78, 0x88, 0x8F, 0x7E, 0x7A, 0x88, 0x6C, 
0x87, 0x7C, 0x77, 0x8F, 0x80, 0x83, 0x87, 0x71, 0x67, 0x8A, 0x75, 0x96, 0x8A, 0x7A, 0x7A, 0x70, 0x70, 0x8F, 0x8E, 0x81, 
0x8C, 0x6C, 0x78, 0x80, 0x7A, 0x8F, 0x88, 0x7A, 0x83, 0x81, 0x6E, 0x88, 0x71, 0x83, 0x8A, 0x81, 0x87, 0x81, 0x6A, 0x78, 
0x88, 0x7E, 0x9F, 0x7E, 0x7A, 0x77, 0x6A, 0x81, 0x95, 0x88, 0x87, 0x87, 0x69, 0x85, 0x7A, 0x83, 0x8C, 0x7C, 0x7E, 0x83, 
0x7A, 0x75, 0x85, 0x71, 0x8F, 0x81, 0x83, 0x87, 0x70, 0x6E, 0x7E, 0x81, 0x88, 0x96, 0x70, 0x7C, 0x6E, 0x70, 0x8F, 0x8A, 
0x83, 0x87, 0x75, 0x70, 0x88, 0x75, 0x8E, 0x88, 0x7A, 0x87, 0x85, 0x73, 0x7C, 0x7E, 0x77, 0x96, 0x7E, 0x88, 0x80, 0x6A, 
0x78, 0x83, 0x85, 0x93, 0x8A, 0x6C, 0x81, 0x69, 0x80, 0x93, 0x85, 0x83, 0x85, 0x73, 0x7C, 0x85, 0x75, 0x93, 0x80, 0x80, 
0x8A, 0x7A, 0x75, 0x7C, 0x78, 0x80, 0x95, 0x78, 0x8A, 0x6E, 0x6C, 0x7C, 0x83, 0x88, 0x8E, 0x7C, 0x73, 0x7C, 0x6A, 0x8E, 
0x88, 0x83, 0x88, 0x7A, 0x78, 0x81, 0x7E, 0x7E, 0x93, 0x77, 0x8E, 0x85, 0x75, 0x7C, 0x77, 0x7E, 0x8E, 0x8A, 0x7C, 0x88, 
0x63, 0x7A, 0x83, 0x85, 0x8F, 0x85, 0x73, 0x7C, 0x77, 0x75, 0x98, 0x80, 0x87, 0x88, 0x75, 0x83, 0x80, 0x78, 0x87, 0x8C, 
0x75, 0x98, 0x75, 0x75, 0x7E, 0x78, 0x83, 0x93, 0x7E, 0x7E, 0x7C, 0x60, 0x85, 0x81, 0x87, 0x8E, 0x78, 0x73, 0x7C, 0x75, 
0x7C, 0x93, 0x75, 0x8A, 0x80, 0x78, 0x81, 0x7C, 0x7E, 0x8C, 0x85, 0x80, 0x91, 0x6A, 0x7C, 0x78, 0x7C, 0x8E, 0x8A, 0x7A, 
0x7E, 0x73, 0x6E, 0x8C, 0x81, 0x8C, 0x83, 0x75, 0x7C, 0x78, 0x7C, 0x87, 0x8C, 0x7A, 0x93, 0x75, 0x83, 0x80, 0x78, 0x85, 
0x8C, 0x81, 0x8C, 0x81, 0x6A, 0x83, 0x73, 0x87, 0x8F, 0x7E, 0x7C, 0x78, 0x6C, 0x7C, 0x8C, 0x78, 0x91, 0x75, 0x75, 0x80, 
0x75, 0x80, 0x8A, 0x80, 0x80, 0x8F, 0x70, 0x8A, 0x78, 0x7C, 0x8C, 0x88, 0x83, 0x8C, 0x73, 0x70, 0x87, 0x77, 0x8F, 0x8C, 
0x77, 0x80, 0x73, 0x73, 0x87, 0x8A, 0x7C, 0x8F, 0x6E, 0x7E, 0x7C, 0x78, 0x87, 0x88, 0x7C, 0x8A, 0x85, 0x75, 0x8A, 0x75, 
0x85, 0x8E, 0x87, 0x87, 0x81, 0x70, 0x78, 0x83, 0x7C, 0x96, 0x7A, 0x7A, 0x7A, 0x6E, 0x7A, 0x88, 0x80, 0x83, 0x83, 0x6A, 
0x85, 0x75, 0x7E, 0x87, 0x81, 0x81, 0x8C, 0x7A, 0x7E, 0x83, 0x75, 0x93, 0x87, 0x87, 0x8A, 0x73, 0x71, 0x80, 0x80, 0x85, 
0x93, 0x6E, 0x80, 0x73, 0x71, 0x87, 0x83, 0x7E, 0x88, 0x78, 0x75, 0x8A, 0x70, 0x88, 0x87, 0x7E, 0x8C, 0x87, 0x75, 0x80, 
0x7C, 0x78, 0x9A, 0x81, 0x87, 0x80, 0x6C, 0x77, 0x85, 0x80, 0x8E, 0x88, 0x6C, 0x80, 0x6E, 0x7C, 0x8A, 0x80, 0x7E, 0x88, 
0x73, 0x7A, 0x81, 0x6E, 0x8E, 0x83, 0x85, 0x8A, 0x7C, 0x73, 0x7E, 0x7A, 0x85, 0x98, 0x7E, 0x88, 0x75, 0x71, 0x7E, 0x85, 
0x85, 0x8E, 0x7E, 0x73, 0x7E, 0x6C, 0x85, 0x81, 0x80, 0x85, 0x80, 0x77, 0x7E, 0x78, 0x78, 0x8F, 0x7E, 0x8F, 0x83, 0x77, 
0x7A, 0x7C, 0x80, 0x95, 0x8F, 0x81, 0x87, 0x69, 0x7C, 0x83, 0x83, 0x8C, 0x85, 0x71, 0x78, 0x77, 0x6E, 0x8C, 0x77, 0x83, 
0x85, 0x77, 0x77, 0x7E, 0x70, 0x83, 0x8E, 0x80, 0x98, 0x78, 0x75, 0x81, 0x7C, 0x88, 0x98, 0x83, 0x80, 0x81, 0x63, 0x85, 
0x83, 0x83, 0x8C, 0x7E, 0x71, 0x7E, 0x73, 0x75, 0x8C, 0x78, 0x8E, 0x83, 0x77, 0x7A, 0x7E, 0x73, 0x8E, 0x8C, 0x87, 0x91, 
0x70, 0x78, 0x7C, 0x81, 0x8F, 0x91, 0x80, 0x7E, 0x75, 0x6C, 0x88, 0x7A, 0x8C, 0x83, 0x7A, 0x75, 0x7A, 0x71, 0x81, 0x81, 
0x7C, 0x8F, 0x78, 0x78, 0x77, 0x73, 0x80, 0x8C, 0x88, 0x8C, 0x81, 0x6A, 0x81, 0x77, 0x8C, 0x93, 0x88, 0x80, 0x7C, 0x70, 
0x7E, 0x88, 0x78, 0x96, 0x7E, 0x78, 0x7C, 0x73, 0x75, 0x87, 0x78, 0x87, 0x8E, 0x70, 0x7C, 0x71, 0x71, 0x8A, 0x8E, 0x87, 
0x8C, 0x78, 0x6E, 0x88, 0x7A, 0x95, 0x91, 0x87, 0x80, 0x7C, 0x6C, 0x87, 0x81, 0x7E, 0x91, 0x78, 0x7A, 0x77, 0x6C, 0x75, 
0x83, 0x7C, 0x8A, 0x85, 0x6C, 0x7C, 0x6E, 0x81, 0x8E, 0x8F, 0x8C, 0x87, 0x71, 0x7A, 0x87, 0x80, 0x9A, 0x88, 0x87, 0x78, 
0x77, 0x75, 0x85, 0x7C, 0x87, 0x87, 0x75, 0x7E, 0x70, 0x71, 0x80, 0x80, 0x88, 0x8F, 0x7A, 0x73, 0x7A, 0x6C, 0x91, 0x8C, 
0x91, 0x88, 0x7C, 0x6C, 0x85, 0x7C, 0x88, 0x95, 0x7C, 0x87, 0x77, 0x70, 0x7E, 0x81, 0x7A, 0x8F, 0x83, 0x77, 0x80, 0x65, 
0x7A, 0x80, 0x83, 0x8F, 0x88, 0x6E, 0x77, 0x75, 0x73, 0x98, 0x83, 0x8E, 0x83, 0x71, 0x73, 0x88, 0x7C, 0x91, 0x8F, 0x7C, 
0x88, 0x75, 0x77, 0x81, 0x7E, 0x85, 0x91, 0x7E, 0x78, 0x78, 0x65, 0x81, 0x7C, 0x8A, 0x8C, 0x7E, 0x6A, 0x77, 0x71, 0x83, 
0x93, 0x87, 0x8E, 0x7A, 0x75, 0x80, 0x85, 0x85, 0x96, 0x88, 0x81, 0x85, 0x70, 0x80, 0x78, 0x80, 0x88, 0x88, 0x7A, 0x77, 
0x69, 0x6C, 0x83, 0x7A, 0x95, 0x83, 0x75, 0x70, 0x75, 0x77, 0x95, 0x8E, 0x8C, 0x8C, 0x70, 0x7E, 0x83, 0x80, 0x8C, 0x91, 
0x80, 0x88, 0x7A, 0x6C, 0x83, 0x70, 0x87, 0x8E, 0x83, 0x77, 0x77, 0x61, 0x7A, 0x85, 0x83, 0x9A, 0x7C, 0x73, 0x77, 0x77, 
0x80, 0x96, 0x87, 0x8C, 0x87, 0x6E, 0x85, 0x7C, 0x80, 0x8C, 0x8C, 0x81, 0x87, 0x71, 0x71, 0x80, 0x75, 0x8F, 0x8C, 0x81, 
0x77, 0x71, 0x6A, 0x83, 0x83, 0x8C, 0x8E, 0x71, 0x75, 0x73, 0x77, 0x87, 0x8E, 0x85, 0x8C, 0x78, 0x77, 0x85, 0x7A, 0x8A, 
0x8C, 0x8A, 0x88, 0x83, 0x6E, 0x7C, 0x78, 0x83, 0x98, 0x83, 0x81, 0x70, 0x69, 0x71, 0x85, 0x80, 0x93, 0x80, 0x6A, 0x78, 
0x6E, 0x81, 0x8A, 0x8A, 0x8A, 0x8E, 0x73, 0x83, 0x83, 0x7A, 0x96, 0x8A, 0x8E, 0x88, 0x77, 0x6C, 0x7E, 0x73, 0x8A, 0x95, 
0x77, 0x7C, 0x69, 0x6A, 0x7C, 0x85, 0x85, 0x8F, 0x75, 0x71, 0x7E, 0x71, 0x8A, 0x8C, 0x88, 0x8C, 0x87, 0x75, 0x85, 0x7A, 
0x7E, 0x93, 0x87, 0x8C, 0x7E, 0x70, 0x71, 0x7A, 0x78, 0x95, 0x88, 0x78, 0x77, 0x65, 0x73, 0x81, 0x8A, 0x8C, 0x8A, 0x70, 
0x7A, 0x77, 0x7C, 0x8E, 0x83, 0x8C, 0x87, 0x7E, 0x78, 0x81, 0x73, 0x8A, 0x8F, 0x8A, 0x91, 0x71, 0x73, 0x73, 0x7C, 0x88, 
0x9A, 0x80, 0x7E, 0x70, 0x65, 0x83, 0x7E, 0x8A, 0x8A, 0x7A, 0x6E, 0x7C, 0x70, 0x81, 0x8A, 0x7E, 0x91, 0x81, 0x7A, 0x7E, 
0x7A, 0x7A, 0x95, 0x8C, 0x91, 0x8C, 0x6C, 0x78, 0x77, 0x81, 0x8F, 0x91, 0x77, 0x7A, 0x67, 0x70, 0x83, 0x7E, 0x88, 0x85, 
0x71, 0x73, 0x7A, 0x73, 0x88, 0x85, 0x88, 0x95, 0x80, 0x85, 0x7E, 0x7E, 0x83, 0x9A, 0x8C, 0x93, 0x78, 0x6C, 0x78, 0x75, 
0x88, 0x8E, 0x81, 0x71, 0x73, 0x63, 0x7C, 0x81, 0x80, 0x8C, 0x7A, 0x7A, 0x7A, 0x78, 0x7A, 0x8E, 0x83, 0x93, 0x8E, 0x7A, 
0x85, 0x73, 0x7C, 0x8C, 0x91, 0x88, 0x8C, 0x69, 0x70, 0x78, 0x78, 0x8F, 0x88, 0x7A, 0x75, 0x70, 0x70, 0x85, 0x81, 0x88, 
0x8C, 0x77, 0x81, 0x78, 0x78, 0x7E, 0x87, 0x81, 0x96, 0x80, 0x7C, 0x7E, 0x70, 0x83, 0x8F, 0x8E, 0x8C, 0x80, 0x67, 0x7E, 
0x78, 0x85, 0x96, 0x81, 0x7C, 0x75, 0x70, 0x77, 0x87, 0x78, 0x8A, 0x7E, 0x77, 0x80, 0x71, 0x7A, 0x7E, 0x85, 0x88, 0x95, 
0x78, 0x81, 0x77, 0x7A, 0x93, 0x91, 0x91, 0x8A, 0x77, 0x70, 0x81, 0x7C, 0x8E, 0x8C, 0x73, 0x7E, 0x6C, 0x73, 0x7C, 0x7E, 
0x77, 0x8A, 0x77, 0x7E, 0x7C, 0x73, 0x7E, 0x81, 0x88, 0x95, 0x8E, 0x7E, 0x85, 0x75, 0x87, 0x95, 0x8C, 0x91, 0x80, 0x6E, 
0x75, 0x7C, 0x7A, 0x8F, 0x7C, 0x78, 0x77, 0x6C, 0x7A, 0x7C, 0x7A, 0x80, 0x87, 0x77, 0x88, 0x77, 0x78, 0x85, 0x81, 0x8F, 
0x93, 0x83, 0x7A, 0x7C, 0x71, 0x8E, 0x8F, 0x88, 0x8C, 0x70, 0x73, 0x78, 0x7E, 0x81, 0x8E, 0x73, 0x80, 0x75, 0x73, 0x83, 
0x7A, 0x80, 0x87, 0x83, 0x7E, 0x85, 0x70, 0x7C, 0x83, 0x85, 0x93, 0x87, 0x7C, 0x7A, 0x77, 0x7E, 0x93, 0x88, 0x8E, 0x81, 
0x71, 0x7E, 0x7C, 0x85, 0x8A, 0x85, 0x75, 0x83, 0x6E, 0x7C, 0x7C, 0x77, 0x80, 0x80, 0x7A, 0x7E, 0x7A, 0x6E, 0x83, 0x7C, 
0x88, 0x93, 0x7C, 0x80, 0x78, 0x7C, 0x8A, 0x96, 0x87, 0x8F, 0x77, 0x78, 0x81, 0x7A, 0x87, 0x83, 0x78, 0x78, 0x7C, 0x6C, 
0x7E, 0x75, 0x75, 0x85, 0x7A, 0x80, 0x7E, 0x73, 0x77, 0x8A, 0x83, 0x96, 0x8C, 0x7E, 0x83, 0x7A, 0x87, 0x91, 0x8F, 0x85, 
0x88, 0x70, 0x7E, 0x7C, 0x7A, 0x87, 0x7C, 0x78, 0x7A, 0x75, 0x71, 0x80, 0x73, 0x83, 0x87, 0x7E, 0x85, 0x7C, 0x77, 0x83, 
0x88, 0x88, 0x96, 0x7E, 0x7E, 0x7C, 0x78, 0x8A, 0x8C, 0x85, 0x85, 0x7A, 0x70, 0x83, 0x78, 0x81, 0x85, 0x77, 0x7E, 0x7C, 
0x77, 0x7A, 0x80, 0x77, 0x8C, 0x80, 0x83, 0x81, 0x71, 0x78, 0x83, 0x87, 0x8C, 0x8C, 0x75, 0x80, 0x78, 0x80, 0x91, 0x88, 
0x87, 0x81, 0x7A, 0x7A, 0x88, 0x7C, 0x8A, 0x80, 0x7A, 0x83, 0x78, 0x77, 0x7C, 0x75, 0x7C, 0x8A, 0x77, 0x80, 0x75, 0x70, 
0x80, 0x83, 0x88, 0x8A, 0x80, 0x77, 0x85, 0x7A, 0x91, 0x91, 0x85, 0x8A, 0x80, 0x7A, 0x81, 0x83, 0x7C, 0x88, 0x73, 0x7E, 
0x7C, 0x71, 0x75, 0x77, 0x77, 0x81, 0x81, 0x78, 0x83, 0x70, 0x7A, 0x88, 0x87, 0x91, 0x8A, 0x83, 0x80, 0x87, 0x80, 0x98, 
0x87, 0x85, 0x85, 0x78, 0x7C, 0x80, 0x7A, 0x7C, 0x80, 0x73, 0x81, 0x73, 0x71, 0x7C, 0x75, 0x80, 0x88, 0x81, 0x7E, 0x81, 
0x71, 0x87, 0x88, 0x88, 0x8F, 0x80, 0x7C, 0x7E, 0x80, 0x83, 0x8F, 0x7A, 0x88, 0x7C, 0x7A, 0x81, 0x7E, 0x7A, 0x81, 0x7C, 
0x7C, 0x85, 0x73, 0x7A, 0x7C, 0x78, 0x88, 0x85, 0x7E, 0x7E, 0x77, 0x71, 0x8C, 0x80, 0x8A, 0x85, 0x7A, 0x7E, 0x80, 0x81, 
0x8E, 0x8A, 0x7E, 0x8C, 0x7C, 0x81, 0x85, 0x7A, 0x83, 0x81, 0x7E, 0x81, 0x81, 0x6C, 0x7C, 0x75, 0x7E, 0x87, 0x7A, 0x7C, 
0x78, 0x71, 0x7C, 0x8C, 0x80, 0x8E, 0x7E, 0x7E, 0x83, 0x83, 0x88, 0x8F, 0x83, 0x83, 0x8A, 0x7C, 0x85, 0x7C, 0x77, 0x81, 
0x7C, 0x7E, 0x7E, 0x75, 0x6C, 0x7C, 0x71, 0x87, 0x80, 0x7A, 0x7C, 0x78, 0x78, 0x8A, 0x8A, 0x87, 0x8F, 0x7C, 0x87, 0x87, 
0x83, 0x8E, 0x88, 0x80, 0x85, 0x83, 0x78, 0x83, 0x73, 0x7E, 0x80, 0x78, 0x80, 0x7A, 0x70, 0x75, 0x7C, 0x78, 0x8E, 0x7C, 
0x80, 0x7E, 0x77, 0x81, 0x8E, 0x85, 0x87, 0x87, 0x7A, 0x88, 0x80, 0x81, 0x8A, 0x7C, 0x81, 0x85, 0x80, 0x7A, 0x81, 0x73, 
0x85, 0x7E, 0x7E, 0x81, 0x77, 0x75, 0x7C, 0x7C, 0x81, 0x88, 0x75, 0x7E, 0x77, 0x77, 0x87, 0x85, 0x81, 0x85, 0x7E, 0x7E, 
0x88, 0x7C, 0x8A, 0x85, 0x80, 0x88, 0x87, 0x81, 0x81, 0x7E, 0x7C, 0x8A, 0x7A, 0x85, 0x7A, 0x70, 0x75, 0x7A, 0x7A, 0x83, 
0x7E, 0x71, 0x80, 0x71, 0x80, 0x88, 0x81, 0x85, 0x81, 0x80, 0x87, 0x8A, 0x80, 0x91, 0x81, 0x85, 0x8A, 0x83, 0x80, 0x7E, 
0x78, 0x80, 0x83, 0x77, 0x81, 0x70, 0x6E, 0x78, 0x78, 0x80, 0x83, 0x78, 0x78, 0x81, 0x77, 0x8C, 0x87, 0x83, 0x88, 0x83, 
0x85, 0x8C, 0x85, 0x83, 0x8C, 0x7C, 0x8A, 0x83, 0x7C, 0x7C, 0x78, 0x78, 0x81, 0x7C, 0x78, 0x81, 0x6C, 0x78, 0x7C, 0x7E, 
0x85, 0x80, 0x7A, 0x7E, 0x7E, 0x7E, 0x8E, 0x7E, 0x87, 0x81, 0x7E, 0x87, 0x85, 0x7E, 0x85, 0x83, 0x7C, 0x8C, 0x7C, 0x80, 
0x7C, 0x78, 0x80, 0x85, 0x7E, 0x80, 0x7C, 0x70, 0x81, 0x7C, 0x83, 0x83, 0x78, 0x78, 0x80, 0x78, 0x81, 0x88, 0x7A, 0x85, 
0x7E, 0x81, 0x8A, 0x81, 0x83, 0x88, 0x83, 0x85, 0x8E, 0x7A, 0x85, 0x7E, 0x7E, 0x87, 0x83, 0x78, 0x7E, 0x73, 0x71, 0x80, 
0x75, 0x80, 0x78, 0x73, 0x7A, 0x7E, 0x7E, 0x88, 0x83, 0x7C, 0x88, 0x80, 0x8C, 0x88, 0x83, 0x88, 0x87, 0x83, 0x8A, 0x87, 
0x78, 0x83, 0x75, 0x81, 0x81, 0x78, 0x77, 0x77, 0x6C, 0x7A, 0x80, 0x78, 0x85, 0x75, 0x78, 0x80, 0x80, 0x87, 0x88, 0x80, 
0x85, 0x88, 0x80, 0x91, 0x83, 0x85, 0x87, 0x83, 0x83, 0x87, 0x7C, 0x78, 0x7E, 0x77, 0x85, 0x7E, 0x78, 0x7A, 0x75, 0x77, 
0x83, 0x7E, 0x80, 0x83, 0x73, 0x81, 0x81, 0x81, 0x88, 0x83, 0x7C, 0x87, 0x81, 0x81, 0x8A, 0x78, 0x87, 0x81, 0x83, 0x85, 
0x83, 0x77, 0x81, 0x7C, 0x80, 0x8C, 0x7A, 0x7C, 0x7A, 0x75, 0x7E, 0x83, 0x7C, 0x7E, 0x7C, 0x70, 0x83, 0x78, 0x83, 0x83, 
0x7C, 0x7C, 0x87, 0x7E, 0x87, 0x88, 0x7E, 0x8C, 0x87, 0x87, 0x88, 0x81, 0x7E, 0x83, 0x80, 0x85, 0x87, 0x75, 0x7A, 0x71, 
0x77, 0x7E, 0x7C, 0x78, 0x7A, 0x73, 0x77, 0x81, 0x78, 0x88, 0x80, 0x83, 0x85, 0x87, 0x85, 0x8C, 0x81, 0x87, 0x8E, 0x83, 
0x8A, 0x83, 0x7A, 0x80, 0x7E, 0x7E, 0x85, 0x7C, 0x71, 0x7A, 0x6C, 0x7E, 0x7E, 0x7A, 0x7E, 0x7C, 0x77, 0x81, 0x81, 0x7E, 
0x8C, 0x7E, 0x87, 0x8A, 0x83, 0x87, 0x88, 0x7E, 0x88, 0x8A, 0x80, 0x88, 0x78, 0x78, 0x80, 0x7C, 0x80, 0x85, 0x75, 0x77, 
0x7A, 0x71, 0x87, 0x7E, 0x80, 0x7E, 0x7A, 0x78, 0x87, 0x7E, 0x83, 0x87, 0x7C, 0x88, 0x81, 0x80, 0x85, 0x81, 0x7E, 0x8A, 
0x85, 0x81, 0x85, 0x75, 0x81, 0x81, 0x81, 0x85, 0x81, 0x75, 0x7A, 0x78, 0x7C, 0x87, 0x78, 0x7E, 0x78, 0x77, 0x7A, 0x81, 
0x7A, 0x81, 0x81, 0x7E, 0x88, 0x7E, 0x85, 0x83, 0x81, 0x8A, 0x8E, 0x85, 0x87, 0x80, 0x7A, 0x88, 0x80, 0x87, 0x81, 0x78, 
0x75, 0x78, 0x73, 0x7E, 0x7C, 0x75, 0x80, 0x75, 0x78, 0x80, 0x7C, 0x7E, 0x87, 0x80, 0x88, 0x8A, 0x7A, 0x8A, 0x83, 0x88, 
0x8E, 0x8A, 0x81, 0x87, 0x77, 0x7C, 0x85, 0x7A, 0x85, 0x7A, 0x73, 0x77, 0x77, 0x75, 0x83, 0x7A, 0x7A, 0x81, 0x75, 0x80, 
0x81, 0x80, 0x83, 0x88, 0x81, 0x8C, 0x83, 0x7E, 0x87, 0x7E, 0x8A, 0x8A, 0x85, 0x7E, 0x7E, 0x77, 0x80, 0x83, 0x7E, 0x85, 
0x75, 0x7A, 0x77, 0x78, 0x7E, 0x83, 0x7A, 0x80, 0x7E, 0x77, 0x81, 0x7A, 0x81, 0x83, 0x83, 0x85, 0x87, 0x78, 0x80, 0x81, 
0x80, 0x8E, 0x83, 0x83, 0x81, 0x7A, 0x7E, 0x88, 0x80, 0x83, 0x83, 0x75, 0x7E, 0x75, 0x78, 0x80, 0x7E, 0x77, 0x83, 0x75, 
0x77, 0x7E, 0x73, 0x83, 0x81, 0x81, 0x85, 0x85, 0x7A, 0x87, 0x83, 0x88, 0x93, 0x83, 0x87, 0x81, 0x7C, 0x83, 0x8A, 0x7E, 
0x87, 0x7C, 0x73, 0x7C, 0x73, 0x78, 0x7C, 0x78, 0x78, 0x81, 0x73, 0x7C, 0x7C, 0x78, 0x88, 0x85, 0x88, 0x88, 0x81, 0x80, 
0x88, 0x83, 0x8E, 0x8C, 0x80, 0x85, 0x7A, 0x7C, 0x81, 0x80, 0x7A, 0x81, 0x73, 0x78, 0x77, 0x71, 0x7E, 0x7A, 0x7C, 0x81, 
0x7C, 0x78, 0x7E, 0x7C, 0x83, 0x8C, 0x83, 0x8C, 0x81, 0x7E, 0x80, 0x85, 0x83, 0x8F, 0x83, 0x81, 0x80, 0x77, 0x81, 0x80, 
0x80, 0x81, 0x80, 0x77, 0x7E, 0x75, 0x78, 0x81, 0x7A, 0x83, 0x81, 0x7A, 0x7A, 0x7E, 0x7A, 0x88, 0x85, 0x80, 0x8A, 0x78, 
0x7C, 0x81, 0x83, 0x87, 0x8E, 0x7E, 0x85, 0x7E, 0x7A, 0x85, 0x81, 0x81, 0x83, 0x7E, 0x7A, 0x7E, 0x73, 0x7A, 0x80, 0x78, 
0x83, 0x7C, 0x75, 0x78, 0x78, 0x7A, 0x8A, 0x81, 0x85, 0x85, 0x78, 0x83, 0x87, 0x8A, 0x8C, 0x8C, 0x81, 0x87, 0x7A, 0x7E, 
0x85, 0x7E, 0x83, 0x81, 0x7A, 0x78, 0x75, 0x71, 0x7C, 0x7A, 0x7C, 0x81, 0x75, 0x7A, 0x78, 0x7C, 0x85, 0x8A, 0x81, 0x8C, 
0x7E, 0x80, 0x88, 0x83, 0x8C, 0x8A, 0x85, 0x83, 0x83, 0x77, 0x83, 0x7E, 0x7C, 0x85, 0x78, 0x7A, 0x77, 0x73, 0x73, 0x81, 
0x7A, 0x85, 0x80, 0x77, 0x7C, 0x78, 0x83, 0x8A, 0x88, 0x83, 0x8A, 0x77, 0x80, 0x83, 0x83, 0x8A, 0x85, 0x80, 0x83, 0x7E, 
0x77, 0x85, 0x7E, 0x81, 0x88, 0x7C, 0x7E, 0x77, 0x75, 0x7C, 0x83, 0x7C, 0x8A, 0x78, 0x77, 0x7A, 0x78, 0x83, 0x88, 0x83, 
0x81, 0x81, 0x78, 0x83, 0x81, 0x83, 0x8A, 0x83, 0x87, 0x81, 0x7E, 0x7E, 0x85, 0x7C, 0x88, 0x81, 0x7C, 0x7A, 0x70, 0x77, 
0x7C, 0x7E, 0x7E, 0x80, 0x71, 0x78, 0x75, 0x7C, 0x87, 0x83, 0x85, 0x85, 0x80, 0x80, 0x8A, 0x83, 0x8A, 0x8C, 0x83, 0x8C, 
0x80, 0x7E, 0x80, 0x80, 0x7E, 0x88, 0x78, 0x7C, 0x75, 0x6E, 0x7A, 0x7E, 0x7C, 0x81, 0x7C, 0x73, 0x7E, 0x77, 0x83, 0x8C, 
0x83, 0x88, 0x87, 0x7E, 0x85, 0x87, 0x80, 0x8E, 0x83, 0x85, 0x87, 0x7A, 0x7A, 0x7E, 0x7E, 0x80, 0x85, 0x75, 0x7C, 0x71, 
0x71, 0x80, 0x7E, 0x81, 0x83, 0x7A, 0x78, 0x7E, 0x7A, 0x88, 0x85, 0x81, 0x88, 0x80, 0x7E, 0x83, 0x81, 0x81, 0x8C, 0x81, 
0x87, 0x80, 0x77, 0x7E, 0x7E, 0x81, 0x87, 0x83, 0x7A, 0x7C, 0x71, 0x7E, 0x81, 0x80, 0x83, 0x7E, 0x77, 0x78, 0x7A, 0x7E, 
0x87, 0x7E, 0x85, 0x83, 0x7C, 0x81, 0x80, 0x81, 0x88, 0x8A, 0x83, 0x8C, 0x7C, 0x7E, 0x80, 0x7E, 0x87, 0x87, 0x7C, 0x78, 
0x78, 0x70, 0x80, 0x7C, 0x7E, 0x80, 0x77, 0x75, 0x78, 0x7A, 0x80, 0x87, 0x7E, 0x8C, 0x83, 0x81, 0x87, 0x81, 0x87, 0x8C, 
0x88, 0x87, 0x88, 0x77, 0x80, 0x7E, 0x80, 0x88, 0x80, 0x7A, 0x77, 0x73, 0x73, 0x83, 0x7A, 0x80, 0x7E, 0x78, 0x7C, 0x7E, 
0x7E, 0x87, 0x85, 0x85, 0x8C, 0x80, 0x83, 0x85, 0x80, 0x87, 0x88, 0x87, 0x85, 0x80, 0x75, 0x80, 0x78, 0x81, 0x83, 0x7C, 
0x78, 0x77, 0x75, 0x7C, 0x81, 0x7C, 0x85, 0x7A, 0x7C, 0x7E, 0x7C, 0x81, 0x83, 0x81, 0x87, 0x88, 0x7E, 0x85, 0x7C, 0x81, 
0x88, 0x85, 0x87, 0x83, 0x7A, 0x7C, 0x81, 0x7C, 0x8C, 0x81, 0x7C, 0x7C, 0x75, 0x78, 0x80, 0x7E, 0x7C, 0x81, 0x77, 0x7E, 
0x7A, 0x78, 0x81, 0x80, 0x81, 0x87, 0x81, 0x7E, 0x85, 0x7A, 0x88, 0x8A, 0x87, 0x87, 0x83, 0x78, 0x81, 0x80, 0x80, 0x8A, 
0x7A, 0x7A, 0x78, 0x73, 0x7C, 0x7E, 0x7A, 0x7C, 0x7C, 0x75, 0x80, 0x78, 0x7E, 0x80, 0x81, 0x87, 0x88, 0x81, 0x81, 0x85, 
0x81, 0x8E, 0x88, 0x88, 0x85, 0x7A, 0x7A, 0x81, 0x80, 0x83, 0x81, 0x75, 0x7A, 0x73, 0x78, 0x7E, 0x7A, 0x7E, 0x80, 0x7C, 
0x7C, 0x81, 0x78, 0x85, 0x80, 0x85, 0x8C, 0x87, 0x80, 0x83, 0x80, 0x85, 0x8C, 0x85, 0x87, 0x7E, 0x78, 0x80, 0x7E, 0x80, 
0x85, 0x7E, 0x75, 0x7E, 0x73, 0x80, 0x7E, 0x7A, 0x80, 0x80, 0x7A, 0x80, 0x7E, 0x78, 0x85, 0x80, 0x87, 0x87, 0x80, 0x7E, 
0x81, 0x7E, 0x88, 0x88, 0x81, 0x87, 0x7A, 0x7A, 0x81, 0x81, 0x85, 0x83, 0x7C, 0x7A, 0x7C, 0x77, 0x81, 0x7A, 0x7E, 0x7E, 
0x7C, 0x7C, 0x80, 0x78, 0x7C, 0x83, 0x80, 0x88, 0x81, 0x7C, 0x80, 0x80, 0x85, 0x8C, 0x88, 0x85, 0x85, 0x77, 0x81, 0x81, 
0x81, 0x85, 0x7C, 0x78, 0x7A, 0x77, 0x77, 0x7E, 0x75, 0x7E, 0x7C, 0x7A, 0x7E, 0x7C, 0x77, 0x83, 0x83, 0x87, 0x8C, 0x80, 
0x83, 0x80, 0x81, 0x8C, 0x8C, 0x85, 0x83, 0x7E, 0x78, 0x83, 0x7E, 0x83, 0x81, 0x78, 0x78, 0x7C, 0x75, 0x7A, 0x7E, 0x77, 
0x85, 0x7E, 0x7E, 0x80, 0x7A, 0x7E, 0x85, 0x85, 0x88, 0x8A, 0x7E, 0x83, 0x7E, 0x83, 0x8C, 0x87, 0x81, 0x80, 0x7A, 0x7C, 
0x83, 0x7C, 0x85, 0x7C, 0x78, 0x7C, 0x7C, 0x78, 0x7E, 0x7C, 0x7C, 0x85, 0x7C, 0x81, 0x7C, 0x78, 0x80, 0x83, 0x85, 0x88, 
0x81, 0x7C, 0x81, 0x7E, 0x8A, 0x8A, 0x83, 0x81, 0x7E, 0x7C, 0x83, 0x81, 0x81, 0x83, 0x7A, 0x80, 0x7C, 0x78, 0x7E, 0x7A, 
0x7A, 0x81, 0x7E, 0x7C, 0x80, 0x77, 0x7C, 0x81, 0x83, 0x87, 0x85, 0x7C, 0x80, 0x81, 0x83, 0x8F, 0x87, 0x85, 0x81, 0x7C, 
0x80, 0x83, 0x7E, 0x81, 0x80, 0x77, 0x80, 0x78, 0x78, 0x7A, 0x78, 0x7A, 0x81, 0x7C, 0x7A, 0x7E, 0x75, 0x83, 0x87, 0x88, 
0x88, 0x83, 0x7C, 0x83, 0x85, 0x87, 0x8F, 0x83, 0x83, 0x7E, 0x7C, 0x80, 0x81, 0x7E, 0x81, 0x7C, 0x78, 0x80, 0x75, 0x78, 
0x7A, 0x7A, 0x83, 0x81, 0x7E, 0x80, 0x7C, 0x7C, 0x87, 0x85, 0x8A, 0x83, 0x7E, 0x81, 0x81, 0x85, 0x8A, 0x88, 0x7E, 0x83, 
0x7A, 0x80, 0x80, 0x80, 0x7E, 0x81, 0x7A, 0x7E, 0x7E, 0x75, 0x7E, 0x78, 0x7E, 0x83, 0x7C, 0x7C, 0x7A, 0x75, 0x7E, 0x88, 
0x81, 0x88, 0x7E, 0x7E, 0x80, 0x81, 0x85, 0x8A, 0x81, 0x80, 0x83, 0x7C, 0x85, 0x81, 0x81, 0x83, 0x7E, 0x7C, 0x7E, 0x7A, 
0x75, 0x7E, 0x77, 0x83, 0x80, 0x7C, 0x7C, 0x77, 0x7A, 0x83, 0x87, 0x85, 0x88, 0x78, 0x7E, 0x81, 0x85, 0x8A, 0x8A, 0x81, 
0x83, 0x81, 0x7E, 0x85, 0x7E, 0x80, 0x81, 0x7A, 0x7C, 0x7A, 0x75, 0x78, 0x7C, 0x7A, 0x83, 0x7A, 0x7C, 0x78, 0x77, 0x80, 
0x88, 0x87, 0x87, 0x83, 0x7C, 0x85, 0x83, 0x87, 0x8C, 0x85, 0x83, 0x81, 0x7E, 0x80, 0x83, 0x7A, 0x83, 0x7E, 0x7C, 0x7E, 
0x77, 0x77, 0x7C, 0x7C, 0x81, 0x85, 0x7A, 0x80, 0x7A, 0x7C, 0x85, 0x87, 0x87, 0x87, 0x7E, 0x7E, 0x85, 0x7E, 0x8A, 0x88, 
0x7E, 0x83, 0x7E, 0x7C, 0x80, 0x7E, 0x7C, 0x85, 0x7A, 0x80, 0x7C, 0x75, 0x78, 0x7C, 0x7E, 0x85, 0x81, 0x78, 0x7C, 0x77, 
0x7E, 0x85, 0x85, 0x85, 0x81, 0x7A, 0x7E, 0x83, 0x81, 0x8C, 0x83, 0x83, 0x83, 0x7E, 0x7E, 0x81, 0x7E, 0x80, 0x85, 0x7C, 
0x81, 0x77, 0x77, 0x7A, 0x7C, 0x81, 0x83, 0x7A, 0x78, 0x7A, 0x77, 0x85, 0x83, 0x85, 0x85, 0x7E, 0x80, 0x81, 0x83, 0x87, 
0x8C, 0x80, 0x87, 0x81, 0x7E, 0x80, 0x7C, 0x7E, 0x83, 0x7E, 0x7C, 0x7E, 0x70, 0x78, 0x78, 0x7E, 0x85, 0x80, 0x7A, 0x7C, 
0x77, 0x7C, 0x8A, 0x83, 0x87, 0x83, 0x7C, 0x83, 0x83, 0x83, 0x88, 0x87, 0x81, 0x87, 0x7E, 0x7E, 0x80, 0x7A, 0x81, 0x83, 
0x7E, 0x7E, 0x7A, 0x70, 0x7C, 0x7E, 0x83, 0x85, 0x7E, 0x7C, 0x7E, 0x7A, 0x81, 0x88, 0x81, 0x87, 0x7E, 0x80, 0x81, 0x81, 
0x83, 0x87, 0x85, 0x81, 0x85, 0x7A, 0x7E, 0x7C, 0x7E, 0x83, 0x80, 0x7E, 0x7A, 0x75, 0x75, 0x80, 0x7C, 0x85, 0x81, 0x78, 
0x7C, 0x78, 0x7E, 0x85, 0x83, 0x83, 0x83, 0x7A, 0x80, 0x81, 0x81, 0x88, 0x83, 0x85, 0x87, 0x81, 0x7E, 0x83, 0x7A, 0x83, 
0x85, 0x81, 0x80, 0x78, 0x73, 0x7A, 0x7E, 0x7E, 0x85, 0x7C, 0x7A, 0x7A, 0x7A, 0x80, 0x85, 0x83, 0x83, 0x85, 0x7C, 0x87, 
0x80, 0x85, 0x88, 0x85, 0x85, 0x85, 0x7C, 0x7E, 0x80, 0x78, 0x85, 0x81, 0x7C, 0x7C, 0x75, 0x75, 0x7C, 0x7C, 0x80, 0x81, 
0x78, 0x7C, 0x7A, 0x7C, 0x85, 0x83, 0x85, 0x85, 0x81, 0x81, 0x85, 0x7C, 0x87, 0x83, 0x85, 0x85, 0x81, 0x7C, 0x7C, 0x7A, 
0x80, 0x85, 0x7E, 0x80, 0x78, 0x75, 0x7A, 0x7E, 0x80, 0x85, 0x80, 0x78, 0x80, 0x78, 0x83, 0x83, 0x85, 0x85, 0x81, 0x80, 
0x81, 0x81, 0x7E, 0x87, 0x81, 0x85, 0x85, 0x7C, 0x7C, 0x7E, 0x7C, 0x85, 0x85, 0x7C, 0x81, 0x77, 0x77, 0x7E, 0x7C, 0x83, 
0x81, 0x7A, 0x7A, 0x7E, 0x77, 0x83, 0x80, 0x81, 0x87, 0x81, 0x7E, 0x83, 0x80, 0x81, 0x88, 0x83, 0x88, 0x83, 0x7A, 0x7E, 
0x7E, 0x80, 0x87, 0x81, 0x7C, 0x7E, 0x75, 0x7C, 0x7E, 0x7E, 0x81, 0x7E, 0x7A, 0x7C, 0x7C, 0x7C, 0x85, 0x80, 0x87, 0x85, 
0x80, 0x83, 0x80, 0x81, 0x87, 0x87, 0x85, 0x87, 0x7E, 0x7C, 0x7C, 0x7C, 0x83, 0x83, 0x80, 0x7A, 0x78, 0x75, 0x7E, 0x78, 
0x80, 0x80, 0x7A, 0x7E, 0x7C, 0x7C, 0x83, 0x83, 0x80, 0x88, 0x81, 0x83, 0x83, 0x7C, 0x81, 0x85, 0x85, 0x87, 0x83, 0x78, 
0x7E, 0x7C, 0x80, 0x85, 0x80, 0x7E, 0x7C, 0x78, 0x7A, 0x80, 0x7A, 0x83, 0x80, 0x7C, 0x80, 0x7E, 0x7E, 0x81, 0x81, 0x83, 
0x87, 0x7E, 0x83, 0x80, 0x7E, 0x83, 0x83, 0x85, 0x85, 0x80, 0x7A, 0x80, 0x7C, 0x81, 0x83, 0x80, 0x7E, 0x78, 0x78, 0x7E, 
0x7E, 0x7C, 0x83, 0x7A, 0x7E, 0x7C, 0x7A, 0x80, 0x7E, 0x81, 0x85, 0x83, 0x80, 0x83, 0x7C, 0x81, 0x85, 0x85, 0x88, 0x83, 
0x80, 0x7E, 0x7E, 0x7E, 0x87, 0x7E, 0x80, 0x7E, 0x77, 0x7A, 0x7C, 0x7A, 0x7E, 0x80, 0x7A, 0x81, 0x7A, 0x7C, 0x81, 0x80, 
0x85, 0x87, 0x83, 0x83, 0x83, 0x7C, 0x85, 0x85, 0x85, 0x87, 0x80, 0x7C, 0x80, 0x80, 0x7E, 0x83, 0x7A, 0x80, 0x7C, 0x77, 
0x7E, 0x7C, 0x7C, 0x80, 0x7E, 0x7C, 0x81, 0x7C, 0x81, 0x81, 0x80, 0x87, 0x85, 0x81, 0x80, 0x81, 0x7E, 0x87, 0x81, 0x87, 
0x83, 0x7A, 0x7E, 0x7C, 0x7E, 0x83, 0x83, 0x7E, 0x80, 0x78, 0x7C, 0x7E, 0x7C, 0x7E, 0x7E, 0x80, 0x80, 0x80, 0x7C, 0x80, 
0x80, 0x83, 0x88, 0x81, 0x83, 0x7E, 0x80, 0x81, 0x85, 0x81, 0x88, 0x7E, 0x7E, 0x81, 0x7E, 0x81, 0x83, 0x80, 0x7E, 0x80, 
0x77, 0x80, 0x7C, 0x7A, 0x80, 0x7E, 0x80, 0x80, 0x7C, 0x7C, 0x80, 0x7E, 0x87, 0x85, 0x7E, 0x81, 0x7E, 0x81, 0x85, 0x87, 
0x83, 0x87, 0x7C, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x80, 0x7A, 0x7A, 0x80, 0x7A, 0x7E, 0x80, 0x7C, 0x80, 0x7E, 0x7C, 
0x80, 0x81, 0x80, 0x88, 0x85, 0x81, 0x81, 0x7C, 0x87, 0x85, 0x85, 0x85, 0x81, 0x7C, 0x81, 0x7C, 0x80, 0x80, 0x7E, 0x7E, 
0x7E, 0x7A, 0x7A, 0x7E, 0x77, 0x80, 0x7E, 0x7E, 0x81, 0x7A, 0x80, 0x7E, 0x81, 0x83, 0x88, 0x80, 0x83, 0x7E, 0x80, 0x85, 
0x83, 0x83, 0x83, 0x7E, 0x7E, 0x83, 0x7E, 0x81, 0x80, 0x7C, 0x81, 0x7A, 0x7C, 0x7E, 0x7C, 0x7C, 0x83, 0x7E, 0x81, 0x80, 
0x7C, 0x80, 0x7E, 0x81, 0x85, 0x83, 0x7E, 0x81, 0x7C, 0x81, 0x85, 0x80, 0x85, 0x80, 0x7E, 0x80, 0x81, 0x7E, 0x81, 0x7E, 
0x7E, 0x80, 0x7A, 0x7E, 0x7E, 0x7A, 0x7C, 0x80, 0x7C, 0x81, 0x7C, 0x7A, 0x80, 0x7E, 0x83, 0x85, 0x80, 0x81, 0x81, 0x80, 
0x85, 0x83, 0x81, 0x85, 0x7E, 0x80, 0x81, 0x81, 0x7E, 0x81, 0x7C, 0x80, 0x7E, 0x7A, 0x80, 0x7A, 0x7C, 0x7E, 0x80, 0x7C, 
0x81, 0x7C, 0x7E, 0x81, 0x80, 0x85, 0x83, 0x80, 0x81, 0x81, 0x81, 0x87, 0x83, 0x81, 0x83, 0x7C, 0x81, 0x80, 0x80, 0x80, 
0x80, 0x7C, 0x80, 0x7A, 0x7E, 0x7E, 0x78, 0x80, 0x7E, 0x7E, 0x7E, 0x7E, 0x7C, 0x81, 0x81, 0x81, 0x85, 0x7E, 0x81, 0x81, 
0x80, 0x83, 0x83, 0x7E, 0x81, 0x81, 0x7E, 0x83, 0x7E, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x7A, 0x7E, 0x7E, 0x7A, 0x81, 0x7E, 
0x80, 0x7E, 0x7C, 0x7E, 0x81, 0x80, 0x83, 0x83, 0x7E, 0x81, 0x7E, 0x81, 0x85, 0x83, 0x81, 0x83, 0x7E, 0x81, 0x83, 0x7C, 
0x81, 0x80, 0x7E, 0x80, 0x7E, 0x7A, 0x7E, 0x7A, 0x7C, 0x81, 0x7C, 0x81, 0x7E, 0x7A, 0x80, 0x81, 0x7E, 0x85, 0x80, 0x80, 
0x83, 0x7E, 0x83, 0x83, 0x80, 0x81, 0x81, 0x7E, 0x81, 0x80, 0x7C, 0x83, 0x7C, 0x80, 0x7E, 0x7C, 0x7C, 0x80, 0x7C, 0x81, 
0x80, 0x7C, 0x80, 0x7C, 0x7E, 0x81, 0x83, 0x83, 0x85, 0x7E, 0x80, 0x81, 0x81, 0x85, 0x81, 0x81, 0x81, 0x80, 0x7E, 0x81, 
0x7E, 0x81, 0x80, 0x7C, 0x80, 0x7C, 0x7A, 0x7E, 0x7E, 0x7C, 0x81, 0x7C, 0x7E, 0x80, 0x7C, 0x81, 0x81, 0x81, 0x81, 0x81, 
0x80, 0x81, 0x81, 0x80, 0x85, 0x80, 0x83, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x83, 0x7E, 0x7C, 0x81, 0x7C, 0x7E, 0x7E, 0x7C, 
0x80, 0x81, 0x7C, 0x7E, 0x7E, 0x7C, 0x83, 0x80, 0x80, 0x81, 0x7E, 0x80, 0x83, 0x81, 0x83, 0x83, 0x80, 0x83, 0x80, 0x81, 
0x80, 0x80, 0x7E, 0x81, 0x7C, 0x7E, 0x7E, 0x7A, 0x80, 0x7E, 0x7E, 0x80, 0x80, 0x7C, 0x80, 0x7C, 0x7E, 0x85, 0x80, 0x85, 
0x7E, 0x80, 0x80, 0x83, 0x80, 0x85, 0x83, 0x80, 0x83, 0x7E, 0x80, 0x80, 0x7E, 0x81, 0x80, 0x7E, 0x7E, 0x7C, 0x7A, 0x80, 
0x7E, 0x80, 0x7E, 0x7E, 0x7E, 0x7E, 0x7C, 0x81, 0x83, 0x80, 0x83, 0x80, 0x80, 0x83, 0x81, 0x83, 0x85, 0x81, 0x83, 0x81, 
0x7E, 0x81, 0x7E, 0x7E, 0x81, 0x7E, 0x7E, 0x80, 0x7A, 0x7C, 0x80, 0x7E, 0x81, 0x7E, 0x7E, 0x7C, 0x7E, 0x7E, 0x85, 0x80, 
0x81, 0x83, 0x7C, 0x81, 0x83, 0x80, 0x83, 0x81, 0x80, 0x83, 0x80, 0x7E, 0x81, 0x7C, 0x81, 0x80, 0x7E, 0x7E, 0x7E, 0x7A, 
0x80, 0x80, 0x80, 0x83, 0x7A, 0x7E, 0x80, 0x80, 0x80, 0x83, 0x80, 0x83, 0x80, 0x7E, 0x83, 0x80, 0x83, 0x83, 0x81, 0x81, 
0x81, 0x7E, 0x80, 0x80, 0x7E, 0x83, 0x80, 0x7C, 0x7E, 0x7C, 0x7C, 0x80, 0x7E, 0x80, 0x81, 0x78, 0x80, 0x7C, 0x7E, 0x80, 
0x81, 0x7E, 0x81, 0x80, 0x80, 0x81, 0x7E, 0x83, 0x81, 0x81, 0x81, 0x81, 0x7C, 0x80, 0x7E, 0x80, 0x83, 0x7E, 0x7E, 0x7C, 
0x7C, 0x7E, 0x80, 0x7E, 0x80, 0x7E, 0x7C, 0x81, 0x7C, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E, 0x81, 0x81, 0x80, 0x85, 0x80, 
0x81, 0x81, 0x80, 0x7E, 0x81, 0x7E, 0x81, 0x83, 0x7C, 0x80, 0x7C, 0x7E, 0x81, 0x80, 0x7E, 0x80, 0x7C, 0x7E, 0x80, 0x7E, 
0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x83, 0x80, 0x81, 0x83, 0x80, 0x81, 0x80, 0x7E, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7E, 
0x80, 0x78, 0x7E, 0x80, 0x81, 0x80, 0x7E, 0x7C, 0x80, 0x7E, 0x80, 0x83, 0x80, 0x81, 0x81, 0x80, 0x81, 0x83, 0x80, 0x83, 
0x83, 0x81, 0x83, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x81, 0x7C, 0x7C, 0x7C, 0x7C, 0x81, 0x7E, 0x80, 0x7E, 0x7E, 0x7C, 0x80, 
0x7E, 0x80, 0x83, 0x80, 0x83, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x85, 0x81, 0x81, 0x81, 0x7C, 0x80, 0x80, 0x80, 0x81, 0x81, 
0x7C, 0x7E, 0x7A, 0x7C, 0x80, 0x7E, 0x80, 0x7E, 0x7E, 0x7E, 0x81, 0x80, 0x81, 0x81, 0x80, 0x83, 0x7E, 0x81, 0x81, 0x80, 
0x81, 0x85, 0x81, 0x83, 0x80, 0x7C, 0x83, 0x80, 0x81, 0x81, 0x7E, 0x7C, 0x7E, 0x7C, 0x80, 0x81, 0x7E, 0x81, 0x7C, 0x7E, 
0x80, 0x7E, 0x80, 0x80, 0x80, 0x81, 0x83, 0x7E, 0x83, 0x7E, 0x81, 0x83, 0x83, 0x80, 0x81, 0x7C, 0x80, 0x80, 0x80, 0x83, 
0x80, 0x7C, 0x7C, 0x7E, 0x7E, 0x81, 0x7E, 0x7C, 0x81, 0x7C, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7E, 0x81, 
0x7E, 0x83, 0x83, 0x81, 0x80, 0x7E, 0x7C, 0x81, 0x80, 0x81, 0x83, 0x7C, 0x7C, 0x7E, 0x7E, 0x80, 0x80, 0x7E, 0x7E, 0x80, 
0x7A, 0x81, 0x7C, 0x80, 0x80, 0x83, 0x80, 0x81, 0x7E, 0x80, 0x81, 0x80, 0x83, 0x81, 0x83, 0x80, 0x7E, 0x7E, 0x81, 0x81, 
0x81, 0x81, 0x7A, 0x80, 0x7E, 0x7E, 0x80, 0x81, 0x7E, 0x81, 0x7E, 0x7E, 0x81, 0x7C, 0x81, 0x81, 0x80, 0x81, 0x80, 0x7C, 
0x80, 0x80, 0x81, 0x85, 0x81, 0x81, 0x80, 0x7C, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7C, 0x80, 0x7C, 0x80, 0x80, 0x7E, 0x80, 
0x80, 0x7C, 0x80, 0x7E, 0x7E, 0x81, 0x80, 0x83, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x83, 0x85, 0x81, 0x81, 0x7A, 0x80, 0x81, 
0x81, 0x83, 0x81, 0x7C, 0x7C, 0x80, 0x7C, 0x81, 0x80, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x7E, 0x80, 0x83, 0x80, 0x83, 0x80, 
0x7E, 0x7E, 0x80, 0x81, 0x87, 0x81, 0x80, 0x80, 0x7A, 0x80, 0x80, 0x83, 0x83, 0x81, 0x7C, 0x80, 0x7C, 0x7E, 0x81, 0x7E, 
0x80, 0x80, 0x80, 0x7E, 0x7C, 0x7E, 0x81, 0x83, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x81, 0x83, 0x85, 0x81, 0x80, 0x7E, 0x7E, 
0x81, 0x80, 0x81, 0x81, 0x7E, 0x7C, 0x7E, 0x7C, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x7E, 0x7E, 0x80, 0x83, 0x81, 0x83, 
0x81, 0x7C, 0x81, 0x7E, 0x83, 0x85, 0x83, 0x81, 0x81, 0x7C, 0x80, 0x83, 0x80, 0x83, 0x7E, 0x7C, 0x80, 0x7C, 0x7E, 0x80, 
0x80, 0x80, 0x81, 0x7E, 0x80, 0x7C, 0x7C, 0x80, 0x83, 0x81, 0x83, 0x7E, 0x7C, 0x80, 0x80, 0x83, 0x85, 0x81, 0x80, 0x7E, 
0x7E, 0x80, 0x80, 0x80, 0x81, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x80, 0x7E, 0x81, 0x80, 0x7E, 0x80, 0x7C, 0x7E, 0x83, 0x83, 
0x83, 0x83, 0x7E, 0x7E, 0x81, 0x81, 0x85, 0x81, 0x81, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x7E, 0x80, 0x7C, 0x7E, 
0x80, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x7E, 0x7C, 0x81, 0x81, 0x81, 0x83, 0x80, 0x7C, 0x81, 0x81, 0x81, 0x87, 0x7E, 0x81, 
0x80, 0x7E, 0x81, 0x81, 0x7E, 0x81, 0x80, 0x7E, 0x81, 0x7A, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x7C, 0x7E, 0x7C, 0x7C, 0x81, 
0x80, 0x83, 0x80, 0x7E, 0x7C, 0x81, 0x81, 0x85, 0x81, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x81, 0x81, 0x81, 0x7E, 0x80, 0x7E, 
0x7C, 0x7E, 0x7E, 0x81, 0x81, 0x81, 0x7C, 0x7C, 0x7A, 0x80, 0x85, 0x81, 0x81, 0x7E, 0x7E, 0x80, 0x81, 0x83, 0x85, 0x81, 
0x80, 0x80, 0x7C, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x80, 0x7C, 0x7E, 0x80, 0x7E, 0x83, 0x81, 0x7E, 0x7E, 0x7C, 0x7E, 
0x81, 0x81, 0x83, 0x81, 0x7C, 0x80, 0x80, 0x81, 0x83, 0x83, 0x80, 0x80, 0x80, 0x7E, 0x81, 0x7E, 0x81, 0x81, 0x80, 0x80, 
0x80, 0x7A, 0x7E, 0x80, 0x80, 0x83, 0x7E, 0x80, 0x7E, 0x7E, 0x7E, 0x83, 0x81, 0x81, 0x80, 0x7C, 0x80, 0x81, 0x83, 0x83, 
0x81, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x7E, 0x81, 0x80, 0x81, 0x80, 0x7E, 0x7C, 0x80, 0x7E, 0x81, 0x80, 0x7E, 0x7E, 0x7A, 
0x7E, 0x81, 0x81, 0x80, 0x81, 0x7E, 0x80, 0x81, 0x80, 0x83, 0x80, 0x81, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x7E, 0x83, 0x7E, 
0x81, 0x7C, 0x7C, 0x7E, 0x80, 0x80, 0x83, 0x80, 0x7C, 0x7E, 0x7C, 0x80, 0x83, 0x83, 0x81, 0x81, 0x7C, 0x80, 0x81, 0x81, 
0x85, 0x80, 0x81, 0x80, 0x7E, 0x7E, 0x80, 0x7C, 0x81, 0x81, 0x80, 0x80, 0x7C, 0x7E, 0x7E, 0x80, 0x81, 0x81, 0x7E, 0x7E, 
0x7E, 0x7E, 0x81, 0x83, 0x80, 0x80, 0x80, 0x7E, 0x81, 0x80, 0x81, 0x83, 0x7E, 0x81, 0x80, 0x80, 0x7E, 0x80, 0x7E, 0x83, 
0x81, 0x81, 0x80, 0x7C, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 
0x80, 0x81, 0x80, 0x80, 0x83, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x80, 0x80, 0x7C, 0x7A, 0x80, 0x80, 0x83, 0x80, 0x80, 
0x7C, 0x7E, 0x7E, 0x81, 0x81, 0x7E, 0x81, 0x80, 0x7E, 0x81, 0x81, 0x80, 0x83, 0x80, 0x81, 0x81, 0x7C, 0x7E, 0x80, 0x80, 
0x81, 0x80, 0x7E, 0x80, 0x7C, 0x7E, 0x80, 0x81, 0x83, 0x81, 0x7E, 0x7C, 0x80, 0x80, 0x83, 0x80, 0x80, 0x80, 0x7E, 0x81, 
0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x7E, 0x81, 0x81, 0x80, 0x80, 0x7E, 0x7A, 0x81, 0x80, 0x81, 0x81, 
0x7C, 0x7E, 0x7E, 0x80, 0x81, 0x83, 0x80, 0x81, 0x80, 0x7E, 0x81, 0x7E, 0x81, 0x80, 0x81, 0x81, 0x81, 0x7E, 0x80, 0x80, 
0x7E, 0x83, 0x81, 0x80, 0x7E, 0x7E, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x7C, 0x80, 0x7E, 0x7E, 0x80, 0x80, 0x80, 0x81, 0x7E, 
0x80, 0x80, 0x7C, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E, 0x80, 0x7E, 0x81, 0x81, 0x80, 0x80, 0x7E, 0x7C, 0x7E, 0x81, 0x7E, 
0x81, 0x7E, 0x7E, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x81, 0x80, 0x81, 0x80, 0x80, 0x83, 0x81, 0x83, 0x81, 0x80, 0x7E, 
0x7E, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7C, 0x7E, 0x80, 0x80, 0x81, 0x81, 0x7E, 0x80, 0x80, 0x80, 0x81, 0x80, 0x81, 0x80, 
0x81, 0x80, 0x80, 0x7E, 0x80, 0x81, 0x81, 0x81, 0x7E, 0x7C, 0x7E, 0x7E, 0x80, 0x81, 0x80, 0x80, 0x7E, 0x7C, 0x80, 0x80, 
0x80, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7E, 0x81, 0x80, 0x80, 0x81, 0x7E, 
0x7E, 0x80, 0x80, 0x80, 0x83, 0x80, 0x80, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x80, 0x80, 
0x81, 0x80, 0x80, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x7E, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7E, 0x81, 
0x80, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x80, 0x7E, 0x80, 0x7E, 0x81, 0x81, 0x80, 0x80, 0x7E, 0x80, 0x81, 0x81, 0x80, 0x81, 
0x7E, 0x80, 0x81, 0x7E, 0x81, 0x80, 0x80, 0x80, 0x7E, 0x7C, 0x81, 0x81, 0x80, 0x80, 0x7E, 0x7E, 0x80, 0x80, 0x80, 0x80, 
0x7E, 0x83, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7C, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x80, 0x7E, 
0x7E, 0x80, 0x7E, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7E, 0x7E, 0x81, 0x80, 0x81, 0x7E, 0x7E, 0x80, 0x80, 0x81, 0x81, 0x80, 
0x81, 0x81, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x81, 0x7E, 0x7E, 0x80, 0x81, 0x7E, 0x81, 0x7E, 0x7E, 0x80, 0x7C, 0x80, 
0x80, 0x7E, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7E, 0x7E, 0x80, 0x80, 0x81, 0x80, 0x7E, 0x80, 
0x7E, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7E, 0x7E, 0x80, 0x81, 0x81, 0x80, 0x81, 0x80, 0x81, 0x7E, 0x81, 0x81, 
0x80, 0x80, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7E, 
0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7E, 0x80, 0x7E, 0x81, 0x80, 0x80, 0x80, 0x7C, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x7C, 
0x81, 0x7E, 0x80, 0x80, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x80, 0x81, 0x81, 0x7E, 0x80, 0x80, 0x7E, 0x80, 
0x81, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7E, 0x81, 0x7E, 0x81, 0x80, 0x7E, 0x80, 0x80, 0x80, 0x80, 
0x80, 0x7C, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 
0x7E, 0x80, 0x80, 0x7C, 0x80, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x83, 0x80, 0x80, 0x7E, 0x80, 
0x80, 0x81, 0x80, 0x80, 0x80, 0x7E, 0x80, 0x7E, 0x80, 0x80, 0x81  };


// Для кнопки
int b2_code = 2;
int b2 = 0;


int ledPin = 13;
int speakerPin = 11; // Can be either 3 or 11, two PWM outputs connected to Timer 2
volatile uint16_t sample;
byte lastSample;


void stopPlayback()
{
    // Disable playback per-sample interrupt.
    TIMSK1 &= ~_BV(OCIE1A);

    // Disable the per-sample timer completely.
    TCCR1B &= ~_BV(CS10);

    // Disable the PWM timer.
    TCCR2B &= ~_BV(CS10);

    digitalWrite(speakerPin, LOW);
}

// This is called at 8000 Hz to load the next sample.
ISR(TIMER1_COMPA_vect) {
    if (sample >= sounddata_length) {
        if (sample == sounddata_length + lastSample) {
            stopPlayback();
        }
        else {
            if(speakerPin==11){
                // Ramp down to zero to reduce the click at the end of playback.
                OCR2A = sounddata_length + lastSample - sample;
            } else {
                OCR2B = sounddata_length + lastSample - sample;                
            }
        }
    }
    else {
        if(speakerPin==11){
            OCR2A = pgm_read_byte(&sounddata_data[sample]);
        } else {
            OCR2B = pgm_read_byte(&sounddata_data[sample]);            
        }
    }

    ++sample;
}

void startPlayback()
{
    pinMode(speakerPin, OUTPUT);

    // Set up Timer 2 to do pulse width modulation on the speaker
    // pin.

    // Use internal clock (datasheet p.160)
    ASSR &= ~(_BV(EXCLK) | _BV(AS2));

    // Set fast PWM mode  (p.157)
    TCCR2A |= _BV(WGM21) | _BV(WGM20);
    TCCR2B &= ~_BV(WGM22);

    if(speakerPin==11){
        // Do non-inverting PWM on pin OC2A (p.155)
        // On the Arduino this is pin 11.
        TCCR2A = (TCCR2A | _BV(COM2A1)) & ~_BV(COM2A0);
        TCCR2A &= ~(_BV(COM2B1) | _BV(COM2B0));
        // No prescaler (p.158)
        TCCR2B = (TCCR2B & ~(_BV(CS12) | _BV(CS11))) | _BV(CS10);

        // Set initial pulse width to the first sample.
        OCR2A = pgm_read_byte(&sounddata_data[0]);
    } else {
        // Do non-inverting PWM on pin OC2B (p.155)
        // On the Arduino this is pin 3.
        TCCR2A = (TCCR2A | _BV(COM2B1)) & ~_BV(COM2B0);
        TCCR2A &= ~(_BV(COM2A1) | _BV(COM2A0));
        // No prescaler (p.158)
        TCCR2B = (TCCR2B & ~(_BV(CS12) | _BV(CS11))) | _BV(CS10);

        // Set initial pulse width to the first sample.
        OCR2B = pgm_read_byte(&sounddata_data[0]);
    }





    // Set up Timer 1 to send a sample every interrupt.

    cli();

    // Set CTC mode (Clear Timer on Compare Match) (p.133)
    // Have to set OCR1A *after*, otherwise it gets reset to 0!
    TCCR1B = (TCCR1B & ~_BV(WGM13)) | _BV(WGM12);
    TCCR1A = TCCR1A & ~(_BV(WGM11) | _BV(WGM10));

    // No prescaler (p.134)
    TCCR1B = (TCCR1B & ~(_BV(CS12) | _BV(CS11))) | _BV(CS10);

    // Set the compare register (OCR1A).
    // OCR1A is a 16-bit register, so we have to do this with
    // interrupts disabled to be safe.
    OCR1A = F_CPU / SAMPLE_RATE;    // 16e6 / 8000 = 2000

    // Enable interrupt when TCNT1 == OCR1A (p.136)
    TIMSK1 |= _BV(OCIE1A);

    lastSample = pgm_read_byte(&sounddata_data[sounddata_length-1]);
    sample = 0;
    sei();
}


void setup()
{
    pinMode(b2_code, INPUT);
    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, HIGH);
}

void loop()
{
  // Если нажали кнопку, то проиграем звук
  int b2_new = digitalRead(b2_code);
  if (b2_new != b2) {
    b2 = b2_new;
    if (b2_new == 1) {
      startPlayback();
    }
  }
}

Комментариев нет:

Отправить комментарий