Для дальнейшей работы мне понадобится воспроизвести заранее записанный звук на Adruino. Сделал по этому примеру, там есть информация и о том, как сконвертировать свой звук в нужный формат, я это пока не стал делать. Рингтон взял из архива "PWM Sound.rar". Вот что получилось.
Ниже код, я его слепил в 1 файл.
Ниже код, я его слепил в 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(); } } }
Комментариев нет:
Отправить комментарий