Compare commits

...

22 Commits

Author SHA1 Message Date
JbLb 19c44c7d53 build not tracked - reformat comments in config file
6 years ago
Jan Henrik 2569b22640
Update README.md
6 years ago
Jan Henrik 000c0fccb8
Update README.md
6 years ago
Jan Henrik 23c4a3c8ac
Update README.md
6 years ago
Jan Henrik e9ebbcc1ac
Update README.md
6 years ago
larsm 3e2cfe973a Fixed timeout. Now it is usable for other input methods than nunchuck.
7 years ago
larsm ffda2219f1 Added Motor-Test-Mode: Sweep motors slowly forward and backward without any input.
7 years ago
Jan Henrik 2c666c8cb4
Merge pull request #95 from btsimonh/master
7 years ago
btsimonh e410438330
Merge pull request #24 from btsimonh/bipropellantref2
7 years ago
btsimonh 5fbd54d9ab
Add BiPropellant reference to readme
7 years ago
btsimonh 226278b2fc
Merge pull request #23 from NiklasFauth/master
7 years ago
Jan Henrik f06ce1fcd3
Update README.md
7 years ago
Jan Henrik 6defd8fe96
Update README.md
7 years ago
Jan Henrik f0fc144e29
Update README.md
7 years ago
NiklasFauth 6d6c3c8a43
added warning and link to uart control to readme
7 years ago
Jan Henrik bf2359ec6d
Merge pull request #64 from blubbi321/blubbi321-patch-2
7 years ago
Jan Henrik 9beae76952
Update README.md
7 years ago
Jan Henrik a2336aadc7
Update README.md
7 years ago
larsm c47457cad3 updated README.md: added link to compiler
7 years ago
NiklasFauth 2d57ae64c5
Added details about build instructions
7 years ago
Niklas Fauth f7bc79b80d ADD: gifs for readme and wiki
7 years ago
blubbi321 e56b5cbdb3
Update config.h
7 years ago

1
.gitignore vendored

@ -1,2 +1 @@
build/*
!build/hover.hex

@ -12,10 +12,22 @@
// ############################### GENERAL ###############################
// How to calibrate: connect GND and RX of a 3.3v uart-usb adapter to the right sensor board cable (be careful not to use the red wire of the cable. 15v will destroye verything.). if you are using nunchuck, disable it temporarily. enable DEBUG_SERIAL_USART3 and DEBUG_SERIAL_ASCII use asearial terminal.
// Battery voltage calibration: connect power source. see <How to calibrate>. write value nr 5 to BAT_CALIB_ADC. make and flash firmware. then you can verify voltage on value 6 (devide it by 100.0 to get calibrated voltage).
#define BAT_CALIB_REAL_VOLTAGE 43.0 // input voltage measured by multimeter
// How to calibrate:
/* connect GND and RX of a 3.3v uart-usb adapter to the right sensor board cable
* (be careful not to use the red wire of the cable. 15v will destroy everything.)
* if you are using nunchuck, disable it temporarily.
* enable DEBUG_SERIAL_USART3 and DEBUG_SERIAL_ASCII use asearial terminal.
*/
// Battery voltage calibration:
/* connect power source.
* see <How to calibrate>.
* write value nr 5 to BAT_CALIB_ADC.
* make and flash firmware.
* then you can verify voltage on value 6 (devide it by 100.0 to get calibrated voltage).
*/
#define BAT_CALIB_REAL_VOLTAGE 43.0 // input voltage measured by multimeter
#define BAT_CALIB_ADC 1704 // adc-value measured by mainboard (value nr 5 on UART debug output)
#define BAT_NUMBER_OF_CELLS 10 // normal Hoverboard battery: 10s
@ -27,7 +39,19 @@
#define DC_CUR_LIMIT 15 // DC current limit in amps per motor. so 15 means it will draw 30A out of your battery. it does not disable motors, it is a soft current limit.
// Board overheat detection: the sensor is inside the STM/GD chip. it is very inaccurate without calibration (up to 45°C). so only enable this funcion after calibration! let your board cool down. see <How to calibrate>. get the real temp of the chip by thermo cam or another temp-sensor taped on top of the chip and write it to TEMP_CAL_LOW_DEG_C. write debug value 8 to TEMP_CAL_LOW_ADC. drive around to warm up the board. it should be at least 20°C warmer. repeat it for the HIGH-values. enable warning and/or poweroff and make and flash firmware.
// Board overheat detection:
/* the sensor is inside the STM/GD chip.
* it is very inaccurate without calibration (up to 45°C).
* so only enable this funcion after calibration! let your board cool down.
* see <How to calibrate>.
* get the real temp of the chip by thermo cam or another temp-sensor taped on top of the chip
* and write it to TEMP_CAL_LOW_DEG_C.
* write debug value 8 to TEMP_CAL_LOW_ADC.
* drive around to warm up the board. it should be at least 20°C warmer.
* repeat it for the HIGH-values.
* enable warning and/or poweroff and make and flash firmware.
*/
#define TEMP_CAL_LOW_ADC 1655 // temperature 1: ADC value
#define TEMP_CAL_LOW_DEG_C 35.8 // temperature 1: measured temperature [°C]
#define TEMP_CAL_HIGH_ADC 1588 // temperature 2: ADC value
@ -47,7 +71,7 @@
#define DEBUG_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used!
#define DEBUG_BAUD 115200 // UART baud rate
//#define DEBUG_SERIAL_SERVOTERM
//#define DEBUG_SERIAL_SERVOTERM // Software for plotting graphs: https://github.com/STMBL/Servoterm-app
#define DEBUG_SERIAL_ASCII // "1:345 2:1337 3:0 4:0 5:0 6:0 7:0 8:0\r\n"
// ############################### INPUT ###############################
@ -58,13 +82,13 @@
// for Arduino, use void loop(void){ Serial.write((uint8_t *) &steer, sizeof(steer)); Serial.write((uint8_t *) &speed, sizeof(speed));delay(20); }
// ###### CONTROL VIA RC REMOTE ######
// left sensor board cable. Channel 1: steering, Channel 2: speed.
//#define CONTROL_PPM // use PPM-Sum as input. disable DEBUG_SERIAL_USART2!
// left sensor board cable. Channel 1: steering, Channel 2: speed. Use a very short cable!
//#define CONTROL_PPM // use PPM-Sum as input. disable CONTROL_SERIAL_USART2!
//#define PPM_NUM_CHANNELS 6 // total number of PPM channels to receive, even if they are not used.
// ###### CONTROL VIA TWO POTENTIOMETERS ######
// ADC-calibration to cover the full poti-range: connect potis to left sensor board cable (0 to 3.3V) (do NOT use the red 15V wire in the cable!). see <How to calibrate>. turn the potis to minimum position, write value 1 to ADC1_MIN and value 2 to ADC2_MIN. turn to maximum position and repeat it for ADC?_MAX. make, flash and test it.
#define CONTROL_ADC // use ADC as input. disable DEBUG_SERIAL_USART2!
//#define CONTROL_ADC // use ADC as input. disable CONTROL_SERIAL_USART2!
#define ADC1_MIN 0 // min ADC1-value while poti at minimum-position (0 - 4095)
#define ADC1_MAX 4095 // max ADC1-value while poti at maximum-position (0 - 4095)
#define ADC2_MIN 0 // min ADC2-value while poti at minimum-position (0 - 4095)
@ -74,6 +98,11 @@
// left sensor board cable. keep cable short, use shielded cable, use ferrits, stabalize voltage in nunchuck, use the right one of the 2 types of nunchucks, add i2c pullups. use original nunchuck. most clones does not work very well.
//#define CONTROL_NUNCHUCK // use nunchuck as input. disable DEBUG_SERIAL_USART3!
// ###### MOTOR TEST MODE ######
// slowly move both wheels forward and backward, ignoring all inputs
#define CONTROL_MOTOR_TEST
#define CONTROL_MOTOR_TEST_MAX_SPEED 300 // sweep slowly from -MAX_SPEED to MAX_SPEED (0 - 1000)
// ############################### DRIVING BEHAVIOR ###############################
// inputs:
@ -149,6 +178,41 @@ else {\
#error DEBUG_I2C_LCD and DEBUG_SERIAL_USART3 not allowed. it is on the same cable.
#endif
#if defined CONTROL_PPM && defined CONTROL_ADC && defined CONTROL_NUNCHUCK || defined CONTROL_PPM && defined CONTROL_ADC || defined CONTROL_ADC && defined CONTROL_NUNCHUCK || defined CONTROL_PPM && defined CONTROL_NUNCHUCK
#error only 1 input method allowed. use CONTROL_PPM or CONTROL_ADC or CONTROL_NUNCHUCK.
#ifdef CONTROL_SERIAL_USART2
#if defined CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif
#define CONTROL_DEFINED
#endif
#ifdef CONTROL_PPM
#if defined CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif
#define CONTROL_DEFINED
#endif
#ifdef CONTROL_ADC
#if defined CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif
#define CONTROL_DEFINED
#endif
#ifdef CONTROL_NUNCHUCK
#if defined CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif
#define CONTROL_DEFINED
#endif
#ifdef CONTROL_MOTOR_TEST
#if defined CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif
#define CONTROL_DEFINED
#endif
#ifndef CONTROL_DEFINED
#error select exactly 1 input method in config.h!
#endif

@ -1,7 +1,9 @@
This firmware is much better than the old one. tested up to 40A / 60V, no dead board so far :)
# hoverboard-firmware-hack
![](https://raw.githubusercontent.com/NiklasFauth/hoverboard-firmware-hack/master/docs/pictures/armchair.gif) ![](https://raw.githubusercontent.com/NiklasFauth/hoverboard-firmware-hack/master/docs/pictures/bobbycar.gif)
![](https://raw.githubusercontent.com/NiklasFauth/hoverboard-firmware-hack/master/docs/pictures/transpotter.gif) ![](https://raw.githubusercontent.com/NiklasFauth/hoverboard-firmware-hack/master/docs/pictures/chair.gif)
This repo contains open source firmware for generic Hoverboard Mainboards.
The firmware you can find here allows you to use your Hoverboard Hardware (like the Mainboard, Motors and Battery) for cool projects like driving armchairs, person-tracking transportation robots and every other application you can imagine that requires controlling the Motors.
@ -10,6 +12,15 @@ https://media.ccc.de/v/gpn18-95-howto-moving-objects
---
## Build Instructions
Here are detailed build instructions for some finished projects.
If possible, a prebuild firmware release is available for these usecases, so you don't need to compile the firmware yourself
TranspOtter: https://github.com/NiklasFauth/hoverboard-firmware-hack/wiki/Build-Instruction:-TranspOtter
---
## Hardware
![otter](https://raw.githubusercontent.com/NiklasFauth/hoverboard-firmware-hack/master/pinout.png)
@ -22,7 +33,9 @@ http://vocke.tv/lib/exe/fetch.php?media=20150722_hoverboard_sch.pdf
---
## Flashing
To build the firmware, just type "make". Make sure you have specified your gcc-arm-none-eabi binary (version 7 works, there is a version that does not!) location in the Makefile ("PREFIX = ..."). Right to the STM32, there is a debugging header with GND, 3V3, SWDIO and SWCLK. Connect GND, SWDIO and SWCLK to your SWD programmer, like the ST-Link found on many STM devboards.
To build the firmware, just type "make". Make sure you have specified your gcc-arm-none-eabi binary location in the Makefile ("PREFIX = ...") (version 7 works, there is a version that does not!) (if the ons in linux repos do not work, use the official version: https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads). Right to the STM32, there is a debugging header with GND, 3V3, SWDIO and SWCLK. Connect GND, SWDIO and SWCLK to your SWD programmer, like the ST-Link found on many STM devboards.
Do not power the mainboard from the 3.3V of your programmer! This has already killed multiple mainboards.
Make sure you hold the powerbutton or connect a jumper to the power button pins while flashing the firmware, as the STM might release the power latch and switches itself off during flashing. Battery > 36V have to be connected while flashing.
@ -46,6 +59,10 @@ Then you can simply flash the firmware:
```
st-flash --reset write build/hover.bin 0x8000000
```
or
```
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c flash "write_image erase build/hover.bin 0x8000000"
```
---
## Troubleshooting
@ -63,12 +80,30 @@ Most robust way for input is to use the ADC and potis. It works well even on 1m
---
## Examples
## Examples and links
Have a look at the config.h in the Inc directory. That's where you configure to firmware to match your project.
Currently supported: Wii Nunchuck, analog potentiometer and PPM-Sum signal from a RC remote.
A good example of control via UART, eg. from an Arduino or raspberryPi, can be found here:
https://github.com/p-h-a-i-l/hoverboard-firmware-hack
If you need additional features like a boost button, have a look at the while(1) loop in the main.c
### Hoverboardhack for AT32F403RCT6 based mainboards
* [https://github.com/cloidnerux/hoverboard-firmware-hack](https://github.com/cloidnerux/hoverboard-firmware-hack)
### Online Compiler
* [RoboDurdens awesome](https://github.com/RoboDurden) online compiler: [https://pionierland.de/hoverhack/](https://pionierland.de/hoverhack/)
### Additional Hardware
* [breakout/interconnect boards](https://github.com/Jan--Henrik/hoverboard-breakout) Breakout/Interconnection boards for hoverboard hacking.
### Projects based on it
* [Bidirectional UART communication](https://github.com/RoboDurden/hoverboard-firmware-hack) with Arduino example code
* [bobbycar-optimized firmware](https://github.com/larsmm/hoverboard-firmware-hack-bbcar) based on this one with driving modes, acceleration ramps and some other features
* [wheel chair](https://github.com/Lahorde/steer_speed_ctrl) controlled with a joystick or using a CC2650 sensortag to control it over bluetooth with pitch/roll.
* [TranspOtterNG](https://github.com/Jan--Henrik/transpOtterNG) TranspOtter is an open source semi self driving transportation platform based on hoverboard hardware
* [BiPropellant](https://github.com/bipropellant) - fork which focusses on reliable machine control, but also retains HoverBoard functionality if desired.

@ -105,8 +105,6 @@ void Nunchuck_Read() {
HAL_Delay(5);
if (HAL_I2C_Master_Receive(&hi2c2,0xA4,(uint8_t*)nunchuck_data, 6, 100) == HAL_OK) {
timeout = 0;
} else {
timeout++;
}
if (timeout > 3) {

@ -67,6 +67,9 @@ extern volatile uint32_t timeout; // global variable for timeout
extern float batteryVoltage; // global variable for battery voltage
uint32_t inactivity_timeout_counter;
uint32_t main_loop_counter;
int32_t motor_test_direction = 1;
extern uint8_t nunchuck_data[6];
#ifdef CONTROL_PPM
@ -77,7 +80,9 @@ int milli_vel_error_sum = 0;
void poweroff() {
#ifndef CONTROL_MOTOR_TEST
if (abs(speed) < 20) {
#endif
buzzerPattern = 0;
enable = 0;
for (int i = 0; i < 8; i++) {
@ -86,7 +91,9 @@ void poweroff() {
}
HAL_GPIO_WritePin(OFF_PORT, OFF_PIN, 0);
while(1) {}
#ifndef CONTROL_MOTOR_TEST
}
#endif
}
@ -218,6 +225,13 @@ int main(void) {
timeout = 0;
#endif
#ifdef CONTROL_MOTOR_TEST
if (motor_test_direction == 1) cmd2 += 1;
else cmd2 -= 1;
if (abs(cmd2) > CONTROL_MOTOR_TEST_MAX_SPEED) motor_test_direction = -motor_test_direction;
timeout = 0;
#endif
// ####### LOW-PASS FILTER #######
steer = steer * (1.0 - FILTER) + cmd1 * FILTER;
@ -252,7 +266,7 @@ int main(void) {
lastSpeedR = speedR;
if (inactivity_timeout_counter % 25 == 0) {
if (main_loop_counter % 25 == 0) {
// ####### CALC BOARD TEMPERATURE #######
board_temp_adc_filtered = board_temp_adc_filtered * 0.99 + (float)adc_buffer.temp * 0.01;
board_temp_deg_c = ((float)TEMP_CAL_HIGH_DEG_C - (float)TEMP_CAL_LOW_DEG_C) / ((float)TEMP_CAL_HIGH_ADC - (float)TEMP_CAL_LOW_ADC) * (board_temp_adc_filtered - (float)TEMP_CAL_LOW_ADC) + (float)TEMP_CAL_LOW_DEG_C;
@ -310,6 +324,9 @@ int main(void) {
if (inactivity_timeout_counter > (INACTIVITY_TIMEOUT * 60 * 1000) / (DELAY_IN_MAIN_LOOP + 1)) { // rest of main loop needs maybe 1ms
poweroff();
}
main_loop_counter += 1;
timeout++;
}
}

@ -1,23 +1,23 @@
:020000040800F2
:1000000000C00020913D0008753D0008773D0008C4
:10001000793D00087B3D00087D3D000800000000A0
:100020000000000000000000000000007F3D00080C
:10003000813D000800000000833D0008853D000868
:10004000D93D0008D93D0008D93D0008D93D000838
:10005000D93D0008D93D0008D93D0008D93D000828
:10006000D93D0008D93D0008D93D0008A135000858
:10007000D93D0008D93D0008D93D0008D93D000808
:10008000D93D0008D93D0008D93D0008D93D0008F8
:10009000D93D0008D93D0008D93D0008D93D0008E8
:1000A000D93D0008D93D0008D93D0008D93D0008D8
:1000B000D93D0008D93D0008D93D0008D93D0008C8
:1000C000D93D0008D93D0008D93D0008D93D0008B8
:1000D000D93D0008D93D0008D93D0008D93D0008A8
:1000E000D93D0008D93D0008D93D0008D93D000898
:1000F000D93D0008D93D0008D93D0008D93D000888
:10010000D93D0008D93D0008D93D0008D93D000877
:10011000D93D0008D93D0008D93D0008D93D000867
:10012000D93D0008D93D0008D93D0008D93D000857
:1000000000C00020293D00080D3D00080F3D0008FC
:10001000113D0008133D0008153D000800000000D8
:10002000000000000000000000000000173D000874
:10003000193D0008000000001B3D00081D3D0008A0
:10004000713D0008713D0008713D0008713D0008D8
:10005000713D0008713D0008713D0008713D0008C8
:10006000713D0008713D0008713D000839350008F8
:10007000713D0008713D0008713D0008713D0008A8
:10008000713D0008713D0008713D0008713D000898
:10009000713D0008713D0008713D0008713D000888
:1000A000713D0008713D0008713D0008713D000878
:1000B000713D0008713D0008713D0008713D000868
:1000C000713D0008713D0008713D0008713D000858
:1000D000713D0008713D0008713D0008713D000848
:1000E000713D0008713D0008713D0008713D000838
:1000F000713D0008713D0008713D0008713D000828
:10010000713D0008713D0008713D0008713D000817
:10011000713D0008713D0008713D0008713D000807
:10012000713D0008713D0008713D0008713D0008F7
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000000000000000AF
:10015000000000000000000000000000000000009F
@ -31,9 +31,9 @@
:1001D000000000000000000000000000000000001F
:0401E0005FF8E0F1F3
:1001E80010B5054C237833B9044B13B10448AFF369
:1001F80000800123237010BD88000020000000004B
:100208007046000808B5034B1BB103490348AFF318
:10021800008008BD000000008C0000207046000827
:1001F80000800123237010BD8C0000200000000047
:100208000846000808B5034B1BB103490348AFF380
:10021800008008BD0000000090000020084600088B
:10022800034613F8012B002AFBD1181A013870472E
:1002380081F0004102E000BF83F0004330B54FEA8F
:1002480041044FEA430594EA050F08BF90EA020FFC
@ -354,7 +354,7 @@
:1015F800624412F8100C13F4803F05D10C4B03FB26
:1016080000F007B010BC7047084B5B68C3F3404359
:10161800634413F8142C074BB3FBF2F300FB03F0FD
:10162800EFE70448EDE700BF8846000800100240D5
:10162800EFE70448EDE700BF20460008001002403D
:1016380000093D0000127A00594B1B6803F00703AC
:101648008B420CD2564A136823F007030B431360EE
:10165800136803F007038B4201D00120704770B56F
@ -378,12 +378,12 @@
:1017780023F46053296943EAC1035360FFF724FF48
:10178800084B5B68C3F30313074AD35CD840074B85
:101798001860002000F03EFD002070BD0120FCE72D
:1017A80000200240001002409C4600080000002073
:1017A80000200240001002403446000800000020DB
:1017B800014B1868704700BF0000002008B5FFF70C
:1017C800F7FF044B5B68C3F30223034AD35CD8409A
:1017D80008BD00BF00100240AC46000808B5FFF77E
:1017D80008BD00BF001002404446000808B5FFF7E6
:1017E800E7FF044B5B68C3F3C223034AD35CD840CA
:1017F80008BD00BF00100240AC46000830B4036AC0
:1017F80008BD00BF001002404446000830B4036A28
:1018080023F001030362056A4268846924F07304C3
:101818000B681C4325F002058B682B43104DA8422A
:1018280003D005F50065A84205D123F00803CD686B
@ -551,7 +551,7 @@
:1022480008B5074A136843F0100313600320FFF72B
:10225800CDFD0020FFF7DEFFFFF7DAFF002008BD05
:1022680000200240024A136801331360704700BF20
:10227800E0000020014B1868704700BFE000002014
:10227800E4000020014B1868704700BFE40000200C
:1022880030B583B00190FFF7F5FF0546019CB4F126
:10229800FF3F00D00134FFF7EDFF401BA042FAD307
:1022A80003B030BD7047000030B482B00023019302
@ -729,7 +729,7 @@
:102D68003046FEF785FF21463046FEF7ABFF0421CB
:102D78003046FEF7A7FF39463046FEF7A3FF2B681B
:102D880001221A633268136843F00103136019B013
:102D9800BDE8F08F00100240AC0100203C03002089
:102D9800BDE8F08F00100240B00100204003002081
:102DA800002C0140003401402DE9F04186B0424E2C
:102DB800B36943F40073B361B36903F40073009318
:102DC800009B3E4C3E4B23604FF48073A36000256C
@ -747,9 +747,9 @@
:102E8800019B114B1D60C3F80480104A9A60104AD8
:102E9800DA6040F6A2221A601A6842F001021A604B
:102EA8002A4629463846FEF7B3FF3846FEF7E4FFC0
:102EB80006B0BDE8F08100BF001002407402002097
:102EB80006B0BDE8F08100BF001002407802002093
:102EC8000024014000000140080002404C24014059
:102ED800E8020020F0B585B0284B9A6942F4806278
:102ED800EC020020F0B585B0284B9A6942F4806274
:102EE8009A619B6903F480630093009B244C254BF3
:102EF80023604FF48073A3600023E36063614FF4A1
:102F08006022E2616360052626612046FFF744FBE4
@ -760,394 +760,388 @@
:102F5800FFF7AAF9072303930197029601A92046D0
:102F6800FFF7A2F923689A6842F480729A609A6817
:102F780042F001029A6005B0F0BD00BF00100240A7
:102F880028010020002801400D4B1B681333262B15
:102F980014D810B500240B4B1C700B4B1C7005E0AB
:102FA8000A4B1C706420FFF76BF90134072CF7DD1E
:102FB800002220210648FFF796F8FEE7704700BF79
:102FC80094030020A8000020B4000020A4000020E2
:102FD8000008014030B597B002250C9501231093E5
:102FE800102311931395002414944FF46013159330
:102FF8000CA8FEF7FBF80F230793089509944FF4E4
:1030080080630A930B94294607A8FEF715FB0195E0
:103018004FF44043039301A8FFF770F8FEF7C8FB8D
:10302800084BA3FB00308009FEF732FF0420FEF7AF
:1030380045FF224621464FF0FF30FEF7E9FE17B064
:1030480030BD00BFD34D62102DE9F04F85B0FFF7BA
:10305800F7F8B34CA36943F00103A361A36903F034
:1030680001030393039B0320FEF7C0FE00221146D1
:103078006FF00B00FEF7CCFE002211466FF00A003D
:10308800FEF7C6FE002211466FF00900FEF7C0FEEB
:10309800002211466FF00400FEF7BAFE0022114626
:1030A8006FF00300FEF7B4FE002211466FF0010036
:1030B800FEF7AEFE002211464FF0FF30FEF7A8FEE5
:1030C800FFF788FF636923F001036361FFF772FC70
:1030D800FFF772FDFFF768FEFFF7FCFEFFF71EFC27
:1030E800012220218F48FEF7FEFF8F48FFF7B8F92D
:1030F8008E48FFF7B5F9082405E08D4B1C70642055
:10310800FFF7BEF8013C002CF7DA4FF0000A884BB5
:1031180083F800A0012204218648FEF7E4FF864BCD
:10312800188AFDF709FE0190844B01221A70D346D4
:103138004FE14FF47A7861E14FF47A7473E14FF418
:103148007A7642464B4620462946FDF777F80446EC
:103158000D4600227A4BFDF7B7FC80B96AA3D3E984
:10316800002320462946FDF791FC00285DD1204622
:103178002946FDF7B3FC074603E0724EE1E74FF43A
:103188007A77714B1A68714BA3FB0213DB0803EBC8
:10319800830303EB83039A4249D00AF13203BB420B
:1031A80014DDAAF1320ABA4510DA0BF13203B34240
:1031B8000CDDABF1320BB34508DA654B1B68042B09
:1031C80004D8644B1E607B42634A13600221554851
:1031D800FEF782FF38B1614B1B6823B9604B1B684F
:1031E800002B00F082805F4B1C685F492046FDF78A
:1031F80099FF28B15D4B1B681333262B40F2818061
:103208005B492046FDF78EFF002800F0BD80564937
:103218002046FDF7A5FF002800F0B680444B0522A4
:103228001A70544B06221A70BAE0464FA9E7019863
:10323800FDF762F936A3D3E90023FDF7B5F9044693
:103248000D46DFF8F480B8F81000FDF775FDFDF7BE
:1032580053F931A3D3E90023FDF7A6F902460B463B
:1032680020462946FCF7EAFFFDF760FC0546019079
:103278004149FDF7AFFC4149FDF7B6FD4049FDF76F
:10328800ABFC0446B8F80E10002000F029FDB8F891
:103298001210012000F024FD3146022000F020FD2C
:1032A8003946032000F01CFDB8F80C10042000F08B
:1032B80017FD34492B4B1868FDF796FDFDF75AFFAB
:1032C8000146052000F00CFD2846FDF753FF014696
:1032D800062000F005FD2046FDF74CFF01460720BB
:1032E80000F0FEFC00F002FD57E7144B00221A70B4
:1032F80002210C48FEF7F0FE0028F9D1FFF744FE42
:1033080071E7FFF741FE4BE00000000000408FC06E
:10331800AE47E17A14AEEF3F7B14AE47E17A843FC3
:10332800001002400008014074020020280100201B
:10333800A4000020000C0140E8020020B400002096
:1033480000408F4018FCFFFF7C0300201F85EB51D5
:1033580004000020C8000020C4000020D000002085
:10336800CC00002008000020CCCC064294030020AA
:1033780000000C42A800002000E0CE44083748BEF8
:1033880033330F420000C842734B1B6813F1320FEE
:1033980080F2CA80714B05221A70714B01221A7093
:1033A80087EAE773A3EBE773322B06DC86EAE6735A
:1033B800A3EBE673322B40F3BD806A4B00221A6000
:1033C800684B1A68684B9A4201D9FFF7DDFDB3468E
:1033D800BA460220FEF754FF644BDB899BB2B3F573
:1033E800805FBFF4A6AE614BDA89D889FDF7A8FCE7
:1033F8005F49FDF7ADFDFDF7BDFE80465D4BC3F8A7
:1034080000805A4B5B8A9BB2B3F5805FBFF494AEE1
:10341800564B5A8A588AFDF793FC5549FDF798FD93
:10342800FDF7A8FE0446544B1C60504AD3899BB252
:10343800B3F5FA6F94BF0023012350490B70538AE8
:103448009BB2B3F5FA6F94BF002301234C4A137063
:103458004C4B00221A604C4D2868FDF73BF838A306
:10346800D3E90023FDF7A0F806460F464046FDF7CE
:1034780031F835A3D3E90023FDF796F802460B4649
:1034880030463946FCF7DAFEFDF728FB0646286089
:10349800314D2868FDF71EF829A3D3E90023FDF76D
:1034A80083F8804689462046FDF714F826A3D3E919
:1034B8000023FDF779F802460B4640464946FCF7DB
:1034C800BDFEFDF70BFB2860FDF704F800222F4B2B
:1034D800FDF76AF804460D463046FCF7FBFF00226C
:1034E8002A4BFDF761F88046894602460B4620467E
:1034F8002946FCF7A1FE06460F460022244BFDF79D
:10350800E3FA00287FF41BAE11A3D3E90023304669
:103518003946FDF7BBFA00287FF42FAE304639460E
:10352800FDF7DCFA06460CE600230C4A13700C4A39
:10353800137035E70B4A13680133136040E700BF87
:10354800CDCCCCCCCCCCEC3F9A9999999999B93FF0
:103558000000000000408FC094030020A400002059
:10356800A80000207C03002000710200E80200206F
:103578003D0A83409C030020880300209803002014
:1035880084030020040000208C0300200000E03F9A
:1035980000408F4000000000774B02225A60774BB2
:1035A8001B68B3F57A7F5EDB2DE9F041744B1A682E
:1035B800744BA3FB02139B094FF47A7101FB13238D
:1035C8000BBB714C2068FCF797FF65A3D3E9002378
:1035D800FCF7EAFF06460F466C4B9889FDF7ACFBF3
:1035E8006B49FDF701FCFCF787FF5FA3D3E90023D4
:1035F800FCF7DAFF02460B4630463946FCF71EFE5A
:10360800FDF794FA2060614B5889624B1C68001BD7
:10361800FCF760FF56A3D3E90023FCF7C5FF00229F
:103628000023FDF733FA002852D1584B5889001B64
:10363800FCF750FF4EA3D3E90023FCF7B5FF0022A7
:10364800554BFDF741FA002852D1544B1B68052B06
:103658004ED8534B1B78002B4AD0524A536C43F434
:103668000043536449E00133444A1360474A908851
:103678004D490B68034403EBD3735B100B60D08890
:103688004A490B68034403EBD3735B100B60108843
:1036980047490B68034403EBD3735B100B605088F6
:1036A80044490B68034403EBD3735B100B605089E8
:1036B80038490B68034403EBD3735B100B60118923
:1036C8003D4A13680B4403EBD3735B1013607047D8
:1036D8002E4B5889001BFCF7FDFE25A3D3E90023D8
:1036E800FCF762FF0022354BFDF7D0F90028ACD07B
:1036F8002C4A536C23F400435364244B18892E4BF3
:103708001C68001BFCF7E6FE19A3D3E90023FCF7AD
:103718004BFF00220023FDF7B9F9002852D11B4BBB
:103728001889001BFCF7D6FE11A3D3E90023FCF788
:103738003BFF0022184BFDF7C7F9002852D1174B61
:103748001B68052B4ED8164B1B78002B4AD01C4AF9
:10375800536C43F40043536449E000BFAFF3008067
:10376800AE47E17A14AEEF3F7B14AE47E17A843F6F
:103778007B14AE47E17A943F00000240B800002075
:10378800AC000020D34D621008000020E8020020A1
:1037980017B9CE3C0C00002000002E400400002089
:1037A800B40000200034014014000020180000205C
:1037B8001C000020200000201000002000002EC067
:1037C800002C0140904B1889001BFCF783FE8CA34A
:1037D800D3E90023FCF7E8FE00228C4BFDF756F9ED
:1037E8000028ACD08A4A536C23F4004353648949B7
:1037F8008B6813F0200F0CBF012300238A6812F096
:10380800400F0CBF01220022896811F0800F0CBF05
:10381800012500258049886810F4806F0CBF0120BD
:1038280000208C6814F4006F0CBF01240024896800
:1038380011F4805F02EB450203EB4203774EF35C21
:1038480077490B600B6803F102030B600D68754B39
:1038580083FB0572A2EBE57202EB42024FEA4207D4
:10386800A5EB07020A600CBF02220022224400EBEB
:103878004202B05C6C4A1060106802301060106838
:1038880083FB0043A3EBE07303EB43035C00031BE0
:10389800136009685C488388644A12689A1AC38866
:1038A800634800681B1A052934D8DFE801F00323B0
:1038B80026292C2FD31A5F4A13605F4A13680133F5
:1038C80013605E4A14684CB35D4AA2FB0312120BE4
:1038D8005C4909680131B2FBF1F001FB1022EAB939
:1038E800B3FBF4F204FB1233EBB910215648FEF790
:1038F80000FC18E04F4B1A60DFE74E4B1A60DCE71C
:103908004C4A1360D9E74B4A1360D6E79B1A494AD9
:103918001360D2E7474B00221A60CEE7002210213D
:103928004948FEF7E0FB494BD3F800C03C4B1B6805
:10393800052B2BD8DFE803F00312171C2226CCF145
:10394800000064469C46424B1968374B1B68052BA0
:1039580052D8DFE803F01F3F43474B4E6446CCF193
:10396800000C0020EFE76046CCF1000C0024EAE7E9
:10397800CCF1000460464FF0000CE4E7CCF1000401
:103988000020E0E7CCF100000024DCE7002004463A
:103998008446D8E74E420F4619462C4B1B68002B2D
:1039A80040F398802B4B1D681D4B1B6805331D4A3F
:1039B80082FB03E2A2EBE37202EB42024FEA420E01
:1039C800A3EB0E02052A00F2B980DFE802F0456A8F
:1039D8006F74797E0F4649420026DEE70E4649425B
:1039E8000027DAE74F420E460021D6E74F4200266D
:1039F800D3E74E420027D0E7002637463146CCE7CA
:103A08007B14AE47E17A943FE802002000002EC004
:103A1800002C0140000C014000100140B446000891
:103A2800BC000020ABAAAA2AC00000201400002075
:103A380018000020B0000020AC000020A4000020E6
:103A48005917B7D1A800002000080140C400002081
:103A5800C8000020CC000020C5F10008AE4615467D
:103A6800654474444044964B1B68002B40F3D78050
:103A7800944B1B68944A126802F1050C934A82FB26
:103A88000CE2A2EBEC7202EB42024FEA420EACEB04
:103A98000E02052A00F2F980DFE802F058A8ADB25C
:103AA800B7BCAE466D424FF00008D9E7A8466D4254
:103AB8004FF0000ED4E7C5F1000EA8460025CFE769
:103AC800C5F1000E4FF00008CAE7C5F100084FF035
:103AD800000EC5E77E4B1D68C5F1000E7D4B1A68C8
:103AE80001327A4B83FB0283A3EBE27303EB4303BC
:103AF8004FEA4308A2EB0803052B1AD8DFE803F0C6
:103B08000323060A0E14A8461D46A9E7F0464FF0FF
:103B1800000EA5E7F046AE460025A1E72B46754600
:103B28009E464FF000089BE7A84675464FF0000EEA
:103B380096E74FF00008C646454691E74FF0000863
:103B4800C64645468CE74FF0000889E7C3F10008F0
:103B58009E461346194407EB0E0206EB080305F5CB
:103B68007A7540F2C676B54200F397800A2DB8BF41
:103B78000A25594E756304F57A7440F2C675AC424D
:103B880000F38E800A2CB8BF0A24534DAC6300F5AD
:103B98007A7040F2C674A04200F385800A28B8BF44
:103BA8000A204D4CE06301F57A7140F2C6708142FB
:103BB8007CDC0A29B8BF0A214848416302F57A72B9
:103BC80040F2C6718A4274DC0A2AB8BF0A22434905
:103BD8008A6303F57A7340F2C67293426CDC0A2B4F
:103BE800B8BF0A233D4AD363BDE8F0819E465B42D5
:103BF8004FF00008AEE798465B424FF0000EA9E789
:103C0800C3F1000E98460023A4E7C3F1000E4FF05D
:103C180000089FE7C3F100084FF0000E9AE7294B10
:103C28001B68C3F1000E284A12680132DFF89CC0F5
:103C38008CFB028CACEBE27C0CEB4C0C4FEA4C0896
:103C4800A2EB080CBCF1050F1AD8DFE80CF003232F
:103C5800060A0E14984663467CE7F0464FF0000EBD
:103C680078E7F0469E46002374E71A467346964660
:103C78004FF000086EE7984673464FF0000E69E76C
:103C88004FF00008C646434664E74FF00008C646B2
:103C980043465FE74FF000085CE740F2C67568E707
:103CA80040F2C67471E740F2C6707AE740F2C67116
:103CB80082E740F2C6728AE740F2C67392E700BF15
:103CC800C8000020D0000020C0000020ABAAAA2A0B
:103CD800CC000020BC00002000340140002C014032
:103CE800014B23F81010704704040020F0B587B08A
:103CF8001A4F64220021384600F090F818490A88C3
:103D0800B1F802C0888800B2CC8824B20D892DB2DF
:103D18004E8936B28B891BB2C98909B205910493C1
:103D280003960295019400900FFA8CF312B20D4994
:103D3800384600F07BF80C4B5B686BB90A4C23687B
:103D480023F0010323603846FCF76AFA6060E760F5
:103D5800236843F00103236007B0F0BDA0030020EF
:103D680004040020BC4600081C0002407047FEE71F
:103D7800FEE7FEE7FEE770477047704708B5FEF7B5
:103D880071FAFEF7ACF808BD002103E00B4B5B5855
:103D9800435004310A480B4B42189A42F6D30A4A58
:103DA80002E0002342F8043B084B9A42F9D3FEF79D
:103DB8008FFD00F00FF8FFF747F970472447000818
:103DC800000000208800002088000020180400203F
:103DD800FEE7000070B500250C4E0D4CA41BA41086
:103DE800A54209D100F040FC00250A4E0A4CA41B4C
:103DF800A410A54205D170BD56F825309847013565
:103E0800EEE756F8253098470135F2E71C470008D9
:103E18001C4700081C4700082047000803460244C6
:103E2800934200D1704703F8011BF9E70EB46FF015
:103E3800004100B59CB01DAB02900690079104911B
:103E48000848094953F8042B0591006802A9019311
:103E580000F066F80022029B1A701CB05DF804EBB3
:103E680003B07047240000200802FFFF2DE9F04747
:103E78008E6882469E420C469046994637D88A8973
:103E880012F4906F31D00223256809696F1A6569A9
:103E980005EB450595FBF3F509F101033B449D420C
:103EA80038BF1D46530530D5294600F035FB064678
:103EB80050B90C234FF0FF30CAF80030A38943F003
:103EC8004003A381BDE8F0873A46216900F0B4FABF
:103ED800A38923F4906343F08003A38126613E44C1
:103EE80026604E466561ED1BA5604E4500D94E46DD
:103EF80032464146206800F0AAFAA36800209B1BBE
:103F0800A36023681E442660DCE72A4600F05EFBB7
:103F180006460028E2D12169504600F0B1FAC8E708
:103F28002DE9F04F9DB003938B8980461D060C4602
:103F380016460FD50B696BB9402100F0EDFA2060E9
:103F4800206128B90C23C8F800304FF0FF30C7E0D3
:103F5800402363610023099320238DF829303023FF
:103F68004FF0010B8DF82A3037463D4615F8013BD6
:103F78000BB1252B3ED1B7EB060A0BD05346324680
:103F880021464046FFF772FF013000F0A480099BEC
:103F9800534409933B78002B00F09D8000234FF099
:103FA800FF32CDE90523049307938DF853301A9314
:103FB8002F46052217F8011B4F4800F02FFA049BE3
:103FC800D0B9D90644BF20228DF853201A0744BF20
:103FD8002B228DF853202A782A2A15D02F46002024
:103FE8000A25079A394611F8013B303B092B4DD970
:103FF800B8B10FE02F46B8E73F4A3D46801A0BFAA2
:1040080000F018430490D3E7039A111D1268039136
:10401800002A01DB079204E0524243F002030792B0
:1040280004933B782E2B0CD17B782A2B33D1039B1E
:1040380002371A1D1B680392002BB8BF4FF0FF33DD
:1040480005932E4D03223978284600F0E7F938B158
:104058004023401B03FA00F0049B013703430493F9
:104068003978062226487E1C8DF8281000F0D6F9EB
:10407800002838D0234B13BB039B073323F00703D7
:1040880008330393099B4B4409936DE705FB023200
:1040980001200F46A6E700230A2519460137059394
:1040A800384610F8012B303A092A03D9002BC8D01A
:1040B8000591C6E705FB012101230746F0E703AB9D
:1040C80000932246104B04A94046AFF30080B0F19C
:1040D800FF3F8146D6D1A3895B063FF536AF0998E5
:1040E8001DB0BDE8F08F03AB00932246064B04A930
:1040F800404600F081F8EAE7E8460008EE46000886
:10410800F246000800000000753E00082DE9F0475F
:1041180091461F468A680B6906469342B8BF134604
:10412800C9F8003091F843200C46DDF8208012B120
:104138000133C9F800302368990642BFD9F8003026
:104148000233C9F80030256815F0060507D104F1D7
:10415800190AE368D9F800209B1AAB4229DC94F8C5
:1041680043302268003318BF012392062ED404F18D
:10417800430239463046C047013021D02368E568FC
:1041880003F00603042B18BF0025D9F800204FF0D0
:10419800000908BFAD1AA368226908BF25EAE575BA
:1041A8009342C4BF9B1AED181A344D451AD100200A
:1041B80008E00123524639463046C047013003D152
:1041C8004FF0FF30BDE8F0870135C2E73020E11835
:1041D80081F843005A1C94F845102244023382F8AF
:1041E8004310C4E70123224639463046C047013010
:1041F800E6D009F10109D8E72DE9F04301F1430CB4
:104208000C46097E85B06E291746064698460C9AD4
:1042180000F0B38022D8632936D00AD8002900F0EC
:10422800B980582900F0838004F1420584F84210CF
:1042380032E0642901D06929F6D12068136805069F
:1042480003F104012AD51B681160002B03DA2D2223
:104258005B4284F843206F480A2239E0732900F052
:104268009D8008D86F2920D07029DDD1236843F0BC
:104278002003236003E0752917D07829D4D1782347
:10428800654884F8453055E0136804F14205191D66
:104298001B68116084F8423001238CE01B6810F021
:1042A800400F116018BF1BB2CFE713682568181DAF
:1042B8001060280601D51B6802E06806FBD51B883C
:1042C8006F2914BF0A2208225248002184F843109B
:1042D8006568002DA560C0F29580216821F0040171
:1042E8002160002B3DD1002D40F08E806546082AC4
:1042F8000BD12368DB0708D5236962689A42DEBFC1
:10430800302305F8013C05F1FF35ACEB05032361CB
:10431800CDF800803B4603AA21463046FFF7F6FE5B
:1043280001304DD14FF0FF3005B0BDE8F08339487A
:1043380084F84510136821681D1D1B6815600A065E
:104348000BD5CA0744BF41F0200121601BB9226880
:1043580022F0200222601022B7E74D0648BF9BB228
:10436800EFE76546B3FBF2F102FB1133C35C05F8D6
:10437800013D0B460029F5D1B9E713682568181DDA
:104388006169106028061B6801D5196002E06A0699
:10439800FBD51980002365462361B9E71368191D09
:1043A80011601D6862680021284600F037F808B1DE
:1043B800401B606063682361002384F84330A7E7EB
:1043C80023692A4639463046C0470130AAD02368B7
:1043D8009B0713D4E068039B9842B8BF1846A3E72D
:1043E80001234A4639463046C04701309AD0013544
:1043F800E368039A9B1AAB42F2DCEBE7002504F171
:104408001909F5E7002BACD1037804F1420584F8CB
:1044180042306CE7F94600080A47000810B5C9B2EF
:1044280002449042034601D1002303E01C78013086
:104438008C42F6D1184610BD10B5431E0A4491426D
:1044480000D110BD11F8014B03F8014FF7E788427E
:1044580010B501EB020307D8421E99420AD011F8A1
:10446800014B02F8014FF8E78342F5D98118D21AB7
:10447800D34200D110BD13F8014D01F8014DF7E703
:1044880038B50546002943D051F8043C0C1F002BD1
:10449800B8BFE41800F0D0F81E4A1368104633B9C4
:1044A800636014602846BDE8384000F0C6B8A342EF
:1044B8000BD921686218934201BF1A685B685218C9
:1044C800226063600460EDE713465A680AB1A242AD
:1044D800FAD919685818A0420BD120680144581815
:1044E80082421960DED110685268014419605A602E
:1044F800D8E702D90C232B60D4E7206821188A4218
:1045080001BF116852680918216062605C60C9E7E0
:1045180038BD00BFD400002070B5CD1C25F00305C0
:1045280008350C2D38BF0C25002D064601DBA942A5
:1045380003D90C233360002070BD00F07DF8214AB8
:104548001468214691B9204C23681BB9304600F005
:1045580063F820602946304600F05EF8431C24D1F9
:104568000C233046336000F068F8E4E70B685B1B07
:1045780018D40B2B0FD90B60CC18CD50304600F057
:104588005CF804F10B00231D20F00700C31AD3D0F8
:104598005A42E250D0E74B688C4216BF6360136002
:1045A8000C46EBE70C464968CCE7C41C24F003042E
:1045B800A04205D0211A304600F02EF80130CFD0A5
:1045C8002560DBE7D4000020D8000020F8B50746B6
:1045D80014460E4621B9BDE8F8401146FFF79CBFC6
:1045E80022B9FFF74DFF25462846F8BD00F026F80A
:1045F800A0420FD221463846FFF78EFF0546002815
:10460800F2D031462246FFF717FF31463846FFF70A
:1046180037FFE9E73546E7E738B50023054C054697
:104628000846236000F012F8431C02D1236803B146
:104638002B6038BD140400207047704751F8043CC3
:10464800181F002BBCBF0B58C0187047044A0549F7
:104658001368002B08BF0B461844106018467047B3
:10466800DC00002018040020F8B500BFF8BC08BC26
:104678009E467047F8B500BFF8BC08BC9E46704718
:1046880002030405060708090A0B0C0D0E0F10108B
:104698000102000000000000000000000102030405
:1046A80006070809000000000102030400000201D7
:1046B80004050300313A256920323A256920333A46
:1046C800256920343A256920353A256920363A2566
:1046D8006920373A256920383A25690D0A00000013
:1046E800232D302B2000686C4C00656667454647D3
:1046F8000030313233343536373839414243444556
:1047080046003031323334353637383961626364C4
:0447180065660000D2
:04471C000D02000882
:04472000E9010008A3
:1047240000A24A046400000000002042D0070000F8
:10473400D0070000D0070000D0070000D007000019
:10474400D007000028000020000000000000000046
:104754000000000000000000000000000000000055
:104764000000000000000000000000000000000045
:104774000000000000000000000000000000000035
:104784000000000000000000000000000000000025
:104794000000000000000000000000000000000015
:0847A40000000000000000000D
:0400000508003D9121
:102F88002C0100200028014010B50024094B1C70BA
:102F9800094B1C7005E0094B1C706420FFF770F9A1
:102FA8000134072CF7DD002220210548FFF79BF8A4
:102FB800FEE700BFAC000020B8000020A8000020F9
:102FC8000008014030B597B002250C9501231093F5
:102FD800102311931395002414944FF46013159340
:102FE8000CA8FEF703F90F230793089509944FF4EB
:102FF80080630A930B94294607A8FEF71DFB0195E9
:103008004FF44043039301A8FFF778F8FEF7D0FB8D
:10301800084BA3FB00308009FEF73AFF0420FEF7B7
:103028004DFF224621464FF0FF30FEF7F1FE17B064
:1030380030BD00BFD34D62102DE9F04F85B0FFF7CA
:10304800FFF8AB4CA36943F00103A361A36903F044
:1030580001030393039B0320FEF7C8FE00221146D9
:103068006FF00B00FEF7D4FE002211466FF00A0045
:10307800FEF7CEFE002211466FF00900FEF7C8FEEB
:10308800002211466FF00400FEF7C2FE002211462E
:103098006FF00300FEF7BCFE002211466FF001003E
:1030A800FEF7B6FE002211464FF0FF30FEF7B0FEE5
:1030B800FFF788FF636923F001036361FFF77AFC78
:1030C800FFF77AFDFFF770FEFFF704FFFFF726FC16
:1030D800012220218748FFF706F88748FFF7C0F943
:1030E8008648FFF7BDF9082405E0854B1C7064206D
:1030F800FFF7C6F8013C002CF7DA4FF0000A804BC6
:1031080083F800A0012204217E48FEF7ECFF7E4BE5
:10311800188AFDF711FE01907C4B01221A70D346E4
:1031280044E17B490A6801320A604BE14FF47A783E
:1031380032463B4620462946FDF780F804460D46B0
:103148000022744BFDF7C0FC88B963A3D3E90023C0
:1031580020462946FDF79AFC00285DD120462946DD
:10316800FDF7BCFC044604E0DFF8DC81E0E74FF43F
:103178007A740AF13203A34215DDAAF1320AA24594
:1031880011DA0BF1320343450DDDABF1320BC345C8
:1031980009DA614B1B68042B05D8604BC3F8008023
:1031A80063425F4A13605F4B1A685F4BA3FB0213CD
:1031B800DB0803EB830303EB83039A422ED002213F
:1031C8004C48FEF789FF30B1584B1B681BB9584B68
:1031D8001B68002B73D0574B1D6857492846FDF7CD
:1031E800A1FF20B1554B1B681333262B72D95449C4
:1031F8002846FDF797FF002800F0B0804E49284682
:10320800FDF7AEFF002800F0A9803D4B05221A709B
:103218004C4B06221A70ADE04B4CAAE70198FDF71B
:103228006BF92FA3D3E90023FDF7BEF906460F4635
:10323800354D288AFDF780FDFDF75EF92AA3D3E90D
:103248000023FDF7B1F902460B4630463946FCF734
:10325800F5FFFDF76BFC074601903C49FDF7BAFC0A
:103268003B49FDF7C1FD3B49FDF7B6FC0646414623
:10327800022000F001FD2146032000F0FDFCA98991
:10328800042000F0F9FC34492A4B1868FDF7ACFD1E
:10329800FDF770FF0146052000F0EEFC3846FDF70B
:1032A80069FF0146062000F0E7FC3046FDF762FFA3
:1032B8000146072000F0E0FC00F0E4FC7FE7134B38
:1032C80000221A7002210B48FEF706FF0028F9D1E8
:1032D800FFF75AFEFFF758FE0000000000408FC0BD
:1032E800AE47E17A14AEEF3F7B14AE47E17A843FF4
:1032F8000010024000080140780200202C01002044
:10330800A8000020000C0140EC020020B8000020BA
:103318009003002000408F4004000020CC000020D3
:10332800C8000020800300201F85EB51D400002036
:10333800D00000200C0000208FC221429C030020F6
:1033480000002842AC00002018FCFFFF00E0CE443B
:10335800083748BE33330F420000C842664B1B682B
:1033680013F1320F80F2AD80644B05221A70644B62
:1033780001221A7084EAE473A3EBE473322B06DCAF
:1033880088EAE873A3EBE873322B40F3A0805D4B27
:1033980000221A605B4B1A685B4B9A4200F29C80D1
:1033A8005A4A136801331360A246C3460520FEF744
:1033B80067FF574B1B68012B3FF4B3AE55490A68AA
:1033C800013A0A60534A176887EAE772A2EBE77284
:1033D800B2F5967F02DD5B424D4A13604E4B0022E8
:1033E8001A60DFF84481D8F80000FDF773F83CA3B1
:1033F800D3E90023FDF7D8F804460D46474B186873
:10340800FDF768F838A3D3E90023FDF7CDF80246A5
:103418000B4620462946FCF711FFFDF75FFB0646E1
:10342800C8F80000DFF8D080D8F80000FDF752F89F
:103438002BA3D3E90023FDF7B7F804460D46384619
:10344800FDF748F828A3D3E90023FDF7ADF80246B5
:103458000B4620462946FCF7F1FEFDF73FFBC8F86E
:103468000000FDF737F800222D4BFDF79DF80446C4
:103478000D463046FDF72EF80022294BFDF794F84B
:1034880006460F4602460B4620462946FCF7D4FE60
:10349800804689460022234BFDF716FB00287FF45F
:1034A80045AE13A3D3E9002340464946FDF7EEFA9B
:1034B80000287FF459AE40464946FDF70FFB804689
:1034C80036E600230D4A13700D4A137052E70D4A71
:1034D8001368013313605DE7FFF756FDAFF3008013
:1034E800666666666666EE3F9A9999999999A93FC4
:1034F8000000000000408FC09C030020A8000020AE
:10350800AC000020840300208038010080030020E4
:10351800080000209003002004000020A4030020DD
:103528000000E03F00408F409403002000000000AE
:10353800774B02225A60774B1B68B3F57A7F5EDBC4
:103548002DE9F041744B1A68744BA3FB02139B09D5
:103558004FF47A7101FB13230BBB714C2068FCF705
:10356800CBFF65A3D3E90023FDF71EF806460F46F7
:103578006C4B9889FDF7E0FB6B49FDF735FCFCF7D0
:10358800BBFF5FA3D3E90023FDF70EF802460B4605
:1035980030463946FCF752FEFDF7C8FA2060614B09
:1035A8005889624B1C68001BFCF794FF56A3D3E9AB
:1035B8000023FCF7F9FF00220023FDF767FA002833
:1035C80052D1584B5889001BFCF784FF4EA3D3E90E
:1035D8000023FCF7E9FF0022554BFDF775FA002898
:1035E80052D1544B1B68052B4ED8534B1B78002BDC
:1035F8004AD0524A536C43F40043536449E00133C0
:10360800444A1360474A90884D490B68034403EBCA
:10361800D3735B100B60D0884A490B68034403EBF3
:10362800D3735B100B60108847490B68034403EBA6
:10363800D3735B100B60508844490B68034403EB59
:10364800D3735B100B60508938490B68034403EB54
:10365800D3735B100B6011893D4A13680B4403EB6D
:10366800D3735B10136070472E4B5889001BFCF70F
:1036780031FF25A3D3E90023FCF796FF0022354B41
:10368800FDF704FA0028ACD02C4A536C23F400430D
:103698005364244B18892E4B1C68001BFCF71AFF37
:1036A80019A3D3E90023FCF77FFF00220023FDF7CD
:1036B800EDF9002852D11B4B1889001BFCF70AFFB3
:1036C80011A3D3E90023FCF76FFF0022184BFDF785
:1036D800FBF9002852D1174B1B68052B4ED8164B07
:1036E8001B78002B4AD01C4A536C43F400435364A4
:1036F80049E000BFAFF30080AE47E17A14AEEF3F78
:103708007B14AE47E17A843F7B14AE47E17A943F5D
:1037180000000240BC000020B0000020D34D621021
:103728000C000020EC02002017B9CE3C100000204D
:1037380000002E4004000020B800002000340140A2
:10374800180000201C000020200000202400002079
:103758001400002000002EC0002C0140904B188956
:10376800001BFCF7B7FE8CA3D3E90023FCF71CFF72
:1037780000228C4BFDF78AF90028ACD08A4A536C9A
:1037880023F40043536489498B6813F0200F0CBF5E
:10379800012300238A6812F0400F0CBF0122002287
:1037A800896811F0800F0CBF0125002580498868C1
:1037B80010F4806F0CBF012000208C6814F4006F97
:1037C8000CBF01240024896811F4805F02EB4502D4
:1037D80003EB4203774EF35C77490B600B6803F108
:1037E80002030B600D68754B83FB0572A2EBE57253
:1037F80002EB42024FEA4207A5EB07020A600CBF40
:1038080002220022224400EB4202B05C6C4A1060A3
:10381800106802301060106883FB0043A3EBE0736C
:1038280003EB43035C00031B136009685C4883884F
:10383800644A12689A1AC388634800681B1A0529E3
:1038480034D8DFE801F0032326292C2FD31A5F4A46
:1038580013605F4A1368013313605E4A14684CB3FF
:103868005D4AA2FB0312120B5C4909680131B2FBE5
:10387800F1F001FB1022EAB9B3FBF4F204FB1233B6
:10388800EBB910215648FEF734FC18E04F4B1A608C
:10389800DFE74E4B1A60DCE74C4A1360D9E74B4A26
:1038A8001360D6E79B1A494A1360D2E7474B0022B8
:1038B8001A60CEE7002210214948FEF714FC494B54
:1038C800D3F800C03C4B1B68052B2BD8DFE803F06E
:1038D8000312171C2226CCF1000064469C46424B7A
:1038E8001968374B1B68052B52D8DFE803F01F3FD8
:1038F80043474B4E6446CCF1000C0020EFE760468E
:10390800CCF1000C0024EAE7CCF1000460464FF04B
:10391800000CE4E7CCF100040020E0E7CCF1000063
:103928000024DCE7002004468446D8E74E420F46D0
:1039380019462C4B1B68002B40F398802B4B1D68B5
:103948001D4B1B6805331D4A82FB03E2A2EBE372A1
:1039580002EB42024FEA420EA3EB0E02052A00F2E6
:10396800B980DFE802F0456A6F74797E0F464942F4
:103978000026DEE70E4649420027DAE74F420E46A8
:103988000021D6E74F420026D3E74E420027D0E772
:10399800002637463146CCE77B14AE47E17A943FA0
:1039A800EC02002000002EC0002C0140000C014059
:1039B800001001404C460008C0000020ABAAAA2A0B
:1039C800C4000020180000201C000020B4000020C3
:1039D800B0000020A80000205917B7D1AC00002083
:1039E80000080140C8000020CC000020D0000020C2
:1039F800C5F10008AE461546654474444044964BEC
:103A08001B68002B40F3D780944B1B68944A1268BC
:103A180002F1050C934A82FB0CE2A2EBEC7202EB7A
:103A280042024FEA420EACEB0E02052A00F2F98080
:103A3800DFE802F058A8ADB2B7BCAE466D424FF011
:103A48000008D9E7A8466D424FF0000ED4E7C5F14B
:103A5800000EA8460025CFE7C5F1000E4FF000087C
:103A6800CAE7C5F100084FF0000EC5E77E4B1D6898
:103A7800C5F1000E7D4B1A6801327A4B83FB028335
:103A8800A3EBE27303EB43034FEA4308A2EB0803FB
:103A9800052B1AD8DFE803F00323060A0E14A846FC
:103AA8001D46A9E7F0464FF0000EA5E7F046AE46E2
:103AB8000025A1E72B4675469E464FF000089BE778
:103AC800A84675464FF0000E96E74FF00008C64628
:103AD800454691E74FF00008C64645468CE74FF04B
:103AE800000889E7C3F100089E461346194407EB0E
:103AF8000E0206EB080305F57A7540F2C676B54264
:103B080000F397800A2DB8BF0A25594E756304F54E
:103B18007A7440F2C675AC4200F38E800A2CB8BFA6
:103B28000A24534DAC6300F57A7040F2C674A04283
:103B380000F385800A28B8BF0A204D4CE06301F5E0
:103B48007A7140F2C67081427CDC0A29B8BF0A212A
:103B58004848416302F57A7240F2C6718A4274DCC1
:103B68000A2AB8BF0A2243498A6303F57A7340F2E6
:103B7800C67293426CDC0A2BB8BF0A233D4AD36352
:103B8800BDE8F0819E465B424FF00008AEE79846DC
:103B98005B424FF0000EA9E7C3F1000E98460023E0
:103BA800A4E7C3F1000E4FF000089FE7C3F1000837
:103BB8004FF0000E9AE7294B1B68C3F1000E284A04
:103BC80012680132DFF89CC08CFB028CACEBE27C03
:103BD8000CEB4C0C4FEA4C08A2EB080CBCF1050F9F
:103BE8001AD8DFE80CF00323060A0E149846634639
:103BF8007CE7F0464FF0000E78E7F0469E4600233B
:103C080074E71A46734696464FF000086EE79846E2
:103C180073464FF0000E69E74FF00008C64643466A
:103C280064E74FF00008C64643465FE74FF00008D8
:103C38005CE740F2C67568E740F2C67471E740F287
:103C4800C6707AE740F2C67182E740F2C6728AE728
:103C580040F2C67392E700BFCC000020D4000020D9
:103C6800C4000020ABAAAA2AD0000020C00000206F
:103C780000340140002C0140014B23F8101070471C
:103C88000C040020F0B587B01A4F64220021384692
:103C980000F090F818490A88B1F802C0888800B284
:103CA800CC8824B20D892DB24E8936B28B891BB2CD
:103CB800C98909B20591049303960295019400906D
:103CC8000FFA8CF312B20D49384600F07BF80C4B12
:103CD8005B686BB90A4C236823F0010323603846FC
:103CE800FCF79EFA6060E760236843F001032360F5
:103CF80007B0F0BDA80300200C04002054460008BB
:103D08001C0002407047FEE7FEE7FEE7FEE770474B
:103D18007047704708B5FEF7A5FAFEF7E0F808BD4A
:103D2800002103E00B4B5B58435004310A480B4B0E
:103D380042189A42F6D30A4A02E0002342F8043BAA
:103D4800084B9A42F9D3FEF7C3FD00F00FF8FFF7CE
:103D580073F97047BC460008000000208C00002062
:103D68008C00002020040020FEE7000070B500252C
:103D78000C4E0D4CA41BA410A54209D100F040FC28
:103D880000250A4E0A4CA41BA410A54205D170BDFB
:103D980056F8253098470135EEE756F8253098470C
:103DA8000135F2E7B4460008B4460008B4460008F6
:103DB800B846000803460244934200D1704703F80E
:103DC800011BF9E70EB46FF0004100B59CB01DABC4
:103DD80002900690079104910848094953F8042B6A
:103DE8000591006802A9019300F066F80022029B81
:103DF8001A701CB05DF804EB03B07047280000206F
:103E08000802FFFF2DE9F0478E6882469E420C4665
:103E18009046994637D88A8912F4906F31D0022398
:103E2800256809696F1A656905EB450595FBF3F582
:103E380009F101033B449D4238BF1D46530530D567
:103E4800294600F035FB064650B90C234FF0FF30E9
:103E5800CAF80030A38943F04003A381BDE8F08786
:103E68003A46216900F0B4FAA38923F4906343F039
:103E78008003A38126613E4426604E466561ED1BA2
:103E8800A5604E4500D94E4632464146206800F0AE
:103E9800AAFAA36800209B1BA36023681E4426601F
:103EA800DCE72A4600F05EFB06460028E2D12169DD
:103EB800504600F0B1FAC8E72DE9F04F9DB00393E2
:103EC8008B8980461D060C4616460FD50B696BB9C3
:103ED800402100F0EDFA2060206128B90C23C8F8D1
:103EE80000304FF0FF30C7E040236361002309939F
:103EF80020238DF8293030234FF0010B8DF82A301C
:103F080037463D4615F8013B0BB1252B3ED1B7EBA3
:103F1800060A0BD05346324621464046FFF772FF49
:103F2800013000F0A480099B534409933B78002B8F
:103F380000F09D8000234FF0FF32CDE90523049364
:103F480007938DF853301A932F46052217F8011B53
:103F58004F4800F02FFA049BD0B9D90644BF20225D
:103F68008DF853201A0744BF2B228DF853202A7846
:103F78002A2A15D02F4600200A25079A394611F813
:103F8800013B303B092B4DD9B8B10FE02F46B8E7BC
:103F98003F4A3D46801A0BFA00F018430490D3E7D5
:103FA800039A111D12680391002A01DB079204E0AD
:103FB800524243F00203079204933B782E2B0CD114
:103FC8007B782A2B33D1039B02371A1D1B68039277
:103FD800002BB8BF4FF0FF3305932E4D03223978DD
:103FE800284600F0E7F938B14023401B03FA00F0F7
:103FF800049B0137034304933978062226487E1C24
:104008008DF8281000F0D6F9002838D0234B13BBC0
:10401800039B073323F0070308330393099B4B449F
:1040280009936DE705FB023201200F46A6E700233E
:104038000A25194601370593384610F8012B303AFE
:10404800092A03D9002BC8D00591C6E705FB012131
:1040580001230746F0E703AB00932246104B04A95F
:104068004046AFF30080B0F1FF3F8146D6D1A38927
:104078005B063FF536AF09981DB0BDE8F08F03AB7E
:1040880000932246064B04A9404600F081F8EAE76F
:1040980080460008864600088A460008000000009E
:1040A8000D3E00082DE9F04791461F468A680B69C6
:1040B80006469342B8BF1346C9F8003091F843202A
:1040C8000C46DDF8208012B10133C9F800302368AE
:1040D800990642BFD9F800300233C9F80030256884
:1040E80015F0060507D104F1190AE368D9F800208C
:1040F8009B1AAB4229DC94F843302268003318BF7E
:10410800012392062ED404F1430239463046C047B3
:10411800013021D02368E56803F00603042B18BF9B
:104128000025D9F800204FF0000908BFAD1AA36890
:10413800226908BF25EAE5759342C4BF9B1AED18AA
:104148001A344D451AD1002008E001235246394659
:104158003046C047013003D14FF0FF30BDE8F0874B
:104168000135C2E73020E11881F843005A1C94F861
:1041780045102244023382F84310C4E70123224643
:1041880039463046C0470130E6D009F10109D8E781
:104198002DE9F04301F1430C0C46097E85B06E29E8
:1041A8001746064698460C9A00F0B38022D8632931
:1041B80036D00AD8002900F0B980582900F0838049
:1041C80004F1420584F8421032E0642901D06929DB
:1041D800F6D120681368050603F104012AD51B6887
:1041E8001160002B03DA2D225B4284F843206F48CC
:1041F8000A2239E0732900F09D8008D86F2920D061
:104208007029DDD1236843F02003236003E075297A
:1042180017D07829D4D17823654884F8453055E0FB
:10422800136804F14205191D1B68116084F84230B7
:1042380001238CE01B6810F0400F116018BF1BB2FF
:10424800CFE713682568181D1060280601D51B687C
:1042580002E06806FBD51B886F2914BF0A220822D2
:104268005248002184F843106568002DA560C0F20B
:104278009580216821F004012160002B3DD1002D9B
:1042880040F08E806546082A0BD12368DB0708D5E5
:10429800236962689A42DEBF302305F8013C05F1C4
:1042A800FF35ACEB05032361CDF800803B4603AA3C
:1042B80021463046FFF7F6FE01304DD14FF0FF3072
:1042C80005B0BDE8F083394884F8451013682168C3
:1042D8001D1D1B6815600A060BD5CA0744BF41F0AF
:1042E800200121601BB9226822F0200222601022DE
:1042F800B7E74D0648BF9BB2EFE76546B3FBF2F15F
:1043080002FB1133C35C05F8013D0B460029F5D1CA
:10431800B9E713682568181D6169106028061B68CD
:1043280001D5196002E06A06FBD5198000236546AD
:104338002361B9E71368191D11601D6862680021BF
:10434800284600F037F808B1401B606063682361B5
:10435800002384F84330A7E723692A4639463046C4
:10436800C0470130AAD023689B0713D4E068039B99
:104378009842B8BF1846A3E701234A463946304653
:10438800C04701309AD00135E368039A9B1AAB42C3
:10439800F2DCEBE7002504F11909F5E7002BACD1B5
:1043A800037804F1420584F842306CE7914600082E
:1043B800A246000810B5C9B202449042034601D192
:1043C800002303E01C7801308C42F6D1184610BD5A
:1043D80010B5431E0A44914200D110BD11F8014B9B
:1043E80003F8014FF7E7884210B501EB020307D83D
:1043F800421E99420AD011F8014B02F8014FF8E722
:104408008342F5D98118D21AD34200D110BD13F8CE
:10441800014D01F8014DF7E738B50546002943D0AD
:1044280051F8043C0C1F002BB8BFE41800F0D0F87A
:104438001E4A1368104633B9636014602846BDE805
:10444800384000F0C6B8A3420BD9216862189342DD
:1044580001BF1A685B685218226063600460EDE768
:1044680013465A680AB1A242FAD919685818A042E4
:104478000BD120680144581882421960DED11068B7
:104488005268014419605A60D8E702D90C232B609E
:10449800D4E7206821188A4201BF116852680918B8
:1044A800216062605C60C9E738BD00BFD8000020A9
:1044B80070B5CD1C25F0030508350C2D38BF0C252B
:1044C800002D064601DBA94203D90C2333600020E6
:1044D80070BD00F07DF8214A1468214691B9204C3E
:1044E80023681BB9304600F063F82060294630463F
:1044F80000F05EF8431C24D10C233046336000F0F2
:1045080068F8E4E70B685B1B18D40B2B0FD90B601A
:10451800CC18CD50304600F05CF804F10B00231D98
:1045280020F00700C31AD3D05A42E250D0E74B68B4
:104538008C4216BF636013600C46EBE70C46496873
:10454800CCE7C41C24F00304A04205D0211A30464D
:1045580000F02EF80130CFD02560DBE7D80000202E
:10456800DC000020F8B5074614460E4621B9BDE820
:10457800F8401146FFF79CBF22B9FFF74DFF2546CB
:104588002846F8BD00F026F8A0420FD2214638464A
:10459800FFF78EFF05460028F2D031462246FFF786
:1045A80017FF31463846FFF737FFE9E73546E7E7B3
:1045B80038B50023054C05460846236000F012F87C
:1045C800431C02D1236803B12B6038BD1C040020B2
:1045D8007047704751F8043C181F002BBCBF0B589C
:1045E800C0187047044A05491368002B08BF0B46DA
:1045F8001844106018467047E0000020200400208E
:10460800F8B500BFF8BC08BC9E467047F8B500BFB7
:08461800F8BC08BC9E46704787
:1046200002030405060708090A0B0C0D0E0F1010F3
:10463000010200000000000000000000010203046D
:10464000060708090000000001020304000002013F
:1046500004050300313A256920323A256920333AAE
:10466000256920343A256920353A256920363A25CE
:104670006920373A256920383A25690D0A0000007B
:10468000232D302B2000686C4C006566674546473B
:1046900000303132333435363738394142434445BE
:1046A000460030313233343536373839616263642D
:0446B000656600003B
:0446B4000D020008EB
:0446B800E90100080C
:1046BC0000A24A0464000000010000000000404217
:1046CC00D0070000D0070000D0070000D007000082
:1046DC00D0070000D00700002C00002000000000D4
:1046EC0000000000000000000000000000000000BE
:1046FC0000000000000000000000000000000000AE
:10470C00000000000000000000000000000000009D
:10471C00000000000000000000000000000000008D
:10472C00000000000000000000000000000000007D
:0C473C0000000000000000000000000071
:0400000508003D2989
:00000001FF

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Loading…
Cancel
Save