mirror of
https://github.com/option8/RetroConnector.git
synced 2025-02-14 03:31:28 +00:00
USB Mouse Interface files, Bring IIc shield up to date with IIe
This commit is contained in:
parent
1c40fd617b
commit
936a7dd66c
@ -1,8 +1,8 @@
|
||||
/* requires keypad library by Mark Stanley, Alexander Brevig from:
|
||||
http://www.arduino.cc/playground/Code/Keypad
|
||||
http://www.arduino.cc/playground/Code/Keypad
|
||||
|
||||
Uses the PJRC Teensy++ 2.0 and Teensyduino libraries, specifically USB HID and Keyboard():
|
||||
http://www.pjrc.com/teensy/teensyduino.html
|
||||
Uses the PJRC Teensy++ 2.0 and Teensyduino libraries, specifically USB HID and Keyboard():
|
||||
http://www.pjrc.com/teensy/teensyduino.html
|
||||
*/
|
||||
|
||||
#include <Keypad.h>
|
||||
@ -15,31 +15,34 @@ int ColumnsPin = 10;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Declares the matrix rows/cols of the Apple IIc keyboard.
|
||||
/*
|
||||
Declares the matrix rows/cols of the Apple IIc keyboard.
|
||||
|
||||
*/
|
||||
|
||||
// Prevent compiler warning about casts from unsigned ints to chars
|
||||
#define C(x) ((char) (x))
|
||||
|
||||
const byte ROWS = 8; // rows
|
||||
const byte COLS = 10; // columns
|
||||
char keys[ROWS][COLS] = {
|
||||
|
||||
|
||||
{ KEY_ESC, KEY_1, KEY_2, KEY_3, KEY_4, KEY_6, KEY_5, KEY_7, KEY_8, KEY_9 },
|
||||
{ C(KEY_ESC), C(KEY_1), C(KEY_2), C(KEY_3), C(KEY_4), C(KEY_6), C(KEY_5), C(KEY_7), C(KEY_8), C(KEY_9) },
|
||||
|
||||
{ KEY_TAB, KEY_Q, KEY_W, KEY_E, KEY_R, KEY_Y, KEY_T, KEY_U, KEY_I, KEY_O},
|
||||
{ C(KEY_TAB), C(KEY_Q), C(KEY_W), C(KEY_E), C(KEY_R), C(KEY_Y), C(KEY_T), C(KEY_U), C(KEY_I), C(KEY_O)},
|
||||
|
||||
{ KEY_A, KEY_D, KEY_S, KEY_H, KEY_F, KEY_G, KEY_J, KEY_K, KEY_SEMICOLON, KEY_L},
|
||||
{ C(KEY_A), C(KEY_D), C(KEY_S), C(KEY_H), C(KEY_F), C(KEY_G), C(KEY_J), C(KEY_K), C(KEY_SEMICOLON), C(KEY_L)},
|
||||
|
||||
{ KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, KEY_COMMA, KEY_PERIOD, KEY_SLASH},
|
||||
{ C(KEY_Z), C(KEY_X), C(KEY_C), C(KEY_V), C(KEY_B), C(KEY_N), C(KEY_M), C(KEY_COMMA), C(KEY_PERIOD), C(KEY_SLASH)},
|
||||
|
||||
{ 0, 0, 0, 0, 0, 0, KEY_BACKSLASH, KEY_EQUAL, KEY_0, KEY_MINUS},
|
||||
{ 0, 0, 0, 0, 0, 0, C(KEY_BACKSLASH), C(KEY_EQUAL), C(KEY_0), C(KEY_MINUS)},
|
||||
|
||||
{ 0, 0, 0, 0, 0, 0, KEY_TILDE, KEY_P, KEY_LEFT_BRACE, KEY_RIGHT_BRACE},
|
||||
{ 0, 0, 0, 0, 0, 0, C(KEY_TILDE), C(KEY_P), C(KEY_LEFT_BRACE), C(KEY_RIGHT_BRACE)},
|
||||
|
||||
{ 0, 0, 0 , 0, 0, 0, KEY_ENTER, KEY_UP, KEY_SPACE, KEY_QUOTE},
|
||||
{ 0, 0, 0 , 0, 0, 0, C(KEY_ENTER), C(KEY_UP), C(KEY_SPACE), C(KEY_QUOTE)},
|
||||
|
||||
{ 0, 0, 0, 0, 0, 0, KEY_BACKSPACE, KEY_DOWN, KEY_LEFT, KEY_RIGHT},
|
||||
{ 0, 0, 0, 0, 0, 0, C(KEY_BACKSPACE), C(KEY_DOWN), C(KEY_LEFT), C(KEY_RIGHT)},
|
||||
|
||||
|
||||
|
||||
@ -47,109 +50,116 @@ char keys[ROWS][COLS] = {
|
||||
|
||||
|
||||
|
||||
char Fkeys[2][10] = {
|
||||
{C(KEY_1), C(KEY_2), C(KEY_3), C(KEY_4), C(KEY_5), C(KEY_6), C(KEY_7), C(KEY_8), C(KEY_9), C(KEY_0)},
|
||||
{C(KEY_F1), C(KEY_F2), C(KEY_F3), C(KEY_F4), C(KEY_F5), C(KEY_F6), C(KEY_F7), C(KEY_F8), C(KEY_F9), C(KEY_F10)}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Keyboard matrix
|
||||
Keyboard matrix
|
||||
|
||||
X0 1 2 3 4 5 6 7 8 9
|
||||
Y0 ESC 1 2 3 4 6 5 7 8 9
|
||||
Y0 ESC 1 2 3 4 6 5 7 8 9
|
||||
|
||||
1 TAB Q W E R Y T U I O
|
||||
1 TAB Q W E R Y T U I O
|
||||
|
||||
2 A D S H F G J K ; L
|
||||
2 A D S H F G J K ; L
|
||||
|
||||
3 Z X C V B N M < > ?
|
||||
3 Z X C V B N M < > ?
|
||||
|
||||
4 \ + 0 -
|
||||
4 \ + 0 -
|
||||
|
||||
5 ~ P [ ]
|
||||
5 ~ P [ ]
|
||||
|
||||
6 RET UP SPC "
|
||||
6 RET UP SPC "
|
||||
|
||||
7 DEL DN LT RT
|
||||
7 DEL DN LT RT
|
||||
|
||||
|
||||
Matrix
|
||||
Matrix
|
||||
J9 Teensy
|
||||
|
||||
X0 31 26
|
||||
1 24 4
|
||||
2 22 5
|
||||
3 8 14
|
||||
4 14 17
|
||||
5 6 13
|
||||
6 10 15
|
||||
7 1 3
|
||||
8 4 12
|
||||
9 2 11
|
||||
X0 31 26
|
||||
1 24 4
|
||||
2 22 5
|
||||
3 8 14
|
||||
4 14 17
|
||||
5 6 13
|
||||
6 10 15
|
||||
7 1 3
|
||||
8 4 12
|
||||
9 2 11
|
||||
|
||||
Y0 12 16
|
||||
1 33 25
|
||||
2 18 7
|
||||
3 20 38
|
||||
4 3 2
|
||||
5 5 1
|
||||
6 7 0
|
||||
7 9 27
|
||||
Y0 12 16
|
||||
1 33 25
|
||||
2 18 7
|
||||
3 20 38
|
||||
4 3 2
|
||||
5 5 1
|
||||
6 7 0
|
||||
7 9 27
|
||||
|
||||
NC 13
|
||||
NC 13
|
||||
17
|
||||
30
|
||||
|
||||
GND 21
|
||||
GND 21
|
||||
|
||||
SFT 34 24
|
||||
CTL 32 23
|
||||
CMD 16 8
|
||||
CMD 26 20
|
||||
CAPS 28 21
|
||||
SFT 34 24
|
||||
CTL 32 23
|
||||
CMD 16 8
|
||||
CMD 26 20
|
||||
CAPS 28 21
|
||||
|
||||
|
||||
J9 pinout
|
||||
1 X7
|
||||
2 X9
|
||||
3 Y4
|
||||
4 X8
|
||||
5 Y5
|
||||
6 X5
|
||||
7 Y6
|
||||
8 X3
|
||||
9 Y7
|
||||
10 X6
|
||||
11 DISK LED (5v)
|
||||
12 Y0
|
||||
13 NC
|
||||
14 X4
|
||||
15 KEYBOARD SW
|
||||
16 CLOSED APPLE
|
||||
17 NC
|
||||
18 Y2
|
||||
19 40/80 COL SWITCH
|
||||
20 Y3
|
||||
21 GROUND ???
|
||||
22 X2
|
||||
23 GROUND ???
|
||||
24 X1
|
||||
25 POWER LED (5v)
|
||||
26 OPEN APPLE
|
||||
27 LED GROUND ???
|
||||
28 CAPS LOCK
|
||||
29 RESET
|
||||
30 NC
|
||||
31 X0
|
||||
32 CONTROL
|
||||
33 Y1
|
||||
34 SHIFT
|
||||
J9 pinout
|
||||
1 X7
|
||||
2 X9
|
||||
3 Y4
|
||||
4 X8
|
||||
5 Y5
|
||||
6 X5
|
||||
7 Y6
|
||||
8 X3
|
||||
9 Y7
|
||||
10 X6
|
||||
11 DISK LED (5v)
|
||||
12 Y0
|
||||
13 NC
|
||||
14 X4
|
||||
15 KEYBOARD SW
|
||||
16 CLOSED APPLE
|
||||
17 NC
|
||||
18 Y2
|
||||
19 40/80 COL SWITCH
|
||||
20 Y3
|
||||
21 GROUND ???
|
||||
22 X2
|
||||
23 GROUND ???
|
||||
24 X1
|
||||
25 POWER LED (5v)
|
||||
26 OPEN APPLE
|
||||
27 LED GROUND ???
|
||||
28 CAPS LOCK
|
||||
29 RESET
|
||||
30 NC
|
||||
31 X0
|
||||
32 CONTROL
|
||||
33 Y1
|
||||
34 SHIFT
|
||||
|
||||
|
||||
*/
|
||||
|
||||
byte rowPins[ROWS] = { // Y0 - Y9
|
||||
16,25,7,38,2,1,0,27}; //connect to the row pinouts of the keypad
|
||||
16, 25, 7, 38, 2, 1, 0, 27
|
||||
}; //connect to the row pinouts of the keypad
|
||||
|
||||
byte colPins[COLS] = { // X0 - X7
|
||||
26,4,5,14,17,13,15,3,12,11 }; //connect to the column pinouts of the keypad
|
||||
26, 4, 5, 14, 17, 13, 15, 3, 12, 11
|
||||
}; //connect to the column pinouts of the keypad
|
||||
|
||||
Keypad KPD = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
|
||||
|
||||
@ -163,11 +173,11 @@ const int CAPSPin = 21;
|
||||
// these pins are special in that they are dis/connected to ground, instead of to a row/col
|
||||
|
||||
|
||||
/***
|
||||
/***
|
||||
|
||||
open/closed apple are grounded through resistors on the //c. need to detect voltage drop as analogread, not digital.
|
||||
open/closed apple are grounded through resistors on the //c. need to detect voltage drop as analogread, not digital.
|
||||
|
||||
must be on analog pin.
|
||||
must be on analog pin.
|
||||
|
||||
***/
|
||||
|
||||
@ -180,16 +190,16 @@ char modifierKeys[4];
|
||||
|
||||
|
||||
|
||||
#define KEY_CAPS_UNLOCK 0
|
||||
#define KEY_CAPS_UNLOCK 0
|
||||
|
||||
boolean resetCapsLock = false; // Allows one caps unlock signal.
|
||||
unsigned long dTime = 0;
|
||||
char CAPSState; // Initialize this to a reasonable value.
|
||||
boolean resetCapsLock = false; // Allows one caps unlock signal.
|
||||
unsigned long dTime = 0;
|
||||
boolean CAPSLock = false; // Initialize this to a reasonable value.
|
||||
|
||||
boolean FKEYS = false; // used to set numbers to F-Key equivalent. currently tied to caps lock
|
||||
boolean FKEYS = false; // used to set numbers to F-Key equivalent. currently tied to caps lock
|
||||
|
||||
|
||||
void setup(){
|
||||
void setup() {
|
||||
|
||||
pinMode(SHIFTPin, INPUT);
|
||||
pinMode(CTRLPin, INPUT);
|
||||
@ -198,164 +208,179 @@ void setup(){
|
||||
|
||||
digitalWrite(APPLEPin1, HIGH);
|
||||
digitalWrite(APPLEPin2, HIGH);
|
||||
|
||||
|
||||
digitalWrite(SHIFTPin, HIGH);
|
||||
digitalWrite(CTRLPin, HIGH);
|
||||
|
||||
|
||||
pinMode(CAPSPin, INPUT);
|
||||
digitalWrite(CAPSPin, HIGH);
|
||||
|
||||
|
||||
// Turn on the DISK READ LED (rev4 board)
|
||||
// digitalWrite(LEDPin, HIGH);
|
||||
// digitalWrite(LEDPin, HIGH);
|
||||
// This gives time for the keyboard to hook up to the PC.
|
||||
// Otherwise the caps lock state may be incorrect.
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
//probably should be on an interrupt, to catch high->low transition
|
||||
//probably should be on an interrupt, to catch high->low transition
|
||||
|
||||
// Only do something if the pin is different from previous state.
|
||||
if ( (CAPSState!=digitalRead(CAPSPin)) && !resetCapsLock) {
|
||||
CAPSState = digitalRead(CAPSPin); // Remember new CAPSState.
|
||||
Keyboard.set_key6(KEY_CAPS_LOCK); // Send KEY_CAPS_LOCK.
|
||||
dTime = millis(); // Reset delay timer.
|
||||
resetCapsLock = true;
|
||||
}
|
||||
if ( resetCapsLock && (millis()-dTime) > 10) {
|
||||
Keyboard.set_key6(KEY_CAPS_UNLOCK);
|
||||
resetCapsLock = false;
|
||||
}
|
||||
// Only do something if the pin is different from previous state.
|
||||
boolean newCaps = digitalRead(CAPSPin) ? false : true;
|
||||
|
||||
FKEYS = !CAPSState;
|
||||
if ( (CAPSLock != newCaps) && !resetCapsLock)
|
||||
{
|
||||
CAPSLock = newCaps; // Remember new CAPSLock.
|
||||
Keyboard.set_key6((uint8_t) KEY_CAPS_LOCK); // Send KEY_CAPS_LOCK.
|
||||
dTime = millis(); // Reset delay timer.
|
||||
resetCapsLock = true;
|
||||
|
||||
// Serial.print("Caps = ");
|
||||
// Serial.println(CAPSLock);
|
||||
|
||||
/*char CAPSState = digitalRead(CAPSPin);
|
||||
if (CAPSState == LOW) {
|
||||
Keyboard.set_key6(KEY_CAPS_LOCK);
|
||||
} else {
|
||||
Keyboard.set_key6(0);
|
||||
}
|
||||
// Turn on the LED for caps lock.
|
||||
// digitalWrite(LED, CAPSLock ? HIGH : LOW);
|
||||
|
||||
}
|
||||
|
||||
if ( resetCapsLock && (millis() - dTime) > 10)
|
||||
{
|
||||
Keyboard.set_key6(KEY_CAPS_UNLOCK);
|
||||
resetCapsLock = false;
|
||||
}
|
||||
|
||||
// If caps lock is set, then turn number keys into function keys.
|
||||
FKEYS = CAPSLock;
|
||||
|
||||
/*char CAPSState = digitalRead(CAPSPin);
|
||||
if (CAPSState == LOW) {
|
||||
Keyboard.set_key6(KEY_CAPS_LOCK);
|
||||
} else {
|
||||
Keyboard.set_key6(0);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
char SHIFTState = digitalRead(SHIFTPin);
|
||||
|
||||
if (SHIFTState == LOW) {
|
||||
modifierKeys[0] = MODIFIERKEY_SHIFT;
|
||||
digitalWrite(SHIFTPin, HIGH);
|
||||
} else {
|
||||
digitalWrite(SHIFTPin, HIGH);
|
||||
modifierKeys[0] = 0;
|
||||
char SHIFTState = digitalRead(SHIFTPin);
|
||||
|
||||
if (SHIFTState == LOW) {
|
||||
modifierKeys[0] = MODIFIERKEY_SHIFT;
|
||||
digitalWrite(SHIFTPin, HIGH);
|
||||
} else {
|
||||
digitalWrite(SHIFTPin, HIGH);
|
||||
modifierKeys[0] = 0;
|
||||
}
|
||||
|
||||
char CTRLState = digitalRead(CTRLPin);
|
||||
|
||||
if (CTRLState == LOW) {
|
||||
modifierKeys[1] = MODIFIERKEY_CTRL;
|
||||
digitalWrite(CTRLPin, HIGH);
|
||||
} else {
|
||||
modifierKeys[1] = 0;
|
||||
digitalWrite(CTRLPin, HIGH);
|
||||
}
|
||||
|
||||
|
||||
|
||||
char OAPPLEState = analogRead(APPLEPin2);
|
||||
char CAPPLEState = analogRead(APPLEPin1);
|
||||
|
||||
|
||||
// *** NOW USING CLOSED APPLE AS ALT/OPTION
|
||||
if (OAPPLEState < 20) {
|
||||
modifierKeys[2] = MODIFIERKEY_GUI;
|
||||
digitalWrite(APPLEPin1, HIGH);
|
||||
} else {
|
||||
modifierKeys[2] = 0;
|
||||
digitalWrite(APPLEPin1, HIGH);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (CAPPLEState < 20) {
|
||||
modifierKeys[3] = MODIFIERKEY_ALT;
|
||||
digitalWrite(APPLEPin2, HIGH);
|
||||
} else {
|
||||
modifierKeys[3] = 0;
|
||||
digitalWrite(APPLEPin2, HIGH);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// to use the TILDE key as ALT/OPTION
|
||||
/* modifierKeys[3] = 0;
|
||||
if( KPD.isPressed(KEY_TILDE) ) {
|
||||
modifierKeys[3] = MODIFIERKEY_ALT;
|
||||
}
|
||||
*/
|
||||
|
||||
// *** NOW USING CLOSED APPLE AS ALT/OPTION
|
||||
|
||||
Keyboard.set_modifier( modifierKeys[0] | modifierKeys[1] | modifierKeys[2] | modifierKeys[3] );
|
||||
|
||||
KPD.getKeys(); // Scan for all pressed keys. 6 Max, + 4 modifiers. Should be plenty, but can be extended to 10+
|
||||
|
||||
// Set keyboard keys to default values.
|
||||
Keyboard.set_key1(0);
|
||||
Keyboard.set_key2(0);
|
||||
Keyboard.set_key3(0);
|
||||
Keyboard.set_key4(0);
|
||||
Keyboard.set_key5(0);
|
||||
//Keyboard.set_key6(0);
|
||||
|
||||
/* based on suggestion from Craig Brooks <s.craig.brooks@gmail.com>
|
||||
uses CAPS LOCK to turn number keys into F-Key equivalent.
|
||||
*/
|
||||
|
||||
// Update keyboard keys to active values.
|
||||
if ( KPD.key[0].kchar && ( KPD.key[0].kstate == PRESSED || KPD.key[0].kstate == HOLD )) {
|
||||
|
||||
//Serial.println(FKEYS);
|
||||
|
||||
|
||||
if (FKEYS) {
|
||||
// number keys 1 through 0 for f1 - f10
|
||||
if ((KPD.key[0].kchar >= 0x1E) && (KPD.key[0].kchar <= 0x27)) {
|
||||
KPD.key[0].kchar += 0x1C;
|
||||
|
||||
// Serial.println( KPD.key[0].kchar, HEX );
|
||||
|
||||
// - and = for f11 and f12
|
||||
} else if ( KPD.key[0].kchar == 0x2D || KPD.key[0].kchar == 0x2E ) {
|
||||
KPD.key[0].kchar += 0x17;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
char CTRLState = digitalRead(CTRLPin);
|
||||
|
||||
if (CTRLState == LOW) {
|
||||
modifierKeys[1] = MODIFIERKEY_CTRL;
|
||||
digitalWrite(CTRLPin, HIGH);
|
||||
} else {
|
||||
modifierKeys[1] = 0;
|
||||
digitalWrite(CTRLPin, HIGH);
|
||||
}
|
||||
Keyboard.set_key1( KPD.key[0].kchar );
|
||||
|
||||
|
||||
}
|
||||
|
||||
char OAPPLEState = analogRead(APPLEPin2);
|
||||
char CAPPLEState = analogRead(APPLEPin1);
|
||||
if ( KPD.key[1].kchar && ( KPD.key[1].kstate == PRESSED || KPD.key[1].kstate == HOLD ))
|
||||
Keyboard.set_key2( KPD.key[1].kchar );
|
||||
|
||||
if ( KPD.key[2].kchar && ( KPD.key[2].kstate == PRESSED || KPD.key[2].kstate == HOLD ))
|
||||
Keyboard.set_key3( KPD.key[2].kchar );
|
||||
|
||||
// *** NOW USING CLOSED APPLE AS ALT/OPTION
|
||||
if (OAPPLEState < 20) {
|
||||
modifierKeys[2] = MODIFIERKEY_GUI;
|
||||
digitalWrite(APPLEPin1, HIGH);
|
||||
} else {
|
||||
modifierKeys[2] = 0;
|
||||
digitalWrite(APPLEPin1, HIGH);
|
||||
}
|
||||
if ( KPD.key[3].kchar && ( KPD.key[3].kstate == PRESSED || KPD.key[3].kstate == HOLD ))
|
||||
Keyboard.set_key4( KPD.key[3].kchar );
|
||||
|
||||
if ( KPD.key[4].kchar && ( KPD.key[4].kstate == PRESSED || KPD.key[4].kstate == HOLD ))
|
||||
Keyboard.set_key5( KPD.key[4].kchar );
|
||||
|
||||
//if( KPD.key[5].kchar && ( KPD.key[5].kstate==PRESSED || KPD.key[5].kstate==HOLD ))
|
||||
//Keyboard.set_key6( KPD.key[5].kchar );
|
||||
|
||||
if (CAPPLEState < 20) {
|
||||
modifierKeys[3] = MODIFIERKEY_ALT;
|
||||
digitalWrite(APPLEPin2, HIGH);
|
||||
} else {
|
||||
modifierKeys[3] = 0;
|
||||
digitalWrite(APPLEPin2, HIGH);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// to use the TILDE key as ALT/OPTION
|
||||
/* modifierKeys[3] = 0;
|
||||
if( KPD.isPressed(KEY_TILDE) ) {
|
||||
modifierKeys[3] = MODIFIERKEY_ALT;
|
||||
}
|
||||
*/
|
||||
|
||||
// *** NOW USING CLOSED APPLE AS ALT/OPTION
|
||||
|
||||
Keyboard.set_modifier( modifierKeys[0] | modifierKeys[1] | modifierKeys[2] | modifierKeys[3] );
|
||||
|
||||
KPD.getKeys(); // Scan for all pressed keys. 6 Max, + 4 modifiers. Should be plenty, but can be extended to 10+
|
||||
|
||||
// Set keyboard keys to default values.
|
||||
Keyboard.set_key1(0);
|
||||
Keyboard.set_key2(0);
|
||||
Keyboard.set_key3(0);
|
||||
Keyboard.set_key4(0);
|
||||
Keyboard.set_key5(0);
|
||||
//Keyboard.set_key6(0);
|
||||
|
||||
/* based on suggestion from Craig Brooks <s.craig.brooks@gmail.com>
|
||||
uses CAPS LOCK to turn number keys into F-Key equivalent.
|
||||
*/
|
||||
|
||||
// Update keyboard keys to active values.
|
||||
if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) {
|
||||
|
||||
//Serial.println(FKEYS);
|
||||
|
||||
|
||||
if (FKEYS) {
|
||||
// number keys 1 through 0 for f1 - f10
|
||||
if((KPD.key[0].kchar >= 0x1E) && (KPD.key[0].kchar <= 0x27)){
|
||||
KPD.key[0].kchar += 0x1C;
|
||||
|
||||
// Serial.println( KPD.key[0].kchar, HEX );
|
||||
|
||||
// - and = for f11 and f12
|
||||
} else if( KPD.key[0].kchar == 0x2D || KPD.key[0].kchar == 0x2E ) {
|
||||
KPD.key[0].kchar += 0x17;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Keyboard.set_key1( KPD.key[0].kchar );
|
||||
|
||||
|
||||
}
|
||||
|
||||
if( KPD.key[1].kchar && ( KPD.key[1].kstate==PRESSED || KPD.key[1].kstate==HOLD ))
|
||||
Keyboard.set_key2( KPD.key[1].kchar );
|
||||
|
||||
if( KPD.key[2].kchar && ( KPD.key[2].kstate==PRESSED || KPD.key[2].kstate==HOLD ))
|
||||
Keyboard.set_key3( KPD.key[2].kchar );
|
||||
|
||||
if( KPD.key[3].kchar && ( KPD.key[3].kstate==PRESSED || KPD.key[3].kstate==HOLD ))
|
||||
Keyboard.set_key4( KPD.key[3].kchar );
|
||||
|
||||
if( KPD.key[4].kchar && ( KPD.key[4].kstate==PRESSED || KPD.key[4].kstate==HOLD ))
|
||||
Keyboard.set_key5( KPD.key[4].kchar );
|
||||
|
||||
//if( KPD.key[5].kchar && ( KPD.key[5].kstate==PRESSED || KPD.key[5].kstate==HOLD ))
|
||||
//Keyboard.set_key6( KPD.key[5].kchar );
|
||||
|
||||
Keyboard.send_now();
|
||||
Keyboard.set_modifier(0);
|
||||
Keyboard.send_now();
|
||||
Keyboard.set_modifier(0);
|
||||
|
||||
}
|
||||
|
||||
|
BIN
Joystick Interface/PCB/USB_Joystick-rev6.fzz
Normal file
BIN
Joystick Interface/PCB/USB_Joystick-rev6.fzz
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Converts Apple M0100 mouse to USB, using Adafruit Trinket Pro 5v.
|
||||
*
|
||||
* Accelerated mouse tracking, based on speed. Faster movement
|
||||
@ -8,7 +8,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include <cmdline_defs.h>
|
||||
#include <ProTrinketMouse.h>
|
||||
|
227
USB Mouse Interface/arduino/USBHIDBootMouse/USBHIDBootMouse.ino
Normal file
227
USB Mouse Interface/arduino/USBHIDBootMouse/USBHIDBootMouse.ino
Normal file
@ -0,0 +1,227 @@
|
||||
#include <hidboot.h>
|
||||
#include <usbhub.h>
|
||||
|
||||
// Satisfy the IDE, which needs to see the include statment in the ino too.
|
||||
#ifdef dobogusinclude
|
||||
#include <spi4teensy3.h>
|
||||
#include <SPI.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// pin assignments
|
||||
|
||||
int XMOVE = 3;
|
||||
int XDIR = 1;
|
||||
int YMOVE = 2;
|
||||
int YDIR = 0;
|
||||
int CLICKPIN = 4;
|
||||
long XDELAY;
|
||||
long YDELAY;
|
||||
long MOVEMENTBASE = 50;
|
||||
int MOVEMENTFACTORX = 0;
|
||||
int MOVEMENTFACTORY = 0;
|
||||
int MOVEMENTTHRESHOLD = 1;
|
||||
int MOVEMENTDENOM = 12;
|
||||
|
||||
class MouseRptParser : public MouseReportParser
|
||||
{
|
||||
protected:
|
||||
void OnMouseMove (MOUSEINFO *mi);
|
||||
void OnLeftButtonUp (MOUSEINFO *mi);
|
||||
void OnLeftButtonDown (MOUSEINFO *mi);
|
||||
void OnRightButtonUp (MOUSEINFO *mi);
|
||||
void OnRightButtonDown (MOUSEINFO *mi);
|
||||
void OnMiddleButtonUp (MOUSEINFO *mi);
|
||||
void OnMiddleButtonDown (MOUSEINFO *mi);
|
||||
};
|
||||
void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
|
||||
{
|
||||
|
||||
// XDELAY = MOVEMENTBASE + (1 - (abs(mi->dX) / 255.000)) * MOVEMENTFACTOR;
|
||||
// YDELAY = MOVEMENTBASE + (1 - (abs(mi->dY) / 127.000)) * MOVEMENTFACTOR;
|
||||
// Serial.print("dx=");
|
||||
// Serial.println(XDELAY);
|
||||
// Serial.print(" dy=");
|
||||
// Serial.println(YDELAY);
|
||||
// delayMicroseconds(XDELAY);
|
||||
|
||||
|
||||
MOVEMENTFACTORX = 1 + (abs(mi->dX)) / MOVEMENTDENOM;
|
||||
//Serial.println(MOVEMENTFACTOR);
|
||||
for (int i = 0; i < MOVEMENTFACTORX; i++) {
|
||||
|
||||
if (mi->dX > MOVEMENTTHRESHOLD) {
|
||||
|
||||
digitalWrite(XMOVE, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XDIR, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XMOVE, LOW);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XDIR, LOW);
|
||||
|
||||
}
|
||||
if (mi->dX < -1 * MOVEMENTTHRESHOLD) {
|
||||
digitalWrite(XDIR, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XMOVE, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XDIR, LOW);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(XMOVE, LOW);
|
||||
|
||||
}
|
||||
}
|
||||
MOVEMENTFACTORY = 1 + (abs(mi->dY)) / MOVEMENTDENOM;
|
||||
for (int i = 0; i < MOVEMENTFACTORY; i++) {
|
||||
if (mi->dY > MOVEMENTTHRESHOLD) {
|
||||
|
||||
digitalWrite(YMOVE, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YDIR, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YMOVE, LOW);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YDIR, LOW);
|
||||
|
||||
}
|
||||
|
||||
if (mi->dY < -1 * MOVEMENTTHRESHOLD) {
|
||||
digitalWrite(YDIR, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YMOVE, HIGH);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YDIR, LOW);
|
||||
delayMicroseconds(MOVEMENTBASE);
|
||||
digitalWrite(YMOVE, LOW);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
XDIR = XMOVE = LOW
|
||||
|
||||
if X > 0
|
||||
XMOVE HIGH
|
||||
delay
|
||||
XDIR HIGH
|
||||
delay
|
||||
XMOVE LOW
|
||||
delay
|
||||
XDIR LOW
|
||||
|
||||
else if X < 0
|
||||
XDIR HIGH
|
||||
delay
|
||||
XMOVE HIGH
|
||||
delay
|
||||
XDIR LOW
|
||||
delay
|
||||
XMOVE LOW
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
};
|
||||
void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi)
|
||||
{
|
||||
// Serial.println("L Butt Up");
|
||||
digitalWrite(CLICKPIN, HIGH);
|
||||
};
|
||||
void MouseRptParser::OnLeftButtonDown (MOUSEINFO *mi)
|
||||
{
|
||||
// Serial.println("L Butt Dn");
|
||||
digitalWrite(CLICKPIN, LOW);
|
||||
};
|
||||
void MouseRptParser::OnRightButtonUp (MOUSEINFO *mi)
|
||||
{
|
||||
// Serial.println("R Butt Up");
|
||||
};
|
||||
void MouseRptParser::OnRightButtonDown (MOUSEINFO *mi)
|
||||
{
|
||||
if (MOVEMENTTHRESHOLD == 1) {
|
||||
MOVEMENTTHRESHOLD = 0;
|
||||
} else {
|
||||
MOVEMENTTHRESHOLD = 1;
|
||||
}
|
||||
|
||||
if (MOVEMENTDENOM == 12) {
|
||||
MOVEMENTDENOM = 8;
|
||||
} else {
|
||||
MOVEMENTDENOM = 12;
|
||||
}
|
||||
|
||||
if (MOVEMENTBASE == 50) {
|
||||
MOVEMENTBASE = 100;
|
||||
} else {
|
||||
MOVEMENTBASE = 50;
|
||||
}
|
||||
|
||||
// Serial.println("R Butt Dn");
|
||||
};
|
||||
void MouseRptParser::OnMiddleButtonUp (MOUSEINFO *mi)
|
||||
{
|
||||
// Serial.println("M Butt Up");
|
||||
};
|
||||
void MouseRptParser::OnMiddleButtonDown (MOUSEINFO *mi)
|
||||
{
|
||||
// Serial.println("M Butt Dn");
|
||||
};
|
||||
|
||||
USB Usb;
|
||||
USBHub Hub(&Usb);
|
||||
HIDBoot<HID_PROTOCOL_MOUSE> HidMouse(&Usb);
|
||||
|
||||
uint32_t next_time;
|
||||
|
||||
MouseRptParser Prs;
|
||||
|
||||
void setup()
|
||||
{
|
||||
|
||||
pinMode(XMOVE, OUTPUT);
|
||||
pinMode(XDIR, OUTPUT);
|
||||
pinMode(YMOVE, OUTPUT);
|
||||
pinMode(YDIR, OUTPUT);
|
||||
pinMode(CLICKPIN, OUTPUT);
|
||||
|
||||
|
||||
|
||||
/* Serial.begin( 115200 );
|
||||
#if !defined(__MIPSEL__)
|
||||
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
|
||||
#endif
|
||||
Serial.println("Start");
|
||||
*/
|
||||
if (Usb.Init() == -1)
|
||||
Serial.println("OSC did not start.");
|
||||
|
||||
delay( 200 );
|
||||
|
||||
next_time = millis() + 5000;
|
||||
|
||||
HidMouse.SetReportParser(0, (HIDReportParser*)&Prs);
|
||||
|
||||
|
||||
|
||||
digitalWrite(XMOVE, LOW);
|
||||
digitalWrite(XDIR, LOW);
|
||||
digitalWrite(YMOVE, LOW);
|
||||
digitalWrite(YDIR, LOW);
|
||||
digitalWrite(CLICKPIN, HIGH);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
Usb.Task();
|
||||
}
|
||||
|
@ -0,0 +1,853 @@
|
||||
:100000000C945E000C9486000C9486000C94860080
|
||||
:100010000C9486000C9486000C9486000C94860048
|
||||
:100020000C9486000C9486000C9486000C94860038
|
||||
:100030000C9486000C9486000C9486000C94860028
|
||||
:100040000C948D160C9486000C941E180C94501869
|
||||
:100050000C9486000C9486000C9486000C94860008
|
||||
:100060000C9486000C948600000000080002010039
|
||||
:100070000003040700000000000000000102040863
|
||||
:100080001020408001020408102001020408102002
|
||||
:10009000040404040404040402020202020203032E
|
||||
:1000A0000303030300000000250028002B000000CC
|
||||
:1000B0000000240027002A00D906801811241FBE42
|
||||
:1000C000CFEFD8E0DEBFCDBF11E0A0E0B1E0E4E8C3
|
||||
:1000D000F4E302C005900D92AC3AB107D9F723E0E2
|
||||
:1000E000ACEAB1E001C01D92AE30B207E1F710E01A
|
||||
:1000F000CCEBD0E004C02297FE010E94351AC83B29
|
||||
:10010000D107C9F70E9418190C94401A0C940000EA
|
||||
:1001100080E00895089580E0089581E008950895AD
|
||||
:100120008091080190910901019729F41092090129
|
||||
:100130001092080106C081E090E09093090180933D
|
||||
:10014000080180910601909107010C9719F488E04D
|
||||
:1001500090E002C08CE090E090930701809306014C
|
||||
:1001600080910A0190910B01A0910C01B0910D01B9
|
||||
:10017000C297A105B10529F484E690E0A0E0B0E0C3
|
||||
:1001800004C082E390E0A0E0B0E080930A01909385
|
||||
:100190000B01A0930C01B0930D01089508950895EB
|
||||
:1001A000860F911D860F911DFC015687458781E0C2
|
||||
:1001B0000895CF93DF93EC018C819D81DC01ED915B
|
||||
:1001C000FC910480F581E02D6E8109951F86188AC7
|
||||
:1001D00081E08A8B1E821B8A1C8A1D8A1E8A1F8AC6
|
||||
:1001E00080E0DF91CF910895FC018681089581E040
|
||||
:1001F000633009F080E0089581E0623009F080E02A
|
||||
:100200000895860F911D860F911DFC0185859685A9
|
||||
:100210000895FC0187890895EF92FF92CF93DF93B1
|
||||
:10022000FC01E7012289223029F16787408B8B810D
|
||||
:1002300083708330F9F48A8187FF1CC08E81908D92
|
||||
:10024000981708F4808F822F90E0DC01AA0FBB1F63
|
||||
:10025000A80FB91FAE0FBF1F8A818F7017968C939E
|
||||
:1002600017978C8118968C93189784E019968C9325
|
||||
:100270002F5F228BDF91CF91FF90EF900895EF9247
|
||||
:10028000FF920F9302970E940C010F91FF90EF9045
|
||||
:100290000895089561E080910E010C94E81760E0E4
|
||||
:1002A00080910E010C94E8170F931F93CF93DF9367
|
||||
:1002B000EB018981992787FD909597FF03C0919560
|
||||
:1002C0008195910960910601709107010E941F1AA2
|
||||
:1002D0006F5F7F4F70935A026093590200E010E005
|
||||
:1002E0008091590290915A02081719070CF068C0C2
|
||||
:1002F0002981332727FD30958091080190910901CC
|
||||
:100300008217930734F561E0809114010E94E81789
|
||||
:1003100080910A0190910B010E94401761E0809149
|
||||
:1003200012010E94E81780910A0190910B010E942E
|
||||
:10033000401760E0809114010E94E81780910A0143
|
||||
:1003400090910B010E94401760E0809112010E9481
|
||||
:10035000E8172981332727FD309580910801909176
|
||||
:1003600009019195819591092817390734F561E0C4
|
||||
:10037000809112010E94E81780910A0190910B016F
|
||||
:100380000E94401761E0809114010E94E81780915B
|
||||
:100390000A0190910B010E94401760E080911201C8
|
||||
:1003A0000E94E81780910A0190910B010E9440176A
|
||||
:1003B00060E0809114010E94E8170F5F1F4F90CFFB
|
||||
:1003C0008A81992787FD909597FF03C09195819524
|
||||
:1003D000910960910601709107010E941F1A6F5FD9
|
||||
:1003E0007F4F709358026093570200E010E08091B5
|
||||
:1003F000570290915802081719070CF068C02A811B
|
||||
:10040000332727FD309580910801909109018217CB
|
||||
:10041000930734F561E0809110010E94E817809104
|
||||
:100420000A0190910B010E94401761E080915B02EC
|
||||
:100430000E94E81780910A0190910B010E944017D9
|
||||
:1004400060E0809110010E94E81780910A0190916C
|
||||
:100450000B010E94401760E080915B020E94E81748
|
||||
:100460002A81332727FD3095809108019091090159
|
||||
:100470009195819591092817390734F561E08091AC
|
||||
:100480005B020E94E81780910A0190910B010E9483
|
||||
:10049000401761E0809110010E94E81780910A01E5
|
||||
:1004A00090910B010E94401760E080915B020E94D6
|
||||
:1004B000E81780910A0190910B010E94401760E0BB
|
||||
:1004C000809110010E94E8170F5F1F4F90CFDF91BE
|
||||
:1004D000CF911F910F9108952F923F924F925F926B
|
||||
:1004E0006F927F928F929F92AF92BF92CF92DF9244
|
||||
:1004F000EF92FF920F931F93CF93DF9300D000D022
|
||||
:10050000CDB7DEB76C017C836B835A8349834C0182
|
||||
:1005100080E1880E911C5601A7E0AA0EB11C11E0E3
|
||||
:1005200044E0442E57E0352E3601B2E16B0E711CCB
|
||||
:1005300063E0262E72E0572E8B819C81892B09F473
|
||||
:1005400012C1F60180A1823061F128F4882349F0BC
|
||||
:10055000813079F0F1CF833041F1843009F44BC020
|
||||
:10056000EBCF54828581968190878783528651860E
|
||||
:1005700010A3AE014D5F5F4FBE016F5F7F4FC5019E
|
||||
:100580000E944C12882309F4EEC0D6011596ED9115
|
||||
:10059000FC911697808191968C9391978181929688
|
||||
:1005A0008C93F6017682658220A2D60192968C9178
|
||||
:1005B000843081F018F4823079F014C0853081F0F5
|
||||
:1005C000813281F4D60191968C9191978250149644
|
||||
:1005D0008C9308C0F60113A2D60114963C9202C077
|
||||
:1005E000F6018483F60185819681908787838481D3
|
||||
:1005F0008287818740A2D60192968C918430B1F097
|
||||
:10060000853009F442C0823009F06EC0AE014D5F02
|
||||
:100610005F4FBE016F5F7F4FC5010E944C12882360
|
||||
:1006200009F4A1C0F601858984A38EC0AE014D5F97
|
||||
:100630005F4FBE016F5F7F4FC5010E944C12882340
|
||||
:1006400009F491C0D60155968C915597833009F0E5
|
||||
:100650007BC056968C915697813009F075C098965C
|
||||
:100660009C91989757968C91992321F0882309F4AF
|
||||
:100670006BC003C0823009F067C0F60113A39289F2
|
||||
:1006800096A3938997A385A35FC0AE014D5F5F4F8B
|
||||
:10069000BE016F5F7F4FC5010E944C12882309F491
|
||||
:1006A00062C0D60193968C919397882309F44CC02D
|
||||
:1006B00012968D919C911397009709F445C0DC0127
|
||||
:1006C000ED91FC910190F081E02D7401D601959699
|
||||
:1006D0000C91959797962C91979796964C91969703
|
||||
:1006E00094966C91099530C0F60181A19585992366
|
||||
:1006F00019F0913031F023C090E0029797878687F8
|
||||
:1007000015872B813C8189819A81782F692FD601A9
|
||||
:100710001E964D915C911F9741155105E9F0019688
|
||||
:100720002115310541F041505109F601578746879F
|
||||
:1007300021503109EACF79836A831C821B82F6013A
|
||||
:1007400086859785892B79F4D60116969C928E9290
|
||||
:10075000159790961C92F0CE9A8389833C832B83C5
|
||||
:10076000F6011586ECCF0F900F900F900F90DF9150
|
||||
:10077000CF911F910F91FF90EF90DF90CF90BF909E
|
||||
:10078000AF909F908F907F906F905F904F903F9031
|
||||
:100790002F9008959FB7F89420916602809164028B
|
||||
:1007A000213019F48DBB9FBF08958FBF0895CF925C
|
||||
:1007B000DF92EF92FF920F931F93CF93DF93CDB70A
|
||||
:1007C000DEB762970FB6F894DEBF0FBECDBF6C01E7
|
||||
:1007D000DC0157968C91882369F00E94D716F601A8
|
||||
:1007E0000389148925893689601B710B820B930B51
|
||||
:1007F00097FF02C0F12C39C0F601838590E09A8BF7
|
||||
:10080000898BE12C8E010F5F1F4F9E012F5E3F4FA2
|
||||
:1008100042856681848195810E945F0EF82E811148
|
||||
:1008200018C029893A892330310598F0D6011D96E0
|
||||
:100830008D919C911E97009761F0DC01ED91FC91E8
|
||||
:100840000190F081E02D8E010F5F1F4F40E0B60157
|
||||
:1008500009950E94D716F601208D620F711D811D2A
|
||||
:10086000911D638B748B858B968B8F2D62960FB643
|
||||
:10087000F894DEBF0FBECDBFDF91CF911F910F91D6
|
||||
:10088000FF90EF90DF90CF9008953F924F925F924C
|
||||
:100890006F927F928F929F92AF92BF92CF92DF9290
|
||||
:1008A000EF92FF920F931F93CF93DF93CDB7DEB7F5
|
||||
:1008B000EB970FB6F894DEBF0FBECDBF7C01462E7E
|
||||
:1008C000342E522EDC011496AD90BC9015971696DE
|
||||
:1008D0008C911697811111C158961C92D501ED91FA
|
||||
:1008E000FC910190F081E02D60E0C50109956C015B
|
||||
:1008F000009711F486ED0BC1FC018080918081147A
|
||||
:10090000910409F4FCC03701F7E06F0E711CDC01A3
|
||||
:1009100011967C926E9214965C928E01065D1F4F2A
|
||||
:1009200028E030E040E060E0F701848195810E949A
|
||||
:100930005E0D182F8111E7C01AA5D6018D929C92E9
|
||||
:10094000D501ED91FC910280F381E02D232D40E053
|
||||
:10095000642DC5010995F7018683882309F4D1C068
|
||||
:1009600099A99087282F40E060E0848195810E94BA
|
||||
:100970000B0E982ED501ED91FC91D60114961C9288
|
||||
:10098000882361F00480F581E02DD70116966C91E3
|
||||
:10099000C5010995F7011682892DB9C00190F08132
|
||||
:1009A000E02DD70116966C91C5010995009709F4C1
|
||||
:1009B000A1CF133108F012E1FC01548211110FC0D4
|
||||
:1009C0004BAC512CEDE2AE2EE1E0BE2E4701F2E041
|
||||
:1009D0008F0E911C6E0181E1C80ED11C39C0212FF0
|
||||
:1009E00030E08E01065D1F4F40E0D70116966C91F6
|
||||
:1009F000169714968D919C9115970E945E0D182F55
|
||||
:100A0000811171C0DDCFBA82A9829C828B821E8641
|
||||
:100A1000188A1F8619A21AA21BA219A6DF82CE82EB
|
||||
:100A2000D986C8868D818B878A87DD86CC868E01A4
|
||||
:100A30000F5F1F4F252D40E0F7016681848195816E
|
||||
:100A40000E94AC0DD70152968C91823019F05394CC
|
||||
:100A50005410D9CFF7018289823009F043C0930145
|
||||
:100A600042E06681848195810E94AC0868EE73E063
|
||||
:100A700080E090E00E940617D7011F962C911F97E7
|
||||
:100A800040E016966C91169714968D919C9115974F
|
||||
:100A90000E943A0E182F811126C068EE73E080E0A4
|
||||
:100AA00090E00E94061740E060E0C7010E94BF117D
|
||||
:100AB000182F811118C020E040E060E0C7010E94BB
|
||||
:100AC000951183E391E09A838983AE014F5F5F4F75
|
||||
:100AD00060E070E0C7010E94521181E0F701878B4E
|
||||
:100AE00080E015C011EDD701ED91FC910480F581F6
|
||||
:100AF000E02DC7010995812F0AC089ED08C087ED57
|
||||
:100B000006C084ED04C0F60191828082ECCFEB96A2
|
||||
:100B10000FB6F894DEBF0FBECDBFDF91CF911F910E
|
||||
:100B20000F91FF90EF90DF90CF90BF90AF909F908C
|
||||
:100B30008F907F906F905F904F903F90089520919D
|
||||
:100B40006602222399F03FB7F89420916602213083
|
||||
:100B500059F42DB3209364024DB320916502209582
|
||||
:100B600024232DBB3FBF02C0309364028CBD9DBDCA
|
||||
:100B7000089580EE91E00C9459102A9A0895CF932D
|
||||
:100B8000C82F80E591E00E949F052A98CEBD000005
|
||||
:100B90000DB407FEFDCF8EB51EBC00000DB407FEE0
|
||||
:100BA000FDCFCEB50E94BD058091660281110E94E5
|
||||
:100BB000CA038C2FCF9108951F93CF93DF931F9279
|
||||
:100BC000CDB7DEB7182F80E591E069830E949F05BD
|
||||
:100BD0002A98812F82608EBD69810DB407FEFDCFFA
|
||||
:100BE0008EB56EBD0DB407FEFDCF8EB50E94BD055E
|
||||
:100BF00080916602882331F00F90DF91CF911F9191
|
||||
:100C00000C94CA030F90DF91CF911F91089588EF44
|
||||
:100C10000E94BF05807C8034A1F018F4882301F184
|
||||
:100C20000895803819F0803CB9F0089588ED0E944D
|
||||
:100C3000BF0581FD0BC069EC88ED0E94DC0582E0F8
|
||||
:100C40000CC088ED0E94BF0581FDF5CF6BEC88EDEF
|
||||
:100C50000E94DC0583E001C081E08093AC0108952F
|
||||
:100C600061ED88ED0E94DC051092AC0108950F93B0
|
||||
:100C70001F93CF93DF938C01229A0E94BD050E949F
|
||||
:100C80005716229A0E94BD05219868E188E80E94C3
|
||||
:100C9000DC0560E288E70E94DC0560E088E70E94EE
|
||||
:100CA000DC05C0E0D0E088E60E94BF05219680FD0B
|
||||
:100CB00006C0CF3F8FEFD807B1F78FEF1DC061ECB3
|
||||
:100CC00088ED0E94DC0560E680ED0E94DC0564E0B2
|
||||
:100CD00088EE0E94DC0588EE0E94BF0582FFFBCFF4
|
||||
:100CE000C8010E94070660E288EC0E94DC0561E012
|
||||
:100CF00080E80E94DC0580E0DF91CF911F910F9189
|
||||
:100D0000089561E0809114010E94AF1761E0809125
|
||||
:100D100012010E94AF1761E0809110010E94AF178D
|
||||
:100D200061E080915B020E94AF1761E080910E014B
|
||||
:100D30000E94AF1780EE91E00E9437068F3F31F49A
|
||||
:100D400066E171E081E792E00E94051968EC70E0CD
|
||||
:100D500080E090E00E9406170E94D71668577C4EEC
|
||||
:100D60008F4F9F4F6093B2017093B3018093B40192
|
||||
:100D70009093B5018DEA91E09093C4018093C301F3
|
||||
:100D800060E0809114010E94E81760E080911201F8
|
||||
:100D90000E94E81760E0809110010E94E81760E06F
|
||||
:100DA00080915B020E94E81761E080910E010C9433
|
||||
:100DB000E81780EE91E00E946A0760EE71E08FEC28
|
||||
:100DC00091E00E94E31480EE91E09093BB01809348
|
||||
:100DD000BA018DE491E09093B7018093B6018BE660
|
||||
:100DE00091E09093B9018093B8011092C9011092DB
|
||||
:100DF000CA011092CB011092CC011092CD01109239
|
||||
:100E0000BD0188E08093BE018CE38093BF01109206
|
||||
:100E1000C0011092C10184E08093C20181E08093FF
|
||||
:100E2000C8011092C7011092C5011092C40110921E
|
||||
:100E3000C301E6E3F2E080E090E021913191232BC1
|
||||
:100E400051F4FC01EE0FFF1FEA5CFD4F86EB91E0D1
|
||||
:100E50009183808304C001968031910571F789E305
|
||||
:100E600091E09093AE018093AD010895FC01208143
|
||||
:100E70002EBDDC019B012150310951F011965C918E
|
||||
:100E800011970DB407FEFDCF4EB55EBD4D93F3CF68
|
||||
:100E9000FB013197E80FF91F0DB407FEFDCF8EB5AA
|
||||
:100EA000808308958EBD00000DB407FEFDCF8EB582
|
||||
:100EB000089580916602882361F09FB7F89420918D
|
||||
:100EC000660280916402213019F48DBB9FBF0895A2
|
||||
:100ED0008FBF0895FC0181E791E0918380831582A3
|
||||
:100EE000108681E0818712869F012E5F3F4F3783F6
|
||||
:100EF0002683128288E083838CE3848380E090E001
|
||||
:100F000041E0DF01A80FB91F1D961C921D971E9688
|
||||
:100F10004C931E971F961C921F971C963C932E93E2
|
||||
:100F20001B9705968B34910561F7EA58FF4F1082A5
|
||||
:100F300081E1809361020895CF92DF92EF92FF9258
|
||||
:100F40000F931F93CF93DF931F92CDB7DEB77C0132
|
||||
:100F50006623B1F18C01C12CD12CF801EA5AFF4F64
|
||||
:100F600080819181009719F1DC01ED91FC91008461
|
||||
:100F7000F185E02D698309956981861318C0F60112
|
||||
:100F8000BB96EE0FFF1FEE0DFF1D80819181DC01EE
|
||||
:100F9000ED91FC910480F581E02D0F90DF91CF91D0
|
||||
:100FA0001F910F91FF90EF90DF90CF900994BFEFCA
|
||||
:100FB000CB1ADB0A0E5F1F4FE0E1CE16D10469F6B3
|
||||
:100FC00080E00F90DF91CF911F910F91FF90EF90F4
|
||||
:100FD000DF90CF90089520E030E041E0FC01E20F87
|
||||
:100FE000F31F5585561739F04F5F2B5F3F4F403148
|
||||
:100FF000A9F780E00895842F0895EF92FF921F9340
|
||||
:10100000CF93DF9300D0CDB7DEB77C01162F67FDFD
|
||||
:101010005FC0283008F05CC0442331F0DC01159635
|
||||
:101020008C91873009F454C060E0C7012A8349835A
|
||||
:101030000E94EB072A814981882309F449C0E82FDF
|
||||
:10104000F0E0111123C085E08E9FD0018F9FB00D7D
|
||||
:101050001124AE0DBF1D442359F081E418968C93E2
|
||||
:10106000D70115968C9115978F5F15968C9303C0B9
|
||||
:1010700081E018968C9385E08E9FD0018F9FB00DF4
|
||||
:101080001124AE0DBF1D18968C9123C0612F67707F
|
||||
:10109000660F660F660F442361F06064D7011596F2
|
||||
:1010A0008C9115978F5F15968C938770687F682B4E
|
||||
:1010B00003C02770687B622B85E08E9FD0018F9FD5
|
||||
:1010C000B00D1124AE0DBF1D18966C93862F01C074
|
||||
:1010D00080E00F900F90DF91CF911F91FF90EF90E4
|
||||
:1010E0000895CF93DF93EC01662359F00E94EB073C
|
||||
:1010F000882349F09E0145E0849F200D311D112475
|
||||
:10110000C901069602C080E090E0DF91CF9108957A
|
||||
:10111000CF93DF931F92CDB7DEB749830E9471084A
|
||||
:101120004981009789F0DC01ED91FC91119730978E
|
||||
:1011300059F013969C9180E0891731F02081241793
|
||||
:1011400031F033968F5FF8CF80E090E001C0CF019F
|
||||
:101150000F90DF91CF910895EF92FF921F93CF935D
|
||||
:10116000DF931F92CDB7DEB7162F79012115310518
|
||||
:1011700069F049830E947108FC014981009741F0A0
|
||||
:101180001283F182E082438380E003C088ED01C0D6
|
||||
:1011900086ED0F90DF91CF911F91FF90EF90089512
|
||||
:1011A0002A9808951F93CF93DF931F92CDB7DEB790
|
||||
:1011B000182F80E591E00E949F050E94D008812FA2
|
||||
:1011C0000E94520780E00E94520789830E94BD0559
|
||||
:1011D0000E94590789810F90DF91CF911F91089547
|
||||
:1011E0001F93CF93DF9300D01F92CDB7DEB7182F98
|
||||
:1011F00080E591E06B830E949F050E94D0081260F9
|
||||
:1012000019836B816A8362E070E0CE0101960E94CF
|
||||
:1012100036070E94BD050E9459070F900F900F904E
|
||||
:10122000DF91CF911F9108958F929F92BF92CF929D
|
||||
:10123000DF92EF92FF920F931F93CF93DF931F9252
|
||||
:10124000CDB7DEB74C01B62E690149830E94710803
|
||||
:101250007C014981009709F443C0FC0180819181A0
|
||||
:10126000892B09F43FC06B2DC4010E948808F60148
|
||||
:10127000918380830097C1F1FC01228126952695F8
|
||||
:10128000822F90E0409764F441E050E060E070E02D
|
||||
:1012900004C0440F551F661F771F2A95D2F702C05E
|
||||
:1012A00040E050E841505109F801518340836B2DD3
|
||||
:1012B00080EE0E94F00888ED0E94D208F701948128
|
||||
:1012C000992339F0F401EA58FF4F60816260682B7E
|
||||
:1012D00002C0682F697F88ED0E94F00880E005C099
|
||||
:1012E00086ED03C087ED01C08BED0F90DF91CF91AC
|
||||
:1012F0001F910F91FF90EF90DF90CF90BF909F9044
|
||||
:101300008F9008958F929F92AF92BF92CF92DF926B
|
||||
:10131000EF92FF920F931F93CF93DF931F92CDB75E
|
||||
:10132000DEB7A62E890149830E94D7166B017C0186
|
||||
:1013300088E8C80E83E1D81EE11CF11C812C912C99
|
||||
:10134000B12C20E04981A42A29830E94D7166C1968
|
||||
:101350007D098E099F09298197FF2DC06A2D80EF95
|
||||
:101360000E94F0080E94D7166C197D098E099F090A
|
||||
:1013700097FF09C088EC0E94D20887FFF3CF60E88E
|
||||
:1013800088EC0E94F00888EF0E94D208282F2F7066
|
||||
:10139000243019F02E3059F00EC0EFEF8E1A9E0A4D
|
||||
:1013A0000115110589F28016910671F604C0B394F7
|
||||
:1013B000F3E0BF12C9CF822F0F90DF91CF911F9121
|
||||
:1013C0000F91FF90EF90DF90CF90BF90AF909F90E4
|
||||
:1013D0008F9008959F92AF92BF92CF92DF92EF923B
|
||||
:1013E000FF920F931F93CF93DF937C01B42E122FA4
|
||||
:1013F000AA24A394DC01A60FB11DA60FB11D6D0197
|
||||
:1014000086E5C80ED11CC42FD0E0AB96CC0FDD1FF3
|
||||
:10141000CE0DDF1DD6018D919C91DC01ED91FC91EB
|
||||
:101420000280F381E02D202F412F6B2D0995803E06
|
||||
:10143000C1F4B1100BC061E088EE0E94F00866E6CE
|
||||
:1014400070E080E090E00E94061715C088819981C5
|
||||
:10145000DC01ED91FC910284F385E02D612F09956B
|
||||
:101460000AC08D3031F48FEF8A0D833008F042C00E
|
||||
:1014700017C0811142C0F60180819181DC01ED919C
|
||||
:10148000FC910190F081E02D202F412F6B2D0995CB
|
||||
:10149000982EBDE08B130CC08FEF8A0D833050F473
|
||||
:1014A00064E670E080E090E00E940617A394B2CF5B
|
||||
:1014B000882311F1B1100BC061E088EE0E94F008A2
|
||||
:1014C00066E670E080E090E00E94061711C0EB2D08
|
||||
:1014D000F0E0BB96EE0FFF1FEE0DFF1D80819181A6
|
||||
:1014E000DC01ED91FC910284F385E02D612F0995DB
|
||||
:1014F000892D03C08DE001C080E0DF91CF911F9165
|
||||
:101500000F91FF90EF90DF90CF90BF90AF909F90A2
|
||||
:1015100008950F931F93CF93DF93D82FC62F8A017F
|
||||
:1015200080E591E00E949F050E94D0088D2F826087
|
||||
:101530000E945207D0E0209721F0BE01C8010E940E
|
||||
:101540003607C00FD11F0E94BD050E945907CE016A
|
||||
:10155000DF91CF911F910F9108952F923F924F925B
|
||||
:101560005F926F927F928F929F92AF92BF92CF9233
|
||||
:10157000DF92EF92FF920F931F93CF93DF9300D0F0
|
||||
:1015800000D01F92CDB7DEB77D836C835A0169010D
|
||||
:10159000FB0121808FEF820D803408F06FC00E9424
|
||||
:1015A000D7162B013C01F8E84F0EF3E15F1E611CDA
|
||||
:1015B000711CEC81FD81828180FF02C060E801C066
|
||||
:1015C00060E488EE0E94F00820E0312CC114D104C0
|
||||
:1015D00009F444C076012C143D0408F47101EA8238
|
||||
:1015E000A8016E2D80E10E94890A6E2D88E30E9479
|
||||
:1015F000F008EC81FD816081606280EF0E94F0085C
|
||||
:1016000088EC0E94D20887FFFBCF60E888EC0E943C
|
||||
:10161000F00888EF0E94D208282F2F70812C912C7F
|
||||
:101620001982222309F46BC02B830E94D7166419F8
|
||||
:101630007509860997092B8197FF61C0263001F152
|
||||
:101640002E3009F456C0243049F4FFEF8F1A9F0A58
|
||||
:10165000A114B10459F18A149B0441F588EF2B833E
|
||||
:101660000E94D20885FB882780F9EC81FD81928158
|
||||
:1016700080FB90F992832B81822F46C08AED44C073
|
||||
:1016800088EF0E94D20885FB882780F991E089279E
|
||||
:10169000EC81FD81928180FB90F9928390FF02C0E2
|
||||
:1016A00060E801C060E488EE0E94F00860E088E332
|
||||
:1016B0000E94F008F801608180E10E94F0086A81D0
|
||||
:1016C00088E30E94F008EC81FD816081606280EF18
|
||||
:1016D0000E94F00888EC0E94D20887FFFBCF60E8E8
|
||||
:1016E00088EC0E94F00888EF0E94D208282F2F7003
|
||||
:1016F00098CF89818F5F89838330C1F6AFCFCE18B1
|
||||
:10170000DF080E0D1F1D62CF0F900F900F900F90EE
|
||||
:101710000F90DF91CF911F910F91FF90EF90DF908D
|
||||
:10172000CF90BF90AF909F908F907F906F905F9081
|
||||
:101730004F903F902F9008952F923F924F925F923B
|
||||
:101740006F927F928F929F92AF92BF92CF92DF92D1
|
||||
:10175000EF92FF920F931F93CF93DF93CDB7DEB736
|
||||
:1017600029970FB6F894DEBF0FBECDBF1C01798755
|
||||
:1017700068875B834A836901D9018D909C9011979A
|
||||
:10178000FB01F181F9831D921C92DB0112968C9171
|
||||
:1017900081FF02C060E201C060E188EE0E94F008B3
|
||||
:1017A0008E2D90E0A0E0B0E08C839D83AE83BF835C
|
||||
:1017B000482C2A813B81A885B9854C9160E0C10104
|
||||
:1017C0000E948209F82EB6E08B1316C088EF0E94A3
|
||||
:1017D000D2088295817091E08927E885F985928108
|
||||
:1017E00080FB91F9928391FF02C060E201C060E149
|
||||
:1017F00088EE0E94F008DDCF811166C088EC0E945F
|
||||
:10180000D20882FF5FC080E30E94D208582E90E089
|
||||
:101810008816990608F4542CD6018D919C91652C5C
|
||||
:10182000712CF401E81BF90BCF01F7FF02C080E037
|
||||
:1018300090E05301861597050CF45C0180E591E07A
|
||||
:101840000E949F050E94D00888E00E945207A501CF
|
||||
:1018500060E070E0C8010E94391AA114B10421F0BF
|
||||
:10186000B501C8010E9436070A0D1B1D0E94BD0567
|
||||
:101870000E94590764E088EC0E94F008D6018D911F
|
||||
:101880009C911197860D971D8D939C93B9815B1642
|
||||
:1018900018F08815990560F088EF0E94D2088295AB
|
||||
:1018A0008170E885F985928180FB91F992830CC063
|
||||
:1018B000EE2009F47ECF6C817D818E819F810E9414
|
||||
:1018C000061777CF30EFF32E8F2D29960FB6F894A9
|
||||
:1018D000DEBF0FBECDBFDF91CF911F910F91FF9063
|
||||
:1018E000EF90DF90CF90BF90AF909F908F907F90C0
|
||||
:1018F0006F905F904F903F902F9008952F923F925E
|
||||
:101900004F925F926F927F928F929F92AF92BF920F
|
||||
:10191000CF92DF92EF92FF920F931F93CF93DF93BB
|
||||
:10192000CDB7DEB762970FB6F894DEBF0FBECDBF5E
|
||||
:101930003C01F42E322E202E5C2D4FA058A4C9A4B9
|
||||
:10194000DAA4188A1F861E861D868E01035F1F4F2C
|
||||
:101950009E01215F3F4F598B0E94140959898111C3
|
||||
:1019600094C039822A82EB825C83BE82AD829886E3
|
||||
:101970008F82AE014F5F5F4F68E080E20E94890A6C
|
||||
:101980002D853E854F2D60E1C3010E948209182FED
|
||||
:1019900081117AC0232C221C2224221CC114D104C0
|
||||
:1019A00009F466C0EF85F8898281222009F453C0CA
|
||||
:1019B00082608283540133243394A114B10409F466
|
||||
:1019C00055C05C864B864D855E856F857889E12C98
|
||||
:1019D00086019E01255F3F4FC3010E949C0B182F7B
|
||||
:1019E0008630B1F42F85388988EF298B3A8B0E9495
|
||||
:1019F000D20885FB882780F9832529893A89D9016E
|
||||
:101A000012969C91129780FB91F912969C93D5CFD8
|
||||
:101A100081113AC0EBA5FCA53097A1F00190F081AF
|
||||
:101A2000E02D0190F081E02DC4018A199B099A876D
|
||||
:101A300089876B857C859E01275F3F4FA6018BA51B
|
||||
:101A40009CA509958B859C85A81AB90A84159505CE
|
||||
:101A500008F0B3CF0DC0816082834D855E8586011D
|
||||
:101A60009201BF01C3010E94AD0A182F11110CC0D1
|
||||
:101A70002D853E85222011F060EA01C060E84F2DDF
|
||||
:101A8000C3010E94820901C0812F62960FB6F894AB
|
||||
:101A9000DEBF0FBECDBFDF91CF911F910F91FF90A1
|
||||
:101AA000EF90DF90CF90BF90AF909F908F907F90FE
|
||||
:101AB0006F905F904F903F902F9008958F929F92DC
|
||||
:101AC000AF92BF92CF92EF920F931F931F921F92EC
|
||||
:101AD0001F930F933F932F934901A12CB12CCC243A
|
||||
:101AE000C394E12C06E020E80E947E0C0F900F903A
|
||||
:101AF0000F900F900F900F901F910F91EF90CF903C
|
||||
:101B0000BF90AF909F908F9008958F929F92AF92C9
|
||||
:101B1000BF92CF92EF92FF920F931F921F92FF926C
|
||||
:101B2000EF923F932F934901A12CB12C52E0C52E87
|
||||
:101B3000E02E06E020E80E947E0C0F900F900F90A0
|
||||
:101B40000F900F900F900F91FF90EF90CF90BF905C
|
||||
:101B5000AF909F908F9008953F924F925F926F92B7
|
||||
:101B60007F928F929F92AF92BF92CF92DF92EF922D
|
||||
:101B7000FF920F931F93CF93DF93CDB7DEB7C0547F
|
||||
:101B8000D1090FB6F894DEBF0FBECDBF3C01562E73
|
||||
:101B9000442E322EB02ECE0101966C017C01022F14
|
||||
:101BA00029E030E0C3010E94850D81111BC08B80AC
|
||||
:101BB0009C801F93BF92DF92CF921F9280E48F93FD
|
||||
:101BC000A12CB12C62E0C62EE32C06E020E8442DC7
|
||||
:101BD000652DC3010E947E0C0F900F900F900F9007
|
||||
:101BE0000F900F90C05CDF4F0FB6F894DEBF0FBEB2
|
||||
:101BF000CDBFDF91CF911F910F91FF90EF90DF90BC
|
||||
:101C0000CF90BF90AF909F908F907F906F905F909C
|
||||
:101C10004F903F9008958F929F92AF92BF92CF9234
|
||||
:101C2000EF920F93CF931F921F921F921F921F92BA
|
||||
:101C30001F92812C912CA12CB12CC12CE22E05E0FD
|
||||
:101C400020E00E947E0CC82F6CE271E080E090E002
|
||||
:101C50000E9406170F900F900F900F900F900F900B
|
||||
:101C60008C2FCF910F91EF90CF90BF90AF909F901E
|
||||
:101C70008F9008958F929F92AF92BF92CF92EF92E2
|
||||
:101C80000F931F921F921F921F921F921F92812CDF
|
||||
:101C9000912CA12CB12CC12CE22E09E020E00E9455
|
||||
:101CA0007E0C0F900F900F900F900F900F900F9150
|
||||
:101CB000EF90CF90BF90AF909F908F9008958F92AC
|
||||
:101CC0009F92AF92BF92CF92DF92EF920F931F93AA
|
||||
:101CD000CF93DF9300D000D0CDB7DEB76C015901B0
|
||||
:101CE00048011C821B821A8219828E010F5F1F4FCE
|
||||
:101CF0009E012D5F3F4F0E941409811109C0498147
|
||||
:101D00005A816B817C8184019501C6010E949C0BE4
|
||||
:101D10000F900F900F900F90DF91CF911F910F9127
|
||||
:101D2000EF90DF90CF90BF90AF909F908F900895ED
|
||||
:101D3000CF92DF92FF920F931F93CF93DF9300D048
|
||||
:101D4000CDB7DEB76C01662309F442C0062F10E060
|
||||
:101D500085E0689FB0011124F601E60FF71F80852A
|
||||
:101D6000282F277086FF19C031E0E5E0FE2EF6012E
|
||||
:101D7000F39EE00DF11D112480858695869586954C
|
||||
:101D800087708217E1F03F5F303188F3F60185817B
|
||||
:101D9000821303C02150F601258385E0809FF00166
|
||||
:101DA000819FF00D1124EC0DFD1D108681E08187CF
|
||||
:101DB000128682E0C80ED11CD782C68209C0632F6A
|
||||
:101DC000C6012A8339830E94980E2A813981CFCF98
|
||||
:101DD0000F900F90DF91CF911F910F91FF90DF90A7
|
||||
:101DE000CF900895CF93DF93EC016134A1F4FC010F
|
||||
:101DF000855B9F4F41E09E012E5F3F4F15864687D2
|
||||
:101E00001786348723873596E817F907B9F71D82B7
|
||||
:101E1000DF91CF9108950E94EB07682FCE01DF91EB
|
||||
:101E2000CF910C94980E0F931F93CF93DF93EC01F7
|
||||
:101E3000022FCA3F8FEFD80711F486ED29C08E819B
|
||||
:101E40009F81892B01F12A87242F40E0CE010E9437
|
||||
:101E5000FD07182F8823C9F0682FCE010E94710852
|
||||
:101E6000009759F3FC010483212F40E060E0CE018C
|
||||
:101E70000E940B0E082F882351F0612FCE010E9483
|
||||
:101E8000F20E802F05C087ED03C084ED01C080E015
|
||||
:101E9000DF91CF911F910F9108952F923F924F9212
|
||||
:101EA0005F926F927F928F929F92AF92BF92CF92EA
|
||||
:101EB000DF92EF92FF920F931F93CF93DF93CDB7F3
|
||||
:101EC000DEB766970FB6F894DEBF0FBECDBF7C01BC
|
||||
:101ED000862E742E922E1B8A88E08C8B8CE38D8B41
|
||||
:101EE000D701ED91FC910190F081E02D60E0C701F8
|
||||
:101EF00009956C01009709F4ABC0FC01A080B1808A
|
||||
:101F0000CE0143969183808394828E010F5F1F4F91
|
||||
:101F100022E130E040E060E0C7010E945E0DD601A2
|
||||
:101F2000AD92BC928111ACC029843A844B845C840C
|
||||
:101F3000BD81BE8B1E815701612C6501E6E5CE0E89
|
||||
:101F4000D11CD6018D919C91009789F1DC01ED9116
|
||||
:101F5000FC910084F185E02D0995811128C0F601DE
|
||||
:101F600080819181DC01ED91FC910088F189E02D67
|
||||
:101F7000612F09958823D9F0F60180819181DC01D8
|
||||
:101F8000ED91FC910484F585E02DA201B101099544
|
||||
:101F9000811160C0F60180819181DC01ED91FC919D
|
||||
:101FA0000684F785E02D6E890995811153C06394ED
|
||||
:101FB000B2E0AB0EB11CE0E16E12BFCF5701612C55
|
||||
:101FC0006501F6E5CF0ED11CD6018D919C9100974D
|
||||
:101FD00089F1DC01ED91FC910084F185E02D0995FA
|
||||
:101FE000811128C0F60180819181DC01ED91FC9185
|
||||
:101FF0000088F189E02D612F09958823B1F1F60160
|
||||
:1020000080819181DC01ED91FC910484F585E02DC6
|
||||
:10201000A201B101099581110DC0F6018081918164
|
||||
:10202000DC01ED91FC910684F785E02D6E89099520
|
||||
:102030008823D9F06394B2E0AB0EB11CE0E16E12DC
|
||||
:10204000BFCF292D472D682DC7010E94130F18C03F
|
||||
:1020500086ED16C0092D272D482D662DC7010E943B
|
||||
:10206000EA09813D09F4A3CF0BC0092D272D482D86
|
||||
:10207000662DC7010E94EA09982F977F913DD1F202
|
||||
:1020800066960FB6F894DEBF0FBECDBFDF91CF913D
|
||||
:102090001F910F91FF90EF90DF90CF90BF90AF9086
|
||||
:1020A0009F908F907F906F905F904F903F902F9078
|
||||
:1020B0000895FF920F931F93CF93DF93EC0119992B
|
||||
:1020C0000EC088EC0E94D20885FF05C0CE010E9498
|
||||
:1020D000070660E201C060E088EC0E94F008809191
|
||||
:1020E000AC01813051F058F0823029F0833039F55D
|
||||
:1020F000FF24F3940DC0F12C0BC083E106C0809146
|
||||
:102100006102807F8031D9F081E18093610217C044
|
||||
:1021100080916102807F803199F40E94D7166853C4
|
||||
:102120007F4F8F4F9F4F60935D0270935E0280934D
|
||||
:102130005F029093600280E28093610201C0F12C03
|
||||
:1021400000E010E0FE01E00FF11FEA5AFF4F80812E
|
||||
:102150009181009739F0DC01ED91FC910680F781C7
|
||||
:10216000E02D09950E5F1F4F0032110559F7809140
|
||||
:102170006102803409F446C070F4803269F1803322
|
||||
:10218000D9F1813109F088C0FE01EA58FF4F108271
|
||||
:1021900000E010E00AC0813509F45AC0803809F423
|
||||
:1021A0006AC0803509F078C03CC0FE01E00FF11F25
|
||||
:1021B000EA5AFF4F80819181009739F0DC01ED915F
|
||||
:1021C000FC910480F581E02D09950E5F1F4F0032D0
|
||||
:1021D000110559F782E15EC00E94D71600915D0299
|
||||
:1021E00010915E0220915F0230916002601B710BC2
|
||||
:1021F000820B930B97FD50C061E088EE0E94F008BF
|
||||
:1022000080E448C088EE0E94D20880FD45C088ED79
|
||||
:102210000E94D208682F686088ED0E94F00880E56F
|
||||
:1022200039C088EC0E94D20886FF36C081E58093D1
|
||||
:1022300061020E94D7166C5E7F4F8F4F9F4F609355
|
||||
:102240005D0270935E0280935F029093600224C0EF
|
||||
:102250000E94D71600915D0210915E0220915F02EC
|
||||
:1022600030916002601B710B820B930B97FD14C0C1
|
||||
:1022700080E8809361022F2D40E060E0CE010E9453
|
||||
:102280004D0F882331F0823D39F08093620280EA5D
|
||||
:1022900001C080E980936102DF91CF911F910F917E
|
||||
:1022A000FF9008958F929F92AF92BF92CF92EF923C
|
||||
:1022B0000F93CF93DF93CDB7DEB7C054D1090FB6DC
|
||||
:1022C000F894DEBF0FBECDBF5F934F939E012F5F8B
|
||||
:1022D0003F4F3F932F931F9220E42F9320E8822EAD
|
||||
:1022E000912C5B0132E2C32EE12C06E021E840E0B4
|
||||
:1022F000FC016681848195810E947E0C0F900F9075
|
||||
:102300000F900F900F900F90C05CDF4F0FB6F894B6
|
||||
:10231000DEBF0FBECDBFDF91CF910F91EF90CF9079
|
||||
:10232000BF90AF909F908F9008958F929F92AF92A1
|
||||
:10233000BF92CF92EF920F93A62EB12C1F921F92B5
|
||||
:102340001F921F921F921F92812C912CC22EE42E5D
|
||||
:102350000AE021E240E0FC016681848195810E94CF
|
||||
:102360007E0C0F900F900F900F900F900F900F9189
|
||||
:10237000EF90CF90BF90AF909F908F9008958F92E5
|
||||
:102380009F92AF92BF92CF92EF920F93A62EB12C55
|
||||
:102390001F921F921F921F921F921F92812C912CAD
|
||||
:1023A000C12CE42E0BE021E240E0FC016681848137
|
||||
:1023B00095810E947E0C0F900F900F900F900F90C0
|
||||
:1023C0000F900F91EF90CF90BF90AF909F908F9014
|
||||
:1023D00008950F931F93CF93DF93EC012A8121700F
|
||||
:1023E000F8018081982F9170291771F0E881F981A7
|
||||
:1023F00080FF04C00680F781E02D03C00480F581D2
|
||||
:10240000E02DB801CE0109952A8126952170F801A9
|
||||
:10241000808181FB992790F9291771F0E881F98172
|
||||
:1024200081FF04C00284F385E02D03C00084F185A0
|
||||
:10243000E02DB801CE0109952A8122FB222720F93F
|
||||
:10244000F801808182FB992790F9291771F0E881C2
|
||||
:10245000F98182FF04C00684F785E02D03C004845F
|
||||
:10246000F585E02DB801CE010995F8018181811132
|
||||
:1024700003C08281882341F0E881F9810280F381E1
|
||||
:10248000E02DB801CE010995F80180818A83DF91A2
|
||||
:10249000CF911F910F910895CF93DF93FC01EA0133
|
||||
:1024A00080819181892B21F580E028C088819981E4
|
||||
:1024B000892BD1F3DB018D919C91DC015C9123810F
|
||||
:1024C00030E0241B310980819181820F931FDC0150
|
||||
:1024D0005C9382818150828388819981019799835D
|
||||
:1024E0008883DB018D919C91119701968D939C932C
|
||||
:1024F00042814111DBCF8381828381E0DF91CF91E3
|
||||
:102500000895FC018285089581E0693009F080E03A
|
||||
:102510000895CF93DF93EC018A819B81DC01ED91DB
|
||||
:10252000FC910480F581E02D6A8509958A858134C6
|
||||
:1025300039F4EA81FB81EA58FF4F8081846080830F
|
||||
:102540001A861B861C861D861E861F86188A80E0BA
|
||||
:10255000DF91CF9108958F929F92AF92BF92CF92C9
|
||||
:10256000EF920F93A42EB12CB22A1F921F921F92AA
|
||||
:102570001F921F921F92812C912CC12CE62E01E0FC
|
||||
:1025800023E240E0FC016285828193810E947E0CFF
|
||||
:102590000F900F900F900F900F900F900F91EF9062
|
||||
:1025A000CF90BF90AF909F908F9008958F929F9201
|
||||
:1025B000AF92BF92CF92EF920F93A62EB12C1F92A3
|
||||
:1025C0001F923F932F935F934F934A01C12CE12CAD
|
||||
:1025D00000E023EA40E0FC016285828193810E9451
|
||||
:1025E0007E0C0F900F900F900F900F900F900F9107
|
||||
:1025F000EF90CF90BF90AF909F908F9008958F9263
|
||||
:102600009F92AF92BF92CF92EF920F93A42EB12CD4
|
||||
:10261000B22A1F921F921F921F921F921F92812C0B
|
||||
:10262000912CC12CE62E03E023E240E0FC01628500
|
||||
:10263000828193810E947E0C0F900F900F900F90DB
|
||||
:102640000F900F900F91EF90CF90BF90AF909F9011
|
||||
:102650008F9008952F923F924F925F926F927F9248
|
||||
:102660008F929F92AF92BF92CF92DF92EF92FF92A2
|
||||
:102670000F931F93CF93DF93CDB7DEB7E9970FB6D4
|
||||
:10268000F894DEBF0FBECDBF3C01362E242EDC01F8
|
||||
:102690001296ED90FC9013971A968C91811103C1BC
|
||||
:1026A000D701ED91FC910190F081E02D60E0C70130
|
||||
:1026B00029AF09956C0129AD009709F4F6C0FC011A
|
||||
:1026C000A080B180A114B10409F4F1C04301F4E089
|
||||
:1026D0008F0E911CDC0111969C928E9214962C9375
|
||||
:1026E000FE0131962F018F0128E030E040E060E0EC
|
||||
:1026F000D30112968D919C9113970E945E0DF60165
|
||||
:1027000014828111DAC019818D81893009F0D1C01C
|
||||
:10271000D701ED91FC910280F381E02D222D41E063
|
||||
:10272000632DC7010995F3018287882309F4C3C08B
|
||||
:1027300098859583282F40E060E0828193810E94F4
|
||||
:102740000B0E082F882391F0D601AD92BC92D701D1
|
||||
:10275000ED91FC910480F581E02DD3011A966C91E6
|
||||
:10276000C7010995F3011286102FABC0113208F092
|
||||
:1027700010E2D601AD92BC9211110BC0940142E05F
|
||||
:10278000F3016285828193810E94AC08811198C017
|
||||
:1027900011C0212F30E0820140E0D3011A966C91E4
|
||||
:1027A0001A9712968D919C9113970E945E0D81113C
|
||||
:1027B00087C0E4CF1F921F925F924F921F9288E0D2
|
||||
:1027C0008F9388E0882E912CA12CB12C99E2C92EF0
|
||||
:1027D000E12C06E020EA40E0F301628582819381EA
|
||||
:1027E0000E947E0C182F0F900F900F900F900F905B
|
||||
:1027F0000F90811166C08B81D3011B968C931B9720
|
||||
:10280000720100E028E030E040E01A966C911A97DF
|
||||
:1028100012968D919C9113970E94850D811150C045
|
||||
:102820002B813C8140E0F3016285828193810E948B
|
||||
:10283000850D811145C0298130E0CE0181967C0152
|
||||
:1028400040E0D3011A966C911A9712968D919C9143
|
||||
:1028500013970E94850D811133C02E8140E0F30152
|
||||
:102860006285828193810E943A0E811129C001E024
|
||||
:10287000D3011B968C911B97801740F020E0402FCE
|
||||
:1028800068E0C3010E94FF120F5FF2CF1296ED9134
|
||||
:10289000FC911397EA58FF4F80818460808381E028
|
||||
:1028A00050968C930EC019ED0CC016ED0AC017EDB2
|
||||
:1028B00008C011ED06C014ED04C0F601B182A0827B
|
||||
:1028C000182F812FE9960FB6F894DEBF0FBECDBF4B
|
||||
:1028D000DF91CF911F910F91FF90EF90DF90CF90FC
|
||||
:1028E000BF90AF909F908F907F906F905F904F9030
|
||||
:1028F0003F902F900895BF92CF92DF92EF92FF9278
|
||||
:102900000F931F93CF93DF9300D000D0CDB7DEB7E6
|
||||
:102910007C01B62E19821A821B821C8220E0462F6F
|
||||
:1029200061E10E94AB1220E04B2D60E1C7010E94E3
|
||||
:10293000AB1220E04B2D64E0C7010E94FF1223E0A0
|
||||
:10294000C22ED12C9E012F5F3F4F44E050E06B2DF3
|
||||
:10295000C7010E94D612882301F120E04B2D64E1CB
|
||||
:10296000C7010E94AB1220E04B2D60E1C7010E941D
|
||||
:10297000AB1264E170E080E090E00E9406170F90D7
|
||||
:102980000F900F900F90DF91CF911F910F91FF90BB
|
||||
:10299000EF90DF90CF90BF90089509811A812B812D
|
||||
:1029A0003C811D7F0330114020413105B1F264E6C6
|
||||
:1029B00070E080E090E00E94061781E0C81AD1081C
|
||||
:1029C00009F0C0CFCACFCF93DF93FC018BE791E032
|
||||
:1029D000918380837383628312861386148615869F
|
||||
:1029E00016861786108A148288E085839CE3968376
|
||||
:1029F00091E09783808784E0818761157105B9F044
|
||||
:102A0000CB01A0E0B0E0EC01CA5ADF4F2881398148
|
||||
:102A1000232B41F49B96AA0FBB1FA60FB71FED9364
|
||||
:102A2000FC9305C011960296A031B10561F7DF91C4
|
||||
:102A3000CF910895DF92EF92FF920F931F93CF9360
|
||||
:102A4000DF93EC01D62E7A01FA01008111812281F7
|
||||
:102A500033810130F3E01F07F1E02F073105D1F09A
|
||||
:102A600060F40115E1E01E072E07310571F1013018
|
||||
:102A700011402140310571F062C0033081E0180738
|
||||
:102A800080E128073105E1F1033013402041310591
|
||||
:102A9000B9F155C080916302811151C020E04D2DE4
|
||||
:102AA00061E1CE010E94AB1220E04D2D60E1CE012C
|
||||
:102AB0000E94AB1220E04D2D64E0CE010E94FF1277
|
||||
:102AC00081E08093630281EB3BC020E0462F61E10F
|
||||
:102AD000CE010E94AB1220E04D2D60E1CE010E949C
|
||||
:102AE000AB12109263026A8567708D2D8770660F36
|
||||
:102AF000660F660F682B8A819B810E949C071FC00E
|
||||
:102B000020E04D2D64E1CE010E94AB1220E04D2D5E
|
||||
:102B100060E1CE010E94AB1264E170E080E090E0E1
|
||||
:102B20000E9406176A85F70121812695217067703A
|
||||
:102B30004D2D8A819B810E944D0F1092630280E08F
|
||||
:102B4000DF91CF911F910F91FF90EF90DF9008954B
|
||||
:102B5000CF92DF92EF920F931F93CF93DF93CDB776
|
||||
:102B6000DEB72E970FB6F894DEBF0FBECDBF6C0157
|
||||
:102B700081E090E09E878D87E12C8E010F5F1F4FD3
|
||||
:102B80009E01235F3F4F41E0F60162858281938180
|
||||
:102B90000E945F0E811151C002E011E08981802303
|
||||
:102BA000D1F019861A861B861C869E01275F3F4F2F
|
||||
:102BB00044E050E0612FC6010E94D61281110BC083
|
||||
:102BC000AE01475F5F4F612FC6010E941A15813B1E
|
||||
:102BD00099F1811132C0000F1F5F1830F9F611E032
|
||||
:102BE000F6018385811740F119861A861B861C869B
|
||||
:102BF0009E01275F3F4F44E050E0612FC6010E94D5
|
||||
:102C0000D612811117C089859A858770917081309D
|
||||
:102C1000914081F48B859C8581609C878B87AE0178
|
||||
:102C2000475F5F4F612FC6010E941A15813B21F05B
|
||||
:102C3000811103C01F5FD4CF80E02E960FB6F894A9
|
||||
:102C4000DEBF0FBECDBFDF91CF911F910F91EF90EF
|
||||
:102C5000DF90CF9008950F931F93CF93DF93EC01F4
|
||||
:102C600088898823F1F00E94D7160C851D852E8552
|
||||
:102C70003F85601B710B820B930B97FD0FC0CE013C
|
||||
:102C80000E94A815182F0E94D7166C597F4F8F4F9E
|
||||
:102C90009F4F6C877D878E879F8701C010E0812FB3
|
||||
:102CA00001C080E0DF91CF911F910F910895CF93E4
|
||||
:102CB000CFB7F89480916702811127C0EAE9F0E06C
|
||||
:102CC0008491E6E8F0E09491E82FF0E0EE0FFF1F2A
|
||||
:102CD000E255FF4FA591B4918C91892321F461E0D5
|
||||
:102CE0008AE00E94E81761E08AE00E94AF178CB585
|
||||
:102CF00080618CBD8CB580648CBD61E08DE00E94EC
|
||||
:102D0000AF1761E08BE00E94AF17809167028F5F81
|
||||
:102D100080936702CFBFCF9108951F920F920FB695
|
||||
:102D20000F9211242F933F938F939F93AF93BF9351
|
||||
:102D30008091690290916A02A0916B02B0916C023D
|
||||
:102D40003091680223E0230F2D3720F40196A11D56
|
||||
:102D5000B11D05C026E8230F0296A11DB11D2093C9
|
||||
:102D600068028093690290936A02A0936B02B09309
|
||||
:102D70006C0280916D0290916E02A0916F02B091F1
|
||||
:102D800070020196A11DB11D80936D0290936E0299
|
||||
:102D9000A0936F02B0937002BF91AF919F918F91FA
|
||||
:102DA0003F912F910F900FBE0F901F9018952FB746
|
||||
:102DB000F8946091690270916A0280916B0290911F
|
||||
:102DC0006C022FBF08953FB7F89480916D029091E7
|
||||
:102DD0006E02A0916F02B091700226B5A89B05C04B
|
||||
:102DE0002F3F19F00196A11DB11D3FBF6627782F17
|
||||
:102DF000892F9A2F620F711D811D911D42E0660F70
|
||||
:102E0000771F881F991F4A95D1F708958F929F9237
|
||||
:102E1000AF92BF92CF92DF92EF92FF926B017C0153
|
||||
:102E20000E94E3164B015C01C114D104E104F104DA
|
||||
:102E3000F1F00E9427190E94E316681979098A099E
|
||||
:102E40009B09683E73408105910570F321E0C21A29
|
||||
:102E5000D108E108F10888EE880E83E0981EA11CD5
|
||||
:102E6000B11CC114D104E104F10429F7DDCFFF90B6
|
||||
:102E7000EF90DF90CF90BF90AF909F908F9008958C
|
||||
:102E80008230910538F0880F991F880F991F059798
|
||||
:102E90000197F1F70895789484B5826084BD84B574
|
||||
:102EA000816084BD85B5826085BD85B5816085BD45
|
||||
:102EB000EEE6F0E0808181608083E1E8F0E010825E
|
||||
:102EC000808182608083808181608083E0E8F0E09F
|
||||
:102ED000808181608083E1EBF0E080818460808389
|
||||
:102EE000E0EBF0E0808181608083EAE7F0E08081C0
|
||||
:102EF0008460808380818260808380818160808320
|
||||
:102F00008081806880831092C1000895833081F0B1
|
||||
:102F100028F4813099F08230A1F008958730A9F02B
|
||||
:102F20008830B9F08430D1F4809180008F7D03C067
|
||||
:102F3000809180008F7780938000089584B58F778B
|
||||
:102F400002C084B58F7D84BD08958091B0008F77D5
|
||||
:102F500003C08091B0008F7D8093B0000895CF931F
|
||||
:102F6000DF9390E0FC01E458FF4F2491FC01E0570F
|
||||
:102F7000FF4F8491882349F190E0880F991FFC014D
|
||||
:102F8000E255FF4FA591B4918C559F4FFC01C5911F
|
||||
:102F9000D4919FB7611108C0F8948C912095822339
|
||||
:102FA0008C93888182230AC0623051F4F8948C910A
|
||||
:102FB000322F309583238C938881822B888304C0A1
|
||||
:102FC000F8948C91822B8C939FBFDF91CF910895C1
|
||||
:102FD0000F931F93CF93DF931F92CDB7DEB7282FA8
|
||||
:102FE00030E0F901E859FF4F8491F901E458FF4FAF
|
||||
:102FF0001491F901E057FF4F04910023C9F0882391
|
||||
:1030000021F069830E9486176981E02FF0E0EE0FBE
|
||||
:10301000FF1FEC55FF4FA591B4919FB7F8948C9189
|
||||
:10302000611103C01095812301C0812B8C939FBF38
|
||||
:103030000F90DF91CF911F910F9108951F920F92E2
|
||||
:103040000FB60F9211242F938F939F93EF93FF93BB
|
||||
:10305000E0918102F09182028081E0918702F091FB
|
||||
:10306000880282FD12C0908180918A028F5F8F73E7
|
||||
:1030700020918B02821751F0E0918A02F0E0EF5824
|
||||
:10308000FD4F958F80938A0201C08081FF91EF915F
|
||||
:103090009F918F912F910F900FBE0F901F901895B9
|
||||
:1030A0001F920F920FB60F9211242F933F934F93BD
|
||||
:1030B0005F936F937F938F939F93AF93BF93EF93A0
|
||||