add Vic20 emulator to PICO

pull/9/head
jean-marcharvengt 2021-11-04 15:17:40 +01:00
rodzic 8b81aa65a9
commit f6ea8dc516
26 zmienionych plików z 6493 dodań i 1 usunięć

Wyświetl plik

@ -69,6 +69,22 @@ set(PICO5200_SOURCES
pico5200/pico5200.cpp
)
set(PICO20_SOURCES
pico20/IC.cpp
# pico20/MOS6502.cpp
# pico20/Register8.cpp
# pico20/Register16.cpp
# pico20/cpu.cpp
# pico20/cpu.c
pico20/mos6502.cpp
pico20/MOS6522.cpp
pico20/MOS6561.cpp
pico20/v20.cpp
pico20/emuapi.cpp
pico20/AudioPlaySystem.cpp
pico20/pico20.cpp
)
set(PICO64_SOURCES
pico64/c64.cpp
pico64/cia1.cpp
@ -268,7 +284,8 @@ set(TESTPSRAM_SOURCES
#add_compile_definitions(OVERRULE_WIDTH=320 OVERRULE_HEIGHT=192)
add_executable(mcume
# ${GFXENGINE_SOURCES}
${PICO64_SOURCES}
${PICO20_SOURCES}
# ${PICO64_SOURCES}
# ${PICO81_SOURCES}
# ${PICO800_SOURCES}
# ${PICO5200_SOURCES}

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

BIN
MCUME_pico/pico20/.DS_Store vendored 100644

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -0,0 +1,176 @@
#include "emuapi.h"
#ifdef HAS_SND
#include "AudioPlaySystem.h"
#define SAMPLERATE AUDIO_SAMPLE_RATE_EXACT
#define CLOCKFREQ 985248
#ifndef CUSTOM_SND
static const short square[]={
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
32767,32767,32767,32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,
};
const short noise[] {
-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,
-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767,32767,-32767,
-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,
-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,32767,-32767,-32767,32767,32767,-32767,
-32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,-32767,32767,32767,-32767,
-32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,-32767,-32767,
32767,-32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,-32767,32767,-32767,32767,32767,32767,-32767,-32767,
32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,-32767,32767,32767,-32767,32767,-32767,32767,-32767,-32767,
32767,32767,-32767,-32767,-32767,32767,-32767,-32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,
32767,-32767,32767,-32767,-32767,32767,32767,32767,32767,32767,-32767,32767,-32767,32767,-32767,-32767,
};
#define NOISEBSIZE 0x100
typedef struct
{
unsigned int spos;
unsigned int sinc;
unsigned int vol;
} Channel;
static Channel chan[6] = {
{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0} };
#endif
volatile bool playing = false;
static void snd_Reset(void)
{
#ifndef CUSTOM_SND
chan[0].vol = 0;
chan[1].vol = 0;
chan[2].vol = 0;
chan[3].vol = 0;
chan[4].vol = 0;
chan[5].vol = 0;
chan[0].sinc = 0;
chan[1].sinc = 0;
chan[2].sinc = 0;
chan[3].sinc = 0;
chan[4].sinc = 0;
chan[5].sinc = 0;
#endif
}
#ifdef CUSTOM_SND
//extern "C" {
void SND_Process(void *sndbuffer, int sndn);
//}
#endif
#include <stdio.h>
void AudioPlaySystem::snd_Mixer(short * stream, int len )
{
if (playing)
{
#ifdef CUSTOM_SND
//printf("s\n");
SND_Process((void*)stream, len);
#else
int i;
long s;
len = len >> 1;
short v0=chan[0].vol;
short v1=chan[1].vol;
short v2=chan[2].vol;
short v3=chan[3].vol;
short v4=chan[4].vol;
short v5=chan[5].vol;
for (i=0;i<len;i++)
{
s =((v0*square[(chan[0].spos>>8)&0x3f])>>11);
s+=((v1*square[(chan[1].spos>>8)&0x3f])>>11);
s+=((v2*square[(chan[2].spos>>8)&0x3f])>>11);
s+=((v3*noise[(chan[3].spos>>8)&(NOISEBSIZE-1)])>>11);
s+=((v4*noise[(chan[4].spos>>8)&(NOISEBSIZE-1)])>>11);
s+=((v5*noise[(chan[5].spos>>8)&(NOISEBSIZE-1)])>>11);
*stream++ = (short)(s);
*stream++ = (short)(s);
chan[0].spos += chan[0].sinc;
chan[1].spos += chan[1].sinc;
chan[2].spos += chan[2].sinc;
chan[3].spos += chan[3].sinc;
chan[4].spos += chan[4].sinc;
chan[5].spos += chan[5].sinc;
}
#endif
}
}
void AudioPlaySystem::begin(void)
{
this->reset();
}
void AudioPlaySystem::start(void)
{
playing = true;
}
void AudioPlaySystem::setSampleParameters(float clockfreq, float samplerate) {
}
void AudioPlaySystem::reset(void)
{
snd_Reset();
}
void AudioPlaySystem::stop(void)
{
playing = false;
}
bool AudioPlaySystem::isPlaying(void)
{
return playing;
}
void AudioPlaySystem::sound(int C, int F, int V) {
#ifndef CUSTOM_SND
if (C < 6) {
chan[C].vol = V;
chan[C].sinc = F>>1;
}
#endif
}
void AudioPlaySystem::step(void) {
}
#endif

Wyświetl plik

@ -0,0 +1,26 @@
#ifndef audioplaysystem_h_
#define audioplaysystem_h_
#ifdef HAS_SND
#include "platform_config.h"
class AudioPlaySystem
{
public:
AudioPlaySystem(void) { };
void begin(void);
void setSampleParameters(float clockfreq, float samplerate);
void reset(void);
void start(void);
void stop(void);
bool isPlaying(void);
void sound(int C, int F, int V);
void buzz(int size, int val);
void step(void);
static void snd_Mixer(short * stream, int len );
};
#endif
#endif

Wyświetl plik

@ -0,0 +1,21 @@
#include "IC.h"
IC::IC() : cycles(0) {
}
IC::~IC() {
}
uint32_t IC::getCycles() {
return this->cycles;
}
uint32_t IC::getClockSpeed() {
return this->clockSpeed;
}
void IC::setClockSpeed(uint32_t clock) {
this->clockSpeed = clock;
}

Wyświetl plik

@ -0,0 +1,28 @@
#ifndef _H_IC
#define _H_IC
#include <stdint.h>
/*
Simple base class for integrated circuits.
*/
class IC {
public:
IC();
~IC();
// Getters
uint32_t getCycles();
uint32_t getClockSpeed();
// Setters
void setClockSpeed(uint32_t clock);
protected:
// Derived classes handle incrementing this counter
uint32_t cycles;
// Determines the maximum frequenzy an IC can operate in hertz
uint32_t clockSpeed;
};
#endif

Wyświetl plik

@ -0,0 +1,20 @@
#ifndef _H_MOS6502MEMORY
#define _H_MOS6502MEMORY
#include <stdint.h>
extern uint8_t vicmemory[];
#define readWord(location) (vicmemory[location])
#define writeWord(location,value) {vicmemory[location]=value;}
//extern uint8_t readWord( uint16_t location);
//extern void writeWord( uint16_t location, uint8_t value);
#define silentReadWord(location) (vicmemory[location])
#define silentWriteWord(location,value) {vicmemory[location]=value;}
#define silentReadDWord(location) (vicmemory[location] | vicmemory[location + 1] << 8)
#define silentWriteDWord(location,value) {vicmemory[location]=uint8_t(value & 0xFF); vicmemory[location + 1]=(uint8_t)((value >> 8) & 0xFF);}
#endif

Wyświetl plik

@ -0,0 +1,183 @@
#include "MOS6522.h"
#include "MOS6502Memory.h"
MOS6522::MOS6522() : IC()
, keyPressed(0)
, shiftPressed(false)
, cbmPressed(false) {
// Set clock speed
this->setClockSpeed(2000000);
}
MOS6522::~MOS6522() {
}
void MOS6522::setCpu(mos6502 *omos6502) {
this->omos6502 = omos6502;
}
void MOS6522::setKeyPressed(uint16_t key) {
/* Store high byte first
= 0x9120 << 8 | 0x9121
*/
keyPressed = key;
}
void MOS6522::setShiftPressed(bool state) {
this->shiftPressed = state;
}
void MOS6522::setCbmPressed(bool state) {
this->cbmPressed = state;
}
void MOS6522::setJoyStickPressed(Vic20JoyStickButton button, bool state) {
this->joyStick[button] = state;
}
void MOS6522::initialize() {
// Clear joystick memory
writeWord(0x9111, 0xFF);
}
void MOS6522::tick() {
// Tick timer cycle
this->tickTimers();
// Handle input in this cycle
this->joy1Input();
this->joy2Input();
this->keyboardInput();
// Increment cycles counter
this->cycles += 1;
}
void MOS6522::joy1Input() {
// Handle joystick input on VIA1
uint8_t via1PortAValue = silentReadWord(via1PORTA);
via1PortAValue |= 0x3c;
if (joyStick[Vic20JoyStickButton::Fire]) {
via1PortAValue &= ~0x20;
}
if (joyStick[Vic20JoyStickButton::Up]) {
via1PortAValue &= ~0x04;
}
if (joyStick[Vic20JoyStickButton::Down]) {
via1PortAValue &= ~0x08;
}
if (joyStick[Vic20JoyStickButton::Left]) {
via1PortAValue &= ~0x10;
}
silentWriteWord(via1PORTA, via1PortAValue);
silentWriteWord(via1PORTAMIRROR, via1PortAValue);
}
void MOS6522::joy2Input() {
uint8_t via2PortBValue = silentReadWord(this->via2PORTB);
// If this bit is input, set it to default value, else leave it as it is so it won't mess up keyboard input
if (!(silentReadWord(via2PortBDDR) & 0x80)) {
via2PortBValue |= 0x80;
}
// Joystick RIGHT ison VIA 2
if (joyStick[Vic20JoyStickButton::Right]) {
via2PortBValue &= ~0x80;
}
silentWriteWord(via2PORTB, via2PortBValue);
}
void MOS6522::keyboardInput() {
uint8_t via2PortAValue = silentReadWord(this->via2PORTA);
uint8_t via2PortBValue = silentReadWord(this->via2PORTB);
// Get row and column of key press
uint8_t column = (keyPressed >> 8) & 0xFF; // output
uint8_t row = keyPressed & 0xFF; //input
// Check whether keyboard should be scanned
if (via2PortBValue == 0) {
// If port b is 0 then the vic is asking whether any keys are pressed on the keyboard
via2PortAValue = keyPressed == 0 ? 0xFF : row;
}
else {
// Return keyboard row depending on column state
via2PortAValue = (via2PortBValue == column ? (row == 0 ? 0xFF : row) : 0xFF);
}
if ((via2PortBValue == 0xF7) && shiftPressed) {
// Return row of shift key
via2PortAValue = 0xFD & (keyPressed == 0 ? 0xFF : (column == 0xF7 ? row : 0xFF));
} else if (via2PortBValue == 0xDF && cbmPressed) {
// Return row of cbm key
via2PortAValue = 0xFE & (keyPressed == 0 ? 0xFF : (column == 0xDF ? row : 0xFF));
}
silentWriteWord(this->via2PORTA, via2PortAValue);
silentWriteWord(this->via2PORTAMIRROR, via2PortAValue);
}
void MOS6522::tickTimers() {
// Grab values of timer related registers
uint8_t interruptEnable = readWord(this->irqEnableAddress);
uint8_t interruptFlags = readWord(this->irqFlagsAddress);
// Get timer values
uint16_t timer1 = silentReadDWord(this->via2timer1DAddress);
uint16_t timer2 = silentReadDWord(this->via1timer2DAddress);
// If timer1 is active, decrement it
if (timer1 > 0) {
silentWriteDWord(this->via2timer1DAddress, --timer1);
}
if (timer1 == 0) {
// Set interrupt flag
interruptFlags |= 0x40;
silentWriteWord(this->irqFlagsAddress, interruptFlags);
}
// If timer2 is active and no latch, decrement it
if (silentReadWord(this->via2timer2HighByteLatch) != 0) {
if (timer2 > 0) {
silentWriteDWord(this->via1timer2DAddress, --timer2);
}
if (timer2 == 0) {
// Reset high byte latch
silentWriteDWord(this->via1timer2DAddress, silentReadDWord(this->via2timer2LowByteLatch));
silentWriteDWord(this->via2timer2HighByteLatch, 0);
// Set interrupt flag
interruptFlags |= 0x20;
silentWriteWord(this->irqFlagsAddress, interruptFlags);
}
}
// Check if an interrupt request exists in the system
if (interruptFlags & interruptEnable & 0x7F) {
// Send an interrupt request to the cpu
//if (omos6502->interrupt()) {
if (omos6502->IRQ()) {
uint8_t auxControl = readWord(this->auxControlAddress);
// Post interrupt operation
if (interruptFlags & 0x40) {
// Determine what to do with timer based on auxiliary control register
if (auxControl & 0x40) {
// Continuous interrupt
silentWriteDWord(this->via2timer1DAddress, silentReadDWord(this->via2timer1LowByteLatch));
}
// Reset interrupt flag
interruptFlags &= ~0x40;
silentWriteWord(irqFlagsAddress, interruptFlags);
}
if (interruptFlags & 0x20) {
// Reset interrupt flag
interruptFlags &= ~0x20;
silentWriteWord(irqFlagsAddress, interruptFlags);
}
}
}
}

Wyświetl plik

@ -0,0 +1,101 @@
#ifndef _H_MOS6522
#define _H_MOS6522
#include "IC.h"
#include "mos6502.h"
/*
Notes,
This single object will serve as emulation
for both VIA chips in the VIC-20.
References,
http://vic-20.appspot.com/docs/viausage.txt
http://vic-20.appspot.com/docs/vickey.txt
*/
class MOS6522 : public IC {
public:
MOS6522();
~MOS6522();
// Joystick
enum Vic20JoyStickButton { Fire = 0, Up = 1, Down = 2, Left = 3, Right = 4 };
// Via joystick interface
void setJoyStickPressed(Vic20JoyStickButton button, bool state);
// Via 2 Keyboard interface
void setKeyPressed(uint16_t key);
void setShiftPressed(bool state);
void setCbmPressed(bool state);
// Interface
void tick();
// Organize operations into separate methods for cleaner code
void tickTimers();
void joy1Input();
void joy2Input();
void keyboardInput();
void setCpu(mos6502 *omos6502);
void initialize();
private:
// Cpu reference
mos6502 *omos6502;
// Via 1 & 2 Joystick
bool joyStick[5];
// Via 2 Keyboard
uint16_t keyPressed;
bool shiftPressed;
bool cbmPressed;
// VIA 1 Joystick addresses
static const uint16_t via1PORTB = 0x9110;
static const uint16_t via1PORTA = 0x9111;
static const uint16_t via1PORTAMIRROR = 0x911F;
// Port A
static const uint8_t joyStickUpBit = 0x2;
static const uint8_t joyStickDownBit = 0x4;
static const uint8_t joyStickLeftBit = 0x8;
static const uint8_t joyStickFireBit = 0x10;
// VIA 1 ddrs
static const uint16_t via1PortBDDR = 0x9112;
static const uint16_t via1PortADDR = 0x9113;
// VIA 1 Timer
static const uint16_t via1timer2DAddress = 0x9118; //and 0x9119
// Via 2 Keyboard addresses + joystick right
static const uint16_t via2PORTB = 0x9120;
static const uint16_t via2PORTA = 0x9121;
static const uint16_t via2PORTAMIRROR = 0x912F;
// Port B
static const uint8_t joyStickRightBit = 0x80;
// VIA 2 ddrs
static const uint16_t via2PortBDDR = 0x9122;
static const uint16_t via2PortADDR = 0x9123;
// VIA 2 Timer
static const uint16_t via2timer1LowByteLatch = 0x9124;
static const uint16_t via2timer1HighByteLatch = 0x9125;
static const uint16_t via2timer1DAddress = 0x9126; //and 0x9127
static const uint16_t via2timer2LowByteLatch = 0x9128;
static const uint16_t via2timer2HighByteLatch = 0x9129;
// Via 2 Registers
static const uint16_t auxControlAddress = 0x912B;
static const uint16_t irqFlagsAddress = 0x912D;
static const uint16_t irqEnableAddress = 0x912E;
};
#endif

Wyświetl plik

@ -0,0 +1,323 @@
#include "MOS6561.h"
extern "C" {
#include "emuapi.h"
#include "platform_config.h"
}
#ifdef USE_VGA
#include "vga_t_dma.h"
typedef uint8_t Pixel;
#else
#include "tft_t_dma.h"
typedef uint16_t Pixel;
#endif
#define WIN_W TFT_WIDTH
#define WIN_H TFT_HEIGHT
//#include <stdio.h>
// definitions for easy access to registers
#define REG_COLPAGE_BASE (0x9400) // 0x9400+0x200 = 0x9600 unexpanded
#define REG_SCRPAGE_LO ((readWord(0x9002) & 0x80)<< 2) // 0x0200
#define REG_COLPAGE_LO ((readWord(0x9002) & 0x80)<< 2) // 0x0200
#define REG_NB_COLUMNS (readWord(0x9002) & 0x7F)
#define REG_RASTER_LO_RD (0x9003) // 0x80 >> 7
#define REG_DOUBLE_HEIGHT (readWord(0x9003) & 0x01)
#define REG_NB_ROWS ((readWord(0x9003) & 0x7E) >> 1) //x2 => 46
#define REG_RASTER_HI_RD (0x9004) // << 1 // 1E00 unexpanded?
#define REG_CHRMAP_PT (readWord(0x9005) & 0x0F)
#define REG_SCRPAGE_HIGH ((readWord(0x9005) & 0xF0) << 6) // 0x2C00
#define REG_AUXILIARY_COLOUR ((readWord(0x900E) & 0xF0) >> 4)
#define REG_BORDER_COLOUR (readWord(0x900F) & 0x7)
#define REG_BACKGROUND_COLOUR ((readWord(0x900F) & 0xF0) >> 4)
#define REG_HORI_OFFSET ((readWord(0x9000) & 0x7F)
#define REG_VERT_OFFSET ((readWord(0x9001) & 0xFF)
// C R H V
// 16 16 +6 +16
// 22 23 0 0
// 24 28 -3 -9
// 25 30 -3 -12
// 27 33 -5 -19
static Pixel vicPalette[15];
static uint16_t remap[16] = {
0x8000,
0x8400,
0x8800,
0x8c00,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x1000,
0x1400,
0x1800,
0x1c00
};
MOS6561::MOS6561() : IC(), curRow(0), frameReady(true) {
// Set clock speed
this->setClockSpeed(1108000);
}
MOS6561::~MOS6561() {
}
void MOS6561::initialize() {
// Initialize VIC palette
vicPalette[0] = RGBVAL16(0, 0, 0);
vicPalette[1] = RGBVAL16(255, 255, 255);
vicPalette[2] = RGBVAL16((182), (31), (33));
vicPalette[3] = RGBVAL16((77), (240), (255));
vicPalette[4] = RGBVAL16((180), (63), (255));
vicPalette[5] = RGBVAL16((68), (226), (55));
vicPalette[6] = RGBVAL16((15), (87), (247));
vicPalette[7] = RGBVAL16((220), (215), (27));
vicPalette[8] = RGBVAL16((202), (84), (0));
vicPalette[9] = RGBVAL16((233), (176), (114));
vicPalette[10] = RGBVAL16((231), (146), (147));
vicPalette[11] = RGBVAL16((154), (247), (253));
vicPalette[12] = RGBVAL16((224), (159), (255));
vicPalette[13] = RGBVAL16((143), (228), (147));
vicPalette[14] = RGBVAL16((130), (144), (255));
vicPalette[15] = RGBVAL16((229), (222), (133));
}
void MOS6561::renderBorder(uint16_t raster){
if (raster < WIN_H) {
Pixel bcol = vicPalette[REG_BORDER_COLOUR];
Pixel * dst = (Pixel *)emu_LineBuffer(raster);
for (int x=0; x < WIN_W; x++) {
*dst++ = bcol;
}
}
}
void MOS6561::renderLine(uint16_t raster, uint16_t row, uint8_t rowHeight, uint8_t chrLine) {
int curRow = row;
int nbRow = REG_NB_ROWS;
if ( (rowHeight == 16) && (nbRow >= 23) ) {
curRow = curRow/2;
nbRow = nbRow/2;
}
if (raster < WIN_H)
{
int nbCol = REG_NB_COLUMNS;
int bWidth = (WIN_W - nbCol*8)/2;
#define bakcol 0
#define borcol 1
#define forcol 2
#define auxcol 3
Pixel cols[4];
uint16_t screenPage = (REG_SCRPAGE_HIGH & ~0x2000) + REG_SCRPAGE_LO;
uint8_t * charPointer = &vicmemory[screenPage + (curRow * nbCol)];
uint16_t colourPage = REG_COLPAGE_BASE + REG_COLPAGE_LO;
uint8_t * colPointer = &vicmemory[colourPage + (curRow * nbCol)];
cols[borcol] = vicPalette[REG_BORDER_COLOUR];
cols[bakcol] = vicPalette[REG_BACKGROUND_COLOUR];
// Border Left
Pixel * dst = (Pixel *)emu_LineBuffer(raster);
for (int x=0; x < bWidth; x++) {
*dst++ = cols[borcol];
}
uint16_t chardefbase = remap[REG_CHRMAP_PT];
for (int x = 0; x < nbCol; x +=1)
{
uint16_t charpt = chardefbase + charPointer[x]*rowHeight + chrLine;
if ( (charpt > 0x2000) && (charpt < 0x3000) )
charpt += 0x6000;
uint8_t characterByte = vicmemory[charpt];
uint8_t colour = colPointer[x] & 0x7;
uint8_t multiColour = colPointer[x] & 0x8;
cols[forcol] = vicPalette[colour];
if (!multiColour) {
Pixel * dest = dst;
for (int a = 0; a < 8; a++) {
if ((characterByte << a) & 0x80) {
*dest++ = cols[forcol];
}
else {
*dest++ = cols[bakcol];
}
}
}
else {
Pixel * dest = dst;
cols[auxcol] = vicPalette[REG_AUXILIARY_COLOUR];
for (int a = 0; a < 8; a += 2) {
// Set colour
Pixel col = cols[((characterByte << a) & 0xC0) >> 6];
*dest++ = col;
*dest++ = col;
}
}
dst +=8;
}
// Border Right
for (int x=0; x < bWidth; x++) {
*dst++ = cols[borcol];
}
}
}
void MOS6561::renderRow(uint16_t raster, uint16_t row, uint8_t rowHeight)
{
int curRow = row;
int nbRow = REG_NB_ROWS;
//printf("rows %d of %d, cols=%d, rowHeight:%d\n", curRow, nbRow, nbCol, rowHeight);
if ( (rowHeight == 16) && (nbRow >= 23) ) {
curRow = curRow/2;
nbRow = nbRow/2;
}
if ((raster+curRow*rowHeight) < WIN_H)
{
int nbCol = REG_NB_COLUMNS;
int bWidth = (WIN_W - nbCol*8)/2;
#define bakcol 0
#define borcol 1
#define forcol 2
#define auxcol 3
Pixel cols[4];
uint16_t screenPage = (REG_SCRPAGE_HIGH & ~0x2000) + REG_SCRPAGE_LO;
uint8_t * charPointer = &vicmemory[screenPage + (curRow * nbCol)];
uint16_t colourPage = REG_COLPAGE_BASE + REG_COLPAGE_LO;
uint8_t * colPointer = &vicmemory[colourPage + (curRow * nbCol)];
cols[borcol] = vicPalette[REG_BORDER_COLOUR];
cols[bakcol] = vicPalette[REG_BACKGROUND_COLOUR];
for (int line=0; line < rowHeight; line++) {
// Border Left
Pixel * dst = (Pixel *)emu_LineBuffer(curRow*rowHeight+line+raster);
for (int x=0; x < bWidth; x++) {
*dst++ = cols[borcol];
}
uint16_t chardefbase = remap[REG_CHRMAP_PT];
for (int x = 0; x < nbCol; x +=1)
{
uint16_t charpt = chardefbase + charPointer[x]*rowHeight + line;
if ( (charpt > 0x2000) && (charpt < 0x3000) )
charpt += 0x6000;
uint8_t characterByte = vicmemory[charpt];
uint8_t colour = colPointer[x] & 0x7;
uint8_t multiColour = colPointer[x] & 0x8;
cols[forcol] = vicPalette[colour];
if (!multiColour) {
Pixel * dest = dst;
for (int a = 0; a < 8; a++) {
if ((characterByte << a) & 0x80) {
*dest++ = cols[forcol];
}
else {
*dest++ = cols[bakcol];
}
}
}
else {
Pixel * dest = dst;
cols[auxcol] = vicPalette[REG_AUXILIARY_COLOUR];
for (int a = 0; a < 8; a += 2) {
// Set colour
Pixel col = cols[((characterByte << a) & 0xC0) >> 6];
*dest++ = col;
*dest++ = col;
}
}
dst +=8;
}
// Border Right
for (int x=0; x < bWidth; x++) {
*dst++ = cols[borcol];
}
}
}
}
void MOS6561::renderFrame() {
this->frameReady = false;
}
bool MOS6561::isFrameReady() {
return this->frameReady;
}
void MOS6561::tick(int nbcycles) {
// Increment raster counter
uint16_t raster = readWord(REG_RASTER_HI_RD) << 1 | readWord(REG_RASTER_LO_RD) >> 7;
if (cycles % cyclesPerScanline == 0) {
uint8_t rowHeight = (REG_DOUBLE_HEIGHT?16:8);
if (raster <= lastScanline) {
raster += 1;
}
else {
raster = 0;
visScanlines = REG_NB_ROWS * rowHeight;
if ( (rowHeight == 16) && (REG_NB_ROWS >= 23) ) {
visScanlines = REG_NB_ROWS * 8;
}
firstVisibleScanline = (WIN_H-visScanlines)/2;
}
writeWord(REG_RASTER_LO_RD, (raster & 0x1) << 7 | (readWord(REG_RASTER_LO_RD) & 0x7F));
writeWord(REG_RASTER_HI_RD, raster >> 1);
if (visScanlines) {
if (raster < firstVisibleScanline) {
renderBorder(raster);
}
// If not blanking, update screen
else if (raster >= firstVisibleScanline && raster < (firstVisibleScanline+visScanlines)) {
// Update video
uint8_t chrLine = (raster-firstVisibleScanline) % rowHeight;
//renderLine(raster, this->curRow, rowHeight, chrLine);
if (chrLine == rowHeight-1) {
renderRow(firstVisibleScanline, this->curRow, rowHeight);
this->curRow++;
// End of screen reached
if (this->curRow >= REG_NB_ROWS) {
this->curRow = 0;
frameReady = true;
}
}
}
else {
renderBorder(raster);
}
}
}
// Increment cycle counter
this->cycles += nbcycles;
}

Wyświetl plik

@ -0,0 +1,51 @@
#ifndef _H_MOS6561
#define _H_MOS6561
#include <stdint.h>
#include "IC.h"
#include "MOS6502Memory.h"
/*
References,
http://vic-20.appspot.com/docs/6561.txt
http://vic-20.appspot.com/docs/vicregs.txt
http://vic-20.appspot.com/docs/6561help.txt
*/
class MOS6561 : public IC {
public:
MOS6561();
~MOS6561();
// Interface
void tick(int cycles);
void initialize();
// Getters, mostly depend on memory
bool isFrameReady();
void renderFrame();
void renderBorder(uint16_t raster);
void renderRow(uint16_t raster, uint16_t row, uint8_t rowHeight);
void renderLine(uint16_t raster, uint16_t row, uint8_t rowHeight, uint8_t chrLine);
private:
// Used as counters
uint8_t curRow;
uint16_t firstVisibleScanline;
uint16_t visScanlines;
// Determines if a full frame has been drawn
bool frameReady;
static const uint16_t lastScanline = 312;
public:
static const int cyclesPerScanline = 71;
static const uint16_t Audio1Register = 0x900A;
static const uint16_t Audio2Register = 0x900B;
static const uint16_t Audio3Register = 0x900C;
static const uint16_t Audio4Register = 0x900D;
static const uint16_t AudioVolRegister = 0x900E;
};
#endif

Wyświetl plik

@ -0,0 +1,514 @@
const unsigned char basicrom[8192] = {
0x78,0xE3,0x67,0xE4,0x43,0x42,0x4D,0x42,0x41,0x53,0x49,0x43,0x30,0xC8,0x41,0xC7,
0x1D,0xCD,0xF7,0xC8,0xA4,0xCB,0xBE,0xCB,0x80,0xD0,0x05,0xCC,0xA4,0xC9,0x9F,0xC8,
0x70,0xC8,0x27,0xC9,0x1C,0xC8,0x82,0xC8,0xD1,0xC8,0x3A,0xC9,0x2E,0xC8,0x4A,0xC9,
0x2C,0xD8,0x64,0xE1,0x52,0xE1,0x61,0xE1,0xB2,0xD3,0x23,0xD8,0x7F,0xCA,0x9F,0xCA,
0x56,0xC8,0x9B,0xC6,0x5D,0xC6,0x85,0xCA,0x26,0xE1,0xBA,0xE1,0xC3,0xE1,0x7A,0xCB,
0x41,0xC6,0x39,0xDC,0xCC,0xDC,0x58,0xDC,0x00,0x00,0x7D,0xD3,0x9E,0xD3,0x71,0xDF,
0x94,0xE0,0xEA,0xD9,0xED,0xDF,0x61,0xE2,0x68,0xE2,0xB1,0xE2,0x0B,0xE3,0x0D,0xD8,
0x7C,0xD7,0x65,0xD4,0xAD,0xD7,0x8B,0xD7,0xEC,0xD6,0x00,0xD7,0x2C,0xD7,0x37,0xD7,
0x79,0x69,0xD8,0x79,0x52,0xD8,0x7B,0x2A,0xDA,0x7B,0x11,0xDB,0x7F,0x7A,0xDF,0x50,
0xE8,0xCF,0x46,0xE5,0xCF,0x7D,0xB3,0xDF,0x5A,0xD3,0xCE,0x64,0x15,0xD0,0x45,0x4E,
0xC4,0x46,0x4F,0xD2,0x4E,0x45,0x58,0xD4,0x44,0x41,0x54,0xC1,0x49,0x4E,0x50,0x55,
0x54,0xA3,0x49,0x4E,0x50,0x55,0xD4,0x44,0x49,0xCD,0x52,0x45,0x41,0xC4,0x4C,0x45,
0xD4,0x47,0x4F,0x54,0xCF,0x52,0x55,0xCE,0x49,0xC6,0x52,0x45,0x53,0x54,0x4F,0x52,
0xC5,0x47,0x4F,0x53,0x55,0xC2,0x52,0x45,0x54,0x55,0x52,0xCE,0x52,0x45,0xCD,0x53,
0x54,0x4F,0xD0,0x4F,0xCE,0x57,0x41,0x49,0xD4,0x4C,0x4F,0x41,0xC4,0x53,0x41,0x56,
0xC5,0x56,0x45,0x52,0x49,0x46,0xD9,0x44,0x45,0xC6,0x50,0x4F,0x4B,0xC5,0x50,0x52,
0x49,0x4E,0x54,0xA3,0x50,0x52,0x49,0x4E,0xD4,0x43,0x4F,0x4E,0xD4,0x4C,0x49,0x53,
0xD4,0x43,0x4C,0xD2,0x43,0x4D,0xC4,0x53,0x59,0xD3,0x4F,0x50,0x45,0xCE,0x43,0x4C,
0x4F,0x53,0xC5,0x47,0x45,0xD4,0x4E,0x45,0xD7,0x54,0x41,0x42,0xA8,0x54,0xCF,0x46,
0xCE,0x53,0x50,0x43,0xA8,0x54,0x48,0x45,0xCE,0x4E,0x4F,0xD4,0x53,0x54,0x45,0xD0,
0xAB,0xAD,0xAA,0xAF,0xDE,0x41,0x4E,0xC4,0x4F,0xD2,0xBE,0xBD,0xBC,0x53,0x47,0xCE,
0x49,0x4E,0xD4,0x41,0x42,0xD3,0x55,0x53,0xD2,0x46,0x52,0xC5,0x50,0x4F,0xD3,0x53,
0x51,0xD2,0x52,0x4E,0xC4,0x4C,0x4F,0xC7,0x45,0x58,0xD0,0x43,0x4F,0xD3,0x53,0x49,
0xCE,0x54,0x41,0xCE,0x41,0x54,0xCE,0x50,0x45,0x45,0xCB,0x4C,0x45,0xCE,0x53,0x54,
0x52,0xA4,0x56,0x41,0xCC,0x41,0x53,0xC3,0x43,0x48,0x52,0xA4,0x4C,0x45,0x46,0x54,
0xA4,0x52,0x49,0x47,0x48,0x54,0xA4,0x4D,0x49,0x44,0xA4,0x47,0xCF,0x00,0x54,0x4F,
0x4F,0x20,0x4D,0x41,0x4E,0x59,0x20,0x46,0x49,0x4C,0x45,0xD3,0x46,0x49,0x4C,0x45,
0x20,0x4F,0x50,0x45,0xCE,0x46,0x49,0x4C,0x45,0x20,0x4E,0x4F,0x54,0x20,0x4F,0x50,
0x45,0xCE,0x46,0x49,0x4C,0x45,0x20,0x4E,0x4F,0x54,0x20,0x46,0x4F,0x55,0x4E,0xC4,
0x44,0x45,0x56,0x49,0x43,0x45,0x20,0x4E,0x4F,0x54,0x20,0x50,0x52,0x45,0x53,0x45,
0x4E,0xD4,0x4E,0x4F,0x54,0x20,0x49,0x4E,0x50,0x55,0x54,0x20,0x46,0x49,0x4C,0xC5,
0x4E,0x4F,0x54,0x20,0x4F,0x55,0x54,0x50,0x55,0x54,0x20,0x46,0x49,0x4C,0xC5,0x4D,
0x49,0x53,0x53,0x49,0x4E,0x47,0x20,0x46,0x49,0x4C,0x45,0x20,0x4E,0x41,0x4D,0xC5,
0x49,0x4C,0x4C,0x45,0x47,0x41,0x4C,0x20,0x44,0x45,0x56,0x49,0x43,0x45,0x20,0x4E,
0x55,0x4D,0x42,0x45,0xD2,0x4E,0x45,0x58,0x54,0x20,0x57,0x49,0x54,0x48,0x4F,0x55,
0x54,0x20,0x46,0x4F,0xD2,0x53,0x59,0x4E,0x54,0x41,0xD8,0x52,0x45,0x54,0x55,0x52,
0x4E,0x20,0x57,0x49,0x54,0x48,0x4F,0x55,0x54,0x20,0x47,0x4F,0x53,0x55,0xC2,0x4F,
0x55,0x54,0x20,0x4F,0x46,0x20,0x44,0x41,0x54,0xC1,0x49,0x4C,0x4C,0x45,0x47,0x41,
0x4C,0x20,0x51,0x55,0x41,0x4E,0x54,0x49,0x54,0xD9,0x4F,0x56,0x45,0x52,0x46,0x4C,
0x4F,0xD7,0x4F,0x55,0x54,0x20,0x4F,0x46,0x20,0x4D,0x45,0x4D,0x4F,0x52,0xD9,0x55,
0x4E,0x44,0x45,0x46,0x27,0x44,0x20,0x53,0x54,0x41,0x54,0x45,0x4D,0x45,0x4E,0xD4,
0x42,0x41,0x44,0x20,0x53,0x55,0x42,0x53,0x43,0x52,0x49,0x50,0xD4,0x52,0x45,0x44,
0x49,0x4D,0x27,0x44,0x20,0x41,0x52,0x52,0x41,0xD9,0x44,0x49,0x56,0x49,0x53,0x49,
0x4F,0x4E,0x20,0x42,0x59,0x20,0x5A,0x45,0x52,0xCF,0x49,0x4C,0x4C,0x45,0x47,0x41,
0x4C,0x20,0x44,0x49,0x52,0x45,0x43,0xD4,0x54,0x59,0x50,0x45,0x20,0x4D,0x49,0x53,
0x4D,0x41,0x54,0x43,0xC8,0x53,0x54,0x52,0x49,0x4E,0x47,0x20,0x54,0x4F,0x4F,0x20,
0x4C,0x4F,0x4E,0xC7,0x46,0x49,0x4C,0x45,0x20,0x44,0x41,0x54,0xC1,0x46,0x4F,0x52,
0x4D,0x55,0x4C,0x41,0x20,0x54,0x4F,0x4F,0x20,0x43,0x4F,0x4D,0x50,0x4C,0x45,0xD8,
0x43,0x41,0x4E,0x27,0x54,0x20,0x43,0x4F,0x4E,0x54,0x49,0x4E,0x55,0xC5,0x55,0x4E,
0x44,0x45,0x46,0x27,0x44,0x20,0x46,0x55,0x4E,0x43,0x54,0x49,0x4F,0xCE,0x56,0x45,
0x52,0x49,0x46,0xD9,0x4C,0x4F,0x41,0xC4,0x9E,0xC1,0xAC,0xC1,0xB5,0xC1,0xC2,0xC1,
0xD0,0xC1,0xE2,0xC1,0xF0,0xC1,0xFF,0xC1,0x10,0xC2,0x25,0xC2,0x35,0xC2,0x3B,0xC2,
0x4F,0xC2,0x5A,0xC2,0x6A,0xC2,0x72,0xC2,0x7F,0xC2,0x90,0xC2,0x9D,0xC2,0xAA,0xC2,
0xBA,0xC2,0xC8,0xC2,0xD5,0xC2,0xE4,0xC2,0xED,0xC2,0x00,0xC3,0x0E,0xC3,0x1E,0xC3,
0x24,0xC3,0x83,0xC3,0x0D,0x4F,0x4B,0x0D,0x00,0x0D,0x20,0x45,0x52,0x52,0x4F,0x52,
0x00,0x20,0x49,0x4E,0x20,0x00,0x0D,0x0A,0x52,0x45,0x41,0x44,0x59,0x2E,0x0D,0x0A,
0x00,0x0D,0x0A,0x42,0x52,0x45,0x41,0x4B,0x00,0xA0,0xBA,0xE8,0xE8,0xE8,0xE8,0xBD,
0x01,0x01,0xC9,0x81,0xD0,0x21,0xA5,0x4A,0xD0,0x0A,0xBD,0x02,0x01,0x85,0x49,0xBD,
0x03,0x01,0x85,0x4A,0xDD,0x03,0x01,0xD0,0x07,0xA5,0x49,0xDD,0x02,0x01,0xF0,0x07,
0x8A,0x18,0x69,0x12,0xAA,0xD0,0xD8,0x60,0x20,0x08,0xC4,0x85,0x31,0x84,0x32,0x38,
0xA5,0x5A,0xE5,0x5F,0x85,0x22,0xA8,0xA5,0x5B,0xE5,0x60,0xAA,0xE8,0x98,0xF0,0x23,
0xA5,0x5A,0x38,0xE5,0x22,0x85,0x5A,0xB0,0x03,0xC6,0x5B,0x38,0xA5,0x58,0xE5,0x22,
0x85,0x58,0xB0,0x08,0xC6,0x59,0x90,0x04,0xB1,0x5A,0x91,0x58,0x88,0xD0,0xF9,0xB1,
0x5A,0x91,0x58,0xC6,0x5B,0xC6,0x59,0xCA,0xD0,0xF2,0x60,0x0A,0x69,0x3E,0xB0,0x35,
0x85,0x22,0xBA,0xE4,0x22,0x90,0x2E,0x60,0xC4,0x34,0x90,0x28,0xD0,0x04,0xC5,0x33,
0x90,0x22,0x48,0xA2,0x09,0x98,0x48,0xB5,0x57,0xCA,0x10,0xFA,0x20,0x26,0xD5,0xA2,
0xF7,0x68,0x95,0x61,0xE8,0x30,0xFA,0x68,0xA8,0x68,0xC4,0x34,0x90,0x06,0xD0,0x05,
0xC5,0x33,0xB0,0x01,0x60,0xA2,0x10,0x6C,0x00,0x03,0x8A,0x0A,0xAA,0xBD,0x26,0xC3,
0x85,0x22,0xBD,0x27,0xC3,0x85,0x23,0x20,0xCC,0xFF,0xA9,0x00,0x85,0x13,0x20,0xD7,
0xCA,0x20,0x45,0xCB,0xA0,0x00,0xB1,0x22,0x48,0x29,0x7F,0x20,0x47,0xCB,0xC8,0x68,
0x10,0xF4,0x20,0x7A,0xC6,0xA9,0x69,0xA0,0xC3,0x20,0x1E,0xCB,0xA4,0x3A,0xC8,0xF0,
0x03,0x20,0xC2,0xDD,0xA9,0x76,0xA0,0xC3,0x20,0x1E,0xCB,0xA9,0x80,0x20,0x90,0xFF,
0x6C,0x02,0x03,0x20,0x60,0xC5,0x86,0x7A,0x84,0x7B,0x20,0x73,0x00,0xAA,0xF0,0xF0,
0xA2,0xFF,0x86,0x3A,0x90,0x06,0x20,0x79,0xC5,0x4C,0xE1,0xC7,0x20,0x6B,0xC9,0x20,
0x79,0xC5,0x84,0x0B,0x20,0x13,0xC6,0x90,0x44,0xA0,0x01,0xB1,0x5F,0x85,0x23,0xA5,
0x2D,0x85,0x22,0xA5,0x60,0x85,0x25,0xA5,0x5F,0x88,0xF1,0x5F,0x18,0x65,0x2D,0x85,
0x2D,0x85,0x24,0xA5,0x2E,0x69,0xFF,0x85,0x2E,0xE5,0x60,0xAA,0x38,0xA5,0x5F,0xE5,
0x2D,0xA8,0xB0,0x03,0xE8,0xC6,0x25,0x18,0x65,0x22,0x90,0x03,0xC6,0x23,0x18,0xB1,
0x22,0x91,0x24,0xC8,0xD0,0xF9,0xE6,0x23,0xE6,0x25,0xCA,0xD0,0xF2,0x20,0x59,0xC6,
0x20,0x33,0xC5,0xAD,0x00,0x02,0xF0,0x88,0x18,0xA5,0x2D,0x85,0x5A,0x65,0x0B,0x85,
0x58,0xA4,0x2E,0x84,0x5B,0x90,0x01,0xC8,0x84,0x59,0x20,0xB8,0xC3,0xA5,0x14,0xA4,
0x15,0x8D,0xFE,0x01,0x8C,0xFF,0x01,0xA5,0x31,0xA4,0x32,0x85,0x2D,0x84,0x2E,0xA4,
0x0B,0x88,0xB9,0xFC,0x01,0x91,0x5F,0x88,0x10,0xF8,0x20,0x59,0xC6,0x20,0x33,0xC5,
0x4C,0x80,0xC4,0xA5,0x2B,0xA4,0x2C,0x85,0x22,0x84,0x23,0x18,0xA0,0x01,0xB1,0x22,
0xF0,0x1D,0xA0,0x04,0xC8,0xB1,0x22,0xD0,0xFB,0xC8,0x98,0x65,0x22,0xAA,0xA0,0x00,
0x91,0x22,0xA5,0x23,0x69,0x00,0xC8,0x91,0x22,0x86,0x22,0x85,0x23,0x90,0xDD,0x60,
0xA2,0x00,0x20,0x0F,0xE1,0xC9,0x0D,0xF0,0x0D,0x9D,0x00,0x02,0xE8,0xE0,0x59,0x90,
0xF1,0xA2,0x17,0x4C,0x37,0xC4,0x4C,0xCA,0xCA,0x6C,0x04,0x03,0xA6,0x7A,0xA0,0x04,
0x84,0x0F,0xBD,0x00,0x02,0x10,0x07,0xC9,0xFF,0xF0,0x3E,0xE8,0xD0,0xF4,0xC9,0x20,
0xF0,0x37,0x85,0x08,0xC9,0x22,0xF0,0x56,0x24,0x0F,0x70,0x2D,0xC9,0x3F,0xD0,0x04,
0xA9,0x99,0xD0,0x25,0xC9,0x30,0x90,0x04,0xC9,0x3C,0x90,0x1D,0x84,0x71,0xA0,0x00,
0x84,0x0B,0x88,0x86,0x7A,0xCA,0xC8,0xE8,0xBD,0x00,0x02,0x38,0xF9,0x9E,0xC0,0xF0,
0xF5,0xC9,0x80,0xD0,0x30,0x05,0x0B,0xA4,0x71,0xE8,0xC8,0x99,0xFB,0x01,0xB9,0xFB,
0x01,0xF0,0x36,0x38,0xE9,0x3A,0xF0,0x04,0xC9,0x49,0xD0,0x02,0x85,0x0F,0x38,0xE9,
0x55,0xD0,0x9F,0x85,0x08,0xBD,0x00,0x02,0xF0,0xDF,0xC5,0x08,0xF0,0xDB,0xC8,0x99,
0xFB,0x01,0xE8,0xD0,0xF0,0xA6,0x7A,0xE6,0x0B,0xC8,0xB9,0x9D,0xC0,0x10,0xFA,0xB9,
0x9E,0xC0,0xD0,0xB4,0xBD,0x00,0x02,0x10,0xBE,0x99,0xFD,0x01,0xC6,0x7B,0xA9,0xFF,
0x85,0x7A,0x60,0xA5,0x2B,0xA6,0x2C,0xA0,0x01,0x85,0x5F,0x86,0x60,0xB1,0x5F,0xF0,
0x1F,0xC8,0xC8,0xA5,0x15,0xD1,0x5F,0x90,0x18,0xF0,0x03,0x88,0xD0,0x09,0xA5,0x14,
0x88,0xD1,0x5F,0x90,0x0C,0xF0,0x0A,0x88,0xB1,0x5F,0xAA,0x88,0xB1,0x5F,0xB0,0xD7,
0x18,0x60,0xD0,0xFD,0xA9,0x00,0xA8,0x91,0x2B,0xC8,0x91,0x2B,0xA5,0x2B,0x18,0x69,
0x02,0x85,0x2D,0xA5,0x2C,0x69,0x00,0x85,0x2E,0x20,0x8E,0xC6,0xA9,0x00,0xD0,0x2D,
0x20,0xE7,0xFF,0xA5,0x37,0xA4,0x38,0x85,0x33,0x84,0x34,0xA5,0x2D,0xA4,0x2E,0x85,
0x2F,0x84,0x30,0x85,0x31,0x84,0x32,0x20,0x1D,0xC8,0xA2,0x19,0x86,0x16,0x68,0xA8,
0x68,0xA2,0xFA,0x9A,0x48,0x98,0x48,0xA9,0x00,0x85,0x3E,0x85,0x10,0x60,0x18,0xA5,
0x2B,0x69,0xFF,0x85,0x7A,0xA5,0x2C,0x69,0xFF,0x85,0x7B,0x60,0x90,0x06,0xF0,0x04,
0xC9,0xAB,0xD0,0xE9,0x20,0x6B,0xC9,0x20,0x13,0xC6,0x20,0x79,0x00,0xF0,0x0C,0xC9,
0xAB,0xD0,0x8E,0x20,0x73,0x00,0x20,0x6B,0xC9,0xD0,0x86,0x68,0x68,0xA5,0x14,0x05,
0x15,0xD0,0x06,0xA9,0xFF,0x85,0x14,0x85,0x15,0xA0,0x01,0x84,0x0F,0xB1,0x5F,0xF0,
0x43,0x20,0x2C,0xC8,0x20,0xD7,0xCA,0xC8,0xB1,0x5F,0xAA,0xC8,0xB1,0x5F,0xC5,0x15,
0xD0,0x04,0xE4,0x14,0xF0,0x02,0xB0,0x2C,0x84,0x49,0x20,0xCD,0xDD,0xA9,0x20,0xA4,
0x49,0x29,0x7F,0x20,0x47,0xCB,0xC9,0x22,0xD0,0x06,0xA5,0x0F,0x49,0xFF,0x85,0x0F,
0xC8,0xF0,0x11,0xB1,0x5F,0xD0,0x10,0xA8,0xB1,0x5F,0xAA,0xC8,0xB1,0x5F,0x86,0x5F,
0x85,0x60,0xD0,0xB5,0x4C,0x74,0xC4,0x6C,0x06,0x03,0x10,0xD7,0xC9,0xFF,0xF0,0xD3,
0x24,0x0F,0x30,0xCF,0x38,0xE9,0x7F,0xAA,0x84,0x49,0xA0,0xFF,0xCA,0xF0,0x08,0xC8,
0xB9,0x9E,0xC0,0x10,0xFA,0x30,0xF5,0xC8,0xB9,0x9E,0xC0,0x30,0xB2,0x20,0x47,0xCB,
0xD0,0xF5,0xA9,0x80,0x85,0x10,0x20,0xA5,0xC9,0x20,0x8A,0xC3,0xD0,0x05,0x8A,0x69,
0x0F,0xAA,0x9A,0x68,0x68,0xA9,0x09,0x20,0xFB,0xC3,0x20,0x06,0xC9,0x18,0x98,0x65,
0x7A,0x48,0xA5,0x7B,0x69,0x00,0x48,0xA5,0x3A,0x48,0xA5,0x39,0x48,0xA9,0xA4,0x20,
0xFF,0xCE,0x20,0x8D,0xCD,0x20,0x8A,0xCD,0xA5,0x66,0x09,0x7F,0x25,0x62,0x85,0x62,
0xA9,0x8B,0xA0,0xC7,0x85,0x22,0x84,0x23,0x4C,0x43,0xCE,0xA9,0xBC,0xA0,0xD9,0x20,
0xA2,0xDB,0x20,0x79,0x00,0xC9,0xA9,0xD0,0x06,0x20,0x73,0x00,0x20,0x8A,0xCD,0x20,
0x2B,0xDC,0x20,0x38,0xCE,0xA5,0x4A,0x48,0xA5,0x49,0x48,0xA9,0x81,0x48,0x20,0x2C,
0xC8,0xA5,0x7A,0xA4,0x7B,0xC0,0x02,0xEA,0xF0,0x04,0x85,0x3D,0x84,0x3E,0xA0,0x00,
0xB1,0x7A,0xD0,0x43,0xA0,0x02,0xB1,0x7A,0x18,0xD0,0x03,0x4C,0x4B,0xC8,0xC8,0xB1,
0x7A,0x85,0x39,0xC8,0xB1,0x7A,0x85,0x3A,0x98,0x65,0x7A,0x85,0x7A,0x90,0x02,0xE6,
0x7B,0x6C,0x08,0x03,0x20,0x73,0x00,0x20,0xED,0xC7,0x4C,0xAE,0xC7,0xF0,0x3C,0xE9,
0x80,0x90,0x11,0xC9,0x23,0xB0,0x17,0x0A,0xA8,0xB9,0x0D,0xC0,0x48,0xB9,0x0C,0xC0,
0x48,0x4C,0x73,0x00,0x4C,0xA5,0xC9,0xC9,0x3A,0xF0,0xD6,0x4C,0x08,0xCF,0xC9,0x4B,
0xD0,0xF9,0x20,0x73,0x00,0xA9,0xA4,0x20,0xFF,0xCE,0x4C,0xA0,0xC8,0x38,0xA5,0x2B,
0xE9,0x01,0xA4,0x2C,0xB0,0x01,0x88,0x85,0x41,0x84,0x42,0x60,0x20,0xE1,0xFF,0xB0,
0x01,0x18,0xD0,0x3C,0xA5,0x7A,0xA4,0x7B,0xA6,0x3A,0xE8,0xF0,0x0C,0x85,0x3D,0x84,
0x3E,0xA5,0x39,0xA4,0x3A,0x85,0x3B,0x84,0x3C,0x68,0x68,0xA9,0x81,0xA0,0xC3,0x90,
0x03,0x4C,0x69,0xC4,0x4C,0x74,0xC4,0xD0,0x17,0xA2,0x1A,0xA4,0x3E,0xD0,0x03,0x4C,
0x37,0xC4,0xA5,0x3D,0x85,0x7A,0x84,0x7B,0xA5,0x3B,0xA4,0x3C,0x85,0x39,0x84,0x3A,
0x60,0x08,0xA9,0x00,0x20,0x90,0xFF,0x28,0xD0,0x03,0x4C,0x59,0xC6,0x20,0x60,0xC6,
0x4C,0x97,0xC8,0xA9,0x03,0x20,0xFB,0xC3,0xA5,0x7B,0x48,0xA5,0x7A,0x48,0xA5,0x3A,
0x48,0xA5,0x39,0x48,0xA9,0x8D,0x48,0x20,0x79,0x00,0x20,0xA0,0xC8,0x4C,0xAE,0xC7,
0x20,0x6B,0xC9,0x20,0x09,0xC9,0x38,0xA5,0x39,0xE5,0x14,0xA5,0x3A,0xE5,0x15,0xB0,
0x0B,0x98,0x38,0x65,0x7A,0xA6,0x7B,0x90,0x07,0xE8,0xB0,0x04,0xA5,0x2B,0xA6,0x2C,
0x20,0x17,0xC6,0x90,0x1E,0xA5,0x5F,0xE9,0x01,0x85,0x7A,0xA5,0x60,0xE9,0x00,0x85,
0x7B,0x60,0xD0,0xFD,0xA9,0xFF,0x85,0x4A,0x20,0x8A,0xC3,0x9A,0xC9,0x8D,0xF0,0x0B,
0xA2,0x0C,0x2C,0xA2,0x11,0x4C,0x37,0xC4,0x4C,0x08,0xCF,0x68,0x68,0x85,0x39,0x68,
0x85,0x3A,0x68,0x85,0x7A,0x68,0x85,0x7B,0x20,0x06,0xC9,0x98,0x18,0x65,0x7A,0x85,
0x7A,0x90,0x02,0xE6,0x7B,0x60,0xA2,0x3A,0x2C,0xA2,0x00,0x86,0x07,0xA0,0x00,0x84,
0x08,0xA5,0x08,0xA6,0x07,0x85,0x07,0x86,0x08,0xB1,0x7A,0xF0,0xE8,0xC5,0x08,0xF0,
0xE4,0xC8,0xC9,0x22,0xD0,0xF3,0xF0,0xE9,0x20,0x9E,0xCD,0x20,0x79,0x00,0xC9,0x89,
0xF0,0x05,0xA9,0xA7,0x20,0xFF,0xCE,0xA5,0x61,0xD0,0x05,0x20,0x09,0xC9,0xF0,0xBB,
0x20,0x79,0x00,0xB0,0x03,0x4C,0xA0,0xC8,0x4C,0xED,0xC7,0x20,0x9E,0xD7,0x48,0xC9,
0x8D,0xF0,0x04,0xC9,0x89,0xD0,0x91,0xC6,0x65,0xD0,0x04,0x68,0x4C,0xEF,0xC7,0x20,
0x73,0x00,0x20,0x6B,0xC9,0xC9,0x2C,0xF0,0xEE,0x68,0x60,0xA2,0x00,0x86,0x14,0x86,
0x15,0xB0,0xF7,0xE9,0x2F,0x85,0x07,0xA5,0x15,0x85,0x22,0xC9,0x19,0xB0,0xD4,0xA5,
0x14,0x0A,0x26,0x22,0x0A,0x26,0x22,0x65,0x14,0x85,0x14,0xA5,0x22,0x65,0x15,0x85,
0x15,0x06,0x14,0x26,0x15,0xA5,0x14,0x65,0x07,0x85,0x14,0x90,0x02,0xE6,0x15,0x20,
0x73,0x00,0x4C,0x71,0xC9,0x20,0x8B,0xD0,0x85,0x49,0x84,0x4A,0xA9,0xB2,0x20,0xFF,
0xCE,0xA5,0x0E,0x48,0xA5,0x0D,0x48,0x20,0x9E,0xCD,0x68,0x2A,0x20,0x90,0xCD,0xD0,
0x18,0x68,0x10,0x12,0x20,0x1B,0xDC,0x20,0xBF,0xD1,0xA0,0x00,0xA5,0x64,0x91,0x49,
0xC8,0xA5,0x65,0x91,0x49,0x60,0x4C,0xD0,0xDB,0x68,0xA4,0x4A,0xC0,0xDF,0xD0,0x4C,
0x20,0xA6,0xD6,0xC9,0x06,0xD0,0x3D,0xA0,0x00,0x84,0x61,0x84,0x66,0x84,0x71,0x20,
0x1D,0xCA,0x20,0xE2,0xDA,0xE6,0x71,0xA4,0x71,0x20,0x1D,0xCA,0x20,0x0C,0xDC,0xAA,
0xF0,0x05,0xE8,0x8A,0x20,0xED,0xDA,0xA4,0x71,0xC8,0xC0,0x06,0xD0,0xDF,0x20,0xE2,
0xDA,0x20,0x9B,0xDC,0xA6,0x64,0xA4,0x63,0xA5,0x65,0x4C,0xDB,0xFF,0xB1,0x22,0x20,
0x80,0x00,0x90,0x03,0x4C,0x48,0xD2,0xE9,0x2F,0x4C,0x7E,0xDD,0xA0,0x02,0xB1,0x64,
0xC5,0x34,0x90,0x17,0xD0,0x07,0x88,0xB1,0x64,0xC5,0x33,0x90,0x0E,0xA4,0x65,0xC4,
0x2E,0x90,0x08,0xD0,0x0D,0xA5,0x64,0xC5,0x2D,0xB0,0x07,0xA5,0x64,0xA4,0x65,0x4C,
0x68,0xCA,0xA0,0x00,0xB1,0x64,0x20,0x75,0xD4,0xA5,0x50,0xA4,0x51,0x85,0x6F,0x84,
0x70,0x20,0x7A,0xD6,0xA9,0x61,0xA0,0x00,0x85,0x50,0x84,0x51,0x20,0xDB,0xD6,0xA0,
0x00,0xB1,0x50,0x91,0x49,0xC8,0xB1,0x50,0x91,0x49,0xC8,0xB1,0x50,0x91,0x49,0x60,
0x20,0x86,0xCA,0x4C,0xB5,0xCB,0x20,0x9E,0xD7,0xF0,0x05,0xA9,0x2C,0x20,0xFF,0xCE,
0x08,0x86,0x13,0x20,0x15,0xE1,0x28,0x4C,0xA0,0xCA,0x20,0x21,0xCB,0x20,0x79,0x00,
0xF0,0x35,0xF0,0x43,0xC9,0xA3,0xF0,0x50,0xC9,0xA6,0x18,0xF0,0x4B,0xC9,0x2C,0xF0,
0x37,0xC9,0x3B,0xF0,0x5E,0x20,0x9E,0xCD,0x24,0x0D,0x30,0xDE,0x20,0xDD,0xDD,0x20,
0x87,0xD4,0x20,0x21,0xCB,0x20,0x3B,0xCB,0xD0,0xD3,0xA9,0x00,0x9D,0x00,0x02,0xA2,
0xFF,0xA0,0x01,0xA5,0x13,0xD0,0x10,0xA9,0x0D,0x20,0x47,0xCB,0x24,0x13,0x10,0x05,
0xA9,0x0A,0x20,0x47,0xCB,0x49,0xFF,0x60,0x38,0x20,0xF0,0xFF,0x98,0x38,0xE9,0x0B,
0xB0,0xFC,0x49,0xFF,0x69,0x01,0xD0,0x16,0x08,0x38,0x20,0xF0,0xFF,0x84,0x09,0x20,
0x9B,0xD7,0xC9,0x29,0xD0,0x59,0x28,0x90,0x06,0x8A,0xE5,0x09,0x90,0x05,0xAA,0xE8,
0xCA,0xD0,0x06,0x20,0x73,0x00,0x4C,0xA2,0xCA,0x20,0x3B,0xCB,0xD0,0xF2,0x20,0x87,
0xD4,0x20,0xA6,0xD6,0xAA,0xA0,0x00,0xE8,0xCA,0xF0,0xBC,0xB1,0x22,0x20,0x47,0xCB,
0xC8,0xC9,0x0D,0xD0,0xF3,0x20,0xE5,0xCA,0x4C,0x28,0xCB,0xA5,0x13,0xF0,0x03,0xA9,
0x20,0x2C,0xA9,0x1D,0x2C,0xA9,0x3F,0x20,0x09,0xE1,0x29,0xFF,0x60,0xA5,0x11,0xF0,
0x11,0x30,0x04,0xA0,0xFF,0xD0,0x04,0xA5,0x3F,0xA4,0x40,0x85,0x39,0x84,0x3A,0x4C,
0x08,0xCF,0xA5,0x13,0xF0,0x05,0xA2,0x18,0x4C,0x37,0xC4,0xA9,0x0C,0xA0,0xCD,0x20,
0x1E,0xCB,0xA5,0x3D,0xA4,0x3E,0x85,0x7A,0x84,0x7B,0x60,0x20,0xA6,0xD3,0xC9,0x23,
0xD0,0x10,0x20,0x73,0x00,0x20,0x9E,0xD7,0xA9,0x2C,0x20,0xFF,0xCE,0x86,0x13,0x20,
0x1B,0xE1,0xA2,0x01,0xA0,0x02,0xA9,0x00,0x8D,0x01,0x02,0xA9,0x40,0x20,0x0F,0xCC,
0xA6,0x13,0xD0,0x13,0x60,0x20,0x9E,0xD7,0xA9,0x2C,0x20,0xFF,0xCE,0x86,0x13,0x20,
0x1B,0xE1,0x20,0xCE,0xCB,0xA5,0x13,0x20,0xCC,0xFF,0xA2,0x00,0x86,0x13,0x60,0xC9,
0x22,0xD0,0x0B,0x20,0xBD,0xCE,0xA9,0x3B,0x20,0xFF,0xCE,0x20,0x21,0xCB,0x20,0xA6,
0xD3,0xA9,0x2C,0x8D,0xFF,0x01,0x20,0xF9,0xCB,0xA5,0x13,0xF0,0x0D,0x20,0xB7,0xFF,
0x29,0x02,0xF0,0x06,0x20,0xB5,0xCB,0x4C,0xF8,0xC8,0xAD,0x00,0x02,0xD0,0x1E,0xA5,
0x13,0xD0,0xE3,0x20,0x06,0xC9,0x4C,0xFB,0xC8,0xA5,0x13,0xD0,0x06,0x20,0x45,0xCB,
0x20,0x3B,0xCB,0x4C,0x60,0xC5,0xA6,0x41,0xA4,0x42,0xA9,0x98,0x2C,0xA9,0x00,0x85,
0x11,0x86,0x43,0x84,0x44,0x20,0x8B,0xD0,0x85,0x49,0x84,0x4A,0xA5,0x7A,0xA4,0x7B,
0x85,0x4B,0x84,0x4C,0xA6,0x43,0xA4,0x44,0x86,0x7A,0x84,0x7B,0x20,0x79,0x00,0xD0,
0x20,0x24,0x11,0x50,0x0C,0x20,0x21,0xE1,0x8D,0x00,0x02,0xA2,0xFF,0xA0,0x01,0xD0,
0x0C,0x30,0x75,0xA5,0x13,0xD0,0x03,0x20,0x45,0xCB,0x20,0xF9,0xCB,0x86,0x7A,0x84,
0x7B,0x20,0x73,0x00,0x24,0x0D,0x10,0x31,0x24,0x11,0x50,0x09,0xE8,0x86,0x7A,0xA9,
0x00,0x85,0x07,0xF0,0x0C,0x85,0x07,0xC9,0x22,0xF0,0x07,0xA9,0x3A,0x85,0x07,0xA9,
0x2C,0x18,0x85,0x08,0xA5,0x7A,0xA4,0x7B,0x69,0x00,0x90,0x01,0xC8,0x20,0x8D,0xD4,
0x20,0xE2,0xD7,0x20,0xDA,0xC9,0x4C,0x91,0xCC,0x20,0xF3,0xDC,0xA5,0x0E,0x20,0xC2,
0xC9,0x20,0x79,0x00,0xF0,0x07,0xC9,0x2C,0xF0,0x03,0x4C,0x4D,0xCB,0xA5,0x7A,0xA4,
0x7B,0x85,0x43,0x84,0x44,0xA5,0x4B,0xA4,0x4C,0x85,0x7A,0x84,0x7B,0x20,0x79,0x00,
0xF0,0x2D,0x20,0xFD,0xCE,0x4C,0x15,0xCC,0x20,0x06,0xC9,0xC8,0xAA,0xD0,0x12,0xA2,
0x0D,0xC8,0xB1,0x7A,0xF0,0x6C,0xC8,0xB1,0x7A,0x85,0x3F,0xC8,0xB1,0x7A,0xC8,0x85,
0x40,0x20,0xFB,0xC8,0x20,0x79,0x00,0xAA,0xE0,0x83,0xD0,0xDC,0x4C,0x51,0xCC,0xA5,
0x43,0xA4,0x44,0xA6,0x11,0x10,0x03,0x4C,0x27,0xC8,0xA0,0x00,0xB1,0x43,0xF0,0x0B,
0xA5,0x13,0xD0,0x07,0xA9,0xFC,0xA0,0xCC,0x4C,0x1E,0xCB,0x60,0x3F,0x45,0x58,0x54,
0x52,0x41,0x20,0x49,0x47,0x4E,0x4F,0x52,0x45,0x44,0x0D,0x00,0x3F,0x52,0x45,0x44,
0x4F,0x20,0x46,0x52,0x4F,0x4D,0x20,0x53,0x54,0x41,0x52,0x54,0x0D,0x00,0xD0,0x04,
0xA0,0x00,0xF0,0x03,0x20,0x8B,0xD0,0x85,0x49,0x84,0x4A,0x20,0x8A,0xC3,0xF0,0x05,
0xA2,0x0A,0x4C,0x37,0xC4,0x9A,0x8A,0x18,0x69,0x04,0x48,0x69,0x06,0x85,0x24,0x68,
0xA0,0x01,0x20,0xA2,0xDB,0xBA,0xBD,0x09,0x01,0x85,0x66,0xA5,0x49,0xA4,0x4A,0x20,
0x67,0xD8,0x20,0xD0,0xDB,0xA0,0x01,0x20,0x5D,0xDC,0xBA,0x38,0xFD,0x09,0x01,0xF0,
0x17,0xBD,0x0F,0x01,0x85,0x39,0xBD,0x10,0x01,0x85,0x3A,0xBD,0x12,0x01,0x85,0x7A,
0xBD,0x11,0x01,0x85,0x7B,0x4C,0xAE,0xC7,0x8A,0x69,0x11,0xAA,0x9A,0x20,0x79,0x00,
0xC9,0x2C,0xD0,0xF1,0x20,0x73,0x00,0x20,0x24,0xCD,0x20,0x9E,0xCD,0x18,0x24,0x38,
0x24,0x0D,0x30,0x03,0xB0,0x03,0x60,0xB0,0xFD,0xA2,0x16,0x4C,0x37,0xC4,0xA6,0x7A,
0xD0,0x02,0xC6,0x7B,0xC6,0x7A,0xA2,0x00,0x24,0x48,0x8A,0x48,0xA9,0x01,0x20,0xFB,
0xC3,0x20,0x83,0xCE,0xA9,0x00,0x85,0x4D,0x20,0x79,0x00,0x38,0xE9,0xB1,0x90,0x17,
0xC9,0x03,0xB0,0x13,0xC9,0x01,0x2A,0x49,0x01,0x45,0x4D,0xC5,0x4D,0x90,0x61,0x85,
0x4D,0x20,0x73,0x00,0x4C,0xBB,0xCD,0xA6,0x4D,0xD0,0x2C,0xB0,0x7B,0x69,0x07,0x90,
0x77,0x65,0x0D,0xD0,0x03,0x4C,0x3D,0xD6,0x69,0xFF,0x85,0x22,0x0A,0x65,0x22,0xA8,
0x68,0xD9,0x80,0xC0,0xB0,0x67,0x20,0x8D,0xCD,0x48,0x20,0x20,0xCE,0x68,0xA4,0x4B,
0x10,0x17,0xAA,0xF0,0x56,0xD0,0x5F,0x46,0x0D,0x8A,0x2A,0xA6,0x7A,0xD0,0x02,0xC6,
0x7B,0xC6,0x7A,0xA0,0x1B,0x85,0x4D,0xD0,0xD7,0xD9,0x80,0xC0,0xB0,0x48,0x90,0xD9,
0xB9,0x82,0xC0,0x48,0xB9,0x81,0xC0,0x48,0x20,0x33,0xCE,0xA5,0x4D,0x4C,0xA9,0xCD,
0x4C,0x08,0xCF,0xA5,0x66,0xBE,0x80,0xC0,0xA8,0x68,0x85,0x22,0xE6,0x22,0x68,0x85,
0x23,0x98,0x48,0x20,0x1B,0xDC,0xA5,0x65,0x48,0xA5,0x64,0x48,0xA5,0x63,0x48,0xA5,
0x62,0x48,0xA5,0x61,0x48,0x6C,0x22,0x00,0xA0,0xFF,0x68,0xF0,0x23,0xC9,0x64,0xF0,
0x03,0x20,0x8D,0xCD,0x84,0x4B,0x68,0x4A,0x85,0x12,0x68,0x85,0x69,0x68,0x85,0x6A,
0x68,0x85,0x6B,0x68,0x85,0x6C,0x68,0x85,0x6D,0x68,0x85,0x6E,0x45,0x66,0x85,0x6F,
0xA5,0x61,0x60,0x6C,0x0A,0x03,0xA9,0x00,0x85,0x0D,0x20,0x73,0x00,0xB0,0x03,0x4C,
0xF3,0xDC,0x20,0x13,0xD1,0x90,0x03,0x4C,0x28,0xCF,0xC9,0xFF,0xD0,0x0F,0xA9,0xA8,
0xA0,0xCE,0x20,0xA2,0xDB,0x4C,0x73,0x00,0x82,0x49,0x0F,0xDA,0xA1,0xC9,0x2E,0xF0,
0xDE,0xC9,0xAB,0xF0,0x58,0xC9,0xAA,0xF0,0xD1,0xC9,0x22,0xD0,0x0F,0xA5,0x7A,0xA4,
0x7B,0x69,0x00,0x90,0x01,0xC8,0x20,0x87,0xD4,0x4C,0xE2,0xD7,0xC9,0xA8,0xD0,0x13,
0xA0,0x18,0xD0,0x3B,0x20,0xBF,0xD1,0xA5,0x65,0x49,0xFF,0xA8,0xA5,0x64,0x49,0xFF,
0x4C,0x91,0xD3,0xC9,0xA5,0xD0,0x03,0x4C,0xF4,0xD3,0xC9,0xB4,0x90,0x03,0x4C,0xA7,
0xCF,0x20,0xFA,0xCE,0x20,0x9E,0xCD,0xA9,0x29,0x2C,0xA9,0x28,0x2C,0xA9,0x2C,0xA0,
0x00,0xD1,0x7A,0xD0,0x03,0x4C,0x73,0x00,0xA2,0x0B,0x4C,0x37,0xC4,0xA0,0x15,0x68,
0x68,0x4C,0xFA,0xCD,0x38,0xA5,0x64,0xE9,0x00,0xA5,0x65,0xE9,0xC0,0x90,0x08,0xA9,
0x87,0xE5,0x64,0xA9,0xE3,0xE5,0x65,0x60,0x20,0x8B,0xD0,0x85,0x64,0x84,0x65,0xA6,
0x45,0xA4,0x46,0xA5,0x0D,0xF0,0x26,0xA9,0x00,0x85,0x70,0x20,0x14,0xCF,0x90,0x1C,
0xE0,0x54,0xD0,0x18,0xC0,0xC9,0xD0,0x14,0x20,0x84,0xCF,0x84,0x5E,0x88,0x84,0x71,
0xA0,0x06,0x84,0x5D,0xA0,0x24,0x20,0x68,0xDE,0x4C,0x6F,0xD4,0x60,0x24,0x0E,0x10,
0x0D,0xA0,0x00,0xB1,0x64,0xAA,0xC8,0xB1,0x64,0xA8,0x8A,0x4C,0x91,0xD3,0x20,0x14,
0xCF,0x90,0x2D,0xE0,0x54,0xD0,0x1B,0xC0,0x49,0xD0,0x25,0x20,0x84,0xCF,0x98,0xA2,
0xA0,0x4C,0x4F,0xDC,0x20,0xDE,0xFF,0x86,0x64,0x84,0x63,0x85,0x65,0xA0,0x00,0x84,
0x62,0x60,0xE0,0x53,0xD0,0x0A,0xC0,0x54,0xD0,0x06,0x20,0xB7,0xFF,0x4C,0x3C,0xDC,
0xA5,0x64,0xA4,0x65,0x4C,0xA2,0xDB,0x0A,0x48,0xAA,0x20,0x73,0x00,0xE0,0x8F,0x90,
0x20,0x20,0xFA,0xCE,0x20,0x9E,0xCD,0x20,0xFD,0xCE,0x20,0x8F,0xCD,0x68,0xAA,0xA5,
0x65,0x48,0xA5,0x64,0x48,0x8A,0x48,0x20,0x9E,0xD7,0x68,0xA8,0x8A,0x48,0x4C,0xD6,
0xCF,0x20,0xF1,0xCE,0x68,0xA8,0xB9,0xEA,0xBF,0x85,0x55,0xB9,0xEB,0xBF,0x85,0x56,
0x20,0x54,0x00,0x4C,0x8D,0xCD,0xA0,0xFF,0x2C,0xA0,0x00,0x84,0x0B,0x20,0xBF,0xD1,
0xA5,0x64,0x45,0x0B,0x85,0x07,0xA5,0x65,0x45,0x0B,0x85,0x08,0x20,0xFC,0xDB,0x20,
0xBF,0xD1,0xA5,0x65,0x45,0x0B,0x25,0x08,0x45,0x0B,0xA8,0xA5,0x64,0x45,0x0B,0x25,
0x07,0x45,0x0B,0x4C,0x91,0xD3,0x20,0x90,0xCD,0xB0,0x13,0xA5,0x6E,0x09,0x7F,0x25,
0x6A,0x85,0x6A,0xA9,0x69,0xA0,0x00,0x20,0x5B,0xDC,0xAA,0x4C,0x61,0xD0,0xA9,0x00,
0x85,0x0D,0xC6,0x4D,0x20,0xA6,0xD6,0x85,0x61,0x86,0x62,0x84,0x63,0xA5,0x6C,0xA4,
0x6D,0x20,0xAA,0xD6,0x86,0x6C,0x84,0x6D,0xAA,0x38,0xE5,0x61,0xF0,0x08,0xA9,0x01,
0x90,0x04,0xA6,0x61,0xA9,0xFF,0x85,0x66,0xA0,0xFF,0xE8,0xC8,0xCA,0xD0,0x07,0xA6,
0x66,0x30,0x0F,0x18,0x90,0x0C,0xB1,0x6C,0xD1,0x62,0xF0,0xEF,0xA2,0xFF,0xB0,0x02,
0xA2,0x01,0xE8,0x8A,0x2A,0x25,0x12,0xF0,0x02,0xA9,0xFF,0x4C,0x3C,0xDC,0x20,0xFD,
0xCE,0xAA,0x20,0x90,0xD0,0x20,0x79,0x00,0xD0,0xF4,0x60,0xA2,0x00,0x20,0x79,0x00,
0x86,0x0C,0x85,0x45,0x20,0x79,0x00,0x20,0x13,0xD1,0xB0,0x03,0x4C,0x08,0xCF,0xA2,
0x00,0x86,0x0D,0x86,0x0E,0x20,0x73,0x00,0x90,0x05,0x20,0x13,0xD1,0x90,0x0B,0xAA,
0x20,0x73,0x00,0x90,0xFB,0x20,0x13,0xD1,0xB0,0xF6,0xC9,0x24,0xD0,0x06,0xA9,0xFF,
0x85,0x0D,0xD0,0x10,0xC9,0x25,0xD0,0x13,0xA5,0x10,0xD0,0xD0,0xA9,0x80,0x85,0x0E,
0x05,0x45,0x85,0x45,0x8A,0x09,0x80,0xAA,0x20,0x73,0x00,0x86,0x46,0x38,0x05,0x10,
0xE9,0x28,0xD0,0x03,0x4C,0xD1,0xD1,0xA0,0x00,0x84,0x10,0xA5,0x2D,0xA6,0x2E,0x86,
0x60,0x85,0x5F,0xE4,0x30,0xD0,0x04,0xC5,0x2F,0xF0,0x22,0xA5,0x45,0xD1,0x5F,0xD0,
0x08,0xA5,0x46,0xC8,0xD1,0x5F,0xF0,0x7D,0x88,0x18,0xA5,0x5F,0x69,0x07,0x90,0xE1,
0xE8,0xD0,0xDC,0xC9,0x41,0x90,0x05,0xE9,0x5B,0x38,0xE9,0xA5,0x60,0x68,0x48,0xC9,
0x2A,0xD0,0x05,0xA9,0x13,0xA0,0xDF,0x60,0xA5,0x45,0xA4,0x46,0xC9,0x54,0xD0,0x0B,
0xC0,0xC9,0xF0,0xEF,0xC0,0x49,0xD0,0x03,0x4C,0x08,0xCF,0xC9,0x53,0xD0,0x04,0xC0,
0x54,0xF0,0xF5,0xA5,0x2F,0xA4,0x30,0x85,0x5F,0x84,0x60,0xA5,0x31,0xA4,0x32,0x85,
0x5A,0x84,0x5B,0x18,0x69,0x07,0x90,0x01,0xC8,0x85,0x58,0x84,0x59,0x20,0xB8,0xC3,
0xA5,0x58,0xA4,0x59,0xC8,0x85,0x2F,0x84,0x30,0xA0,0x00,0xA5,0x45,0x91,0x5F,0xC8,
0xA5,0x46,0x91,0x5F,0xA9,0x00,0xC8,0x91,0x5F,0xC8,0x91,0x5F,0xC8,0x91,0x5F,0xC8,
0x91,0x5F,0xC8,0x91,0x5F,0xA5,0x5F,0x18,0x69,0x02,0xA4,0x60,0x90,0x01,0xC8,0x85,
0x47,0x84,0x48,0x60,0xA5,0x0B,0x0A,0x69,0x05,0x65,0x5F,0xA4,0x60,0x90,0x01,0xC8,
0x85,0x58,0x84,0x59,0x60,0x90,0x80,0x00,0x00,0x00,0x20,0xBF,0xD1,0xA5,0x64,0xA4,
0x65,0x60,0x20,0x73,0x00,0x20,0x9E,0xCD,0x20,0x8D,0xCD,0xA5,0x66,0x30,0x0D,0xA5,
0x61,0xC9,0x90,0x90,0x09,0xA9,0xA5,0xA0,0xD1,0x20,0x5B,0xDC,0xD0,0x7A,0x4C,0x9B,
0xDC,0xA5,0x0C,0x05,0x0E,0x48,0xA5,0x0D,0x48,0xA0,0x00,0x98,0x48,0xA5,0x46,0x48,
0xA5,0x45,0x48,0x20,0xB2,0xD1,0x68,0x85,0x45,0x68,0x85,0x46,0x68,0xA8,0xBA,0xBD,
0x02,0x01,0x48,0xBD,0x01,0x01,0x48,0xA5,0x64,0x9D,0x02,0x01,0xA5,0x65,0x9D,0x01,
0x01,0xC8,0x20,0x79,0x00,0xC9,0x2C,0xF0,0xD2,0x84,0x0B,0x20,0xF7,0xCE,0x68,0x85,
0x0D,0x68,0x85,0x0E,0x29,0x7F,0x85,0x0C,0xA6,0x2F,0xA5,0x30,0x86,0x5F,0x85,0x60,
0xC5,0x32,0xD0,0x04,0xE4,0x31,0xF0,0x39,0xA0,0x00,0xB1,0x5F,0xC8,0xC5,0x45,0xD0,
0x06,0xA5,0x46,0xD1,0x5F,0xF0,0x16,0xC8,0xB1,0x5F,0x18,0x65,0x5F,0xAA,0xC8,0xB1,
0x5F,0x65,0x60,0x90,0xD7,0xA2,0x12,0x2C,0xA2,0x0E,0x4C,0x37,0xC4,0xA2,0x13,0xA5,
0x0C,0xD0,0xF7,0x20,0x94,0xD1,0xA5,0x0B,0xA0,0x04,0xD1,0x5F,0xD0,0xE7,0x4C,0xEA,
0xD2,0x20,0x94,0xD1,0x20,0x08,0xC4,0xA0,0x00,0x84,0x72,0xA2,0x05,0xA5,0x45,0x91,
0x5F,0x10,0x01,0xCA,0xC8,0xA5,0x46,0x91,0x5F,0x10,0x02,0xCA,0xCA,0x86,0x71,0xA5,
0x0B,0xC8,0xC8,0xC8,0x91,0x5F,0xA2,0x0B,0xA9,0x00,0x24,0x0C,0x50,0x08,0x68,0x18,
0x69,0x01,0xAA,0x68,0x69,0x00,0xC8,0x91,0x5F,0xC8,0x8A,0x91,0x5F,0x20,0x4C,0xD3,
0x86,0x71,0x85,0x72,0xA4,0x22,0xC6,0x0B,0xD0,0xDC,0x65,0x59,0xB0,0x5D,0x85,0x59,
0xA8,0x8A,0x65,0x58,0x90,0x03,0xC8,0xF0,0x52,0x20,0x08,0xC4,0x85,0x31,0x84,0x32,
0xA9,0x00,0xE6,0x72,0xA4,0x71,0xF0,0x05,0x88,0x91,0x58,0xD0,0xFB,0xC6,0x59,0xC6,
0x72,0xD0,0xF5,0xE6,0x59,0x38,0xA5,0x31,0xE5,0x5F,0xA0,0x02,0x91,0x5F,0xA5,0x32,
0xC8,0xE5,0x60,0x91,0x5F,0xA5,0x0C,0xD0,0x62,0xC8,0xB1,0x5F,0x85,0x0B,0xA9,0x00,
0x85,0x71,0x85,0x72,0xC8,0x68,0xAA,0x85,0x64,0x68,0x85,0x65,0xD1,0x5F,0x90,0x0E,
0xD0,0x06,0xC8,0x8A,0xD1,0x5F,0x90,0x07,0x4C,0x45,0xD2,0x4C,0x35,0xC4,0xC8,0xA5,
0x72,0x05,0x71,0x18,0xF0,0x0A,0x20,0x4C,0xD3,0x8A,0x65,0x64,0xAA,0x98,0xA4,0x22,
0x65,0x65,0x86,0x71,0xC6,0x0B,0xD0,0xCA,0x85,0x72,0xA2,0x05,0xA5,0x45,0x10,0x01,
0xCA,0xA5,0x46,0x10,0x02,0xCA,0xCA,0x86,0x28,0xA9,0x00,0x20,0x55,0xD3,0x8A,0x65,
0x58,0x85,0x47,0x98,0x65,0x59,0x85,0x48,0xA8,0xA5,0x47,0x60,0x84,0x22,0xB1,0x5F,
0x85,0x28,0x88,0xB1,0x5F,0x85,0x29,0xA9,0x10,0x85,0x5D,0xA2,0x00,0xA0,0x00,0x8A,
0x0A,0xAA,0x98,0x2A,0xA8,0xB0,0xA4,0x06,0x71,0x26,0x72,0x90,0x0B,0x18,0x8A,0x65,
0x28,0xAA,0x98,0x65,0x29,0xA8,0xB0,0x93,0xC6,0x5D,0xD0,0xE3,0x60,0xA5,0x0D,0xF0,
0x03,0x20,0xA6,0xD6,0x20,0x26,0xD5,0x38,0xA5,0x33,0xE5,0x31,0xA8,0xA5,0x34,0xE5,
0x32,0xA2,0x00,0x86,0x0D,0x85,0x62,0x84,0x63,0xA2,0x90,0x4C,0x44,0xDC,0x38,0x20,
0xF0,0xFF,0xA9,0x00,0xF0,0xEB,0xA6,0x3A,0xE8,0xD0,0xA0,0xA2,0x15,0x2C,0xA2,0x1B,
0x4C,0x37,0xC4,0x20,0xE1,0xD3,0x20,0xA6,0xD3,0x20,0xFA,0xCE,0xA9,0x80,0x85,0x10,
0x20,0x8B,0xD0,0x20,0x8D,0xCD,0x20,0xF7,0xCE,0xA9,0xB2,0x20,0xFF,0xCE,0x48,0xA5,
0x48,0x48,0xA5,0x47,0x48,0xA5,0x7B,0x48,0xA5,0x7A,0x48,0x20,0xF8,0xC8,0x4C,0x4F,
0xD4,0xA9,0xA5,0x20,0xFF,0xCE,0x09,0x80,0x85,0x10,0x20,0x92,0xD0,0x85,0x4E,0x84,
0x4F,0x4C,0x8D,0xCD,0x20,0xE1,0xD3,0xA5,0x4F,0x48,0xA5,0x4E,0x48,0x20,0xF1,0xCE,
0x20,0x8D,0xCD,0x68,0x85,0x4E,0x68,0x85,0x4F,0xA0,0x02,0xB1,0x4E,0x85,0x47,0xAA,
0xC8,0xB1,0x4E,0xF0,0x99,0x85,0x48,0xC8,0xB1,0x47,0x48,0x88,0x10,0xFA,0xA4,0x48,
0x20,0xD4,0xDB,0xA5,0x7B,0x48,0xA5,0x7A,0x48,0xB1,0x4E,0x85,0x7A,0xC8,0xB1,0x4E,
0x85,0x7B,0xA5,0x48,0x48,0xA5,0x47,0x48,0x20,0x8A,0xCD,0x68,0x85,0x4E,0x68,0x85,
0x4F,0x20,0x79,0x00,0xF0,0x03,0x4C,0x08,0xCF,0x68,0x85,0x7A,0x68,0x85,0x7B,0xA0,
0x00,0x68,0x91,0x4E,0x68,0xC8,0x91,0x4E,0x68,0xC8,0x91,0x4E,0x68,0xC8,0x91,0x4E,
0x68,0xC8,0x91,0x4E,0x60,0x20,0x8D,0xCD,0xA0,0x00,0x20,0xDF,0xDD,0x68,0x68,0xA9,
0xFF,0xA0,0x00,0xF0,0x12,0xA6,0x64,0xA4,0x65,0x86,0x50,0x84,0x51,0x20,0xF4,0xD4,
0x86,0x62,0x84,0x63,0x85,0x61,0x60,0xA2,0x22,0x86,0x07,0x86,0x08,0x85,0x6F,0x84,
0x70,0x85,0x62,0x84,0x63,0xA0,0xFF,0xC8,0xB1,0x6F,0xF0,0x0C,0xC5,0x07,0xF0,0x04,
0xC5,0x08,0xD0,0xF3,0xC9,0x22,0xF0,0x01,0x18,0x84,0x61,0x98,0x65,0x6F,0x85,0x71,
0xA6,0x70,0x90,0x01,0xE8,0x86,0x72,0xA5,0x70,0xF0,0x04,0xC9,0x02,0xD0,0x0B,0x98,
0x20,0x75,0xD4,0xA6,0x6F,0xA4,0x70,0x20,0x88,0xD6,0xA6,0x16,0xE0,0x22,0xD0,0x05,
0xA2,0x19,0x4C,0x37,0xC4,0xA5,0x61,0x95,0x00,0xA5,0x62,0x95,0x01,0xA5,0x63,0x95,
0x02,0xA0,0x00,0x86,0x64,0x84,0x65,0x84,0x70,0x88,0x84,0x0D,0x86,0x17,0xE8,0xE8,
0xE8,0x86,0x16,0x60,0x46,0x0F,0x48,0x49,0xFF,0x38,0x65,0x33,0xA4,0x34,0xB0,0x01,
0x88,0xC4,0x32,0x90,0x11,0xD0,0x04,0xC5,0x31,0x90,0x0B,0x85,0x33,0x84,0x34,0x85,
0x35,0x84,0x36,0xAA,0x68,0x60,0xA2,0x10,0xA5,0x0F,0x30,0xB6,0x20,0x26,0xD5,0xA9,
0x80,0x85,0x0F,0x68,0xD0,0xD0,0xA6,0x37,0xA5,0x38,0x86,0x33,0x85,0x34,0xA0,0x00,
0x84,0x4F,0x84,0x4E,0xA5,0x31,0xA6,0x32,0x85,0x5F,0x86,0x60,0xA9,0x19,0xA2,0x00,
0x85,0x22,0x86,0x23,0xC5,0x16,0xF0,0x05,0x20,0xC7,0xD5,0xF0,0xF7,0xA9,0x07,0x85,
0x53,0xA5,0x2D,0xA6,0x2E,0x85,0x22,0x86,0x23,0xE4,0x30,0xD0,0x04,0xC5,0x2F,0xF0,
0x05,0x20,0xBD,0xD5,0xF0,0xF3,0x85,0x58,0x86,0x59,0xA9,0x03,0x85,0x53,0xA5,0x58,
0xA6,0x59,0xE4,0x32,0xD0,0x07,0xC5,0x31,0xD0,0x03,0x4C,0x06,0xD6,0x85,0x22,0x86,
0x23,0xA0,0x00,0xB1,0x22,0xAA,0xC8,0xB1,0x22,0x08,0xC8,0xB1,0x22,0x65,0x58,0x85,
0x58,0xC8,0xB1,0x22,0x65,0x59,0x85,0x59,0x28,0x10,0xD3,0x8A,0x30,0xD0,0xC8,0xB1,
0x22,0xA0,0x00,0x0A,0x69,0x05,0x65,0x22,0x85,0x22,0x90,0x02,0xE6,0x23,0xA6,0x23,
0xE4,0x59,0xD0,0x04,0xC5,0x58,0xF0,0xBA,0x20,0xC7,0xD5,0xF0,0xF3,0xB1,0x22,0x30,
0x35,0xC8,0xB1,0x22,0x10,0x30,0xC8,0xB1,0x22,0xF0,0x2B,0xC8,0xB1,0x22,0xAA,0xC8,
0xB1,0x22,0xC5,0x34,0x90,0x06,0xD0,0x1E,0xE4,0x33,0xB0,0x1A,0xC5,0x60,0x90,0x16,
0xD0,0x04,0xE4,0x5F,0x90,0x10,0x86,0x5F,0x85,0x60,0xA5,0x22,0xA6,0x23,0x85,0x4E,
0x86,0x4F,0xA5,0x53,0x85,0x55,0xA5,0x53,0x18,0x65,0x22,0x85,0x22,0x90,0x02,0xE6,
0x23,0xA6,0x23,0xA0,0x00,0x60,0xA5,0x4F,0x05,0x4E,0xF0,0xF5,0xA5,0x55,0x29,0x04,
0x4A,0xA8,0x85,0x55,0xB1,0x4E,0x65,0x5F,0x85,0x5A,0xA5,0x60,0x69,0x00,0x85,0x5B,
0xA5,0x33,0xA6,0x34,0x85,0x58,0x86,0x59,0x20,0xBF,0xC3,0xA4,0x55,0xC8,0xA5,0x58,
0x91,0x4E,0xAA,0xE6,0x59,0xA5,0x59,0xC8,0x91,0x4E,0x4C,0x2A,0xD5,0xA5,0x65,0x48,
0xA5,0x64,0x48,0x20,0x83,0xCE,0x20,0x8F,0xCD,0x68,0x85,0x6F,0x68,0x85,0x70,0xA0,
0x00,0xB1,0x6F,0x18,0x71,0x64,0x90,0x05,0xA2,0x17,0x4C,0x37,0xC4,0x20,0x75,0xD4,
0x20,0x7A,0xD6,0xA5,0x50,0xA4,0x51,0x20,0xAA,0xD6,0x20,0x8C,0xD6,0xA5,0x6F,0xA4,
0x70,0x20,0xAA,0xD6,0x20,0xCA,0xD4,0x4C,0xB8,0xCD,0xA0,0x00,0xB1,0x6F,0x48,0xC8,
0xB1,0x6F,0xAA,0xC8,0xB1,0x6F,0xA8,0x68,0x86,0x22,0x84,0x23,0xA8,0xF0,0x0A,0x48,
0x88,0xB1,0x22,0x91,0x35,0x98,0xD0,0xF8,0x68,0x18,0x65,0x35,0x85,0x35,0x90,0x02,
0xE6,0x36,0x60,0x20,0x8F,0xCD,0xA5,0x64,0xA4,0x65,0x85,0x22,0x84,0x23,0x20,0xDB,
0xD6,0x08,0xA0,0x00,0xB1,0x22,0x48,0xC8,0xB1,0x22,0xAA,0xC8,0xB1,0x22,0xA8,0x68,
0x28,0xD0,0x13,0xC4,0x34,0xD0,0x0F,0xE4,0x33,0xD0,0x0B,0x48,0x18,0x65,0x33,0x85,
0x33,0x90,0x02,0xE6,0x34,0x68,0x86,0x22,0x84,0x23,0x60,0xC4,0x18,0xD0,0x0C,0xC5,
0x17,0xD0,0x08,0x85,0x16,0xE9,0x03,0x85,0x17,0xA0,0x00,0x60,0x20,0xA1,0xD7,0x8A,
0x48,0xA9,0x01,0x20,0x7D,0xD4,0x68,0xA0,0x00,0x91,0x62,0x68,0x68,0x4C,0xCA,0xD4,
0x20,0x61,0xD7,0xD1,0x50,0x98,0x90,0x04,0xB1,0x50,0xAA,0x98,0x48,0x8A,0x48,0x20,
0x7D,0xD4,0xA5,0x50,0xA4,0x51,0x20,0xAA,0xD6,0x68,0xA8,0x68,0x18,0x65,0x22,0x85,
0x22,0x90,0x02,0xE6,0x23,0x98,0x20,0x8C,0xD6,0x4C,0xCA,0xD4,0x20,0x61,0xD7,0x18,
0xF1,0x50,0x49,0xFF,0x4C,0x06,0xD7,0xA9,0xFF,0x85,0x65,0x20,0x79,0x00,0xC9,0x29,
0xF0,0x06,0x20,0xFD,0xCE,0x20,0x9E,0xD7,0x20,0x61,0xD7,0xF0,0x4B,0xCA,0x8A,0x48,
0x18,0xA2,0x00,0xF1,0x50,0xB0,0xB6,0x49,0xFF,0xC5,0x65,0x90,0xB1,0xA5,0x65,0xB0,
0xAD,0x20,0xF7,0xCE,0x68,0xA8,0x68,0x85,0x55,0x68,0x68,0x68,0xAA,0x68,0x85,0x50,
0x68,0x85,0x51,0xA5,0x55,0x48,0x98,0x48,0xA0,0x00,0x8A,0x60,0x20,0x82,0xD7,0x4C,
0xA2,0xD3,0x20,0xA3,0xD6,0xA2,0x00,0x86,0x0D,0xA8,0x60,0x20,0x82,0xD7,0xF0,0x08,
0xA0,0x00,0xB1,0x22,0xA8,0x4C,0xA2,0xD3,0x4C,0x48,0xD2,0x20,0x73,0x00,0x20,0x8A,
0xCD,0x20,0xB8,0xD1,0xA6,0x64,0xD0,0xF0,0xA6,0x65,0x4C,0x79,0x00,0x20,0x82,0xD7,
0xD0,0x03,0x4C,0xF7,0xD8,0xA6,0x7A,0xA4,0x7B,0x86,0x71,0x84,0x72,0xA6,0x22,0x86,
0x7A,0x18,0x65,0x22,0x85,0x24,0xA6,0x23,0x86,0x7B,0x90,0x01,0xE8,0x86,0x25,0xA0,
0x00,0xB1,0x24,0x48,0x98,0x91,0x24,0x20,0x79,0x00,0x20,0xF3,0xDC,0x68,0xA0,0x00,
0x91,0x24,0xA6,0x71,0xA4,0x72,0x86,0x7A,0x84,0x7B,0x60,0x20,0x8A,0xCD,0x20,0xF7,
0xD7,0x20,0xFD,0xCE,0x4C,0x9E,0xD7,0xA5,0x66,0x30,0x9D,0xA5,0x61,0xC9,0x91,0xB0,
0x97,0x20,0x9B,0xDC,0xA5,0x64,0xA4,0x65,0x84,0x14,0x85,0x15,0x60,0xA5,0x15,0x48,
0xA5,0x14,0x48,0x20,0xF7,0xD7,0xA0,0x00,0xB1,0x14,0xA8,0x68,0x85,0x14,0x68,0x85,
0x15,0x4C,0xA2,0xD3,0x20,0xEB,0xD7,0x8A,0xA0,0x00,0x91,0x14,0x60,0x20,0xEB,0xD7,
0x86,0x49,0xA2,0x00,0x20,0x79,0x00,0xF0,0x03,0x20,0xF1,0xD7,0x86,0x4A,0xA0,0x00,
0xB1,0x14,0x45,0x4A,0x25,0x49,0xF0,0xF8,0x60,0xA9,0x11,0xA0,0xDF,0x4C,0x67,0xD8,
0x20,0x8C,0xDA,0xA5,0x66,0x49,0xFF,0x85,0x66,0x45,0x6E,0x85,0x6F,0xA5,0x61,0x4C,
0x6A,0xD8,0x20,0x99,0xD9,0x90,0x3C,0x20,0x8C,0xDA,0xD0,0x03,0x4C,0xFC,0xDB,0xA6,
0x70,0x86,0x56,0xA2,0x69,0xA5,0x69,0xA8,0xF0,0xCE,0x38,0xE5,0x61,0xF0,0x24,0x90,
0x12,0x84,0x61,0xA4,0x6E,0x84,0x66,0x49,0xFF,0x69,0x00,0xA0,0x00,0x84,0x56,0xA2,
0x61,0xD0,0x04,0xA0,0x00,0x84,0x70,0xC9,0xF9,0x30,0xC7,0xA8,0xA5,0x70,0x56,0x01,
0x20,0xB0,0xD9,0x24,0x6F,0x10,0x57,0xA0,0x61,0xE0,0x69,0xF0,0x02,0xA0,0x69,0x38,
0x49,0xFF,0x65,0x56,0x85,0x70,0xB9,0x04,0x00,0xF5,0x04,0x85,0x65,0xB9,0x03,0x00,
0xF5,0x03,0x85,0x64,0xB9,0x02,0x00,0xF5,0x02,0x85,0x63,0xB9,0x01,0x00,0xF5,0x01,
0x85,0x62,0xB0,0x03,0x20,0x47,0xD9,0xA0,0x00,0x98,0x18,0xA6,0x62,0xD0,0x4A,0xA6,
0x63,0x86,0x62,0xA6,0x64,0x86,0x63,0xA6,0x65,0x86,0x64,0xA6,0x70,0x86,0x65,0x84,
0x70,0x69,0x08,0xC9,0x20,0xD0,0xE4,0xA9,0x00,0x85,0x61,0x85,0x66,0x60,0x65,0x56,
0x85,0x70,0xA5,0x65,0x65,0x6D,0x85,0x65,0xA5,0x64,0x65,0x6C,0x85,0x64,0xA5,0x63,
0x65,0x6B,0x85,0x63,0xA5,0x62,0x65,0x6A,0x85,0x62,0x4C,0x36,0xD9,0x69,0x01,0x06,
0x70,0x26,0x65,0x26,0x64,0x26,0x63,0x26,0x62,0x10,0xF2,0x38,0xE5,0x61,0xB0,0xC7,
0x49,0xFF,0x69,0x01,0x85,0x61,0x90,0x0E,0xE6,0x61,0xF0,0x42,0x66,0x62,0x66,0x63,
0x66,0x64,0x66,0x65,0x66,0x70,0x60,0xA5,0x66,0x49,0xFF,0x85,0x66,0xA5,0x62,0x49,
0xFF,0x85,0x62,0xA5,0x63,0x49,0xFF,0x85,0x63,0xA5,0x64,0x49,0xFF,0x85,0x64,0xA5,
0x65,0x49,0xFF,0x85,0x65,0xA5,0x70,0x49,0xFF,0x85,0x70,0xE6,0x70,0xD0,0x0E,0xE6,
0x65,0xD0,0x0A,0xE6,0x64,0xD0,0x06,0xE6,0x63,0xD0,0x02,0xE6,0x62,0x60,0xA2,0x0F,
0x4C,0x37,0xC4,0xA2,0x25,0xB4,0x04,0x84,0x70,0xB4,0x03,0x94,0x04,0xB4,0x02,0x94,
0x03,0xB4,0x01,0x94,0x02,0xA4,0x68,0x94,0x01,0x69,0x08,0x30,0xE8,0xF0,0xE6,0xE9,
0x08,0xA8,0xA5,0x70,0xB0,0x14,0x16,0x01,0x90,0x02,0xF6,0x01,0x76,0x01,0x76,0x01,
0x76,0x02,0x76,0x03,0x76,0x04,0x6A,0xC8,0xD0,0xEC,0x18,0x60,0x81,0x00,0x00,0x00,
0x00,0x03,0x7F,0x5E,0x56,0xCB,0x79,0x80,0x13,0x9B,0x0B,0x64,0x80,0x76,0x38,0x93,
0x16,0x82,0x38,0xAA,0x3B,0x20,0x80,0x35,0x04,0xF3,0x34,0x81,0x35,0x04,0xF3,0x34,
0x80,0x80,0x00,0x00,0x00,0x80,0x31,0x72,0x17,0xF8,0x20,0x2B,0xDC,0xF0,0x02,0x10,
0x03,0x4C,0x48,0xD2,0xA5,0x61,0xE9,0x7F,0x48,0xA9,0x80,0x85,0x61,0xA9,0xD6,0xA0,
0xD9,0x20,0x67,0xD8,0xA9,0xDB,0xA0,0xD9,0x20,0x0F,0xDB,0xA9,0xBC,0xA0,0xD9,0x20,
0x50,0xD8,0xA9,0xC1,0xA0,0xD9,0x20,0x40,0xE0,0xA9,0xE0,0xA0,0xD9,0x20,0x67,0xD8,
0x68,0x20,0x7E,0xDD,0xA9,0xE5,0xA0,0xD9,0x20,0x8C,0xDA,0xD0,0x03,0x4C,0x8B,0xDA,
0x20,0xB7,0xDA,0xA9,0x00,0x85,0x26,0x85,0x27,0x85,0x28,0x85,0x29,0xA5,0x70,0x20,
0x59,0xDA,0xA5,0x65,0x20,0x59,0xDA,0xA5,0x64,0x20,0x59,0xDA,0xA5,0x63,0x20,0x59,
0xDA,0xA5,0x62,0x20,0x5E,0xDA,0x4C,0x8F,0xDB,0xD0,0x03,0x4C,0x83,0xD9,0x4A,0x09,
0x80,0xA8,0x90,0x19,0x18,0xA5,0x29,0x65,0x6D,0x85,0x29,0xA5,0x28,0x65,0x6C,0x85,
0x28,0xA5,0x27,0x65,0x6B,0x85,0x27,0xA5,0x26,0x65,0x6A,0x85,0x26,0x66,0x26,0x66,
0x27,0x66,0x28,0x66,0x29,0x66,0x70,0x98,0x4A,0xD0,0xD6,0x60,0x85,0x22,0x84,0x23,
0xA0,0x04,0xB1,0x22,0x85,0x6D,0x88,0xB1,0x22,0x85,0x6C,0x88,0xB1,0x22,0x85,0x6B,
0x88,0xB1,0x22,0x85,0x6E,0x45,0x66,0x85,0x6F,0xA5,0x6E,0x09,0x80,0x85,0x6A,0x88,
0xB1,0x22,0x85,0x69,0xA5,0x61,0x60,0xA5,0x69,0xF0,0x1F,0x18,0x65,0x61,0x90,0x04,
0x30,0x1D,0x18,0x2C,0x10,0x14,0x69,0x80,0x85,0x61,0xD0,0x03,0x4C,0xFB,0xD8,0xA5,
0x6F,0x85,0x66,0x60,0xA5,0x66,0x49,0xFF,0x30,0x05,0x68,0x68,0x4C,0xF7,0xD8,0x4C,
0x7E,0xD9,0x20,0x0C,0xDC,0xAA,0xF0,0x10,0x18,0x69,0x02,0xB0,0xF2,0xA2,0x00,0x86,
0x6F,0x20,0x77,0xD8,0xE6,0x61,0xF0,0xE7,0x60,0x84,0x20,0x00,0x00,0x00,0x20,0x0C,
0xDC,0xA9,0xF9,0xA0,0xDA,0xA2,0x00,0x86,0x6F,0x20,0xA2,0xDB,0x4C,0x12,0xDB,0x20,
0x8C,0xDA,0xF0,0x76,0x20,0x1B,0xDC,0xA9,0x00,0x38,0xE5,0x61,0x85,0x61,0x20,0xB7,
0xDA,0xE6,0x61,0xF0,0xBA,0xA2,0xFC,0xA9,0x01,0xA4,0x6A,0xC4,0x62,0xD0,0x10,0xA4,
0x6B,0xC4,0x63,0xD0,0x0A,0xA4,0x6C,0xC4,0x64,0xD0,0x04,0xA4,0x6D,0xC4,0x65,0x08,
0x2A,0x90,0x09,0xE8,0x95,0x29,0xF0,0x32,0x10,0x34,0xA9,0x01,0x28,0xB0,0x0E,0x06,
0x6D,0x26,0x6C,0x26,0x6B,0x26,0x6A,0xB0,0xE6,0x30,0xCE,0x10,0xE2,0xA8,0xA5,0x6D,
0xE5,0x65,0x85,0x6D,0xA5,0x6C,0xE5,0x64,0x85,0x6C,0xA5,0x6B,0xE5,0x63,0x85,0x6B,
0xA5,0x6A,0xE5,0x62,0x85,0x6A,0x98,0x4C,0x4F,0xDB,0xA9,0x40,0xD0,0xCE,0x0A,0x0A,
0x0A,0x0A,0x0A,0x0A,0x85,0x70,0x28,0x4C,0x8F,0xDB,0xA2,0x14,0x4C,0x37,0xC4,0xA5,
0x26,0x85,0x62,0xA5,0x27,0x85,0x63,0xA5,0x28,0x85,0x64,0xA5,0x29,0x85,0x65,0x4C,
0xD7,0xD8,0x85,0x22,0x84,0x23,0xA0,0x04,0xB1,0x22,0x85,0x65,0x88,0xB1,0x22,0x85,
0x64,0x88,0xB1,0x22,0x85,0x63,0x88,0xB1,0x22,0x85,0x66,0x09,0x80,0x85,0x62,0x88,
0xB1,0x22,0x85,0x61,0x84,0x70,0x60,0xA2,0x5C,0x2C,0xA2,0x57,0xA0,0x00,0xF0,0x04,
0xA6,0x49,0xA4,0x4A,0x20,0x1B,0xDC,0x86,0x22,0x84,0x23,0xA0,0x04,0xA5,0x65,0x91,
0x22,0x88,0xA5,0x64,0x91,0x22,0x88,0xA5,0x63,0x91,0x22,0x88,0xA5,0x66,0x09,0x7F,
0x25,0x62,0x91,0x22,0x88,0xA5,0x61,0x91,0x22,0x84,0x70,0x60,0xA5,0x6E,0x85,0x66,
0xA2,0x05,0xB5,0x68,0x95,0x60,0xCA,0xD0,0xF9,0x86,0x70,0x60,0x20,0x1B,0xDC,0xA2,
0x06,0xB5,0x60,0x95,0x68,0xCA,0xD0,0xF9,0x86,0x70,0x60,0xA5,0x61,0xF0,0xFB,0x06,
0x70,0x90,0xF7,0x20,0x6F,0xD9,0xD0,0xF2,0x4C,0x38,0xD9,0xA5,0x61,0xF0,0x09,0xA5,
0x66,0x2A,0xA9,0xFF,0xB0,0x02,0xA9,0x01,0x60,0x20,0x2B,0xDC,0x85,0x62,0xA9,0x00,
0x85,0x63,0xA2,0x88,0xA5,0x62,0x49,0xFF,0x2A,0xA9,0x00,0x85,0x65,0x85,0x64,0x86,
0x61,0x85,0x70,0x85,0x66,0x4C,0xD2,0xD8,0x46,0x66,0x60,0x85,0x24,0x84,0x25,0xA0,
0x00,0xB1,0x24,0xC8,0xAA,0xF0,0xC4,0xB1,0x24,0x45,0x66,0x30,0xC2,0xE4,0x61,0xD0,
0x21,0xB1,0x24,0x09,0x80,0xC5,0x62,0xD0,0x19,0xC8,0xB1,0x24,0xC5,0x63,0xD0,0x12,
0xC8,0xB1,0x24,0xC5,0x64,0xD0,0x0B,0xC8,0xA9,0x7F,0xC5,0x70,0xB1,0x24,0xE5,0x65,
0xF0,0x28,0xA5,0x66,0x90,0x02,0x49,0xFF,0x4C,0x31,0xDC,0xA5,0x61,0xF0,0x4A,0x38,
0xE9,0xA0,0x24,0x66,0x10,0x09,0xAA,0xA9,0xFF,0x85,0x68,0x20,0x4D,0xD9,0x8A,0xA2,
0x61,0xC9,0xF9,0x10,0x06,0x20,0x99,0xD9,0x84,0x68,0x60,0xA8,0xA5,0x66,0x29,0x80,
0x46,0x62,0x05,0x62,0x85,0x62,0x20,0xB0,0xD9,0x84,0x68,0x60,0xA5,0x61,0xC9,0xA0,
0xB0,0x20,0x20,0x9B,0xDC,0x84,0x70,0xA5,0x66,0x84,0x66,0x49,0x80,0x2A,0xA9,0xA0,
0x85,0x61,0xA5,0x65,0x85,0x07,0x4C,0xD2,0xD8,0x85,0x62,0x85,0x63,0x85,0x64,0x85,
0x65,0xA8,0x60,0xA0,0x00,0xA2,0x0A,0x94,0x5D,0xCA,0x10,0xFB,0x90,0x0F,0xC9,0x2D,
0xD0,0x04,0x86,0x67,0xF0,0x04,0xC9,0x2B,0xD0,0x05,0x20,0x73,0x00,0x90,0x5B,0xC9,
0x2E,0xF0,0x2E,0xC9,0x45,0xD0,0x30,0x20,0x73,0x00,0x90,0x17,0xC9,0xAB,0xF0,0x0E,
0xC9,0x2D,0xF0,0x0A,0xC9,0xAA,0xF0,0x08,0xC9,0x2B,0xF0,0x04,0xD0,0x07,0x66,0x60,
0x20,0x73,0x00,0x90,0x5C,0x24,0x60,0x10,0x0E,0xA9,0x00,0x38,0xE5,0x5E,0x4C,0x49,
0xDD,0x66,0x5F,0x24,0x5F,0x50,0xC3,0xA5,0x5E,0x38,0xE5,0x5D,0x85,0x5E,0xF0,0x12,
0x10,0x09,0x20,0xFE,0xDA,0xE6,0x5E,0xD0,0xF9,0xF0,0x07,0x20,0xE2,0xDA,0xC6,0x5E,
0xD0,0xF9,0xA5,0x67,0x30,0x01,0x60,0x4C,0xB4,0xDF,0x48,0x24,0x5F,0x10,0x02,0xE6,
0x5D,0x20,0xE2,0xDA,0x68,0x38,0xE9,0x30,0x20,0x7E,0xDD,0x4C,0x0A,0xDD,0x48,0x20,
0x0C,0xDC,0x68,0x20,0x3C,0xDC,0xA5,0x6E,0x45,0x66,0x85,0x6F,0xA6,0x61,0x4C,0x6A,
0xD8,0xA5,0x5E,0xC9,0x0A,0x90,0x09,0xA9,0x64,0x24,0x60,0x30,0x11,0x4C,0x7E,0xD9,
0x0A,0x0A,0x18,0x65,0x5E,0x0A,0x18,0xA0,0x00,0x71,0x7A,0x38,0xE9,0x30,0x85,0x5E,
0x4C,0x30,0xDD,0x9B,0x3E,0xBC,0x1F,0xFD,0x9E,0x6E,0x6B,0x27,0xFD,0x9E,0x6E,0x6B,
0x28,0x00,0xA9,0x71,0xA0,0xC3,0x20,0xDA,0xDD,0xA5,0x3A,0xA6,0x39,0x85,0x62,0x86,
0x63,0xA2,0x90,0x38,0x20,0x49,0xDC,0x20,0xDF,0xDD,0x4C,0x1E,0xCB,0xA0,0x01,0xA9,
0x20,0x24,0x66,0x10,0x02,0xA9,0x2D,0x99,0xFF,0x00,0x85,0x66,0x84,0x71,0xC8,0xA9,
0x30,0xA6,0x61,0xD0,0x03,0x4C,0x04,0xDF,0xA9,0x00,0xE0,0x80,0xF0,0x02,0xB0,0x09,
0xA9,0xBD,0xA0,0xDD,0x20,0x28,0xDA,0xA9,0xF7,0x85,0x5D,0xA9,0xB8,0xA0,0xDD,0x20,
0x5B,0xDC,0xF0,0x1E,0x10,0x12,0xA9,0xB3,0xA0,0xDD,0x20,0x5B,0xDC,0xF0,0x02,0x10,
0x0E,0x20,0xE2,0xDA,0xC6,0x5D,0xD0,0xEE,0x20,0xFE,0xDA,0xE6,0x5D,0xD0,0xDC,0x20,
0x49,0xD8,0x20,0x9B,0xDC,0xA2,0x01,0xA5,0x5D,0x18,0x69,0x0A,0x30,0x09,0xC9,0x0B,
0xB0,0x06,0x69,0xFF,0xAA,0xA9,0x02,0x38,0xE9,0x02,0x85,0x5E,0x86,0x5D,0x8A,0xF0,
0x02,0x10,0x13,0xA4,0x71,0xA9,0x2E,0xC8,0x99,0xFF,0x00,0x8A,0xF0,0x06,0xA9,0x30,
0xC8,0x99,0xFF,0x00,0x84,0x71,0xA0,0x00,0xA2,0x80,0xA5,0x65,0x18,0x79,0x19,0xDF,
0x85,0x65,0xA5,0x64,0x79,0x18,0xDF,0x85,0x64,0xA5,0x63,0x79,0x17,0xDF,0x85,0x63,
0xA5,0x62,0x79,0x16,0xDF,0x85,0x62,0xE8,0xB0,0x04,0x10,0xDE,0x30,0x02,0x30,0xDA,
0x8A,0x90,0x04,0x49,0xFF,0x69,0x0A,0x69,0x2F,0xC8,0xC8,0xC8,0xC8,0x84,0x47,0xA4,
0x71,0xC8,0xAA,0x29,0x7F,0x99,0xFF,0x00,0xC6,0x5D,0xD0,0x06,0xA9,0x2E,0xC8,0x99,
0xFF,0x00,0x84,0x71,0xA4,0x47,0x8A,0x49,0xFF,0x29,0x80,0xAA,0xC0,0x24,0xF0,0x04,
0xC0,0x3C,0xD0,0xA6,0xA4,0x71,0xB9,0xFF,0x00,0x88,0xC9,0x30,0xF0,0xF8,0xC9,0x2E,
0xF0,0x01,0xC8,0xA9,0x2B,0xA6,0x5E,0xF0,0x2E,0x10,0x08,0xA9,0x00,0x38,0xE5,0x5E,
0xAA,0xA9,0x2D,0x99,0x01,0x01,0xA9,0x45,0x99,0x00,0x01,0x8A,0xA2,0x2F,0x38,0xE8,
0xE9,0x0A,0xB0,0xFB,0x69,0x3A,0x99,0x03,0x01,0x8A,0x99,0x02,0x01,0xA9,0x00,0x99,
0x04,0x01,0xF0,0x08,0x99,0xFF,0x00,0xA9,0x00,0x99,0x00,0x01,0xA9,0x00,0xA0,0x01,
0x60,0x80,0x00,0x00,0x00,0x00,0xFA,0x0A,0x1F,0x00,0x00,0x98,0x96,0x80,0xFF,0xF0,
0xBD,0xC0,0x00,0x01,0x86,0xA0,0xFF,0xFF,0xD8,0xF0,0x00,0x00,0x03,0xE8,0xFF,0xFF,
0xFF,0x9C,0x00,0x00,0x00,0x0A,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0x0A,0x80,0x00,0x03,
0x4B,0xC0,0xFF,0xFF,0x73,0x60,0x00,0x00,0x0E,0x10,0xFF,0xFF,0xFD,0xA8,0x00,0x00,
0x00,0x3C,0xBF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
0xAA,0x20,0x0C,0xDC,0xA9,0x11,0xA0,0xDF,0x20,0xA2,0xDB,0xF0,0x70,0xA5,0x69,0xD0,
0x03,0x4C,0xF9,0xD8,0xA2,0x4E,0xA0,0x00,0x20,0xD4,0xDB,0xA5,0x6E,0x10,0x0F,0x20,
0xCC,0xDC,0xA9,0x4E,0xA0,0x00,0x20,0x5B,0xDC,0xD0,0x03,0x98,0xA4,0x07,0x20,0xFE,
0xDB,0x98,0x48,0x20,0xEA,0xD9,0xA9,0x4E,0xA0,0x00,0x20,0x28,0xDA,0x20,0xED,0xDF,
0x68,0x4A,0x90,0x0A,0xA5,0x61,0xF0,0x06,0xA5,0x66,0x49,0xFF,0x85,0x66,0x60,0x81,
0x38,0xAA,0x3B,0x29,0x07,0x71,0x34,0x58,0x3E,0x56,0x74,0x16,0x7E,0xB3,0x1B,0x77,
0x2F,0xEE,0xE3,0x85,0x7A,0x1D,0x84,0x1C,0x2A,0x7C,0x63,0x59,0x58,0x0A,0x7E,0x75,
0xFD,0xE7,0xC6,0x80,0x31,0x72,0x18,0x10,0x81,0x00,0x00,0x00,0x00,0xA9,0xBF,0xA0,
0xDF,0x20,0x28,0xDA,0xA5,0x70,0x69,0x50,0x90,0x03,0x20,0x23,0xDC,0x85,0x56,0x20,
};

Wyświetl plik

@ -0,0 +1,258 @@
const unsigned char charrom[4096] = {
0x1C,0x22,0x4A,0x56,0x4C,0x20,0x1E,0x00,0x18,0x24,0x42,0x7E,0x42,0x42,0x42,0x00,
0x7C,0x22,0x22,0x3C,0x22,0x22,0x7C,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,
0x78,0x24,0x22,0x22,0x22,0x24,0x78,0x00,0x7E,0x40,0x40,0x78,0x40,0x40,0x7E,0x00,
0x7E,0x40,0x40,0x78,0x40,0x40,0x40,0x00,0x1C,0x22,0x40,0x4E,0x42,0x22,0x1C,0x00,
0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,
0x0E,0x04,0x04,0x04,0x04,0x44,0x38,0x00,0x42,0x44,0x48,0x70,0x48,0x44,0x42,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,0x42,0x66,0x5A,0x5A,0x42,0x42,0x42,0x00,
0x42,0x62,0x52,0x4A,0x46,0x42,0x42,0x00,0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00,
0x7C,0x42,0x42,0x7C,0x40,0x40,0x40,0x00,0x18,0x24,0x42,0x42,0x4A,0x24,0x1A,0x00,
0x7C,0x42,0x42,0x7C,0x48,0x44,0x42,0x00,0x3C,0x42,0x40,0x3C,0x02,0x42,0x3C,0x00,
0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,
0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x42,0x42,0x42,0x5A,0x5A,0x66,0x42,0x00,
0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x00,0x22,0x22,0x22,0x1C,0x08,0x08,0x08,0x00,
0x7E,0x02,0x04,0x18,0x20,0x40,0x7E,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,
0x0C,0x10,0x10,0x3C,0x10,0x70,0x6E,0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x3C,0x00,
0x00,0x08,0x1C,0x2A,0x08,0x08,0x08,0x08,0x00,0x00,0x10,0x20,0x7F,0x20,0x10,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x00,
0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x24,0x24,0x7E,0x24,0x7E,0x24,0x24,0x00,
0x08,0x1E,0x28,0x1C,0x0A,0x3C,0x08,0x00,0x00,0x62,0x64,0x08,0x10,0x26,0x46,0x00,
0x30,0x48,0x48,0x30,0x4A,0x44,0x3A,0x00,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00,
0x04,0x08,0x10,0x10,0x10,0x08,0x04,0x00,0x20,0x10,0x08,0x08,0x08,0x10,0x20,0x00,
0x08,0x2A,0x1C,0x3E,0x1C,0x2A,0x08,0x00,0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x10,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x00,
0x3C,0x42,0x46,0x5A,0x62,0x42,0x3C,0x00,0x08,0x18,0x28,0x08,0x08,0x08,0x3E,0x00,
0x3C,0x42,0x02,0x0C,0x30,0x40,0x7E,0x00,0x3C,0x42,0x02,0x1C,0x02,0x42,0x3C,0x00,
0x04,0x0C,0x14,0x24,0x7E,0x04,0x04,0x00,0x7E,0x40,0x78,0x04,0x02,0x44,0x38,0x00,
0x1C,0x20,0x40,0x7C,0x42,0x42,0x3C,0x00,0x7E,0x42,0x04,0x08,0x10,0x10,0x10,0x00,
0x3C,0x42,0x42,0x3C,0x42,0x42,0x3C,0x00,0x3C,0x42,0x42,0x3E,0x02,0x04,0x38,0x00,
0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x08,0x10,
0x0E,0x18,0x30,0x60,0x30,0x18,0x0E,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,
0x70,0x18,0x0C,0x06,0x0C,0x18,0x70,0x00,0x3C,0x42,0x02,0x0C,0x10,0x00,0x10,0x00,
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x08,0x1C,0x3E,0x7F,0x7F,0x1C,0x3E,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0xE0,0x10,0x08,0x08,
0x08,0x08,0x08,0x04,0x03,0x00,0x00,0x00,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x3C,0x7E,0x7E,0x7E,0x7E,0x3C,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x36,0x7F,0x7F,0x7F,0x3E,0x1C,0x08,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x03,0x04,0x08,0x08,
0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81,0x00,0x3C,0x42,0x42,0x42,0x42,0x3C,0x00,
0x08,0x1C,0x2A,0x77,0x2A,0x08,0x08,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x08,0x1C,0x3E,0x7F,0x3E,0x1C,0x08,0x00,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,
0xA0,0x50,0xA0,0x50,0xA0,0x50,0xA0,0x50,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0x00,0x00,0x01,0x3E,0x54,0x14,0x14,0x00,0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0xAA,0x55,0xAA,0x55,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x08,0x08,0x08,0x0F,0x08,0x08,0x08,
0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xF8,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,
0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,
0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,0x0F,0x0F,0x0F,0x0F,
0xE3,0xDD,0xB5,0xA9,0xB3,0xDF,0xE1,0xFF,0xE7,0xDB,0xBD,0x81,0xBD,0xBD,0xBD,0xFF,
0x83,0xDD,0xDD,0xC3,0xDD,0xDD,0x83,0xFF,0xE3,0xDD,0xBF,0xBF,0xBF,0xDD,0xE3,0xFF,
0x87,0xDB,0xDD,0xDD,0xDD,0xDB,0x87,0xFF,0x81,0xBF,0xBF,0x87,0xBF,0xBF,0x81,0xFF,
0x81,0xBF,0xBF,0x87,0xBF,0xBF,0xBF,0xFF,0xE3,0xDD,0xBF,0xB1,0xBD,0xDD,0xE3,0xFF,
0xBD,0xBD,0xBD,0x81,0xBD,0xBD,0xBD,0xFF,0xE3,0xF7,0xF7,0xF7,0xF7,0xF7,0xE3,0xFF,
0xF1,0xFB,0xFB,0xFB,0xFB,0xBB,0xC7,0xFF,0xBD,0xBB,0xB7,0x8F,0xB7,0xBB,0xBD,0xFF,
0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x81,0xFF,0xBD,0x99,0xA5,0xA5,0xBD,0xBD,0xBD,0xFF,
0xBD,0x9D,0xAD,0xB5,0xB9,0xBD,0xBD,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,
0x83,0xBD,0xBD,0x83,0xBF,0xBF,0xBF,0xFF,0xE7,0xDB,0xBD,0xBD,0xB5,0xDB,0xE5,0xFF,
0x83,0xBD,0xBD,0x83,0xB7,0xBB,0xBD,0xFF,0xC3,0xBD,0xBF,0xC3,0xFD,0xBD,0xC3,0xFF,
0xC1,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xC3,0xFF,
0xBD,0xBD,0xBD,0xDB,0xDB,0xE7,0xE7,0xFF,0xBD,0xBD,0xBD,0xA5,0xA5,0x99,0xBD,0xFF,
0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xFF,0xDD,0xDD,0xDD,0xE3,0xF7,0xF7,0xF7,0xFF,
0x81,0xFD,0xFB,0xE7,0xDF,0xBF,0x81,0xFF,0xC3,0xDF,0xDF,0xDF,0xDF,0xDF,0xC3,0xFF,
0xF3,0xEF,0xEF,0xC3,0xEF,0x8F,0x91,0xFF,0xC3,0xFB,0xFB,0xFB,0xFB,0xFB,0xC3,0xFF,
0xFF,0xF7,0xE3,0xD5,0xF7,0xF7,0xF7,0xF7,0xFF,0xFF,0xEF,0xDF,0x80,0xDF,0xEF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xF7,0xF7,0xFF,0xFF,0xF7,0xFF,
0xDB,0xDB,0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xDB,0xDB,0x81,0xDB,0x81,0xDB,0xDB,0xFF,
0xF7,0xE1,0xD7,0xE3,0xF5,0xC3,0xF7,0xFF,0xFF,0x9D,0x9B,0xF7,0xEF,0xD9,0xB9,0xFF,
0xCF,0xB7,0xB7,0xCF,0xB5,0xBB,0xC5,0xFF,0xFB,0xF7,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF7,0xEF,0xEF,0xEF,0xF7,0xFB,0xFF,0xDF,0xEF,0xF7,0xF7,0xF7,0xEF,0xDF,0xFF,
0xF7,0xD5,0xE3,0xC1,0xE3,0xD5,0xF7,0xFF,0xFF,0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xEF,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xFF,
0xC3,0xBD,0xB9,0xA5,0x9D,0xBD,0xC3,0xFF,0xF7,0xE7,0xD7,0xF7,0xF7,0xF7,0xC1,0xFF,
0xC3,0xBD,0xFD,0xF3,0xCF,0xBF,0x81,0xFF,0xC3,0xBD,0xFD,0xE3,0xFD,0xBD,0xC3,0xFF,
0xFB,0xF3,0xEB,0xDB,0x81,0xFB,0xFB,0xFF,0x81,0xBF,0x87,0xFB,0xFD,0xBB,0xC7,0xFF,
0xE3,0xDF,0xBF,0x83,0xBD,0xBD,0xC3,0xFF,0x81,0xBD,0xFB,0xF7,0xEF,0xEF,0xEF,0xFF,
0xC3,0xBD,0xBD,0xC3,0xBD,0xBD,0xC3,0xFF,0xC3,0xBD,0xBD,0xC1,0xFD,0xFB,0xC7,0xFF,
0xFF,0xFF,0xF7,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xF7,0xF7,0xEF,
0xF1,0xE7,0xCF,0x9F,0xCF,0xE7,0xF1,0xFF,0xFF,0xFF,0x81,0xFF,0x81,0xFF,0xFF,0xFF,
0x8F,0xE7,0xF3,0xF9,0xF3,0xE7,0x8F,0xFF,0xC3,0xBD,0xFD,0xF3,0xEF,0xFF,0xEF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xF7,0xE3,0xC1,0x80,0x80,0xE3,0xC1,0xFF,
0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,
0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFF,0xFF,0xFF,0xFF,0x1F,0xEF,0xF7,0xF7,
0xF7,0xF7,0xF7,0xFB,0xFC,0xFF,0xFF,0xFF,0xF7,0xF7,0xF7,0xEF,0x1F,0xFF,0xFF,0xFF,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xC3,0x81,0x81,0x81,0x81,0xC3,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xC9,0x80,0x80,0x80,0xC1,0xE3,0xF7,0xFF,
0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFB,0xF7,0xF7,
0x7E,0xBD,0xDB,0xE7,0xE7,0xDB,0xBD,0x7E,0xFF,0xC3,0xBD,0xBD,0xBD,0xBD,0xC3,0xFF,
0xF7,0xE3,0xD5,0x88,0xD5,0xF7,0xF7,0xFF,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,
0xF7,0xE3,0xC1,0x80,0xC1,0xE3,0xF7,0xFF,0xF7,0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0xF7,
0x5F,0xAF,0x5F,0xAF,0x5F,0xAF,0x5F,0xAF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
0xFF,0xFF,0xFE,0xC1,0xAB,0xEB,0xEB,0xFF,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0xFF,0xFF,0xFF,0xFF,0x55,0xAA,0x55,0xAA,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF7,0xF7,0xF7,0xF7,0xF0,0xF7,0xF7,0xF7,
0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF7,0xF7,0xF7,0xF7,0xF0,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x07,0xF7,0xF7,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xF0,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x07,0xF7,0xF7,0xF7,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,
0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xF7,0xF7,0x07,0xFF,0xFF,0xFF,
0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0,
0x1C,0x22,0x4A,0x56,0x4C,0x20,0x1E,0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x3A,0x00,
0x40,0x40,0x5C,0x62,0x42,0x62,0x5C,0x00,0x00,0x00,0x3C,0x42,0x40,0x42,0x3C,0x00,
0x02,0x02,0x3A,0x46,0x42,0x46,0x3A,0x00,0x00,0x00,0x3C,0x42,0x7E,0x40,0x3C,0x00,
0x0C,0x12,0x10,0x7C,0x10,0x10,0x10,0x00,0x00,0x00,0x3A,0x46,0x46,0x3A,0x02,0x3C,
0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x1C,0x00,
0x04,0x00,0x0C,0x04,0x04,0x04,0x44,0x38,0x40,0x40,0x44,0x48,0x50,0x68,0x44,0x00,
0x18,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,0x00,0x00,0x76,0x49,0x49,0x49,0x49,0x00,
0x00,0x00,0x5C,0x62,0x42,0x42,0x42,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x00,
0x00,0x00,0x5C,0x62,0x62,0x5C,0x40,0x40,0x00,0x00,0x3A,0x46,0x46,0x3A,0x02,0x02,
0x00,0x00,0x5C,0x62,0x40,0x40,0x40,0x00,0x00,0x00,0x3E,0x40,0x3C,0x02,0x7C,0x00,
0x10,0x10,0x7C,0x10,0x10,0x12,0x0C,0x00,0x00,0x00,0x42,0x42,0x42,0x46,0x3A,0x00,
0x00,0x00,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x00,0x41,0x49,0x49,0x49,0x36,0x00,
0x00,0x00,0x42,0x24,0x18,0x24,0x42,0x00,0x00,0x00,0x42,0x42,0x46,0x3A,0x02,0x3C,
0x00,0x00,0x7E,0x04,0x18,0x20,0x7E,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,
0x0C,0x10,0x10,0x3C,0x10,0x70,0x6E,0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x3C,0x00,
0x00,0x08,0x1C,0x2A,0x08,0x08,0x08,0x08,0x00,0x00,0x10,0x20,0x7F,0x20,0x10,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x00,
0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x24,0x24,0x7E,0x24,0x7E,0x24,0x24,0x00,
0x08,0x1E,0x28,0x1C,0x0A,0x3C,0x08,0x00,0x00,0x62,0x64,0x08,0x10,0x26,0x46,0x00,
0x30,0x48,0x48,0x30,0x4A,0x44,0x3A,0x00,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00,
0x04,0x08,0x10,0x10,0x10,0x08,0x04,0x00,0x20,0x10,0x08,0x08,0x08,0x10,0x20,0x00,
0x08,0x2A,0x1C,0x3E,0x1C,0x2A,0x08,0x00,0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x10,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x00,
0x3C,0x42,0x46,0x5A,0x62,0x42,0x3C,0x00,0x08,0x18,0x28,0x08,0x08,0x08,0x3E,0x00,
0x3C,0x42,0x02,0x0C,0x30,0x40,0x7E,0x00,0x3C,0x42,0x02,0x1C,0x02,0x42,0x3C,0x00,
0x04,0x0C,0x14,0x24,0x7E,0x04,0x04,0x00,0x7E,0x40,0x78,0x04,0x02,0x44,0x38,0x00,
0x1C,0x20,0x40,0x7C,0x42,0x42,0x3C,0x00,0x7E,0x42,0x04,0x08,0x10,0x10,0x10,0x00,
0x3C,0x42,0x42,0x3C,0x42,0x42,0x3C,0x00,0x3C,0x42,0x42,0x3E,0x02,0x04,0x38,0x00,
0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x08,0x10,
0x0E,0x18,0x30,0x60,0x30,0x18,0x0E,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,
0x70,0x18,0x0C,0x06,0x0C,0x18,0x70,0x00,0x3C,0x42,0x02,0x0C,0x10,0x00,0x10,0x00,
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x18,0x24,0x42,0x7E,0x42,0x42,0x42,0x00,
0x7C,0x22,0x22,0x3C,0x22,0x22,0x7C,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,
0x78,0x24,0x22,0x22,0x22,0x24,0x78,0x00,0x7E,0x40,0x40,0x78,0x40,0x40,0x7E,0x00,
0x7E,0x40,0x40,0x78,0x40,0x40,0x40,0x00,0x1C,0x22,0x40,0x4E,0x42,0x22,0x1C,0x00,
0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,
0x0E,0x04,0x04,0x04,0x04,0x44,0x38,0x00,0x42,0x44,0x48,0x70,0x48,0x44,0x42,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,0x42,0x66,0x5A,0x5A,0x42,0x42,0x42,0x00,
0x42,0x62,0x52,0x4A,0x46,0x42,0x42,0x00,0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00,
0x7C,0x42,0x42,0x7C,0x40,0x40,0x40,0x00,0x18,0x24,0x42,0x42,0x4A,0x24,0x1A,0x00,
0x7C,0x42,0x42,0x7C,0x48,0x44,0x42,0x00,0x3C,0x42,0x40,0x3C,0x02,0x42,0x3C,0x00,
0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,
0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x42,0x42,0x42,0x5A,0x5A,0x66,0x42,0x00,
0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x00,0x22,0x22,0x22,0x1C,0x08,0x08,0x08,0x00,
0x7E,0x02,0x04,0x18,0x20,0x40,0x7E,0x00,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,
0xA0,0x50,0xA0,0x50,0xA0,0x50,0xA0,0x50,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0x66,0x33,0x99,0xCC,0x66,0x33,0x99,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0xAA,0x55,0xAA,0x55,0x99,0x33,0x66,0xCC,0x99,0x33,0x66,0xCC,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x08,0x08,0x08,0x0F,0x08,0x08,0x08,
0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xF8,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0x01,0x02,0x44,0x48,0x50,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,
0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,
0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,0x0F,0x0F,0x0F,0x0F,
0xE3,0xDD,0xB5,0xA9,0xB3,0xDF,0xE1,0xFF,0xFF,0xFF,0xC7,0xFB,0xC3,0xBB,0xC5,0xFF,
0xBF,0xBF,0xA3,0x9D,0xBD,0x9D,0xA3,0xFF,0xFF,0xFF,0xC3,0xBD,0xBF,0xBD,0xC3,0xFF,
0xFD,0xFD,0xC5,0xB9,0xBD,0xB9,0xC5,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xC3,0xFF,
0xF3,0xED,0xEF,0x83,0xEF,0xEF,0xEF,0xFF,0xFF,0xFF,0xC5,0xB9,0xB9,0xC5,0xFD,0xC3,
0xBF,0xBF,0xA3,0x9D,0xBD,0xBD,0xBD,0xFF,0xF7,0xFF,0xE7,0xF7,0xF7,0xF7,0xE3,0xFF,
0xFB,0xFF,0xF3,0xFB,0xFB,0xFB,0xBB,0xC7,0xBF,0xBF,0xBB,0xB7,0xAF,0x97,0xBB,0xFF,
0xE7,0xF7,0xF7,0xF7,0xF7,0xF7,0xE3,0xFF,0xFF,0xFF,0x89,0xB6,0xB6,0xB6,0xB6,0xFF,
0xFF,0xFF,0xA3,0x9D,0xBD,0xBD,0xBD,0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xC3,0xFF,
0xFF,0xFF,0xA3,0x9D,0x9D,0xA3,0xBF,0xBF,0xFF,0xFF,0xC5,0xB9,0xB9,0xC5,0xFD,0xFD,
0xFF,0xFF,0xA3,0x9D,0xBF,0xBF,0xBF,0xFF,0xFF,0xFF,0xC1,0xBF,0xC3,0xFD,0x83,0xFF,
0xEF,0xEF,0x83,0xEF,0xEF,0xED,0xF3,0xFF,0xFF,0xFF,0xBD,0xBD,0xBD,0xB9,0xC5,0xFF,
0xFF,0xFF,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,0xFF,0xBE,0xB6,0xB6,0xB6,0xC9,0xFF,
0xFF,0xFF,0xBD,0xDB,0xE7,0xDB,0xBD,0xFF,0xFF,0xFF,0xBD,0xBD,0xB9,0xC5,0xFD,0xC3,
0xFF,0xFF,0x81,0xFB,0xE7,0xDF,0x81,0xFF,0xC3,0xDF,0xDF,0xDF,0xDF,0xDF,0xC3,0xFF,
0xF3,0xEF,0xEF,0xC3,0xEF,0x8F,0x91,0xFF,0xC3,0xFB,0xFB,0xFB,0xFB,0xFB,0xC3,0xFF,
0xFF,0xF7,0xE3,0xD5,0xF7,0xF7,0xF7,0xF7,0xFF,0xFF,0xEF,0xDF,0x80,0xDF,0xEF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xF7,0xF7,0xFF,0xFF,0xF7,0xFF,
0xDB,0xDB,0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xDB,0xDB,0x81,0xDB,0x81,0xDB,0xDB,0xFF,
0xF7,0xE1,0xD7,0xE3,0xF5,0xC3,0xF7,0xFF,0xFF,0x9D,0x9B,0xF7,0xEF,0xD9,0xB9,0xFF,
0xCF,0xB7,0xB7,0xCF,0xB5,0xBB,0xC5,0xFF,0xFB,0xF7,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0xF7,0xEF,0xEF,0xEF,0xF7,0xFB,0xFF,0xDF,0xEF,0xF7,0xF7,0xF7,0xEF,0xDF,0xFF,
0xF7,0xD5,0xE3,0xC1,0xE3,0xD5,0xF7,0xFF,0xFF,0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xEF,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xFF,
0xC3,0xBD,0xB9,0xA5,0x9D,0xBD,0xC3,0xFF,0xF7,0xE7,0xD7,0xF7,0xF7,0xF7,0xC1,0xFF,
0xC3,0xBD,0xFD,0xF3,0xCF,0xBF,0x81,0xFF,0xC3,0xBD,0xFD,0xE3,0xFD,0xBD,0xC3,0xFF,
0xFB,0xF3,0xEB,0xDB,0x81,0xFB,0xFB,0xFF,0x81,0xBF,0x87,0xFB,0xFD,0xBB,0xC7,0xFF,
0xE3,0xDF,0xBF,0x83,0xBD,0xBD,0xC3,0xFF,0x81,0xBD,0xFB,0xF7,0xEF,0xEF,0xEF,0xFF,
0xC3,0xBD,0xBD,0xC3,0xBD,0xBD,0xC3,0xFF,0xC3,0xBD,0xBD,0xC1,0xFD,0xFB,0xC7,0xFF,
0xFF,0xFF,0xF7,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xF7,0xF7,0xEF,
0xF1,0xE7,0xCF,0x9F,0xCF,0xE7,0xF1,0xFF,0xFF,0xFF,0x81,0xFF,0x81,0xFF,0xFF,0xFF,
0x8F,0xE7,0xF3,0xF9,0xF3,0xE7,0x8F,0xFF,0xC3,0xBD,0xFD,0xF3,0xEF,0xFF,0xEF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0x81,0xBD,0xBD,0xBD,0xFF,
0x83,0xDD,0xDD,0xC3,0xDD,0xDD,0x83,0xFF,0xE3,0xDD,0xBF,0xBF,0xBF,0xDD,0xE3,0xFF,
0x87,0xDB,0xDD,0xDD,0xDD,0xDB,0x87,0xFF,0x81,0xBF,0xBF,0x87,0xBF,0xBF,0x81,0xFF,
0x81,0xBF,0xBF,0x87,0xBF,0xBF,0xBF,0xFF,0xE3,0xDD,0xBF,0xB1,0xBD,0xDD,0xE3,0xFF,
0xBD,0xBD,0xBD,0x81,0xBD,0xBD,0xBD,0xFF,0xE3,0xF7,0xF7,0xF7,0xF7,0xF7,0xE3,0xFF,
0xF1,0xFB,0xFB,0xFB,0xFB,0xBB,0xC7,0xFF,0xBD,0xBB,0xB7,0x8F,0xB7,0xBB,0xBD,0xFF,
0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x81,0xFF,0xBD,0x99,0xA5,0xA5,0xBD,0xBD,0xBD,0xFF,
0xBD,0x9D,0xAD,0xB5,0xB9,0xBD,0xBD,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,
0x83,0xBD,0xBD,0x83,0xBF,0xBF,0xBF,0xFF,0xE7,0xDB,0xBD,0xBD,0xB5,0xDB,0xE5,0xFF,
0x83,0xBD,0xBD,0x83,0xB7,0xBB,0xBD,0xFF,0xC3,0xBD,0xBF,0xC3,0xFD,0xBD,0xC3,0xFF,
0xC1,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xC3,0xFF,
0xBD,0xBD,0xBD,0xDB,0xDB,0xE7,0xE7,0xFF,0xBD,0xBD,0xBD,0xA5,0xA5,0x99,0xBD,0xFF,
0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xFF,0xDD,0xDD,0xDD,0xE3,0xF7,0xF7,0xF7,0xFF,
0x81,0xFD,0xFB,0xE7,0xDF,0xBF,0x81,0xFF,0xF7,0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0xF7,
0x5F,0xAF,0x5F,0xAF,0x5F,0xAF,0x5F,0xAF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x99,0xCC,0x66,0x33,0x99,0xCC,0x66,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0xFF,0xFF,0xFF,0xFF,0x55,0xAA,0x55,0xAA,0x66,0xCC,0x99,0x33,0x66,0xCC,0x99,0x33,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF7,0xF7,0xF7,0xF7,0xF0,0xF7,0xF7,0xF7,
0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF7,0xF7,0xF7,0xF7,0xF0,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x07,0xF7,0xF7,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xF0,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x07,0xF7,0xF7,0xF7,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0xFE,0xFD,0xBB,0xB7,0xAF,0x9F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,
0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xF7,0xF7,0x07,0xFF,0xFF,0xFF,
0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0,
};

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,147 @@
#ifndef EMUAPI_H
#define EMUAPI_H
#include "platform_config.h"
#define CUSTOM_SND 1
//#define TIMER_REND 1
#define EXTRA_HEAP 0x10
// Title: < >
#define TITLE " V20 Emulator "
#define ROMSDIR "v20"
#define emu_Init(ROM) {v20_Init(); v20_Start(ROM);}
#define emu_Step(x) { v20_Step(); }
#define emu_Input(x) { v20_Input(x); }
#define PALETTE_SIZE 256
#define VID_FRAME_SKIP 0x0
#define TFT_VBUFFER_YCROP 0
#define SINGLELINE_RENDERING 1
#define ACTION_NONE 0
#define ACTION_MAXKBDVAL 12
#define ACTION_EXITKBD 128
#define ACTION_RUNTFT 129
#define ACTION_RUNVGA 130
#ifdef KEYMAP_PRESENT
#define keylables_map1_0 (char *)"qwertyuiop\x1a"
#define keylables_map1_1 (char *)" asdfghjkl\x19"
#define keylables_map1_2 (char *)" zxcvbnm.\x10 "
const unsigned short key_map1[] = {
'Q','W','E','R','T','Y','U','I','O','P',157,
0,'A','S','D','F','G','H','J','K','L',0x0D,
0,'Z','X','C','V','B','N','M','.',' ',
0,0,0,0
};
#define keylables_map2_0 (char *)"1234567890 "
#define keylables_map2_1 (char *)" !@#$%+&*- "
#define keylables_map2_2 (char *)" ()?/\"<>,: "
const unsigned short key_map2[] = {
'1','2','3','4','5','6','7','8','9','0',0,
31, '!','@','#','$','%','+','&','*','-','\/',
0, '(',')','?','\/','"','<','>',',',':',
145,157,29,17
};
#define keylables_map3_0 (char *)"\x11\x12\x13\x14\x15\x16\x17\x18 "
#define keylables_map3_1 (char *)" "
#define keylables_map3_2 (char *)" ;= "
const unsigned short key_map3[] = {
133,134,135,136,137,138,139,140,0,0,0, // function keys
0, 0,0,0,0,0,0,0,0,0,0,
0, 0,0,0,0,0,0,0,';','=',
0,0,0,0
};
const unsigned short matkeys[] = {
0x020,0x120,0x220,0x320,0x420,0x408,0x308,0x208,0x108,0x008,0x002, // row 1
0x510,0x010,0x110,0x210,0x310,0x410,0x401,0x301,0x201,0x101,0x001, // row 2
0x520,0x102,0x202,0x302,0x402,0x404,0x304,0x204,0x104,0x004, // row 3
0x508,0x501,0x502,0x504 }; // cursor keys
#endif
#define MASK_JOY2_RIGHT 0x0001
#define MASK_JOY2_LEFT 0x0002
#define MASK_JOY2_UP 0x0004
#define MASK_JOY2_DOWN 0x0008
#define MASK_JOY2_BTN 0x0010
#define MASK_KEY_USER1 0x0020
#define MASK_KEY_USER2 0x0040
#define MASK_KEY_USER3 0x0080
#define MASK_JOY1_RIGHT 0x0100
#define MASK_JOY1_LEFT 0x0200
#define MASK_JOY1_UP 0x0400
#define MASK_JOY1_DOWN 0x0800
#define MASK_JOY1_BTN 0x1000
#define MASK_KEY_USER4 0x2000
#define MASK_OSKB 0x8000
extern void emu_init(void);
extern void emu_start(void);
extern void emu_resetSD(void);
extern void emu_printf(char * text);
extern void emu_printi(int val);
extern void * emu_Malloc(int size);
extern void emu_Free(void * pt);
extern int emu_FileOpen(char * filename);
extern int emu_FileRead(char * buf, int size);
extern unsigned char emu_FileGetc(void);
extern int emu_FileSeek(int seek);
extern void emu_FileClose(void);
extern int emu_FileSize(char * filename);
extern int emu_LoadFile(char * filename, char * buf, int size);
extern int emu_LoadFileSeek(char * filename, char * buf, int size, int seek);
extern void emu_FileTempInit(void);
extern void emu_FileTempRead(int addr, unsigned char * val, int n);
extern void emu_FileTempWrite(int addr, unsigned char val);
extern void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index);
extern void emu_DrawScreen(unsigned char * VBuf, int width, int height, int stride);
extern void emu_DrawLine(unsigned char * VBuf, int width, int height, int line);
extern void emu_DrawLine8(unsigned char * VBuf, int width, int height, int line);
extern void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line);
extern void emu_DrawVsync(void);
extern int emu_FrameSkip(void);
extern void * emu_LineBuffer(int line);
extern void emu_InitJoysticks(void);
extern int emu_SwapJoysticks(int statusOnly);
extern unsigned short emu_DebounceLocalKeys(void);
extern int emu_ReadKeys(void);
extern int emu_GetPad(void);
extern int emu_ReadAnalogJoyX(int min, int max);
extern int emu_ReadAnalogJoyY(int min, int max);
extern int emu_ReadI2CKeyboard(void);
extern unsigned char emu_ReadI2CKeyboard2(int row);
extern void emu_KeyboardOnUp(int keymodifer, int key);
extern void emu_KeyboardOnDown(int keymodifer, int key);
extern int emu_oskbActive(void);
extern void emu_sndPlaySound(int chan, int volume, int freq);
extern void emu_sndPlayBuzz(int size, int val);
extern void emu_sndInit();
extern void emu_resetus(void);
extern int emu_us(void);
extern int emu_setKeymap(int index);
extern void emu_FileTempInit(void);
extern void emu_FileTempRead(int addr, unsigned char * val, int n);
extern void emu_FileTempWrite(int addr, unsigned char val);
extern void emu_printh(int val);
#endif

Wyświetl plik

@ -0,0 +1,514 @@
const unsigned char kernalrom[8192] = {
0x0F,0xDC,0xA5,0x61,0xC9,0x88,0x90,0x03,0x20,0xD4,0xDA,0x20,0xCC,0xDC,0xA5,0x07,
0x18,0x69,0x81,0xF0,0xF3,0x38,0xE9,0x01,0x48,0xA2,0x05,0xB5,0x69,0xB4,0x61,0x95,
0x61,0x94,0x69,0xCA,0x10,0xF5,0xA5,0x56,0x85,0x70,0x20,0x53,0xD8,0x20,0xB4,0xDF,
0xA9,0xC4,0xA0,0xDF,0x20,0x56,0xE0,0xA9,0x00,0x85,0x6F,0x68,0x20,0xB9,0xDA,0x60,
0x85,0x71,0x84,0x72,0x20,0xCA,0xDB,0xA9,0x57,0x20,0x28,0xDA,0x20,0x5A,0xE0,0xA9,
0x57,0xA0,0x00,0x4C,0x28,0xDA,0x85,0x71,0x84,0x72,0x20,0xC7,0xDB,0xB1,0x71,0x85,
0x67,0xA4,0x71,0xC8,0x98,0xD0,0x02,0xE6,0x72,0x85,0x71,0xA4,0x72,0x20,0x28,0xDA,
0xA5,0x71,0xA4,0x72,0x18,0x69,0x05,0x90,0x01,0xC8,0x85,0x71,0x84,0x72,0x20,0x67,
0xD8,0xA9,0x5C,0xA0,0x00,0xC6,0x67,0xD0,0xE4,0x60,0x98,0x35,0x44,0x7A,0x00,0x68,
0x28,0xB1,0x46,0x00,0x20,0x2B,0xDC,0x30,0x37,0xD0,0x20,0x20,0xF3,0xFF,0x86,0x22,
0x84,0x23,0xA0,0x04,0xB1,0x22,0x85,0x62,0xC8,0xB1,0x22,0x85,0x64,0xA0,0x08,0xB1,
0x22,0x85,0x63,0xC8,0xB1,0x22,0x85,0x65,0x4C,0xE0,0xE0,0xA9,0x8B,0xA0,0x00,0x20,
0xA2,0xDB,0xA9,0x8A,0xA0,0xE0,0x20,0x28,0xDA,0xA9,0x8F,0xA0,0xE0,0x20,0x67,0xD8,
0xA6,0x65,0xA5,0x62,0x85,0x65,0x86,0x62,0xA6,0x63,0xA5,0x64,0x85,0x63,0x86,0x64,
0xA9,0x00,0x85,0x66,0xA5,0x61,0x85,0x70,0xA9,0x80,0x85,0x61,0x20,0xD7,0xD8,0xA2,
0x8B,0xA0,0x00,0x4C,0xD4,0xDB,0xC9,0xF0,0xD0,0x07,0x84,0x38,0x86,0x37,0x4C,0x63,
0xC6,0xAA,0xD0,0x02,0xA2,0x1E,0x4C,0x37,0xC4,0x20,0xD2,0xFF,0xB0,0xE8,0x60,0x20,
0xCF,0xFF,0xB0,0xE2,0x60,0x20,0xC9,0xFF,0xB0,0xDC,0x60,0x20,0xC6,0xFF,0xB0,0xD6,
0x60,0x20,0xE4,0xFF,0xB0,0xD0,0x60,0x20,0x8A,0xCD,0x20,0xF7,0xD7,0xA9,0xE1,0x48,
0xA9,0x43,0x48,0xAD,0x0F,0x03,0x48,0xAD,0x0C,0x03,0xAE,0x0D,0x03,0xAC,0x0E,0x03,
0x28,0x6C,0x14,0x00,0x08,0x8D,0x0C,0x03,0x8E,0x0D,0x03,0x8C,0x0E,0x03,0x68,0x8D,
0x0F,0x03,0x60,0x20,0xD1,0xE1,0xA6,0x2D,0xA4,0x2E,0xA9,0x2B,0x20,0xD8,0xFF,0xB0,
0x95,0x60,0xA9,0x01,0x2C,0xA9,0x00,0x85,0x0A,0x20,0xD1,0xE1,0xA5,0x0A,0xA6,0x2B,
0xA4,0x2C,0x20,0xD5,0xFF,0xB0,0x57,0xA5,0x0A,0xF0,0x1A,0xA2,0x1C,0x20,0xB7,0xFF,
0x29,0x10,0xF0,0x03,0x4C,0x37,0xC4,0xA5,0x7A,0xC9,0x02,0xF0,0x07,0xA9,0x64,0xA0,
0xC3,0x4C,0x1E,0xCB,0x60,0x20,0xB7,0xFF,0x29,0xBF,0xF0,0x05,0xA2,0x1D,0x4C,0x37,
0xC4,0xA5,0x7B,0xC9,0x02,0xD0,0x0E,0x86,0x2D,0x84,0x2E,0xA9,0x76,0xA0,0xC3,0x20,
0x1E,0xCB,0x4C,0x2A,0xC5,0x20,0x8E,0xC6,0x4C,0x76,0xE4,0x20,0x16,0xE2,0x20,0xC0,
0xFF,0xB0,0x0B,0x60,0x20,0x16,0xE2,0xA5,0x49,0x20,0xC3,0xFF,0x90,0xC6,0x4C,0xF6,
0xE0,0xA9,0x00,0x20,0xBD,0xFF,0xA2,0x01,0xA0,0x00,0x20,0xBA,0xFF,0x20,0x03,0xE2,
0x20,0x54,0xE2,0x20,0x03,0xE2,0x20,0xFD,0xE1,0xA0,0x00,0x86,0x49,0x20,0xBA,0xFF,
0x20,0x03,0xE2,0x20,0xFD,0xE1,0x8A,0xA8,0xA6,0x49,0x4C,0xBA,0xFF,0x20,0x0B,0xE2,
0x4C,0x9E,0xD7,0x20,0x79,0x00,0xD0,0x02,0x68,0x68,0x60,0x20,0xFD,0xCE,0x20,0x79,
0x00,0xD0,0xF7,0x4C,0x08,0xCF,0xA9,0x00,0x20,0xBD,0xFF,0x20,0x0E,0xE2,0x20,0x9E,
0xD7,0x86,0x49,0x8A,0xA2,0x01,0xA0,0x00,0x20,0xBA,0xFF,0x20,0x03,0xE2,0x20,0xFD,
0xE1,0x86,0x4A,0xA0,0x00,0xA5,0x49,0xE0,0x03,0x90,0x01,0x88,0x20,0xBA,0xFF,0x20,
0x03,0xE2,0x20,0xFD,0xE1,0x8A,0xA8,0xA6,0x4A,0xA5,0x49,0x20,0xBA,0xFF,0x20,0x03,
0xE2,0x20,0x0B,0xE2,0x20,0x9E,0xCD,0x20,0xA3,0xD6,0xA6,0x22,0xA4,0x23,0x4C,0xBD,
0xFF,0xA9,0xDD,0xA0,0xE2,0x20,0x67,0xD8,0x20,0x0C,0xDC,0xA9,0xE2,0xA0,0xE2,0xA6,
0x6E,0x20,0x07,0xDB,0x20,0x0C,0xDC,0x20,0xCC,0xDC,0xA9,0x00,0x85,0x6F,0x20,0x53,
0xD8,0xA9,0xE7,0xA0,0xE2,0x20,0x50,0xD8,0xA5,0x66,0x48,0x10,0x0D,0x20,0x49,0xD8,
0xA5,0x66,0x30,0x09,0xA5,0x12,0x49,0xFF,0x85,0x12,0x20,0xB4,0xDF,0xA9,0xE7,0xA0,
0xE2,0x20,0x67,0xD8,0x68,0x10,0x03,0x20,0xB4,0xDF,0xA9,0xEC,0xA0,0xE2,0x4C,0x40,
0xE0,0x20,0xCA,0xDB,0xA9,0x00,0x85,0x12,0x20,0x68,0xE2,0xA2,0x4E,0xA0,0x00,0x20,
0xF3,0xE0,0xA9,0x57,0xA0,0x00,0x20,0xA2,0xDB,0xA9,0x00,0x85,0x66,0xA5,0x12,0x20,
0xD9,0xE2,0xA9,0x4E,0xA0,0x00,0x4C,0x0F,0xDB,0x48,0x4C,0x9A,0xE2,0x81,0x49,0x0F,
0xDA,0xA2,0x83,0x49,0x0F,0xDA,0xA2,0x7F,0x00,0x00,0x00,0x00,0x05,0x84,0xE6,0x1A,
0x2D,0x1B,0x86,0x28,0x07,0xFB,0xF8,0x87,0x99,0x68,0x89,0x01,0x87,0x23,0x35,0xDF,
0xE1,0x86,0xA5,0x5D,0xE7,0x28,0x83,0x49,0x0F,0xDA,0xA2,0xA5,0x66,0x48,0x10,0x03,
0x20,0xB4,0xDF,0xA5,0x61,0x48,0xC9,0x81,0x90,0x07,0xA9,0xBC,0xA0,0xD9,0x20,0x0F,
0xDB,0xA9,0x3B,0xA0,0xE3,0x20,0x40,0xE0,0x68,0xC9,0x81,0x90,0x07,0xA9,0xDD,0xA0,
0xE2,0x20,0x50,0xD8,0x68,0x10,0x03,0x4C,0xB4,0xDF,0x60,0x0B,0x76,0xB3,0x83,0xBD,
0xD3,0x79,0x1E,0xF4,0xA6,0xF5,0x7B,0x83,0xFC,0xB0,0x10,0x7C,0x0C,0x1F,0x67,0xCA,
0x7C,0xDE,0x53,0xCB,0xC1,0x7D,0x14,0x64,0x70,0x4C,0x7D,0xB7,0xEA,0x51,0x7A,0x7D,
0x63,0x30,0x88,0x7E,0x7E,0x92,0x44,0x99,0x3A,0x7E,0x4C,0xCC,0x91,0xC7,0x7F,0xAA,
0xAA,0xAA,0x13,0x81,0x00,0x00,0x00,0x00,0x20,0x5B,0xE4,0x20,0xA4,0xE3,0x20,0x04,
0xE4,0xA2,0xFB,0x9A,0x4C,0x74,0xC4,0xE6,0x7A,0xD0,0x02,0xE6,0x7B,0xAD,0x60,0xEA,
0xC9,0x3A,0xB0,0x0A,0xC9,0x20,0xF0,0xEF,0x38,0xE9,0x30,0x38,0xE9,0xD0,0x60,0x80,
0x4F,0xC7,0x52,0x58,0xA9,0x4C,0x85,0x54,0x85,0x00,0xA9,0x48,0xA0,0xD2,0x85,0x01,
0x84,0x02,0xA9,0x91,0xA0,0xD3,0x85,0x05,0x84,0x06,0xA9,0xAA,0xA0,0xD1,0x85,0x03,
0x84,0x04,0xA2,0x1C,0xBD,0x87,0xE3,0x95,0x73,0xCA,0x10,0xF8,0xA9,0x03,0x85,0x53,
0xA9,0x00,0x85,0x68,0x85,0x13,0x85,0x18,0xA2,0x01,0x8E,0xFD,0x01,0x8E,0xFC,0x01,
0xA2,0x19,0x86,0x16,0x38,0x20,0x9C,0xFF,0x86,0x2B,0x84,0x2C,0x38,0x20,0x99,0xFF,
0x86,0x37,0x84,0x38,0x86,0x33,0x84,0x34,0xA0,0x00,0x98,0x91,0x2B,0xE6,0x2B,0xD0,
0x02,0xE6,0x2C,0x60,0xA5,0x2B,0xA4,0x2C,0x20,0x08,0xC4,0xA9,0x36,0xA0,0xE4,0x20,
0x1E,0xCB,0xA5,0x37,0x38,0xE5,0x2B,0xAA,0xA5,0x38,0xE5,0x2C,0x20,0xCD,0xDD,0xA9,
0x29,0xA0,0xE4,0x20,0x1E,0xCB,0x4C,0x44,0xC6,0x20,0x42,0x59,0x54,0x45,0x53,0x20,
0x46,0x52,0x45,0x45,0x0D,0x00,0x93,0x2A,0x2A,0x2A,0x2A,0x20,0x43,0x42,0x4D,0x20,
0x42,0x41,0x53,0x49,0x43,0x20,0x56,0x32,0x20,0x2A,0x2A,0x2A,0x2A,0x0D,0x00,0x3A,
0xC4,0x83,0xC4,0x7C,0xC5,0x1A,0xC7,0xE4,0xC7,0x86,0xCE,0xA2,0x0B,0xBD,0x4F,0xE4,
0x9D,0x00,0x03,0xCA,0x10,0xF7,0x60,0x20,0xCC,0xFF,0xA9,0x00,0x85,0x13,0x20,0x7A,
0xC6,0x58,0x4C,0x74,0xC4,0x41,0x20,0x33,0xC5,0x4C,0x77,0xC6,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAD,0x2C,0x91,0x29,0xDF,0x8D,0x2C,0x91,0x60,0xAD,0x2C,0x91,0x09,0x20,0x8D,0x2C,
0x91,0x60,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0x60,0xA6,0xB9,0x4C,0x47,
0xF6,0x8A,0xD0,0x08,0xA5,0xC3,0x85,0xAE,0xA5,0xC4,0x85,0xAF,0x4C,0x6A,0xF6,0x20,
0xE3,0xF8,0x90,0x03,0x68,0xA9,0x00,0x4C,0x9E,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xA2,0x10,0xA0,0x91,0x60,0xA2,0x16,0xA0,0x17,0x60,0xB0,0x07,0x86,0xD6,0x84,0xD3,
0x20,0x87,0xE5,0xA6,0xD6,0xA4,0xD3,0x60,0x20,0xBB,0xE5,0xAD,0x88,0x02,0x29,0xFD,
0x0A,0x0A,0x09,0x80,0x8D,0x05,0x90,0xAD,0x88,0x02,0x29,0x02,0xF0,0x08,0xA9,0x80,
0x0D,0x02,0x90,0x8D,0x02,0x90,0xA9,0x00,0x8D,0x91,0x02,0x85,0xCF,0xA9,0xDC,0x8D,
0x8F,0x02,0xA9,0xEB,0x8D,0x90,0x02,0xA9,0x0A,0x8D,0x89,0x02,0x8D,0x8C,0x02,0xA9,
0x06,0x8D,0x86,0x02,0xA9,0x04,0x8D,0x8B,0x02,0xA9,0x0C,0x85,0xCD,0x85,0xCC,0xAD,
0x88,0x02,0x09,0x80,0xA8,0xA9,0x00,0xAA,0x94,0xD9,0x18,0x69,0x16,0x90,0x01,0xC8,
0xE8,0xE0,0x18,0xD0,0xF3,0xA9,0xFF,0x95,0xD9,0xA2,0x16,0x20,0x8D,0xEA,0xCA,0x10,
0xFA,0xA0,0x00,0x84,0xD3,0x84,0xD6,0xA6,0xD6,0xA5,0xD3,0xB4,0xD9,0x30,0x08,0x18,
0x69,0x16,0x85,0xD3,0xCA,0x10,0xF4,0xB5,0xD9,0x29,0x03,0x0D,0x88,0x02,0x85,0xD2,
0xBD,0xFD,0xED,0x85,0xD1,0xA9,0x15,0xE8,0xB4,0xD9,0x30,0x06,0x18,0x69,0x16,0xE8,
0x10,0xF6,0x85,0xD5,0x60,0x20,0xBB,0xE5,0x4C,0x81,0xE5,0xA9,0x03,0x85,0x9A,0xA9,
0x00,0x85,0x99,0xA2,0x10,0xBD,0xE3,0xED,0x9D,0xFF,0x8F,0xCA,0xD0,0xF7,0x60,0xAC,
0x77,0x02,0xA2,0x00,0xBD,0x78,0x02,0x9D,0x77,0x02,0xE8,0xE4,0xC6,0xD0,0xF5,0xC6,
0xC6,0x98,0x58,0x18,0x60,0x20,0x42,0xE7,0xA5,0xC6,0x85,0xCC,0x8D,0x92,0x02,0xF0,
0xF7,0x78,0xA5,0xCF,0xF0,0x0C,0xA5,0xCE,0xAE,0x87,0x02,0xA0,0x00,0x84,0xCF,0x20,
0xA1,0xEA,0x20,0xCF,0xE5,0xC9,0x83,0xD0,0x10,0xA2,0x09,0x78,0x86,0xC6,0xBD,0xF3,
0xED,0x9D,0x76,0x02,0xCA,0xD0,0xF7,0xF0,0xCF,0xC9,0x0D,0xD0,0xC8,0xA4,0xD5,0x84,
0xD0,0xB1,0xD1,0xC9,0x20,0xD0,0x03,0x88,0xD0,0xF7,0xC8,0x84,0xC8,0xA0,0x00,0x8C,
0x92,0x02,0x84,0xD3,0x84,0xD4,0xA5,0xC9,0x30,0x1D,0xA6,0xD6,0x20,0x19,0xE7,0xE4,
0xC9,0xD0,0x14,0xD0,0x12,0xA5,0xCA,0x85,0xD3,0xC5,0xC8,0x90,0x0A,0xB0,0x42,0x98,
0x48,0x8A,0x48,0xA5,0xD0,0xF0,0x91,0xA4,0xD3,0xB1,0xD1,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0x85,0xD7,0x29,0x3F,0x06,0xD7,0x24,0xD7,0x10,0x02,0x09,0x80,0x90,0x04,
0xA6,0xD4,0xD0,0x04,0x70,0x02,0x09,0x40,0xE6,0xD3,0x20,0xB8,0xE6,0xC4,0xC8,0xD0,
0x17,0xA9,0x00,0x85,0xD0,0xA9,0x0D,0xA6,0x99,0xE0,0x03,0xF0,0x06,0xA6,0x9A,0xE0,
0x03,0xF0,0x03,0x20,0x42,0xE7,0xA9,0x0D,0x85,0xD7,0x68,0xAA,0x68,0xA8,0xA5,0xD7,
0xC9,0xDE,0xD0,0x02,0xA9,0xFF,0x18,0x60,0xC9,0x22,0xD0,0x08,0xA5,0xD4,0x49,0x01,
0x85,0xD4,0xA9,0x22,0x60,0x09,0x40,0xA6,0xC7,0xF0,0x02,0x09,0x80,0xA6,0xD8,0xF0,
0x02,0xC6,0xD8,0xAE,0x86,0x02,0x20,0xA1,0xEA,0x20,0xEA,0xE6,0x68,0xA8,0xA5,0xD8,
0xF0,0x02,0x46,0xD4,0x68,0xAA,0x68,0x18,0x58,0x60,0x20,0xFA,0xE8,0xE6,0xD3,0xA5,
0xD5,0xC5,0xD3,0xB0,0x37,0xC9,0x57,0xF0,0x2A,0xAD,0x92,0x02,0xF0,0x03,0x4C,0xF0,
0xE9,0xA6,0xD6,0xE0,0x17,0x90,0x07,0x20,0x75,0xE9,0xC6,0xD6,0xA6,0xD6,0x16,0xD9,
0x56,0xD9,0x4C,0x5B,0xED,0x69,0x16,0x85,0xD5,0xB5,0xD9,0x30,0x03,0xCA,0xD0,0xF9,
0x4C,0x7E,0xEA,0xC6,0xD6,0x20,0xC3,0xE8,0xA9,0x00,0x85,0xD3,0x60,0xA6,0xD6,0xD0,
0x06,0x86,0xD3,0x68,0x68,0xD0,0xA5,0xCA,0x86,0xD6,0x20,0x87,0xE5,0xA4,0xD5,0x84,
0xD3,0x60,0x48,0x85,0xD7,0x8A,0x48,0x98,0x48,0xA9,0x00,0x85,0xD0,0xA4,0xD3,0xA5,
0xD7,0x10,0x03,0x4C,0x00,0xE8,0xC9,0x0D,0xD0,0x03,0x4C,0xD8,0xE8,0xC9,0x20,0x90,
0x10,0xC9,0x60,0x90,0x04,0x29,0xDF,0xD0,0x02,0x29,0x3F,0x20,0xB8,0xE6,0x4C,0xC7,
0xE6,0xA6,0xD8,0xF0,0x03,0x4C,0xCB,0xE6,0xC9,0x14,0xD0,0x2E,0x98,0xD0,0x06,0x20,
0x2D,0xE7,0x4C,0x9F,0xE7,0x20,0xE8,0xE8,0x88,0x84,0xD3,0x20,0xB2,0xEA,0xC8,0xB1,
0xD1,0x88,0x91,0xD1,0xC8,0xB1,0xF3,0x88,0x91,0xF3,0xC8,0xC4,0xD5,0xD0,0xEF,0xA9,
0x20,0x91,0xD1,0xAD,0x86,0x02,0x91,0xF3,0x10,0x4D,0xA6,0xD4,0xF0,0x03,0x4C,0xCB,
0xE6,0xC9,0x12,0xD0,0x02,0x85,0xC7,0xC9,0x13,0xD0,0x03,0x20,0x81,0xE5,0xC9,0x1D,
0xD0,0x17,0xC8,0x20,0xFA,0xE8,0x84,0xD3,0x88,0xC4,0xD5,0x90,0x09,0xC6,0xD6,0x20,
0xC3,0xE8,0xA0,0x00,0x84,0xD3,0x4C,0xDC,0xE6,0xC9,0x11,0xD0,0x1D,0x18,0x98,0x69,
0x16,0xA8,0xE6,0xD6,0xC5,0xD5,0x90,0xEC,0xF0,0xEA,0xC6,0xD6,0xE9,0x16,0x90,0x04,
0x85,0xD3,0xD0,0xF8,0x20,0xC3,0xE8,0x4C,0xDC,0xE6,0x20,0x12,0xE9,0x4C,0x21,0xED,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0x29,0x7F,0xC9,0x7F,0xD0,0x02,0xA9,0x5E,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xC9,0x20,0x90,0x03,0x4C,0xC5,0xE6,0xC9,0x0D,0xD0,0x03,0x4C,0xD8,
0xE8,0xA6,0xD4,0xD0,0x3F,0xC9,0x14,0xD0,0x37,0xA4,0xD5,0xB1,0xD1,0xC9,0x20,0xD0,
0x04,0xC4,0xD3,0xD0,0x07,0xC0,0x57,0xF0,0x24,0x20,0xEE,0xE9,0xA4,0xD5,0x20,0xB2,
0xEA,0x88,0xB1,0xD1,0xC8,0x91,0xD1,0x88,0xB1,0xF3,0xC8,0x91,0xF3,0x88,0xC4,0xD3,
0xD0,0xEF,0xA9,0x20,0x91,0xD1,0xAD,0x86,0x02,0x91,0xF3,0xE6,0xD8,0x4C,0xDC,0xE6,
0xA6,0xD8,0xF0,0x05,0x09,0x40,0x4C,0xCB,0xE6,0xC9,0x11,0xD0,0x16,0xA6,0xD6,0xF0,
0x37,0xC6,0xD6,0xA5,0xD3,0x38,0xE9,0x16,0x90,0x04,0x85,0xD3,0x10,0x2A,0x20,0x87,
0xE5,0xD0,0x25,0xC9,0x12,0xD0,0x04,0xA9,0x00,0x85,0xC7,0xC9,0x1D,0xD0,0x12,0x98,
0xF0,0x09,0x20,0xE8,0xE8,0x88,0x84,0xD3,0x4C,0xDC,0xE6,0x20,0x2D,0xE7,0x4C,0xDC,
0xE6,0xC9,0x13,0xD0,0x06,0x20,0x5F,0xE5,0x4C,0xDC,0xE6,0x09,0x80,0x20,0x12,0xE9,
0x4C,0x30,0xED,0x46,0xC9,0xA6,0xD6,0xE8,0xE0,0x17,0xD0,0x03,0x20,0x75,0xE9,0xB5,
0xD9,0x10,0xF4,0x86,0xD6,0x4C,0x87,0xE5,0xA2,0x00,0x86,0xD8,0x86,0xC7,0x86,0xD4,
0x86,0xD3,0x20,0xC3,0xE8,0x4C,0xDC,0xE6,0xA2,0x04,0xA9,0x00,0xC5,0xD3,0xF0,0x07,
0x18,0x69,0x16,0xCA,0xD0,0xF6,0x60,0xC6,0xD6,0x60,0xA2,0x04,0xA9,0x15,0xC5,0xD3,
0xF0,0x07,0x18,0x69,0x16,0xCA,0xD0,0xF6,0x60,0xA6,0xD6,0xE0,0x17,0xF0,0x02,0xE6,
0xD6,0x60,0xA2,0x07,0xDD,0x21,0xE9,0xF0,0x04,0xCA,0x10,0xF8,0x60,0x8E,0x86,0x02,
0x60,0x90,0x05,0x1C,0x9F,0x9C,0x1E,0x1F,0x9E,0xEF,0xA1,0xDF,0xA6,0xE1,0xB1,0xE2,
0xB2,0xE3,0xB3,0xE4,0xB4,0xE5,0xB5,0xE6,0xB6,0xE7,0xB7,0xE8,0xB8,0xE9,0xB9,0xFA,
0xBA,0xFB,0xBB,0xFC,0xBC,0xEC,0xBD,0xFE,0xBE,0x84,0xBF,0xF7,0xC0,0xF8,0xDB,0xF9,
0xDD,0xEA,0xDE,0x5E,0xE0,0x5B,0xE1,0x5D,0xE2,0x40,0xB0,0x61,0xB1,0x78,0xDB,0x79,
0xDD,0x66,0xB6,0x77,0xC0,0x70,0xF0,0x71,0xF1,0x72,0xF2,0x73,0xF3,0x74,0xF4,0x75,
0xF5,0x76,0xF6,0x7D,0xFD,0xA5,0xAC,0x48,0xA5,0xAD,0x48,0xA5,0xAE,0x48,0xA5,0xAF,
0x48,0xA2,0xFF,0xC6,0xD6,0xC6,0xC9,0xC6,0xF2,0xE8,0x20,0x7E,0xEA,0xE0,0x16,0xB0,
0x0C,0xBD,0xFE,0xED,0x85,0xAC,0xB5,0xDA,0x20,0x56,0xEA,0x30,0xEC,0x20,0x8D,0xEA,
0xA2,0x00,0xB5,0xD9,0x29,0x7F,0xB4,0xDA,0x10,0x02,0x09,0x80,0x95,0xD9,0xE8,0xE0,
0x16,0xD0,0xEF,0xA5,0xEF,0x09,0x80,0x85,0xEF,0xA5,0xD9,0x10,0xC4,0xE6,0xD6,0xE6,
0xF2,0xA9,0xFB,0x8D,0x20,0x91,0xAD,0x21,0x91,0xC9,0xFE,0x08,0xA9,0xF7,0x8D,0x20,
0x91,0x28,0xD0,0x0B,0xA0,0x00,0xEA,0xCA,0xD0,0xFC,0x88,0xD0,0xF9,0x84,0xC6,0xA6,
0xD6,0x68,0x85,0xAF,0x68,0x85,0xAE,0x68,0x85,0xAD,0x68,0x85,0xAC,0x60,0xA6,0xD6,
0xE8,0xB5,0xD9,0x10,0xFB,0x86,0xF2,0xE0,0x16,0xF0,0x0D,0x90,0x0B,0x20,0x75,0xE9,
0xA6,0xF2,0xCA,0xC6,0xD6,0x4C,0x0E,0xE7,0xA5,0xAC,0x48,0xA5,0xAD,0x48,0xA5,0xAE,
0x48,0xA5,0xAF,0x48,0xA2,0x17,0xCA,0x20,0x7E,0xEA,0xE4,0xF2,0x90,0x0E,0xF0,0x0C,
0xBD,0xFC,0xED,0x85,0xAC,0xB5,0xD8,0x20,0x56,0xEA,0x30,0xEA,0x20,0x8D,0xEA,0xA2,
0x15,0xE4,0xF2,0x90,0x0F,0xB5,0xDA,0x29,0x7F,0xB4,0xD9,0x10,0x02,0x09,0x80,0x95,
0xDA,0xCA,0xD0,0xED,0xA6,0xF2,0x20,0x0E,0xE7,0x68,0x85,0xAF,0x68,0x85,0xAE,0x68,
0x85,0xAD,0x68,0x85,0xAC,0x60,0x29,0x03,0x0D,0x88,0x02,0x85,0xAD,0x20,0x6E,0xEA,
0xA0,0x15,0xB1,0xAC,0x91,0xD1,0xB1,0xAE,0x91,0xF3,0x88,0x10,0xF5,0x60,0x20,0xB2,
0xEA,0xA5,0xAC,0x85,0xAE,0xA5,0xAD,0x29,0x03,0x09,0x94,0x85,0xAF,0x60,0xBD,0xFD,
0xED,0x85,0xD1,0xB5,0xD9,0x29,0x03,0x0D,0x88,0x02,0x85,0xD2,0x60,0xA0,0x15,0x20,
0x7E,0xEA,0x20,0xB2,0xEA,0xA9,0x20,0x91,0xD1,0xA9,0x01,0x91,0xF3,0x88,0x10,0xF5,
0x60,0xA8,0xA9,0x02,0x85,0xCD,0x20,0xB2,0xEA,0x98,0xA4,0xD3,0x91,0xD1,0x8A,0x91,
0xF3,0x60,0xA5,0xD1,0x85,0xF3,0xA5,0xD2,0x29,0x03,0x09,0x94,0x85,0xF4,0x60,0x20,
0xEA,0xFF,0xA5,0xCC,0xD0,0x29,0xC6,0xCD,0xD0,0x25,0xA9,0x14,0x85,0xCD,0xA4,0xD3,
0x46,0xCF,0xAE,0x87,0x02,0xB1,0xD1,0xB0,0x11,0xE6,0xCF,0x85,0xCE,0x20,0xB2,0xEA,
0xB1,0xF3,0x8D,0x87,0x02,0xAE,0x86,0x02,0xA5,0xCE,0x49,0x80,0x20,0xAA,0xEA,0xAD,
0x1F,0x91,0x29,0x40,0xF0,0x0B,0xA0,0x00,0x84,0xC0,0xAD,0x1C,0x91,0x09,0x02,0xD0,
0x09,0xA5,0xC0,0xD0,0x0D,0xAD,0x1C,0x91,0x29,0xFD,0x2C,0x1E,0x91,0x70,0x03,0x8D,
0x1C,0x91,0x20,0x1E,0xEB,0x2C,0x24,0x91,0x68,0xA8,0x68,0xAA,0x68,0x40,0xA9,0x00,
0x8D,0x8D,0x02,0xA0,0x40,0x84,0xCB,0x8D,0x20,0x91,0xAE,0x21,0x91,0xE0,0xFF,0xF0,
0x5E,0xA9,0xFE,0x8D,0x20,0x91,0xA0,0x00,0xA9,0x5E,0x85,0xF5,0xA9,0xEC,0x85,0xF6,
0xA2,0x08,0xAD,0x21,0x91,0xCD,0x21,0x91,0xD0,0xF6,0x4A,0xB0,0x16,0x48,0xB1,0xF5,
0xC9,0x05,0xB0,0x0C,0xC9,0x03,0xF0,0x08,0x0D,0x8D,0x02,0x8D,0x8D,0x02,0x10,0x02,
0x84,0xCB,0x68,0xC8,0xC0,0x41,0xB0,0x09,0xCA,0xD0,0xDF,0x38,0x2E,0x20,0x91,0xD0,
0xCF,0x6C,0x8F,0x02,0xA4,0xCB,0xB1,0xF5,0xAA,0xC4,0xC5,0xF0,0x07,0xA0,0x10,0x8C,
0x8C,0x02,0xD0,0x36,0x29,0x7F,0x2C,0x8A,0x02,0x30,0x16,0x70,0x49,0xC9,0x7F,0xF0,
0x29,0xC9,0x14,0xF0,0x0C,0xC9,0x20,0xF0,0x08,0xC9,0x1D,0xF0,0x04,0xC9,0x11,0xD0,
0x35,0xAC,0x8C,0x02,0xF0,0x05,0xCE,0x8C,0x02,0xD0,0x2B,0xCE,0x8B,0x02,0xD0,0x26,
0xA0,0x04,0x8C,0x8B,0x02,0xA4,0xC6,0x88,0x10,0x1C,0xA4,0xCB,0x84,0xC5,0xAC,0x8D,
0x02,0x8C,0x8E,0x02,0xE0,0xFF,0xF0,0x0E,0x8A,0xA6,0xC6,0xEC,0x89,0x02,0xB0,0x06,
0x9D,0x77,0x02,0xE8,0x86,0xC6,0xA9,0xF7,0x8D,0x20,0x91,0x60,0xAD,0x8D,0x02,0xC9,
0x03,0xD0,0x2C,0xCD,0x8E,0x02,0xF0,0xEE,0xAD,0x91,0x02,0x30,0x56,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xAD,0x05,0x90,0x49,0x02,0x8D,0x05,0x90,0xEA,0xEA,0xEA,0xEA,0x4C,0x43,0xEC,0x0A,
0xC9,0x08,0x90,0x04,0xA9,0x06,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xAA,0xBD,0x46,0xEC,0x85,0xF5,0xBD,0x47,
0xEC,0x85,0xF6,0x4C,0x74,0xEB,0x5E,0xEC,0x9F,0xEC,0xE0,0xEC,0xA3,0xED,0x5E,0xEC,
0x9F,0xEC,0x69,0xED,0xA3,0xED,0x21,0xED,0x69,0xED,0x69,0xED,0xA3,0xED,0x31,0x33,
0x35,0x37,0x39,0x2B,0x5C,0x14,0x5F,0x57,0x52,0x59,0x49,0x50,0x2A,0x0D,0x04,0x41,
0x44,0x47,0x4A,0x4C,0x3B,0x1D,0x03,0x01,0x58,0x56,0x4E,0x2C,0x2F,0x11,0x20,0x5A,
0x43,0x42,0x4D,0x2E,0x01,0x85,0x02,0x53,0x46,0x48,0x4B,0x3A,0x3D,0x86,0x51,0x45,
0x54,0x55,0x4F,0x40,0x5E,0x87,0x32,0x34,0x36,0x38,0x30,0x2D,0x13,0x88,0xFF,0x21,
0x23,0x25,0x27,0x29,0xDB,0xA9,0x94,0x5F,0xD7,0xD2,0xD9,0xC9,0xD0,0xC0,0x8D,0x04,
0xC1,0xC4,0xC7,0xCA,0xCC,0x5D,0x9D,0x83,0x01,0xD8,0xD6,0xCE,0x3C,0x3F,0x91,0xA0,
0xDA,0xC3,0xC2,0xCD,0x3E,0x01,0x89,0x02,0xD3,0xC6,0xC8,0xCB,0x5B,0x3D,0x8A,0xD1,
0xC5,0xD4,0xD5,0xCF,0xBA,0xDE,0x8B,0x22,0x24,0x26,0x28,0x30,0xDD,0x93,0x8C,0xFF,
0x21,0x23,0x25,0x27,0x29,0xA6,0xA8,0x94,0x5F,0xB3,0xB2,0xB7,0xA2,0xAF,0xDF,0x8D,
0x04,0xB0,0xAC,0xA5,0xB5,0xB6,0x5D,0x9D,0x83,0x01,0xBD,0xBE,0xAA,0x3C,0x3F,0x91,
0xA0,0xAD,0xBC,0xBF,0xA7,0x3E,0x01,0x89,0x02,0xAE,0xBB,0xB4,0xA1,0x5B,0x3D,0x8A,
0xAB,0xB1,0xA3,0xB8,0xB9,0xA4,0xDE,0x8B,0x22,0x24,0x26,0x28,0x30,0xDC,0x93,0x8C,
0xFF,0xC9,0x0E,0xD0,0x0B,0xA9,0x02,0x0D,0x05,0x90,0x8D,0x05,0x90,0x4C,0xDC,0xE6,
0xC9,0x8E,0xD0,0x0B,0xA9,0xFD,0x2D,0x05,0x90,0x8D,0x05,0x90,0x4C,0xDC,0xE6,0xC9,
0x08,0xD0,0x0A,0xA9,0x80,0x0D,0x91,0x02,0x8D,0x91,0x02,0x30,0xEF,0xC9,0x09,0xD0,
0xEB,0xA9,0x7F,0x2D,0x91,0x02,0x8D,0x91,0x02,0x10,0xE1,0xE8,0xB5,0xD9,0x09,0x80,
0x95,0xD9,0xCA,0xA5,0xD5,0x18,0x4C,0x15,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x04,0xFF,0xFF,0xFF,0xFF,0xFF,0xE2,0x9D,0x83,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0x91,0xA0,0xFF,0xFF,0xFF,0xFF,0xEE,0x01,0x89,0x02,0xFF,0xFF,0xFF,0xFF,0xE1,
0xFD,0x8A,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xE0,0x8B,0xF2,0xF4,0xF6,0xFF,0xF0,0xED,
0x93,0x8C,0xFF,0x90,0x1C,0x9C,0x1F,0x12,0xFF,0xFF,0xFF,0x06,0xFF,0x12,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x05,0x9F,0x1E,0x9E,0x92,
0xFF,0xFF,0xFF,0xFF,0x05,0x19,0x16,0x2E,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1B,0x4C,0x4F,0x41,0x44,0x0D,0x52,0x55,0x4E,0x0D,0x00,0x16,0x2C,
0x42,0x58,0x6E,0x84,0x9A,0xB0,0xC6,0xDC,0xF2,0x08,0x1E,0x34,0x4A,0x60,0x76,0x8C,
0xA2,0xB8,0xCE,0xE4,0x09,0x40,0x2C,0x09,0x20,0x20,0x60,0xF1,0x48,0x24,0x94,0x10,
0x0A,0x38,0x66,0xA3,0x20,0x49,0xEE,0x46,0x94,0x46,0xA3,0x68,0x85,0x95,0x20,0xA0,
0xE4,0xC9,0x3F,0xD0,0x03,0x20,0x84,0xEF,0xAD,0x1F,0x91,0x09,0x80,0x8D,0x1F,0x91,
0x20,0x8D,0xEF,0x20,0xA0,0xE4,0x20,0x96,0xEF,0x78,0x20,0xA0,0xE4,0x20,0xB2,0xE4,
0x4A,0xB0,0x61,0x20,0x84,0xEF,0x24,0xA3,0x10,0x0C,0x20,0xB2,0xE4,0x4A,0x90,0xFA,
0x20,0xB2,0xE4,0x4A,0xB0,0xFA,0x20,0xB2,0xE4,0x4A,0x90,0xFA,0x20,0x8D,0xEF,0xA9,
0x08,0x85,0xA5,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0x4A,0x90,0x38,0x66,
0x95,0xB0,0x05,0x20,0xA9,0xE4,0xD0,0x03,0x20,0xA0,0xE4,0x20,0x84,0xEF,0xEA,0xEA,
0xEA,0xEA,0xAD,0x2C,0x91,0x29,0xDF,0x09,0x02,0x8D,0x2C,0x91,0xC6,0xA5,0xD0,0xD3,
0xA9,0x04,0x8D,0x29,0x91,0xAD,0x2D,0x91,0x29,0x20,0xD0,0x0B,0x20,0xB2,0xE4,0x4A,
0xB0,0xF3,0x58,0x60,0xA9,0x80,0x2C,0xA9,0x03,0x20,0x6A,0xFE,0x58,0x18,0x90,0x49,
0x85,0x95,0x20,0x40,0xEE,0xAD,0x1F,0x91,0x29,0x7F,0x8D,0x1F,0x91,0x60,0x85,0x95,
0x20,0x40,0xEE,0x78,0x20,0xA9,0xE4,0x20,0xC5,0xEE,0x20,0x84,0xEF,0x20,0xB2,0xE4,
0xB0,0xFB,0x58,0x60,0x24,0x94,0x30,0x05,0x38,0x66,0x94,0xD0,0x05,0x48,0x20,0x49,
0xEE,0x68,0x85,0x95,0x18,0x60,0x20,0x8D,0xEF,0xAD,0x1F,0x91,0x09,0x80,0x8D,0x1F,
0x91,0xA9,0x5F,0x2C,0xA9,0x3F,0x20,0x1C,0xEE,0x20,0xC5,0xEE,0x8A,0xA2,0x0B,0xCA,
0xD0,0xFD,0xAA,0x20,0x84,0xEF,0x4C,0xA0,0xE4,0x78,0xA9,0x00,0x85,0xA5,0x20,0x84,
0xEF,0x20,0xB2,0xE4,0x90,0xFB,0x20,0xA0,0xE4,0xA9,0x01,0x8D,0x29,0x91,0xAD,0x2D,
0x91,0x29,0x20,0xD0,0x07,0x20,0xB2,0xE4,0xB0,0xF4,0x90,0x18,0xA5,0xA5,0xF0,0x05,
0xA9,0x02,0x4C,0xB9,0xEE,0x20,0xA9,0xE4,0x20,0x0C,0xEF,0xA9,0x40,0x20,0x6A,0xFE,
0xE6,0xA5,0xD0,0xD5,0xA9,0x08,0x85,0xA5,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,
0x4A,0x90,0xF5,0x4A,0x66,0xA4,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0xB0,
0xF5,0xC6,0xA5,0xD0,0xE3,0x20,0xA9,0xE4,0xA5,0x90,0xF0,0x03,0x20,0x0C,0xEF,0xA5,
0xA4,0x58,0x18,0x60,0xAD,0x2C,0x91,0x29,0xFD,0x8D,0x2C,0x91,0x60,0xAD,0x2C,0x91,
0x09,0x02,0x8D,0x2C,0x91,0x60,0xA9,0x04,0x8D,0x29,0x91,0xAD,0x2D,0x91,0x29,0x20,
0xF0,0xF9,0x60,0xA5,0xB4,0xF0,0x47,0x30,0x3F,0x46,0xB6,0xA2,0x00,0x90,0x01,0xCA,
0x8A,0x45,0xBD,0x85,0xBD,0xC6,0xB4,0xF0,0x06,0x8A,0x29,0x20,0x85,0xB5,0x60,0xA9,
0x20,0x2C,0x94,0x02,0xF0,0x14,0x30,0x1C,0x70,0x14,0xA5,0xBD,0xD0,0x01,0xCA,0xC6,
0xB4,0xAD,0x93,0x02,0x10,0xE3,0xC6,0xB4,0xD0,0xDF,0xE6,0xB4,0xD0,0xF0,0xA5,0xBD,
0xF0,0xED,0xD0,0xEA,0x70,0xE9,0x50,0xE6,0xE6,0xB4,0xA2,0xFF,0xD0,0xCB,0xAD,0x94,
0x02,0x4A,0x90,0x07,0x2C,0x20,0x91,0x10,0x1D,0x50,0x1E,0xA9,0x00,0x85,0xBD,0x85,
0xB5,0xAE,0x98,0x02,0x86,0xB4,0xAC,0x9D,0x02,0xCC,0x9E,0x02,0xF0,0x13,0xB1,0xF9,
0x85,0xB6,0xEE,0x9D,0x02,0x60,0xA9,0x40,0x2C,0xA9,0x10,0x0D,0x97,0x02,0x8D,0x97,
0x02,0xA9,0x40,0x8D,0x1E,0x91,0x60,0xA2,0x09,0xA9,0x20,0x2C,0x93,0x02,0xF0,0x01,
0xCA,0x50,0x02,0xCA,0xCA,0x60,0xA6,0xA9,0xD0,0x2E,0xC6,0xA8,0xF0,0x31,0x30,0x0D,
0xA5,0xA7,0x45,0xAB,0x85,0xAB,0x46,0xA7,0x66,0xAA,0x60,0xC6,0xA8,0xA5,0xA7,0xF0,
0x62,0xAD,0x93,0x02,0x0A,0xA9,0x01,0x65,0xA8,0xD0,0xEF,0xA9,0x90,0x8D,0x1E,0x91,
0x85,0xA9,0xA9,0x20,0x8D,0x1E,0x91,0x60,0xA5,0xA7,0xD0,0xEF,0x85,0xA9,0x60,0xAC,
0x9B,0x02,0xC8,0xCC,0x9C,0x02,0xF0,0x2A,0x8C,0x9B,0x02,0x88,0xA5,0xAA,0xAE,0x98,
0x02,0xE0,0x09,0xF0,0x04,0x4A,0xE8,0xD0,0xF8,0x91,0xF7,0xA9,0x20,0x2C,0x94,0x02,
0xF0,0xB9,0x30,0xB6,0xA5,0xA7,0x45,0xAB,0xF0,0x03,0x70,0xAE,0x2C,0x50,0xAB,0xA9,
0x01,0x2C,0xA9,0x04,0x2C,0xA9,0x80,0x2C,0xA9,0x02,0x0D,0x97,0x02,0x8D,0x97,0x02,
0x4C,0x5B,0xF0,0xA5,0xAA,0xD0,0xF1,0xF0,0xEC,0x4C,0x96,0xF7,0x85,0x9A,0xAD,0x94,
0x02,0x4A,0x90,0x27,0xA9,0x02,0x2C,0x10,0x91,0x10,0x1D,0xD0,0x1E,0xAD,0x1E,0x91,
0x29,0x30,0xD0,0xF9,0x2C,0x10,0x91,0x70,0xFB,0xAD,0x10,0x91,0x09,0x02,0x8D,0x10,
0x91,0x2C,0x10,0x91,0x70,0x05,0x30,0xF9,0x20,0x16,0xF0,0x18,0x60,0xAC,0x9E,0x02,
0xC8,0xCC,0x9D,0x02,0xF0,0xF7,0x8C,0x9E,0x02,0x88,0x91,0xF9,0x2C,0x1E,0x91,0x50,
0x01,0x60,0xAD,0x99,0x02,0x8D,0x14,0x91,0xAD,0x9A,0x02,0x8D,0x15,0x91,0xA9,0xC0,
0x8D,0x1E,0x91,0x4C,0xEE,0xEF,0x85,0x99,0xAD,0x94,0x02,0x4A,0x90,0x28,0x29,0x08,
0xF0,0x24,0xA9,0x02,0x2C,0x10,0x91,0x10,0xBF,0xF0,0x19,0x2C,0x1E,0x91,0x70,0xFB,
0xAD,0x10,0x91,0x29,0xFD,0x8D,0x10,0x91,0xAD,0x10,0x91,0x29,0x04,0xF0,0xF9,0xA9,
0x90,0x8D,0x1E,0x91,0x18,0x60,0xAD,0x1E,0x91,0x29,0x30,0xF0,0xF2,0x18,0x60,0xAC,
0x9C,0x02,0xCC,0x9B,0x02,0xF0,0x06,0xB1,0xF7,0xEE,0x9C,0x02,0x60,0xA9,0x00,0x60,
0x48,0xAD,0x1E,0x91,0xF0,0x0C,0xAD,0x1E,0x91,0x29,0x60,0xD0,0xF9,0xA9,0x10,0x8D,
0x1E,0x91,0x68,0x60,0x0D,0x49,0x2F,0x4F,0x20,0x45,0x52,0x52,0x4F,0x52,0x20,0xA3,
0x0D,0x53,0x45,0x41,0x52,0x43,0x48,0x49,0x4E,0x47,0xA0,0x46,0x4F,0x52,0xA0,0x0D,
0x50,0x52,0x45,0x53,0x53,0x20,0x50,0x4C,0x41,0x59,0x20,0x4F,0x4E,0x20,0x54,0x41,
0x50,0xC5,0x50,0x52,0x45,0x53,0x53,0x20,0x52,0x45,0x43,0x4F,0x52,0x44,0x20,0x26,
0x20,0x50,0x4C,0x41,0x59,0x20,0x4F,0x4E,0x20,0x54,0x41,0x50,0xC5,0x0D,0x4C,0x4F,
0x41,0x44,0x49,0x4E,0xC7,0x0D,0x53,0x41,0x56,0x49,0x4E,0x47,0xA0,0x0D,0x56,0x45,
0x52,0x49,0x46,0x59,0x49,0x4E,0xC7,0x0D,0x46,0x4F,0x55,0x4E,0x44,0xA0,0x0D,0x4F,
0x4B,0x8D,0x24,0x9D,0x10,0x0D,0xB9,0x74,0xF1,0x08,0x29,0x7F,0x20,0xD2,0xFF,0xC8,
0x28,0x10,0xF3,0x18,0x60,0xA5,0x99,0xD0,0x08,0xA5,0xC6,0xF0,0x6D,0x78,0x4C,0xCF,
0xE5,0xC9,0x02,0xD0,0x18,0x84,0x97,0x20,0x4F,0xF1,0xA4,0x97,0x18,0x60,0xA5,0x99,
0xD0,0x0B,0xA5,0xD3,0x85,0xCA,0xA5,0xD6,0x85,0xC9,0x4C,0x4F,0xE6,0xC9,0x03,0xD0,
0x09,0x85,0xD0,0xA5,0xD5,0x85,0xC8,0x4C,0x4F,0xE6,0xB0,0x38,0xC9,0x02,0xF0,0x3F,
0x86,0x97,0x20,0x50,0xF2,0xB0,0x16,0x48,0x20,0x50,0xF2,0xB0,0x0D,0xD0,0x05,0xA9,
0x40,0x20,0x6A,0xFE,0xC6,0xA6,0xA6,0x97,0x68,0x60,0xAA,0x68,0x8A,0xA6,0x97,0x60,
0x20,0x8A,0xF8,0xD0,0x0B,0x20,0xC0,0xF8,0xB0,0x11,0xA9,0x00,0x85,0xA6,0xF0,0xF0,
0xB1,0xB2,0x18,0x60,0xA5,0x90,0xF0,0x04,0xA9,0x0D,0x18,0x60,0x4C,0x19,0xEF,0x20,
0x05,0xF2,0xB0,0x05,0xC9,0x00,0xF0,0xF7,0x18,0x60,0x48,0xA5,0x9A,0xC9,0x03,0xD0,
0x04,0x68,0x4C,0x42,0xE7,0x90,0x04,0x68,0x4C,0xE4,0xEE,0xC9,0x02,0xF0,0x2A,0x68,
0x85,0x9E,0x48,0x8A,0x48,0x98,0x48,0x20,0x8A,0xF8,0xD0,0x0E,0x20,0xE3,0xF8,0xB0,
0x0E,0xA9,0x02,0xA0,0x00,0x91,0xB2,0xC8,0x84,0xA6,0xA5,0x9E,0x91,0xB2,0x18,0x68,
0xA8,0x68,0xAA,0x68,0x90,0x02,0xA9,0x00,0x60,0x68,0x86,0x97,0x84,0x9E,0x20,0xED,
0xF0,0xA6,0x97,0xA4,0x9E,0x18,0x60,0x20,0xCF,0xF3,0xF0,0x03,0x4C,0x84,0xF7,0x20,
0xDF,0xF3,0xA5,0xBA,0xF0,0x16,0xC9,0x03,0xF0,0x12,0xB0,0x14,0xC9,0x02,0xD0,0x03,
0x4C,0x16,0xF1,0xA6,0xB9,0xE0,0x60,0xF0,0x03,0x4C,0x8D,0xF7,0x85,0x99,0x18,0x60,
0xAA,0x20,0x14,0xEE,0xA5,0xB9,0x10,0x06,0x20,0xD3,0xEE,0x4C,0x01,0xF3,0x20,0xCE,
0xEE,0x8A,0x24,0x90,0x10,0xE6,0x4C,0x8A,0xF7,0x20,0xCF,0xF3,0xF0,0x03,0x4C,0x84,
0xF7,0x20,0xDF,0xF3,0xA5,0xBA,0xD0,0x03,0x4C,0x90,0xF7,0xC9,0x03,0xF0,0x0F,0xB0,
0x11,0xC9,0x02,0xD0,0x03,0x4C,0xBC,0xF0,0xA6,0xB9,0xE0,0x60,0xF0,0xEA,0x85,0x9A,
0x18,0x60,0xAA,0x20,0x17,0xEE,0xA5,0xB9,0x10,0x05,0x20,0xC5,0xEE,0xD0,0x03,0x20,
0xC0,0xEE,0x8A,0x24,0x90,0x10,0xE7,0x4C,0x8A,0xF7,0x20,0xD4,0xF3,0xF0,0x02,0x18,
0x60,0x20,0xDF,0xF3,0x8A,0x48,0xA5,0xBA,0xF0,0x57,0xC9,0x03,0xF0,0x53,0xB0,0x4E,
0xC9,0x02,0xD0,0x29,0x68,0x20,0xB2,0xF3,0xA9,0x7D,0x8D,0x1E,0x91,0xA9,0x06,0x8D,
0x10,0x91,0xA9,0xEE,0x8D,0x1C,0x91,0x20,0x75,0xFE,0xA5,0xF8,0xF0,0x01,0xC8,0xA5,
0xFA,0xF0,0x01,0xC8,0xA9,0x00,0x85,0xF8,0x85,0xFA,0x4C,0x3C,0xF5,0xA5,0xB9,0x29,
0x0F,0xF0,0x1E,0x20,0x4D,0xF8,0xA9,0x00,0x20,0x90,0xF2,0x4C,0xCF,0xE4,0xB0,0x2E,
0xA5,0xB9,0xC9,0x62,0xD0,0x0B,0xA9,0x05,0x20,0xE7,0xF7,0x4C,0xB1,0xF3,0x20,0xDA,
0xF6,0x68,0xAA,0xC6,0x98,0xE4,0x98,0xF0,0x14,0xA4,0x98,0xB9,0x59,0x02,0x9D,0x59,
0x02,0xB9,0x63,0x02,0x9D,0x63,0x02,0xB9,0x6D,0x02,0x9D,0x6D,0x02,0x18,0x60,0xA9,
0x00,0x85,0x90,0x8A,0xA6,0x98,0xCA,0x30,0x15,0xDD,0x59,0x02,0xD0,0xF8,0x60,0xBD,
0x59,0x02,0x85,0xB8,0xBD,0x63,0x02,0x85,0xBA,0xBD,0x6D,0x02,0x85,0xB9,0x60,0xA9,
0x00,0x85,0x98,0xA2,0x03,0xE4,0x9A,0xB0,0x03,0x20,0x04,0xEF,0xE4,0x99,0xB0,0x03,
0x20,0xF6,0xEE,0x86,0x9A,0xA9,0x00,0x85,0x99,0x60,0xA6,0xB8,0xD0,0x03,0x4C,0x8D,
0xF7,0x20,0xCF,0xF3,0xD0,0x03,0x4C,0x81,0xF7,0xA6,0x98,0xE0,0x0A,0x90,0x03,0x4C,
0x7E,0xF7,0xE6,0x98,0xA5,0xB8,0x9D,0x59,0x02,0xA5,0xB9,0x09,0x60,0x85,0xB9,0x9D,
0x6D,0x02,0xA5,0xBA,0x9D,0x63,0x02,0xF0,0x5A,0xC9,0x03,0xF0,0x56,0x90,0x05,0x20,
0x95,0xF4,0x90,0x4F,0xC9,0x02,0xD0,0x03,0x4C,0xC7,0xF4,0x20,0x4D,0xF8,0xB0,0x03,
0x4C,0x96,0xF7,0xA5,0xB9,0x29,0x0F,0xD0,0x1F,0x20,0x94,0xF8,0xB0,0x36,0x20,0x47,
0xF6,0xA5,0xB7,0xF0,0x0A,0x20,0x67,0xF8,0x90,0x18,0xF0,0x28,0x4C,0x87,0xF7,0x20,
0xAF,0xF7,0xF0,0x20,0x90,0x0C,0xB0,0xF4,0x20,0xB7,0xF8,0xB0,0x17,0xA9,0x04,0x20,
0xE7,0xF7,0xA9,0xBF,0xA4,0xB9,0xC0,0x60,0xF0,0x07,0xA0,0x00,0xA9,0x02,0x91,0xB2,
0x98,0x85,0xA6,0x18,0x60,0xA5,0xB9,0x30,0x2C,0xA4,0xB7,0xF0,0x28,0xA5,0xBA,0x20,
0x17,0xEE,0xA5,0xB9,0x09,0xF0,0x20,0xC0,0xEE,0xA5,0x90,0x10,0x05,0x68,0x68,0x4C,
0x8A,0xF7,0xA5,0xB7,0xF0,0x0C,0xA0,0x00,0xB1,0xBB,0x20,0xE4,0xEE,0xC8,0xC4,0xB7,
0xD0,0xF6,0x20,0x04,0xEF,0x18,0x60,0xA9,0x06,0x8D,0x12,0x91,0x8D,0x10,0x91,0xA9,
0xEE,0x8D,0x1C,0x91,0xA0,0x00,0x8C,0x97,0x02,0xC4,0xB7,0xF0,0x0A,0xB1,0xBB,0x99,
0x93,0x02,0xC8,0xC0,0x04,0xD0,0xF2,0x20,0x27,0xF0,0x8E,0x98,0x02,0xAD,0x93,0x02,
0x29,0x0F,0xD0,0x00,0x0A,0xAA,0xBD,0x5A,0xFF,0x0A,0xA8,0xBD,0x5B,0xFF,0x2A,0x48,
0x98,0x69,0xC8,0x8D,0x99,0x02,0x68,0x69,0x00,0x8D,0x9A,0x02,0xAD,0x94,0x02,0x4A,
0x90,0x09,0xAD,0x20,0x91,0x0A,0xB0,0x03,0x4C,0x16,0xF0,0xAD,0x9B,0x02,0x8D,0x9C,
0x02,0xAD,0x9E,0x02,0x8D,0x9D,0x02,0x20,0x75,0xFE,0xA5,0xF8,0xD0,0x05,0x88,0x84,
0xF8,0x86,0xF7,0xA5,0xFA,0xD0,0x05,0x88,0x84,0xFA,0x86,0xF9,0x38,0xA9,0xF0,0x4C,
0x7B,0xFE,0x86,0xC3,0x84,0xC4,0x6C,0x30,0x03,0x85,0x93,0xA9,0x00,0x85,0x90,0xA5,
0xBA,0xD0,0x03,0x4C,0x96,0xF7,0xC9,0x03,0xF0,0xF9,0x90,0x6E,0xA4,0xB7,0xD0,0x03,
0x4C,0x93,0xF7,0x20,0xBC,0xE4,0xA9,0x60,0x85,0xB9,0x20,0x95,0xF4,0xA5,0xBA,0x20,
0x14,0xEE,0xA5,0xB9,0x20,0xCE,0xEE,0x20,0x19,0xEF,0x85,0xAE,0xA5,0x90,0x4A,0x4A,
0xB0,0x45,0x20,0x19,0xEF,0x85,0xAF,0x20,0xC1,0xE4,0xA9,0xFD,0x25,0x90,0x85,0x90,
0x20,0xE1,0xFF,0xD0,0x03,0x4C,0xCB,0xF6,0x20,0x19,0xEF,0xAA,0xA5,0x90,0x4A,0x4A,
0xB0,0xE8,0x8A,0xA4,0x93,0xF0,0x0C,0xA0,0x00,0xD1,0xAE,0xF0,0x08,0xA9,0x10,0x20,
0x6A,0xFE,0x2C,0x91,0xAE,0xE6,0xAE,0xD0,0x02,0xE6,0xAF,0x24,0x90,0x50,0xCB,0x20,
0xF6,0xEE,0x20,0xDA,0xF6,0x90,0x7A,0x4C,0x87,0xF7,0xC9,0x02,0xD0,0x03,0x4C,0xB9,
0xF0,0x20,0x4D,0xF8,0xB0,0x03,0x4C,0x96,0xF7,0x20,0x94,0xF8,0xB0,0x68,0x20,0x47,
0xF6,0xA5,0xB7,0xF0,0x09,0x20,0x67,0xF8,0x90,0x0B,0xF0,0x5A,0xB0,0xD9,0x20,0xAF,
0xF7,0xF0,0x53,0xB0,0xD2,0xA5,0x90,0x29,0x10,0x38,0xD0,0x4A,0xE0,0x01,0xF0,0x11,
0xE0,0x03,0xD0,0xDD,0xA0,0x01,0xB1,0xB2,0x85,0xC3,0xC8,0xB1,0xB2,0x85,0xC4,0xB0,
0x04,0xA5,0xB9,0xD0,0xEF,0xA0,0x03,0xB1,0xB2,0xA0,0x01,0xF1,0xB2,0xAA,0xA0,0x04,
0xB1,0xB2,0xA0,0x02,0xF1,0xB2,0xA8,0x18,0x8A,0x65,0xC3,0x85,0xAE,0x98,0x65,0xC4,
0x85,0xAF,0xA5,0xC3,0x85,0xC1,0xA5,0xC4,0x85,0xC2,0x20,0x6A,0xF6,0x20,0xC9,0xF8,
0x24,0x18,0xA6,0xAE,0xA4,0xAF,0x60,0xA5,0x9D,0x10,0x1E,0xA0,0x0C,0x20,0xE6,0xF1,
0xA5,0xB7,0xF0,0x15,0xA0,0x17,0x20,0xE6,0xF1,0xA4,0xB7,0xF0,0x0C,0xA0,0x00,0xB1,
0xBB,0x20,0xD2,0xFF,0xC8,0xC4,0xB7,0xD0,0xF6,0x60,0xA0,0x49,0xA5,0x93,0xF0,0x02,
0xA0,0x59,0x4C,0xE2,0xF1,0x86,0xAE,0x84,0xAF,0xAA,0xB5,0x00,0x85,0xC1,0xB5,0x01,
0x85,0xC2,0x6C,0x32,0x03,0xA5,0xBA,0xD0,0x03,0x4C,0x96,0xF7,0xC9,0x03,0xF0,0xF9,
0x90,0x5F,0xA9,0x61,0x85,0xB9,0xA4,0xB7,0xD0,0x03,0x4C,0x93,0xF7,0x20,0x95,0xF4,
0x20,0x28,0xF7,0xA5,0xBA,0x20,0x17,0xEE,0xA5,0xB9,0x20,0xC0,0xEE,0xA0,0x00,0x20,
0xD2,0xFB,0xA5,0xAC,0x20,0xE4,0xEE,0xA5,0xAD,0x20,0xE4,0xEE,0x20,0x11,0xFD,0xB0,
0x16,0xB1,0xAC,0x20,0xE4,0xEE,0x20,0xE1,0xFF,0xD0,0x07,0x20,0xDA,0xF6,0xA9,0x00,
0x38,0x60,0x20,0x1B,0xFD,0xD0,0xE5,0x20,0x04,0xEF,0x24,0xB9,0x30,0x11,0xA5,0xBA,
0x20,0x17,0xEE,0xA5,0xB9,0x29,0xEF,0x09,0xE0,0x20,0xC0,0xEE,0x20,0x04,0xEF,0x18,
0x60,0xC9,0x02,0xD0,0x03,0x4C,0xB9,0xF0,0x20,0x4D,0xF8,0x90,0x8C,0x20,0xB7,0xF8,
0xB0,0x25,0x20,0x28,0xF7,0xA2,0x03,0xA5,0xB9,0x29,0x01,0xD0,0x02,0xA2,0x01,0x8A,
0x20,0xE7,0xF7,0xB0,0x12,0x20,0xE6,0xF8,0xB0,0x0D,0xA5,0xB9,0x29,0x02,0xF0,0x06,
0xA9,0x05,0x20,0xE7,0xF7,0x24,0x18,0x60,0xA5,0x9D,0x10,0xFB,0xA0,0x51,0x20,0xE6,
0xF1,0x4C,0x59,0xF6,0xA2,0x00,0xE6,0xA2,0xD0,0x06,0xE6,0xA1,0xD0,0x02,0xE6,0xA0,
0x38,0xA5,0xA2,0xE9,0x01,0xA5,0xA1,0xE9,0x1A,0xA5,0xA0,0xE9,0x4F,0x90,0x06,0x86,
0xA0,0x86,0xA1,0x86,0xA2,0xAD,0x2F,0x91,0xCD,0x2F,0x91,0xD0,0xF8,0x85,0x91,0x60,
0x78,0xA5,0xA2,0xA6,0xA1,0xA4,0xA0,0x78,0x85,0xA2,0x86,0xA1,0x84,0xA0,0x58,0x60,
0xA5,0x91,0xC9,0xFE,0xD0,0x07,0x08,0x20,0xCC,0xFF,0x85,0xC6,0x28,0x60,0xA9,0x01,
0x2C,0xA9,0x02,0x2C,0xA9,0x03,0x2C,0xA9,0x04,0x2C,0xA9,0x05,0x2C,0xA9,0x06,0x2C,
0xA9,0x07,0x2C,0xA9,0x08,0x2C,0xA9,0x09,0x48,0x20,0xCC,0xFF,0xA0,0x00,0x24,0x9D,
0x50,0x0A,0x20,0xE6,0xF1,0x68,0x48,0x09,0x30,0x20,0xD2,0xFF,0x68,0x38,0x60,0xA5,
0x93,0x48,0x20,0xC0,0xF8,0x68,0x85,0x93,0xB0,0x2C,0xA0,0x00,0xB1,0xB2,0xC9,0x05,
0xF0,0x24,0xC9,0x01,0xF0,0x08,0xC9,0x03,0xF0,0x04,0xC9,0x04,0xD0,0xE1,0xAA,0x24,
0x9D,0x10,0x11,0xA0,0x63,0x20,0xE6,0xF1,0xA0,0x05,0xB1,0xB2,0x20,0xD2,0xFF,0xC8,
0xC0,0x15,0xD0,0xF6,0x18,0x88,0x60,0x85,0x9E,0x20,0x4D,0xF8,0x90,0x5E,0xA5,0xC2,
0x48,0xA5,0xC1,0x48,0xA5,0xAF,0x48,0xA5,0xAE,0x48,0xA0,0xBF,0xA9,0x20,0x91,0xB2,
0x88,0xD0,0xFB,0xA5,0x9E,0x91,0xB2,0xC8,0xA5,0xC1,0x91,0xB2,0xC8,0xA5,0xC2,0x91,
0xB2,0xC8,0xA5,0xAE,0x91,0xB2,0xC8,0xA5,0xAF,0x91,0xB2,0xC8,0x84,0x9F,0xA0,0x00,
0x84,0x9E,0xA4,0x9E,0xC4,0xB7,0xF0,0x0C,0xB1,0xBB,0xA4,0x9F,0x91,0xB2,0xE6,0x9E,
0xE6,0x9F,0xD0,0xEE,0x20,0x54,0xF8,0xA9,0x69,0x85,0xAB,0x20,0xEA,0xF8,0xA8,0x68,
0x85,0xAE,0x68,0x85,0xAF,0x68,0x85,0xC1,0x68,0x85,0xC2,0x98,0x60,0xA6,0xB2,0xA4,
0xB3,0xC0,0x02,0x60,0x20,0x4D,0xF8,0x8A,0x85,0xC1,0x18,0x69,0xC0,0x85,0xAE,0x98,
0x85,0xC2,0x69,0x00,0x85,0xAF,0x60,0x20,0xAF,0xF7,0xB0,0x1D,0xA0,0x05,0x84,0x9F,
0xA0,0x00,0x84,0x9E,0xC4,0xB7,0xF0,0x10,0xB1,0xBB,0xA4,0x9F,0xD1,0xB2,0xD0,0xE7,
0xE6,0x9E,0xE6,0x9F,0xA4,0x9E,0xD0,0xEC,0x18,0x60,0x20,0x4D,0xF8,0xE6,0xA6,0xA4,
0xA6,0xC0,0xC0,0x60,0x20,0xAB,0xF8,0xF0,0x1C,0xA0,0x1B,0x20,0xE6,0xF1,0x20,0x4B,
0xF9,0x20,0xAB,0xF8,0xD0,0xF8,0xA0,0x6A,0x4C,0xE6,0xF1,0xA9,0x40,0x2C,0x1F,0x91,
0xD0,0x03,0x2C,0x1F,0x91,0x18,0x60,0x20,0xAB,0xF8,0xF0,0xF9,0xA0,0x2E,0xD0,0xDB,
0xA9,0x00,0x85,0x90,0x85,0x93,0x20,0x54,0xF8,0x20,0x94,0xF8,0xB0,0x1F,0x78,0xA9,
0x00,0x85,0xAA,0x85,0xB4,0x85,0xB0,0x85,0x9E,0x85,0x9F,0x85,0x9C,0xA9,0x82,0xA2,
0x0E,0xD0,0x11,0x20,0x54,0xF8,0xA9,0x14,0x85,0xAB,0x20,0xB7,0xF8,0xB0,0x68,0x78,
0xA9,0xA0,0xA2,0x08,0xA0,0x7F,0x8C,0x2E,0x91,0x8D,0x2E,0x91,0x20,0x60,0xF1,0xAD,
0x14,0x03,0x8D,0x9F,0x02,0xAD,0x15,0x03,0x8D,0xA0,0x02,0x20,0xFB,0xFC,0xA9,0x02,
0x85,0xBE,0x20,0xDB,0xFB,0xAD,0x1C,0x91,0x29,0xFD,0x09,0x0C,0x8D,0x1C,0x91,0x85,
0xC0,0xA2,0xFF,0xA0,0xFF,0x88,0xD0,0xFD,0xCA,0xD0,0xF8,0x8D,0x29,0x91,0x58,0xAD,
0xA0,0x02,0xCD,0x15,0x03,0x18,0xF0,0x1F,0x20,0x4B,0xF9,0xAD,0x2D,0x91,0x29,0x40,
0xF0,0xED,0xAD,0x14,0x91,0x20,0x34,0xF7,0x4C,0x2F,0xF9,0x20,0xE1,0xFF,0x18,0xD0,
0x0B,0x20,0xCF,0xFC,0x38,0x68,0x68,0xA9,0x00,0x8D,0xA0,0x02,0x60,0x86,0xB1,0xA5,
0xB0,0x0A,0x0A,0x18,0x65,0xB0,0x18,0x65,0xB1,0x85,0xB1,0xA9,0x00,0x24,0xB0,0x30,
0x01,0x2A,0x06,0xB1,0x2A,0x06,0xB1,0x2A,0xAA,0xAD,0x28,0x91,0xC9,0x15,0x90,0xF9,
0x65,0xB1,0x8D,0x24,0x91,0x8A,0x6D,0x29,0x91,0x8D,0x25,0x91,0x58,0x60,0xAE,0x29,
0x91,0xA0,0xFF,0x98,0xED,0x28,0x91,0xEC,0x29,0x91,0xD0,0xF2,0x86,0xB1,0xAA,0x8C,
0x28,0x91,0x8C,0x29,0x91,0x98,0xE5,0xB1,0x86,0xB1,0x4A,0x66,0xB1,0x4A,0x66,0xB1,
0xA5,0xB0,0x18,0x69,0x3C,0x2C,0x21,0x91,0xC5,0xB1,0xB0,0x4A,0xA6,0x9C,0xF0,0x03,
0x4C,0xAD,0xFA,0xA6,0xA3,0x30,0x1B,0xA2,0x00,0x69,0x30,0x65,0xB0,0xC5,0xB1,0xB0,
0x1C,0xE8,0x69,0x26,0x65,0xB0,0xC5,0xB1,0xB0,0x17,0x69,0x2C,0x65,0xB0,0xC5,0xB1,
0x90,0x03,0x4C,0x60,0xFA,0xA5,0xB4,0xF0,0x1D,0x85,0xA8,0xD0,0x19,0xE6,0xA9,0xB0,
0x02,0xC6,0xA9,0x38,0xE9,0x13,0xE5,0xB1,0x65,0x92,0x85,0x92,0xA5,0xA4,0x49,0x01,
0x85,0xA4,0xF0,0x21,0x86,0xD7,0xA5,0xB4,0xF0,0x18,0x2C,0x2D,0x91,0x50,0x13,0xA9,
0x00,0x85,0xA4,0xA5,0xA3,0x10,0x30,0x30,0xC9,0xA2,0xA6,0x20,0x5D,0xF9,0xA5,0x9B,
0xD0,0xC3,0x4C,0x56,0xFF,0xA5,0x92,0xF0,0x07,0x30,0x03,0xC6,0xB0,0x2C,0xE6,0xB0,
0xA9,0x00,0x85,0x92,0xE4,0xD7,0xD0,0x0F,0x8A,0xD0,0xAA,0xA5,0xA9,0x30,0xC7,0xC9,
0x10,0x90,0xC3,0x85,0x96,0xB0,0xBF,0x8A,0x45,0x9B,0x85,0x9B,0xA5,0xB4,0xF0,0xD2,
0xC6,0xA3,0x30,0xC5,0x46,0xD7,0x66,0xBF,0xA2,0xDA,0x20,0x5D,0xF9,0x4C,0x56,0xFF,
0xA5,0x96,0xF0,0x04,0xA5,0xB4,0xF0,0x04,0xA5,0xA3,0x10,0x85,0x46,0xB1,0xA9,0x93,
0x38,0xE5,0xB1,0x65,0xB0,0x0A,0xAA,0x20,0x5D,0xF9,0xE6,0x9C,0xA5,0xB4,0xD0,0x11,
0xA5,0x96,0xF0,0x26,0x85,0xA8,0xA9,0x00,0x85,0x96,0xA9,0xC0,0x8D,0x2E,0x91,0x85,
0xB4,0xA5,0x96,0x85,0xB5,0xF0,0x09,0xA9,0x00,0x85,0xB4,0xA9,0x40,0x8D,0x2E,0x91,
0xA5,0xBF,0x85,0xBD,0xA5,0xA8,0x05,0xA9,0x85,0xB6,0x4C,0x56,0xFF,0x20,0xDB,0xFB,
0x85,0x9C,0xA2,0xDA,0x20,0x5D,0xF9,0xA5,0xBE,0xF0,0x02,0x85,0xA7,0xA9,0x0F,0x24,
0xAA,0x10,0x17,0xA5,0xB5,0xD0,0x0C,0xA6,0xBE,0xCA,0xD0,0x0B,0xA9,0x08,0x20,0x6A,
0xFE,0xD0,0x04,0xA9,0x00,0x85,0xAA,0x4C,0x56,0xFF,0x70,0x31,0xD0,0x18,0xA5,0xB5,
0xD0,0xF5,0xA5,0xB6,0xD0,0xF1,0xA5,0xA7,0x4A,0xA5,0xBD,0x30,0x03,0x90,0x18,0x18,
0xB0,0x15,0x29,0x0F,0x85,0xAA,0xC6,0xAA,0xD0,0xDD,0xA9,0x40,0x85,0xAA,0x20,0xD2,
0xFB,0xA9,0x00,0x85,0xAB,0xF0,0xD0,0xA9,0x80,0x85,0xAA,0xD0,0xCA,0xA5,0xB5,0xF0,
0x0A,0xA9,0x04,0x20,0x6A,0xFE,0xA9,0x00,0x4C,0x97,0xFB,0x20,0x11,0xFD,0x90,0x03,
0x4C,0x95,0xFB,0xA6,0xA7,0xCA,0xF0,0x2D,0xA5,0x93,0xF0,0x0C,0xA0,0x00,0xA5,0xBD,
0xD1,0xAC,0xF0,0x04,0xA9,0x01,0x85,0xB6,0xA5,0xB6,0xF0,0x4B,0xA2,0x3D,0xE4,0x9E,
0x90,0x3E,0xA6,0x9E,0xA5,0xAD,0x9D,0x01,0x01,0xA5,0xAC,0x9D,0x00,0x01,0xE8,0xE8,
0x86,0x9E,0x4C,0x87,0xFB,0xA6,0x9F,0xE4,0x9E,0xF0,0x35,0xA5,0xAC,0xDD,0x00,0x01,
0xD0,0x2E,0xA5,0xAD,0xDD,0x01,0x01,0xD0,0x27,0xE6,0x9F,0xE6,0x9F,0xA5,0x93,0xF0,
0x0B,0xA5,0xBD,0xA0,0x00,0xD1,0xAC,0xF0,0x17,0xC8,0x84,0xB6,0xA5,0xB6,0xF0,0x07,
0xA9,0x10,0x20,0x6A,0xFE,0xD0,0x09,0xA5,0x93,0xD0,0x05,0xA8,0xA5,0xBD,0x91,0xAC,
0x20,0x1B,0xFD,0xD0,0x3A,0xA9,0x80,0x85,0xAA,0xA6,0xBE,0xCA,0x30,0x02,0x86,0xBE,
0xC6,0xA7,0xF0,0x08,0xA5,0x9E,0xD0,0x27,0x85,0xBE,0xF0,0x23,0x20,0xCF,0xFC,0x20,
0xD2,0xFB,0xA0,0x00,0x84,0xAB,0xB1,0xAC,0x45,0xAB,0x85,0xAB,0x20,0x1B,0xFD,0x20,
0x11,0xFD,0x90,0xF2,0xA5,0xAB,0x45,0xBD,0xF0,0x05,0xA9,0x20,0x20,0x6A,0xFE,0x4C,
0x56,0xFF,0xA5,0xC2,0x85,0xAD,0xA5,0xC1,0x85,0xAC,0x60,0xA9,0x08,0x85,0xA3,0xA9,
0x00,0x85,0xA4,0x85,0xA8,0x85,0x9B,0x85,0xA9,0x60,0xA5,0xBD,0x4A,0xA9,0x60,0x90,
0x02,0xA9,0xB0,0xA2,0x00,0x8D,0x28,0x91,0x8E,0x29,0x91,0xAD,0x20,0x91,0x49,0x08,
0x8D,0x20,0x91,0x29,0x08,0x60,0x38,0x66,0xAD,0x30,0x3C,0xA5,0xA8,0xD0,0x12,0xA9,
0x10,0xA2,0x01,0x20,0xF5,0xFB,0xD0,0x2F,0xE6,0xA8,0xA5,0xAD,0x10,0x29,0x4C,0x95,
0xFC,0xA5,0xA9,0xD0,0x09,0x20,0xF1,0xFB,0xD0,0x1D,0xE6,0xA9,0xD0,0x19,0x20,0xEA,
0xFB,0xD0,0x14,0xA5,0xA4,0x49,0x01,0x85,0xA4,0xF0,0x0F,0xA5,0xBD,0x49,0x01,0x85,
0xBD,0x29,0x01,0x45,0x9B,0x85,0x9B,0x4C,0x56,0xFF,0x46,0xBD,0xC6,0xA3,0xA5,0xA3,
0xF0,0x3A,0x10,0xF3,0x20,0xDB,0xFB,0x58,0xA5,0xA5,0xF0,0x12,0xA2,0x00,0x86,0xD7,
0xC6,0xA5,0xA6,0xBE,0xE0,0x02,0xD0,0x02,0x09,0x80,0x85,0xBD,0xD0,0xD9,0x20,0x11,
0xFD,0x90,0x0A,0xD0,0x91,0xE6,0xAD,0xA5,0xD7,0x85,0xBD,0xB0,0xCA,0xA0,0x00,0xB1,
0xAC,0x85,0xBD,0x45,0xD7,0x85,0xD7,0x20,0x1B,0xFD,0xD0,0xBB,0xA5,0x9B,0x49,0x01,
0x85,0xBD,0x4C,0x56,0xFF,0xC6,0xBE,0xD0,0x03,0x20,0x08,0xFD,0xA9,0x50,0x85,0xA7,
0xA2,0x08,0x78,0x20,0xFB,0xFC,0xD0,0xEA,0xA9,0x78,0x20,0xF3,0xFB,0xD0,0xE3,0xC6,
0xA7,0xD0,0xDF,0x20,0xDB,0xFB,0xC6,0xAB,0x10,0xD8,0xA2,0x0A,0x20,0xFB,0xFC,0x58,
0xE6,0xAB,0xA5,0xBE,0xF0,0x30,0x20,0xD2,0xFB,0xA2,0x09,0x86,0xA5,0xD0,0x85,0x08,
0x78,0x20,0x08,0xFD,0xA9,0x7F,0x8D,0x2E,0x91,0xA9,0xF7,0x8D,0x20,0x91,0xA9,0x40,
0x8D,0x2B,0x91,0x20,0x39,0xFE,0xAD,0xA0,0x02,0xF0,0x09,0x8D,0x15,0x03,0xAD,0x9F,
0x02,0x8D,0x14,0x03,0x28,0x60,0x20,0xCF,0xFC,0xF0,0x97,0xBD,0xE9,0xFD,0x8D,0x14,
0x03,0xBD,0xEA,0xFD,0x8D,0x15,0x03,0x60,0xAD,0x1C,0x91,0x09,0x0E,0x8D,0x1C,0x91,
0x60,0x38,0xA5,0xAC,0xE5,0xAE,0xA5,0xAD,0xE5,0xAF,0x60,0xE6,0xAC,0xD0,0x02,0xE6,
0xAD,0x60,0xA2,0xFF,0x78,0x9A,0xD8,0x20,0x3F,0xFD,0xD0,0x03,0x6C,0x00,0xA0,0x20,
0x8D,0xFD,0x20,0x52,0xFD,0x20,0xF9,0xFD,0x20,0x18,0xE5,0x58,0x6C,0x00,0xC0,0xA2,
0x05,0xBD,0x4C,0xFD,0xDD,0x03,0xA0,0xD0,0x03,0xCA,0xD0,0xF5,0x60,0x41,0x30,0xC3,
0xC2,0xCD,0xA2,0x6D,0xA0,0xFD,0x18,0x86,0xC3,0x84,0xC4,0xA0,0x1F,0xB9,0x14,0x03,
0xB0,0x02,0xB1,0xC3,0x91,0xC3,0x99,0x14,0x03,0x88,0x10,0xF1,0x60,0xBF,0xEA,0xD2,
0xFE,0xAD,0xFE,0x0A,0xF4,0x4A,0xF3,0xC7,0xF2,0x09,0xF3,0xF3,0xF3,0x0E,0xF2,0x7A,
0xF2,0x70,0xF7,0xF5,0xF1,0xEF,0xF3,0xD2,0xFE,0x49,0xF5,0x85,0xF6,0xA9,0x00,0xAA,
0x95,0x00,0x9D,0x00,0x02,0x9D,0x00,0x03,0xE8,0xD0,0xF5,0xA2,0x3C,0xA0,0x03,0x86,
0xB2,0x84,0xB3,0x85,0xC1,0x85,0x97,0x8D,0x81,0x02,0xA8,0xA9,0x04,0x85,0xC2,0xE6,
0xC1,0xD0,0x02,0xE6,0xC2,0x20,0x91,0xFE,0xA5,0x97,0xF0,0x22,0xB0,0xF1,0xA4,0xC2,
0xA6,0xC1,0xC0,0x20,0x90,0x25,0xC0,0x21,0xB0,0x08,0xA0,0x1E,0x8C,0x88,0x02,0x4C,
0x7B,0xFE,0xA9,0x12,0x8D,0x82,0x02,0xA9,0x10,0x8D,0x88,0x02,0xD0,0xF1,0x90,0xCF,
0xA5,0xC2,0x8D,0x82,0x02,0x85,0x97,0xC9,0x11,0x90,0xC4,0x20,0xC3,0xE5,0x4C,0xEB,
0xFD,0xA8,0xFC,0x0B,0xFC,0xBF,0xEA,0x8E,0xF9,0xA9,0x7F,0x8D,0x1E,0x91,0x8D,0x2E,
0x91,0xA9,0x40,0x8D,0x2B,0x91,0xA9,0x40,0x8D,0x1B,0x91,0xA9,0xFE,0x8D,0x1C,0x91,
0xA9,0xDE,0x8D,0x2C,0x91,0xA2,0x00,0x8E,0x12,0x91,0xA2,0xFF,0x8E,0x22,0x91,0xA2,
0x00,0x8E,0x23,0x91,0xA2,0x80,0x8E,0x13,0x91,0xA2,0x00,0x8E,0x1F,0x91,0x20,0x84,
0xEF,0xA9,0x82,0x8D,0x1E,0x91,0x20,0x8D,0xEF,0xA9,0xC0,0x8D,0x2E,0x91,0xA9,0x89,
0x8D,0x24,0x91,0xA9,0x42,0x8D,0x25,0x91,0x60,0x85,0xB7,0x86,0xBB,0x84,0xBC,0x60,
0x85,0xB8,0x86,0xBA,0x84,0xB9,0x60,0xA5,0xBA,0xC9,0x02,0xD0,0x0B,0xAD,0x97,0x02,
0xA9,0x00,0x8D,0x97,0x02,0x60,0x85,0x9D,0xA5,0x90,0x05,0x90,0x85,0x90,0x60,0x8D,
0x85,0x02,0x60,0x90,0x06,0xAE,0x83,0x02,0xAC,0x84,0x02,0x8E,0x83,0x02,0x8C,0x84,
0x02,0x60,0x90,0x06,0xAE,0x81,0x02,0xAC,0x82,0x02,0x8E,0x81,0x02,0x8C,0x82,0x02,
0x60,0xB1,0xC1,0xAA,0xA9,0x55,0x91,0xC1,0xD1,0xC1,0xD0,0x08,0x6A,0x91,0xC1,0xD1,
0xC1,0xD0,0x01,0xA9,0x18,0x8A,0x91,0xC1,0x60,0x78,0x6C,0x18,0x03,0x48,0x8A,0x48,
0x98,0x48,0xAD,0x1D,0x91,0x10,0x48,0x2D,0x1E,0x91,0xAA,0x29,0x02,0xF0,0x1F,0x20,
0x3F,0xFD,0xD0,0x03,0x6C,0x02,0xA0,0x2C,0x11,0x91,0x20,0x34,0xF7,0x20,0xE1,0xFF,
0xD0,0x2D,0x20,0x52,0xFD,0x20,0xF9,0xFD,0x20,0x18,0xE5,0x6C,0x02,0xC0,0xAD,0x1E,
0x91,0x09,0x80,0x48,0xA9,0x7F,0x8D,0x1E,0x91,0x8A,0x29,0x40,0xF0,0x14,0xA9,0xCE,
0x05,0xB5,0x8D,0x1C,0x91,0xAD,0x14,0x91,0x68,0x8D,0x1E,0x91,0x20,0xA3,0xEF,0x4C,
0x56,0xFF,0x8A,0x29,0x20,0xF0,0x25,0xAD,0x10,0x91,0x29,0x01,0x85,0xA7,0xAD,0x18,
0x91,0xE9,0x16,0x6D,0x99,0x02,0x8D,0x18,0x91,0xAD,0x19,0x91,0x6D,0x9A,0x02,0x8D,
0x19,0x91,0x68,0x8D,0x1E,0x91,0x20,0x36,0xF0,0x4C,0x56,0xFF,0x8A,0x29,0x10,0xF0,
0x25,0xAD,0x93,0x02,0x29,0x0F,0xD0,0x00,0x0A,0xAA,0xBD,0x5A,0xFF,0x8D,0x18,0x91,
0xBD,0x5B,0xFF,0x8D,0x19,0x91,0xAD,0x10,0x91,0x68,0x09,0x20,0x29,0xEF,0x8D,0x1E,
0x91,0xAE,0x98,0x02,0x86,0xA8,0x68,0xA8,0x68,0xAA,0x68,0x40,0x92,0x27,0x40,0x1A,
0xC6,0x11,0x74,0x0E,0xEE,0x0C,0x45,0x06,0xF1,0x02,0x46,0x01,0xB8,0x00,0x71,0x00,
0x2A,0x00,0x48,0x8A,0x48,0x98,0x48,0xBA,0xBD,0x04,0x01,0x29,0x10,0xF0,0x03,0x6C,
0x16,0x03,0x6C,0x14,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x4C,0x52,0xFD,0x4C,0x57,0xFD,
0x4C,0x66,0xFE,0x4C,0xC0,0xEE,0x4C,0xCE,0xEE,0x4C,0x73,0xFE,0x4C,0x82,0xFE,0x4C,
0x1E,0xEB,0x4C,0x6F,0xFE,0x4C,0x19,0xEF,0x4C,0xE4,0xEE,0x4C,0xF6,0xEE,0x4C,0x04,
0xEF,0x4C,0x17,0xEE,0x4C,0x14,0xEE,0x4C,0x57,0xFE,0x4C,0x50,0xFE,0x4C,0x49,0xFE,
0x6C,0x1A,0x03,0x6C,0x1C,0x03,0x6C,0x1E,0x03,0x6C,0x20,0x03,0x6C,0x22,0x03,0x6C,
0x24,0x03,0x6C,0x26,0x03,0x4C,0x42,0xF5,0x4C,0x75,0xF6,0x4C,0x67,0xF7,0x4C,0x60,
0xF7,0x6C,0x28,0x03,0x6C,0x2A,0x03,0x6C,0x2C,0x03,0x4C,0x34,0xF7,0x4C,0x05,0xE5,
0x4C,0x0A,0xE5,0x4C,0x00,0xE5,0xFF,0xFF,0xFF,0xFF,0xA9,0xFE,0x22,0xFD,0x72,0xFF,
};

Wyświetl plik

@ -0,0 +1,514 @@
const unsigned char kernalrom[8192] = {
0x0F,0xDC,0xA5,0x61,0xC9,0x88,0x90,0x03,0x20,0xD4,0xDA,0x20,0xCC,0xDC,0xA5,0x07,
0x18,0x69,0x81,0xF0,0xF3,0x38,0xE9,0x01,0x48,0xA2,0x05,0xB5,0x69,0xB4,0x61,0x95,
0x61,0x94,0x69,0xCA,0x10,0xF5,0xA5,0x56,0x85,0x70,0x20,0x53,0xD8,0x20,0xB4,0xDF,
0xA9,0xC4,0xA0,0xDF,0x20,0x56,0xE0,0xA9,0x00,0x85,0x6F,0x68,0x20,0xB9,0xDA,0x60,
0x85,0x71,0x84,0x72,0x20,0xCA,0xDB,0xA9,0x57,0x20,0x28,0xDA,0x20,0x5A,0xE0,0xA9,
0x57,0xA0,0x00,0x4C,0x28,0xDA,0x85,0x71,0x84,0x72,0x20,0xC7,0xDB,0xB1,0x71,0x85,
0x67,0xA4,0x71,0xC8,0x98,0xD0,0x02,0xE6,0x72,0x85,0x71,0xA4,0x72,0x20,0x28,0xDA,
0xA5,0x71,0xA4,0x72,0x18,0x69,0x05,0x90,0x01,0xC8,0x85,0x71,0x84,0x72,0x20,0x67,
0xD8,0xA9,0x5C,0xA0,0x00,0xC6,0x67,0xD0,0xE4,0x60,0x98,0x35,0x44,0x7A,0x00,0x68,
0x28,0xB1,0x46,0x00,0x20,0x2B,0xDC,0x30,0x37,0xD0,0x20,0x20,0xF3,0xFF,0x86,0x22,
0x84,0x23,0xA0,0x04,0xB1,0x22,0x85,0x62,0xC8,0xB1,0x22,0x85,0x64,0xA0,0x08,0xB1,
0x22,0x85,0x63,0xC8,0xB1,0x22,0x85,0x65,0x4C,0xE0,0xE0,0xA9,0x8B,0xA0,0x00,0x20,
0xA2,0xDB,0xA9,0x8A,0xA0,0xE0,0x20,0x28,0xDA,0xA9,0x8F,0xA0,0xE0,0x20,0x67,0xD8,
0xA6,0x65,0xA5,0x62,0x85,0x65,0x86,0x62,0xA6,0x63,0xA5,0x64,0x85,0x63,0x86,0x64,
0xA9,0x00,0x85,0x66,0xA5,0x61,0x85,0x70,0xA9,0x80,0x85,0x61,0x20,0xD7,0xD8,0xA2,
0x8B,0xA0,0x00,0x4C,0xD4,0xDB,0xC9,0xF0,0xD0,0x07,0x84,0x38,0x86,0x37,0x4C,0x63,
0xC6,0xAA,0xD0,0x02,0xA2,0x1E,0x4C,0x37,0xC4,0x20,0xD2,0xFF,0xB0,0xE8,0x60,0x20,
0xCF,0xFF,0xB0,0xE2,0x60,0x20,0xC9,0xFF,0xB0,0xDC,0x60,0x20,0xC6,0xFF,0xB0,0xD6,
0x60,0x20,0xE4,0xFF,0xB0,0xD0,0x60,0x20,0x8A,0xCD,0x20,0xF7,0xD7,0xA9,0xE1,0x48,
0xA9,0x43,0x48,0xAD,0x0F,0x03,0x48,0xAD,0x0C,0x03,0xAE,0x0D,0x03,0xAC,0x0E,0x03,
0x28,0x6C,0x14,0x00,0x08,0x8D,0x0C,0x03,0x8E,0x0D,0x03,0x8C,0x0E,0x03,0x68,0x8D,
0x0F,0x03,0x60,0x20,0xD1,0xE1,0xA6,0x2D,0xA4,0x2E,0xA9,0x2B,0x20,0xD8,0xFF,0xB0,
0x95,0x60,0xA9,0x01,0x2C,0xA9,0x00,0x85,0x0A,0x20,0xD1,0xE1,0xA5,0x0A,0xA6,0x2B,
0xA4,0x2C,0x20,0xD5,0xFF,0xB0,0x57,0xA5,0x0A,0xF0,0x1A,0xA2,0x1C,0x20,0xB7,0xFF,
0x29,0x10,0xF0,0x03,0x4C,0x37,0xC4,0xA5,0x7A,0xC9,0x02,0xF0,0x07,0xA9,0x64,0xA0,
0xC3,0x4C,0x1E,0xCB,0x60,0x20,0xB7,0xFF,0x29,0xBF,0xF0,0x05,0xA2,0x1D,0x4C,0x37,
0xC4,0xA5,0x7B,0xC9,0x02,0xD0,0x0E,0x86,0x2D,0x84,0x2E,0xA9,0x76,0xA0,0xC3,0x20,
0x1E,0xCB,0x4C,0x2A,0xC5,0x20,0x8E,0xC6,0x4C,0x76,0xE4,0x20,0x16,0xE2,0x20,0xC0,
0xFF,0xB0,0x0B,0x60,0x20,0x16,0xE2,0xA5,0x49,0x20,0xC3,0xFF,0x90,0xC6,0x4C,0xF6,
0xE0,0xA9,0x00,0x20,0xBD,0xFF,0xA2,0x01,0xA0,0x00,0x20,0xBA,0xFF,0x20,0x03,0xE2,
0x20,0x54,0xE2,0x20,0x03,0xE2,0x20,0xFD,0xE1,0xA0,0x00,0x86,0x49,0x20,0xBA,0xFF,
0x20,0x03,0xE2,0x20,0xFD,0xE1,0x8A,0xA8,0xA6,0x49,0x4C,0xBA,0xFF,0x20,0x0B,0xE2,
0x4C,0x9E,0xD7,0x20,0x79,0x00,0xD0,0x02,0x68,0x68,0x60,0x20,0xFD,0xCE,0x20,0x79,
0x00,0xD0,0xF7,0x4C,0x08,0xCF,0xA9,0x00,0x20,0xBD,0xFF,0x20,0x0E,0xE2,0x20,0x9E,
0xD7,0x86,0x49,0x8A,0xA2,0x01,0xA0,0x00,0x20,0xBA,0xFF,0x20,0x03,0xE2,0x20,0xFD,
0xE1,0x86,0x4A,0xA0,0x00,0xA5,0x49,0xE0,0x03,0x90,0x01,0x88,0x20,0xBA,0xFF,0x20,
0x03,0xE2,0x20,0xFD,0xE1,0x8A,0xA8,0xA6,0x4A,0xA5,0x49,0x20,0xBA,0xFF,0x20,0x03,
0xE2,0x20,0x0B,0xE2,0x20,0x9E,0xCD,0x20,0xA3,0xD6,0xA6,0x22,0xA4,0x23,0x4C,0xBD,
0xFF,0xA9,0xDD,0xA0,0xE2,0x20,0x67,0xD8,0x20,0x0C,0xDC,0xA9,0xE2,0xA0,0xE2,0xA6,
0x6E,0x20,0x07,0xDB,0x20,0x0C,0xDC,0x20,0xCC,0xDC,0xA9,0x00,0x85,0x6F,0x20,0x53,
0xD8,0xA9,0xE7,0xA0,0xE2,0x20,0x50,0xD8,0xA5,0x66,0x48,0x10,0x0D,0x20,0x49,0xD8,
0xA5,0x66,0x30,0x09,0xA5,0x12,0x49,0xFF,0x85,0x12,0x20,0xB4,0xDF,0xA9,0xE7,0xA0,
0xE2,0x20,0x67,0xD8,0x68,0x10,0x03,0x20,0xB4,0xDF,0xA9,0xEC,0xA0,0xE2,0x4C,0x40,
0xE0,0x20,0xCA,0xDB,0xA9,0x00,0x85,0x12,0x20,0x68,0xE2,0xA2,0x4E,0xA0,0x00,0x20,
0xF3,0xE0,0xA9,0x57,0xA0,0x00,0x20,0xA2,0xDB,0xA9,0x00,0x85,0x66,0xA5,0x12,0x20,
0xD9,0xE2,0xA9,0x4E,0xA0,0x00,0x4C,0x0F,0xDB,0x48,0x4C,0x9A,0xE2,0x81,0x49,0x0F,
0xDA,0xA2,0x83,0x49,0x0F,0xDA,0xA2,0x7F,0x00,0x00,0x00,0x00,0x05,0x84,0xE6,0x1A,
0x2D,0x1B,0x86,0x28,0x07,0xFB,0xF8,0x87,0x99,0x68,0x89,0x01,0x87,0x23,0x35,0xDF,
0xE1,0x86,0xA5,0x5D,0xE7,0x28,0x83,0x49,0x0F,0xDA,0xA2,0xA5,0x66,0x48,0x10,0x03,
0x20,0xB4,0xDF,0xA5,0x61,0x48,0xC9,0x81,0x90,0x07,0xA9,0xBC,0xA0,0xD9,0x20,0x0F,
0xDB,0xA9,0x3B,0xA0,0xE3,0x20,0x40,0xE0,0x68,0xC9,0x81,0x90,0x07,0xA9,0xDD,0xA0,
0xE2,0x20,0x50,0xD8,0x68,0x10,0x03,0x4C,0xB4,0xDF,0x60,0x0B,0x76,0xB3,0x83,0xBD,
0xD3,0x79,0x1E,0xF4,0xA6,0xF5,0x7B,0x83,0xFC,0xB0,0x10,0x7C,0x0C,0x1F,0x67,0xCA,
0x7C,0xDE,0x53,0xCB,0xC1,0x7D,0x14,0x64,0x70,0x4C,0x7D,0xB7,0xEA,0x51,0x7A,0x7D,
0x63,0x30,0x88,0x7E,0x7E,0x92,0x44,0x99,0x3A,0x7E,0x4C,0xCC,0x91,0xC7,0x7F,0xAA,
0xAA,0xAA,0x13,0x81,0x00,0x00,0x00,0x00,0x20,0x5B,0xE4,0x20,0xA4,0xE3,0x20,0x04,
0xE4,0xA2,0xFB,0x9A,0x4C,0x74,0xC4,0xE6,0x7A,0xD0,0x02,0xE6,0x7B,0xAD,0x60,0xEA,
0xC9,0x3A,0xB0,0x0A,0xC9,0x20,0xF0,0xEF,0x38,0xE9,0x30,0x38,0xE9,0xD0,0x60,0x80,
0x4F,0xC7,0x52,0x58,0xA9,0x4C,0x85,0x54,0x85,0x00,0xA9,0x48,0xA0,0xD2,0x85,0x01,
0x84,0x02,0xA9,0x91,0xA0,0xD3,0x85,0x05,0x84,0x06,0xA9,0xAA,0xA0,0xD1,0x85,0x03,
0x84,0x04,0xA2,0x1C,0xBD,0x87,0xE3,0x95,0x73,0xCA,0x10,0xF8,0xA9,0x03,0x85,0x53,
0xA9,0x00,0x85,0x68,0x85,0x13,0x85,0x18,0xA2,0x01,0x8E,0xFD,0x01,0x8E,0xFC,0x01,
0xA2,0x19,0x86,0x16,0x38,0x20,0x9C,0xFF,0x86,0x2B,0x84,0x2C,0x38,0x20,0x99,0xFF,
0x86,0x37,0x84,0x38,0x86,0x33,0x84,0x34,0xA0,0x00,0x98,0x91,0x2B,0xE6,0x2B,0xD0,
0x02,0xE6,0x2C,0x60,0xA5,0x2B,0xA4,0x2C,0x20,0x08,0xC4,0xA9,0x36,0xA0,0xE4,0x20,
0x1E,0xCB,0xA5,0x37,0x38,0xE5,0x2B,0xAA,0xA5,0x38,0xE5,0x2C,0x20,0xCD,0xDD,0xA9,
0x29,0xA0,0xE4,0x20,0x1E,0xCB,0x4C,0x44,0xC6,0x20,0x42,0x59,0x54,0x45,0x53,0x20,
0x46,0x52,0x45,0x45,0x0D,0x00,0x93,0x2A,0x2A,0x2A,0x2A,0x20,0x43,0x42,0x4D,0x20,
0x42,0x41,0x53,0x49,0x43,0x20,0x56,0x32,0x20,0x2A,0x2A,0x2A,0x2A,0x0D,0x00,0x3A,
0xC4,0x83,0xC4,0x7C,0xC5,0x1A,0xC7,0xE4,0xC7,0x86,0xCE,0xA2,0x0B,0xBD,0x4F,0xE4,
0x9D,0x00,0x03,0xCA,0x10,0xF7,0x60,0x20,0xCC,0xFF,0xA9,0x00,0x85,0x13,0x20,0x7A,
0xC6,0x58,0x4C,0x74,0xC4,0xE8,0x20,0x33,0xC5,0x4C,0x77,0xC6,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAD,0x2C,0x91,0x29,0xDF,0x8D,0x2C,0x91,0x60,0xAD,0x2C,0x91,0x09,0x20,0x8D,0x2C,
0x91,0x60,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0x60,0xA6,0xB9,0x4C,0x47,
0xF6,0x8A,0xD0,0x08,0xA5,0xC3,0x85,0xAE,0xA5,0xC4,0x85,0xAF,0x4C,0x6A,0xF6,0x20,
0xE3,0xF8,0x90,0x03,0x68,0xA9,0x00,0x4C,0x9E,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xA2,0x10,0xA0,0x91,0x60,0xA2,0x16,0xA0,0x17,0x60,0xB0,0x07,0x86,0xD6,0x84,0xD3,
0x20,0x87,0xE5,0xA6,0xD6,0xA4,0xD3,0x60,0x20,0xBB,0xE5,0xAD,0x88,0x02,0x29,0xFD,
0x0A,0x0A,0x09,0x80,0x8D,0x05,0x90,0xAD,0x88,0x02,0x29,0x02,0xF0,0x08,0xA9,0x80,
0x0D,0x02,0x90,0x8D,0x02,0x90,0xA9,0x00,0x8D,0x91,0x02,0x85,0xCF,0xA9,0xDC,0x8D,
0x8F,0x02,0xA9,0xEB,0x8D,0x90,0x02,0xA9,0x0A,0x8D,0x89,0x02,0x8D,0x8C,0x02,0xA9,
0x06,0x8D,0x86,0x02,0xA9,0x04,0x8D,0x8B,0x02,0xA9,0x0C,0x85,0xCD,0x85,0xCC,0xAD,
0x88,0x02,0x09,0x80,0xA8,0xA9,0x00,0xAA,0x94,0xD9,0x18,0x69,0x16,0x90,0x01,0xC8,
0xE8,0xE0,0x18,0xD0,0xF3,0xA9,0xFF,0x95,0xD9,0xA2,0x16,0x20,0x8D,0xEA,0xCA,0x10,
0xFA,0xA0,0x00,0x84,0xD3,0x84,0xD6,0xA6,0xD6,0xA5,0xD3,0xB4,0xD9,0x30,0x08,0x18,
0x69,0x16,0x85,0xD3,0xCA,0x10,0xF4,0xB5,0xD9,0x29,0x03,0x0D,0x88,0x02,0x85,0xD2,
0xBD,0xFD,0xED,0x85,0xD1,0xA9,0x15,0xE8,0xB4,0xD9,0x30,0x06,0x18,0x69,0x16,0xE8,
0x10,0xF6,0x85,0xD5,0x60,0x20,0xBB,0xE5,0x4C,0x81,0xE5,0xA9,0x03,0x85,0x9A,0xA9,
0x00,0x85,0x99,0xA2,0x10,0xBD,0xE3,0xED,0x9D,0xFF,0x8F,0xCA,0xD0,0xF7,0x60,0xAC,
0x77,0x02,0xA2,0x00,0xBD,0x78,0x02,0x9D,0x77,0x02,0xE8,0xE4,0xC6,0xD0,0xF5,0xC6,
0xC6,0x98,0x58,0x18,0x60,0x20,0x42,0xE7,0xA5,0xC6,0x85,0xCC,0x8D,0x92,0x02,0xF0,
0xF7,0x78,0xA5,0xCF,0xF0,0x0C,0xA5,0xCE,0xAE,0x87,0x02,0xA0,0x00,0x84,0xCF,0x20,
0xA1,0xEA,0x20,0xCF,0xE5,0xC9,0x83,0xD0,0x10,0xA2,0x09,0x78,0x86,0xC6,0xBD,0xF3,
0xED,0x9D,0x76,0x02,0xCA,0xD0,0xF7,0xF0,0xCF,0xC9,0x0D,0xD0,0xC8,0xA4,0xD5,0x84,
0xD0,0xB1,0xD1,0xC9,0x20,0xD0,0x03,0x88,0xD0,0xF7,0xC8,0x84,0xC8,0xA0,0x00,0x8C,
0x92,0x02,0x84,0xD3,0x84,0xD4,0xA5,0xC9,0x30,0x1D,0xA6,0xD6,0x20,0x19,0xE7,0xE4,
0xC9,0xD0,0x14,0xD0,0x12,0xA5,0xCA,0x85,0xD3,0xC5,0xC8,0x90,0x0A,0xB0,0x42,0x98,
0x48,0x8A,0x48,0xA5,0xD0,0xF0,0x91,0xA4,0xD3,0xB1,0xD1,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0x85,0xD7,0x29,0x3F,0x06,0xD7,0x24,0xD7,0x10,0x02,0x09,0x80,0x90,0x04,
0xA6,0xD4,0xD0,0x04,0x70,0x02,0x09,0x40,0xE6,0xD3,0x20,0xB8,0xE6,0xC4,0xC8,0xD0,
0x17,0xA9,0x00,0x85,0xD0,0xA9,0x0D,0xA6,0x99,0xE0,0x03,0xF0,0x06,0xA6,0x9A,0xE0,
0x03,0xF0,0x03,0x20,0x42,0xE7,0xA9,0x0D,0x85,0xD7,0x68,0xAA,0x68,0xA8,0xA5,0xD7,
0xC9,0xDE,0xD0,0x02,0xA9,0xFF,0x18,0x60,0xC9,0x22,0xD0,0x08,0xA5,0xD4,0x49,0x01,
0x85,0xD4,0xA9,0x22,0x60,0x09,0x40,0xA6,0xC7,0xF0,0x02,0x09,0x80,0xA6,0xD8,0xF0,
0x02,0xC6,0xD8,0xAE,0x86,0x02,0x20,0xA1,0xEA,0x20,0xEA,0xE6,0x68,0xA8,0xA5,0xD8,
0xF0,0x02,0x46,0xD4,0x68,0xAA,0x68,0x18,0x58,0x60,0x20,0xFA,0xE8,0xE6,0xD3,0xA5,
0xD5,0xC5,0xD3,0xB0,0x37,0xC9,0x57,0xF0,0x2A,0xAD,0x92,0x02,0xF0,0x03,0x4C,0xF0,
0xE9,0xA6,0xD6,0xE0,0x17,0x90,0x07,0x20,0x75,0xE9,0xC6,0xD6,0xA6,0xD6,0x16,0xD9,
0x56,0xD9,0x4C,0x5B,0xED,0x69,0x16,0x85,0xD5,0xB5,0xD9,0x30,0x03,0xCA,0xD0,0xF9,
0x4C,0x7E,0xEA,0xC6,0xD6,0x20,0xC3,0xE8,0xA9,0x00,0x85,0xD3,0x60,0xA6,0xD6,0xD0,
0x06,0x86,0xD3,0x68,0x68,0xD0,0xA5,0xCA,0x86,0xD6,0x20,0x87,0xE5,0xA4,0xD5,0x84,
0xD3,0x60,0x48,0x85,0xD7,0x8A,0x48,0x98,0x48,0xA9,0x00,0x85,0xD0,0xA4,0xD3,0xA5,
0xD7,0x10,0x03,0x4C,0x00,0xE8,0xC9,0x0D,0xD0,0x03,0x4C,0xD8,0xE8,0xC9,0x20,0x90,
0x10,0xC9,0x60,0x90,0x04,0x29,0xDF,0xD0,0x02,0x29,0x3F,0x20,0xB8,0xE6,0x4C,0xC7,
0xE6,0xA6,0xD8,0xF0,0x03,0x4C,0xCB,0xE6,0xC9,0x14,0xD0,0x2E,0x98,0xD0,0x06,0x20,
0x2D,0xE7,0x4C,0x9F,0xE7,0x20,0xE8,0xE8,0x88,0x84,0xD3,0x20,0xB2,0xEA,0xC8,0xB1,
0xD1,0x88,0x91,0xD1,0xC8,0xB1,0xF3,0x88,0x91,0xF3,0xC8,0xC4,0xD5,0xD0,0xEF,0xA9,
0x20,0x91,0xD1,0xAD,0x86,0x02,0x91,0xF3,0x10,0x4D,0xA6,0xD4,0xF0,0x03,0x4C,0xCB,
0xE6,0xC9,0x12,0xD0,0x02,0x85,0xC7,0xC9,0x13,0xD0,0x03,0x20,0x81,0xE5,0xC9,0x1D,
0xD0,0x17,0xC8,0x20,0xFA,0xE8,0x84,0xD3,0x88,0xC4,0xD5,0x90,0x09,0xC6,0xD6,0x20,
0xC3,0xE8,0xA0,0x00,0x84,0xD3,0x4C,0xDC,0xE6,0xC9,0x11,0xD0,0x1D,0x18,0x98,0x69,
0x16,0xA8,0xE6,0xD6,0xC5,0xD5,0x90,0xEC,0xF0,0xEA,0xC6,0xD6,0xE9,0x16,0x90,0x04,
0x85,0xD3,0xD0,0xF8,0x20,0xC3,0xE8,0x4C,0xDC,0xE6,0x20,0x12,0xE9,0x4C,0x21,0xED,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0x29,0x7F,0xC9,0x7F,0xD0,0x02,0xA9,0x5E,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xC9,0x20,0x90,0x03,0x4C,0xC5,0xE6,0xC9,0x0D,0xD0,0x03,0x4C,0xD8,
0xE8,0xA6,0xD4,0xD0,0x3F,0xC9,0x14,0xD0,0x37,0xA4,0xD5,0xB1,0xD1,0xC9,0x20,0xD0,
0x04,0xC4,0xD3,0xD0,0x07,0xC0,0x57,0xF0,0x24,0x20,0xEE,0xE9,0xA4,0xD5,0x20,0xB2,
0xEA,0x88,0xB1,0xD1,0xC8,0x91,0xD1,0x88,0xB1,0xF3,0xC8,0x91,0xF3,0x88,0xC4,0xD3,
0xD0,0xEF,0xA9,0x20,0x91,0xD1,0xAD,0x86,0x02,0x91,0xF3,0xE6,0xD8,0x4C,0xDC,0xE6,
0xA6,0xD8,0xF0,0x05,0x09,0x40,0x4C,0xCB,0xE6,0xC9,0x11,0xD0,0x16,0xA6,0xD6,0xF0,
0x37,0xC6,0xD6,0xA5,0xD3,0x38,0xE9,0x16,0x90,0x04,0x85,0xD3,0x10,0x2A,0x20,0x87,
0xE5,0xD0,0x25,0xC9,0x12,0xD0,0x04,0xA9,0x00,0x85,0xC7,0xC9,0x1D,0xD0,0x12,0x98,
0xF0,0x09,0x20,0xE8,0xE8,0x88,0x84,0xD3,0x4C,0xDC,0xE6,0x20,0x2D,0xE7,0x4C,0xDC,
0xE6,0xC9,0x13,0xD0,0x06,0x20,0x5F,0xE5,0x4C,0xDC,0xE6,0x09,0x80,0x20,0x12,0xE9,
0x4C,0x30,0xED,0x46,0xC9,0xA6,0xD6,0xE8,0xE0,0x17,0xD0,0x03,0x20,0x75,0xE9,0xB5,
0xD9,0x10,0xF4,0x86,0xD6,0x4C,0x87,0xE5,0xA2,0x00,0x86,0xD8,0x86,0xC7,0x86,0xD4,
0x86,0xD3,0x20,0xC3,0xE8,0x4C,0xDC,0xE6,0xA2,0x04,0xA9,0x00,0xC5,0xD3,0xF0,0x07,
0x18,0x69,0x16,0xCA,0xD0,0xF6,0x60,0xC6,0xD6,0x60,0xA2,0x04,0xA9,0x15,0xC5,0xD3,
0xF0,0x07,0x18,0x69,0x16,0xCA,0xD0,0xF6,0x60,0xA6,0xD6,0xE0,0x17,0xF0,0x02,0xE6,
0xD6,0x60,0xA2,0x07,0xDD,0x21,0xE9,0xF0,0x04,0xCA,0x10,0xF8,0x60,0x8E,0x86,0x02,
0x60,0x90,0x05,0x1C,0x9F,0x9C,0x1E,0x1F,0x9E,0xEF,0xA1,0xDF,0xA6,0xE1,0xB1,0xE2,
0xB2,0xE3,0xB3,0xE4,0xB4,0xE5,0xB5,0xE6,0xB6,0xE7,0xB7,0xE8,0xB8,0xE9,0xB9,0xFA,
0xBA,0xFB,0xBB,0xFC,0xBC,0xEC,0xBD,0xFE,0xBE,0x84,0xBF,0xF7,0xC0,0xF8,0xDB,0xF9,
0xDD,0xEA,0xDE,0x5E,0xE0,0x5B,0xE1,0x5D,0xE2,0x40,0xB0,0x61,0xB1,0x78,0xDB,0x79,
0xDD,0x66,0xB6,0x77,0xC0,0x70,0xF0,0x71,0xF1,0x72,0xF2,0x73,0xF3,0x74,0xF4,0x75,
0xF5,0x76,0xF6,0x7D,0xFD,0xA5,0xAC,0x48,0xA5,0xAD,0x48,0xA5,0xAE,0x48,0xA5,0xAF,
0x48,0xA2,0xFF,0xC6,0xD6,0xC6,0xC9,0xC6,0xF2,0xE8,0x20,0x7E,0xEA,0xE0,0x16,0xB0,
0x0C,0xBD,0xFE,0xED,0x85,0xAC,0xB5,0xDA,0x20,0x56,0xEA,0x30,0xEC,0x20,0x8D,0xEA,
0xA2,0x00,0xB5,0xD9,0x29,0x7F,0xB4,0xDA,0x10,0x02,0x09,0x80,0x95,0xD9,0xE8,0xE0,
0x16,0xD0,0xEF,0xA5,0xEF,0x09,0x80,0x85,0xEF,0xA5,0xD9,0x10,0xC4,0xE6,0xD6,0xE6,
0xF2,0xA9,0xFB,0x8D,0x20,0x91,0xAD,0x21,0x91,0xC9,0xFE,0x08,0xA9,0xF7,0x8D,0x20,
0x91,0x28,0xD0,0x0B,0xA0,0x00,0xEA,0xCA,0xD0,0xFC,0x88,0xD0,0xF9,0x84,0xC6,0xA6,
0xD6,0x68,0x85,0xAF,0x68,0x85,0xAE,0x68,0x85,0xAD,0x68,0x85,0xAC,0x60,0xA6,0xD6,
0xE8,0xB5,0xD9,0x10,0xFB,0x86,0xF2,0xE0,0x16,0xF0,0x0D,0x90,0x0B,0x20,0x75,0xE9,
0xA6,0xF2,0xCA,0xC6,0xD6,0x4C,0x0E,0xE7,0xA5,0xAC,0x48,0xA5,0xAD,0x48,0xA5,0xAE,
0x48,0xA5,0xAF,0x48,0xA2,0x17,0xCA,0x20,0x7E,0xEA,0xE4,0xF2,0x90,0x0E,0xF0,0x0C,
0xBD,0xFC,0xED,0x85,0xAC,0xB5,0xD8,0x20,0x56,0xEA,0x30,0xEA,0x20,0x8D,0xEA,0xA2,
0x15,0xE4,0xF2,0x90,0x0F,0xB5,0xDA,0x29,0x7F,0xB4,0xD9,0x10,0x02,0x09,0x80,0x95,
0xDA,0xCA,0xD0,0xED,0xA6,0xF2,0x20,0x0E,0xE7,0x68,0x85,0xAF,0x68,0x85,0xAE,0x68,
0x85,0xAD,0x68,0x85,0xAC,0x60,0x29,0x03,0x0D,0x88,0x02,0x85,0xAD,0x20,0x6E,0xEA,
0xA0,0x15,0xB1,0xAC,0x91,0xD1,0xB1,0xAE,0x91,0xF3,0x88,0x10,0xF5,0x60,0x20,0xB2,
0xEA,0xA5,0xAC,0x85,0xAE,0xA5,0xAD,0x29,0x03,0x09,0x94,0x85,0xAF,0x60,0xBD,0xFD,
0xED,0x85,0xD1,0xB5,0xD9,0x29,0x03,0x0D,0x88,0x02,0x85,0xD2,0x60,0xA0,0x15,0x20,
0x7E,0xEA,0x20,0xB2,0xEA,0xA9,0x20,0x91,0xD1,0xA9,0x01,0x91,0xF3,0x88,0x10,0xF5,
0x60,0xA8,0xA9,0x02,0x85,0xCD,0x20,0xB2,0xEA,0x98,0xA4,0xD3,0x91,0xD1,0x8A,0x91,
0xF3,0x60,0xA5,0xD1,0x85,0xF3,0xA5,0xD2,0x29,0x03,0x09,0x94,0x85,0xF4,0x60,0x20,
0xEA,0xFF,0xA5,0xCC,0xD0,0x29,0xC6,0xCD,0xD0,0x25,0xA9,0x14,0x85,0xCD,0xA4,0xD3,
0x46,0xCF,0xAE,0x87,0x02,0xB1,0xD1,0xB0,0x11,0xE6,0xCF,0x85,0xCE,0x20,0xB2,0xEA,
0xB1,0xF3,0x8D,0x87,0x02,0xAE,0x86,0x02,0xA5,0xCE,0x49,0x80,0x20,0xAA,0xEA,0xAD,
0x1F,0x91,0x29,0x40,0xF0,0x0B,0xA0,0x00,0x84,0xC0,0xAD,0x1C,0x91,0x09,0x02,0xD0,
0x09,0xA5,0xC0,0xD0,0x0D,0xAD,0x1C,0x91,0x29,0xFD,0x2C,0x1E,0x91,0x70,0x03,0x8D,
0x1C,0x91,0x20,0x1E,0xEB,0x2C,0x24,0x91,0x68,0xA8,0x68,0xAA,0x68,0x40,0xA9,0x00,
0x8D,0x8D,0x02,0xA0,0x40,0x84,0xCB,0x8D,0x20,0x91,0xAE,0x21,0x91,0xE0,0xFF,0xF0,
0x5E,0xA9,0xFE,0x8D,0x20,0x91,0xA0,0x00,0xA9,0x5E,0x85,0xF5,0xA9,0xEC,0x85,0xF6,
0xA2,0x08,0xAD,0x21,0x91,0xCD,0x21,0x91,0xD0,0xF6,0x4A,0xB0,0x16,0x48,0xB1,0xF5,
0xC9,0x05,0xB0,0x0C,0xC9,0x03,0xF0,0x08,0x0D,0x8D,0x02,0x8D,0x8D,0x02,0x10,0x02,
0x84,0xCB,0x68,0xC8,0xC0,0x41,0xB0,0x09,0xCA,0xD0,0xDF,0x38,0x2E,0x20,0x91,0xD0,
0xCF,0x6C,0x8F,0x02,0xA4,0xCB,0xB1,0xF5,0xAA,0xC4,0xC5,0xF0,0x07,0xA0,0x10,0x8C,
0x8C,0x02,0xD0,0x36,0x29,0x7F,0x2C,0x8A,0x02,0x30,0x16,0x70,0x49,0xC9,0x7F,0xF0,
0x29,0xC9,0x14,0xF0,0x0C,0xC9,0x20,0xF0,0x08,0xC9,0x1D,0xF0,0x04,0xC9,0x11,0xD0,
0x35,0xAC,0x8C,0x02,0xF0,0x05,0xCE,0x8C,0x02,0xD0,0x2B,0xCE,0x8B,0x02,0xD0,0x26,
0xA0,0x04,0x8C,0x8B,0x02,0xA4,0xC6,0x88,0x10,0x1C,0xA4,0xCB,0x84,0xC5,0xAC,0x8D,
0x02,0x8C,0x8E,0x02,0xE0,0xFF,0xF0,0x0E,0x8A,0xA6,0xC6,0xEC,0x89,0x02,0xB0,0x06,
0x9D,0x77,0x02,0xE8,0x86,0xC6,0xA9,0xF7,0x8D,0x20,0x91,0x60,0xAD,0x8D,0x02,0xC9,
0x03,0xD0,0x2C,0xCD,0x8E,0x02,0xF0,0xEE,0xAD,0x91,0x02,0x30,0x56,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xAD,0x05,0x90,0x49,0x02,0x8D,0x05,0x90,0xEA,0xEA,0xEA,0xEA,0x4C,0x43,0xEC,0x0A,
0xC9,0x08,0x90,0x04,0xA9,0x06,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xAA,0xBD,0x46,0xEC,0x85,0xF5,0xBD,0x47,
0xEC,0x85,0xF6,0x4C,0x74,0xEB,0x5E,0xEC,0x9F,0xEC,0xE0,0xEC,0xA3,0xED,0x5E,0xEC,
0x9F,0xEC,0x69,0xED,0xA3,0xED,0x21,0xED,0x69,0xED,0x69,0xED,0xA3,0xED,0x31,0x33,
0x35,0x37,0x39,0x2B,0x5C,0x14,0x5F,0x57,0x52,0x59,0x49,0x50,0x2A,0x0D,0x04,0x41,
0x44,0x47,0x4A,0x4C,0x3B,0x1D,0x03,0x01,0x58,0x56,0x4E,0x2C,0x2F,0x11,0x20,0x5A,
0x43,0x42,0x4D,0x2E,0x01,0x85,0x02,0x53,0x46,0x48,0x4B,0x3A,0x3D,0x86,0x51,0x45,
0x54,0x55,0x4F,0x40,0x5E,0x87,0x32,0x34,0x36,0x38,0x30,0x2D,0x13,0x88,0xFF,0x21,
0x23,0x25,0x27,0x29,0xDB,0xA9,0x94,0x5F,0xD7,0xD2,0xD9,0xC9,0xD0,0xC0,0x8D,0x04,
0xC1,0xC4,0xC7,0xCA,0xCC,0x5D,0x9D,0x83,0x01,0xD8,0xD6,0xCE,0x3C,0x3F,0x91,0xA0,
0xDA,0xC3,0xC2,0xCD,0x3E,0x01,0x89,0x02,0xD3,0xC6,0xC8,0xCB,0x5B,0x3D,0x8A,0xD1,
0xC5,0xD4,0xD5,0xCF,0xBA,0xDE,0x8B,0x22,0x24,0x26,0x28,0x30,0xDD,0x93,0x8C,0xFF,
0x21,0x23,0x25,0x27,0x29,0xA6,0xA8,0x94,0x5F,0xB3,0xB2,0xB7,0xA2,0xAF,0xDF,0x8D,
0x04,0xB0,0xAC,0xA5,0xB5,0xB6,0x5D,0x9D,0x83,0x01,0xBD,0xBE,0xAA,0x3C,0x3F,0x91,
0xA0,0xAD,0xBC,0xBF,0xA7,0x3E,0x01,0x89,0x02,0xAE,0xBB,0xB4,0xA1,0x5B,0x3D,0x8A,
0xAB,0xB1,0xA3,0xB8,0xB9,0xA4,0xDE,0x8B,0x22,0x24,0x26,0x28,0x30,0xDC,0x93,0x8C,
0xFF,0xC9,0x0E,0xD0,0x0B,0xA9,0x02,0x0D,0x05,0x90,0x8D,0x05,0x90,0x4C,0xDC,0xE6,
0xC9,0x8E,0xD0,0x0B,0xA9,0xFD,0x2D,0x05,0x90,0x8D,0x05,0x90,0x4C,0xDC,0xE6,0xC9,
0x08,0xD0,0x0A,0xA9,0x80,0x0D,0x91,0x02,0x8D,0x91,0x02,0x30,0xEF,0xC9,0x09,0xD0,
0xEB,0xA9,0x7F,0x2D,0x91,0x02,0x8D,0x91,0x02,0x10,0xE1,0xE8,0xB5,0xD9,0x09,0x80,
0x95,0xD9,0xCA,0xA5,0xD5,0x18,0x4C,0x15,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x04,0xFF,0xFF,0xFF,0xFF,0xFF,0xE2,0x9D,0x83,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0x91,0xA0,0xFF,0xFF,0xFF,0xFF,0xEE,0x01,0x89,0x02,0xFF,0xFF,0xFF,0xFF,0xE1,
0xFD,0x8A,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xE0,0x8B,0xF2,0xF4,0xF6,0xFF,0xF0,0xED,
0x93,0x8C,0xFF,0x90,0x1C,0x9C,0x1F,0x12,0xFF,0xFF,0xFF,0x06,0xFF,0x12,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x05,0x9F,0x1E,0x9E,0x92,
0xFF,0xFF,0xFF,0xFF,0x0C,0x26,0x16,0x2E,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1B,0x4C,0x4F,0x41,0x44,0x0D,0x52,0x55,0x4E,0x0D,0x00,0x16,0x2C,
0x42,0x58,0x6E,0x84,0x9A,0xB0,0xC6,0xDC,0xF2,0x08,0x1E,0x34,0x4A,0x60,0x76,0x8C,
0xA2,0xB8,0xCE,0xE4,0x09,0x40,0x2C,0x09,0x20,0x20,0x60,0xF1,0x48,0x24,0x94,0x10,
0x0A,0x38,0x66,0xA3,0x20,0x49,0xEE,0x46,0x94,0x46,0xA3,0x68,0x85,0x95,0x20,0xA0,
0xE4,0xC9,0x3F,0xD0,0x03,0x20,0x84,0xEF,0xAD,0x1F,0x91,0x09,0x80,0x8D,0x1F,0x91,
0x20,0x8D,0xEF,0x20,0xA0,0xE4,0x20,0x96,0xEF,0x78,0x20,0xA0,0xE4,0x20,0xB2,0xE4,
0x4A,0xB0,0x61,0x20,0x84,0xEF,0x24,0xA3,0x10,0x0C,0x20,0xB2,0xE4,0x4A,0x90,0xFA,
0x20,0xB2,0xE4,0x4A,0xB0,0xFA,0x20,0xB2,0xE4,0x4A,0x90,0xFA,0x20,0x8D,0xEF,0xA9,
0x08,0x85,0xA5,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0x4A,0x90,0x38,0x66,
0x95,0xB0,0x05,0x20,0xA9,0xE4,0xD0,0x03,0x20,0xA0,0xE4,0x20,0x84,0xEF,0xEA,0xEA,
0xEA,0xEA,0xAD,0x2C,0x91,0x29,0xDF,0x09,0x02,0x8D,0x2C,0x91,0xC6,0xA5,0xD0,0xD3,
0xA9,0x04,0x8D,0x29,0x91,0xAD,0x2D,0x91,0x29,0x20,0xD0,0x0B,0x20,0xB2,0xE4,0x4A,
0xB0,0xF3,0x58,0x60,0xA9,0x80,0x2C,0xA9,0x03,0x20,0x6A,0xFE,0x58,0x18,0x90,0x49,
0x85,0x95,0x20,0x40,0xEE,0xAD,0x1F,0x91,0x29,0x7F,0x8D,0x1F,0x91,0x60,0x85,0x95,
0x20,0x40,0xEE,0x78,0x20,0xA9,0xE4,0x20,0xC5,0xEE,0x20,0x84,0xEF,0x20,0xB2,0xE4,
0xB0,0xFB,0x58,0x60,0x24,0x94,0x30,0x05,0x38,0x66,0x94,0xD0,0x05,0x48,0x20,0x49,
0xEE,0x68,0x85,0x95,0x18,0x60,0x20,0x8D,0xEF,0xAD,0x1F,0x91,0x09,0x80,0x8D,0x1F,
0x91,0xA9,0x5F,0x2C,0xA9,0x3F,0x20,0x1C,0xEE,0x20,0xC5,0xEE,0x8A,0xA2,0x0B,0xCA,
0xD0,0xFD,0xAA,0x20,0x84,0xEF,0x4C,0xA0,0xE4,0x78,0xA9,0x00,0x85,0xA5,0x20,0x84,
0xEF,0x20,0xB2,0xE4,0x90,0xFB,0x20,0xA0,0xE4,0xA9,0x01,0x8D,0x29,0x91,0xAD,0x2D,
0x91,0x29,0x20,0xD0,0x07,0x20,0xB2,0xE4,0xB0,0xF4,0x90,0x18,0xA5,0xA5,0xF0,0x05,
0xA9,0x02,0x4C,0xB9,0xEE,0x20,0xA9,0xE4,0x20,0x0C,0xEF,0xA9,0x40,0x20,0x6A,0xFE,
0xE6,0xA5,0xD0,0xD5,0xA9,0x08,0x85,0xA5,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,
0x4A,0x90,0xF5,0x4A,0x66,0xA4,0xAD,0x1F,0x91,0xCD,0x1F,0x91,0xD0,0xF8,0x4A,0xB0,
0xF5,0xC6,0xA5,0xD0,0xE3,0x20,0xA9,0xE4,0xA5,0x90,0xF0,0x03,0x20,0x0C,0xEF,0xA5,
0xA4,0x58,0x18,0x60,0xAD,0x2C,0x91,0x29,0xFD,0x8D,0x2C,0x91,0x60,0xAD,0x2C,0x91,
0x09,0x02,0x8D,0x2C,0x91,0x60,0xA9,0x04,0x8D,0x29,0x91,0xAD,0x2D,0x91,0x29,0x20,
0xF0,0xF9,0x60,0xA5,0xB4,0xF0,0x47,0x30,0x3F,0x46,0xB6,0xA2,0x00,0x90,0x01,0xCA,
0x8A,0x45,0xBD,0x85,0xBD,0xC6,0xB4,0xF0,0x06,0x8A,0x29,0x20,0x85,0xB5,0x60,0xA9,
0x20,0x2C,0x94,0x02,0xF0,0x14,0x30,0x1C,0x70,0x14,0xA5,0xBD,0xD0,0x01,0xCA,0xC6,
0xB4,0xAD,0x93,0x02,0x10,0xE3,0xC6,0xB4,0xD0,0xDF,0xE6,0xB4,0xD0,0xF0,0xA5,0xBD,
0xF0,0xED,0xD0,0xEA,0x70,0xE9,0x50,0xE6,0xE6,0xB4,0xA2,0xFF,0xD0,0xCB,0xAD,0x94,
0x02,0x4A,0x90,0x07,0x2C,0x20,0x91,0x10,0x1D,0x50,0x1E,0xA9,0x00,0x85,0xBD,0x85,
0xB5,0xAE,0x98,0x02,0x86,0xB4,0xAC,0x9D,0x02,0xCC,0x9E,0x02,0xF0,0x13,0xB1,0xF9,
0x85,0xB6,0xEE,0x9D,0x02,0x60,0xA9,0x40,0x2C,0xA9,0x10,0x0D,0x97,0x02,0x8D,0x97,
0x02,0xA9,0x40,0x8D,0x1E,0x91,0x60,0xA2,0x09,0xA9,0x20,0x2C,0x93,0x02,0xF0,0x01,
0xCA,0x50,0x02,0xCA,0xCA,0x60,0xA6,0xA9,0xD0,0x2E,0xC6,0xA8,0xF0,0x31,0x30,0x0D,
0xA5,0xA7,0x45,0xAB,0x85,0xAB,0x46,0xA7,0x66,0xAA,0x60,0xC6,0xA8,0xA5,0xA7,0xF0,
0x62,0xAD,0x93,0x02,0x0A,0xA9,0x01,0x65,0xA8,0xD0,0xEF,0xA9,0x90,0x8D,0x1E,0x91,
0x85,0xA9,0xA9,0x20,0x8D,0x1E,0x91,0x60,0xA5,0xA7,0xD0,0xEF,0x85,0xA9,0x60,0xAC,
0x9B,0x02,0xC8,0xCC,0x9C,0x02,0xF0,0x2A,0x8C,0x9B,0x02,0x88,0xA5,0xAA,0xAE,0x98,
0x02,0xE0,0x09,0xF0,0x04,0x4A,0xE8,0xD0,0xF8,0x91,0xF7,0xA9,0x20,0x2C,0x94,0x02,
0xF0,0xB9,0x30,0xB6,0xA5,0xA7,0x45,0xAB,0xF0,0x03,0x70,0xAE,0x2C,0x50,0xAB,0xA9,
0x01,0x2C,0xA9,0x04,0x2C,0xA9,0x80,0x2C,0xA9,0x02,0x0D,0x97,0x02,0x8D,0x97,0x02,
0x4C,0x5B,0xF0,0xA5,0xAA,0xD0,0xF1,0xF0,0xEC,0x4C,0x96,0xF7,0x85,0x9A,0xAD,0x94,
0x02,0x4A,0x90,0x27,0xA9,0x02,0x2C,0x10,0x91,0x10,0x1D,0xD0,0x1E,0xAD,0x1E,0x91,
0x29,0x30,0xD0,0xF9,0x2C,0x10,0x91,0x70,0xFB,0xAD,0x10,0x91,0x09,0x02,0x8D,0x10,
0x91,0x2C,0x10,0x91,0x70,0x05,0x30,0xF9,0x20,0x16,0xF0,0x18,0x60,0xAC,0x9E,0x02,
0xC8,0xCC,0x9D,0x02,0xF0,0xF7,0x8C,0x9E,0x02,0x88,0x91,0xF9,0x2C,0x1E,0x91,0x50,
0x01,0x60,0xAD,0x99,0x02,0x8D,0x14,0x91,0xAD,0x9A,0x02,0x8D,0x15,0x91,0xA9,0xC0,
0x8D,0x1E,0x91,0x4C,0xEE,0xEF,0x85,0x99,0xAD,0x94,0x02,0x4A,0x90,0x28,0x29,0x08,
0xF0,0x24,0xA9,0x02,0x2C,0x10,0x91,0x10,0xBF,0xF0,0x19,0x2C,0x1E,0x91,0x70,0xFB,
0xAD,0x10,0x91,0x29,0xFD,0x8D,0x10,0x91,0xAD,0x10,0x91,0x29,0x04,0xF0,0xF9,0xA9,
0x90,0x8D,0x1E,0x91,0x18,0x60,0xAD,0x1E,0x91,0x29,0x30,0xF0,0xF2,0x18,0x60,0xAC,
0x9C,0x02,0xCC,0x9B,0x02,0xF0,0x06,0xB1,0xF7,0xEE,0x9C,0x02,0x60,0xA9,0x00,0x60,
0x48,0xAD,0x1E,0x91,0xF0,0x0C,0xAD,0x1E,0x91,0x29,0x60,0xD0,0xF9,0xA9,0x10,0x8D,
0x1E,0x91,0x68,0x60,0x0D,0x49,0x2F,0x4F,0x20,0x45,0x52,0x52,0x4F,0x52,0x20,0xA3,
0x0D,0x53,0x45,0x41,0x52,0x43,0x48,0x49,0x4E,0x47,0xA0,0x46,0x4F,0x52,0xA0,0x0D,
0x50,0x52,0x45,0x53,0x53,0x20,0x50,0x4C,0x41,0x59,0x20,0x4F,0x4E,0x20,0x54,0x41,
0x50,0xC5,0x50,0x52,0x45,0x53,0x53,0x20,0x52,0x45,0x43,0x4F,0x52,0x44,0x20,0x26,
0x20,0x50,0x4C,0x41,0x59,0x20,0x4F,0x4E,0x20,0x54,0x41,0x50,0xC5,0x0D,0x4C,0x4F,
0x41,0x44,0x49,0x4E,0xC7,0x0D,0x53,0x41,0x56,0x49,0x4E,0x47,0xA0,0x0D,0x56,0x45,
0x52,0x49,0x46,0x59,0x49,0x4E,0xC7,0x0D,0x46,0x4F,0x55,0x4E,0x44,0xA0,0x0D,0x4F,
0x4B,0x8D,0x24,0x9D,0x10,0x0D,0xB9,0x74,0xF1,0x08,0x29,0x7F,0x20,0xD2,0xFF,0xC8,
0x28,0x10,0xF3,0x18,0x60,0xA5,0x99,0xD0,0x08,0xA5,0xC6,0xF0,0x6D,0x78,0x4C,0xCF,
0xE5,0xC9,0x02,0xD0,0x18,0x84,0x97,0x20,0x4F,0xF1,0xA4,0x97,0x18,0x60,0xA5,0x99,
0xD0,0x0B,0xA5,0xD3,0x85,0xCA,0xA5,0xD6,0x85,0xC9,0x4C,0x4F,0xE6,0xC9,0x03,0xD0,
0x09,0x85,0xD0,0xA5,0xD5,0x85,0xC8,0x4C,0x4F,0xE6,0xB0,0x38,0xC9,0x02,0xF0,0x3F,
0x86,0x97,0x20,0x50,0xF2,0xB0,0x16,0x48,0x20,0x50,0xF2,0xB0,0x0D,0xD0,0x05,0xA9,
0x40,0x20,0x6A,0xFE,0xC6,0xA6,0xA6,0x97,0x68,0x60,0xAA,0x68,0x8A,0xA6,0x97,0x60,
0x20,0x8A,0xF8,0xD0,0x0B,0x20,0xC0,0xF8,0xB0,0x11,0xA9,0x00,0x85,0xA6,0xF0,0xF0,
0xB1,0xB2,0x18,0x60,0xA5,0x90,0xF0,0x04,0xA9,0x0D,0x18,0x60,0x4C,0x19,0xEF,0x20,
0x05,0xF2,0xB0,0x05,0xC9,0x00,0xF0,0xF7,0x18,0x60,0x48,0xA5,0x9A,0xC9,0x03,0xD0,
0x04,0x68,0x4C,0x42,0xE7,0x90,0x04,0x68,0x4C,0xE4,0xEE,0xC9,0x02,0xF0,0x2A,0x68,
0x85,0x9E,0x48,0x8A,0x48,0x98,0x48,0x20,0x8A,0xF8,0xD0,0x0E,0x20,0xE3,0xF8,0xB0,
0x0E,0xA9,0x02,0xA0,0x00,0x91,0xB2,0xC8,0x84,0xA6,0xA5,0x9E,0x91,0xB2,0x18,0x68,
0xA8,0x68,0xAA,0x68,0x90,0x02,0xA9,0x00,0x60,0x68,0x86,0x97,0x84,0x9E,0x20,0xED,
0xF0,0xA6,0x97,0xA4,0x9E,0x18,0x60,0x20,0xCF,0xF3,0xF0,0x03,0x4C,0x84,0xF7,0x20,
0xDF,0xF3,0xA5,0xBA,0xF0,0x16,0xC9,0x03,0xF0,0x12,0xB0,0x14,0xC9,0x02,0xD0,0x03,
0x4C,0x16,0xF1,0xA6,0xB9,0xE0,0x60,0xF0,0x03,0x4C,0x8D,0xF7,0x85,0x99,0x18,0x60,
0xAA,0x20,0x14,0xEE,0xA5,0xB9,0x10,0x06,0x20,0xD3,0xEE,0x4C,0x01,0xF3,0x20,0xCE,
0xEE,0x8A,0x24,0x90,0x10,0xE6,0x4C,0x8A,0xF7,0x20,0xCF,0xF3,0xF0,0x03,0x4C,0x84,
0xF7,0x20,0xDF,0xF3,0xA5,0xBA,0xD0,0x03,0x4C,0x90,0xF7,0xC9,0x03,0xF0,0x0F,0xB0,
0x11,0xC9,0x02,0xD0,0x03,0x4C,0xBC,0xF0,0xA6,0xB9,0xE0,0x60,0xF0,0xEA,0x85,0x9A,
0x18,0x60,0xAA,0x20,0x17,0xEE,0xA5,0xB9,0x10,0x05,0x20,0xC5,0xEE,0xD0,0x03,0x20,
0xC0,0xEE,0x8A,0x24,0x90,0x10,0xE7,0x4C,0x8A,0xF7,0x20,0xD4,0xF3,0xF0,0x02,0x18,
0x60,0x20,0xDF,0xF3,0x8A,0x48,0xA5,0xBA,0xF0,0x57,0xC9,0x03,0xF0,0x53,0xB0,0x4E,
0xC9,0x02,0xD0,0x29,0x68,0x20,0xB2,0xF3,0xA9,0x7D,0x8D,0x1E,0x91,0xA9,0x06,0x8D,
0x10,0x91,0xA9,0xEE,0x8D,0x1C,0x91,0x20,0x75,0xFE,0xA5,0xF8,0xF0,0x01,0xC8,0xA5,
0xFA,0xF0,0x01,0xC8,0xA9,0x00,0x85,0xF8,0x85,0xFA,0x4C,0x3C,0xF5,0xA5,0xB9,0x29,
0x0F,0xF0,0x1E,0x20,0x4D,0xF8,0xA9,0x00,0x20,0x90,0xF2,0x4C,0xCF,0xE4,0xB0,0x2E,
0xA5,0xB9,0xC9,0x62,0xD0,0x0B,0xA9,0x05,0x20,0xE7,0xF7,0x4C,0xB1,0xF3,0x20,0xDA,
0xF6,0x68,0xAA,0xC6,0x98,0xE4,0x98,0xF0,0x14,0xA4,0x98,0xB9,0x59,0x02,0x9D,0x59,
0x02,0xB9,0x63,0x02,0x9D,0x63,0x02,0xB9,0x6D,0x02,0x9D,0x6D,0x02,0x18,0x60,0xA9,
0x00,0x85,0x90,0x8A,0xA6,0x98,0xCA,0x30,0x15,0xDD,0x59,0x02,0xD0,0xF8,0x60,0xBD,
0x59,0x02,0x85,0xB8,0xBD,0x63,0x02,0x85,0xBA,0xBD,0x6D,0x02,0x85,0xB9,0x60,0xA9,
0x00,0x85,0x98,0xA2,0x03,0xE4,0x9A,0xB0,0x03,0x20,0x04,0xEF,0xE4,0x99,0xB0,0x03,
0x20,0xF6,0xEE,0x86,0x9A,0xA9,0x00,0x85,0x99,0x60,0xA6,0xB8,0xD0,0x03,0x4C,0x8D,
0xF7,0x20,0xCF,0xF3,0xD0,0x03,0x4C,0x81,0xF7,0xA6,0x98,0xE0,0x0A,0x90,0x03,0x4C,
0x7E,0xF7,0xE6,0x98,0xA5,0xB8,0x9D,0x59,0x02,0xA5,0xB9,0x09,0x60,0x85,0xB9,0x9D,
0x6D,0x02,0xA5,0xBA,0x9D,0x63,0x02,0xF0,0x5A,0xC9,0x03,0xF0,0x56,0x90,0x05,0x20,
0x95,0xF4,0x90,0x4F,0xC9,0x02,0xD0,0x03,0x4C,0xC7,0xF4,0x20,0x4D,0xF8,0xB0,0x03,
0x4C,0x96,0xF7,0xA5,0xB9,0x29,0x0F,0xD0,0x1F,0x20,0x94,0xF8,0xB0,0x36,0x20,0x47,
0xF6,0xA5,0xB7,0xF0,0x0A,0x20,0x67,0xF8,0x90,0x18,0xF0,0x28,0x4C,0x87,0xF7,0x20,
0xAF,0xF7,0xF0,0x20,0x90,0x0C,0xB0,0xF4,0x20,0xB7,0xF8,0xB0,0x17,0xA9,0x04,0x20,
0xE7,0xF7,0xA9,0xBF,0xA4,0xB9,0xC0,0x60,0xF0,0x07,0xA0,0x00,0xA9,0x02,0x91,0xB2,
0x98,0x85,0xA6,0x18,0x60,0xA5,0xB9,0x30,0x2C,0xA4,0xB7,0xF0,0x28,0xA5,0xBA,0x20,
0x17,0xEE,0xA5,0xB9,0x09,0xF0,0x20,0xC0,0xEE,0xA5,0x90,0x10,0x05,0x68,0x68,0x4C,
0x8A,0xF7,0xA5,0xB7,0xF0,0x0C,0xA0,0x00,0xB1,0xBB,0x20,0xE4,0xEE,0xC8,0xC4,0xB7,
0xD0,0xF6,0x20,0x04,0xEF,0x18,0x60,0xA9,0x06,0x8D,0x12,0x91,0x8D,0x10,0x91,0xA9,
0xEE,0x8D,0x1C,0x91,0xA0,0x00,0x8C,0x97,0x02,0xC4,0xB7,0xF0,0x0A,0xB1,0xBB,0x99,
0x93,0x02,0xC8,0xC0,0x04,0xD0,0xF2,0x20,0x27,0xF0,0x8E,0x98,0x02,0xAD,0x93,0x02,
0x29,0x0F,0xD0,0x00,0x0A,0xAA,0xBD,0x5A,0xFF,0x0A,0xA8,0xBD,0x5B,0xFF,0x2A,0x48,
0x98,0x69,0xC8,0x8D,0x99,0x02,0x68,0x69,0x00,0x8D,0x9A,0x02,0xAD,0x94,0x02,0x4A,
0x90,0x09,0xAD,0x20,0x91,0x0A,0xB0,0x03,0x4C,0x16,0xF0,0xAD,0x9B,0x02,0x8D,0x9C,
0x02,0xAD,0x9E,0x02,0x8D,0x9D,0x02,0x20,0x75,0xFE,0xA5,0xF8,0xD0,0x05,0x88,0x84,
0xF8,0x86,0xF7,0xA5,0xFA,0xD0,0x05,0x88,0x84,0xFA,0x86,0xF9,0x38,0xA9,0xF0,0x4C,
0x7B,0xFE,0x86,0xC3,0x84,0xC4,0x6C,0x30,0x03,0x85,0x93,0xA9,0x00,0x85,0x90,0xA5,
0xBA,0xD0,0x03,0x4C,0x96,0xF7,0xC9,0x03,0xF0,0xF9,0x90,0x6E,0xA4,0xB7,0xD0,0x03,
0x4C,0x93,0xF7,0x20,0xBC,0xE4,0xA9,0x60,0x85,0xB9,0x20,0x95,0xF4,0xA5,0xBA,0x20,
0x14,0xEE,0xA5,0xB9,0x20,0xCE,0xEE,0x20,0x19,0xEF,0x85,0xAE,0xA5,0x90,0x4A,0x4A,
0xB0,0x45,0x20,0x19,0xEF,0x85,0xAF,0x20,0xC1,0xE4,0xA9,0xFD,0x25,0x90,0x85,0x90,
0x20,0xE1,0xFF,0xD0,0x03,0x4C,0xCB,0xF6,0x20,0x19,0xEF,0xAA,0xA5,0x90,0x4A,0x4A,
0xB0,0xE8,0x8A,0xA4,0x93,0xF0,0x0C,0xA0,0x00,0xD1,0xAE,0xF0,0x08,0xA9,0x10,0x20,
0x6A,0xFE,0x2C,0x91,0xAE,0xE6,0xAE,0xD0,0x02,0xE6,0xAF,0x24,0x90,0x50,0xCB,0x20,
0xF6,0xEE,0x20,0xDA,0xF6,0x90,0x7A,0x4C,0x87,0xF7,0xC9,0x02,0xD0,0x03,0x4C,0xB9,
0xF0,0x20,0x4D,0xF8,0xB0,0x03,0x4C,0x96,0xF7,0x20,0x94,0xF8,0xB0,0x68,0x20,0x47,
0xF6,0xA5,0xB7,0xF0,0x09,0x20,0x67,0xF8,0x90,0x0B,0xF0,0x5A,0xB0,0xD9,0x20,0xAF,
0xF7,0xF0,0x53,0xB0,0xD2,0xA5,0x90,0x29,0x10,0x38,0xD0,0x4A,0xE0,0x01,0xF0,0x11,
0xE0,0x03,0xD0,0xDD,0xA0,0x01,0xB1,0xB2,0x85,0xC3,0xC8,0xB1,0xB2,0x85,0xC4,0xB0,
0x04,0xA5,0xB9,0xD0,0xEF,0xA0,0x03,0xB1,0xB2,0xA0,0x01,0xF1,0xB2,0xAA,0xA0,0x04,
0xB1,0xB2,0xA0,0x02,0xF1,0xB2,0xA8,0x18,0x8A,0x65,0xC3,0x85,0xAE,0x98,0x65,0xC4,
0x85,0xAF,0xA5,0xC3,0x85,0xC1,0xA5,0xC4,0x85,0xC2,0x20,0x6A,0xF6,0x20,0xC9,0xF8,
0x24,0x18,0xA6,0xAE,0xA4,0xAF,0x60,0xA5,0x9D,0x10,0x1E,0xA0,0x0C,0x20,0xE6,0xF1,
0xA5,0xB7,0xF0,0x15,0xA0,0x17,0x20,0xE6,0xF1,0xA4,0xB7,0xF0,0x0C,0xA0,0x00,0xB1,
0xBB,0x20,0xD2,0xFF,0xC8,0xC4,0xB7,0xD0,0xF6,0x60,0xA0,0x49,0xA5,0x93,0xF0,0x02,
0xA0,0x59,0x4C,0xE2,0xF1,0x86,0xAE,0x84,0xAF,0xAA,0xB5,0x00,0x85,0xC1,0xB5,0x01,
0x85,0xC2,0x6C,0x32,0x03,0xA5,0xBA,0xD0,0x03,0x4C,0x96,0xF7,0xC9,0x03,0xF0,0xF9,
0x90,0x5F,0xA9,0x61,0x85,0xB9,0xA4,0xB7,0xD0,0x03,0x4C,0x93,0xF7,0x20,0x95,0xF4,
0x20,0x28,0xF7,0xA5,0xBA,0x20,0x17,0xEE,0xA5,0xB9,0x20,0xC0,0xEE,0xA0,0x00,0x20,
0xD2,0xFB,0xA5,0xAC,0x20,0xE4,0xEE,0xA5,0xAD,0x20,0xE4,0xEE,0x20,0x11,0xFD,0xB0,
0x16,0xB1,0xAC,0x20,0xE4,0xEE,0x20,0xE1,0xFF,0xD0,0x07,0x20,0xDA,0xF6,0xA9,0x00,
0x38,0x60,0x20,0x1B,0xFD,0xD0,0xE5,0x20,0x04,0xEF,0x24,0xB9,0x30,0x11,0xA5,0xBA,
0x20,0x17,0xEE,0xA5,0xB9,0x29,0xEF,0x09,0xE0,0x20,0xC0,0xEE,0x20,0x04,0xEF,0x18,
0x60,0xC9,0x02,0xD0,0x03,0x4C,0xB9,0xF0,0x20,0x4D,0xF8,0x90,0x8C,0x20,0xB7,0xF8,
0xB0,0x25,0x20,0x28,0xF7,0xA2,0x03,0xA5,0xB9,0x29,0x01,0xD0,0x02,0xA2,0x01,0x8A,
0x20,0xE7,0xF7,0xB0,0x12,0x20,0xE6,0xF8,0xB0,0x0D,0xA5,0xB9,0x29,0x02,0xF0,0x06,
0xA9,0x05,0x20,0xE7,0xF7,0x24,0x18,0x60,0xA5,0x9D,0x10,0xFB,0xA0,0x51,0x20,0xE6,
0xF1,0x4C,0x59,0xF6,0xA2,0x00,0xE6,0xA2,0xD0,0x06,0xE6,0xA1,0xD0,0x02,0xE6,0xA0,
0x38,0xA5,0xA2,0xE9,0x01,0xA5,0xA1,0xE9,0x1A,0xA5,0xA0,0xE9,0x4F,0x90,0x06,0x86,
0xA0,0x86,0xA1,0x86,0xA2,0xAD,0x2F,0x91,0xCD,0x2F,0x91,0xD0,0xF8,0x85,0x91,0x60,
0x78,0xA5,0xA2,0xA6,0xA1,0xA4,0xA0,0x78,0x85,0xA2,0x86,0xA1,0x84,0xA0,0x58,0x60,
0xA5,0x91,0xC9,0xFE,0xD0,0x07,0x08,0x20,0xCC,0xFF,0x85,0xC6,0x28,0x60,0xA9,0x01,
0x2C,0xA9,0x02,0x2C,0xA9,0x03,0x2C,0xA9,0x04,0x2C,0xA9,0x05,0x2C,0xA9,0x06,0x2C,
0xA9,0x07,0x2C,0xA9,0x08,0x2C,0xA9,0x09,0x48,0x20,0xCC,0xFF,0xA0,0x00,0x24,0x9D,
0x50,0x0A,0x20,0xE6,0xF1,0x68,0x48,0x09,0x30,0x20,0xD2,0xFF,0x68,0x38,0x60,0xA5,
0x93,0x48,0x20,0xC0,0xF8,0x68,0x85,0x93,0xB0,0x2C,0xA0,0x00,0xB1,0xB2,0xC9,0x05,
0xF0,0x24,0xC9,0x01,0xF0,0x08,0xC9,0x03,0xF0,0x04,0xC9,0x04,0xD0,0xE1,0xAA,0x24,
0x9D,0x10,0x11,0xA0,0x63,0x20,0xE6,0xF1,0xA0,0x05,0xB1,0xB2,0x20,0xD2,0xFF,0xC8,
0xC0,0x15,0xD0,0xF6,0x18,0x88,0x60,0x85,0x9E,0x20,0x4D,0xF8,0x90,0x5E,0xA5,0xC2,
0x48,0xA5,0xC1,0x48,0xA5,0xAF,0x48,0xA5,0xAE,0x48,0xA0,0xBF,0xA9,0x20,0x91,0xB2,
0x88,0xD0,0xFB,0xA5,0x9E,0x91,0xB2,0xC8,0xA5,0xC1,0x91,0xB2,0xC8,0xA5,0xC2,0x91,
0xB2,0xC8,0xA5,0xAE,0x91,0xB2,0xC8,0xA5,0xAF,0x91,0xB2,0xC8,0x84,0x9F,0xA0,0x00,
0x84,0x9E,0xA4,0x9E,0xC4,0xB7,0xF0,0x0C,0xB1,0xBB,0xA4,0x9F,0x91,0xB2,0xE6,0x9E,
0xE6,0x9F,0xD0,0xEE,0x20,0x54,0xF8,0xA9,0x69,0x85,0xAB,0x20,0xEA,0xF8,0xA8,0x68,
0x85,0xAE,0x68,0x85,0xAF,0x68,0x85,0xC1,0x68,0x85,0xC2,0x98,0x60,0xA6,0xB2,0xA4,
0xB3,0xC0,0x02,0x60,0x20,0x4D,0xF8,0x8A,0x85,0xC1,0x18,0x69,0xC0,0x85,0xAE,0x98,
0x85,0xC2,0x69,0x00,0x85,0xAF,0x60,0x20,0xAF,0xF7,0xB0,0x1D,0xA0,0x05,0x84,0x9F,
0xA0,0x00,0x84,0x9E,0xC4,0xB7,0xF0,0x10,0xB1,0xBB,0xA4,0x9F,0xD1,0xB2,0xD0,0xE7,
0xE6,0x9E,0xE6,0x9F,0xA4,0x9E,0xD0,0xEC,0x18,0x60,0x20,0x4D,0xF8,0xE6,0xA6,0xA4,
0xA6,0xC0,0xC0,0x60,0x20,0xAB,0xF8,0xF0,0x1C,0xA0,0x1B,0x20,0xE6,0xF1,0x20,0x4B,
0xF9,0x20,0xAB,0xF8,0xD0,0xF8,0xA0,0x6A,0x4C,0xE6,0xF1,0xA9,0x40,0x2C,0x1F,0x91,
0xD0,0x03,0x2C,0x1F,0x91,0x18,0x60,0x20,0xAB,0xF8,0xF0,0xF9,0xA0,0x2E,0xD0,0xDB,
0xA9,0x00,0x85,0x90,0x85,0x93,0x20,0x54,0xF8,0x20,0x94,0xF8,0xB0,0x1F,0x78,0xA9,
0x00,0x85,0xAA,0x85,0xB4,0x85,0xB0,0x85,0x9E,0x85,0x9F,0x85,0x9C,0xA9,0x82,0xA2,
0x0E,0xD0,0x11,0x20,0x54,0xF8,0xA9,0x14,0x85,0xAB,0x20,0xB7,0xF8,0xB0,0x68,0x78,
0xA9,0xA0,0xA2,0x08,0xA0,0x7F,0x8C,0x2E,0x91,0x8D,0x2E,0x91,0x20,0x60,0xF1,0xAD,
0x14,0x03,0x8D,0x9F,0x02,0xAD,0x15,0x03,0x8D,0xA0,0x02,0x20,0xFB,0xFC,0xA9,0x02,
0x85,0xBE,0x20,0xDB,0xFB,0xAD,0x1C,0x91,0x29,0xFD,0x09,0x0C,0x8D,0x1C,0x91,0x85,
0xC0,0xA2,0xFF,0xA0,0xFF,0x88,0xD0,0xFD,0xCA,0xD0,0xF8,0x8D,0x29,0x91,0x58,0xAD,
0xA0,0x02,0xCD,0x15,0x03,0x18,0xF0,0x1F,0x20,0x4B,0xF9,0xAD,0x2D,0x91,0x29,0x40,
0xF0,0xED,0xAD,0x14,0x91,0x20,0x34,0xF7,0x4C,0x2F,0xF9,0x20,0xE1,0xFF,0x18,0xD0,
0x0B,0x20,0xCF,0xFC,0x38,0x68,0x68,0xA9,0x00,0x8D,0xA0,0x02,0x60,0x86,0xB1,0xA5,
0xB0,0x0A,0x0A,0x18,0x65,0xB0,0x18,0x65,0xB1,0x85,0xB1,0xA9,0x00,0x24,0xB0,0x30,
0x01,0x2A,0x06,0xB1,0x2A,0x06,0xB1,0x2A,0xAA,0xAD,0x28,0x91,0xC9,0x15,0x90,0xF9,
0x65,0xB1,0x8D,0x24,0x91,0x8A,0x6D,0x29,0x91,0x8D,0x25,0x91,0x58,0x60,0xAE,0x29,
0x91,0xA0,0xFF,0x98,0xED,0x28,0x91,0xEC,0x29,0x91,0xD0,0xF2,0x86,0xB1,0xAA,0x8C,
0x28,0x91,0x8C,0x29,0x91,0x98,0xE5,0xB1,0x86,0xB1,0x4A,0x66,0xB1,0x4A,0x66,0xB1,
0xA5,0xB0,0x18,0x69,0x3C,0x2C,0x21,0x91,0xC5,0xB1,0xB0,0x4A,0xA6,0x9C,0xF0,0x03,
0x4C,0xAD,0xFA,0xA6,0xA3,0x30,0x1B,0xA2,0x00,0x69,0x30,0x65,0xB0,0xC5,0xB1,0xB0,
0x1C,0xE8,0x69,0x26,0x65,0xB0,0xC5,0xB1,0xB0,0x17,0x69,0x2C,0x65,0xB0,0xC5,0xB1,
0x90,0x03,0x4C,0x60,0xFA,0xA5,0xB4,0xF0,0x1D,0x85,0xA8,0xD0,0x19,0xE6,0xA9,0xB0,
0x02,0xC6,0xA9,0x38,0xE9,0x13,0xE5,0xB1,0x65,0x92,0x85,0x92,0xA5,0xA4,0x49,0x01,
0x85,0xA4,0xF0,0x21,0x86,0xD7,0xA5,0xB4,0xF0,0x18,0x2C,0x2D,0x91,0x50,0x13,0xA9,
0x00,0x85,0xA4,0xA5,0xA3,0x10,0x30,0x30,0xC9,0xA2,0xA6,0x20,0x5D,0xF9,0xA5,0x9B,
0xD0,0xC3,0x4C,0x56,0xFF,0xA5,0x92,0xF0,0x07,0x30,0x03,0xC6,0xB0,0x2C,0xE6,0xB0,
0xA9,0x00,0x85,0x92,0xE4,0xD7,0xD0,0x0F,0x8A,0xD0,0xAA,0xA5,0xA9,0x30,0xC7,0xC9,
0x10,0x90,0xC3,0x85,0x96,0xB0,0xBF,0x8A,0x45,0x9B,0x85,0x9B,0xA5,0xB4,0xF0,0xD2,
0xC6,0xA3,0x30,0xC5,0x46,0xD7,0x66,0xBF,0xA2,0xDA,0x20,0x5D,0xF9,0x4C,0x56,0xFF,
0xA5,0x96,0xF0,0x04,0xA5,0xB4,0xF0,0x04,0xA5,0xA3,0x10,0x85,0x46,0xB1,0xA9,0x93,
0x38,0xE5,0xB1,0x65,0xB0,0x0A,0xAA,0x20,0x5D,0xF9,0xE6,0x9C,0xA5,0xB4,0xD0,0x11,
0xA5,0x96,0xF0,0x26,0x85,0xA8,0xA9,0x00,0x85,0x96,0xA9,0xC0,0x8D,0x2E,0x91,0x85,
0xB4,0xA5,0x96,0x85,0xB5,0xF0,0x09,0xA9,0x00,0x85,0xB4,0xA9,0x40,0x8D,0x2E,0x91,
0xA5,0xBF,0x85,0xBD,0xA5,0xA8,0x05,0xA9,0x85,0xB6,0x4C,0x56,0xFF,0x20,0xDB,0xFB,
0x85,0x9C,0xA2,0xDA,0x20,0x5D,0xF9,0xA5,0xBE,0xF0,0x02,0x85,0xA7,0xA9,0x0F,0x24,
0xAA,0x10,0x17,0xA5,0xB5,0xD0,0x0C,0xA6,0xBE,0xCA,0xD0,0x0B,0xA9,0x08,0x20,0x6A,
0xFE,0xD0,0x04,0xA9,0x00,0x85,0xAA,0x4C,0x56,0xFF,0x70,0x31,0xD0,0x18,0xA5,0xB5,
0xD0,0xF5,0xA5,0xB6,0xD0,0xF1,0xA5,0xA7,0x4A,0xA5,0xBD,0x30,0x03,0x90,0x18,0x18,
0xB0,0x15,0x29,0x0F,0x85,0xAA,0xC6,0xAA,0xD0,0xDD,0xA9,0x40,0x85,0xAA,0x20,0xD2,
0xFB,0xA9,0x00,0x85,0xAB,0xF0,0xD0,0xA9,0x80,0x85,0xAA,0xD0,0xCA,0xA5,0xB5,0xF0,
0x0A,0xA9,0x04,0x20,0x6A,0xFE,0xA9,0x00,0x4C,0x97,0xFB,0x20,0x11,0xFD,0x90,0x03,
0x4C,0x95,0xFB,0xA6,0xA7,0xCA,0xF0,0x2D,0xA5,0x93,0xF0,0x0C,0xA0,0x00,0xA5,0xBD,
0xD1,0xAC,0xF0,0x04,0xA9,0x01,0x85,0xB6,0xA5,0xB6,0xF0,0x4B,0xA2,0x3D,0xE4,0x9E,
0x90,0x3E,0xA6,0x9E,0xA5,0xAD,0x9D,0x01,0x01,0xA5,0xAC,0x9D,0x00,0x01,0xE8,0xE8,
0x86,0x9E,0x4C,0x87,0xFB,0xA6,0x9F,0xE4,0x9E,0xF0,0x35,0xA5,0xAC,0xDD,0x00,0x01,
0xD0,0x2E,0xA5,0xAD,0xDD,0x01,0x01,0xD0,0x27,0xE6,0x9F,0xE6,0x9F,0xA5,0x93,0xF0,
0x0B,0xA5,0xBD,0xA0,0x00,0xD1,0xAC,0xF0,0x17,0xC8,0x84,0xB6,0xA5,0xB6,0xF0,0x07,
0xA9,0x10,0x20,0x6A,0xFE,0xD0,0x09,0xA5,0x93,0xD0,0x05,0xA8,0xA5,0xBD,0x91,0xAC,
0x20,0x1B,0xFD,0xD0,0x3A,0xA9,0x80,0x85,0xAA,0xA6,0xBE,0xCA,0x30,0x02,0x86,0xBE,
0xC6,0xA7,0xF0,0x08,0xA5,0x9E,0xD0,0x27,0x85,0xBE,0xF0,0x23,0x20,0xCF,0xFC,0x20,
0xD2,0xFB,0xA0,0x00,0x84,0xAB,0xB1,0xAC,0x45,0xAB,0x85,0xAB,0x20,0x1B,0xFD,0x20,
0x11,0xFD,0x90,0xF2,0xA5,0xAB,0x45,0xBD,0xF0,0x05,0xA9,0x20,0x20,0x6A,0xFE,0x4C,
0x56,0xFF,0xA5,0xC2,0x85,0xAD,0xA5,0xC1,0x85,0xAC,0x60,0xA9,0x08,0x85,0xA3,0xA9,
0x00,0x85,0xA4,0x85,0xA8,0x85,0x9B,0x85,0xA9,0x60,0xA5,0xBD,0x4A,0xA9,0x60,0x90,
0x02,0xA9,0xB0,0xA2,0x00,0x8D,0x28,0x91,0x8E,0x29,0x91,0xAD,0x20,0x91,0x49,0x08,
0x8D,0x20,0x91,0x29,0x08,0x60,0x38,0x66,0xAD,0x30,0x3C,0xA5,0xA8,0xD0,0x12,0xA9,
0x10,0xA2,0x01,0x20,0xF5,0xFB,0xD0,0x2F,0xE6,0xA8,0xA5,0xAD,0x10,0x29,0x4C,0x95,
0xFC,0xA5,0xA9,0xD0,0x09,0x20,0xF1,0xFB,0xD0,0x1D,0xE6,0xA9,0xD0,0x19,0x20,0xEA,
0xFB,0xD0,0x14,0xA5,0xA4,0x49,0x01,0x85,0xA4,0xF0,0x0F,0xA5,0xBD,0x49,0x01,0x85,
0xBD,0x29,0x01,0x45,0x9B,0x85,0x9B,0x4C,0x56,0xFF,0x46,0xBD,0xC6,0xA3,0xA5,0xA3,
0xF0,0x3A,0x10,0xF3,0x20,0xDB,0xFB,0x58,0xA5,0xA5,0xF0,0x12,0xA2,0x00,0x86,0xD7,
0xC6,0xA5,0xA6,0xBE,0xE0,0x02,0xD0,0x02,0x09,0x80,0x85,0xBD,0xD0,0xD9,0x20,0x11,
0xFD,0x90,0x0A,0xD0,0x91,0xE6,0xAD,0xA5,0xD7,0x85,0xBD,0xB0,0xCA,0xA0,0x00,0xB1,
0xAC,0x85,0xBD,0x45,0xD7,0x85,0xD7,0x20,0x1B,0xFD,0xD0,0xBB,0xA5,0x9B,0x49,0x01,
0x85,0xBD,0x4C,0x56,0xFF,0xC6,0xBE,0xD0,0x03,0x20,0x08,0xFD,0xA9,0x50,0x85,0xA7,
0xA2,0x08,0x78,0x20,0xFB,0xFC,0xD0,0xEA,0xA9,0x78,0x20,0xF3,0xFB,0xD0,0xE3,0xC6,
0xA7,0xD0,0xDF,0x20,0xDB,0xFB,0xC6,0xAB,0x10,0xD8,0xA2,0x0A,0x20,0xFB,0xFC,0x58,
0xE6,0xAB,0xA5,0xBE,0xF0,0x30,0x20,0xD2,0xFB,0xA2,0x09,0x86,0xA5,0xD0,0x85,0x08,
0x78,0x20,0x08,0xFD,0xA9,0x7F,0x8D,0x2E,0x91,0xA9,0xF7,0x8D,0x20,0x91,0xA9,0x40,
0x8D,0x2B,0x91,0x20,0x39,0xFE,0xAD,0xA0,0x02,0xF0,0x09,0x8D,0x15,0x03,0xAD,0x9F,
0x02,0x8D,0x14,0x03,0x28,0x60,0x20,0xCF,0xFC,0xF0,0x97,0xBD,0xE9,0xFD,0x8D,0x14,
0x03,0xBD,0xEA,0xFD,0x8D,0x15,0x03,0x60,0xAD,0x1C,0x91,0x09,0x0E,0x8D,0x1C,0x91,
0x60,0x38,0xA5,0xAC,0xE5,0xAE,0xA5,0xAD,0xE5,0xAF,0x60,0xE6,0xAC,0xD0,0x02,0xE6,
0xAD,0x60,0xA2,0xFF,0x78,0x9A,0xD8,0x20,0x3F,0xFD,0xD0,0x03,0x6C,0x00,0xA0,0x20,
0x8D,0xFD,0x20,0x52,0xFD,0x20,0xF9,0xFD,0x20,0x18,0xE5,0x58,0x6C,0x00,0xC0,0xA2,
0x05,0xBD,0x4C,0xFD,0xDD,0x03,0xA0,0xD0,0x03,0xCA,0xD0,0xF5,0x60,0x41,0x30,0xC3,
0xC2,0xCD,0xA2,0x6D,0xA0,0xFD,0x18,0x86,0xC3,0x84,0xC4,0xA0,0x1F,0xB9,0x14,0x03,
0xB0,0x02,0xB1,0xC3,0x91,0xC3,0x99,0x14,0x03,0x88,0x10,0xF1,0x60,0xBF,0xEA,0xD2,
0xFE,0xAD,0xFE,0x0A,0xF4,0x4A,0xF3,0xC7,0xF2,0x09,0xF3,0xF3,0xF3,0x0E,0xF2,0x7A,
0xF2,0x70,0xF7,0xF5,0xF1,0xEF,0xF3,0xD2,0xFE,0x49,0xF5,0x85,0xF6,0xA9,0x00,0xAA,
0x95,0x00,0x9D,0x00,0x02,0x9D,0x00,0x03,0xE8,0xD0,0xF5,0xA2,0x3C,0xA0,0x03,0x86,
0xB2,0x84,0xB3,0x85,0xC1,0x85,0x97,0x8D,0x81,0x02,0xA8,0xA9,0x04,0x85,0xC2,0xE6,
0xC1,0xD0,0x02,0xE6,0xC2,0x20,0x91,0xFE,0xA5,0x97,0xF0,0x22,0xB0,0xF1,0xA4,0xC2,
0xA6,0xC1,0xC0,0x20,0x90,0x25,0xC0,0x21,0xB0,0x08,0xA0,0x1E,0x8C,0x88,0x02,0x4C,
0x7B,0xFE,0xA9,0x12,0x8D,0x82,0x02,0xA9,0x10,0x8D,0x88,0x02,0xD0,0xF1,0x90,0xCF,
0xA5,0xC2,0x8D,0x82,0x02,0x85,0x97,0xC9,0x11,0x90,0xC4,0x20,0xC3,0xE5,0x4C,0xEB,
0xFD,0xA8,0xFC,0x0B,0xFC,0xBF,0xEA,0x8E,0xF9,0xA9,0x7F,0x8D,0x1E,0x91,0x8D,0x2E,
0x91,0xA9,0x40,0x8D,0x2B,0x91,0xA9,0x40,0x8D,0x1B,0x91,0xA9,0xFE,0x8D,0x1C,0x91,
0xA9,0xDE,0x8D,0x2C,0x91,0xA2,0x00,0x8E,0x12,0x91,0xA2,0xFF,0x8E,0x22,0x91,0xA2,
0x00,0x8E,0x23,0x91,0xA2,0x80,0x8E,0x13,0x91,0xA2,0x00,0x8E,0x1F,0x91,0x20,0x84,
0xEF,0xA9,0x82,0x8D,0x1E,0x91,0x20,0x8D,0xEF,0xA9,0xC0,0x8D,0x2E,0x91,0xA9,0x26,
0x8D,0x24,0x91,0xA9,0x48,0x8D,0x25,0x91,0x60,0x85,0xB7,0x86,0xBB,0x84,0xBC,0x60,
0x85,0xB8,0x86,0xBA,0x84,0xB9,0x60,0xA5,0xBA,0xC9,0x02,0xD0,0x0B,0xAD,0x97,0x02,
0xA9,0x00,0x8D,0x97,0x02,0x60,0x85,0x9D,0xA5,0x90,0x05,0x90,0x85,0x90,0x60,0x8D,
0x85,0x02,0x60,0x90,0x06,0xAE,0x83,0x02,0xAC,0x84,0x02,0x8E,0x83,0x02,0x8C,0x84,
0x02,0x60,0x90,0x06,0xAE,0x81,0x02,0xAC,0x82,0x02,0x8E,0x81,0x02,0x8C,0x82,0x02,
0x60,0xB1,0xC1,0xAA,0xA9,0x55,0x91,0xC1,0xD1,0xC1,0xD0,0x08,0x6A,0x91,0xC1,0xD1,
0xC1,0xD0,0x01,0xA9,0x18,0x8A,0x91,0xC1,0x60,0x78,0x6C,0x18,0x03,0x48,0x8A,0x48,
0x98,0x48,0xAD,0x1D,0x91,0x10,0x48,0x2D,0x1E,0x91,0xAA,0x29,0x02,0xF0,0x1F,0x20,
0x3F,0xFD,0xD0,0x03,0x6C,0x02,0xA0,0x2C,0x11,0x91,0x20,0x34,0xF7,0x20,0xE1,0xFF,
0xD0,0x2D,0x20,0x52,0xFD,0x20,0xF9,0xFD,0x20,0x18,0xE5,0x6C,0x02,0xC0,0xAD,0x1E,
0x91,0x09,0x80,0x48,0xA9,0x7F,0x8D,0x1E,0x91,0x8A,0x29,0x40,0xF0,0x14,0xA9,0xCE,
0x05,0xB5,0x8D,0x1C,0x91,0xAD,0x14,0x91,0x68,0x8D,0x1E,0x91,0x20,0xA3,0xEF,0x4C,
0x56,0xFF,0x8A,0x29,0x20,0xF0,0x25,0xAD,0x10,0x91,0x29,0x01,0x85,0xA7,0xAD,0x18,
0x91,0xE9,0x16,0x6D,0x99,0x02,0x8D,0x18,0x91,0xAD,0x19,0x91,0x6D,0x9A,0x02,0x8D,
0x19,0x91,0x68,0x8D,0x1E,0x91,0x20,0x36,0xF0,0x4C,0x56,0xFF,0x8A,0x29,0x10,0xF0,
0x25,0xAD,0x93,0x02,0x29,0x0F,0xD0,0x00,0x0A,0xAA,0xBD,0x5A,0xFF,0x8D,0x18,0x91,
0xBD,0x5B,0xFF,0x8D,0x19,0x91,0xAD,0x10,0x91,0x68,0x09,0x20,0x29,0xEF,0x8D,0x1E,
0x91,0xAE,0x98,0x02,0x86,0xA8,0x68,0xA8,0x68,0xAA,0x68,0x40,0xE6,0x2A,0x78,0x1C,
0x49,0x13,0xB1,0x0F,0x0A,0x0E,0xD3,0x06,0x38,0x03,0x6A,0x01,0xD0,0x00,0x83,0x00,
0x36,0x00,0x48,0x8A,0x48,0x98,0x48,0xBA,0xBD,0x04,0x01,0x29,0x10,0xF0,0x03,0x6C,
0x16,0x03,0x6C,0x14,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x4C,0x52,0xFD,0x4C,0x57,0xFD,
0x4C,0x66,0xFE,0x4C,0xC0,0xEE,0x4C,0xCE,0xEE,0x4C,0x73,0xFE,0x4C,0x82,0xFE,0x4C,
0x1E,0xEB,0x4C,0x6F,0xFE,0x4C,0x19,0xEF,0x4C,0xE4,0xEE,0x4C,0xF6,0xEE,0x4C,0x04,
0xEF,0x4C,0x17,0xEE,0x4C,0x14,0xEE,0x4C,0x57,0xFE,0x4C,0x50,0xFE,0x4C,0x49,0xFE,
0x6C,0x1A,0x03,0x6C,0x1C,0x03,0x6C,0x1E,0x03,0x6C,0x20,0x03,0x6C,0x22,0x03,0x6C,
0x24,0x03,0x6C,0x26,0x03,0x4C,0x42,0xF5,0x4C,0x75,0xF6,0x4C,0x67,0xF7,0x4C,0x60,
0xF7,0x6C,0x28,0x03,0x6C,0x2A,0x03,0x6C,0x2C,0x03,0x4C,0x34,0xF7,0x4C,0x05,0xE5,
0x4C,0x0A,0xE5,0x4C,0x00,0xE5,0xFF,0xFF,0xFF,0xFF,0xA9,0xFE,0x22,0xFD,0x72,0xFF,
};

Wyświetl plik

@ -0,0 +1,20 @@
#ifndef keyboard_osd_h_
#define keyboard_osd_h_
extern bool virtualkeyboardIsActive(void);
extern void drawVirtualkeyboard(void);
extern void toggleVirtualkeyboard(bool keepOn);
extern void handleVirtualkeyboard(void);
extern bool callibrationActive(void);
extern int handleCallibration(uint16_t bClick);
extern bool menuActive(void);
extern char * menuSelection(void);
extern void toggleMenu(bool on);
extern int handleMenu(uint16_t bClick);
#endif

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,192 @@
#ifndef _H_MOS6502
#define _H_MOS6502
//============================================================================
// Name : mos6502
// Author : Gianluca Ghettini
// Version : 1.0
// Copyright :
// Description : A MOS 6502 CPU emulator written in C++
//============================================================================
#include <stdint.h>
#define NEGATIVE 0x80
#define OVERFLOW 0x40
#define CONSTANT 0x20
#define BREAK 0x10
#define DECIMAL 0x08
#define INTERRUPT 0x04
#define ZERO 0x02
#define CARRY 0x01
#define SET_NEGATIVE(x) (x ? (status |= NEGATIVE) : (status &= (~NEGATIVE)) )
#define SET_OVERFLOW(x) (x ? (status |= OVERFLOW) : (status &= (~OVERFLOW)) )
#define SET_CONSTANT(x) (x ? (status |= CONSTANT) : (status &= (~CONSTANT)) )
#define SET_BREAK(x) (x ? (status |= BREAK) : (status &= (~BREAK)) )
#define SET_DECIMAL(x) (x ? (status |= DECIMAL) : (status &= (~DECIMAL)) )
#define SET_INTERRUPT(x) (x ? (status |= INTERRUPT) : (status &= (~INTERRUPT)) )
#define SET_ZERO(x) (x ? (status |= ZERO) : (status &= (~ZERO)) )
#define SET_CARRY(x) (x ? (status |= CARRY) : (status &= (~CARRY)) )
#define IF_NEGATIVE() ((status & NEGATIVE) ? true : false)
#define IF_OVERFLOW() ((status & OVERFLOW) ? true : false)
#define IF_CONSTANT() ((status & CONSTANT) ? true : false)
#define IF_BREAK() ((status & BREAK) ? true : false)
#define IF_DECIMAL() ((status & DECIMAL) ? true : false)
#define IF_INTERRUPT() ((status & INTERRUPT) ? true : false)
#define IF_ZERO() ((status & ZERO) ? true : false)
#define IF_CARRY() ((status & CARRY) ? true : false)
class mos6502
{
private:
// registers
uint8_t A; // accumulator
uint8_t X; // X-index
uint8_t Y; // Y-index
// stack pointer
uint8_t sp;
// program counter
uint16_t pc;
// status register
uint8_t status;
typedef void (mos6502::*CodeExec)(uint16_t);
typedef uint16_t (mos6502::*AddrExec)();
struct Instr
{
AddrExec addr;
CodeExec code;
uint8_t cycles;
};
Instr InstrTable[256];
void Exec(Instr i);
bool illegalOpcode;
// addressing modes
uint16_t Addr_ACC(); // ACCUMULATOR
uint16_t Addr_IMM(); // IMMEDIATE
uint16_t Addr_ABS(); // ABSOLUTE
uint16_t Addr_ZER(); // ZERO PAGE
uint16_t Addr_ZEX(); // INDEXED-X ZERO PAGE
uint16_t Addr_ZEY(); // INDEXED-Y ZERO PAGE
uint16_t Addr_ABX(); // INDEXED-X ABSOLUTE
uint16_t Addr_ABY(); // INDEXED-Y ABSOLUTE
uint16_t Addr_IMP(); // IMPLIED
uint16_t Addr_REL(); // RELATIVE
uint16_t Addr_INX(); // INDEXED-X INDIRECT
uint16_t Addr_INY(); // INDEXED-Y INDIRECT
uint16_t Addr_ABI(); // ABSOLUTE INDIRECT
// opcodes (grouped as per datasheet)
void Op_ADC(uint16_t src);
void Op_AND(uint16_t src);
void Op_ASL(uint16_t src); void Op_ASL_ACC(uint16_t src);
void Op_BCC(uint16_t src);
void Op_BCS(uint16_t src);
void Op_BEQ(uint16_t src);
void Op_BIT(uint16_t src);
void Op_BMI(uint16_t src);
void Op_BNE(uint16_t src);
void Op_BPL(uint16_t src);
void Op_BRK(uint16_t src);
void Op_BVC(uint16_t src);
void Op_BVS(uint16_t src);
void Op_CLC(uint16_t src);
void Op_CLD(uint16_t src);
void Op_CLI(uint16_t src);
void Op_CLV(uint16_t src);
void Op_CMP(uint16_t src);
void Op_CPX(uint16_t src);
void Op_CPY(uint16_t src);
void Op_DEC(uint16_t src);
void Op_DEX(uint16_t src);
void Op_DEY(uint16_t src);
void Op_EOR(uint16_t src);
void Op_INC(uint16_t src);
void Op_INX(uint16_t src);
void Op_INY(uint16_t src);
void Op_JMP(uint16_t src);
void Op_JSR(uint16_t src);
void Op_LDA(uint16_t src);
void Op_LDX(uint16_t src);
void Op_LDY(uint16_t src);
void Op_LSR(uint16_t src); void Op_LSR_ACC(uint16_t src);
void Op_NOP(uint16_t src);
void Op_ORA(uint16_t src);
void Op_PHA(uint16_t src);
void Op_PHP(uint16_t src);
void Op_PLA(uint16_t src);
void Op_PLP(uint16_t src);
void Op_ROL(uint16_t src); void Op_ROL_ACC(uint16_t src);
void Op_ROR(uint16_t src); void Op_ROR_ACC(uint16_t src);
void Op_RTI(uint16_t src);
void Op_RTS(uint16_t src);
void Op_SBC(uint16_t src);
void Op_SEC(uint16_t src);
void Op_SED(uint16_t src);
void Op_SEI(uint16_t src);
void Op_STA(uint16_t src);
void Op_STX(uint16_t src);
void Op_STY(uint16_t src);
void Op_TAX(uint16_t src);
void Op_TAY(uint16_t src);
void Op_TSX(uint16_t src);
void Op_TXA(uint16_t src);
void Op_TXS(uint16_t src);
void Op_TYA(uint16_t src);
void Op_ILLEGAL(uint16_t src);
// IRQ, reset, NMI vectors
static const uint16_t irqVectorH = 0xFFFF;
static const uint16_t irqVectorL = 0xFFFE;
static const uint16_t rstVectorH = 0xFFFD;
static const uint16_t rstVectorL = 0xFFFC;
static const uint16_t nmiVectorH = 0xFFFB;
static const uint16_t nmiVectorL = 0xFFFA;
// read/write callbacks
//typedef void (*BusWrite)(uint16_t, uint8_t);
//typedef uint8_t (*BusRead)(uint16_t);
//BusRead Read;
//BusWrite Write;
// stack operations
inline void StackPush(uint8_t byte);
inline uint8_t StackPop();
public:
enum CycleMethod {
INST_COUNT,
CYCLE_COUNT,
};
mos6502();
void NMI();
int IRQ();
void Reset();
uint64_t Run(
int32_t cycles,
CycleMethod cycleMethod = CYCLE_COUNT);
};
#endif

Wyświetl plik

@ -0,0 +1,186 @@
#include "pico.h"
#include "pico/stdlib.h"
extern "C" {
#include "iopins.h"
#include "emuapi.h"
}
#include "keyboard_osd.h"
#include "v20.h"
#include <stdio.h>
#ifdef USE_VGA
#include "vga_t_dma.h"
#else
#include "tft_t_dma.h"
#endif
volatile bool vbl=true;
bool repeating_timer_callback(struct repeating_timer *t) {
uint16_t bClick = emu_DebounceLocalKeys();
emu_Input(bClick);
if (vbl) {
vbl = false;
} else {
vbl = true;
}
return true;
}
TFT_T_DMA tft;
static int skip=0;
#include "hardware/clocks.h"
#include "hardware/vreg.h"
int main(void) {
vreg_set_voltage(VREG_VOLTAGE_1_05);
// set_sys_clock_khz(125000, true);
// set_sys_clock_khz(150000, true);
// set_sys_clock_khz(133000, true);
// set_sys_clock_khz(200000, true);
// set_sys_clock_khz(225000, true);
set_sys_clock_khz(250000, true);
stdio_init_all();
#ifdef USE_VGA
// tft.begin(VGA_MODE_400x240);
tft.begin(VGA_MODE_320x240);
#else
tft.begin();
#endif
emu_init();
while (true) {
if (menuActive()) {
uint16_t bClick = emu_DebounceLocalKeys();
int action = handleMenu(bClick);
char * filename = menuSelection();
if (action == ACTION_RUNTFT) {
toggleMenu(false);
emu_start();
emu_Init(filename);
tft.fillScreenNoDma( RGBVAL16(0x00,0x00,0x00) );
tft.startDMA();
struct repeating_timer timer;
add_repeating_timer_ms(15, repeating_timer_callback, NULL, &timer);
}
tft.waitSync();
}
else {
//uint16_t bClick = emu_DebounceLocalKeys();
//emu_Input(bClick);
emu_Step();
}
//int c = getchar_timeout_us(0);
//switch (c) {
// case ' ':
// printf("test: %d\n", 1);
// break;
//}
}
}
static unsigned char palette8[PALETTE_SIZE];
static unsigned short palette16[PALETTE_SIZE];
void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index)
{
if (index<PALETTE_SIZE) {
palette8[index] = RGBVAL8(r,g,b);
palette16[index] = RGBVAL16(r,g,b);
}
}
void emu_DrawVsync(void)
{
skip += 1;
skip &= VID_FRAME_SKIP;
#ifdef USE_VGA
tft.waitSync();
#else
//volatile bool vb=vbl;
//while (vbl==vb) {};
#endif
}
void emu_DrawLine(unsigned char * VBuf, int width, int height, int line)
{
if (skip == 0) {
#ifdef USE_VGA
tft.writeLine(width,height,line, VBuf, palette8);
#else
tft.writeLine(width,height,line, VBuf, palette16);
#endif
}
}
void emu_DrawLine8(unsigned char * VBuf, int width, int height, int line)
{
if (skip == 0) {
#ifdef USE_VGA
tft.writeLine(width,height,line, VBuf);
#endif
}
}
void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line)
{
if (skip == 0) {
#ifdef USE_VGA
tft.writeLine16(width,height,line, VBuf);
#else
tft.writeLine(width,height,line, VBuf);
#endif
}
}
void emu_DrawScreen(unsigned char * VBuf, int width, int height, int stride)
{
if (skip == 0) {
#ifdef USE_VGA
tft.writeScreen(width,height-TFT_VBUFFER_YCROP,stride, VBuf+(TFT_VBUFFER_YCROP/2)*stride, palette8);
#else
tft.writeScreen(width,height-TFT_VBUFFER_YCROP,stride, VBuf+(TFT_VBUFFER_YCROP/2)*stride, palette16);
#endif
}
}
int emu_FrameSkip(void)
{
return skip;
}
void * emu_LineBuffer(int line)
{
return (void*)tft.getLineBuffer(line);
}
#ifdef HAS_SND
#include "AudioPlaySystem.h"
AudioPlaySystem mymixer;
void emu_sndInit() {
tft.begin_audio(512, mymixer.snd_Mixer);
mymixer.start();
}
void emu_sndPlaySound(int chan, int volume, int freq)
{
if (chan < 6) {
mymixer.sound(chan, freq, volume);
}
}
void emu_sndPlayBuzz(int size, int val) {
mymixer.buzz(size,val);
}
#endif

Wyświetl plik

@ -0,0 +1,444 @@
#include "pico.h"
#include "pico/stdlib.h"
#include <stdio.h>
#include <string.h>
extern "C" {
#include "emuapi.h"
#include "platform_config.h"
}
// Vic 20 emulation includes
#include "mos6502.h"
#include "MOS6561.h"
#include "MOS6522.h"
#include "MOS6502Memory.h"
#include "kernalromp.h"
#include "charrom.h"
#include "basicrom.h"
static mos6502 mos;
static MOS6561 mos6561;
static MOS6522 mos6522;
uint8_t vicmemory[0x10000];;
#define VIC20FREQBASE 65535
/* noise magic */
#define NSHIFT(v, n) (((v)<<(n))|((((v)>>(23-(n)))^(v>>(18-(n))))&((1<<(n))-1)))
#define NVALUE(v) (noiseLSB[v&0xff]|noiseMID[(v>>8)&0xff]|noiseMSB[(v>>16)&0xff])
#define NSEED 0x7ffff8
/* Noise tables */
#define NOISETABLESIZE 256
static uint8_t noiseMSB[NOISETABLESIZE];
static uint8_t noiseMID[NOISETABLESIZE];
static uint8_t noiseLSB[NOISETABLESIZE];
/* needed data for one voice */
typedef struct voice_s
{
/* counter value */
int f;
/* counter step / sample */
int fs;
/* noise shift register. Note! rv may be 0 to 15 shifts 'behind' the
real noise shift register value. Remaining shifts are done when
it is referenced */
int rv;
} voice_t;
/* needed data for SID */
struct sound_s
{
/* number of voices */
voice_t v[4];
/* 4-bit volume value */
uint8_t vol;
/* internal constant used for sample rate dependent calculations */
int speed1;
};
static sound_s psid;
static void VIC_VOICE_HANDLE(int voice, int value, int shift)
{
int div = 255 - value;
if (!div)
div = 127;
if (!(value & 0x80))
psid.v[voice].fs = 0;
else
psid.v[voice].fs = psid.speed1*VIC20FREQBASE*(1 << shift)/div;
};
void SND_Process(void * stream, int len) {
int o0, o1, o2, o3;
short * sndbuf = (short *)stream;
for (int i = 0; i < len/2; i++)
{
/* addfptrs */
psid.v[0].f += psid.v[0].fs;
psid.v[1].f += psid.v[1].fs;
psid.v[2].f += psid.v[2].fs;
psid.v[3].f += psid.v[3].fs;
/* noise */
if (psid.v[3].f < psid.v[3].fs)
psid.v[3].rv = NSHIFT(psid.v[3].rv, 16);
/* voices */
o0 = (psid.v[0].f & 0x80000000) >> 2;
o1 = (psid.v[1].f & 0x80000000) >> 2;
o2 = (psid.v[2].f & 0x80000000) >> 2;
o3 = (int)NVALUE(NSHIFT(psid.v[3].rv, psid.v[3].f >> 28)) << 22;
/* sample */
uint16_t s = ((int)((o0+o1+o2+o3)>>20)-0x800)*psid.vol;
*sndbuf++ =s;
*sndbuf++ =s;
}
}
static char * strext(char * filepath) {
int str_len = strlen(filepath);
for (int i=0; i<str_len; i++) {
if ( (filepath[i] == '.') && (i != (str_len-1) ) ) {
return &filepath[i+1];
}
}
return filepath;
}
static void loadROM(char * filepath, uint16_t atMemoryLocation) {
uint16_t loadAddress;
uint16_t endAddress;
int lSize = emu_FileSize(filepath);
emu_FileOpen(filepath);
char * ext = strext(filepath);
if ( (ext[0] == 'p') || (ext[0] == 'P') ) {
unsigned char buffer[2];
emu_FileRead((char *)&buffer[0], 2);
loadAddress = buffer[0] | buffer[1] << 8;
endAddress = loadAddress + lSize-2;
emu_FileRead((char *)&vicmemory[loadAddress], lSize-2);
}
else {
switch (ext[0]) {
case '2':
loadAddress = 0x2000;
break;
case '4':
loadAddress = 0x4000;
break;
case '6':
loadAddress = 0x6000;
break;
case 'a':
case 'A':
loadAddress = 0xA000;
break;
}
endAddress = loadAddress + lSize;
emu_FileRead((char *)&vicmemory[loadAddress], lSize);
}
emu_FileClose();
// Set basic memory pointers
silentWriteDWord(0x2B, loadAddress);
silentWriteDWord(0x2D, loadAddress);
silentWriteDWord(0x2F, endAddress);
silentWriteDWord(0x31, endAddress);
silentWriteDWord(0x33, endAddress);
silentWriteDWord(0x37, 0xFFFF);
silentWriteDWord(0xAE, endAddress);
}
/*VIC-20 KEYBOARD MATRIX
In my implementation, n = 0xF7EF
(80 40 20 10 08 04 02 01)
7f bf df ef f7 fb fd fe
__
01 fe 2 q CBM Space RunStop Control Lft_arr 1
02 fd 4 e s z Shift_L a w 3
04 fb 6 t f c x d r 5
08 f7 8 u h b v g y 7
10 ef 0 o k m n j i 9
20 df - @ : . , l p +
40 bf Home Up_arr = Shift_R / ; * GBP
80 7f F7 F5 F3 F1 Down Right Return Del
--
*/
const uint32_t ascii2scan[] = {
//0 1 2 3 4 5 6 7 8 9 A B C D E F
0,0,0,0,0,0,0,0,0,0,0,0,0,0xfd7f,0,0, // return
// 17:down 29:right 31:RUNSTOP
0,0xf77f,0,0,0,0,0,0,0,0,0,0,0,0xfb7f,0,0xf7fe,
//sp ! " # $ % & ' ( ) * + , - . /
0xeffe ,0x1fefe,0x17ffe,0x1fe02,0x17ffd,0x1fefb,0x17ffb,0x1fef7,0x17ff7,0x1feef,0xfdbf ,0xfedf ,0xf7df ,0x7fDf ,0xefdf ,0xf7bf,
//0 1 2 3 4 5 6 7 8 9 : ; < = > ?
0x7fef ,0xfefe ,0x7ffe ,0xfefd ,0x7ffd ,0xfefb ,0x7ffb ,0xfef7 ,0x7ff7 ,0xfeef ,0xdfdf ,0xfbbf ,0x1f7df,0xdfbf ,0x1efdf,0x1f7bf,
//@ A B C D E F G H I J K L M N O
0xbfdf ,0xfbfd ,0xeff7 ,0xeffb ,0xfbfb ,0xbffd ,0xdffb ,0xfbf7 ,0xdff7 ,0xfdef ,0xfbef ,0xdfef ,0xfbdf ,0xefef ,0xf7ef ,0xbfef,
//P Q R S T U V W X Y Z [ \ ] ^ _
0xfddf ,0xbffe ,0xfdfb ,0xdffd ,0xbffb ,0xbff7 ,0xf7f7 ,0xfdfd ,0xf7fb ,0xfdf7 ,0xeffd ,0x1dfdf,0xffff ,0x1fbbf,0 ,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // ' a b c d e f g h i j k l m n o
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe7f,0, // p q r s t u v w x y z { | } ~ DEL
// 133:f1 f2 f3 f4 f5 f6 f7 f8
0,0,0,0,0,0xef7f,0x1ef7f,0xdf7f,0x1df7f,0xbf7f,0x1bf7f,0x7f7f,0x17f7f,0x00,0x00,0x00, // 128-143
// 145:up 157:left
0,0x1f77f,0,0,0,0,0,0,0,0,0,0,0,0x1fb7f,0,0 // 144-159
};
static int ik;
static int ihk;
static int pik=0;
void v20_Input(int bClick) {
ik = emu_GetPad();
ihk = emu_ReadI2CKeyboard();
}
void emu_KeyboardOnDown(int keymodifer, int key) {
}
void emu_KeyboardOnUp(int keymodifer, int key) {
}
/*
uint8_t readWord( uint16_t location) {
switch (location) {
case 0x9111:
case 0x911F:
mos6522.joy1Input();
break;
case 0x9120:
mos6522.joy2Input();
break;
case 0x9121:
//case 0x912F:
mos6522.keyboardInput();
break;
}
return vicmemory[location];
}
void writeWord( uint16_t location, uint8_t value){
vicmemory[location] = value;
}
*/
void v20_Init(void)
{
// Initialize emulation objects
mos.Reset();
mos6561.initialize();
mos6522.setCpu(&mos);
mos6522.initialize();
// clear memory
for(int i=0; i<sizeof(vicmemory); i++) {
vicmemory[i] = 0;
}
// load charrom
for(int i=0; i<4096; i++) {
vicmemory[0x8000+i] = charrom[i];
}
// load basic rom
for(int i=0; i<8192; i++) {
vicmemory[0xC000+i] = basicrom[i];
}
// load kernal rom
for(int i=0; i<8192; i++) {
vicmemory[0xE000+i] = kernalrom[i];
}
#ifdef HAS_SND
psid.speed1 = (1000000 << 8) / 22000;
psid.v[3].rv = NSEED;
for (int i = 0; i < NOISETABLESIZE; i++)
{
noiseLSB[i] = (((i>>(7-2))&0x04)|((i>>(4-1))&0x02)|((i>>(2-0))&0x01));
noiseMID[i] = (((i>>(13-8-4))&0x10)|((i<<(3-(11-8)))&0x08));
noiseMSB[i] = (((i<<(7-(22-16)))&0x80)|((i<<(6-(20-16)))&0x40)
|((i<<(5-(16-16)))&0x20));
}
emu_sndInit();
#endif
}
void v20_Start(char * filename)
{
loadROM(filename,0);
// Reset cpu
mos.Reset();
// Execute boot sequence before doing much else
mos.Run(20000);
}
void v20_Step(void)
{
do {
// bind emulation to clock speed
// Cpu clock is four times less than 6561 clock
//int cpuCycles = mos.executeInstruction();
uint64_t cpuCycles = mos.Run(1);
mos6561.tick(1);
mos6522.tick();
//mos6522.tick();
/*
uint64_t cpuCycles = mos.Run(mos6561.cyclesPerScanline);
mos6561.tick(mos6561.cyclesPerScanline);
mos6522.tick();
mos6522.tick();
mos6522.tick();
mos6522.tick();
mos6522.tick();
mos6522.tick();
*/
/*
// printf("cycles %d\n", cpuCycles);
while (cpuCycles) {
cpuCycles--;
mos6522.tick();
mos6522.tick();
}
*/
} while ((!mos6561.isFrameReady()));
// Swap buffers if frame ready
if (mos6561.isFrameReady()) {
mos6561.renderFrame();
}
// Top basic
// Unexpanded
//vicmemory[55] = 0;
//vicmemory[56] = 0x1E;
// +3k
//vicmemory[55] = 0;
//vicmemory[56] = 0x1E;
// +8k
//vicmemory[55] = 0;
//vicmemory[56] = 0x40;
// +16k
//vicmemory[55] = 0;
//vicmemory[56] = 0x60;
// +24k
//vicmemory[55] = 0;
//vicmemory[56] = 0x80;
// Bottom basic ???
//vicmemory[51] = 0;
//vicmemory[52] = 0x1E;
emu_DrawVsync();
int hk=ihk;
#ifdef PICOMPUTER
if (hk) {
int scan = ascii2scan[ihk];
if (scan & 0x10000) mos6522.setShiftPressed(true);
else mos6522.setShiftPressed(false);
mos6522.setKeyPressed(scan & 0xffff);
}
else {
mos6522.setShiftPressed(false);
mos6522.setKeyPressed(0);
}
#endif
int k=ik;
#ifdef PICOMPUTER
// Ignore joypad if shift is pressed!!!
if ( !(k & MASK_KEY_USER2) )
#endif
{
if ( !(pik & MASK_JOY2_BTN) && (k & MASK_JOY2_BTN) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Fire, true);
}
else if ( (pik & MASK_JOY2_BTN) && !(k & MASK_JOY2_BTN) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Fire, false);
}
if ( !(pik & MASK_JOY2_UP) && (k & MASK_JOY2_UP) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Up, true);
}
else if ( (pik & MASK_JOY2_UP) && !(k & MASK_JOY2_UP) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Up, false);
}
if ( !(pik & MASK_JOY2_DOWN) && (k & MASK_JOY2_DOWN) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Down, true);
}
else if ( (pik & MASK_JOY2_DOWN) && !(k & MASK_JOY2_DOWN) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Down, false);
}
if ( !(pik & MASK_JOY2_RIGHT) && (k & MASK_JOY2_RIGHT) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Left, true);
}
else if ( (pik & MASK_JOY2_RIGHT) && !(k & MASK_JOY2_RIGHT) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Left, false);
}
if ( !(pik & MASK_JOY2_LEFT) && (k & MASK_JOY2_LEFT) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Right, true);
}
else if ( (pik & MASK_JOY2_LEFT) && !(k & MASK_JOY2_LEFT) ) {
mos6522.setJoyStickPressed(MOS6522::Vic20JoyStickButton::Right, false);
}
}
#ifndef PICOMPUTER
if ( !(pik & MASK_KEY_USER1) && (k & MASK_KEY_USER1) ) {
mos6522.setKeyPressed(0xEF7F);
mos6522.setShiftPressed(true);
}
else if ( (pik & MASK_KEY_USER1) && !(k & MASK_KEY_USER1) ) {
mos6522.setShiftPressed(false);
mos6522.setKeyPressed(0);
}
if ( !(pik & MASK_KEY_USER2) && (k & MASK_KEY_USER2) ) {
mos6522.setShiftPressed(false);
mos6522.setKeyPressed(ascii2scan['1']);
}
else if ( (pik & MASK_KEY_USER2) && !(k & MASK_KEY_USER2) ) {
mos6522.setShiftPressed(false);
mos6522.setKeyPressed(0);
}
#endif
pik = k;
VIC_VOICE_HANDLE(0, vicmemory[mos6561.Audio1Register], 0);
VIC_VOICE_HANDLE(1, vicmemory[mos6561.Audio2Register], 1);
VIC_VOICE_HANDLE(2, vicmemory[mos6561.Audio3Register], 2);
VIC_VOICE_HANDLE(3, vicmemory[mos6561.Audio4Register], 0);
int vol = (vicmemory[mos6561.AudioVolRegister] & 0x0f);
psid.vol = vol;
}

Wyświetl plik

@ -0,0 +1,5 @@
extern void v20_Init(void);
extern void v20_Step(void);
extern void v20_Start(char * filename);
extern void v20_Input(int key);