From 3fb4c30604e0fead931b54631954be2c6f4451e6 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Thu, 27 Dec 2018 20:24:21 +0100 Subject: [PATCH] Initial fork from MicroAPRS. Moved hardware definitions to m1284p. Implemented basic rx. --- Makefile | 11 +- README.md | 128 +-- device.h | 35 +- hardware/AFSK.c | 97 +- hardware/AFSK.h | 14 +- main.c | 99 +- precompiled/microaprs-3v-kiss-latest.hex | 378 ------- precompiled/microaprs-3v-ss-latest.hex | 1269 --------------------- precompiled/microaprs-5v-kiss-latest.hex | 378 ------- precompiled/microaprs-5v-ss-latest.hex | 1270 ---------------------- protocol/AX25.c | 79 +- protocol/AX25.h | 35 +- protocol/SimpleSerial.c | 861 --------------- protocol/SimpleSerial.h | 25 - util/constants.h | 2 +- util/time.h | 2 +- 16 files changed, 109 insertions(+), 4574 deletions(-) delete mode 100644 precompiled/microaprs-3v-kiss-latest.hex delete mode 100644 precompiled/microaprs-3v-ss-latest.hex delete mode 100644 precompiled/microaprs-5v-kiss-latest.hex delete mode 100644 precompiled/microaprs-5v-ss-latest.hex delete mode 100755 protocol/SimpleSerial.c delete mode 100755 protocol/SimpleSerial.h diff --git a/Makefile b/Makefile index 709f106..bba5319 100755 --- a/Makefile +++ b/Makefile @@ -7,20 +7,15 @@ # customize the avrdude settings below first! # Microcontroller Type -#MCU = atmega1284p -#MCU = atmega644p -MCU = atmega328p +MCU = atmega1284p # Target file name (without extension). -TARGET = images/MicroAPRS +TARGET = images/OpenModem # Programming hardware: type avrdude -c ? # to get a full listing. AVRDUDE_PROGRAMMER = arduino - AVRDUDE_PORT = /dev/usb # not really needed for usb -#AVRDUDE_PORT = /dev/parport0 # linux -# AVRDUDE_PORT = lpt1 # windows ############# Don't need to change below here for most purposes (Elliot) @@ -33,7 +28,7 @@ FORMAT = ihex # List C source files here. (C dependencies are automatically generated.) #SRC = $(TARGET).c -SRC = main.c hardware/Serial.c hardware/AFSK.c util/CRC-CCIT.c protocol/AX25.c protocol/KISS.c protocol/SimpleSerial.c +SRC = main.c hardware/Serial.c hardware/AFSK.c util/CRC-CCIT.c protocol/AX25.c protocol/KISS.c # If there is more than one source file, append them above, or modify and # uncomment the following: diff --git a/README.md b/README.md index e511886..64940cb 100755 --- a/README.md +++ b/README.md @@ -1,128 +1,2 @@ -MicroAPRS +OpenModem Dev Repo ========== - -MicroAPRS is an APRS firmware for [MicroModem](http://unsigned.io/micromodem). It supports both normal KISS mode, and a simple serial protocol for easy communication with an Arduino, or other MCU. - -You can buy a complete modem from [my shop](http://unsigned.io/shop), or you can build one yourself pretty easily. Take a look at the documentation in the [MicroModem](https://github.com/markqvist/MicroModem) repository for information and getting started guides! - -## Some features - -- Send and receive AX.25 APRS packets -- Full modulation and demodulation in software -- Easy configuration of callsign and path settings -- Flexibility in how received packets are output over serial connection -- Persistent configuration stored in EEPROM -- Shorthand functions for sending location updates and messages, so you don't need to manually create the packets -- Ability to send raw packets -- Support for settings APRS symbols -- Support for power/height/gain info in location updates -- Ability to automatically ACK messages adressed to the modem -- Can run with open squelch -- Supports KISS mode for use with programs on a host computer - -## KISS mode - -When the modem is running in KISS mode, there's really not much more to it than connecting the modem to a computer, opening whatever program you want to use with it, and off you go. - -When in KISS mode, the preamble time, tail time, persistence and slot time parameters can be configured by the default KISS commands for these. See KISS.h and KISS.c for more info on the configuration command syntax. - -It's important to note that some programs (Xastir, for example) will reset the modem when connecting to it, and then immediately send configuration commands. Depending on your hardware, this might have the unfortunate effect that the configuration commands are sent to the bootloader, instead of the booted firmware. If your program does not allow you to disable resetting or to set a delay for sending the configuration commands, you can manually disable the reset functionality by connecting a resistor of around 100 ohms between the VCC and DTR pins. This will ensure that the modem is not reset, even if the host program sends a reset command. - -## Modem control - SimpleSerial - -If you want to use the SimpleSerial protocol, here's how to control the APRS modem over a serial connection. The modem accepts a variety of commands for setting options and sending packets. Generally a command starts with one or more characters defining the command, and then whatever data is needed to set the options for that command. Here's a list of the currently available commands: - -## Serial commands - -Command | Description ---- | :--- -__!\__ | Send raw packet -__@\__ | Send location update (cmt = optional comment) -__#\__ | Send APRS message -  |   -__c\__ | Set your callsign -__d\__ | Set destination callsign -__1\__ | Set PATH1 callsign -__2\__ | Set PATH2 callsign -  |   -__sc\__ | Set your SSID -__sd\__ | Set destination SSID -__s1\__ | Set PATH1 SSID -__s2\__ | Set PATH2 SSID -  |   -__lla\__ | Set latitude (NMEA-format, eg 4903.50N) -__llo\__ | Set latitude (NMEA-format, eg 07201.75W) -__lp\<0-9>__ | Set TX power info -__lh\<0-9>__ | Set antenna height info -__lg\<0-9>__ | Set antenna gain info -__ld\<0-9>__ | Set antenna directivity info -__ls\__ | Select symbol -__lt\__ | Select symbol table (standard/alternate) -  |   -__mc\__ | Set message recipient callsign -__ms\__ | Set message recipient SSID -__mr\__ | Retry last message -__ma\<1/0>__ | Automatic message ACK on/off -  |  -__ps\<1/0>__ | Print SRC on/off -__pd\<1/0>__ | Print DST on/off -__pp\<1/0>__ | Print PATH on/off -__pm\<1/0>__ | Print DATA on/off -__pi\<1/0>__ | Print INFO on/off -__v\<1/0>__ | Verbose mode on/off -__V\<1/0>__ | Silent mode on/off -  |   -__w\__ | Set preamble in ms -__W\__ | Set TX tail in ms -  |   -__S__ | Save configuration -__L__ | Load configuration -__C__ | Clear configuration -__H__ | Print configuration - - - -### Examples - -__To set your callsign to XX1YYY-5, and then save the configuration, send these three commands:__ -``` -cXX1YYY -sc5 -S -``` - -__To send an APRS message to ZZ5ABC-1 with the content "Hi there!", send these commands:__ -``` -mcZZ5ABC -ms1 -# Hi there! -``` - -__To send a location update, with the comment "MicroAPRS", you can do something like this:__ -``` -lla5230.70N -llo01043.70E -@MicroAPRS -``` - -__To send an APRS message to ZZ5ABC-1 with the content "Hi there!", using a raw packet, send this command:__ -``` -!:ZZ5ABC-1 :Hi there!{01 -``` -__Here's an example of how to send a location update with power, height and gain information, using a raw packet:__ -``` -!=5230.70N/01043.70E-PHG2410MicroAPRS -``` - -### EEPROM Settings -When saving the configuration, it is written to EEPROM, so it will persist between poweroffs. If a configuration has been stored, it will automatically be loaded when the modem powers up. The configuration can be cleared by sending the "clear configuration" command (`C`). - -### Serial Connection - -To connect to the modem use __9600 baud, 8N1__ serial. By default, the firmware uses time-sensitive input, which means that it will buffer serial data as it comes in, and when it has received no data for a few milliseconds, it will start interpreting whatever it has received. This means you need to set your serial terminal program to not send data for every keystroke, but only on new-line, or pressing send or whatever. If you do not want this behaviour, you can compile the firmware with the DEBUG flag set, which will make the modem wait for a new-line character before interpreting the received data. I would generally advise against this though, since it means that you cannot have newline characters in whatever data you want to send! - -![MicroModem](https://unsigned.io/wp-content/uploads/2014/11/A1-1024x731.jpg) - -The project has been implemented in your normal C with makefile style, and uses AVR Libc. The firmware is compatible with Arduino-based products, although it was not written in the Arduino IDE. - -Visit [my site](http://unsigned.io) for questions, comments and other details. diff --git a/device.h b/device.h index 499ae09..e8031c0 100755 --- a/device.h +++ b/device.h @@ -4,42 +4,31 @@ #define DEVICE_CONFIGURATION // CPU settings -#define TARGET_CPU m328p -#define F_CPU 16000000 +#define TARGET_CPU m1284p +#define F_CPU 16000000UL #define FREQUENCY_CORRECTION 0 // ADC settings #define OPEN_SQUELCH true #define ADC_REFERENCE REF_3V3 -// OR -//#define ADC_REFERENCE REF_5V // Sampling & timer setup -#define CONFIG_AFSK_DAC_SAMPLERATE 9600 - -// Serial protocol settings -#define SERIAL_PROTOCOL PROTOCOL_KISS -// OR -//#define SERIAL_PROTOCOL PROTOCOL_SIMPLE_SERIAL - -// AX25 settings -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - #define CUSTOM_FRAME_SIZE 330 -#endif +#define CONFIG_SAMPLERATE 19200UL +//#define CONFIG_SAMPLERATE 9600 // Serial settings -#define BAUD 9600 +#define BAUD 115200 #define SERIAL_DEBUG false #define TX_MAXWAIT 2UL // Port settings -#if TARGET_CPU == m328p - #define DAC_PORT PORTD - #define DAC_DDR DDRD - #define LED_PORT PORTB - #define LED_DDR DDRB - #define ADC_PORT PORTC - #define ADC_DDR DDRC +#if TARGET_CPU == m1284p + #define ADC_PORT PORTA + #define ADC_DDR DDRA + #define DAC_PORT PORTB + #define DAC_DDR DDRB + #define LED_PORT PORTC + #define LED_DDR DDRC #endif #endif \ No newline at end of file diff --git a/hardware/AFSK.c b/hardware/AFSK.c index b400366..b81d5cb 100755 --- a/hardware/AFSK.c +++ b/hardware/AFSK.c @@ -2,6 +2,11 @@ #include "AFSK.h" #include "util/time.h" +// TODO: Remove testing vars +#define SAMPLES_TO_CAPTURE 128 +ticks_t capturedsamples = 0; +uint8_t samplebuf[SAMPLES_TO_CAPTURE]; + extern volatile ticks_t _clock; extern unsigned long custom_preamble; extern unsigned long custom_tail; @@ -14,43 +19,51 @@ Afsk *AFSK_modem; int afsk_getchar(FILE *strem); int afsk_putchar(char c, FILE *stream); -void AFSK_hw_refDetect(void) { - // This is manual for now - #if ADC_REFERENCE == REF_5V - hw_5v_ref = true; - #else - hw_5v_ref = false; - #endif -} - +// ADC and clock setup void AFSK_hw_init(void) { - // Set up ADC - AFSK_hw_refDetect(); + // Set Timer1 to normal operation + TCCR1A = 0; - TCCR1A = 0; - TCCR1B = _BV(CS10) | _BV(WGM13) | _BV(WGM12); - ICR1 = (((CPU_FREQ+FREQUENCY_CORRECTION)) / 9600) - 1; + TCCR1B = _BV(WGM13) | // Enable Timer1 Waveform Generation Mode 12: + _BV(WGM12) | // Mode = CTC, TOP = ICR1 + _BV(CS10); // Set clock source to 0b001 = System clock without prescaling - if (hw_5v_ref) { - ADMUX = _BV(REFS0) | 0; - } else { - ADMUX = 0; - } + // Set ICR1 register to the amount of ticks needed between + // each sample capture/synthesis + ICR1 = TICKS_BETWEEN_SAMPLES; - ADC_DDR &= ~_BV(0); - ADC_PORT &= ~_BV(0); + // Set ADMUX register to use external AREF, channel ADC0 + // and left adjust result + ADMUX = _BV(ADLAR) | 0; + + // Set ADC port directions and outputs + // TODO: Check this + ADC_DDR &= ~_BV(0); // 0b11111110 - All pins are outputs, except ADC0 + ADC_PORT &= 0x00; // 0b00000000 - All pins are at GND level + + // Set Digital Input Disable Register mask to 0b00000001, + // which disables the input buffer on ADC0 pin to avoid + // current through the pin. DIDR0 |= _BV(0); - ADCSRB = _BV(ADTS2) | - _BV(ADTS1) | - _BV(ADTS0); - ADCSRA = _BV(ADEN) | - _BV(ADSC) | - _BV(ADATE)| - _BV(ADIE) | - _BV(ADPS2); + + ADCSRB = _BV(ADTS2) | + _BV(ADTS1) | + _BV(ADTS0); // Set ADC Trigger Source to 0b111 = Timer1 Capture Event + + ADCSRA = _BV(ADEN) | // ADC Enable + _BV(ADSC) | // ADC Start Conversion + _BV(ADATE)| // ADC Interrupt Flag + _BV(ADIE) | // ADC Interrupt Enable + _BV(ADPS0)| + _BV(ADPS2); // Set ADC prescaler bits to 0b101 = 32 + // At 16MHz, this gives an ADC clock of 500 KHz + + // Run DAC initialisation AFSK_DAC_INIT(); + + // Run LED initialisation LED_TX_INIT(); LED_RX_INIT(); } @@ -536,11 +549,33 @@ void AFSK_adc_isr(Afsk *afsk, int8_t currentSample) { ISR(ADC_vect) { TIFR1 = _BV(ICF1); - AFSK_adc_isr(AFSK_modem, ((int16_t)((ADC) >> 2) - 128)); + AFSK_adc_isr(AFSK_modem, (ADCH - 128)); + if (hw_afsk_dac_isr) { - DAC_PORT = (AFSK_dac_isr(AFSK_modem) & 0xF0) | _BV(3); + DAC_PORT = AFSK_dac_isr(AFSK_modem); + LED_TX_ON(); } else { DAC_PORT = 128; } + ++_clock; + + /* + // TODO: Remove these debug sample collection functions + if (capturedsamples == SAMPLES_TO_CAPTURE) { + printf("--- Dumping samples ---"); + for (ticks_t i = 0; i < SAMPLES_TO_CAPTURE; i++) { + uint8_t c = samplebuf[i]; + printf("%d\r\n", c); + } + printf("-------- Done ---------"); + } + DAC_PORT ^= 0xFF; + if (capturedsamples < SAMPLES_TO_CAPTURE) { + samplebuf[capturedsamples++] = ADCH; + // Clear Input Capture Flag from Timer1 Interrupt Flag Register + // to allow for next capture interrupt to occur + TIFR1 = _BV(ICF1); + } + */ } \ No newline at end of file diff --git a/hardware/AFSK.h b/hardware/AFSK.h index 2ba6ec5..d67b167 100755 --- a/hardware/AFSK.h +++ b/hardware/AFSK.h @@ -47,10 +47,9 @@ inline static uint8_t sinSample(uint16_t i) { #define CONFIG_AFSK_TRAILER_LEN 50UL #define BIT_STUFF_LEN 5 -#define SAMPLERATE 9600 #define BITRATE 1200 - -#define SAMPLESPERBIT (SAMPLERATE / BITRATE) +#define SAMPLESPERBIT (CONFIG_SAMPLERATE / BITRATE) +#define TICKS_BETWEEN_SAMPLES ((((CPU_FREQ+FREQUENCY_CORRECTION)) / CONFIG_SAMPLERATE) - 1) #define PHASE_INC 1 // Nudge by an eigth of a sample each adjustment #define DCD_MIN_COUNT 6 @@ -136,12 +135,15 @@ typedef struct Afsk } Afsk; #define DIV_ROUND(dividend, divisor) (((dividend) + (divisor) / 2) / (divisor)) -#define MARK_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)MARK_FREQ, CONFIG_AFSK_DAC_SAMPLERATE)) -#define SPACE_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)SPACE_FREQ, CONFIG_AFSK_DAC_SAMPLERATE)) +#define MARK_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)MARK_FREQ, CONFIG_SAMPLERATE)) +#define SPACE_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)SPACE_FREQ, CONFIG_SAMPLERATE)) #define AFSK_DAC_IRQ_START() do { extern bool hw_afsk_dac_isr; hw_afsk_dac_isr = true; } while (0) #define AFSK_DAC_IRQ_STOP() do { extern bool hw_afsk_dac_isr; hw_afsk_dac_isr = false; } while (0) -#define AFSK_DAC_INIT() do { DAC_DDR |= 0xF8; } while (0) + +// DAC uses all 8 pins of one port, set all pins to +// output direction +#define AFSK_DAC_INIT() do { DAC_DDR |= 0xFF; } while (0) // Here's some macros for controlling the RX/TX LEDs // THE _INIT() functions writes to the DDRB register diff --git a/main.c b/main.c index 8582f47..5ee8f33 100755 --- a/main.c +++ b/main.c @@ -7,110 +7,41 @@ #include "hardware/AFSK.h" #include "hardware/Serial.h" #include "protocol/AX25.h" - -#if SERIAL_PROTOCOL == PROTOCOL_KISS - #include "protocol/KISS.h" -#endif - -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - #include "protocol/SimpleSerial.h" -#endif +#include "protocol/KISS.h" Serial serial; Afsk modem; AX25Ctx AX25; -#if SERIAL_PROTOCOL == PROTOCOL_KISS - static void ax25_callback(struct AX25Ctx *ctx) { - kiss_messageCallback(ctx); - } -#endif - -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - static uint8_t serialBuffer[AX25_MAX_FRAME_LEN+1]; - static int sbyte; - static size_t serialLen = 0; - static bool sertx = false; - - static void ax25_callback(struct AX25Msg *msg) { - ss_messageCallback(msg); - } -#endif +static void ax25_callback(struct AX25Ctx *ctx) { + kiss_messageCallback(ctx); +} void init(void) { sei(); - AFSK_init(&modem); - ax25_init(&AX25, &modem, &modem.fd, ax25_callback); - + // TODO: serial init was last before serial_init(&serial); stdout = &serial.uart0; stdin = &serial.uart0; - #if SERIAL_PROTOCOL == PROTOCOL_KISS - kiss_init(&AX25, &modem, &serial); - #endif + AFSK_init(&modem); + ax25_init(&AX25, &modem, &modem.fd, ax25_callback); - #if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - ss_init(&AX25); - #endif + kiss_init(&AX25, &modem, &serial); } int main (void) { init(); - #if SERIAL_PROTOCOL == PROTOCOL_KISS - while (true) { - ax25_poll(&AX25); - - if (serial_available(0)) { - char sbyte = uart0_getchar_nowait(); - kiss_serialCallback(sbyte); - } + while (true) { + ax25_poll(&AX25); + + if (serial_available(0)) { + char sbyte = uart0_getchar_nowait(); + kiss_serialCallback(sbyte); } - #endif - - #if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - ticks_t start = timer_clock(); - while (1) { - ax25_poll(&AX25); - - if (!sertx && serial_available(0)) { - sbyte = uart0_getchar_nowait(); - - #if SERIAL_DEBUG - if ((serialLen < AX25_MAX_FRAME_LEN) && (sbyte != 10)) { - serialBuffer[serialLen] = sbyte; - serialLen++; - } else { - sertx = true; - } - #else - if (serialLen < AX25_MAX_FRAME_LEN-1) { - serialBuffer[serialLen] = sbyte; - serialLen++; - } else { - serialBuffer[serialLen] = sbyte; - serialLen++; - sertx = true; - } - - start = timer_clock(); - #endif - } else { - if (!SERIAL_DEBUG && serialLen > 0 && timer_clock() - start > ms_to_ticks(TX_MAXWAIT)) { - sertx = true; - } - } - - if (sertx) { - ss_serialCallback(serialBuffer, serialLen, &AX25); - sertx = false; - serialLen = 0; - } - - } - #endif + } return(0); } \ No newline at end of file diff --git a/precompiled/microaprs-3v-kiss-latest.hex b/precompiled/microaprs-3v-kiss-latest.hex deleted file mode 100644 index a67d16c..0000000 --- a/precompiled/microaprs-3v-kiss-latest.hex +++ /dev/null @@ -1,378 +0,0 @@ -:100000000C9474010C9491010C9491010C94910145 -:100010000C9491010C9491010C9491010C94910118 -:100020000C9491010C9491010C9491010C94910108 -:100030000C9491010C9491010C9491010C949101F8 -:100040000C9491010C9491010C9491010C949101E8 -:100050000C9491010C94F4060C9491010C94910170 -:100060000C9491010C949101808183848687898A04 -:100070008C8E8F9192949597989A9B9D9EA0A2A307 -:10008000A5A6A7A9AAACADAFB0B2B3B5B6B7B9BA79 -:10009000BCBDBEC0C1C2C4C5C6C8C9CACBCDCECF07 -:1000A000D0D2D3D4D5D6D7D9DADBDCDDDEDFE0E1C0 -:1000B000E2E3E4E5E6E7E8E9EAEAEBECEDEEEEEFB1 -:1000C000F0F1F1F2F3F3F4F5F5F6F6F7F8F8F9F9E3 -:1000D000FAFAFAFBFBFCFCFCFDFDFDFDFEFEFEFE5C -:1000E000FEFFFFFFFFFFFFFF0000891112239B327D -:1000F0002446AD573665BF74488CC19D5AAFD3BEF8 -:100100006CCAE5DB7EE9F7F88110080193331A2207 -:10011000A5562C47B7753E64C99C408DDBBF52AED7 -:10012000EDDA64CBFFF976E802218B3010029913E7 -:100130002667AF763444BD554AADC3BC588ED19FB7 -:100140006EEBE7FA7CC8F5D983310A2091121803C7 -:10015000A7772E66B5543C45CBBD42ACD99E508F97 -:10016000EFFB66EAFDD874C904428D5316619F7097 -:100170002004A9153227BB364CCEC5DF5EEDD7FC77 -:100180006888E1997AABF3BA85520C4397711E6087 -:10019000A1142805B3373A26CDDE44CFDFFD56EC57 -:1001A000E9986089FBBB72AA06638F7214409D5167 -:1001B0002225AB343006B9174EEFC7FE5CCCD5DD37 -:1001C0006AA9E3B8788AF19B87730E6295501C4147 -:1001D000A3352A24B1163807CFFF46EEDDDC54CD17 -:1001E000EBB962A8F99A708B088481951AA793B627 -:1001F0002CC2A5D33EE1B7F04008C919522BDB3A17 -:10020000644EED5F766DFF7C899400859BB712A6E6 -:10021000ADD224C3BFF136E0C1184809D33B5A2AF6 -:10022000E55E6C4FF77D7E6C0AA583B418869197C6 -:100230002EE3A7F23CC0B5D14229CB38500AD91BD6 -:10024000666FEF7E744CFD5D8BB502A499961087A6 -:10025000AFF326E2BDD034C1C3394A28D11A580BB6 -:10026000E77F6E6EF55C7C4D0CC685D71EE597F476 -:100270002880A1913AA3B3B2444ACD5B5669DF7896 -:10028000600CE91D722FFB3E8DD604C79FF516E466 -:10029000A9902081BBB332A2C55A4C4BD7795E6876 -:1002A000E11C680DF33F7A2E0EE787F61CC495D546 -:1002B0002AA1A3B03882B193466BCF7A5448DD5956 -:1002C000622DEB3C700EF91F8FF706E69DD414C526 -:1002D000ABB122A0B9923083C77B4E6AD5585C4936 -:1002E000E33D6A2CF11E780F11241FBECFEFD8E03A -:1002F000DEBFCDBF11E0A0E0B1E0EAE6F7E102C069 -:1003000005900D92A231B107D9F718E0A2E1B1E052 -:1003100001C01D92A434B107E1F70E946E0A0C944B -:10032000B30B0C9400000C94C40878948CE294E015 -:100330000E94100323E931E04CE254E0BA018CE062 -:1003400095E00E948D078EEF94E00E94C701EEE3D6 -:10035000F8E08EEF94E09383828391838083AC01F5 -:100360006CE274E08CE095E00C94B5089091C000CC -:1003700095FFFCCF8093C60081E090E008958091C6 -:10038000C00087FFFCCF8091C60090E00895CF9316 -:10039000DF93CDB7DEB72E970FB6F894DEBF0FBE52 -:1003A000CDBFDC018EE0FD01982F11929A95E9F7FF -:1003B0001092C50097E69093C400E0ECF0E09081C5 -:1003C0009D7F908396E09093C20098E19093C10046 -:1003D0009E012F5F3F4FF90111928A95E9F783E063 -:1003E0008C8386EB91E09A8789878FEB91E09C87DD -:1003F0008B879EE0F90101900D929A95E1F72E9678 -:100400000FB6F894DEBF0FBECDBFDF91CF91089538 -:10041000811106C08091C000881F8827881F089519 -:1004200080E008958091C00087FF03C08091C600DE -:1004300008958FEF08950F931F93CF93DF93182F95 -:10044000C0913308D0913408FE01E659FF4F8081F6 -:10045000811126C080E490E098A38F8F1E8E1D8EA0 -:100460001C8E01E0008331960083299A20910901B6 -:1004700030910A0140910B0150910C01A0EBB4E0C6 -:100480000E948D0A6056704F8F4F9F4F20E43FE1CE -:1004900040E050E00E94980A3D8B2C8B00931301A2 -:1004A0000FB7F894209105013091060140910701A2 -:1004B00050910801A0EBB4E00E948D0A6056704F85 -:1004C0008F4F9F4F20E43FE140E050E00E94980AA8 -:1004D0003F8B2E8B0FBFE0913308F09134084FB75C -:1004E000F89426A137A182A193A12817390739F4DE -:1004F00020A531A584A195A12817390779F060A519 -:1005000071A526A137A12150310991E080E0621741 -:10051000730709F090E0292F382F02C021E030E066 -:100520004FBF232BC1F6E0913308F09134082FB769 -:10053000F894A0A5B1A51C9340A551A584A195A1AF -:100540004817590719F482A193A103C080A591A56A -:10055000019691A780A72FBF81E090E0DF91CF9116 -:100560001F910F910895E0913308F09134084FB72F -:10057000F894E758FF4F24813581868197814FBFDA -:1005800028173907E9F0E0913308F09134089FB754 -:10059000F894E758FF4FA481B58122813381A217D7 -:1005A000B30719F42081318105C0A481B5819D0173 -:1005B0002F5F3F4F358324838C919FBF90E0089538 -:1005C0008FEF9FEF0895109212010895109212017B -:1005D0001092800089E18093810081E896E09093F9 -:1005E00087008093860080911201882321F080E4A7 -:1005F00080937C0002C010927C00389840988091D3 -:100600007E00816080937E0087E080937B008CEE8B -:1006100080937A008AB1886F8AB9219A229A0895C4 -:100620000F931F93CF93DF93CDB7DEB72E970FB6FF -:10063000F894DEBF0FBECDBF8C018EECD8011D92A9 -:100640008A95E9F7109334080093330880E490E02A -:10065000F80190A3878F11A2C8018C589F4FE459CD -:10066000FF4F918380839783868395838483049649 -:10067000938382830996D801A758BF4F11969C9304 -:100680008E9317969C938E93169715969C938E93A4 -:100690001497CF9613969C938E931297865991092F -:1006A000D80193969C938E93929799969C938E9350 -:1006B000989797969C938E939697CF9695969C93A2 -:1006C0008E93949784E090E0A681B7811C92468136 -:1006D0005781228133814217530719F420813181D8 -:1006E00004C0268137812F5F3F4F378326830197D0 -:1006F00059F70E94E6028EE0FE013196DF01982F45 -:100700001D929A95E9F793E09C832BE132E03A87BA -:10071000298723EB32E03C872B87D80101900D928B -:100720008A95E1F72E960FB6F894DEBF0FBECDBFC7 -:10073000DF91CF911F910F9108950F931F93CF9346 -:10074000DF93E0913308F091340820A531A537A359 -:1007500026A3EC018C01060F171FC017D10731F03B -:1007600060E070E089910E941B02F7CFDF91CF918A -:100770001F910F910895DC0158968C915897811123 -:10078000F8C05A968C915A978111AEC096964D91A9 -:100790005C91979798962D913C91999742175307A2 -:1007A00079F456962D913C915797232B49F410924A -:1007B0001301FD01E659FF4F1082A559BF4F68C0D4 -:1007C0005B969C915B97911103C05C961C925C9721 -:1007D00091E05B969C935B9754962D913C91559735 -:1007E00021153105B9F596964D915C91979798969C -:1007F0002D913C9199974217530779F4FD01E559E2 -:10080000FF4F108256962D913C91579721503109F8 -:1008100057963C932E93569723C09696ED91FC9154 -:10082000979794962D913C919597E217F30729F4A9 -:1008300092962D913C91939707C09696ED91FC91DD -:1008400097979F012F5F3F4F97963C932E939697D4 -:10085000908107C02150310955963C932E935497AF -:100860009EE759969C93599759969C9159979B311D -:1008700089F596964D915C91979798962D913C911C -:1008800099974217530739F410921301A659BF4F95 -:100890001C92299808959696ED91FC9197979496BD -:1008A0008D919C919597E817F90729F492968D916F -:1008B0009C91939706C09696ED91FC919797CF01E6 -:1008C000019697969C938E939697808159968C93D8 -:1008D000599706C09E57923018F45B961C925B970E -:1008E00081E05A968C935A975B968C915B975F96B2 -:1008F0002D913C9190978823A9F05C968C915C9700 -:10090000853080F05C961C925C972034310519F09C -:1009100080E490E002C085E790E090969C938E93EF -:100920005F9723C05A968C915A9759969C915997E4 -:10093000982341F05C969C915C979F5F5C969C939A -:100940005C970FC05C961C925C972034310519F0BF -:1009500020E430E002C025E730E090963C932E93EF -:100960005F97880F5A968C935A9788E058968C9385 -:1009700058975F96ED91FC9190975D968D919C9123 -:100980005E97E80FF91F9F0131705E963C932E939E -:100990005D9758968C915897815058968C93FF2765 -:1009A000E038F10530F08FEF90E0AC014E1B5F0BAB -:1009B000FA01E859FF4F84912F3F310511F008F0FB -:1009C00080950895EF92FF920F931F93CF93DF933B -:1009D000FC018C010D531F4FD8014D915C91119773 -:1009E000129711965C934E93A555B10914968D916B -:1009F0009C91159712962D913C911397821793070E -:100A000021F42D913C91119707C014968D919C91E2 -:100A100015979C012F5F3F4F15963C932E9314978B -:100A2000EC012881260290011124C9019595879532 -:100A300095958795E801998388837F01D7ECED0E22 -:100A4000F11CE701288139818F010B531F4FE80109 -:100A500039832883840F951F35952795820F931F1F -:100A6000E70199838883AF0147535F4F21E0181650 -:100A700019060CF420E0EA018881880F822B888314 -:100A800016968D919C911797EC01688316962D917F -:100A90003C91179712968D919C91139728173907BF -:100AA00021F48D919C91119705C016968D919C9182 -:100AB0001797019617969C938E931697DA018C914F -:100AC000982F9695969589278370DF01A653BF4F7F -:100AD000833049F48C91803214F48F5F01C08150CF -:100AE0008C9311A203C081A18F5F81A38C91885F39 -:100AF000803414F48C936BC18F738C93DF01A553F6 -:100B0000BF4F8C91880F8C93EA01988197702BEFDF -:100B1000290F233010F0933011F481608C938C9165 -:100B2000982F96958927809581709685990F892BA6 -:100B300086878E3709F052C0DF01A758BF4F149641 -:100B40002D913C9115978D919C91119728173907FC -:100B500059F416962D913C91179712968D919C9170 -:100B6000139728173907B1F116962D913C911797D5 -:100B700014968D919C91159701972817390751F17B -:100B80001696CD91DC9117978EE7888316962D9156 -:100B90003C91179712968D919C91139728173907BE -:100BA00021F48D919C91119705C016968D919C9181 -:100BB0001797019617969C938E93169791E0918BB9 -:100BC0008389863020F4128A8F5F838B01C0928BD9 -:100BD00081E0BFC0118A128A138ABAC08F778F371B -:100BE00011F4118A09C08289882311F02A9A01C060 -:100BF0002A988189811103C0128A138AE8C08685E8 -:100C0000982F9F739E3309F4E2C080FF03C0808950 -:100C10008068808B97859F5F97878089983008F4DC -:100C20009DC0DF01A758BF4F92E8980F923018F08F -:100C30008B3109F046C014962D913C9115978D91FA -:100C40009C9111972817390759F416962D913C91CC -:100C5000179712968D919C9113972817390759F180 -:100C600016962D913C91179714968D919C911597FE -:100C7000019728173907F9F01696CD91DC9117974F -:100C80008BE1888316962D913C91179712968D9142 -:100C90009C9113972817390721F48D919C911197F6 -:100CA00005C016968D919C911797019617969C9367 -:100CB0008E93169706C0118A128A138A2A9880E0AA -:100CC00001C081E014964D915C9115972D913C9156 -:100CD00011974217530759F416964D915C91179747 -:100CE00012962D913C9113974217530769F116966E -:100CF0004D915C91179714962D913C911597215029 -:100D000031094217530701F190891696CD91DC9174 -:100D10001797988316964D915C91179712962D917F -:100D20003C9113974217530721F42D913C91119751 -:100D300006C016962D913C9117972F5F3F4F17963F -:100D40003C932E93169705C0118A128A138A2A980B -:100D500080E0108A1786882321F039C08695808B21 -:100D600036C0EF01C453DF4F888199818160998338 -:100D70008883DF01A758BF4F14962D913C9115979A -:100D80008D919C9111972817390759F416962D913A -:100D90003C91179712968D919C91139728173907BC -:100DA00061F016962D913C91179714968D919C9118 -:100DB000159701972817390751F416968D919C9134 -:100DC000179715969C938E9314971982188281A178 -:100DD000813618F011A2128A2A98DF91CF911F91C3 -:100DE0000F91FF90EF9008951F920F920FB60F9200 -:100DF00011242F933F934F935F936F937F938F9320 -:100E00009F93AF93BF93EF93FF9380E286BB609174 -:100E1000780070917900769567957695679560581A -:100E200080913308909134080E94E204809113016C -:100E3000882349F080913308909134080E94BB03C5 -:100E4000807F886001C080E88BB98091FA0490911E -:100E5000FB04A091FC04B091FD040196A11DB11DFD -:100E60008093FA049093FB04A093FC04B093FD04D8 -:100E7000FF91EF91BF91AF919F918F917F916F9172 -:100E80005F914F913F912F910F900FBE0F901F9048 -:100E90001895CF92DF92EF92FF920F931F93CF930B -:100EA000DF931F92CDB7DEB77C01262F82E8860F35 -:100EB0008701065E1C4F823010F06B3149F4F80157 -:100EC000608171818BE190E029830E94540B29811C -:100ED000D701A05EBC4F3C9111964C911197822F87 -:100EE00090E0FC01E327EE0FFF1FE851FF4F259133 -:100EF0003491C42ED12C2C253D252D933C93F80103 -:100F0000608171810F90DF91CF911F910F91FF90C0 -:100F1000EF90DF90CF900C94540BCF93DF93E7E2E8 -:100F2000F3E0DC01EF011D922197E9F7FC01E65E99 -:100F3000FC4F518340833297718360833A963183AB -:100F4000208332972FEF3FEF318320833297318315 -:100F50002083389681E08083DF91CF9108953F927E -:100F60004F925F926F927F928F929F92AF92BF92B9 -:100F7000CF92DF92EF92FF920F931F93CF93DF9365 -:100F80002C013C0126EE621A2CEF720A6C014BED2B -:100F9000C41A4CEFD40AEC01CC5DDC4F8C01045E2A -:100FA0001C4F7C0182EEE81A8CEFF80A332433944C -:100FB000AA24AA94BA2C4201AEED8A1AACEF9A0A7E -:100FC000F301808191810E94160B8F3FFFEF9F07F5 -:100FD00009F459C0F6012081211129C08E379105ED -:100FE000D9F4D8018D919C91429770F0F7018081DE -:100FF0009181883B904F41F42A9AD401ED91FC9164 -:10100000309711F0C20109953882F701B182A082B0 -:10101000D8011D921C92D4CF8F37910511F41882FC -:10102000CFCF8B31910519F4F6013082C9CF2881D9 -:10103000222331F1D8012D913C912831B3E03B07B7 -:10104000F0F4A9014F5F5F4FF80151834083F20133 -:10105000E20FF31F8083D7012D913C91F901E8271E -:10106000FF27EE0FFF1FE851FF4F85919491232F2B -:10107000332782279327F7019183808301C0188249 -:10108000D6011C929DCFDF91CF911F910F91FF90C0 -:10109000EF90DF90CF90BF90AF909F908F907F9018 -:1010A0006F905F904F903F9008956F927F928F92D4 -:1010B0009F92AF92BF92CF92DF92EF92FF920F93E7 -:1010C0001F93CF93DF93EC013B014A017C018AED32 -:1010D000E81A8CEFF80AF70110825E01F0EEAF1A01 -:1010E000FCEFBF0A8FEF9FEFF501918380836E01C4 -:1010F000F6EECF1AFCEFDF0AF601608171818EE710 -:1011000090E00E94540B8301860C971C081519056A -:1011100039F0F80161918F01CE010E944907F6CFA5 -:10112000F501608111816095CE010E944907612F10 -:101130006095CE010E944907F601608171818EE7BA -:1011400090E00E94540B81E0F7018083DF91CF9102 -:101150001F910F91FF90EF90DF90CF90BF90AF90D5 -:101160009F908F907F906F90089590933808809310 -:1011700037085093FF044093FE0470933A0860933D -:101180003908109236080895EF92FF920F931F933B -:10119000CF93DF93EC016091FE047091FF0480EC2B -:1011A00090E00E94540B6091FE047091FF0480E077 -:1011B00090E00E94540B8E017E0184EEE81A8CEFC1 -:1011C000F80AF70120813181225031096091FE0433 -:1011D0007091FF04C8018C1B9D0B8217930708F5C3 -:1011E000F80181918F01803C59F48BED90E00E94D1 -:1011F000540B6091FE047091FF048CED90E00EC0E2 -:101200008B3D59F48BED90E00E94540B6091FE04ED -:101210007091FF048DED90E001C090E00E94540BAE -:10122000D0CF80EC90E0DF91CF911F910F91FF9094 -:10123000EF900C94540B4F925F926F927F928F922B -:101240009F92AF92BF92EF92FF920F931F93CF9313 -:10125000DF93EC018B017A01E0913908F0913A08B3 -:101260008289811138C00E94060B90910001891774 -:1012700030F4A701B801CE010E94550846C08FB7CF -:10128000F8948090FA049090FB04A090FC04B09035 -:10129000FD048FBF209101013091020140910301B3 -:1012A00050910401AAE0B0E00E948D0A2FB7F89493 -:1012B0004090FA045090FB046090FC047090FD0490 -:1012C0002FBF481859086A087B0846165706680653 -:1012D000790664F3C1CFE0913908F0913A08818929 -:1012E000882309F4B9CF80913708909138080E947B -:1012F000AF07E0913908F0913A08E453FF4F80813D -:101300009181892B41F311821082809136088823C4 -:10131000A1F1CA5DDC4F8881811101C0FFCF6091CE -:10132000FE047091FF0480EC90E00E94540B6091E9 -:10133000FE047091FF048FE090E00E94540B6091D6 -:10134000FE047091FF0481E090E00E94540B6091D4 -:10135000FE047091FF0480EC90E0DF91CF911F912B -:101360000F91FF90EF90BF90AF909F908F907F90E4 -:101370006F905F904F900C94540BDF91CF911F9121 -:101380000F91FF90EF90BF90AF909F908F907F90C4 -:101390006F905F904F90089590913B089923A1F032 -:1013A000803C01F580910D01811111C010923B0824 -:1013B00040913C0850913D0864E171E0809137080C -:1013C000909138080C941B09803C09F086C081E09C -:1013D00080933B088EEF80930D0110923D08109290 -:1013E0003C08089520913C0830913D08283193E055 -:1013F000390708F072C090910D012115310531F4C3 -:101400009E3F21F48F7080930D01089591111FC0AC -:101410008B3D21F481E08093350808959091350843 -:10142000992349F08C3D21F08D3D19F48BED01C0DD -:1014300080EC10923508A9014F5F5F4F50933D0833 -:1014400040933C08F901EC5EFE4F80830895913093 -:1014500079F4282F30E0AAE0B0E00E947E0A609381 -:10146000090170930A0180930B0190930C01089578 -:10147000943089F42AE0829FC0011124AA2797FDA5 -:10148000A095BA2F8093050190930601A0930701C0 -:10149000B09308010895933089F42AE0829FC00137 -:1014A0001124AA2797FDA095BA2F8093010190934C -:1014B0000201A0930301B09304010895923019F43E -:1014C0008093000108959F3041F4811103C0109270 -:1014D0003608089581E08093360808950E949501AA -:1014E0008CE095E00E94AF0780E00E94080288230C -:1014F000B9F30E9412020E94CC09F2CFA29FB00160 -:10150000B39FC001A39F700D811D1124911DB29F37 -:10151000700D811D1124911D08950E947E0AA59FC2 -:10152000900DB49F900DA49F800D911D11240895DE -:10153000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FD7 -:10154000EE1FFF1FA217B307E407F50720F0A21B49 -:10155000B30BE40BF50B661F771F881F991F1A94B6 -:1015600069F760957095809590959B01AC01BD01E0 -:10157000CF0108958F929F92AF92BF92CF92DF9248 -:10158000EF92FF92CF93DF93EC01688179818A819A -:101590009B81611571058105910521F464E279ED66 -:1015A0008BE597E02DE133EF41E050E00E94940B92 -:1015B00049015A019B01AC01A7EAB1E40E948D0ADE -:1015C0006B017C01ACEEB4EFA50194010E948F0B7E -:1015D000DC01CB018C0D9D1DAE1DBF1DB7FF03C0EF -:1015E0000197A109B04888839983AA83BB839F7719 -:1015F000DF91CF91FF90EF90DF90CF90BF90AF90B1 -:101600009F908F9008950E94BA0A08958EE091E00D -:101610000E94BA0A0895A0E0B0E080930E01909372 -:101620000F01A0931001B09311010895CF93DF93A0 -:10163000EC012B8120FF33C026FF0AC02F7B2B83B8 -:101640008E819F8101969F838E838A8190E029C03D -:1016500022FF0FC0E881F9818081992787FD90954D -:10166000009719F420622B831AC03196F983E8831E -:101670000EC0EA85FB85099597FF09C02B8101966D -:1016800011F080E201C080E1822B8B8308C02E81A3 -:101690003F812F5F3F4F3F832E83992702C08FEFFB -:1016A0009FEFDF91CF9108950F931F93CF93DF9317 -:1016B000FB01238121FD03C08FEF9FEF28C022FF94 -:1016C00016C046815781248135814217530744F45F -:1016D000A081B1819D012F5F3F4F318320838C9387 -:1016E000268137812F5F3F4F3783268310C0EB0160 -:1016F000092F182F0084F185E02D0995892BE1F63B -:101700008E819F8101969F838E83812F902FDF9101 -:10171000CF911F910F910895B7FF0C948D0A0E94ED -:101720008D0A821B930B0895052E97FB1EF40094DF -:101730000E94AB0B57FD07D00E94980A07FC03D00C -:101740004EF40C94AB0B50954095309521953F4F3E -:101750004F4F5F4F089590958095709561957F4F9D -:0A1760008F4F9F4F0895F894FFCFBC -:10176A003FC8000000320000005E010000FE0100D8 -:02177A0000006D -:00000001FF diff --git a/precompiled/microaprs-3v-ss-latest.hex b/precompiled/microaprs-3v-ss-latest.hex deleted file mode 100644 index 3a68de2..0000000 --- a/precompiled/microaprs-3v-ss-latest.hex +++ /dev/null @@ -1,1269 +0,0 @@ -:100000000C945E070C947B070C947B070C947B0785 -:100010000C947B070C947B070C947B070C947B0758 -:100020000C947B070C947B070C947B070C947B0748 -:100030000C947B070C947B070C947B070C947B0738 -:100040000C947B070C947B070C947B070C947B0728 -:100050000C947B070C94E70C0C947B070C947B07A7 -:100060000C947B070C947B07808183848687898A24 -:100070008C8E8F9192949597989A9B9D9EA0A2A307 -:10008000A5A6A7A9AAACADAFB0B2B3B5B6B7B9BA79 -:10009000BCBDBEC0C1C2C4C5C6C8C9CACBCDCECF07 -:1000A000D0D2D3D4D5D6D7D9DADBDCDDDEDFE0E1C0 -:1000B000E2E3E4E5E6E7E8E9EAEAEBECEDEEEEEFB1 -:1000C000F0F1F1F2F3F3F4F5F5F6F6F7F8F8F9F9E3 -:1000D000FAFAFAFBFBFCFCFCFDFDFDFDFEFEFEFE5C -:1000E000FEFFFFFFFFFFFFFF0000891112239B327D -:1000F0002446AD573665BF74488CC19D5AAFD3BEF8 -:100100006CCAE5DB7EE9F7F88110080193331A2207 -:10011000A5562C47B7753E64C99C408DDBBF52AED7 -:10012000EDDA64CBFFF976E802218B3010029913E7 -:100130002667AF763444BD554AADC3BC588ED19FB7 -:100140006EEBE7FA7CC8F5D983310A2091121803C7 -:10015000A7772E66B5543C45CBBD42ACD99E508F97 -:10016000EFFB66EAFDD874C904428D5316619F7097 -:100170002004A9153227BB364CCEC5DF5EEDD7FC77 -:100180006888E1997AABF3BA85520C4397711E6087 -:10019000A1142805B3373A26CDDE44CFDFFD56EC57 -:1001A000E9986089FBBB72AA06638F7214409D5167 -:1001B0002225AB343006B9174EEFC7FE5CCCD5DD37 -:1001C0006AA9E3B8788AF19B87730E6295501C4147 -:1001D000A3352A24B1163807CFFF46EEDDDC54CD17 -:1001E000EBB962A8F99A708B088481951AA793B627 -:1001F0002CC2A5D33EE1B7F04008C919522BDB3A17 -:10020000644EED5F766DFF7C899400859BB712A6E6 -:10021000ADD224C3BFF136E0C1184809D33B5A2AF6 -:10022000E55E6C4FF77D7E6C0AA583B418869197C6 -:100230002EE3A7F23CC0B5D14229CB38500AD91BD6 -:10024000666FEF7E744CFD5D8BB502A499961087A6 -:10025000AFF326E2BDD034C1C3394A28D11A580BB6 -:10026000E77F6E6EF55C7C4D0CC685D71EE597F476 -:100270002880A1913AA3B3B2444ACD5B5669DF7896 -:10028000600CE91D722FFB3E8DD604C79FF516E466 -:10029000A9902081BBB332A2C55A4C4BD7795E6876 -:1002A000E11C680DF33F7A2E0EE787F61CC495D546 -:1002B0002AA1A3B03882B193466BCF7A5448DD5956 -:1002C000622DEB3C700EF91F8FF706E69DD414C526 -:1002D000ABB122A0B9923083C77B4E6AD5585C4936 -:1002E000E33D6A2CF11E780F2D2D2D2D2D2D2D2D5A -:1002F0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2E -:100300002D2D2D2D2D2D2D2D2D2D0A004820202079 -:100310002020202020205072696E7420636F6E664A -:10032000696775726174696F6E0A0043202020202E -:100330002020202020436C65617220636F6E666907 -:100340006775726174696F6E0A004C20202020204E -:10035000202020204C6F616420636F6E6669677592 -:10036000726174696F6E0A005320202020202020C3 -:1003700020205361766520636F6E666967757261D0 -:1003800074696F6E0A00573C5858583E2020202050 -:10039000536574207472616E736D697373696F6EE7 -:1003A000207461696C2074696D6520696E206D73BD -:1003B0000A00773C5858583E20202020536574206E -:1003C000707265616D626C652074696D6520696E1F -:1003D000206D730A00563C312F303E2020202053E0 -:1003E000696C656E74206D6F6465206F6E2F6F662B -:1003F000660A0A00763C312F303E202020205665C8 -:1004000072626F7365206D6F6465206F6E2F6F660B -:10041000660A0070693C312F303E202020507269FE -:100420006E7420494E464F206F6E2F6F66660A0A23 -:1004300000706D3C312F303E2020205072696E7468 -:100440002044415441206F6E2F6F66660A00707021 -:100450003C312F303E2020205072696E7420504174 -:100460005448206F6E2F6F66660A0070643C312F0F -:10047000303E2020205072696E7420445354206F07 -:100480006E2F6F66660A0070733C312F303E20205D -:10049000205072696E7420535243206F6E2F6F6626 -:1004A000660A006D613C312F303E2020204175747A -:1004B0006F6D61746963206D657373616765204159 -:1004C000434B206F6E2F6F66660A0A006D723C7395 -:1004D0007369643E20205265747279206C61737474 -:1004E000206D6573736167650A006D733C73736992 -:1004F000643E2020536574206D65737361676520C9 -:10050000726563697069656E7420535349440A00CB -:100510006D633C63616C6C3E2020536574206D6597 -:10052000737361676520726563697069656E7420B5 -:1005300063616C6C7369676E0A006C743C732F6145 -:100540003E20202053656C6563742073796D626F63 -:100550006C207461626C6520287374616E646172D2 -:10056000642F616C7465726E617465290A0A006C8F -:10057000733C73796D3E20202053656C6563742055 -:1005800073796D626F6C0A006C643C302D393E20CB -:10059000202053657420616E74656E6E61206469FD -:1005A00072656374697669747920696E666F0A0092 -:1005B0006C673C302D393E20202053657420616EDD -:1005C00074656E6E61206761696E20696E666F0A80 -:1005D000006C683C302D393E20202053657420612A -:1005E0006E74656E6E612068656967687420696EF7 -:1005F000666F0A006C703C302D393E202020536518 -:100600007420545820706F77657220696E666F0A87 -:10061000006C6C6F3C4C4F4E3E2020536574206C38 -:100620006174697475646520284E4D45412D666F6F -:10063000726D61742C2065672030373230312E376F -:100640003557290A006C6C613C4C41543E202053C4 -:100650006574206C6174697475646520284E4D451D -:10066000412D666F726D61742C20656720343930BE -:10067000332E35304E290A0073323C737369643E61 -:10068000202053657420504154483220535349442C -:100690000A0A0073313C737369643E202053657409 -:1006A00020504154483120535349440A0073643C5C -:1006B000737369643E2020536574206465737469A4 -:1006C0006E6174696F6E20535349440A0073633C32 -:1006D000737369643E202053657420796F757220AE -:1006E000535349440A00323C63616C6C3E20202025 -:1006F0005365742050415448322063616C6C7369B7 -:10070000676E0A0A00313C63616C6C3E2020205306 -:1007100065742050415448312063616C6C73696783 -:100720006E0A00643C63616C6C3E2020205365744B -:100730002064657374696E6174696F6E2063616CA7 -:100740006C7369676E0A00633C63616C6C3E2020C9 -:100750002053657420796F75722063616C6C7369C6 -:10076000676E0A00233C6D73673E2020202053658E -:100770006E642041505253206D6573736167650A42 -:100780000A00403C636D743E2020202053656E6457 -:10079000206C6F636174696F6E207570646174653D -:1007A0002028636D74203D206F7074696F6E616CDA -:1007B00020636F6D6D656E74290A00213C6461745D -:1007C000613E20202053656E642072617720706145 -:1007D000636B65740A0053657269616C20636F6DA9 -:1007E0006D616E64733A0A002D2D2D2D2D2D2D2D4A -:1007F0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D29 -:100800002D2D2D2D2D2D2D2D2D2D0A0054582054FC -:1008100061696C3A20256C750A0054582050726545 -:10082000616D626C653A20256C750A0053796D62C2 -:100830006F6C3A2025630A0053796D626F6C2074E7 -:1008400061626C653A207374616E646172640A005F -:1008500053796D626F6C207461626C653A20616CD3 -:100860007465726E6174650A0044697265637469C7 -:10087000766974793A2025640A004761696E3A20E6 -:1008800025640A004865696768743A2025640A008F -:10089000506F7765723A2025640A004175746F2D98 -:1008A00061636B206D657373616765733A204F6692 -:1008B000660A004175746F2D61636B206D657373FB -:1008C000616765733A204F6E0A0050617468323A6E -:1008D00020252E36732D25640A0050617468313A44 -:1008E00020252E36732D25640A0044657374696EC5 -:1008F0006174696F6E3A20252E36732D25640A00C7 -:1009000043616C6C7369676E3A20252E36732D2512 -:10091000640A00436F6E66696775726174696F6E11 -:100920003A0A00300A004572726F723A20496E76B8 -:10093000616C696420636F6D6D616E640A0045725D -:10094000726F723A20496E76616C69642076616CD0 -:10095000756520666F72205458207461696C0A00B6 -:100960005458205461696C2073657420746F20257D -:100970006C756D730A004572726F723A20496E761B -:10098000616C69642076616C756520666F72207099 -:100990007265616D626C650A00507265616D626CB2 -:1009A000652073657420746F20256C756D730A0063 -:1009B000310A004D657373616765206175746F2D31 -:1009C00061636B2064697361626C65640A00310A5B -:1009D000004D657373616765206175746F2D616388 -:1009E0006B20656E61626C65640A00310A005265B5 -:1009F0007472696564206C617374206D65737361D2 -:100A000067650A00310A000A002D25640A004D6559 -:100A1000737361676520726563697069656E743AA6 -:100A200020252E367300310A000A002D25640A00A5 -:100A30004D65737361676520726563697069656E82 -:100A4000743A20252E367300310A0053656C6563B5 -:100A5000746564207374616E646172642073796D6F -:100A6000626F6C207461626C650A0053656C65632B -:100A700074656420616C7465726E6174652073794D -:100A80006D626F6C207461626C650A0053796D62EF -:100A90006F6C2073657420746F2025630A004469AD -:100AA0007265637469766974792073657420746FF4 -:100AB0002025646465670A00446972656374697619 -:100AC0006974792073657420746F206F6D6E690A84 -:100AD00000310A00310A004761696E207365742095 -:100AE000746F20256464420A00310A00416E746507 -:100AF0006E6E612068656967687420736574207420 -:100B00006F20256C646D204141540A00310A005069 -:100B10006F7765722073657420746F202564770A7F -:100B200000310A004C6F6E677469747564652073D8 -:100B3000657420746F20252E39730A00310A004C29 -:100B4000617469747564652073657420746F202501 -:100B50002E38730A0053696C656E74206D6F64657E -:100B60002064697361626C65640A0053696C656E28 -:100B700074206D6F646520656E61626C65640A0047 -:100B8000566572626F7365206D6F6465206469736A -:100B900061626C65640A00566572626F7365206DF0 -:100BA0006F646520656E61626C65640A00310A00DD -:100BB0005072696E7420494E464F206469736162B9 -:100BC0006C65640A00310A005072696E7420494EE7 -:100BD000464F20656E61626C65640A00310A005000 -:100BE00072696E7420444154412064697361626C7F -:100BF00065640A00310A005072696E7420444154E1 -:100C00004120656E61626C65640A00310A005072B1 -:100C1000696E7420504154482064697361626C6548 -:100C2000640A00310A005072696E742050415448C1 -:100C300020656E61626C65640A00310A0050726959 -:100C40006E74204453542064697361626C65640A55 -:100C500000310A005072696E742044535420656E4E -:100C600061626C65640A00310A005072696E74201A -:100C70005352432064697361626C65640A00310AEF -:100C8000005072696E742053524320656E61626C2D -:100C900065640A00310A0050617468323A20252EDA -:100CA00036732D25640A00310A0050617468313AA8 -:100CB00020252E36732D25640A00310A0044657301 -:100CC00074696E6174696F6E3A20252E36732D2516 -:100CD000640A00310A0043616C6C7369676E3A20E4 -:100CE000252E36732D25640A00310A005061746880 -:100CF000323A20252E36732D25640A00310A005021 -:100D0000617468313A20252E36732D25640A00312E -:100D10000A0044657374696E6174696F6E3A2025C8 -:100D20002E36732D25640A00310A0043616C6C7302 -:100D300069676E3A20252E36732D25640A00310A24 -:100D4000004D6573736167652073656E740A0031C9 -:100D50000A004C6F636174696F6E20757064617412 -:100D6000652073656E740A00310A005061636B651B -:100D7000742073656E740A000D0A00444154413AB0 -:100D800020005B252E36732D25645D2000504154D4 -:100D9000483A20005B252E36732D25645D200044E3 -:100DA00053543A20005B252E36732D25645D2000B8 -:100DB0005352433A2000310A00436F6E66696775EB -:100DC000726174696F6E2073617665640A00300A1F -:100DD000004572726F723A204E6F2073746F7265A5 -:100DE0006420636F6E66696775726174696F6E20E7 -:100DF000746F206C6F6164210A00436F6E666967CF -:100E000075726174696F6E206C6F616465640A004D -:100E1000310A00436F6E66696775726174696F6E3F -:100E200020636C65617265642E2052657374617213 -:100E30007420746F206C6F61642064656661756CEA -:100E400074732E0A002D2D2D2D2D2D2D2D2D2D2D94 -:100E50002D2D2D2D0A004D6F64656D207265616426 -:100E6000790A0044656661756C7420636F6E66690B -:100E70006775726174696F6E206C6F61646564215F -:100E80000A00756E7369676E65642E696F2F6D69F0 -:100E900063726F617072730A004D6963726F4150C3 -:100EA00052532076312E30620A002D2D2D2D2D2DFE -:100EB0002D2D2D2D2D2D2D2D2D0A000011241FBE81 -:100EC000CFEFD8E0DEBFCDBF11E0A0E0B1E0E0EFB2 -:100ED000FEE402C005900D92A234B107D9F716E0E6 -:100EE000A2E4B1E001C01D92AA3CB107E1F70E9463 -:100EF00068210C9476270C9400002FB7F894609129 -:100F0000B6047091B7048091B8049091B9042FBFD2 -:100F100008950C94A414789488EE93E00E94030939 -:100F200029E837E048EE53E0BA0188EC94E00E94EB -:100F3000800D8AEB94E00E94BA07E4ECF6E08AEBBD -:100F400094E0938382839183808388EC94E00C9473 -:100F500039139091C00095FFFCCF8093C60081E0CB -:100F600090E008958091C00087FFFCCF8091C6007B -:100F700090E00895CF93DF93CDB7DEB72E970FB6ED -:100F8000F894DEBF0FBECDBFDC018EE0FD01982FCF -:100F900011929A95E9F71092C50097E69093C400D4 -:100FA000E0ECF0E090819D7F908396E09093C2000A -:100FB00098E19093C1009E012F5F3F4FF90111927C -:100FC0008A95E9F783E08C8389EA97E09A87898795 -:100FD00082EB97E09C878B879EE0F90101900D9250 -:100FE0009A95E1F72E960FB6F894DEBF0FBECDBFEF -:100FF000DF91CF910895811106C08091C000881FB4 -:101000008827881F089580E008958091C00087FF99 -:1010100003C08091C60008958FEF08950F931F932A -:10102000CF93DF93182FC0912106D0912206FE01A5 -:10103000E659FF4F8081811126C080E490E098A39B -:101040008F8F1E8E1D8E1C8E01E0008331960083D3 -:10105000299A2091090130910A0140910B01509188 -:101060000C01A0EBB4E00E94DC216056704F8F4F62 -:101070009F4F20E43FE140E050E00E94FB213D8B88 -:101080002C8B009393020FB7F894209105013091B7 -:1010900006014091070150910801A0EBB4E00E94C5 -:1010A000DC216056704F8F4F9F4F20E43FE140E0BE -:1010B00050E00E94FB213F8B2E8B0FBFE091210659 -:1010C000F09122064FB7F89426A137A182A193A1EF -:1010D0002817390739F420A531A584A195A128172F -:1010E000390779F060A571A526A137A121503109F2 -:1010F00091E080E06217730709F090E0292F382F04 -:1011000002C021E030E04FBF232BC1F6E091210661 -:10111000F09122062FB7F894A0A5B1A51C9340A585 -:1011200051A584A195A14817590719F482A193A14B -:1011300003C080A591A5019691A780A72FBF81E04C -:1011400090E0DF91CF911F910F910895E0912106DA -:10115000F09122064FB7F894E758FF4F248135816C -:10116000868197814FBF28173907E9F0E091210662 -:10117000F09122069FB7F894E758FF4FA481B581FC -:1011800022813381A217B30719F42081318105C070 -:10119000A481B5819D012F5F3F4F358324838C91BE -:1011A0009FBF90E008958FEF9FEF089510929202F5 -:1011B0000895109292021092800089E1809381003C -:1011C00081E896E090938700809386008091920258 -:1011D000882321F080E480937C0002C010927C0080 -:1011E0003898409880917E00816080937E0087E0EF -:1011F00080937B008CEE80937A008AB1886F8AB9E5 -:10120000219A229A08950F931F93CF93DF93CDB71E -:10121000DEB72E970FB6F894DEBF0FBECDBF8C01A0 -:101220008EECD8011D928A95E9F71093220600935F -:10123000210680E490E0F80190A3878F11A2C801F5 -:101240008C589F4FE459FF4F918380839783868307 -:10125000958384830496938382830996D801A75843 -:10126000BF4F11969C938E9317969C938E931697CF -:1012700015969C938E931497CF9613969C938E936A -:10128000129786599109D80193969C938E939297C1 -:1012900099969C938E93989797969C938E939697F6 -:1012A000CF9695969C938E93949784E090E0A68138 -:1012B000B7811C924681578122813381421753079F -:1012C00019F42081318104C0268137812F5F3F4F7F -:1012D00037832683019759F70E94D9088EE0FE01D3 -:1012E0003196DF01982F1D929A95E9F793E09C8340 -:1012F0002EE038E03A87298726EA38E03C872B87BA -:10130000D80101900D928A95E1F72E960FB6F894C8 -:10131000DEBF0FBECDBFDF91CF911F910F9108951A -:101320000F931F93CF93DF93E0912106F091220654 -:1013300020A531A537A326A3EC018C01060F171FAA -:10134000C017D10731F060E070E089910E940E086B -:10135000F7CFDF91CF911F910F910895DC0158963F -:101360008C9158978111F8C05A968C915A97811197 -:10137000AEC096964D915C91979798962D913C9121 -:1013800099974217530779F456962D913C915797A8 -:10139000232B49F410929302FD01E659FF4F10826E -:1013A000A559BF4F68C05B969C915B97911103C094 -:1013B0005C961C925C9791E05B969C935B9754962D -:1013C0002D913C91559721153105B9F596964D9182 -:1013D0005C91979798962D913C9199974217530756 -:1013E00079F4FD01E559FF4F108256962D913C91FD -:1013F00057972150310957963C932E93569723C007 -:101400009696ED91FC91979794962D913C91959796 -:10141000E217F30729F492962D913C91939707C018 -:101420009696ED91FC9197979F012F5F3F4F97966E -:101430003C932E939697908107C021503109559681 -:101440003C932E9354979EE759969C93599759969F -:101450009C9159979B3189F596964D915C91979700 -:1014600098962D913C9199974217530739F4109211 -:101470009302A659BF4F1C92299808959696ED9114 -:10148000FC91979794968D919C919597E817F90701 -:1014900029F492968D919C91939706C09696ED9122 -:1014A000FC919797CF01019697969C938E93969770 -:1014B000808159968C93599706C09E57923018F4A4 -:1014C0005B961C925B9781E05A968C935A975B9639 -:1014D0008C915B975F962D913C9190978823A9F012 -:1014E0005C968C915C97853080F05C961C925C9742 -:1014F0002034310519F080E490E002C085E790E0E7 -:1015000090969C938E935F9723C05A968C915A978E -:1015100059969C915997982341F05C969C915C97C1 -:101520009F5F5C969C935C970FC05C961C925C9747 -:101530002034310519F020E430E002C025E730E026 -:1015400090963C932E935F97880F5A968C935A9758 -:1015500088E058968C9358975F96ED91FC91909700 -:101560005D968D919C915E97E80FF91F9F013170F8 -:101570005E963C932E935D9758968C915897815028 -:1015800058968C93FF27E038F10530F08FEF90E00C -:10159000AC014E1B5F0BFA01E859FF4F84912F3FBE -:1015A000310511F008F080950895EF92FF920F93A6 -:1015B0001F93CF93DF93FC018C010D531F4FD80174 -:1015C0004D915C911197129711965C934E93A5558E -:1015D000B10914968D919C91159712962D913C917D -:1015E00013978217930721F42D913C91119707C00F -:1015F00014968D919C9115979C012F5F3F4F1596E6 -:101600003C932E931497EC0128812602900111241B -:10161000C9019595879595958795E8019983888364 -:101620007F01D7ECED0EF11CE701288139818F0194 -:101630000B531F4FE80139832883840F951F35957D -:101640002795820F931FE70199838883AF01475342 -:101650005F4F21E0181619060CF420E0EA0188819A -:10166000880F822B888316968D919C911797EC0199 -:10167000688316962D913C91179712968D919C91A7 -:1016800013972817390721F48D919C91119705C064 -:1016900016968D919C911797019617969C938E9311 -:1016A0001697DA018C91982F9695969589278370D5 -:1016B000DF01A653BF4F833049F48C91803214F47C -:1016C0008F5F01C081508C9311A203C081A18F5FF5 -:1016D00081A38C91885F803414F48C936BC18F73D9 -:1016E0008C93DF01A553BF4F8C91880F8C93EA0137 -:1016F000988197702BEF290F233010F0933011F45D -:1017000081608C938C91982F969589278095817014 -:101710009685990F892B86878E3709F052C0DF0195 -:10172000A758BF4F14962D913C9115978D919C9180 -:1017300011972817390759F416962D913C91179750 -:1017400012968D919C91139728173907B1F116962F -:101750002D913C91179714968D919C911597019717 -:101760002817390751F11696CD91DC9117978EE71E -:10177000888316962D913C91179712968D919C9186 -:1017800013972817390721F48D919C91119705C063 -:1017900016968D919C911797019617969C938E9310 -:1017A000169791E0918B8389863020F4128A8F5F9F -:1017B000838B01C0928B81E0BFC0118A128A138A89 -:1017C000BAC08F778F3711F4118A09C082898823B4 -:1017D00011F02A9A01C02A988189811103C0128AC6 -:1017E000138AE8C08685982F9F739E3309F4E2C060 -:1017F00080FF03C080898068808B97859F5F978773 -:101800008089983008F49DC0DF01A758BF4F92E847 -:10181000980F923018F08B3109F046C014962D9134 -:101820003C9115978D919C9111972817390759F480 -:1018300016962D913C91179712968D919C91139726 -:101840002817390759F116962D913C911797149640 -:101850008D919C911597019728173907F9F01696E5 -:10186000CD91DC9117978BE1888316962D913C9151 -:10187000179712968D919C9113972817390721F489 -:101880008D919C91119705C016968D919C911797FB -:10189000019617969C938E93169706C0118A128A0A -:1018A000138A2A9880E001C081E014964D915C91E2 -:1018B00015972D913C9111974217530759F416969D -:1018C0004D915C91179712962D913C911397421769 -:1018D000530769F116964D915C91179714962D91C7 -:1018E0003C911597215031094217530701F1908916 -:1018F0001696CD91DC911797988316964D915C9131 -:10190000179712962D913C9113974217530721F484 -:101910002D913C91119706C016962D913C911797E9 -:101920002F5F3F4F17963C932E93169705C0118A51 -:10193000128A138A2A9880E0108A1786882321F059 -:1019400039C08695808B36C0EF01C453DF4F888144 -:101950009981816099838883DF01A758BF4F1496CE -:101960002D913C9115978D919C91119728173907CE -:1019700059F416962D913C91179712968D919C9142 -:1019800013972817390761F016962D913C911797F8 -:1019900014968D919C91159701972817390751F44A -:1019A00016968D919C91179715969C938E931497EC -:1019B0001982188281A1813618F011A2128A2A9800 -:1019C000DF91CF911F910F91FF90EF9008951F929B -:1019D0000F920FB60F9211242F933F934F935F9363 -:1019E0006F937F938F939F93AF93BF93EF93FF93E7 -:1019F00080E286BB6091780070917900769567955A -:101A000076956795605880912106909122060E94F4 -:101A1000D50A80919302882349F080912106909104 -:101A200022060E94AE09807F886001C080E88BB9E1 -:101A30008091B6049091B704A091B804B091B90414 -:101A40000196A11DB11D8093B6049093B704A09395 -:101A5000B804B093B904FF91EF91BF91AF919F91FA -:101A60008F917F916F915F914F913F912F910F9047 -:101A70000FBE0F901F901895CF92DF92EF92FF92BA -:101A80000F931F93CF93DF931F92CDB7DEB77C01E7 -:101A9000262F82E8860F8701045B1E4F823010F0EC -:101AA0006B3149F4F801608171818BE190E0298309 -:101AB0000E944E242981D701AE5ABE4F3C91119607 -:101AC0004C911197822F90E0FC01E327EE0FFF1F4E -:101AD000E851FF4F25913491C42ED12C2C253D2562 -:101AE0002D933C93F801608171810F90DF91CF912C -:101AF0001F910F91FF90EF90DF90CF900C944E24A8 -:101B0000CF93DF93E9E5F1E0DC01EF011D9221972E -:101B1000E9F7FC01E45BFE4F518340833297718308 -:101B200060833A963183208332972FEF3FEF3183E2 -:101B30002083329731832083389681E08083DF9140 -:101B4000CF9108952F923F924F925F926F927F9222 -:101B50008F929F92AF92BF92CF92DF92EF92FF92BD -:101B60000F931F93CF93DF93CDB7DEB7C155D10944 -:101B70000FB6F894DEBF0FBECDBF8C01845B9E4FC5 -:101B800062969FAF8EAF6297480199EA891A9EEFDD -:101B9000990A6801AAEACA1AAEEFDA0A7801B2EB2A -:101BA000EB1ABEEFFB0A5801E0EBAE1AEEEFBE0AED -:101BB0006296EEADFFAD6297808191810E94102404 -:101BC0008F3FFFEF9F0709F408C1D4012C91211129 -:101BD000D6C08E37910509F0C6C0F701808191818A -:101BE000429708F4B4C0D5018D919C91883B904FE9 -:101BF00009F0ADC02A9AF801DE01189698012A5F13 -:101C00003F4F81918695803209F480E08D93E217F1 -:101C1000F307B9F7F801868186958F708E87D80112 -:101C20001796FE0131969E01295F3F4F8D91869553 -:101C3000803209F480E08193E217F307B9F7F801E5 -:101C40003D96D8011D968C9186958F708F8329962D -:101C50007FAD299760E041E050E087E0482E808129 -:101C600080FF10C028966FAF289729967FAF2997DD -:101C7000818190E02B969FAF8EAF2B97039709F051 -:101C800066C042C0683071F3B7E06B9F3001112429 -:101C900081E090E0262F30E0DF01A80FB91F5C90B3 -:101CA000A52DA695A03211F05A2E01C0512CDC01B1 -:101CB000A60DB71D22242394312C2C0E3D1EA20DFF -:101CC000B31D1D965C9201968730910529F73796D2 -:101CD0005080429EC001439E900D1124820D931DA1 -:101CE000A52DA695AF707A2EDC0154967C92CA0180 -:101CF00001C0880F2A95EAF757FE02C0782B02C070 -:101D0000809578236F5FABCF82812C968FAF2C9715 -:101D1000803FE9F43396D7018D919C910297980109 -:101D20002E1B3F0B820F931F60969FAF8EAF609765 -:101D30002E96FFAFEEAF2E97F801EC5AFE4F0190B2 -:101D4000F081E02D309719F0CE010196099581E0E0 -:101D5000F60180838FEF9FEFD5018D939C93F70160 -:101D60001182108225CF8F37910511F4D60133C02F -:101D70008B31910521F481E0F401808319CFD601E4 -:101D80002C91222339F1F701208131812A34F1E0AD -:101D90003F07F0F4A9014F5F5F4FD7014D935C936C -:101DA000F801E20FF31F8083F50120813181F901F1 -:101DB000E827FF27EE0FFF1FE851FF4F8591949111 -:101DC000232F332728273927D5012D933C9302C091 -:101DD000F6011082D4011C92EBCECF5ADF4F0FB622 -:101DE000F894DEBF0FBECDBFDF91CF911F910F9151 -:101DF000FF90EF90DF90CF90BF90AF909F908F902B -:101E00007F906F905F904F903F902F9008956F92CA -:101E10007F928F929F92AF92BF92CF92DF92EF927A -:101E2000FF920F931F93CF93DF93EC013B014A0185 -:101E30007C0188EAE81A8EEFF80AF70110825E0149 -:101E4000FEEAAF1AFEEFBF0A8FEF9FEFF501918315 -:101E500080836E01F4EBCF1AFEEFDF0AF60160819A -:101E600071818EE790E00E944E248301860C971CBE -:101E70000815190539F0F80161918F01CE010E9412 -:101E80003C0DF6CFF501608111816095CE010E9475 -:101E90003C0D612F6095CE010E943C0DF6016081E2 -:101EA00071818EE790E00E944E2481E0F7018083EB -:101EB000DF91CF911F910F91FF90EF90DF90CF9026 -:101EC000BF90AF909F908F907F906F9008952F92CA -:101ED0003F924F925F926F927F928F929F92AF92BA -:101EE000BF92CF92DF92EF92FF920F931F93CF9307 -:101EF000DF93CDB7DEB729970FB6F894DEBF0FBEDC -:101F0000CDBF998788876B014A012C833D835C0193 -:101F10008EEAA81A8EEFB80A8FEF9FEFF501918332 -:101F2000808328843984F4EB2F1AFEEF3F0AF101F5 -:101F3000608171818EE790E00E944E247601C12C71 -:101F4000D12CC40101979B838A83C814D90409F456 -:101F500057C091E09983EA81FB81CE16DF0609F034 -:101F60001982F70101900020E9F731973F016E18BF -:101F70007F08F7E06F16710418F086E0682E712C68 -:101F80009701260D371D27014216530689F0F201ED -:101F900081912F0190E02E833F830E94F723682FC9 -:101FA000660F888599850E943C0D3F812E81ECCF7C -:101FB000F6E06F16710489F489818066F701668105 -:101FC000660F682B888599850E943C0DFFEFCF1A1C -:101FD000DF0A87E0E80EF11CB8CF412C512CE6E077 -:101FE000F0E0E619F7093F014614570428F760E4CA -:101FF000888599850E943C0D9FEF491A590AF4CFB4 -:1020000063E0888599850E943C0D60EF88859985FD -:102010000E943C0DEC80FD800E0D1F1DE016F106A8 -:1020200041F0F70161917F01888599850E943C0DFF -:10203000F5CFF501608111816095888599850E94B1 -:102040003C0D612F6095888599850E943C0DF101BA -:10205000608171818EE790E029960FB6F894DEBF1B -:102060000FBECDBFDF91CF911F910F91FF90EF90E9 -:10207000DF90CF90BF90AF909F908F907F906F90A8 -:102080005F904F903F902F900C944E249093260693 -:10209000809325065093BB044093BA04709328069E -:1020A00060932706109224060895EF92FF920F93F3 -:1020B0001F93CF93DF93EC016091BA047091BB043E -:1020C00080EC90E00E944E246091BA047091BB04B1 -:1020D00080E090E00E944E248E017E0182EBE81A9F -:1020E0008EEFF80AF7012081318122503109609189 -:1020F000BA047091BB04C8018C1B9D0B8217930717 -:1021000008F5F80181918F01803C59F48BED90E046 -:102110000E944E246091BA047091BB048CED90E053 -:102120000EC08B3D59F48BED90E00E944E246091DF -:10213000BA047091BB048DED90E001C090E00E9464 -:102140004E24D0CF80EC90E0DF91CF911F910F9182 -:10215000FF90EF900C944E244F925F926F927F927B -:102160008F929F92AF92BF92EF92FF920F931F9325 -:10217000CF93DF93EC018B017A01E0912706F09178 -:1021800028068289811138C00E94C92390910001DC -:10219000891730F4A701B801CE010E94070F46C08D -:1021A0008FB7F8948090B6049090B704A090B804CC -:1021B000B090B9048FBF209101013091020140918C -:1021C000030150910401AAE0B0E00E94DC212FB786 -:1021D000F8944090B6045090B7046090B8047090A2 -:1021E000B9042FBF481859086A087B0846165706D5 -:1021F0006806790664F3C1CFE0912706F0912806BE -:102200008189882309F4B9CF80912506909126060B -:102210000E94A20DE0912706F0912806E453FF4F9B -:1022200080819181892B41F3118210828091240653 -:102230008823A1F1C85ADE4F8881811101C0FFCFE8 -:102240006091BA047091BB0480EC90E00E944E242F -:102250006091BA047091BB048FE090E00E944E241C -:102260006091BA047091BB0481E090E00E944E241A -:102270006091BA047091BB0480EC90E0DF91CF9143 -:102280001F910F91FF90EF90BF90AF909F908F9014 -:102290007F906F905F904F900C944E24DF91CF9180 -:1022A0001F910F91FF90EF90BF90AF909F908F90F4 -:1022B0007F906F905F904F90089590912906992399 -:1022C000A1F0803C01F580910D01811111C01092A7 -:1022D000290640912A0650912B0664E972E080910C -:1022E0002506909126060C94AC10803C09F086C01F -:1022F00081E0809329068EEF80930D0110922B06CA -:1023000010922A06089520912A0630912B062A342D -:1023100091E0390708F072C090910D012115310547 -:1023200031F49E3F21F48F7080930D010895911137 -:102330001FC08B3D21F481E0809323060895909186 -:102340002306992349F08C3D21F08D3D19F48BED46 -:1023500001C080EC10922306A9014F5F5F4F50939C -:102360002B0640932A06F901EC56FD4F8083089511 -:10237000913079F4282F30E0AAE0B0E00E94C62125 -:102380006093090170930A0180930B0190930C01F3 -:102390000895943089F42AE0829FC0011124AA276D -:1023A00097FDA095BA2F8093050190930601A09305 -:1023B0000701B09308010895933089F42AE0829FC1 -:1023C000C0011124AA2797FDA095BA2F809301017F -:1023D00090930201A0930301B093040108959230F9 -:1023E00019F48093000108959F3041F4811103C0D6 -:1023F00010922406089581E08093240608956FEFDB -:102400008EE290E00E94AC2680913201882341F058 -:1024100083E19EE09F938F930E9486240F900F90FC -:102420008091320181110CC08091E703811108C0B5 -:1024300080E19EE09F938F930E9486240F900F90DF -:102440000895CF938EE290E00E948E26893609F09F -:10245000E3C046E050E068E270E08CE291E00E9468 -:102460007E2646E050E062E270E086E291E00E9463 -:102470007E2646E050E06CE170E080E291E00E9450 -:102480007E2646E050E066E170E088E191E00E943F -:102490007E2685E190E00E948E2690E09093E403F2 -:1024A0008093E30384E190E00E948E2690E0909375 -:1024B000E2038093E10383E190E00E948E2690E0A6 -:1024C00090931F0180931E0182E190E00E948E266E -:1024D00090E0909317018093160181E190E00E94B3 -:1024E0008E2691E0811101C090E09093370180E148 -:1024F00090E00E948E2691E0811101C090E09093BF -:1025000036018FE090E00E948E2691E0811101C09B -:1025100090E0909335018EE090E00E948E2691E04D -:10252000811101C090E0909334018DE090E00E9411 -:102530008E2691E0811101C090E0909333018CE0F0 -:1025400090E00E948E26C1E0811101C0C0E0C093DE -:1025500032018BE090E00E948E2691E0811101C053 -:1025600090E09093E7038AE090E00E948E268093AB -:10257000130189E090E00E948E268093120188E08A -:1025800090E00E948E268093110187E090E00E94E7 -:102590008E268093100186E090E00E948E26809324 -:1025A000150185E090E00E948E268093140184E05E -:1025B00090E00E948E2691E0811101C090E09093FE -:1025C000DE0382E090E00E949626A0E0B0E08093D7 -:1025D000090190930A01A0930B01B0930C0180E0D4 -:1025E00090E00E949626A0E0B0E0809305019093D1 -:1025F0000601A0930701B0930801CC23C1F180919B -:10260000E6038823A1F18AEF9DE09F938F930E94B8 -:1026100086240F900F902BC08091E603882381F0D1 -:102620008091E70381110CC080913201882341F031 -:1026300081ED9DE09F938F930E9486240F900F90D1 -:102640008091E603882381F08091E70381110CC01B -:1026500080913201811108C08EEC9DE09F938F9391 -:102660000E9486240F900F9081E08093E503CF9124 -:10267000089590932606809325060E94211281E0FA -:102680008093E603809132018823A1F18AEA9EE0DB -:102690009F938F930E94862489E99EE09F938F9356 -:1026A0000E94862482E89EE09F938F930E94862456 -:1026B0000F900F900F900F900F900F908091E50367 -:1026C000882341F083E69EE09F938F930E948624A7 -:1026D0000F900F9086E59EE09F938F930E94862433 -:1026E00085E49EE09F938F930E9486240F900F9025 -:1026F0000F900F90089546E050E068E270E08CE2A1 -:1027000091E00E949C2646E050E062E270E086E2A2 -:1027100091E00E949C2646E050E06CE170E080E28F -:1027200091E00E949C2646E050E066E170E088E17E -:1027300091E00E949C266091E30385E190E00E9475 -:10274000AC266091E10384E190E00E94AC266091A8 -:102750001E0183E190E00E94AC266091160182E1A7 -:1027600090E00E94AC266091370181E190E00E94E8 -:10277000AC266091360180E190E00E94AC26609129 -:1027800035018FE090E00E94AC26609134018EE02C -:1027900090E00E94AC26609133018DE090E00E94B1 -:1027A000AC26609132018CE090E00E94AC266091F2 -:1027B000E7038BE090E00E94AC26609113018AE071 -:1027C00090E00E94AC266091120189E090E00E94A6 -:1027D000AC266091110188E090E00E94AC266091E7 -:1027E000100187E090E00E94AC266091150186E020 -:1027F00090E00E94AC266091140185E090E00E9478 -:10280000AC266091DE0384E090E00E94AC266091EB -:10281000090170910A0182E090E00E94BD2660915A -:1028200005017091060180E090E00E94BD2669E6F6 -:102830008EE290E00E94AC2680913201882341F024 -:1028400089EB9DE09F938F930E9486240F900F90B9 -:102850008091320181110CC08091E703811108C081 -:1028600086EB9DE09F938F930E9486240F900F909C -:1028700008950F931F93CF93DF939C01EA0186E0A5 -:10288000E6E2F1E0AAE4B6E001900D928A95E1F764 -:102890008091E1038093500696E0ECE2F1E0A9EA32 -:1028A000B6E001900D929A95E1F78091E303809351 -:1028B000AF0696E0E0E2F1E0A1E5B6E001900D920E -:1028C0009A95E1F780911E018093570696E0E8E122 -:1028D000F1E0A9EBB6E001900D929A95E1F78091B5 -:1028E00016018093BF0697E0EAE4F6E0ACE2B6E0BA -:1028F00001900D929A95E1F797E0E9EAF6E0A3E3FB -:10290000B6E001900D929A95E1F797E0E1E5F6E0E7 -:10291000AAE3B6E001900D929A95E1F797E0E9EB12 -:10292000F6E0A1E4B6E001900D929A95E1F78B01F3 -:1029300044E050E06CE276E0CE010E94670FDF9148 -:10294000CF911F910F9108958F929F92AF92BF9256 -:10295000CF92DF92EF92FF920F931F93CF93DF936B -:1029600000D000D000D0CDB7DEB78C018091370108 -:102970008823F9F080913301882341F080EB9DE0BA -:102980009F938F930E9486240F900F90D8011696E4 -:102990008C911F928F931F930F9385EA9DE09F93D5 -:1029A0008F930E9486240F900F900F900F900F909E -:1029B0000F9080913601882301F1809133018823A3 -:1029C00041F08FE99DE09F938F930E9486240F90A2 -:1029D0000F90F80185851F928F93C80107969F93EA -:1029E0008F9384E99DE09F938F930E9486240F909C -:1029F0000F900F900F900F900F90809135018111E3 -:102A000005C080913401811147C039C080913301E4 -:102A1000882341F08DE89DE09F938F930E94862448 -:102A20000F900F907801F4E1EF0EF11CC12CD12C26 -:102A3000580126E4A20EB11C82E8882E8DE0982E63 -:102A4000D5018C9190E0C816D906DCF6D7018C919F -:102A50001F928F93C70106979F938F939F928F9298 -:102A60000E948624BFEFCB1ADB0AE7E0EE0EF11CD2 -:102A70000F900F900F900F900F900F90E1CF88E77D -:102A80009DE09F938F930E9486240F900F908091DA -:102A9000DE03811134C02FC180913301F801E35B63 -:102AA000FF4F6F01882371F081818F9380818F9315 -:102AB0008BE79DE09F938F930E9486240F900F9049 -:102AC0000F900F90E12CF12C5801FBE4AF0EB11CDC -:102AD000F60180819181E816F90688F66091C606B4 -:102AE0007091C706D501ED91FC91EE0DFF1D80811F -:102AF00090E00E944E24BFEFEB1AFB0AE9CFF801E9 -:102B0000E35BFF4FA081B181AC30B10508F4F3C0A5 -:102B100032970190F081E02D5D01AE0EBF1E40E0C6 -:102B200050E0C12CD12CBE016F5F7F4FD5018E913B -:102B30005D018B3731F04F5F5F4F47305105B1F783 -:102B400010C0CB019D01D901FD909D01DC01FD92DA -:102B5000CD017D01E61AF70A4E155F05A0F76A015F -:102B6000EACFC114D10409F4C6C081E090E041E08D -:102B7000DF01A80FB91F3C91DC01A55DBE4F2C9170 -:102B8000321719F087E090E040E001968730910518 -:102B90007CF320E030E0DF01A80FB91F5C915D32CB -:102BA00009F49C0101968A309105A9F72115310598 -:102BB00099F0E20FF31F82812091E3033091E40347 -:102BC000803221F4818190E0C09702C090E0869726 -:102BD0008217930709F08FC0442309F48CC0560173 -:102BE000BEE0AB0EB11CC5010E9450227C01FC016D -:102BF00031960A9620E22193E817F907E1F7B80128 -:102C0000E0E0F0E080E090E0DB012D91BD012223C7 -:102C100039F0A701480F591FDA0111962C9331960C -:102C200001968630910581F7D80116969C919923DB -:102C300069F0EE0DFF1D8DE281839A3018F4905DEE -:102C4000928304C081E382839A5D93838AE3F701D0 -:102C50008083828781E6838783E684878BE6858706 -:102C60003E9680E090E00196A1E0B0E0AC0FBD1F81 -:102C7000A80FB91F2C9121938C159D05A4F38FB734 -:102C8000F8944091B6045091B7046091B8047091E3 -:102C9000B9048FBF2FB7F8948091B6049091B70410 -:102CA000A091B804B091B9042FBF841B950BA60B5B -:102CB000B70B8C359444A105B10560F3409125060E -:102CC00050912606B501C7010E943914C701269606 -:102CD0000FB6F894DEBF0FBECDBFDF91CF911F912D -:102CE0000F91FF90EF90DF90CF90BF90AF909F90AB -:102CF0008F900C94E52226960FB6F894DEBF0FBE97 -:102D0000CDBFDF91CF911F910F91FF90EF90DF909A -:102D1000CF90BF90AF909F908F9008958F929F9289 -:102D2000AF92BF92CF92DF92EF92FF920F931F93D9 -:102D3000CF93DF934C017B015A016B0184E1C80EF4 -:102D4000D11C009113010A3090F4809112018A3055 -:102D500070F4809111018A3050F480911001893013 -:102D600030F46B018BE1C80ED11C11E001C010E002 -:102D7000C6010E945022EC018DE3888380911501E9 -:102D80008987809114018B8B88E0E1EAF6E0DE010F -:102D9000119601900D928A95E1F789E0E0EBF6E05B -:102DA000DE011A9601900D928A95E1F7111103C088 -:102DB000CE01449616C080E58C8B88E48D8B87E429 -:102DC0008E8B005D0F8B80911201805D888F8091CA -:102DD0001101805D898F80911001805D8A8FCE0105 -:102DE0004B96E114F10421F0A701B4010E94FF23E6 -:102DF000A501B601CE010E943914CE01DF91CF9119 -:102E00001F910F91FF90EF90DF90CF90BF90AF9008 -:102E10009F908F900C94E5228F929F92AF92BF92D9 -:102E2000CF92DF92EF92FF920F931F93CF93DF9396 -:102E30007C016A01EB016434710510F0C3E4D0E059 -:102E40008E01015F1F4FC8010E9450225C018AE37E -:102E5000F501808387E090E020E030E0019769F0A1 -:102E6000F901E85AF94F40814423C1F32F5F3F4FE6 -:102E7000F501E20FF31F4083F1CF80910E01909195 -:102E80000F018F3FFFEF9F0779F0F501E20FF31F6E -:102E90004DE241838A3091054CF42E5F3F4FF5019E -:102EA000E20FF31F805D808380E209C091E392838B -:102EB0002D5F3F4FF501E20FF31F8A5DF4CF2930FC -:102EC00031053CF42F5F3F4FF501E20FF31F808384 -:102ED000F6CFF501E20FF31F8AE38183209781F09B -:102EE000AE01B701C5010B960E94FF23AE01B701E9 -:102EF0008EE596E00E94FF23D0934906C0934806D2 -:102F00008091DF039091E0030196883E23E09207D1 -:102F10002CF49093E0038093DF0304C01092E0034D -:102F20001092DF03CA0DDB1D8BE78B872091DF0337 -:102F30003091E0038AE0882E912CC901B4010E94EF -:102F4000E721FC0194E6E92EF12CC901B7010E94AA -:102F5000E7218E1B9F0BB4010E94E721AB01C90141 -:102F6000861B970B8E1B9F0BB7010E94E721605DAC -:102F70006C87405D4D87E05DEE87A601B801C50115 -:102F80000E943914C501DF91CF911F910F91FF90DD -:102F9000EF90DF90CF90BF90AF909F908F900C9468 -:102FA000E5222091DF033091E00321503109309375 -:102FB000E0032093DF036091480670914906AC015D -:102FC0008EE596E00C940C1783E199E09F938F9324 -:102FD0000E9486248091E4038F938091E3038F9372 -:102FE0008CE291E09F938F9380E099E09F938F9381 -:102FF0000E9486248091E2038F938091E1038F9356 -:1030000086E291E09F938F938AEE98E09F938F934F -:103010000E94862480911F018F9380911E018F93BF -:1030200080E291E09F938F938AED98E09F938F9336 -:103030000E948624809117018F93809116018F93AF -:1030400088E191E09F938F938AEC98E09F938F9310 -:103050000E9486248DB79EB74A960FB6F8949EBFFD -:103060000FBE8DBF8091DE03882319F083EB98E0BB -:1030700002C08BE998E09F938F930E9486240F9063 -:103080000F90809113018A3061F01F928F9380E935 -:1030900098E09F938F930E9486240F900F900F903B -:1030A0000F90809112018A3061F01F928F9384E813 -:1030B00098E09F938F930E9486240F900F900F901B -:1030C0000F90809111018A3061F01F928F938AE7EF -:1030D00098E09F938F930E9486240F900F900F90FB -:1030E0000F90809110018A3061F01F928F9389E6D2 -:1030F00098E09F938F930E9486240F900F900F90DB -:103100000F90809115018C3541F480E598E09F93F4 -:103110008F930E9486240F900F90809115018F321B -:1031200041F488E398E09F938F930E9486240F9048 -:103130000F90809114011F928F938CE298E09F93DF -:103140008F930E94862480910C018F9380910B01B4 -:103150008F9380910A018F93809109018F938AE167 -:1031600098E09F938F930E948624809108018F930B -:10317000809107018F93809106018F9380910501C3 -:103180008F938CE098E09F938F930E9486248DB755 -:103190009EB740960FB6F8949EBF0FBE8DBF0895A0 -:1031A00088EE97E09F938F930E94862486ED97E0A8 -:1031B0009F938F930E9486248BEB97E09F938F932E -:1031C0000E94862482E897E09F938F930E94862432 -:1031D00084E697E09F938F930E94862487E497E08C -:1031E0009F938F930E94862483E297E09F938F930F -:1031F0000E94862485E097E09F938F930E94862407 -:1032000086EE96E09F938F930E9486248DEC96E045 -:103210009F938F930E9486248DEA96E09F938F93CD -:103220000E94862483E996E09F938F930E948624D0 -:1032300088E796E09F938F930E94862485E496E02A -:103240009F938F930E94862481E196E09F938F93B2 -:103250000E94862484EF95E09F938F930E9486249A -:103260008DB79EB780960FB6F8949EBF0FBE8DBFE8 -:1032700081ED95E09F938F930E94862480EB95E0EB -:103280009F938F930E94862488E895E09F938F9365 -:103290000E9486248FE695E09F938F930E94862458 -:1032A0008AE395E09F938F930E94862480E195E0C6 -:1032B0009F938F930E9486248AEE94E09F938F932E -:1032C0000E9486248CEC94E09F938F930E94862426 -:1032D00083EA94E09F938F930E94862487E894E08A -:1032E0009F938F930E9486248BE694E09F938F9305 -:1032F0000E9486248EE494E09F938F930E948624FC -:1033000081E394E09F938F930E94862483E194E06D -:103310009F938F930E94862484EF93E09F938F93D3 -:103320000E94862485ED93E09F938F930E948624CC -:103330008DB79EB780960FB6F8949EBF0FBE8DBF17 -:1033400082EB93E09F938F930E94862486E893E01C -:103350009F938F930E94862488E693E09F938F9398 -:103360000E9486248AE493E09F938F930E94862490 -:103370008BE293E09F938F930E9486248CE093E0EE -:103380009F938F930E94862488EE92E09F938F9361 -:103390000E9486248DB79EB70E960FB6F8949EBFF6 -:1033A0000FBE8DBF0895EF92FF920F931F93CF939F -:1033B000DF9300D000D0CDB7DEB76115710509F4F9 -:1033C0007CC79B018C01DC019C91913209F5623034 -:1033D000710508F450C661507109C80101960E9438 -:1033E000391480913201882341F08BE69DE09F9350 -:1033F0008F930E9486240F900F908091320181114B -:103400005CC78091E703811158C788E69DE049C6F3 -:103410009034E9F461507109C80101960E948E163A -:1034200080913201882341F082E59DE09F938F9344 -:103430000E9486240F900F908091320181113DC728 -:103440008091E703811139C78FE49DE02AC693324A -:10345000E9F461507109C80101960E940C1780912E -:103460003201882341F081E49DE09F938F930E9475 -:1034700086240F900F908091320181111EC7809198 -:10348000E70381111AC78EE39DE00BC6983619F445 -:103490000E94D01812C7983419F40E94E4170DC77F -:1034A000933519F40E947B1308C7933419F40E94D2 -:1034B000FF1103C79C3419F40E942112FEC69336F3 -:1034C00009F050C06430710508F4D5C54CE251E0F4 -:1034D0000F5F1F4F61507109E0E0F0E0E630F10549 -:1034E000A1F0D8019D918D01992339F09A3029F0EE -:1034F0009D3019F0DA019C9302C0DA011C923196DA -:103500004F5F5F4FE617F70749F7E45DFE4FB1E005 -:10351000E233FB0711F01192FACF80913201882338 -:10352000B1F08091E4038F938091E3038F938CE259 -:1035300091E09F938F938BE29DE09F938F930E94E6 -:1035400086240F900F900F900F900F900F90809106 -:1035500032018111B2C68091E7038111AEC688E2C3 -:103560009DE09FC5943609F051C06430710508F4A0 -:1035700082C5E6E2F1E0D80111962150310940E020 -:1035800050E046305105A1F09D91992331F09A30D9 -:1035900021F09D3011F0908301C010824F5F5F4F8A -:1035A00031964217530769F7F901EA5DFE4F03C0F0 -:1035B00026E030E0F9CF21E0EC32F20711F0119271 -:1035C000FACF809132018823B1F08091E2038F938A -:1035D0008091E1038F9386E291E09F938F9382E144 -:1035E0009DE09F938F930E9486240F900F900F90E1 -:1035F0000F900F900F908091320181115EC68091E3 -:10360000E70381115AC68FE09DE04BC5913309F065 -:1036100050C06230710508F42EC540E251E00F5FE2 -:103620001F4F61507109E0E0F0E0E630F105A1F0D4 -:10363000D8019D918D01992339F09A3029F09D3060 -:1036400019F0DA019C9302C0DA011C9231964F5FA7 -:103650005F4FE617F70749F7E05EFE4FB1E0E6324D -:10366000FB0711F01192FACF809132018823B1F05B -:1036700080911F018F9380911E018F9380E291E0D2 -:103680009F938F938FEF9CE09F938F930E9486244C -:103690000F900F900F900F900F900F90809132012C -:1036A00081110BC68091E703811107C68CEF9CE066 -:1036B000F8C4923309F051C06230710508F4DBC4DC -:1036C000E8E1F1E0D80111962150310940E050E0E5 -:1036D00046305105A1F09D91992331F09A3021F0A7 -:1036E0009D3011F0908301C010824F5F5F4F319683 -:1036F0004217530769F7F901E85EFE4F03C026E061 -:1037000030E0F9CF21E0EE31F20711F01192FACF5B -:10371000809132018823B1F0809117018F938091BD -:1037200016018F9388E191E09F938F938CEE9CE03C -:103730009F938F930E9486240F900F900F900F906D -:103740000F900F90809132018111B7C58091E703EE -:103750008111B3C589EE9CE0A4C4933709F038C148 -:103760006330710508F487C47B0181E0E81AF10831 -:10377000D80111968C911197833609F046C01296A4 -:103780008C91B2E0EB16F10461F0F80193812FEC1B -:10379000290F293030F4813320F0892F90E086976B -:1037A00006C09FEC980F993030F490E0C09790934A -:1037B000E4038093E303809132018823B1F0809188 -:1037C000E4038F938091E3038F938CE291E09F93C6 -:1037D0008F9386ED9CE09F938F930E9486240F9099 -:1037E0000F900F900F900F900F90809132018111E8 -:1037F0000CC08091E703811108C083ED9CE09F938A -:103800008F930E9486240F900F90D80111968C916F -:103810001197843609F046C012968C91B2E0EB16EF -:10382000F10461F0F80193812FEC290F293030F475 -:10383000813320F0892F90E0869706C09FEC980F87 -:10384000993030F490E0C0979093E2038093E103C5 -:10385000809132018823B1F08091E2038F938091AF -:10386000E1038F9386E291E09F938F938DEB9CE031 -:103870009F938F930E9486240F900F900F900F902C -:103880000F900F908091320181110CC08091E7035D -:10389000811108C08AEB9CE09F938F930E9486243D -:1038A0000F900F90D80111968C911197813309F0E8 -:1038B00046C012968C91B2E0EB16F10461F0F8016B -:1038C00093812FEC290F293030F4813320F0892F98 -:1038D00090E0869706C09FEC980F993030F490E006 -:1038E000C09790931F0180931E018091320188231D -:1038F000B1F080911F018F9380911E018F9380E220 -:1039000091E09F938F938AEA9CE09F938F930E940C -:1039100086240F900F900F900F900F900F90809132 -:10392000320181110CC08091E703811108C087EA40 -:103930009CE09F938F930E9486240F900F90D80154 -:1039400011968C911197823309F0B7C413968C911C -:10395000B2E0EB16F10459F09FEC980F993038F46F -:10396000F8019281913318F090E0869708C0815356 -:10397000893048F4D80112968C9190E0C0979093CA -:10398000170180931601809132018823B1F0809154 -:1039900017018F93809116018F9388E191E09F9397 -:1039A0008F9387E99CE09F938F930E9486240F90CA -:1039B0000F900F900F900F900F9080913201811116 -:1039C0007CC48091E703811178C484E99CE069C3D9 -:1039D000903709F037C16330710508F44CC3F80122 -:1039E00081818337C9F59281809132019133C1F48D -:1039F00091E090933701882341F081E89CE09F9308 -:103A00008F930E9486240F900F9080913201811134 -:103A100023C08091E70381111FC08EE79CE016C090 -:103A200010923701882341F08AE69CE09F938F93A0 -:103A30000E9486240F900F908091320181110CC05A -:103A40008091E703811108C087E69CE09F938F93E4 -:103A50000E9486240F900F90D80111968C91119797 -:103A60008436D1F512969C91809132019133C1F444 -:103A700091E090933601882341F084E59CE09F9388 -:103A80008F930E9486240F900F90809132018111B4 -:103A900023C08091E70381111FC081E59CE016C01F -:103AA00010923601882341F08DE39CE09F938F9321 -:103AB0000E9486240F900F908091320181110CC0DA -:103AC0008091E703811108C08AE39CE09F938F9364 -:103AD0000E9486240F900F90F80181818037C9F5EC -:103AE0009281809132019133C1F491E0909335013C -:103AF000882341F086E29CE09F938F930E94862466 -:103B00000F900F9080913201811123C08091E703C3 -:103B100081111FC083E29CE016C0109235018823FA -:103B200041F08EE09CE09F938F930E9486240F903B -:103B30000F908091320181110CC08091E7038111B7 -:103B400008C08BE09CE09F938F930E9486240F9087 -:103B50000F90D80111968C9111978D36D1F5129650 -:103B60009C91809132019133C1F491E090933401A2 -:103B7000882341F087EF9BE09F938F930E948624D8 -:103B80000F900F9080913201811123C08091E70343 -:103B900081111FC084EF9BE016C01092340188236E -:103BA00041F08FED9BE09F938F930E9486240F90AE -:103BB0000F908091320181110CC08091E703811137 -:103BC00008C08CED9BE09F938F930E9486240F90FA -:103BD0000F90F8018181893609F06FC3928180913D -:103BE00032019133C1F491E090933301882341F085 -:103BF00088EC9BE09F938F930E9486240F900F90F8 -:103C000080913201811159C38091E703811155C31D -:103C100085EC9BE046C210923301882341F080EB93 -:103C20009BE09F938F930E9486240F900F9080912A -:103C30003201811142C38091E70381113EC38DEAB5 -:103C40009BE02FC2963781F4D80111968C91813375 -:103C500031F481E08093320187E99BE022C2109227 -:103C6000320180E89BE01DC2963589F4F80181811C -:103C7000813341F481E08093E703109232018BE6B7 -:103C80009BE00FC21092E70385E59BE00AC29C36D9 -:103C900009F068C06330710508F4EDC1D8011196D0 -:103CA0008C9111978C3609F003C2615071091296FC -:103CB0008C91813651F56A30710508F4FEC288E0B6 -:103CC000F8013396A1EAB6E001900D928A95E1F7EA -:103CD00080913201882371F081EA96E09F938F935F -:103CE0008FE39BE09F938F930E9486240F900F9009 -:103CF0000F900F90809132018111DFC28091E70314 -:103D00008111DBC28CE39BE0CCC18F3609F0D5C2B8 -:103D10006B30710508F4D1C289E0F8013396A0EB4D -:103D2000B6E001900D928A95E1F7809132018823E7 -:103D300071F080EB96E09F938F9384E29BE09F93DA -:103D40008F930E9486240F900F900F900F90809178 -:103D500032018111B2C28091E7038111AEC281E2CA -:103D60009BE09FC19D3609F021C16230710508F4C6 -:103D700082C161507109F8018181833609F067C001 -:103D80006130710509F499C248E556E00E5F1F4F96 -:103D900061507109E0E0F0E0E617F70719F4E85A1E -:103DA000F94F15C0E630F105D1F3D8019D918D0191 -:103DB000992339F09A3029F09D3019F0DA019C935B -:103DC00002C0DA011C9231964F5F5F4FE5CFB6E03B -:103DD000EE35FB0711F01192FACF80913201882362 -:103DE00059F188E596E09F938F9380E39AE09F9343 -:103DF0008F930E94862480910E0190910F010F9065 -:103E00000F900F900F908F3FEFEF9E0769F09F93F9 -:103E10008F938BE29AE09F938F930E9486240F905A -:103E20000F900F900F9008C089E29AE09F938F93B4 -:103E30000E9486240F900F908091320181113DC223 -:103E40008091E703811139C286E29AE02AC1833763 -:103E500009F059C06130710509F42FC26430710551 -:103E600020F0838190E0869704C0F801828190E081 -:103E7000C09790930F0180930E0180910E01909155 -:103E80000F01409730F08FEF9FEF90930F018093D9 -:103E90000E0180913201882359F188E596E09F93C5 -:103EA0008F938EE09AE09F938F930E948624809157 -:103EB0000E0190910F010F900F900F900F908F3F78 -:103EC000FFEF9F0769F09F938F9389E09AE09F939C -:103ED0008F930E9486240F900F900F900F9008C030 -:103EE00087E09AE09F938F930E9486240F900F9013 -:103EF000809132018111E1C18091E7038111DDC11F -:103F000084E09AE0CEC08237D1F4CA010E94D11772 -:103F100080913201882341F08EEE99E09F938F9338 -:103F20000E9486240F900F90809132018111C5C1AB -:103F30008091E7038111C1C18BEE99E0B2C0813657 -:103F400009F0BBC19281809132019133C1F491E0BB -:103F50009093DE03882341F081ED99E09F938F9346 -:103F60000E9486240F900F90809132018111A5C18B -:103F70008091E7038111A1C18EEC99E092C010926B -:103F8000DE03882341F083EB99E09F938F930E9497 -:103F900086240F900F908091320181118EC1809103 -:103FA000E70381118AC180EB99E07BC0973761F507 -:103FB0006230710508F45FC0AB0141505109B8018E -:103FC0006F5F7F4FCE0101960E94FF23CE010196C5 -:103FD0000E94D9238031B7E29B0798F4AA2797FD66 -:103FE000A095BA2F8093090190930A01A0930B0129 -:103FF000B0930C01BF93AF939F938F9389E999E09E -:104000002CC086E799E04DC09735A9F5623071055F -:1040100090F1AB0141505109B8016F5F7F4FCE0164 -:1040200001960E94FF23CE0101960E94D923803180 -:10403000E7E29E07E8F4AA2797FDA095BA2F8093A0 -:10404000050190930601A0930701B0930801BF9367 -:10405000AF939F938F9380E699E09F938F930E94F5 -:1040600086240F900F900F900F900F900F9025C106 -:104070008EE399E016C080913201882341F086E2F8 -:1040800099E09F938F930E9486240F900F908091C8 -:104090003201811112C18091E70381110EC183E2C7 -:1040A00099E09F938F930E9486240F900F9005C1F3 -:1040B000803731F5F801828180538A3008F0FDC0E5 -:1040C0008093130190913201992379F0889FC00168 -:1040D00011249F938F938FE09BE09F938F930E9477 -:1040E00086240F900F900F900F90809132018111D4 -:1040F000E4C08091E7038111E0C08CE09BE0D1CF68 -:104100008836C9F5D80112968C9180538A3008F010 -:10411000D4C08093120190913201992309F1A1E05A -:10412000B0E002C0AA0FBB1F8A95E2F728EE33E089 -:104130000E94D52128E431E040E050E00E941D2299 -:104140005F934F933F932F938CEE9AE09F938F93BF -:104150000E9486240F900F900F900F900F900F9059 -:10416000809132018111A9C08091E7038111A5C01E -:1041700089EE9AE096CF873619F5F801828180534F -:104180008A3008F09AC080931101909132019923EE -:1041900061F01F928F9387ED9AE09F938F930E9417 -:1041A00086240F900F900F900F9080913201811113 -:1041B00084C08091E703811180C084ED9AE071CFC3 -:1041C0008436D9F5D80112968C9180538A3008F044 -:1041D00074C0893009F488E0809310018091320125 -:1041E00081110CC08091E703811108C081ED9AE034 -:1041F0009F938F930E9486240F900F90809132019D -:10420000882309F45AC080911001811108C088EBFD -:104210009AE09F938F930E9486240F900F90809135 -:104220001001882309F449C0BDE28B9FC00111240D -:104230009F938F938EE99AE00EC08337A9F4F8011B -:10424000828180931401909132019923B1F11F92E0 -:104250008F938CE89AE09F938F930E9486240F900F -:104260000F900F900F9029C0843739F5D80112961E -:104270009C9180913201913641F49CE59093150117 -:10428000882381F08BE69AE007C09FE290931501A6 -:10429000882341F08BE49AE09F938F930E948624B9 -:1042A0000F900F9080913201811107C08091E70338 -:1042B000811103C088E49AE0F4CE0F900F900F9024 -:1042C0000F90DF91CF911F910F91FF90EF90089584 -:1042D0000E948B070E947D076B017C01C1E088EC86 -:1042E00094E00E94A20D80914201811125C00E949C -:1042F000FB07882309F10E940508282F30E030933E -:104300004601209345012091430130914401F90178 -:10431000E95BFE4FA9014F5F5F4F808350934401DB -:10432000409343012934314010F0C09342010E9470 -:104330007D076B017C0114C0809143019091440181 -:10434000892B71F00E947D07DC01CB018C199D093E -:10435000AE09BF094597A105B10514F0C09342010C -:1043600080914201882309F4BACF60914301709192 -:10437000440148EC54E087E491E00E94D319109284 -:1043800042011092440110924301A9CFA29FB001B3 -:10439000B39FC001A39F700D811D1124911DB29F79 -:1043A000700D811D1124911D08950E94C621B7FF33 -:1043B0000895821B930B08950E94C621A59F900D1E -:1043C000B49F900DA49F800D911D1124089597FB1B -:1043D000072E16F4009407D077FD09D00E943C22E6 -:1043E00007FC05D03EF4909581959F4F08957095F8 -:1043F00061957F4F0895A1E21A2EAA1BBB1BFD01F8 -:104400000DC0AA1FBB1FEE1FFF1FA217B307E407B3 -:10441000F50720F0A21BB30BE40BF50B661F771F0B -:10442000881F991F1A9469F76095709580959095EB -:104430009B01AC01BD01CF010895052E97FB1EF431 -:1044400000940E94342257FD07D00E94FB2107FCF4 -:1044500003D04EF40C94342250954095309521951C -:104460003F4F4F4F5F4F08959095809570956195A0 -:104470007F4F8F4F9F4F0895AA1BBB1B51E107C071 -:10448000AA1FBB1FA617B70710F0A61BB70B881FE4 -:10449000991F5A95A9F780959095BC01CD01089573 -:1044A000CF93DF938230910510F482E090E0E091A9 -:1044B000C206F091C30620E030E0C0E0D0E03097C3 -:1044C00011F14081518148175907C0F04817590729 -:1044D00061F482819381209719F09B838A832BC09A -:1044E0009093C3068093C20626C02115310519F0AA -:1044F0004217530718F49A01BE01DF01EF01028051 -:10450000F381E02DDCCF2115310509F1281B390B92 -:104510002430310590F412968D919C91139761157A -:10452000710521F0FB019383828304C09093C3063D -:104530008093C206FD01329644C0FD01E20FF31FD5 -:1045400081939193225031092D933C933AC020914D -:10455000C0063091C106232B41F420913A013091DD -:104560003B013093C1062093C00620913801309161 -:1045700039012115310541F42DB73EB740913C0179 -:1045800050913D01241B350BE091C006F091C1060E -:10459000E217F307A0F42E1B3F0B2817390778F01A -:1045A000AC014E5F5F4F2417350748F04E0F5F1F79 -:1045B0005093C1064093C0068193919302C0E0E0FE -:1045C000F0E0CF01DF91CF9108950F931F93CF9328 -:1045D000DF93009709F48CC0FC013297138212829A -:1045E0000091C2061091C3060115110581F42081C6 -:1045F0003181820F931F2091C0063091C106281788 -:10460000390779F5F093C106E093C00671C0D8016F -:1046100040E050E0AE17BF0750F412962D913C9148 -:104620001397AD012115310509F1D901F3CF9D0192 -:10463000DA013383228360817181860F971F82178D -:10464000930769F4EC0128813981260F371F2E5F0B -:104650003F4F318320838A819B8193838283452BC3 -:1046600029F4F093C306E093C20642C01396FC936C -:10467000EE931297ED01499159919E01240F351F38 -:10468000E217F30771F480819181840F951F0296E0 -:1046900011969C938E938281938113969C938E9313 -:1046A0001297E0E0F0E0D80112968D919C9113975B -:1046B000009719F0F8018C01F6CF8D919C9198012B -:1046C0002E5F3F4F820F931F2091C0063091C1068D -:1046D0002817390769F4309729F41092C30610920D -:1046E000C20602C0138212821093C1060093C00654 -:1046F000DF91CF911F910F9108958F929F92AF926A -:10470000BF92CF92DF92EF92FF92CF93DF93EC01B3 -:10471000688179818A819B81611571058105910587 -:1047200021F464E279ED8BE597E02DE133EF41E090 -:1047300050E00E941D2249015A019B01AC01A7EAE9 -:10474000B1E40E94DC216B017C01ACEEB4EFA50169 -:1047500094010E943A27DC01CB018C0D9D1DAE1DFA -:10476000BF1DB7FF03C00197A109B0488883998393 -:10477000AA83BB839F77DF91CF91FF90EF90DF906B -:10478000CF90BF90AF909F908F9008950E947D230F -:1047900008958EE391E00E947D230895A0E0B0E0AB -:1047A00080933E0190933F01A0934001B09341015B -:1047B0000895FC0188279927E89421912032E9F394 -:1047C000293010F02E30C8F32B3241F02D3239F45D -:1047D000689404C00E940824820F911D21912053E7 -:1047E0002A30C0F31EF4909581959F4F0895911142 -:1047F000089581568A5108F4805285580895FB0126 -:10480000DC0102C001900D9241505040D8F708954C -:104810007AE0979F902D879F802D910D1124089508 -:10482000CF93DF93EC012B8120FF33C026FF0AC01A -:104830002F7B2B838E819F8101969F838E838A811C -:1048400090E029C022FF0FC0E881F981808199277B -:1048500087FD9095009719F420622B831AC031963A -:10486000F983E8830EC0EA85FB85099597FF09C0A7 -:104870002B81019611F080E201C080E1822B8B83B5 -:1048800008C02E813F812F5F3F4F3F832E839927A2 -:1048900002C08FEF9FEFDF91CF9108950F931F9389 -:1048A000CF93DF93FB01238121FD03C08FEF9FEFA7 -:1048B00028C022FF16C046815781248135814217C6 -:1048C000530744F4A081B1819D012F5F3F4F318395 -:1048D00020838C93268137812F5F3F4F3783268338 -:1048E00010C0EB01092F182F0084F185E02D0995E8 -:1048F000892BE1F68E819F8101969F838E83812F84 -:10490000902FDF91CF911F910F910895A0E0B0E01B -:10491000ECE8F4E20C944D27AE01495F5F4FDA01F9 -:104920006D917D91AD0104EC16E0F80182819381D7 -:10493000DC0113962C911397286013962C930E94F8 -:10494000AC24D8011296ED91FC9113972381277F17 -:104950002383E4E00C946927ACE0B0E0E2EBF4E2FE -:104960000C943F277C016B018A01FC01178216829F -:10497000838181FFBDC1CE0101964C01F701938176 -:10498000F60193FD859193FF81916F01882309F4CE -:10499000ABC1853239F493FD859193FF81916F010D -:1049A000853229F4B70190E00E944E24E7CF512CC4 -:1049B000312C20E02032A0F48B3269F030F48032C8 -:1049C00059F0833269F420612CC08D3239F0803384 -:1049D00039F4216026C02260246023C0286021C0F1 -:1049E00027FD27C030ED380F3A3078F426FF06C097 -:1049F000FAE05F9E300D1124532E13C08AE0389EDA -:104A0000300D1124332E20620CC08E3221F426FD8D -:104A10006BC1206406C08C3611F4206802C0883651 -:104A200041F4F60193FD859193FF81916F0181110E -:104A3000C1CF982F9F7D9554933028F40C5F1F4F62 -:104A4000FFE3F9830DC0833631F0833771F083358E -:104A500009F05BC022C0F801808189830E5F1F4F7F -:104A600044244394512C540115C03801F2E06F0ED8 -:104A7000711CF801A080B18026FF03C0652D70E095 -:104A800002C06FEF7FEFC5012C870E94CE262C015C -:104A900083012C852F77222E17C03801F2E06F0E8C -:104AA000711CF801A080B18026FF03C0652D70E065 -:104AB00002C06FEF7FEFC5012C870E94C3262C0137 -:104AC0002C852068222E830123FC1BC0832D90E0BF -:104AD00048165906B0F4B70180E290E00E944E24D7 -:104AE0003A94F4CFF50127FC859127FE81915F016F -:104AF000B70190E00E944E2431103A94F1E04F1A31 -:104B000051084114510471F7E5C0843611F089361B -:104B100039F5F80127FF07C0608171818281938197 -:104B20000C5F1F4F08C060817181882777FD8095D9 -:104B3000982F0E5F1F4F2F76722E97FF09C090950A -:104B40008095709561957F4F8F4F9F4F2068722E93 -:104B50002AE030E0A4010E94D926A82EA81844C05B -:104B6000853729F42F7EB22E2AE030E025C0F22FBF -:104B7000F97FBF2E8F36C1F018F4883579F0B4C0B4 -:104B8000803719F0883721F0AFC02F2F2061B22E67 -:104B9000B4FE0DC08B2D8460B82E09C024FF0AC05E -:104BA0009F2F9660B92E06C028E030E005C020E1B6 -:104BB00030E002C020E132E0F801B7FE07C06081BA -:104BC0007181828193810C5F1F4F06C0608171816A -:104BD00080E090E00E5F1F4FA4010E94D926A82E0E -:104BE000A818FB2DFF777F2E76FE0BC0372D3E7F5A -:104BF000A51450F474FE0AC072FC08C0372D3E7E26 -:104C000005C0BA2C372D03C0BA2C01C0B52C34FF17 -:104C10000DC0FE01EA0DF11D8081803311F4397E53 -:104C200009C032FF06C0B394B39404C0832F8678C2 -:104C300009F0B39433FD13C030FF06C05A2CB314EF -:104C400018F4530C5B18B32CB31468F4B70180E26A -:104C500090E03C870E944E24B3943C85F5CFB3147A -:104C600010F43B1801C0312C34FF12C0B70180E3AF -:104C700090E03C870E944E243C8532FF17C031FDF6 -:104C800003C088E790E002C088E590E0B7010CC05F -:104C9000832F867859F031FF02C08BE201C080E299 -:104CA00037FD8DE2B70190E00E944E24A51438F440 -:104CB000B70180E390E00E944E245A94F7CFAA9463 -:104CC000F401EA0DF11D8081B70190E00E944E24AD -:104CD000A110F5CF332009F451CEB70180E290E066 -:104CE0000E944E243A94F6CFF7018681978102C044 -:104CF0008FEF9FEF2C96E2E10C945B27DC01CB0158 -:104D0000FC01F999FECF06C0F2BDE1BDF89A3196DB -:104D100000B40D9241505040B8F70895F999FECF74 -:104D200092BD81BDF89A992780B50895A8E1B0E0B9 -:104D300042E050E00C948026DC01A40FB51F4150E6 -:104D4000504048F0CB01840F951F2E910E94AD2654 -:104D500041505040D0F70895262FF999FECF92BDCB -:104D600081BDF89A019700B4021631F020BD0FB64C -:104D7000F894FA9AF99A0FBE08950196272F0E9487 -:104D8000AD260C94AC26FC010590615070400110DA -:104D9000D8F7809590958E0F9F1F0895FC01615064 -:104DA000704001900110D8F7809590958E0F9F1F4D -:104DB0000895FA01AA27283051F1203181F1E894B1 -:104DC0006F936E7F6E5F7F4F8F4F9F4FAF4FB1E0FE -:104DD0003ED0B4E03CD0670F781F891F9A1FA11DF9 -:104DE000680F791F8A1F911DA11D6A0F711D811DFA -:104DF000911DA11D20D009F468943F912AE0269FBF -:104E000011243019305D3193DEF6CF010895462F1D -:104E10004770405D4193B3E00FD0C9F7F6CF462FFE -:104E20004F70405D4A3318F0495D31FD4052419367 -:104E300002D0A9F7EACFB4E0A69597958795779524 -:104E40006795BA95C9F700976105710508959B01AB -:104E5000AC010A2E06945795479537952795BA9534 -:104E6000C9F7620F731F841F951FA01D0895B7FF18 -:104E70000C94DC210E94DC21821B930B08952F925D -:104E80003F924F925F926F927F928F929F92AF92DA -:104E9000BF92CF92DF92EF92FF920F931F93CF9327 -:104EA000DF93CDB7DEB7CA1BDB0B0FB6F894DEBFBE -:104EB0000FBECDBF09942A88398848885F846E84E4 -:104EC0007D848C849B84AA84B984C884DF80EE802E -:104ED000FD800C811B81AA81B981CE0FD11D0FB637 -:104EE000F894DEBF0FBECDBFED010895F894FFCF5B -:104EF0003FC8000000320000005E010000FEFFFF1E -:104F00000A0A0A0A6E2F020057494445320001007E -:104F100057494445310041505A4D444D4E4F43414D -:104F20004C4C0101010101010000CA0620000100F2 -:024F300000007F -:00000001FF diff --git a/precompiled/microaprs-5v-kiss-latest.hex b/precompiled/microaprs-5v-kiss-latest.hex deleted file mode 100644 index 5662f00..0000000 --- a/precompiled/microaprs-5v-kiss-latest.hex +++ /dev/null @@ -1,378 +0,0 @@ -:100000000C9474010C9491010C9491010C94910145 -:100010000C9491010C9491010C9491010C94910118 -:100020000C9491010C9491010C9491010C94910108 -:100030000C9491010C9491010C9491010C949101F8 -:100040000C9491010C9491010C9491010C949101E8 -:100050000C9491010C94F6060C9491010C9491016E -:100060000C9491010C949101808183848687898A04 -:100070008C8E8F9192949597989A9B9D9EA0A2A307 -:10008000A5A6A7A9AAACADAFB0B2B3B5B6B7B9BA79 -:10009000BCBDBEC0C1C2C4C5C6C8C9CACBCDCECF07 -:1000A000D0D2D3D4D5D6D7D9DADBDCDDDEDFE0E1C0 -:1000B000E2E3E4E5E6E7E8E9EAEAEBECEDEEEEEFB1 -:1000C000F0F1F1F2F3F3F4F5F5F6F6F7F8F8F9F9E3 -:1000D000FAFAFAFBFBFCFCFCFDFDFDFDFEFEFEFE5C -:1000E000FEFFFFFFFFFFFFFF0000891112239B327D -:1000F0002446AD573665BF74488CC19D5AAFD3BEF8 -:100100006CCAE5DB7EE9F7F88110080193331A2207 -:10011000A5562C47B7753E64C99C408DDBBF52AED7 -:10012000EDDA64CBFFF976E802218B3010029913E7 -:100130002667AF763444BD554AADC3BC588ED19FB7 -:100140006EEBE7FA7CC8F5D983310A2091121803C7 -:10015000A7772E66B5543C45CBBD42ACD99E508F97 -:10016000EFFB66EAFDD874C904428D5316619F7097 -:100170002004A9153227BB364CCEC5DF5EEDD7FC77 -:100180006888E1997AABF3BA85520C4397711E6087 -:10019000A1142805B3373A26CDDE44CFDFFD56EC57 -:1001A000E9986089FBBB72AA06638F7214409D5167 -:1001B0002225AB343006B9174EEFC7FE5CCCD5DD37 -:1001C0006AA9E3B8788AF19B87730E6295501C4147 -:1001D000A3352A24B1163807CFFF46EEDDDC54CD17 -:1001E000EBB962A8F99A708B088481951AA793B627 -:1001F0002CC2A5D33EE1B7F04008C919522BDB3A17 -:10020000644EED5F766DFF7C899400859BB712A6E6 -:10021000ADD224C3BFF136E0C1184809D33B5A2AF6 -:10022000E55E6C4FF77D7E6C0AA583B418869197C6 -:100230002EE3A7F23CC0B5D14229CB38500AD91BD6 -:10024000666FEF7E744CFD5D8BB502A499961087A6 -:10025000AFF326E2BDD034C1C3394A28D11A580BB6 -:10026000E77F6E6EF55C7C4D0CC685D71EE597F476 -:100270002880A1913AA3B3B2444ACD5B5669DF7896 -:10028000600CE91D722FFB3E8DD604C79FF516E466 -:10029000A9902081BBB332A2C55A4C4BD7795E6876 -:1002A000E11C680DF33F7A2E0EE787F61CC495D546 -:1002B0002AA1A3B03882B193466BCF7A5448DD5956 -:1002C000622DEB3C700EF91F8FF706E69DD414C526 -:1002D000ABB122A0B9923083C77B4E6AD5585C4936 -:1002E000E33D6A2CF11E780F11241FBECFEFD8E03A -:1002F000DEBFCDBF11E0A0E0B1E0EEE6F7E102C065 -:1003000005900D92A231B107D9F718E0A2E1B1E052 -:1003100001C01D92A434B107E1F70E94700A0C9449 -:10032000B50B0C9400000C94C60878948CE294E011 -:100330000E94120323E931E04CE254E0BA018CE060 -:1003400095E00E948F078EEF94E00E94C701EEE3D4 -:10035000F8E08EEF94E09383828391838083AC01F5 -:100360006CE274E08CE095E00C94B7089091C000CA -:1003700095FFFCCF8093C60081E090E008958091C6 -:10038000C00087FFFCCF8091C60090E00895CF9316 -:10039000DF93CDB7DEB72E970FB6F894DEBF0FBE52 -:1003A000CDBFDC018EE0FD01982F11929A95E9F7FF -:1003B0001092C50097E69093C400E0ECF0E09081C5 -:1003C0009D7F908396E09093C20098E19093C10046 -:1003D0009E012F5F3F4FF90111928A95E9F783E063 -:1003E0008C8386EB91E09A8789878FEB91E09C87DD -:1003F0008B879EE0F90101900D929A95E1F72E9678 -:100400000FB6F894DEBF0FBECDBFDF91CF91089538 -:10041000811106C08091C000881F8827881F089519 -:1004200080E008958091C00087FF03C08091C600DE -:1004300008958FEF08950F931F93CF93DF93182F95 -:10044000C0913308D0913408FE01E659FF4F8081F6 -:10045000811126C080E490E098A38F8F1E8E1D8EA0 -:100460001C8E01E0008331960083299A20910901B6 -:1004700030910A0140910B0150910C01A0EBB4E0C6 -:100480000E948F0A6056704F8F4F9F4F20E43FE1CC -:1004900040E050E00E949A0A3D8B2C8B00931301A0 -:1004A0000FB7F894209105013091060140910701A2 -:1004B00050910801A0EBB4E00E948F0A6056704F83 -:1004C0008F4F9F4F20E43FE140E050E00E949A0AA6 -:1004D0003F8B2E8B0FBFE0913308F09134084FB75C -:1004E000F89426A137A182A193A12817390739F4DE -:1004F00020A531A584A195A12817390779F060A519 -:1005000071A526A137A12150310991E080E0621741 -:10051000730709F090E0292F382F02C021E030E066 -:100520004FBF232BC1F6E0913308F09134082FB769 -:10053000F894A0A5B1A51C9340A551A584A195A1AF -:100540004817590719F482A193A103C080A591A56A -:10055000019691A780A72FBF81E090E0DF91CF9116 -:100560001F910F910895E0913308F09134084FB72F -:10057000F894E758FF4F24813581868197814FBFDA -:1005800028173907E9F0E0913308F09134089FB754 -:10059000F894E758FF4FA481B58122813381A217D7 -:1005A000B30719F42081318105C0A481B5819D0173 -:1005B0002F5F3F4F358324838C919FBF90E0089538 -:1005C0008FEF9FEF089581E080931201089581E0FD -:1005D000809312011092800089E18093810081E86C -:1005E00096E0909387008093860080911201882383 -:1005F00021F080E480937C0002C010927C00389847 -:10060000409880917E00816080937E0087E0809397 -:100610007B008CEE80937A008AB1886F8AB9219A28 -:10062000229A08950F931F93CF93DF93CDB7DEB730 -:100630002E970FB6F894DEBF0FBECDBF8C018EECA7 -:10064000D8011D928A95E9F7109334080093330876 -:1006500080E490E0F80190A3878F11A2C8018C5824 -:100660009F4FE459FF4F91838083978386839583BF -:1006700084830496938382830996D801A758BF4F39 -:1006800011969C938E9317969C938E93169715961E -:100690009C938E931497CF9613969C938E93129758 -:1006A00086599109D80193969C938E939297999627 -:1006B0009C938E93989797969C938E939697CF96AC -:1006C00095969C938E93949784E090E0A681B78151 -:1006D0001C9246815781228133814217530719F4B6 -:1006E0002081318104C0268137812F5F3F4F3783BE -:1006F0002683019759F70E94E7028EE0FE013196AA -:10070000DF01982F1D929A95E9F793E09C832BE1E6 -:1007100032E03A87298723EB32E03C872B87D801E8 -:1007200001900D928A95E1F72E960FB6F894DEBFF0 -:100730000FBECDBFDF91CF911F910F9108950F9301 -:100740001F93CF93DF93E0913308F091340820A5F5 -:1007500031A537A326A3EC018C01060F171FC01784 -:10076000D10731F060E070E089910E941B02F7CF61 -:10077000DF91CF911F910F910895DC0158968C91D4 -:1007800058978111F8C05A968C915A978111AEC032 -:1007900096964D915C91979798962D913C9199974B -:1007A0004217530779F456962D913C915797232B76 -:1007B00049F410921301FD01E659FF4F1082A5592B -:1007C000BF4F68C05B969C915B97911103C05C968C -:1007D0001C925C9791E05B969C935B9754962D914D -:1007E0003C91559721153105B9F596964D915C913F -:1007F000979798962D913C9199974217530779F4C2 -:10080000FD01E559FF4F108256962D913C91579767 -:100810002150310957963C932E93569723C09696B4 -:10082000ED91FC91979794962D913C919597E217B5 -:10083000F30729F492962D913C91939707C09696D1 -:10084000ED91FC9197979F012F5F3F4F97963C93B7 -:100850002E939697908107C02150310955963C936D -:100860002E9354979EE759969C93599759969C912D -:1008700059979B3189F596964D915C9197979896EB -:100880002D913C9199974217530739F41092130117 -:10089000A659BF4F1C92299808959696ED91FC9108 -:1008A000979794968D919C919597E817F90729F45D -:1008B00092968D919C91939706C09696ED91FC919E -:1008C0009797CF01019697969C938E9396978081E8 -:1008D00059968C93599706C09E57923018F45B96A0 -:1008E0001C925B9781E05A968C935A975B968C91F9 -:1008F0005B975F962D913C9190978823A9F05C9629 -:100900008C915C97853080F05C961C925C972034CB -:10091000310519F080E490E002C085E790E0909600 -:100920009C938E935F9723C05A968C915A975996B1 -:100930009C915997982341F05C969C915C979F5F9E -:100940005C969C935C970FC05C961C925C972034DD -:10095000310519F020E430E002C025E730E0909640 -:100960003C932E935F97880F5A968C935A9788E002 -:1009700058968C9358975F96ED91FC9190975D9661 -:100980008D919C915E97E80FF91F9F0131705E96E3 -:100990003C932E935D9758968C915897815058961A -:1009A0008C93FF27E038F10530F08FEF90E0AC0139 -:1009B0004E1B5F0BFA01E859FF4F84912F3F310521 -:1009C00011F008F080950895EF92FF920F931F9316 -:1009D000CF93DF93FC018C010D531F4FD8014D9134 -:1009E0005C911197129711965C934E93A555B1099E -:1009F00014968D919C91159712962D913C91139779 -:100A00008217930721F42D913C91119707C01496FA -:100A10008D919C9115979C012F5F3F4F15963C93AC -:100A20002E931497EC012881260290011124C9010C -:100A30009595879595958795E801998388837F019A -:100A4000D7ECED0EF11CE701288139818F010B53A2 -:100A50001F4FE80139832883840F951F359527950B -:100A6000820F931FE70199838883AF0147535F4F3C -:100A700021E0181619060CF420E0EA018881880F9D -:100A8000822B888316968D919C911797EC01688331 -:100A900016962D913C91179712968D919C911397D4 -:100AA0002817390721F48D919C91119705C016964E -:100AB0008D919C911797019617969C938E931697FC -:100AC000DA018C91982F9695969589278370DF018E -:100AD000A653BF4F833049F48C91803214F48F5F5A -:100AE00001C081508C9311A203C081A18F5F81A3AB -:100AF0008C91885F803414F48C936BC18F738C93CA -:100B0000DF01A553BF4F8C91880F8C93EA01988128 -:100B100097702BEF290F233010F0933011F4816080 -:100B20008C938C91982F96958927809581709685C6 -:100B3000990F892B86878E3709F052C0DF01A7589D -:100B4000BF4F14962D913C9115978D919C911197C3 -:100B50002817390759F416962D913C91179712963C -:100B60008D919C91139728173907B1F116962D9105 -:100B70003C91179714968D919C9115970197281782 -:100B8000390751F11696CD91DC9117978EE788833E -:100B900016962D913C91179712968D919C911397D3 -:100BA0002817390721F48D919C91119705C016964D -:100BB0008D919C911797019617969C938E931697FB -:100BC00091E0918B8389863020F4128A8F5F838B2A -:100BD00001C0928B81E0BFC0118A128A138ABAC009 -:100BE0008F778F3711F4118A09C08289882311F019 -:100BF0002A9A01C02A988189811103C0128A138A16 -:100C0000E8C08685982F9F739E3309F4E2C080FF69 -:100C100003C080898068808B97859F5F97878089D4 -:100C2000983008F49DC0DF01A758BF4F92E8980F95 -:100C3000923018F08B3109F046C014962D913C91FA -:100C400015978D919C9111972817390759F416968D -:100C50002D913C91179712968D919C91139728177F -:100C6000390759F116962D913C91179714968D914D -:100C70009C911597019728173907F9F01696CD9191 -:100C8000DC9117978BE1888316962D913C911797ED -:100C900012968D919C9113972817390721F48D9105 -:100CA0009C91119705C016968D919C91179701966E -:100CB00017969C938E93169706C0118A128A138AF0 -:100CC0002A9880E001C081E014964D915C911597BF -:100CD0002D913C9111974217530759F416964D9157 -:100CE0005C91179712962D913C91139742175307D9 -:100CF00069F116964D915C91179714962D913C9140 -:100D00001597215031094217530701F19089169622 -:100D1000CD91DC911797988316964D915C9117971A -:100D200012962D913C9113974217530721F42D9160 -:100D30003C91119706C016962D913C9117972F5F05 -:100D40003F4F17963C932E93169705C0118A128A2F -:100D5000138A2A9880E0108A1786882321F039C0E8 -:100D60008695808B36C0EF01C453DF4F888199810F -:100D7000816099838883DF01A758BF4F14962D9116 -:100D80003C9115978D919C9111972817390759F42B -:100D900016962D913C91179712968D919C911397D1 -:100DA0002817390761F016962D913C9117971496E4 -:100DB0008D919C91159701972817390751F4169634 -:100DC0008D919C91179715969C938E9314971982E9 -:100DD000188281A1813618F011A2128A2A98DF9117 -:100DE000CF911F910F91FF90EF9008951F920F9256 -:100DF0000FB60F9211242F933F934F935F936F93EE -:100E00007F938F939F93AF93BF93EF93FF9380E272 -:100E100086BB60917800709179007695679576959C -:100E20006795605880913308909134080E94E404DB -:100E300080911301882349F0809133089091340800 -:100E40000E94BD03807F886001C080E88BB98091DB -:100E5000FA049091FB04A091FC04B091FD0401966A -:100E6000A11DB11D8093FA049093FB04A093FC0490 -:100E7000B093FD04FF91EF91BF91AF919F918F913E -:100E80007F916F915F914F913F912F910F900FBE86 -:100E90000F901F901895CF92DF92EF92FF920F93D1 -:100EA0001F93CF93DF931F92CDB7DEB77C01262F20 -:100EB00082E8860F8701065E1C4F823010F06B318E -:100EC00049F4F801608171818BE190E029830E94EF -:100ED000560B2981D701A05EBC4F3C9111964C91D5 -:100EE0001197822F90E0FC01E327EE0FFF1FE851DE -:100EF000FF4F25913491C42ED12C2C253D252D93C7 -:100F00003C93F801608171810F90DF91CF911F9127 -:100F10000F91FF90EF90DF90CF900C94560BCF93F2 -:100F2000DF93E7E2F3E0DC01EF011D922197E9F79F -:100F3000FC01E65EFC4F51834083329771836083EE -:100F40003A963183208332972FEF3FEF318320830E -:100F5000329731832083389681E08083DF91CF916F -:100F600008953F924F925F926F927F928F929F92DD -:100F7000AF92BF92CF92DF92EF92FF920F931F93A7 -:100F8000CF93DF932C013C0126EE621A2CEF720AFC -:100F90006C014BEDC41A4CEFD40AEC01CC5DDC4F74 -:100FA0008C01045E1C4F7C0182EEE81A8CEFF80A7B -:100FB00033243394AA24AA94BA2C4201AEED8A1A9F -:100FC000ACEF9A0AF301808191810E94180B8F3F48 -:100FD000FFEF9F0709F459C0F6012081211129C0B4 -:100FE0008E379105D9F4D8018D919C91429770F07C -:100FF000F70180819181883B904F41F42A9AD40176 -:10100000ED91FC91309711F0C20109953882F701FA -:10101000B182A082D8011D921C92D4CF8F37910546 -:1010200011F41882CFCF8B31910519F4F60130827B -:10103000C9CF2881222331F1D8012D913C9128314B -:10104000B3E03B07F0F4A9014F5F5F4FF801518314 -:101050004083F201E20FF31F8083D7012D913C9171 -:10106000F901E827FF27EE0FFF1FE851FF4F859199 -:101070009491232F332782279327F701918380832D -:1010800001C01882D6011C929DCFDF91CF911F9194 -:101090000F91FF90EF90DF90CF90BF90AF909F9017 -:1010A0008F907F906F905F904F903F9008956F92D8 -:1010B0007F928F929F92AF92BF92CF92DF92EF92E8 -:1010C000FF920F931F93CF93DF93EC013B014A01F3 -:1010D0007C018AEDE81A8CEFF80AF70110825E01B4 -:1010E000F0EEAF1AFCEFBF0A8FEF9FEFF50191838F -:1010F00080836E01F6EECF1AFCEFDF0AF601608105 -:1011000071818EE790E00E94560B8301860C971C3C -:101110000815190539F0F80161918F01CE010E947F -:101120004B07F6CFF501608111816095CE010E94D9 -:101130004B07612F6095CE010E944B07F60160813D -:1011400071818EE790E00E94560B81E0F701808369 -:10115000DF91CF911F910F91FF90EF90DF90CF9093 -:10116000BF90AF909F908F907F906F9008959093D5 -:101170003808809337085093FF044093FE0470931F -:101180003A0860933908109236080895EF92FF925A -:101190000F931F93CF93DF93EC016091FE04709146 -:1011A000FF0480EC90E00E94560B6091FE04709169 -:1011B000FF0480E090E00E94560B8E017E0184EED9 -:1011C000E81A8CEFF80AF7012081318122503109A9 -:1011D0006091FE047091FF04C8018C1B9D0B821767 -:1011E000930708F5F80181918F01803C59F48BED4C -:1011F00090E00E94560B6091FE047091FF048CED0C -:1012000090E00EC08B3D59F48BED90E00E94560BA0 -:101210006091FE047091FF048DED90E001C090E0BC -:101220000E94560BD0CF80EC90E0DF91CF911F91C0 -:101230000F91FF90EF900C94560B4F925F926F922C -:101240007F928F929F92AF92BF92EF92FF920F93F5 -:101250001F93CF93DF93EC018B017A01E091390862 -:10126000F0913A088289811138C00E94080B909150 -:101270000001891730F4A701B801CE010E94570878 -:1012800046C08FB7F8948090FA049090FB04A09029 -:10129000FC04B090FD048FBF209101013091020148 -:1012A0004091030150910401AAE0B0E00E948F0A2E -:1012B0002FB7F8944090FA045090FB046090FC041F -:1012C0007090FD042FBF481859086A087B0846161D -:1012D00057066806790664F3C1CFE0913908F091AA -:1012E0003A088189882309F4B9CF80913708909111 -:1012F00038080E94B107E0913908F0913A08E453A8 -:10130000FF4F80819181892B41F31182108280915E -:1013100036088823A1F1CA5DDC4F8881811101C0A4 -:10132000FFCF6091FE047091FF0480EC90E00E947A -:10133000560B6091FE047091FF048FE090E00E94D4 -:10134000560B6091FE047091FF0481E090E00E94D2 -:10135000560B6091FE047091FF0480EC90E0DF91E9 -:10136000CF911F910F91FF90EF90BF90AF909F9002 -:101370008F907F906F905F904F900C94560BDF9101 -:10138000CF911F910F91FF90EF90BF90AF909F90E2 -:101390008F907F906F905F904F90089590913B0851 -:1013A0009923A1F0803C01F580910D01811111C0BC -:1013B00010923B0840913C0850913D0864E171E077 -:1013C00080913708909138080C941D09803C09F0F1 -:1013D00086C081E080933B088EEF80930D011092D0 -:1013E0003D0810923C08089520913C0830913D083A -:1013F000283193E0390708F072C090910D01211552 -:10140000310531F49E3F21F48F7080930D010895D2 -:1014100091111FC08B3D21F481E080933508089520 -:1014200090913508992349F08C3D21F08D3D19F4B8 -:101430008BED01C080EC10923508A9014F5F5F4F22 -:1014400050933D0840933C08F901EC5EFE4F8083C9 -:101450000895913079F4282F30E0AAE0B0E00E949E -:10146000800A6093090170930A0180930B019093A5 -:101470000C010895943089F42AE0829FC001112460 -:10148000AA2797FDA095BA2F809305019093060196 -:10149000A0930701B09308010895933089F42AE0DE -:1014A000829FC0011124AA2797FDA095BA2F80938F -:1014B000010190930201A0930301B09304010895E8 -:1014C000923019F48093000108959F3041F4811106 -:1014D00003C010923608089581E08093360808957D -:1014E0000E9495018CE095E00E94B10780E00E9487 -:1014F00008028823B9F30E9412020E94CE09F2CF9B -:10150000A29FB001B39FC001A39F700D811D112444 -:10151000911DB29F700D811D1124911D08950E948F -:10152000800AA59F900DB49F900DA49F800D911DE2 -:1015300011240895A1E21A2EAA1BBB1BFD010DC0A8 -:10154000AA1FBB1FEE1FFF1FA217B307E407F50773 -:1015500020F0A21BB30BE40BF50B661F771F881F4F -:10156000991F1A9469F760957095809590959B01E5 -:10157000AC01BD01CF0108958F929F92AF92BF92AF -:10158000CF92DF92EF92FF92CF93DF93EC016881CD -:1015900079818A819B81611571058105910521F40D -:1015A00064E279ED8BE597E02DE133EF41E050E027 -:1015B0000E94960B49015A019B01AC01A7EAB1E4D4 -:1015C0000E948F0A6B017C01ACEEB4EFA50194017F -:1015D0000E94910BDC01CB018C0D9D1DAE1DBF1D2A -:1015E000B7FF03C00197A109B04888839983AA83F4 -:1015F000BB839F77DF91CF91FF90EF90DF90CF90EB -:10160000BF90AF909F908F9008950E94BC0A08955C -:101610008EE091E00E94BC0A0895A0E0B0E08093C3 -:101620000E0190930F01A0931001B0931101089542 -:10163000CF93DF93EC012B8120FF33C026FF0AC03C -:101640002F7B2B838E819F8101969F838E838A813E -:1016500090E029C022FF0FC0E881F981808199279D -:1016600087FD9095009719F420622B831AC031965C -:10167000F983E8830EC0EA85FB85099597FF09C0C9 -:101680002B81019611F080E201C080E1822B8B83D7 -:1016900008C02E813F812F5F3F4F3F832E839927C4 -:1016A00002C08FEF9FEFDF91CF9108950F931F93AB -:1016B000CF93DF93FB01238121FD03C08FEF9FEFC9 -:1016C00028C022FF16C046815781248135814217E8 -:1016D000530744F4A081B1819D012F5F3F4F3183B7 -:1016E00020838C93268137812F5F3F4F378326835A -:1016F00010C0EB01092F182F0084F185E02D09950A -:10170000892BE1F68E819F8101969F838E83812FA5 -:10171000902FDF91CF911F910F910895B7FF0C94F7 -:101720008F0A0E948F0A821B930B0895052E97FB48 -:101730001EF400940E94AD0B57FD07D00E949A0A38 -:1017400007FC03D04EF40C94AD0B509540953095AA -:1017500021953F4F4F4F5F4F08959095809570951D -:0E17600061957F4F8F4F9F4F0895F894FFCFF4 -:10176E003FC8000000320000005E010000FE0100D4 -:02177E00000069 -:00000001FF diff --git a/precompiled/microaprs-5v-ss-latest.hex b/precompiled/microaprs-5v-ss-latest.hex deleted file mode 100644 index ff68772..0000000 --- a/precompiled/microaprs-5v-ss-latest.hex +++ /dev/null @@ -1,1270 +0,0 @@ -:100000000C945E070C947B070C947B070C947B0785 -:100010000C947B070C947B070C947B070C947B0758 -:100020000C947B070C947B070C947B070C947B0748 -:100030000C947B070C947B070C947B070C947B0738 -:100040000C947B070C947B070C947B070C947B0728 -:100050000C947B070C94E90C0C947B070C947B07A5 -:100060000C947B070C947B07808183848687898A24 -:100070008C8E8F9192949597989A9B9D9EA0A2A307 -:10008000A5A6A7A9AAACADAFB0B2B3B5B6B7B9BA79 -:10009000BCBDBEC0C1C2C4C5C6C8C9CACBCDCECF07 -:1000A000D0D2D3D4D5D6D7D9DADBDCDDDEDFE0E1C0 -:1000B000E2E3E4E5E6E7E8E9EAEAEBECEDEEEEEFB1 -:1000C000F0F1F1F2F3F3F4F5F5F6F6F7F8F8F9F9E3 -:1000D000FAFAFAFBFBFCFCFCFDFDFDFDFEFEFEFE5C -:1000E000FEFFFFFFFFFFFFFF0000891112239B327D -:1000F0002446AD573665BF74488CC19D5AAFD3BEF8 -:100100006CCAE5DB7EE9F7F88110080193331A2207 -:10011000A5562C47B7753E64C99C408DDBBF52AED7 -:10012000EDDA64CBFFF976E802218B3010029913E7 -:100130002667AF763444BD554AADC3BC588ED19FB7 -:100140006EEBE7FA7CC8F5D983310A2091121803C7 -:10015000A7772E66B5543C45CBBD42ACD99E508F97 -:10016000EFFB66EAFDD874C904428D5316619F7097 -:100170002004A9153227BB364CCEC5DF5EEDD7FC77 -:100180006888E1997AABF3BA85520C4397711E6087 -:10019000A1142805B3373A26CDDE44CFDFFD56EC57 -:1001A000E9986089FBBB72AA06638F7214409D5167 -:1001B0002225AB343006B9174EEFC7FE5CCCD5DD37 -:1001C0006AA9E3B8788AF19B87730E6295501C4147 -:1001D000A3352A24B1163807CFFF46EEDDDC54CD17 -:1001E000EBB962A8F99A708B088481951AA793B627 -:1001F0002CC2A5D33EE1B7F04008C919522BDB3A17 -:10020000644EED5F766DFF7C899400859BB712A6E6 -:10021000ADD224C3BFF136E0C1184809D33B5A2AF6 -:10022000E55E6C4FF77D7E6C0AA583B418869197C6 -:100230002EE3A7F23CC0B5D14229CB38500AD91BD6 -:10024000666FEF7E744CFD5D8BB502A499961087A6 -:10025000AFF326E2BDD034C1C3394A28D11A580BB6 -:10026000E77F6E6EF55C7C4D0CC685D71EE597F476 -:100270002880A1913AA3B3B2444ACD5B5669DF7896 -:10028000600CE91D722FFB3E8DD604C79FF516E466 -:10029000A9902081BBB332A2C55A4C4BD7795E6876 -:1002A000E11C680DF33F7A2E0EE787F61CC495D546 -:1002B0002AA1A3B03882B193466BCF7A5448DD5956 -:1002C000622DEB3C700EF91F8FF706E69DD414C526 -:1002D000ABB122A0B9923083C77B4E6AD5585C4936 -:1002E000E33D6A2CF11E780F2D2D2D2D2D2D2D2D5A -:1002F0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2E -:100300002D2D2D2D2D2D2D2D2D2D0A004820202079 -:100310002020202020205072696E7420636F6E664A -:10032000696775726174696F6E0A0043202020202E -:100330002020202020436C65617220636F6E666907 -:100340006775726174696F6E0A004C20202020204E -:10035000202020204C6F616420636F6E6669677592 -:10036000726174696F6E0A005320202020202020C3 -:1003700020205361766520636F6E666967757261D0 -:1003800074696F6E0A00573C5858583E2020202050 -:10039000536574207472616E736D697373696F6EE7 -:1003A000207461696C2074696D6520696E206D73BD -:1003B0000A00773C5858583E20202020536574206E -:1003C000707265616D626C652074696D6520696E1F -:1003D000206D730A00563C312F303E2020202053E0 -:1003E000696C656E74206D6F6465206F6E2F6F662B -:1003F000660A0A00763C312F303E202020205665C8 -:1004000072626F7365206D6F6465206F6E2F6F660B -:10041000660A0070693C312F303E202020507269FE -:100420006E7420494E464F206F6E2F6F66660A0A23 -:1004300000706D3C312F303E2020205072696E7468 -:100440002044415441206F6E2F6F66660A00707021 -:100450003C312F303E2020205072696E7420504174 -:100460005448206F6E2F6F66660A0070643C312F0F -:10047000303E2020205072696E7420445354206F07 -:100480006E2F6F66660A0070733C312F303E20205D -:10049000205072696E7420535243206F6E2F6F6626 -:1004A000660A006D613C312F303E2020204175747A -:1004B0006F6D61746963206D657373616765204159 -:1004C000434B206F6E2F6F66660A0A006D723C7395 -:1004D0007369643E20205265747279206C61737474 -:1004E000206D6573736167650A006D733C73736992 -:1004F000643E2020536574206D65737361676520C9 -:10050000726563697069656E7420535349440A00CB -:100510006D633C63616C6C3E2020536574206D6597 -:10052000737361676520726563697069656E7420B5 -:1005300063616C6C7369676E0A006C743C732F6145 -:100540003E20202053656C6563742073796D626F63 -:100550006C207461626C6520287374616E646172D2 -:10056000642F616C7465726E617465290A0A006C8F -:10057000733C73796D3E20202053656C6563742055 -:1005800073796D626F6C0A006C643C302D393E20CB -:10059000202053657420616E74656E6E61206469FD -:1005A00072656374697669747920696E666F0A0092 -:1005B0006C673C302D393E20202053657420616EDD -:1005C00074656E6E61206761696E20696E666F0A80 -:1005D000006C683C302D393E20202053657420612A -:1005E0006E74656E6E612068656967687420696EF7 -:1005F000666F0A006C703C302D393E202020536518 -:100600007420545820706F77657220696E666F0A87 -:10061000006C6C6F3C4C4F4E3E2020536574206C38 -:100620006174697475646520284E4D45412D666F6F -:10063000726D61742C2065672030373230312E376F -:100640003557290A006C6C613C4C41543E202053C4 -:100650006574206C6174697475646520284E4D451D -:10066000412D666F726D61742C20656720343930BE -:10067000332E35304E290A0073323C737369643E61 -:10068000202053657420504154483220535349442C -:100690000A0A0073313C737369643E202053657409 -:1006A00020504154483120535349440A0073643C5C -:1006B000737369643E2020536574206465737469A4 -:1006C0006E6174696F6E20535349440A0073633C32 -:1006D000737369643E202053657420796F757220AE -:1006E000535349440A00323C63616C6C3E20202025 -:1006F0005365742050415448322063616C6C7369B7 -:10070000676E0A0A00313C63616C6C3E2020205306 -:1007100065742050415448312063616C6C73696783 -:100720006E0A00643C63616C6C3E2020205365744B -:100730002064657374696E6174696F6E2063616CA7 -:100740006C7369676E0A00633C63616C6C3E2020C9 -:100750002053657420796F75722063616C6C7369C6 -:10076000676E0A00233C6D73673E2020202053658E -:100770006E642041505253206D6573736167650A42 -:100780000A00403C636D743E2020202053656E6457 -:10079000206C6F636174696F6E207570646174653D -:1007A0002028636D74203D206F7074696F6E616CDA -:1007B00020636F6D6D656E74290A00213C6461745D -:1007C000613E20202053656E642072617720706145 -:1007D000636B65740A0053657269616C20636F6DA9 -:1007E0006D616E64733A0A002D2D2D2D2D2D2D2D4A -:1007F0002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D29 -:100800002D2D2D2D2D2D2D2D2D2D0A0054582054FC -:1008100061696C3A20256C750A0054582050726545 -:10082000616D626C653A20256C750A0053796D62C2 -:100830006F6C3A2025630A0053796D626F6C2074E7 -:1008400061626C653A207374616E646172640A005F -:1008500053796D626F6C207461626C653A20616CD3 -:100860007465726E6174650A0044697265637469C7 -:10087000766974793A2025640A004761696E3A20E6 -:1008800025640A004865696768743A2025640A008F -:10089000506F7765723A2025640A004175746F2D98 -:1008A00061636B206D657373616765733A204F6692 -:1008B000660A004175746F2D61636B206D657373FB -:1008C000616765733A204F6E0A0050617468323A6E -:1008D00020252E36732D25640A0050617468313A44 -:1008E00020252E36732D25640A0044657374696EC5 -:1008F0006174696F6E3A20252E36732D25640A00C7 -:1009000043616C6C7369676E3A20252E36732D2512 -:10091000640A00436F6E66696775726174696F6E11 -:100920003A0A00300A004572726F723A20496E76B8 -:10093000616C696420636F6D6D616E640A0045725D -:10094000726F723A20496E76616C69642076616CD0 -:10095000756520666F72205458207461696C0A00B6 -:100960005458205461696C2073657420746F20257D -:100970006C756D730A004572726F723A20496E761B -:10098000616C69642076616C756520666F72207099 -:100990007265616D626C650A00507265616D626CB2 -:1009A000652073657420746F20256C756D730A0063 -:1009B000310A004D657373616765206175746F2D31 -:1009C00061636B2064697361626C65640A00310A5B -:1009D000004D657373616765206175746F2D616388 -:1009E0006B20656E61626C65640A00310A005265B5 -:1009F0007472696564206C617374206D65737361D2 -:100A000067650A00310A000A002D25640A004D6559 -:100A1000737361676520726563697069656E743AA6 -:100A200020252E367300310A000A002D25640A00A5 -:100A30004D65737361676520726563697069656E82 -:100A4000743A20252E367300310A0053656C6563B5 -:100A5000746564207374616E646172642073796D6F -:100A6000626F6C207461626C650A0053656C65632B -:100A700074656420616C7465726E6174652073794D -:100A80006D626F6C207461626C650A0053796D62EF -:100A90006F6C2073657420746F2025630A004469AD -:100AA0007265637469766974792073657420746FF4 -:100AB0002025646465670A00446972656374697619 -:100AC0006974792073657420746F206F6D6E690A84 -:100AD00000310A00310A004761696E207365742095 -:100AE000746F20256464420A00310A00416E746507 -:100AF0006E6E612068656967687420736574207420 -:100B00006F20256C646D204141540A00310A005069 -:100B10006F7765722073657420746F202564770A7F -:100B200000310A004C6F6E677469747564652073D8 -:100B3000657420746F20252E39730A00310A004C29 -:100B4000617469747564652073657420746F202501 -:100B50002E38730A0053696C656E74206D6F64657E -:100B60002064697361626C65640A0053696C656E28 -:100B700074206D6F646520656E61626C65640A0047 -:100B8000566572626F7365206D6F6465206469736A -:100B900061626C65640A00566572626F7365206DF0 -:100BA0006F646520656E61626C65640A00310A00DD -:100BB0005072696E7420494E464F206469736162B9 -:100BC0006C65640A00310A005072696E7420494EE7 -:100BD000464F20656E61626C65640A00310A005000 -:100BE00072696E7420444154412064697361626C7F -:100BF00065640A00310A005072696E7420444154E1 -:100C00004120656E61626C65640A00310A005072B1 -:100C1000696E7420504154482064697361626C6548 -:100C2000640A00310A005072696E742050415448C1 -:100C300020656E61626C65640A00310A0050726959 -:100C40006E74204453542064697361626C65640A55 -:100C500000310A005072696E742044535420656E4E -:100C600061626C65640A00310A005072696E74201A -:100C70005352432064697361626C65640A00310AEF -:100C8000005072696E742053524320656E61626C2D -:100C900065640A00310A0050617468323A20252EDA -:100CA00036732D25640A00310A0050617468313AA8 -:100CB00020252E36732D25640A00310A0044657301 -:100CC00074696E6174696F6E3A20252E36732D2516 -:100CD000640A00310A0043616C6C7369676E3A20E4 -:100CE000252E36732D25640A00310A005061746880 -:100CF000323A20252E36732D25640A00310A005021 -:100D0000617468313A20252E36732D25640A00312E -:100D10000A0044657374696E6174696F6E3A2025C8 -:100D20002E36732D25640A00310A0043616C6C7302 -:100D300069676E3A20252E36732D25640A00310A24 -:100D4000004D6573736167652073656E740A0031C9 -:100D50000A004C6F636174696F6E20757064617412 -:100D6000652073656E740A00310A005061636B651B -:100D7000742073656E740A000D0A00444154413AB0 -:100D800020005B252E36732D25645D2000504154D4 -:100D9000483A20005B252E36732D25645D200044E3 -:100DA00053543A20005B252E36732D25645D2000B8 -:100DB0005352433A2000310A00436F6E66696775EB -:100DC000726174696F6E2073617665640A00300A1F -:100DD000004572726F723A204E6F2073746F7265A5 -:100DE0006420636F6E66696775726174696F6E20E7 -:100DF000746F206C6F6164210A00436F6E666967CF -:100E000075726174696F6E206C6F616465640A004D -:100E1000310A00436F6E66696775726174696F6E3F -:100E200020636C65617265642E2052657374617213 -:100E30007420746F206C6F61642064656661756CEA -:100E400074732E0A002D2D2D2D2D2D2D2D2D2D2D94 -:100E50002D2D2D2D0A004D6F64656D207265616426 -:100E6000790A0044656661756C7420636F6E66690B -:100E70006775726174696F6E206C6F61646564215F -:100E80000A00756E7369676E65642E696F2F6D69F0 -:100E900063726F617072730A004D6963726F4150C3 -:100EA00052532076312E30620A002D2D2D2D2D2DFE -:100EB0002D2D2D2D2D2D2D2D2D0A000011241FBE81 -:100EC000CFEFD8E0DEBFCDBF11E0A0E0B1E0E4EFAE -:100ED000FEE402C005900D92A234B107D9F716E0E6 -:100EE000A2E4B1E001C01D92AA3CB107E1F70E9463 -:100EF0006A210C9478270C9400002FB7F894609125 -:100F0000B6047091B7048091B8049091B9042FBFD2 -:100F100008950C94A614789488EE93E00E94050935 -:100F200029E837E048EE53E0BA0188EC94E00E94EB -:100F3000820D8AEB94E00E94BA07E4ECF6E08AEBBB -:100F400094E0938382839183808388EC94E00C9473 -:100F50003B139091C00095FFFCCF8093C60081E0C9 -:100F600090E008958091C00087FFFCCF8091C6007B -:100F700090E00895CF93DF93CDB7DEB72E970FB6ED -:100F8000F894DEBF0FBECDBFDC018EE0FD01982FCF -:100F900011929A95E9F71092C50097E69093C400D4 -:100FA000E0ECF0E090819D7F908396E09093C2000A -:100FB00098E19093C1009E012F5F3F4FF90111927C -:100FC0008A95E9F783E08C8389EA97E09A87898795 -:100FD00082EB97E09C878B879EE0F90101900D9250 -:100FE0009A95E1F72E960FB6F894DEBF0FBECDBFEF -:100FF000DF91CF910895811106C08091C000881FB4 -:101000008827881F089580E008958091C00087FF99 -:1010100003C08091C60008958FEF08950F931F932A -:10102000CF93DF93182FC0912106D0912206FE01A5 -:10103000E659FF4F8081811126C080E490E098A39B -:101040008F8F1E8E1D8E1C8E01E0008331960083D3 -:10105000299A2091090130910A0140910B01509188 -:101060000C01A0EBB4E00E94DE216056704F8F4F60 -:101070009F4F20E43FE140E050E00E94FD213D8B86 -:101080002C8B009393020FB7F894209105013091B7 -:1010900006014091070150910801A0EBB4E00E94C5 -:1010A000DE216056704F8F4F9F4F20E43FE140E0BC -:1010B00050E00E94FD213F8B2E8B0FBFE091210657 -:1010C000F09122064FB7F89426A137A182A193A1EF -:1010D0002817390739F420A531A584A195A128172F -:1010E000390779F060A571A526A137A121503109F2 -:1010F00091E080E06217730709F090E0292F382F04 -:1011000002C021E030E04FBF232BC1F6E091210661 -:10111000F09122062FB7F894A0A5B1A51C9340A585 -:1011200051A584A195A14817590719F482A193A14B -:1011300003C080A591A5019691A780A72FBF81E04C -:1011400090E0DF91CF911F910F910895E0912106DA -:10115000F09122064FB7F894E758FF4F248135816C -:10116000868197814FBF28173907E9F0E091210662 -:10117000F09122069FB7F894E758FF4FA481B581FC -:1011800022813381A217B30719F42081318105C070 -:10119000A481B5819D012F5F3F4F358324838C91BE -:1011A0009FBF90E008958FEF9FEF089581E08093B7 -:1011B0009202089581E0809392021092800089E16A -:1011C0008093810081E896E0909387008093860069 -:1011D00080919202882321F080E480937C0002C0F9 -:1011E00010927C003898409880917E0081608093B6 -:1011F0007E0087E080937B008CEE80937A008AB13A -:10120000886F8AB9219A229A08950F931F93CF93DA -:10121000DF93CDB7DEB72E970FB6F894DEBF0FBEC3 -:10122000CDBF8C018EECD8011D928A95E9F7109301 -:1012300022060093210680E490E0F80190A3878FB6 -:1012400011A2C8018C589F4FE459FF4F91838083AE -:1012500097838683958384830496938382830996F8 -:10126000D801A758BF4F11969C938E9317969C93C5 -:101270008E93169715969C938E931497CF961396EC -:101280009C938E93129786599109D80193969C93BB -:101290008E93929799969C938E93989797969C93FA -:1012A0008E939697CF9695969C938E93949784E081 -:1012B00090E0A681B7811C924681578122813381BB -:1012C0004217530719F42081318104C026813781E8 -:1012D0002F5F3F4F37832683019759F70E94DA0823 -:1012E0008EE0FE013196DF01982F1D929A95E9F765 -:1012F00093E09C832EE038E03A87298726EA38E09D -:101300003C872B87D80101900D928A95E1F72E96A4 -:101310000FB6F894DEBF0FBECDBFDF91CF911F9106 -:101320000F9108950F931F93CF93DF93E0912106C0 -:10133000F091220620A531A537A326A3EC018C014C -:10134000060F171FC017D10731F060E070E08991D8 -:101350000E940E08F7CFDF91CF911F910F91089552 -:10136000DC0158968C9158978111F8C05A968C914F -:101370005A978111AEC096964D915C919797989629 -:101380002D913C9199974217530779F456962D91D8 -:101390003C915797232B49F410929302FD01E65993 -:1013A000FF4F1082A559BF4F68C05B969C915B9719 -:1013B000911103C05C961C925C9791E05B969C93A4 -:1013C0005B9754962D913C91559721153105B9F5B0 -:1013D00096964D915C91979798962D913C919997FF -:1013E0004217530779F4FD01E559FF4F10825696D5 -:1013F0002D913C9157972150310957963C932E934C -:10140000569723C09696ED91FC91979794962D91BF -:101410003C919597E217F30729F492962D913C9110 -:10142000939707C09696ED91FC9197979F012F5F38 -:101430003F4F97963C932E939697908107C02150EB -:10144000310955963C932E9354979EE759969C9359 -:10145000599759969C9159979B3189F596964D913C -:101460005C91979798962D913C91999742175307C5 -:1014700039F410929302A659BF4F1C9229980895EF -:101480009696ED91FC91979794968D919C91959756 -:10149000E817F90729F492968D919C91939706C0CD -:1014A0009696ED91FC919797CF01019697969C9314 -:1014B0008E939697808159968C93599706C09E5724 -:1014C000923018F45B961C925B9781E05A968C934D -:1014D0005A975B968C915B975F962D913C91909774 -:1014E0008823A9F05C968C915C97853080F05C969F -:1014F0001C925C972034310519F080E490E002C022 -:1015000085E790E090969C938E935F9723C05A96C0 -:101510008C915A9759969C915997982341F05C96D3 -:101520009C915C979F5F5C969C935C970FC05C96C8 -:101530001C925C972034310519F020E430E002C0A1 -:1015400025E730E090963C932E935F97880F5A964C -:101550008C935A9788E058968C9358975F96ED91A4 -:10156000FC9190975D968D919C915E97E80FF91F85 -:101570009F0131705E963C932E935D9758968C91A7 -:101580005897815058968C93FF27E038F10530F03A -:101590008FEF90E0AC014E1B5F0BFA01E859FF4F53 -:1015A00084912F3F310511F008F080950895EF9256 -:1015B000FF920F931F93CF93DF93FC018C010D5388 -:1015C0001F4FD8014D915C911197129711965C9322 -:1015D0004E93A555B10914968D919C91159712962D -:1015E0002D913C9113978217930721F42D913C91F3 -:1015F000119707C014968D919C9115979C012F5FB0 -:101600003F4F15963C932E931497EC0128812602A8 -:1016100090011124C9019595879595958795E801C5 -:10162000998388837F01D7ECED0EF11CE7012881B7 -:1016300039818F010B531F4FE80139832883840FB1 -:10164000951F35952795820F931FE701998388830E -:10165000AF0147535F4F21E0181619060CF420E044 -:10166000EA018881880F822B888316968D919C9140 -:101670001797EC01688316962D913C911797129657 -:101680008D919C9113972817390721F48D919C9186 -:10169000119705C016968D919C91179701961796F4 -:1016A0009C938E931697DA018C91982F9695969528 -:1016B00089278370DF01A653BF4F833049F48C9193 -:1016C000803214F48F5F01C081508C9311A203C04B -:1016D00081A18F5F81A38C91885F803414F48C93F7 -:1016E0006BC18F738C93DF01A553BF4F8C91880F13 -:1016F0008C93EA01988197702BEF290F233010F01B -:10170000933011F481608C938C91982F9695892752 -:10171000809581709685990F892B86878E3709F081 -:1017200052C0DF01A758BF4F14962D913C911597D9 -:101730008D919C9111972817390759F416962D9180 -:101740003C91179712968D919C9113972817390702 -:10175000B1F116962D913C91179714968D919C910D -:10176000159701972817390751F11696CD91DC91FD -:1017700017978EE7888316962D913C9117971296AE -:101780008D919C9113972817390721F48D919C9185 -:10179000119705C016968D919C91179701961796F3 -:1017A0009C938E93169791E0918B8389863020F4D9 -:1017B000128A8F5F838B01C0928B81E0BFC0118A38 -:1017C000128A138ABAC08F778F3711F4118A09C031 -:1017D0008289882311F02A9A01C02A98818981116F -:1017E00003C0128A138AE8C08685982F9F739E33A0 -:1017F00009F4E2C080FF03C080898068808B9785F0 -:101800009F5F97878089983008F49DC0DF01A758B3 -:10181000BF4F92E8980F923018F08B3109F046C014 -:1018200014962D913C9115978D919C9111972817A5 -:10183000390759F416962D913C91179712968D9170 -:101840009C9113972817390759F116962D913C91C1 -:10185000179714968D919C91159701972817390722 -:10186000F9F01696CD91DC9117978BE18883169647 -:101870002D913C91179712968D919C911397281753 -:10188000390721F48D919C91119705C016968D9181 -:101890009C911797019617969C938E93169706C066 -:1018A000118A128A138A2A9880E001C081E0149676 -:1018B0004D915C9115972D913C91119742175307CB -:1018C00059F416964D915C91179712962D913C9173 -:1018D00013974217530769F116964D915C9117972C -:1018E00014962D913C9115972150310942175307B9 -:1018F00001F190891696CD91DC91179798831696F1 -:101900004D915C91179712962D913C911397421728 -:10191000530721F42D913C91119706C016962D91F5 -:101920003C9117972F5F3F4F17963C932E93169736 -:1019300005C0118A128A138A2A9880E0108A1786B5 -:10194000882321F039C08695808B36C0EF01C453BF -:10195000DF4F88819981816099838883DF01A7584F -:10196000BF4F14962D913C9115978D919C91119795 -:101970002817390759F416962D913C91179712960E -:101980008D919C9113972817390761F016962D9128 -:101990003C91179714968D919C9115970197281754 -:1019A000390751F416968D919C91179715969C9333 -:1019B0008E9314971982188281A1813618F011A292 -:1019C000128A2A98DF91CF911F910F91FF90EF908B -:1019D00008951F920F920FB60F9211242F933F93E9 -:1019E0004F935F936F937F938F939F93AF93BF9327 -:1019F000EF93FF9380E286BB60917800709179004D -:101A000076956795769567956058809121069091B7 -:101A100022060E94D70A80919302882349F0809180 -:101A20002106909122060E94B009807F886001C043 -:101A300080E88BB98091B6049091B704A091B80466 -:101A4000B091B9040196A11DB11D8093B604909385 -:101A5000B704A093B804B093B904FF91EF91BF917C -:101A6000AF919F918F917F916F915F914F913F9136 -:101A70002F910F900FBE0F901F901895CF92DF926D -:101A8000EF92FF920F931F93CF93DF931F92CDB7E7 -:101A9000DEB77C01262F82E8860F8701045B1E4F8C -:101AA000823010F06B3149F4F801608171818BE173 -:101AB00090E029830E9450242981D701AE5ABE4F5D -:101AC0003C9111964C911197822F90E0FC01E327F5 -:101AD000EE0FFF1FE851FF4F25913491C42ED12CFA -:101AE0002C253D252D933C93F801608171810F9049 -:101AF000DF91CF911F910F91FF90EF90DF90CF90EA -:101B00000C945024CF93DF93E9E5F1E0DC01EF0181 -:101B10001D922197E9F7FC01E45BFE4F518340835E -:101B20003297718360833A963183208332972FEF07 -:101B30003FEF31832083329731832083389681E0D1 -:101B40008083DF91CF9108952F923F924F925F92C1 -:101B50006F927F928F929F92AF92BF92CF92DF92BD -:101B6000EF92FF920F931F93CF93DF93CDB7DEB722 -:101B7000C155D1090FB6F894DEBF0FBECDBF8C01A1 -:101B8000845B9E4F62969FAF8EAF6297480199EA41 -:101B9000891A9EEF990A6801AAEACA1AAEEFDA0A10 -:101BA0007801B2EBEB1ABEEFFB0A5801E0EBAE1A7C -:101BB000EEEFBE0A6296EEADFFAD62978081918135 -:101BC0000E9412248F3FFFEF9F0709F408C1D40140 -:101BD0002C912111D6C08E37910509F0C6C0F701AE -:101BE00080819181429708F4B4C0D5018D919C9178 -:101BF000883B904F09F0ADC02A9AF801DE01189693 -:101C000098012A5F3F4F81918695803209F480E0E8 -:101C10008D93E217F307B9F7F801868186958F70E7 -:101C20008E87D8011796FE0131969E01295F3F4F9E -:101C30008D918695803209F480E08193E217F30755 -:101C4000B9F7F8013D96D8011D968C9186958F7055 -:101C50008F8329967FAD299760E041E050E087E0CF -:101C6000482E808180FF10C028966FAF2897299654 -:101C70007FAF2997818190E02B969FAF8EAF2B97F6 -:101C8000039709F066C042C0683071F3B7E06B9FFC -:101C90003001112481E090E0262F30E0DF01A80F11 -:101CA000B91F5C90A52DA695A03211F05A2E01C047 -:101CB000512CDC01A60DB71D22242394312C2C0EAF -:101CC0003D1EA20DB31D1D965C92019687309105B5 -:101CD00029F737965080429EC001439E900D1124F3 -:101CE000820D931DA52DA695AF707A2EDC0154961A -:101CF0007C92CA0101C0880F2A95EAF757FE02C0FC -:101D0000782B02C0809578236F5FABCF82812C96B1 -:101D10008FAF2C97803FE9F43396D7018D919C913A -:101D2000029798012E1B3F0B820F931F60969FAF67 -:101D30008EAF60972E96FFAFEEAF2E97F801EC5A5C -:101D4000FE4F0190F081E02D309719F0CE01019601 -:101D5000099581E0F60180838FEF9FEFD5018D9388 -:101D60009C93F7011182108225CF8F37910511F4D2 -:101D7000D60133C08B31910521F481E0F4018083D9 -:101D800019CFD6012C91222339F1F701208131811D -:101D90002A34F1E03F07F0F4A9014F5F5F4FD7010C -:101DA0004D935C93F801E20FF31F8083F5012081CE -:101DB0003181F901E827FF27EE0FFF1FE851FF4FA0 -:101DC00085919491232F332728273927D5012D93E7 -:101DD0003C9302C0F6011082D4011C92EBCECF5A84 -:101DE000DF4F0FB6F894DEBF0FBECDBFDF91CF91AE -:101DF0001F910F91FF90EF90DF90CF90BF90AF9029 -:101E00009F908F907F906F905F904F903F902F901A -:101E100008956F927F928F929F92AF92BF92CF92CE -:101E2000DF92EF92FF920F931F93CF93DF93EC011A -:101E30003B014A017C0188EAE81A8EEFF80AF701B3 -:101E400010825E01FEEAAF1AFEEFBF0A8FEF9FEF2E -:101E5000F501918380836E01F4EBCF1AFEEFDF0A68 -:101E6000F601608171818EE790E00E945024830129 -:101E7000860C971C0815190539F0F80161918F013E -:101E8000CE010E943E0DF6CFF50160811181609573 -:101E9000CE010E943E0D612F6095CE010E943E0D45 -:101EA000F601608171818EE790E00E94502481E00C -:101EB000F7018083DF91CF911F910F91FF90EF90F9 -:101EC000DF90CF90BF90AF909F908F907F906F905A -:101ED00008952F923F924F925F926F927F928F92CE -:101EE0009F92AF92BF92CF92DF92EF92FF920F93A9 -:101EF0001F93CF93DF93CDB7DEB729970FB6F89432 -:101F0000DEBF0FBECDBF998788876B014A012C8346 -:101F10003D835C018EEAA81A8EEFB80A8FEF9FEF1F -:101F2000F5019183808328843984F4EB2F1AFEEF26 -:101F30003F0AF101608171818EE790E00E94502498 -:101F40007601C12CD12CC40101979B838A83C814CC -:101F5000D90409F457C091E09983EA81FB81CE1638 -:101F6000DF0609F01982F70101900020E9F73197A7 -:101F70003F016E187F08F7E06F16710418F086E0D5 -:101F8000682E712C9701260D371D27014216530626 -:101F900089F0F20181912F0190E02E833F830E940E -:101FA000F923682F660F888599850E943E0D3F8131 -:101FB0002E81ECCFF6E06F16710489F4898180667A -:101FC000F7016681660F682B888599850E943E0D12 -:101FD000FFEFCF1ADF0A87E0E80EF11CB8CF412CE3 -:101FE000512CE6E0F0E0E619F7093F0146145704EA -:101FF00028F760E4888599850E943E0D9FEF491A75 -:10200000590AF4CF63E0888599850E943E0D60EF00 -:10201000888599850E943E0DEC80FD800E0D1F1D68 -:10202000E016F10641F0F70161917F0188859985FD -:102030000E943E0DF5CFF501608111816095888584 -:1020400099850E943E0D612F6095888599850E9433 -:102050003E0DF101608171818EE790E029960FB607 -:10206000F894DEBF0FBECDBFDF91CF911F910F91CE -:10207000FF90EF90DF90CF90BF90AF909F908F90A8 -:102080007F906F905F904F903F902F900C945024D2 -:1020900090932606809325065093BB044093BA0480 -:1020A0007093280660932706109224060895EF92F5 -:1020B000FF920F931F93CF93DF93EC016091BA04CB -:1020C0007091BB0480EC90E00E9450246091BA04AF -:1020D0007091BB0480E090E00E9450248E017E014C -:1020E00082EBE81A8EEFF80AF70120813181225045 -:1020F00031096091BA047091BB04C8018C1B9D0B1F -:102100008217930708F5F80181918F01803C59F4FB -:102110008BED90E00E9450246091BA047091BB0452 -:102120008CED90E00EC08B3D59F48BED90E00E9459 -:1021300050246091BA047091BB048DED90E001C011 -:1021400090E00E945024D0CF80EC90E0DF91CF91BE -:102150001F910F91FF90EF900C9450244F925F923B -:102160006F927F928F929F92AF92BF92EF92FF9267 -:102170000F931F93CF93DF93EC018B017A01E091D2 -:102180002706F09128068289811138C00E94CB234E -:1021900090910001891730F4A701B801CE010E9487 -:1021A000090F46C08FB7F8948090B6049090B7049A -:1021B000A090B804B090B9048FBF20910101309174 -:1021C00002014091030150910401AAE0B0E00E9495 -:1021D000DE212FB7F8944090B6045090B704609079 -:1021E000B8047090B9042FBF481859086A087B08D2 -:1021F000461657066806790664F3C1CFE0912706B4 -:10220000F09128068189882309F4B9CF80912506A9 -:10221000909126060E94A40DE0912706F0912806D1 -:10222000E453FF4F80819181892B41F31182108209 -:10223000809124068823A1F1C85ADE4F888181113C -:1022400001C0FFCF6091BA047091BB0480EC90E0B4 -:102250000E9450246091BA047091BB048FE090E01A -:102260000E9450246091BA047091BB0481E090E018 -:102270000E9450246091BA047091BB0480EC90E0FD -:10228000DF91CF911F910F91FF90EF90BF90AF9092 -:102290009F908F907F906F905F904F900C94502400 -:1022A000DF91CF911F910F91FF90EF90BF90AF9072 -:1022B0009F908F907F906F905F904F900895909136 -:1022C00029069923A1F0803C01F580910D0181112F -:1022D00011C01092290640912A0650912B0664E9FC -:1022E00072E080912506909126060C94AE10803CF9 -:1022F00009F086C081E0809329068EEF80930D015E -:1023000010922B0610922A06089520912A063091E9 -:102310002B062A3491E0390708F072C090910D0124 -:102320002115310531F49E3F21F48F7080930D010A -:10233000089591111FC08B3D21F481E08093230605 -:10234000089590912306992349F08C3D21F08D3D0D -:1023500019F48BED01C080EC10922306A9014F5FA8 -:102360005F4F50932B0640932A06F901EC56FD4F20 -:1023700080830895913079F4282F30E0AAE0B0E00E -:102380000E94C8216093090170930A0180930B0198 -:1023900090930C010895943089F42AE0829FC00143 -:1023A0001124AA2797FDA095BA2F80930501909339 -:1023B0000601A0930701B09308010895933089F4B2 -:1023C0002AE0829FC0011124AA2797FDA095BA2F69 -:1023D0008093010190930201A0930301B093040143 -:1023E0000895923019F48093000108959F3041F4CC -:1023F000811103C010922406089581E08093240681 -:1024000008956FEF8EE290E00E94AE268091320137 -:10241000882341F083E19EE09F938F930E9488245C -:102420000F900F908091320181110CC08091E703D1 -:10243000811108C080E19EE09F938F930E948824C1 -:102440000F900F900895CF938EE290E00E94902617 -:10245000893609F0E3C046E050E068E270E08CE2C3 -:1024600091E00E94802646E050E062E270E086E261 -:1024700091E00E94802646E050E06CE170E080E24E -:1024800091E00E94802646E050E066E170E088E13D -:1024900091E00E94802685E190E00E94902690E0E5 -:1024A0009093E4038093E30384E190E00E949026FC -:1024B00090E09093E2038093E10383E190E00E9437 -:1024C000902690E090931F0180931E0182E190E09E -:1024D0000E94902690E0909317018093160181E16D -:1024E00090E00E94902691E0811101C090E09093CD -:1024F000370180E190E00E94902691E0811101C0B7 -:1025000090E0909336018FE090E00E94902691E059 -:10251000811101C090E0909335018EE090E00E941F -:10252000902691E0811101C090E0909334018DE0FC -:1025300090E00E94902691E0811101C090E090937C -:1025400033018CE090E00E949026C1E0811101C02F -:10255000C0E0C09332018BE090E00E94902691E0B1 -:10256000811101C090E09093E7038AE090E00E941F -:1025700090268093130189E090E00E94902680933A -:10258000120188E090E00E9490268093110187E07C -:1025900090E00E9490268093100186E090E00E94D7 -:1025A00090268093150185E090E00E94902680930C -:1025B000140184E090E00E94902691E0811101C016 -:1025C00090E09093DE0382E090E00E949826A0E0E5 -:1025D000B0E08093090190930A01A0930B01B0939E -:1025E0000C0180E090E00E949826A0E0B0E080938B -:1025F000050190930601A0930701B0930801CC2335 -:10260000C1F18091E6038823A1F18AEF9DE09F93B9 -:102610008F930E9488240F900F902BC08091E60327 -:10262000882381F08091E70381110CC080913201F1 -:10263000882341F081ED9DE09F938F930E94882431 -:102640000F900F908091E603882381F08091E7033B -:1026500081110CC080913201811108C08EEC9DE087 -:102660009F938F930E9488240F900F9081E0809316 -:10267000E503CF91089590932606809325060E9446 -:10268000231281E08093E603809132018823A1F137 -:102690008AEA9EE09F938F930E94882489E99EE0B6 -:1026A0009F938F930E94882482E89EE09F938F934C -:1026B0000E9488240F900F900F900F900F900F9012 -:1026C0008091E503882341F083E69EE09F938F93FA -:1026D0000E9488240F900F9086E59EE09F938F9331 -:1026E0000E94882485E49EE09F938F930E94882413 -:1026F0000F900F900F900F90089546E050E068E221 -:1027000070E08CE291E00E949E2646E050E062E29A -:1027100070E086E291E00E949E2646E050E06CE187 -:1027200070E080E291E00E949E2646E050E066E183 -:1027300070E088E191E00E949E266091E30385E1CC -:1027400090E00E94AE266091E10384E190E00E9457 -:10275000AE2660911E0183E190E00E94AE2660915A -:10276000160182E190E00E94AE266091370181E17E -:1027700090E00E94AE266091360180E190E00E94D8 -:10278000AE26609135018FE090E00E94AE26609108 -:1027900034018EE090E00E94AE26609133018DE01E -:1027A00090E00E94AE26609132018CE090E00E94A1 -:1027B000AE266091E7038BE090E00E94AE26609128 -:1027C00013018AE090E00E94AE266091120189E038 -:1027D00090E00E94AE266091110188E090E00E9496 -:1027E000AE266091100187E090E00E94AE266091D5 -:1027F000150186E090E00E94AE266091140185E00C -:1028000090E00E94AE266091DE0384E090E00E949A -:10281000AE266091090170910A0182E090E00E9469 -:10282000BF26609105017091060180E090E00E9452 -:10283000BF2669E68EE290E00E94AE2680913201CA -:10284000882341F089EB9DE09F938F930E94882419 -:102850000F900F908091320181110CC08091E7039D -:10286000811108C086EB9DE09F938F930E9488247E -:102870000F900F9008950F931F93CF93DF939C01B8 -:10288000EA0186E0E6E2F1E0AAE4B6E001900D920A -:102890008A95E1F78091E1038093500696E0ECE29F -:1028A000F1E0A9EAB6E001900D929A95E1F78091E6 -:1028B000E3038093AF0696E0E0E2F1E0A1E5B6E045 -:1028C00001900D929A95E1F780911E018093570631 -:1028D00096E0E8E1F1E0A9EBB6E001900D929A955F -:1028E000E1F7809116018093BF0697E0EAE4F6E0F5 -:1028F000ACE2B6E001900D929A95E1F797E0E9EA33 -:10290000F6E0A3E3B6E001900D929A95E1F797E027 -:10291000E1E5F6E0AAE3B6E001900D929A95E1F7C1 -:1029200097E0E9EBF6E0A1E4B6E001900D929A950C -:10293000E1F78B0144E050E06CE276E0CE010E94CA -:10294000690FDF91CF911F910F9108958F929F9200 -:10295000AF92BF92CF92DF92EF92FF920F931F93AD -:10296000CF93DF9300D000D000D0CDB7DEB78C017D -:10297000809137018823F9F080913301882341F059 -:1029800080EB9DE09F938F930E9488240F900F907F -:10299000D80116968C911F928F931F930F9385EAFF -:1029A0009DE09F938F930E9488240F900F900F902B -:1029B0000F900F900F9080913601882301F1809144 -:1029C0003301882341F08FE99DE09F938F930E940C -:1029D00088240F900F90F80185851F928F93C8016E -:1029E00007969F938F9384E99DE09F938F930E9416 -:1029F00088240F900F900F900F900F900F90809160 -:102A00003501811105C080913401811147C039C061 -:102A100080913301882341F08DE89DE09F938F934F -:102A20000E9488240F900F907801F4E1EF0EF11CC2 -:102A3000C12CD12C580126E4A20EB11C82E8882EAC -:102A40008DE0982ED5018C9190E0C816D906DCF661 -:102A5000D7018C911F928F93C70106979F938F93F5 -:102A60009F928F920E948824BFEFCB1ADB0AE7E087 -:102A7000EE0EF11C0F900F900F900F900F900F9093 -:102A8000E1CF88E79DE09F938F930E9488240F9069 -:102A90000F908091DE03811134C02FC180913301EA -:102AA000F801E35BFF4F6F01882371F081818F9301 -:102AB00080818F938BE79DE09F938F930E94882462 -:102AC0000F900F900F900F90E12CF12C5801FBE428 -:102AD000AF0EB11CF60180819181E816F90688F6E7 -:102AE0006091C6067091C706D501ED91FC91EE0D7F -:102AF000FF1D808190E00E945024BFEFEB1AFB0A7B -:102B0000E9CFF801E35BFF4FA081B181AC30B105A3 -:102B100008F4F3C032970190F081E02D5D01AE0E14 -:102B2000BF1E40E050E0C12CD12CBE016F5F7F4F33 -:102B3000D5018E915D018B3731F04F5F5F4F47308C -:102B40005105B1F710C0CB019D01D901FD909D0148 -:102B5000DC01FD92CD017D01E61AF70A4E155F05F5 -:102B6000A0F76A01EACFC114D10409F4C6C081E01C -:102B700090E041E0DF01A80FB91F3C91DC01A55DA9 -:102B8000BE4F2C91321719F087E090E040E001969B -:102B9000873091057CF320E030E0DF01A80FB91FFA -:102BA0005C915D3209F49C0101968A309105A9F788 -:102BB0002115310599F0E20FF31F82812091E30383 -:102BC0003091E403803221F4818190E0C09702C00B -:102BD00090E086978217930709F08FC0442309F489 -:102BE0008CC05601BEE0AB0EB11CC5010E94522242 -:102BF0007C01FC0131960A9620E22193E817F9073F -:102C0000E1F7B801E0E0F0E080E090E0DB012D9139 -:102C1000BD01222339F0A701480F591FDA0111968F -:102C20002C93319601968630910581F7D80116963E -:102C30009C91992369F0EE0DFF1D8DE281839A30FE -:102C400018F4905D928304C081E382839A5D93833C -:102C50008AE3F7018083828781E6838783E684871E -:102C60008BE685873E9680E090E00196A1E0B0E09B -:102C7000AC0FBD1FA80FB91F2C9121938C159D057A -:102C8000A4F38FB7F8944091B6045091B7046091C3 -:102C9000B8047091B9048FBF2FB7F8948091B6042F -:102CA0009091B704A091B804B091B9042FBF841BD0 -:102CB000950BA60BB70B8C359444A105B10560F3B9 -:102CC0004091250650912606B501C7010E943B148C -:102CD000C70126960FB6F894DEBF0FBECDBFDF91B9 -:102CE000CF911F910F91FF90EF90DF90CF90BF9009 -:102CF000AF909F908F900C94E72226960FB6F89491 -:102D0000DEBF0FBECDBFDF91CF911F910F91FF901E -:102D1000EF90DF90CF90BF90AF909F908F900895ED -:102D20008F929F92AF92BF92CF92DF92EF92FF92DB -:102D30000F931F93CF93DF934C017B015A016B01DB -:102D400084E1C80ED11C009113010A3090F48091E7 -:102D500012018A3070F4809111018A3050F4809110 -:102D60001001893030F46B018BE1C80ED11C11E0E9 -:102D700001C010E0C6010E945222EC018DE388835D -:102D8000809115018987809114018B8B88E0E1EA9D -:102D9000F6E0DE01119601900D928A95E1F789E047 -:102DA000E0EBF6E0DE011A9601900D928A95E1F7CC -:102DB000111103C0CE01449616C080E58C8B88E4C7 -:102DC0008D8B87E48E8B005D0F8B80911201805D6F -:102DD000888F80911101805D898F80911001805DC5 -:102DE0008A8FCE014B96E114F10421F0A701B401C2 -:102DF0000E940124A501B601CE010E943B14CE0120 -:102E0000DF91CF911F910F91FF90EF90DF90CF90C6 -:102E1000BF90AF909F908F900C94E7228F929F92DB -:102E2000AF92BF92CF92DF92EF92FF920F931F93D8 -:102E3000CF93DF937C016A01EB016434710510F0DC -:102E4000C3E4D0E08E01015F1F4FC8010E945222EF -:102E50005C018AE3F501808387E090E020E030E0C8 -:102E6000019769F0F901E85AF94F40814423C1F311 -:102E70002F5F3F4FF501E20FF31F4083F1CF8091A9 -:102E80000E0190910F018F3FFFEF9F0779F0F50141 -:102E9000E20FF31F4DE241838A3091054CF42E5F1F -:102EA0003F4FF501E20FF31F805D808380E209C090 -:102EB00091E392832D5F3F4FF501E20FF31F8A5D8F -:102EC000F4CF293031053CF42F5F3F4FF501E20F7D -:102ED000F31F8083F6CFF501E20FF31F8AE38183AE -:102EE000209781F0AE01B701C5010B960E94012425 -:102EF000AE01B7018EE596E00E940124D093490609 -:102F0000C09348068091DF039091E0030196883ECC -:102F100023E092072CF49093E0038093DF0304C036 -:102F20001092E0031092DF03CA0DDB1D8BE78B8745 -:102F30002091DF033091E0038AE0882E912CC901B3 -:102F4000B4010E94E921FC0194E6E92EF12CC901AB -:102F5000B7010E94E9218E1B9F0BB4010E94E92159 -:102F6000AB01C901861B970B8E1B9F0BB7010E94FB -:102F7000E921605D6C87405D4D87E05DEE87A601CD -:102F8000B801C5010E943B14C501DF91CF911F918B -:102F90000F91FF90EF90DF90CF90BF90AF909F90F8 -:102FA0008F900C94E7222091DF033091E0032150B1 -:102FB00031093093E0032093DF036091480670915C -:102FC0004906AC018EE596E00C940E1783E199E07A -:102FD0009F938F930E9488248091E4038F93809124 -:102FE000E3038F938CE291E09F938F9380E099E0CD -:102FF0009F938F930E9488248091E2038F93809106 -:10300000E1038F9386E291E09F938F938AEE98E09D -:103010009F938F930E94882480911F018F938091AA -:103020001E018F9380E291E09F938F938AED98E049 -:103030009F938F930E948824809117018F93809192 -:1030400016018F9388E191E09F938F938AEC98E02B -:103050009F938F930E9488248DB79EB74A960FB690 -:10306000F8949EBF0FBE8DBF8091DE03882319F0B8 -:1030700083EB98E002C08BE998E09F938F930E94C6 -:1030800088240F900F90809113018A3061F01F9275 -:103090008F9380E998E09F938F930E9488240F90EC -:1030A0000F900F900F90809112018A3061F01F9263 -:1030B0008F9384E898E09F938F930E9488240F90C9 -:1030C0000F900F900F90809111018A3061F01F9244 -:1030D0008F938AE798E09F938F930E9488240F90A4 -:1030E0000F900F900F90809110018A3061F01F9225 -:1030F0008F9389E698E09F938F930E9488240F9086 -:103100000F900F900F90809115018C3541F480E560 -:1031100098E09F938F930E9488240F900F90809146 -:1031200015018F3241F488E398E09F938F930E94BA -:1031300088240F900F90809114011F928F938CE23E -:1031400098E09F938F930E94882480910C018F9325 -:1031500080910B018F9380910A018F9380910901D7 -:103160008F938AE198E09F938F930E9488248091A7 -:1031700008018F93809107018F93809106018F93AF -:10318000809105018F938CE098E09F938F930E942C -:1031900088248DB79EB740960FB6F8949EBF0FBE99 -:1031A0008DBF089588EE97E09F938F930E948824A7 -:1031B00086ED97E09F938F930E9488248BEB97E096 -:1031C0009F938F930E94882482E897E09F938F9328 -:1031D0000E94882484E697E09F938F930E9488241E -:1031E00087E497E09F938F930E94882483E297E07F -:1031F0009F938F930E94882485E097E09F938F93FD -:103200000E94882486EE96E09F938F930E948824E4 -:103210008DEC96E09F938F930E9488248DEA96E030 -:103220009F938F930E94882483E996E09F938F93C6 -:103230000E94882488E796E09F938F930E948824B9 -:1032400085E496E09F938F930E94882481E196E025 -:103250009F938F930E94882484EF95E09F938F9390 -:103260000E9488248DB79EB780960FB6F8949EBFB3 -:103270000FBE8DBF81ED95E09F938F930E948824B0 -:1032800080EB95E09F938F930E94882488E895E0D7 -:103290009F938F930E9488248FE695E09F938F934E -:1032A0000E9488248AE395E09F938F930E9488244C -:1032B00080E195E09F938F930E9488248AEE94E0AA -:1032C0009F938F930E9488248CEC94E09F938F931C -:1032D0000E94882483EA94E09F938F930E9488241D -:1032E00087E894E09F938F930E9488248BE694E074 -:1032F0009F938F930E9488248EE494E09F938F93F2 -:103300000E94882481E394E09F938F930E948824F5 -:1033100083E194E09F938F930E94882484EF93E04D -:103320009F938F930E94882485ED93E09F938F93C2 -:103330000E9488248DB79EB780960FB6F8949EBFE2 -:103340000FBE8DBF82EB93E09F938F930E948824E2 -:1033500086E893E09F938F930E94882488E693E009 -:103360009F938F930E9488248AE493E09F938F9386 -:103370000E9488248BE293E09F938F930E9488247D -:103380008CE093E09F938F930E94882488EE92E0D4 -:103390009F938F930E9488248DB79EB70E960FB689 -:1033A000F8949EBF0FBE8DBF0895EF92FF920F93CA -:1033B0001F93CF93DF9300D000D0CDB7DEB7611558 -:1033C000710509F47CC79B018C01DC019C91913251 -:1033D00009F56230710508F450C661507109C801E1 -:1033E00001960E943B1480913201882341F08BE6C4 -:1033F0009DE09F938F930E9488240F900F9080915F -:10340000320181115CC78091E703811158C788E6BA -:103410009DE049C69034E9F461507109C8010196F4 -:103420000E94901680913201882341F082E59DE050 -:103430009F938F930E9488240F900F908091320168 -:1034400081113DC78091E703811139C78FE49DE069 -:103450002AC69332E9F461507109C80101960E94AD -:103460000E1780913201882341F081E49DE09F9303 -:103470008F930E9488240F900F90809132018111C8 -:103480001EC78091E70381111AC78EE39DE00BC62A -:10349000983619F40E94D21812C7983419F40E9471 -:1034A000E6170DC7933519F40E947D1308C79334AE -:1034B00019F40E94011203C79C3419F40E942312CC -:1034C000FEC6933609F050C06430710508F4D5C5C6 -:1034D0004CE251E00F5F1F4F61507109E0E0F0E0F6 -:1034E000E630F105A1F0D8019D918D01992339F0C5 -:1034F0009A3029F09D3019F0DA019C9302C0DA016C -:103500001C9231964F5F5F4FE617F70749F7E45D6E -:10351000FE4FB1E0E233FB0711F01192FACF809138 -:1035200032018823B1F08091E4038F938091E3030B -:103530008F938CE291E09F938F938BE29DE09F931A -:103540008F930E9488240F900F900F900F900F90F0 -:103550000F90809132018111B2C68091E7038111F1 -:10356000AEC688E29DE09FC5943609F051C0643034 -:10357000710508F482C5E6E2F1E0D8011196215008 -:10358000310940E050E046305105A1F09D9199236A -:1035900031F09A3021F09D3011F0908301C01082FB -:1035A0004F5F5F4F31964217530769F7F901EA5DA4 -:1035B000FE4F03C026E030E0F9CF21E0EC32F20705 -:1035C00011F01192FACF809132018823B1F08091ED -:1035D000E2038F938091E1038F9386E291E09F93C2 -:1035E0008F9382E19DE09F938F930E9488240F9098 -:1035F0000F900F900F900F900F90809132018111DA -:103600005EC68091E70381115AC68FE09DE04BC5ED -:10361000913309F050C06230710508F42EC540E2C4 -:1036200051E00F5F1F4F61507109E0E0F0E0E630BC -:10363000F105A1F0D8019D918D01992339F09A30BF -:1036400029F09D3019F0DA019C9302C0DA011C9236 -:1036500031964F5F5F4FE617F70749F7E05EFE4F81 -:10366000B1E0E632FB0711F01192FACF80913201FE -:103670008823B1F080911F018F9380911E018F9359 -:1036800080E291E09F938F938FEF9CE09F938F93C5 -:103690000E9488240F900F900F900F900F900F9022 -:1036A0008091320181110BC68091E703811107C619 -:1036B0008CEF9CE0F8C4923309F051C06230710580 -:1036C00008F4DBC4E8E1F1E0D8011196215031099A -:1036D00040E050E046305105A1F09D91992331F032 -:1036E0009A3021F09D3011F0908301C010824F5F1D -:1036F0005F4F31964217530769F7F901E85EFE4FB5 -:1037000003C026E030E0F9CF21E0EE31F20711F0FE -:103710001192FACF809132018823B1F08091170184 -:103720008F93809116018F9388E191E09F938F93FF -:103730008CEE9CE09F938F930E9488240F900F90B3 -:103740000F900F900F900F90809132018111B7C5AB -:103750008091E7038111B3C589EE9CE0A4C493373F -:1037600009F038C16330710508F487C47B0181E03A -:10377000E81AF108D80111968C911197833609F057 -:1037800046C012968C91B2E0EB16F10461F0F8019C -:1037900093812FEC290F293030F4813320F0892FC9 -:1037A00090E0869706C09FEC980F993030F490E037 -:1037B000C0979093E4038093E303809132018823C0 -:1037C000B1F08091E4038F938091E3038F938CE2B7 -:1037D00091E09F938F9386ED9CE09F938F930E943F -:1037E00088240F900F900F900F900F900F90809162 -:1037F000320181110CC08091E703811108C083ED73 -:103800009CE09F938F930E9488240F900F90D80183 -:1038100011968C911197843609F046C012968C91BE -:10382000B2E0EB16F10461F0F80193812FEC290F5F -:10383000293030F4813320F0892F90E0869706C03C -:103840009FEC980F993030F490E0C0979093E2038A -:103850008093E103809132018823B1F08091E203EB -:103860008F938091E1038F9386E291E09F938F93F2 -:103870008DEB9CE09F938F930E9488240F900F9074 -:103880000F900F900F900F908091320181110CC01A -:103890008091E703811108C08AEB9CE09F938F938E -:1038A0000E9488240F900F90D80111968C91119747 -:1038B000813309F046C012968C91B2E0EB16F10408 -:1038C00061F0F80193812FEC290F293030F4813316 -:1038D00020F0892F90E0869706C09FEC980F9930D2 -:1038E00030F490E0C09790931F0180931E01809167 -:1038F00032018823B1F080911F018F9380911E01C6 -:103900008F9380E291E09F938F938AEA9CE09F934C -:103910008F930E9488240F900F900F900F900F901C -:103920000F908091320181110CC08091E7038111C9 -:1039300008C087EA9CE09F938F930E9488240F9091 -:103940000F90D80111968C911197823309F0B7C46A -:1039500013968C91B2E0EB16F10459F09FEC980F9E -:10396000993038F4F8019281913318F090E08697FD -:1039700008C08153893048F4D80112968C9190E0A8 -:10398000C09790931701809316018091320188238C -:10399000B1F0809117018F93809116018F9388E188 -:1039A00091E09F938F9387E99CE09F938F930E9470 -:1039B00088240F900F900F900F900F900F90809190 -:1039C000320181117CC48091E703811178C484E9BC -:1039D0009CE069C3903709F037C16330710508F482 -:1039E0004CC3F80181818337C9F5928180913201FE -:1039F0009133C1F491E090933701882341F081E83D -:103A00009CE09F938F930E9488240F900F90809149 -:103A10003201811123C08091E70381111FC08EE71D -:103A20009CE016C010923701882341F08AE69CE0A2 -:103A30009F938F930E9488240F900F908091320162 -:103A400081110CC08091E703811108C087E69CE0DA -:103A50009F938F930E9488240F900F90D801119606 -:103A60008C9111978436D1F512969C9180913201F8 -:103A70009133C1F491E090933601882341F084E5BD -:103A80009CE09F938F930E9488240F900F908091C9 -:103A90003201811123C08091E70381111FC081E5AC -:103AA0009CE016C010923601882341F08DE39CE023 -:103AB0009F938F930E9488240F900F9080913201E2 -:103AC00081110CC08091E703811108C08AE39CE05A -:103AD0009F938F930E9488240F900F90F80181810B -:103AE0008037C9F59281809132019133C1F491E020 -:103AF00090933501882341F086E29CE09F938F9359 -:103B00000E9488240F900F9080913201811123C070 -:103B10008091E70381111FC083E29CE016C01092E0 -:103B20003501882341F08EE09CE09F938F930E94A3 -:103B300088240F900F908091320181110CC08091E8 -:103B4000E703811108C08BE09CE09F938F930E9454 -:103B500088240F900F90D80111968C9111978D3673 -:103B6000D1F512969C91809132019133C1F491E08C -:103B700090933401882341F087EF9BE09F938F93CC -:103B80000E9488240F900F9080913201811123C0F0 -:103B90008091E70381111FC084EF9BE016C0109253 -:103BA0003401882341F08FED9BE09F938F930E9417 -:103BB00088240F900F908091320181110CC0809168 -:103BC000E703811108C08CED9BE09F938F930E94C7 -:103BD00088240F900F90F8018181893609F06FC316 -:103BE0009281809132019133C1F491E0909333013D -:103BF000882341F088EC9BE09F938F930E94882458 -:103C00000F900F9080913201811159C38091E70389 -:103C1000811155C385EC9BE046C210923301882385 -:103C200041F080EB9BE09F938F930E9488240F903C -:103C30000F9080913201811142C38091E70381117D -:103C40003EC38DEA9BE02FC2963781F4D8011196CE -:103C50008C91813331F481E08093320187E99BE0DC -:103C600022C21092320180E89BE01DC2963589F491 -:103C7000F8018181813341F481E08093E703109260 -:103C800032018BE69BE00FC21092E70385E59BE0D3 -:103C90000AC29C3609F068C06330710508F4EDC1B2 -:103CA000D80111968C9111978C3609F003C261509E -:103CB000710912968C91813651F56A30710508F4BC -:103CC000FEC288E0F8013396A1EAB6E001900D92B9 -:103CD0008A95E1F780913201882371F081EA96E0BC -:103CE0009F938F938FE39BE09F938F930E948824F1 -:103CF0000F900F900F900F90809132018111DFC2D1 -:103D00008091E7038111DBC28CE39BE0CCC18F364D -:103D100009F0D5C26B30710508F4D1C289E0F80111 -:103D20003396A0EBB6E001900D928A95E1F7809171 -:103D30003201882371F080EB96E09F938F9384E2A9 -:103D40009BE09F938F930E9488240F900F900F9079 -:103D50000F90809132018111B2C28091E7038111ED -:103D6000AEC281E29BE09FC19D3609F021C1623065 -:103D7000710508F482C161507109F80181818336AF -:103D800009F067C06130710509F499C248E556E051 -:103D90000E5F1F4F61507109E0E0F0E0E617F70792 -:103DA00019F4E85AF94F15C0E630F105D1F3D801FE -:103DB0009D918D01992339F09A3029F09D3019F0A9 -:103DC000DA019C9302C0DA011C9231964F5F5F4F7B -:103DD000E5CFB6E0EE35FB0711F01192FACF8091F6 -:103DE0003201882359F188E596E09F938F9380E311 -:103DF0009AE09F938F930E94882480910E01909166 -:103E00000F010F900F900F900F908F3FEFEF9E07D5 -:103E100069F09F938F938BE29AE09F938F930E9418 -:103E200088240F900F900F900F9008C089E29AE0BD -:103E30009F938F930E9488240F900F90809132015E -:103E400081113DC28091E703811139C286E29AE077 -:103E50002AC1833709F059C06130710509F42FC2B6 -:103E60006430710520F0838190E0869704C0F801EA -:103E7000828190E0C09790930F0180930E01809112 -:103E80000E0190910F01409730F08FEF9FEF9093CC -:103E90000F0180930E0180913201882359F188E54A -:103EA00096E09F938F938EE09AE09F938F930E946A -:103EB000882480910E0190910F010F900F900F9028 -:103EC0000F908F3FFFEF9F0769F09F938F9389E0DB -:103ED0009AE09F938F930E9488240F900F900F90E9 -:103EE0000F9008C087E09AE09F938F930E948824E8 -:103EF0000F900F90809132018111E1C18091E70311 -:103F00008111DDC184E09AE0CEC08237D1F4CA01CC -:103F10000E94D31780913201882341F08EEE99E000 -:103F20009F938F930E9488240F900F90809132016D -:103F30008111C5C18091E7038111C1C18BEE99E068 -:103F4000B2C0813609F0BBC19281809132019133B8 -:103F5000C1F491E09093DE03882341F081ED99E074 -:103F60009F938F930E9488240F900F90809132012D -:103F70008111A5C18091E7038111A1C18EEC99E067 -:103F800092C01092DE03882341F083EB99E09F9367 -:103F90008F930E9488240F900F908091320181119D -:103FA0008EC18091E70381118AC180EB99E07BC0CB -:103FB000973761F56230710508F45FC0AB0141507D -:103FC0005109B8016F5F7F4FCE0101960E94012415 -:103FD000CE0101960E94DB238031B7E29B0798F463 -:103FE000AA2797FDA095BA2F8093090190930A0103 -:103FF000A0930B01B0930C01BF93AF939F938F934A -:1040000089E999E02CC086E799E04DC09735A9F57C -:104010006230710590F1AB0141505109B8016F5FF9 -:104020007F4FCE0101960E940124CE0101960E948D -:10403000DB238031E7E29E07E8F4AA2797FDA095ED -:10404000BA2F8093050190930601A0930701B093C6 -:104050000801BF93AF939F938F9380E699E09F935E -:104060008F930E9488240F900F900F900F900F90C5 -:104070000F9025C18EE399E016C08091320188230C -:1040800041F086E299E09F938F930E9488240F90DD -:104090000F9080913201811112C18091E70381114B -:1040A0000EC183E299E09F938F930E9488240F9022 -:1040B0000F9005C1803731F5F801828180538A3035 -:1040C00008F0FDC08093130190913201992379F09B -:1040D000889FC00111249F938F938FE09BE09F9353 -:1040E0008F930E9488240F900F900F900F908091D3 -:1040F00032018111E4C08091E7038111E0C08CE0BE -:104100009BE0D1CF8836C9F5D80112968C918053A7 -:104110008A3008F0D4C08093120190913201992323 -:1041200009F1A1E0B0E002C0AA0FBB1F8A95E2F737 -:1041300028EE33E00E94D72128E431E040E050E04F -:104140000E941F225F934F933F932F938CEE9AE030 -:104150009F938F930E9488240F900F900F900F9041 -:104160000F900F90809132018111A9C08091E703D7 -:104170008111A5C089EE9AE096CF873619F5F8012E -:10418000828180538A3008F09AC080931101909107 -:104190003201992361F01F928F9387ED9AE09F93EC -:1041A0008F930E9488240F900F900F900F90809112 -:1041B0003201811184C08091E703811180C084EDB8 -:1041C0009AE071CF8436D9F5D80112968C9180533C -:1041D0008A3008F074C0893009F488E080931001B7 -:1041E0008091320181110CC08091E703811108C0D8 -:1041F00081ED9AE09F938F930E9488240F900F90F7 -:1042000080913201882309F45AC0809110018111F4 -:1042100008C088EB9AE09F938F930E9488240F90A8 -:104220000F9080911001882309F449C0BDE28B9F53 -:10423000C00111249F938F938EE99AE00EC08337BB -:10424000A9F4F8018281809314019091320199239D -:10425000B1F11F928F938CE89AE09F938F930E9405 -:1042600088240F900F900F900F9029C0843739F554 -:10427000D80112969C9180913201913641F49CE5CF -:1042800090931501882381F08BE69AE007C09FE2A6 -:1042900090931501882341F08BE49AE09F938F93CC -:1042A0000E9488240F900F9080913201811107C0E5 -:1042B0008091E703811103C088E49AE0F4CE0F9067 -:1042C0000F900F900F90DF91CF911F910F91FF9062 -:1042D000EF9008950E948B070E947D076B017C017F -:1042E000C1E088EC94E00E94A40D8091420181110C -:1042F00025C00E94FB07882309F10E940508282F8A -:1043000030E03093460120934501209143013091E4 -:104310004401F901E95BFE4FA9014F5F5F4F8083C4 -:1043200050934401409343012934314010F0C0932D -:1043300042010E947D076B017C0114C08091430102 -:1043400090914401892B71F00E947D07DC01CB0123 -:104350008C199D09AE09BF094597A105B10514F057 -:10436000C093420180914201882309F4BACF609141 -:1043700043017091440148EC54E087E491E00E94CD -:10438000D519109242011092440110924301A9CF15 -:10439000A29FB001B39FC001A39F700D811D112486 -:1043A000911DB29F700D811D1124911D08950E94D1 -:1043B000C821B7FF0895821B930B08950E94C8215E -:1043C000A59F900DB49F900DA49F800D911D112469 -:1043D000089597FB072E16F4009407D077FD09D0B7 -:1043E0000E943E2207FC05D03EF4909581959F4F98 -:1043F0000895709561957F4F0895A1E21A2EAA1B2A -:10440000BB1BFD010DC0AA1FBB1FEE1FFF1FA21784 -:10441000B307E407F50720F0A21BB30BE40BF50B81 -:10442000661F771F881F991F1A9469F7609570950A -:10443000809590959B01AC01BD01CF010895052E9B -:1044400097FB1EF400940E94362257FD07D00E946D -:10445000FD2107FC03D04EF40C9436225095409574 -:10446000309521953F4F4F4F5F4F08959095809520 -:10447000709561957F4F8F4F9F4F0895AA1BBB1B6F -:1044800051E107C0AA1FBB1FA617B70710F0A61B54 -:10449000B70B881F991F5A95A9F780959095BC0175 -:1044A000CD010895CF93DF938230910510F482E01F -:1044B00090E0E091C206F091C30620E030E0C0E059 -:1044C000D0E0309711F14081518148175907C0F071 -:1044D0004817590761F482819381209719F09B83D3 -:1044E0008A832BC09093C3068093C20626C02115F1 -:1044F000310519F04217530718F49A01BE01DF0184 -:10450000EF010280F381E02DDCCF2115310509F1A7 -:10451000281B390B2430310590F412968D919C9113 -:1045200013976115710521F0FB019383828304C009 -:104530009093C3068093C206FD01329644C0FD01EC -:10454000E20FF31F81939193225031092D933C93F5 -:104550003AC02091C0063091C106232B41F420912E -:104560003A0130913B013093C1062093C00620915F -:104570003801309139012115310541F42DB73EB78D -:1045800040913C0150913D01241B350BE091C00648 -:10459000F091C106E217F307A0F42E1B3F0B28177A -:1045A000390778F0AC014E5F5F4F2417350748F0AC -:1045B0004E0F5F1F5093C1064093C00681939193A5 -:1045C00002C0E0E0F0E0CF01DF91CF9108950F93BA -:1045D0001F93CF93DF93009709F48CC0FC013297AF -:1045E000138212820091C2061091C30601151105B3 -:1045F00081F420813181820F931F2091C006309178 -:10460000C1062817390779F5F093C106E093C00673 -:1046100071C0D80140E050E0AE17BF0750F41296C9 -:104620002D913C911397AD012115310509F1D90167 -:10463000F3CF9D01DA013383228360817181860F7C -:10464000971F8217930769F4EC0128813981260F9F -:10465000371F2E5F3F4F318320838A819B81938355 -:104660008283452B29F4F093C306E093C20642C02F -:104670001396FC93EE931297ED01499159919E0187 -:10468000240F351FE217F30771F480819181840FA5 -:10469000951F029611969C938E9382819381139617 -:1046A0009C938E931297E0E0F0E0D80112968D91E2 -:1046B0009C911397009719F0F8018C01F6CF8D911A -:1046C0009C9198012E5F3F4F820F931F2091C0064F -:1046D0003091C1062817390769F4309729F41092F0 -:1046E000C3061092C20602C0138212821093C10642 -:1046F0000093C006DF91CF911F910F9108958F9283 -:104700009F92AF92BF92CF92DF92EF92FF92CF93A0 -:10471000DF93EC01688179818A819B816115710544 -:104720008105910521F464E279ED8BE597E02DE1B7 -:1047300033EF41E050E00E941F2249015A019B01E2 -:10474000AC01A7EAB1E40E94DE216B017C01ACEE72 -:10475000B4EFA50194010E943C27DC01CB018C0D34 -:104760009D1DAE1DBF1DB7FF03C00197A109B04835 -:1047700088839983AA83BB839F77DF91CF91FF9032 -:10478000EF90DF90CF90BF90AF909F908F90089563 -:104790000E947F2308958EE391E00E947F23089575 -:1047A000A0E0B0E080933E0190933F01A0934001D0 -:1047B000B09341010895FC0188279927E89421913D -:1047C0002032E9F3293010F02E30C8F32B3241F0BB -:1047D0002D3239F4689404C00E940A24820F911D7E -:1047E000219120532A30C0F31EF4909581959F4F5C -:1047F00008959111089581568A5108F48052855880 -:104800000895FB01DC0102C001900D92415050401F -:10481000D8F708957AE0979F902D879F802D910D6E -:1048200011240895CF93DF93EC012B8120FF33C037 -:1048300026FF0AC02F7B2B838E819F8101969F8349 -:104840008E838A8190E029C022FF0FC0E881F98120 -:104850008081992787FD9095009719F420622B831A -:104860001AC03196F983E8830EC0EA85FB85099565 -:1048700097FF09C02B81019611F080E201C080E111 -:10488000822B8B8308C02E813F812F5F3F4F3F8358 -:104890002E83992702C08FEF9FEFDF91CF9108956C -:1048A0000F931F93CF93DF93FB01238121FD03C05F -:1048B0008FEF9FEF28C022FF16C0468157812481C9 -:1048C00035814217530744F4A081B1819D012F5FC8 -:1048D0003F4F318320838C93268137812F5F3F4F59 -:1048E0003783268310C0EB01092F182F0084F18530 -:1048F000E02D0995892BE1F68E819F8101969F839A -:104900008E83812F902FDF91CF911F910F9108956A -:10491000A0E0B0E0EEE8F4E20C944F27AE01495F6E -:104920005F4FDA016D917D91AD0104EC16E0F80165 -:1049300082819381DC0113962C9113972860139642 -:104940002C930E94AE24D8011296ED91FC911397FE -:104950002381277F2383E4E00C946B27ACE0B0E055 -:10496000E4EBF4E20C9441277C016B018A01FC0129 -:1049700017821682838181FFBDC1CE0101964C0151 -:10498000F7019381F60193FD859193FF81916F016A -:10499000882309F4ABC1853239F493FD859193FFE7 -:1049A00081916F01853229F4B70190E00E94502473 -:1049B000E7CF512C312C20E02032A0F48B3269F06B -:1049C00030F4803259F0833269F420612CC08D328A -:1049D00039F0803339F4216026C02260246023C07E -:1049E000286021C027FD27C030ED380F3A3078F419 -:1049F00026FF06C0FAE05F9E300D1124532E13C02F -:104A00008AE0389E300D1124332E20620CC08E3285 -:104A100021F426FD6BC1206406C08C3611F4206899 -:104A200002C0883641F4F60193FD859193FF819190 -:104A30006F018111C1CF982F9F7D9554933028F439 -:104A40000C5F1F4FFFE3F9830DC0833631F08337CE -:104A500071F0833509F05BC022C0F8018081898341 -:104A60000E5F1F4F44244394512C540115C038014C -:104A7000F2E06F0E711CF801A080B18026FF03C028 -:104A8000652D70E002C06FEF7FEFC5012C870E949B -:104A9000D0262C0183012C852F77222E17C03801B8 -:104AA000F2E06F0E711CF801A080B18026FF03C0F8 -:104AB000652D70E002C06FEF7FEFC5012C870E946B -:104AC000C5262C012C852068222E830123FC1BC0C7 -:104AD000832D90E048165906B0F4B70180E290E0CB -:104AE0000E9450243A94F4CFF50127FC859127FECB -:104AF00081915F01B70190E00E94502431103A94F7 -:104B0000F1E04F1A51084114510471F7E5C08436A1 -:104B100011F0893639F5F80127FF07C060817181EE -:104B2000828193810C5F1F4F08C06081718188274B -:104B300077FD8095982F0E5F1F4F2F76722E97FF6F -:104B400009C090958095709561957F4F8F4F9F4FCD -:104B50002068722E2AE030E0A4010E94DB26A82EF5 -:104B6000A81844C0853729F42F7EB22E2AE030E001 -:104B700025C0F22FF97FBF2E8F36C1F018F488358B -:104B800079F0B4C0803719F0883721F0AFC02F2FEB -:104B90002061B22EB4FE0DC08B2D8460B82E09C0EA -:104BA00024FF0AC09F2F9660B92E06C028E030E08F -:104BB00005C020E130E002C020E132E0F801B7FE9C -:104BC00007C060817181828193810C5F1F4F06C095 -:104BD0006081718180E090E00E5F1F4FA4010E9410 -:104BE000DB26A82EA818FB2DFF777F2E76FE0BC0A4 -:104BF000372D3E7FA51450F474FE0AC072FC08C025 -:104C0000372D3E7E05C0BA2C372D03C0BA2C01C00B -:104C1000B52C34FF0DC0FE01EA0DF11D80818033FB -:104C200011F4397E09C032FF06C0B394B39404C0B6 -:104C3000832F867809F0B39433FD13C030FF06C08C -:104C40005A2CB31418F4530C5B18B32CB31468F437 -:104C5000B70180E290E03C870E945024B3943C85E9 -:104C6000F5CFB31410F43B1801C0312C34FF12C03F -:104C7000B70180E390E03C870E9450243C8532FFDE -:104C800017C031FD03C088E790E002C088E590E0DE -:104C9000B7010CC0832F867859F031FF02C08BE238 -:104CA00001C080E237FD8DE2B70190E00E94502400 -:104CB000A51438F4B70180E390E00E9450245A9480 -:104CC000F7CFAA94F401EA0DF11D8081B70190E0BD -:104CD0000E945024A110F5CF332009F451CEB70122 -:104CE00080E290E00E9450243A94F6CFF70186814A -:104CF000978102C08FEF9FEF2C96E2E10C945D2725 -:104D0000DC01CB01FC01F999FECF06C0F2BDE1BD8B -:104D1000F89A319600B40D9241505040B8F708957A -:104D2000F999FECF92BD81BDF89A992780B5089573 -:104D3000A8E1B0E042E050E00C948226DC01A40F30 -:104D4000B51F4150504048F0CB01840F951F2E9164 -:104D50000E94AF2641505040D0F70895262FF99970 -:104D6000FECF92BD81BDF89A019700B4021631F0D2 -:104D700020BD0FB6F894FA9AF99A0FBE08950196DD -:104D8000272F0E94AF260C94AE26FC01059061509F -:104D900070400110D8F7809590958E0F9F1F089551 -:104DA000FC016150704001900110D8F780959095FA -:104DB0008E0F9F1F0895FA01AA27283051F1203144 -:104DC00081F1E8946F936E7F6E5F7F4F8F4F9F4F9F -:104DD000AF4FB1E03ED0B4E03CD0670F781F891FE1 -:104DE0009A1FA11D680F791F8A1F911DA11D6A0FAF -:104DF000711D811D911DA11D20D009F468943F9162 -:104E00002AE0269F11243019305D3193DEF6CF0160 -:104E10000895462F4770405D4193B3E00FD0C9F726 -:104E2000F6CF462F4F70405D4A3318F0495D31FD93 -:104E30004052419302D0A9F7EACFB4E0A6959795E6 -:104E4000879577956795BA95C9F7009761057105BC -:104E500008959B01AC010A2E069457954795379506 -:104E60002795BA95C9F7620F731F841F951FA01D60 -:104E70000895B7FF0C94DE210E94DE21821B930B64 -:104E800008952F923F924F925F926F927F928F92EE -:104E90009F92AF92BF92CF92DF92EF92FF920F93C9 -:104EA0001F93CF93DF93CDB7DEB7CA1BDB0B0FB6D3 -:104EB000F894DEBF0FBECDBF09942A883988488890 -:104EC0005F846E847D848C849B84AA84B984C88426 -:104ED000DF80EE80FD800C811B81AA81B981CE0F1D -:104EE000D11D0FB6F894DEBF0FBECDBFED01089502 -:044EF000F894FFCF64 -:104EF4003FC8000000320000005E010000FEFFFF1A -:104F04000A0A0A0A6E2F020057494445320001007A -:104F140057494445310041505A4D444D4E4F434149 -:104F24004C4C0101010101010000CA0620000100EE -:024F340000007B -:00000001FF diff --git a/protocol/AX25.c b/protocol/AX25.c index 5e4b0bb..62015cd 100755 --- a/protocol/AX25.c +++ b/protocol/AX25.c @@ -22,38 +22,7 @@ void ax25_init(AX25Ctx *ctx, Afsk *modem, FILE *channel, ax25_callback_t hook) { } static void ax25_decode(AX25Ctx *ctx) { - #if SERIAL_PROTOCOL == PROTOCOL_KISS if (ctx->hook) ctx->hook(ctx); - #endif - - #if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - AX25Msg msg; - uint8_t *buf = ctx->buf; - - DECODE_CALL(buf, msg.dst.call); - msg.dst.ssid = (*buf++ >> 1) & 0x0F; - - DECODE_CALL(buf, msg.src.call); - msg.src.ssid = (*buf >> 1) & 0x0F; - - for (msg.rpt_count = 0; !(*buf++ & 0x01) && (msg.rpt_count < countof(msg.rpt_list)); msg.rpt_count++) { - DECODE_CALL(buf, msg.rpt_list[msg.rpt_count].call); - msg.rpt_list[msg.rpt_count].ssid = (*buf >> 1) & 0x0F; - AX25_SET_REPEATED(&msg, msg.rpt_count, (*buf & 0x80)); - } - - msg.ctrl = *buf++; - if (msg.ctrl != AX25_CTRL_UI) { return; } - - msg.pid = *buf++; - if (msg.pid != AX25_PID_NOLAYER3) { return; } - - msg.len = ctx->frame_len - 2 - (buf - ctx->buf); - msg.info = buf; - - if (ctx->hook) ctx->hook(&msg); - - #endif } void ax25_poll(AX25Ctx *ctx) { @@ -120,50 +89,4 @@ void ax25_sendRaw(AX25Ctx *ctx, void *_buf, size_t len) { fputc(HDLC_FLAG, ctx->ch); ctx->ready_for_data = true; -} - -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - static void ax25_sendCall(AX25Ctx *ctx, const AX25Call *addr, bool last){ - unsigned len = MIN(sizeof(addr->call), strlen(addr->call)); - - for (unsigned i = 0; i < len; i++) { - uint8_t c = addr->call[i]; - c = toupper(c); - ax25_putchar(ctx, c << 1); - } - - if (len < sizeof(addr->call)) { - for (unsigned i = 0; i < sizeof(addr->call) - len; i++) { - ax25_putchar(ctx, ' ' << 1); - } - } - - uint8_t ssid = 0x60 | (addr->ssid << 1) | (last ? 0x01 : 0); - ax25_putchar(ctx, ssid); - } - - void ax25_sendVia(AX25Ctx *ctx, const AX25Call *path, size_t path_len, const void *_buf, size_t len) { - const uint8_t *buf = (const uint8_t *)_buf; - - ctx->crc_out = CRC_CCIT_INIT_VAL; - fputc(HDLC_FLAG, ctx->ch); - - for (size_t i = 0; i < path_len; i++) { - ax25_sendCall(ctx, &path[i], (i == path_len - 1)); - } - - ax25_putchar(ctx, AX25_CTRL_UI); - ax25_putchar(ctx, AX25_PID_NOLAYER3); - - while (len--) { - ax25_putchar(ctx, *buf++); - } - - uint8_t crcl = (ctx->crc_out & 0xff) ^ 0xff; - uint8_t crch = (ctx->crc_out >> 8) ^ 0xff; - ax25_putchar(ctx, crcl); - ax25_putchar(ctx, crch); - - fputc(HDLC_FLAG, ctx->ch); - } -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/protocol/AX25.h b/protocol/AX25.h index 82ac210..7915e93 100755 --- a/protocol/AX25.h +++ b/protocol/AX25.h @@ -21,13 +21,7 @@ struct AX25Ctx; // Forward declarations struct AX25Msg; -#if SERIAL_PROTOCOL == PROTOCOL_KISS - typedef void (*ax25_callback_t)(struct AX25Ctx *ctx); -#endif - -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - typedef void (*ax25_callback_t)(struct AX25Msg *msg); -#endif +typedef void (*ax25_callback_t)(struct AX25Ctx *ctx); typedef struct AX25Ctx { uint8_t buf[AX25_MAX_FRAME_LEN]; @@ -42,33 +36,6 @@ typedef struct AX25Ctx { bool ready_for_data; } AX25Ctx; -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - #define AX25_CALL(str, id) {.call = (str), .ssid = (id) } - #define AX25_MAX_RPT 8 - #define AX25_REPEATED(msg, n) ((msg)->rpt_flags & BV(n)) - - typedef struct AX25Call { - char call[6]; - uint8_t ssid; - } AX25Call; - - typedef struct AX25Msg { - AX25Call src; - AX25Call dst; - AX25Call rpt_list[AX25_MAX_RPT]; - uint8_t rpt_count; - uint8_t rpt_flags; - uint16_t ctrl; - uint8_t pid; - const uint8_t *info; - size_t len; - } AX25Msg; - - void ax25_sendVia(AX25Ctx *ctx, const AX25Call *path, size_t path_len, const void *_buf, size_t len); - #define ax25_send(ctx, dst, src, buf, len) ax25_sendVia(ctx, ({static AX25Call __path[]={dst, src}; __path;}), 2, buf, len) - -#endif - void ax25_poll(AX25Ctx *ctx); void ax25_sendRaw(AX25Ctx *ctx, void *_buf, size_t len); void ax25_init(AX25Ctx *ctx, Afsk *modem, FILE *channel, ax25_callback_t hook); diff --git a/protocol/SimpleSerial.c b/protocol/SimpleSerial.c deleted file mode 100755 index 03cc2a0..0000000 --- a/protocol/SimpleSerial.c +++ /dev/null @@ -1,861 +0,0 @@ -#include "device.h" - -#if SERIAL_PROTOCOL == PROTOCOL_SIMPLE_SERIAL - -#define ENABLE_HELP true - -#include -#include -#include -#include -#include "hardware/Serial.h" -#include "SimpleSerial.h" -#include "util/time.h" - -#define countof(a) sizeof(a)/sizeof(a[0]) - -bool PRINT_SRC = true; -bool PRINT_DST = true; -bool PRINT_PATH = true; -bool PRINT_DATA = true; -bool PRINT_INFO = true; -bool VERBOSE = true; -bool SILENT = false; -bool SS_INIT = false; -bool SS_DEFAULT_CONF = false; - -AX25Call src; -AX25Call dst; -AX25Call path1; -AX25Call path2; - -char CALL[6] = DEFAULT_CALLSIGN; -int CALL_SSID = 0; -char DST[6] = DEFAULT_DESTINATION_CALL; -int DST_SSID = 0; -char PATH1[6] = "WIDE1"; -int PATH1_SSID = 1; -char PATH2[6] = "WIDE2"; -int PATH2_SSID = 2; - -AX25Call path[4]; -AX25Ctx *ax25ctx; - -#define NV_MAGIC_BYTE 0x69 -uint8_t EEMEM nvMagicByte; -uint8_t EEMEM nvCALL[6]; -uint8_t EEMEM nvDST[6]; -uint8_t EEMEM nvPATH1[6]; -uint8_t EEMEM nvPATH2[6]; -uint8_t EEMEM nvCALL_SSID; -uint8_t EEMEM nvDST_SSID; -uint8_t EEMEM nvPATH1_SSID; -uint8_t EEMEM nvPATH2_SSID; -bool EEMEM nvPRINT_SRC; -bool EEMEM nvPRINT_DST; -bool EEMEM nvPRINT_PATH; -bool EEMEM nvPRINT_DATA; -bool EEMEM nvPRINT_INFO; -bool EEMEM nvVERBOSE; -bool EEMEM nvSILENT; -uint8_t EEMEM nvPOWER; -uint8_t EEMEM nvHEIGHT; -uint8_t EEMEM nvGAIN; -uint8_t EEMEM nvDIRECTIVITY; -uint8_t EEMEM nvSYMBOL_TABLE; -uint8_t EEMEM nvSYMBOL; -uint8_t EEMEM nvAUTOACK; -int EEMEM nvPREAMBLE; -int EEMEM nvTAIL; - -// Location packet assembly fields -char latitude[8]; -char longtitude[9]; -char symbolTable = '/'; -char symbol = 'n'; - -uint8_t power = 10; -uint8_t height = 10; -uint8_t gain = 10; -uint8_t directivity = 10; -///////////////////////// - -// Message packet assembly fields -char message_recip[6]; -int message_recip_ssid = -1; - -int message_seq = 0; -char lastMessage[67]; -size_t lastMessageLen; -bool message_autoAck = false; -///////////////////////// - -extern unsigned long custom_preamble; -extern unsigned long custom_tail; - -void ss_init(AX25Ctx *ax25) { - ax25ctx = ax25; - ss_loadSettings(); - SS_INIT = true; - if (VERBOSE) { - printf_P(PSTR("---------------\n")); - printf_P(PSTR("MicroAPRS v1.0b\n")); - printf_P(PSTR("unsigned.io/microaprs\n")); - if (SS_DEFAULT_CONF) printf_P(PSTR("Default configuration loaded!\n")); - printf_P(PSTR("Modem ready\n")); - printf_P(PSTR("---------------\n")); - } -} - -void ss_clearSettings(void) { - eeprom_update_byte((void*)&nvMagicByte, 0xFF); - if (VERBOSE) printf_P(PSTR("Configuration cleared. Restart to load defaults.\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); -} - -void ss_loadSettings(void) { - uint8_t verification = eeprom_read_byte((void*)&nvMagicByte); - if (verification == NV_MAGIC_BYTE) { - eeprom_read_block((void*)CALL, (void*)nvCALL, 6); - eeprom_read_block((void*)DST, (void*)nvDST, 6); - eeprom_read_block((void*)PATH1, (void*)nvPATH1, 6); - eeprom_read_block((void*)PATH2, (void*)nvPATH2, 6); - - CALL_SSID = eeprom_read_byte((void*)&nvCALL_SSID); - DST_SSID = eeprom_read_byte((void*)&nvDST_SSID); - PATH1_SSID = eeprom_read_byte((void*)&nvPATH1_SSID); - PATH2_SSID = eeprom_read_byte((void*)&nvPATH2_SSID); - - PRINT_SRC = eeprom_read_byte((void*)&nvPRINT_SRC); - PRINT_DST = eeprom_read_byte((void*)&nvPRINT_DST); - PRINT_PATH = eeprom_read_byte((void*)&nvPRINT_PATH); - PRINT_DATA = eeprom_read_byte((void*)&nvPRINT_DATA); - PRINT_INFO = eeprom_read_byte((void*)&nvPRINT_INFO); - VERBOSE = eeprom_read_byte((void*)&nvVERBOSE); - SILENT = eeprom_read_byte((void*)&nvSILENT); - - power = eeprom_read_byte((void*)&nvPOWER); - height = eeprom_read_byte((void*)&nvHEIGHT); - gain = eeprom_read_byte((void*)&nvGAIN); - directivity = eeprom_read_byte((void*)&nvDIRECTIVITY); - symbolTable = eeprom_read_byte((void*)&nvSYMBOL_TABLE); - symbol = eeprom_read_byte((void*)&nvSYMBOL); - message_autoAck = eeprom_read_byte((void*)&nvAUTOACK); - - custom_preamble = eeprom_read_word((void*)&nvPREAMBLE); - custom_tail = eeprom_read_word((void*)&nvTAIL); - - if (VERBOSE && SS_INIT) printf_P(PSTR("Configuration loaded\n")); - } else { - if (SS_INIT && !SILENT && VERBOSE) printf_P(PSTR("Error: No stored configuration to load!\n")); - if (SS_INIT && !SILENT && !VERBOSE) printf_P(PSTR("0\n")); - SS_DEFAULT_CONF = true; - } -} - -void ss_saveSettings(void) { - eeprom_update_block((void*)CALL, (void*)nvCALL, 6); - eeprom_update_block((void*)DST, (void*)nvDST, 6); - eeprom_update_block((void*)PATH1, (void*)nvPATH1, 6); - eeprom_update_block((void*)PATH2, (void*)nvPATH2, 6); - - eeprom_update_byte((void*)&nvCALL_SSID, CALL_SSID); - eeprom_update_byte((void*)&nvDST_SSID, DST_SSID); - eeprom_update_byte((void*)&nvPATH1_SSID, PATH1_SSID); - eeprom_update_byte((void*)&nvPATH2_SSID, PATH2_SSID); - - eeprom_update_byte((void*)&nvPRINT_SRC, PRINT_SRC); - eeprom_update_byte((void*)&nvPRINT_DST, PRINT_DST); - eeprom_update_byte((void*)&nvPRINT_PATH, PRINT_PATH); - eeprom_update_byte((void*)&nvPRINT_DATA, PRINT_DATA); - eeprom_update_byte((void*)&nvPRINT_INFO, PRINT_INFO); - eeprom_update_byte((void*)&nvVERBOSE, VERBOSE); - eeprom_update_byte((void*)&nvSILENT, SILENT); - - eeprom_update_byte((void*)&nvPOWER, power); - eeprom_update_byte((void*)&nvHEIGHT, height); - eeprom_update_byte((void*)&nvGAIN, gain); - eeprom_update_byte((void*)&nvDIRECTIVITY, directivity); - eeprom_update_byte((void*)&nvSYMBOL_TABLE, symbolTable); - eeprom_update_byte((void*)&nvSYMBOL, symbol); - eeprom_update_byte((void*)&nvAUTOACK, message_autoAck); - - eeprom_update_word((void*)&nvPREAMBLE, custom_preamble); - eeprom_update_word((void*)&nvTAIL, custom_tail); - - eeprom_update_byte((void*)&nvMagicByte, NV_MAGIC_BYTE); - - if (VERBOSE) printf_P(PSTR("Configuration saved\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); -} - -void ss_messageCallback(struct AX25Msg *msg) { - if (PRINT_SRC) { - if (PRINT_INFO) printf_P(PSTR("SRC: ")); - printf_P(PSTR("[%.6s-%d] "), msg->src.call, msg->src.ssid); - } - if (PRINT_DST) { - if (PRINT_INFO) printf_P(PSTR("DST: ")); - printf_P(PSTR("[%.6s-%d] "), msg->dst.call, msg->dst.ssid); - } - - if (PRINT_PATH) { - if (PRINT_INFO) printf_P(PSTR("PATH: ")); - for (int i = 0; i < msg->rpt_count; i++) - printf_P(PSTR("[%.6s-%d] "), msg->rpt_list[i].call, msg->rpt_list[i].ssid); - } - - if (PRINT_DATA) { - if (PRINT_INFO) printf_P(PSTR("DATA: "), msg->len); - for (int i = 0; i < msg->len; i++) { - putchar(msg->info[i]); - } - } - printf_P(PSTR("\r\n")); - - if (message_autoAck && msg->len > 11) { - char mseq[6]; - bool shouldAck = true; - int msl = 0; - int loc = msg->len - 1; - size_t i = 0; - - while (i<7 && i < msg->len) { - if (msg->info[loc-i] == '{') { - size_t p; - for (p = 0; p <= i; p++) { - mseq[p] = msg->info[loc-i+p]; - msl = i; - } - } - i++; - } - - if (msl != 0) { - int pos = 1; - int ssidPos = 0; - while (pos < 7) { - if (msg->info[pos] != CALL[pos-1]) { - shouldAck = false; - pos = 7; - } - pos++; - } - while (pos < 10) { - if (msg->info[pos] == '-') ssidPos = pos; - pos++; - } - if (ssidPos != 0) { - if (msg->info[ssidPos+2] == ' ') { - if (msg->info[ssidPos+1]-48 != CALL_SSID) { - shouldAck = false; - } - } else { - int assid = 10+(msg->info[ssidPos+2]-48); - if (assid != CALL_SSID) { - shouldAck = false; - } - } - } - - if (msl != 0 && shouldAck) { - int ii = 0; - char *ack = malloc(14+msl); - - for (ii = 0; ii < 9; ii++) { - ack[1+ii] = ' '; - } - int calllen = 0; - for (ii = 0; ii < 6; ii++) { - if (msg->src.call[ii] != 0) { - ack[1+ii] = msg->src.call[ii]; - calllen++; - } - } - - if (msg->src.ssid != 0) { - ack[1+calllen] = '-'; - if (msg->src.ssid < 10) { - ack[2+calllen] = msg->src.ssid+48; - } else { - ack[2+calllen] = 49; - ack[3+calllen] = msg->src.ssid-10+48; - } - } - - ack[0] = ':'; - ack[10] = ':'; - ack[11] = 'a'; - ack[12] = 'c'; - ack[13] = 'k'; - - for (ii = 0; ii < msl; ii++) { - ack[14+ii] = mseq[ii+1]; - } - - delay_ms(1750); - ss_sendPkt(ack, 14+msl, ax25ctx); - - free(ack); - } - } - } -} - -void ss_serialCallback(void *_buffer, size_t length, AX25Ctx *ctx) { - uint8_t *buffer = (uint8_t *)_buffer; - if (length > 0) { - // ! as first char to send packet - if (buffer[0] == '!' && length > 1) { - buffer++; length--; - ss_sendPkt(buffer, length, ctx); - if (VERBOSE) printf_P(PSTR("Packet sent\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == '@') { - buffer++; length--; - ss_sendLoc(buffer, length, ctx); - if (VERBOSE) printf_P(PSTR("Location update sent\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == '#') { - buffer++; length--; - ss_sendMsg(buffer, length, ctx); - if (VERBOSE) printf_P(PSTR("Message sent\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - #if ENABLE_HELP - else if (buffer[0] == 'h') { - ss_printHelp(); - } - #endif - else if (buffer[0] == 'H') { - ss_printSettings(); - } else if (buffer[0] == 'S') { - ss_saveSettings(); - } else if (buffer[0] == 'C') { - ss_clearSettings(); - } else if (buffer[0] == 'L') { - ss_loadSettings(); - } else if (buffer[0] == 'c' && length > 3) { - buffer++; length--; - int count = 0; - while (length-- && count < 6) { - char c = buffer[count]; - if (c != 0 && c != 10 && c != 13) { - CALL[count] = c; - } else { - CALL[count] = 0x00; - } - count++; - } - while (count < 6) { - CALL[count] = 0x00; - count++; - } - if (VERBOSE) printf_P(PSTR("Callsign: %.6s-%d\n"), CALL, CALL_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - - } else if (buffer[0] == 'd' && length > 3) { - buffer++; length--; - int count = 0; - while (length-- && count < 6) { - char c = buffer[count]; - if (c != 0 && c != 10 && c != 13) { - DST[count] = c; - } else { - DST[count] = 0; - } - count++; - } - while (count < 6) { - DST[count] = 0x00; - count++; - } - if (VERBOSE) printf_P(PSTR("Destination: %.6s-%d\n"), DST, DST_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - - - } else if (buffer[0] == '1' && length > 1) { - buffer++; length--; - int count = 0; - while (length-- && count < 6) { - char c = buffer[count]; - if (c != 0 && c != 10 && c != 13) { - PATH1[count] = c; - } else { - PATH1[count] = 0; - } - count++; - } - while (count < 6) { - PATH1[count] = 0x00; - count++; - } - if (VERBOSE) printf_P(PSTR("Path1: %.6s-%d\n"), PATH1, PATH1_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - - - } else if (buffer[0] == '2' && length > 1) { - buffer++; length--; - int count = 0; - while (length-- && count < 6) { - char c = buffer[count]; - if (c != 0 && c != 10 && c != 13) { - PATH2[count] = c; - } else { - PATH2[count] = 0; - } - count++; - } - while (count < 6) { - PATH2[count] = 0x00; - count++; - } - if (VERBOSE) printf_P(PSTR("Path2: %.6s-%d\n"), PATH2, PATH2_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - - - } else if (buffer[0] == 's' && length > 2) { - buffer++; length--; - if (buffer[0] == 'c') { - if (length > 2 && buffer[2] > 48 && buffer[2] < 58 && buffer[1] > 48) { - CALL_SSID = 10+buffer[2]-48; - } else - if ( buffer[1] > 48 && buffer[1] < 58) { - CALL_SSID = buffer[1]-48; - } - if (VERBOSE) printf_P(PSTR("Callsign: %.6s-%d\n"), CALL, CALL_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - if (buffer[0] == 'd') { - if (length > 2 && buffer[2] > 48 && buffer[2] < 58 && buffer[1] > 48) { - DST_SSID = 10+buffer[2]-48; - } else - if ( buffer[1] > 48 && buffer[1] < 58) { - DST_SSID = buffer[1]-48; - } - if (VERBOSE) printf_P(PSTR("Destination: %.6s-%d\n"), DST, DST_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - if (buffer[0] == '1' ) { - if (length > 2 && buffer[2] > 48 && buffer[2] < 58 && buffer[1] > 48) { - PATH1_SSID = 10+buffer[2]-48; - } else - if ( buffer[1] > 48 && buffer[1] < 58) { - PATH1_SSID = buffer[1]-48; - } - if (VERBOSE) printf_P(PSTR("Path1: %.6s-%d\n"), PATH1, PATH1_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - if (buffer[0] == '2' ) { - if (length > 2 && buffer[2] > 48 && buffer[2] < 58 && buffer[1] > 48) { - PATH2_SSID = 10+buffer[2]-48; - } else - if (buffer[2] > 48 && buffer[2] < 58) { - PATH2_SSID = buffer[1]-48; - } - if (VERBOSE) printf_P(PSTR("Path2: %.6s-%d\n"), PATH2, PATH2_SSID); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - - } else if (buffer[0] == 'p' && length > 2) { - buffer++; length--; - if (buffer[0] == 's') { - if (buffer[1] == 49) { - PRINT_SRC = true; - if (VERBOSE) printf_P(PSTR("Print SRC enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - PRINT_SRC = false; - if (VERBOSE) printf_P(PSTR("Print SRC disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - if (buffer[0] == 'd') { - if (buffer[1] == 49) { - PRINT_DST = true; - if (VERBOSE) printf_P(PSTR("Print DST enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - PRINT_DST = false; - if (VERBOSE) printf_P(PSTR("Print DST disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - if (buffer[0] == 'p') { - if (buffer[1] == 49) { - PRINT_PATH = true; - if (VERBOSE) printf_P(PSTR("Print PATH enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - PRINT_PATH = false; - if (VERBOSE) printf_P(PSTR("Print PATH disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - if (buffer[0] == 'm') { - if (buffer[1] == 49) { - PRINT_DATA = true; - if (VERBOSE) printf_P(PSTR("Print DATA enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - PRINT_DATA = false; - if (VERBOSE) printf_P(PSTR("Print DATA disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - if (buffer[0] == 'i') { - if (buffer[1] == 49) { - PRINT_INFO = true; - if (VERBOSE) printf_P(PSTR("Print INFO enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - PRINT_INFO = false; - if (VERBOSE) printf_P(PSTR("Print INFO disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - } else if (buffer[0] == 'v') { - if (buffer[1] == 49) { - VERBOSE = true; - printf_P(PSTR("Verbose mode enabled\n")); - } else { - VERBOSE = false; - printf_P(PSTR("Verbose mode disabled\n")); - } - } else if (buffer[0] == 'V') { - if (buffer[1] == 49) { - SILENT = true; - VERBOSE = false; - printf_P(PSTR("Silent mode enabled\n")); - } else { - SILENT = false; - printf_P(PSTR("Silent mode disabled\n")); - } - } else if (buffer[0] == 'l' && length > 2) { - buffer++; length--; - if (buffer[0] == 'l' && buffer[1] == 'a' && length >= 10) { - buffer += 2; - memcpy(latitude, (void *)buffer, 8); - if (VERBOSE) printf_P(PSTR("Latitude set to %.8s\n"), latitude); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'l' && buffer[1] == 'o' && length >= 11) { - buffer += 2; - memcpy(longtitude, (void *)buffer, 9); - if (VERBOSE) printf_P(PSTR("Longtitude set to %.9s\n"), longtitude); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'p' && length >= 2 && buffer[1] >= 48 && buffer[1] <= 57) { - power = buffer[1] - 48; - if (VERBOSE) printf_P(PSTR("Power set to %dw\n"), power*power); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'h' && length >= 2 && buffer[1] >= 48 && buffer[1] <= 57) { - height = buffer[1] - 48; - if (VERBOSE) printf_P(PSTR("Antenna height set to %ldm AAT\n"), (long)(_BV(height)*1000L)/328L); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'g' && length >= 2 && buffer[1] >= 48 && buffer[1] <= 57) { - gain = buffer[1] - 48; - if (VERBOSE) printf_P(PSTR("Gain set to %ddB\n"), gain); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'd' && length >= 2 && buffer[1] >= 48 && buffer[1] <= 57) { - directivity = buffer[1] - 48; - if (directivity == 9) directivity = 8; - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - if (VERBOSE) { - if (directivity == 0) printf_P(PSTR("Directivity set to omni\n")); - if (directivity != 0) printf_P(PSTR("Directivity set to %ddeg\n"), directivity*45); - } - } else if (buffer[0] == 's' && length >= 2) { - symbol = buffer[1]; - if (VERBOSE) printf_P(PSTR("Symbol set to %c\n"), symbol); - } else if (buffer[0] == 't' && length >= 2) { - if (buffer[1] == 'a') { - symbolTable = '\\'; - if (VERBOSE) printf_P(PSTR("Selected alternate symbol table\n")); - } else { - symbolTable = '/'; - if (VERBOSE) printf_P(PSTR("Selected standard symbol table\n")); - } - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - - } else if (buffer[0] == 'm' && length > 1) { - buffer++; length--; - if (buffer[0] == 'c' && length > 1) { - buffer++; length--; - int count = 0; - while (length-- && count < 6) { - char c = buffer[count]; - if (c != 0 && c != 10 && c != 13) { - message_recip[count] = c; - } else { - message_recip[count] = 0x00; - } - count++; - } - while (count < 6) { - message_recip[count] = 0x00; - count++; - } - if (VERBOSE) { - printf_P(PSTR("Message recipient: %.6s"), message_recip); - if (message_recip_ssid != -1) { - printf_P(PSTR("-%d\n"), message_recip_ssid); - } else { - printf_P(PSTR("\n")); - } - } - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 's' && length > 1) { - if (length > 3) { - message_recip_ssid = 10+buffer[2]-48; - } else { - message_recip_ssid = buffer[1]-48; - } - if (message_recip_ssid < 0 || message_recip_ssid > 15) message_recip_ssid = -1; - if (VERBOSE) { - printf_P(PSTR("Message recipient: %.6s"), message_recip); - if (message_recip_ssid != -1) { - printf_P(PSTR("-%d\n"), message_recip_ssid); - } else { - printf_P(PSTR("\n")); - } - } - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'r') { - ss_msgRetry(ctx); - if (VERBOSE) printf_P(PSTR("Retried last message\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else if (buffer[0] == 'a') { - if (buffer[1] == 49) { - message_autoAck = true; - if (VERBOSE) printf_P(PSTR("Message auto-ack enabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } else { - message_autoAck = false; - if (VERBOSE) printf_P(PSTR("Message auto-ack disabled\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("1\n")); - } - } - - } else if (buffer[0] == 'w' && length >= 2) { - char str[4]; buffer++; - memcpy(str, buffer, length-1); - int preamble = atoi(str); - if (preamble >= 0 && preamble <= 9999) { - custom_preamble = preamble; - printf_P(PSTR("Preamble set to %lums\n"), custom_preamble); - } else { - printf_P(PSTR("Error: Invalid value for preamble\n")); - } - } else if (buffer[0] == 'W' && length >= 2) { - char str[4]; buffer++; - memcpy(str, buffer, length-1); - int tail = atoi(str); - if (tail >= 0 && tail <= 9999) { - custom_tail = tail; - printf_P(PSTR("TX Tail set to %lums\n"), custom_tail); - } else { - printf_P(PSTR("Error: Invalid value for TX tail\n")); - } - } else { - if (VERBOSE) printf_P(PSTR("Error: Invalid command\n")); - if (!VERBOSE && !SILENT) printf_P(PSTR("0\n")); - } - - } - -} - -void ss_sendPkt(void *_buffer, size_t length, AX25Ctx *ax25) { - - uint8_t *buffer = (uint8_t *)_buffer; - - memcpy(dst.call, DST, 6); - dst.ssid = DST_SSID; - - memcpy(src.call, CALL, 6); - src.ssid = CALL_SSID; - - memcpy(path1.call, PATH1, 6); - path1.ssid = PATH1_SSID; - - memcpy(path2.call, PATH2, 6); - path2.ssid = PATH2_SSID; - - path[0] = dst; - path[1] = src; - path[2] = path1; - path[3] = path2; - - ax25_sendVia(ax25, path, countof(path), buffer, length); -} - -void ss_sendLoc(void *_buffer, size_t length, AX25Ctx *ax25) { - size_t payloadLength = 20+length; - bool usePHG = false; - if (power < 10 && height < 10 && gain < 10 && directivity < 9) { - usePHG = true; - payloadLength += 7; - } - uint8_t *packet = malloc(payloadLength); - uint8_t *ptr = packet; - packet[0] = '='; - packet[9] = symbolTable; - packet[19] = symbol; - ptr++; - memcpy(ptr, latitude, 8); - ptr += 9; - memcpy(ptr, longtitude, 9); - ptr += 10; - if (usePHG) { - packet[20] = 'P'; - packet[21] = 'H'; - packet[22] = 'G'; - packet[23] = power+48; - packet[24] = height+48; - packet[25] = gain+48; - packet[26] = directivity+48; - ptr+=7; - } - if (length > 0) { - uint8_t *buffer = (uint8_t *)_buffer; - memcpy(ptr, buffer, length); - } - - //printf_P(PSTR("Assembled packet:\n%.*s\n", payloadLength, packet); - ss_sendPkt(packet, payloadLength, ax25); - free(packet); -} - -void ss_sendMsg(void *_buffer, size_t length, AX25Ctx *ax25) { - if (length > 67) length = 67; - size_t payloadLength = 11+length+4; - - uint8_t *packet = malloc(payloadLength); - uint8_t *ptr = packet; - packet[0] = ':'; - int callSize = 6; - int count = 0; - while (callSize--) { - if (message_recip[count] != 0) { - packet[1+count] = message_recip[count]; - count++; - } - } - if (message_recip_ssid != -1) { - packet[1+count] = '-'; count++; - if (message_recip_ssid < 10) { - packet[1+count] = message_recip_ssid+48; count++; - } else { - packet[1+count] = 49; count++; - packet[1+count] = message_recip_ssid-10+48; count++; - } - } - while (count < 9) { - packet[1+count] = ' '; count++; - } - packet[1+count] = ':'; - ptr += 11; - if (length > 0) { - uint8_t *buffer = (uint8_t *)_buffer; - memcpy(ptr, buffer, length); - memcpy(lastMessage, buffer, length); - lastMessageLen = length; - } - - message_seq++; - if (message_seq > 999) message_seq = 0; - - packet[11+length] = '{'; - int n = message_seq % 10; - int d = ((message_seq % 100) - n)/10; - int h = (message_seq - d - n) / 100; - - packet[12+length] = h+48; - packet[13+length] = d+48; - packet[14+length] = n+48; - - //printf_P(PSTR("Assembled packet:\n%.*s\n", payloadLength, packet); - ss_sendPkt(packet, payloadLength, ax25); - - free(packet); -} - -void ss_msgRetry(AX25Ctx *ax25) { - message_seq--; - ss_sendMsg(lastMessage, lastMessageLen, ax25); -} - -void ss_printSettings(void) { - printf_P(PSTR("Configuration:\n")); - printf_P(PSTR("Callsign: %.6s-%d\n"), CALL, CALL_SSID); - printf_P(PSTR("Destination: %.6s-%d\n"), DST, DST_SSID); - printf_P(PSTR("Path1: %.6s-%d\n"), PATH1, PATH1_SSID); - printf_P(PSTR("Path2: %.6s-%d\n"), PATH2, PATH2_SSID); - if (message_autoAck) { - printf_P(PSTR("Auto-ack messages: On\n")); - } else { - printf_P(PSTR("Auto-ack messages: Off\n")); - } - if (power != 10) printf_P(PSTR("Power: %d\n"), power); - if (height != 10) printf_P(PSTR("Height: %d\n"), height); - if (gain != 10) printf_P(PSTR("Gain: %d\n"), gain); - if (directivity != 10) printf_P(PSTR("Directivity: %d\n"), directivity); - if (symbolTable == '\\') printf_P(PSTR("Symbol table: alternate\n")); - if (symbolTable == '/') printf_P(PSTR("Symbol table: standard\n")); - printf_P(PSTR("Symbol: %c\n"), symbol); - printf_P(PSTR("TX Preamble: %lu\n"), custom_preamble); - printf_P(PSTR("TX Tail: %lu\n"), custom_tail); -} - -#if ENABLE_HELP - void ss_printHelp(void) { - printf_P(PSTR("----------------------------------\n")); - printf_P(PSTR("Serial commands:\n")); - printf_P(PSTR("! Send raw packet\n")); - printf_P(PSTR("@ Send location update (cmt = optional comment)\n")); - printf_P(PSTR("# Send APRS message\n\n")); - - printf_P(PSTR("c Set your callsign\n")); - printf_P(PSTR("d Set destination callsign\n")); - printf_P(PSTR("1 Set PATH1 callsign\n")); - printf_P(PSTR("2 Set PATH2 callsign\n\n")); - - printf_P(PSTR("sc Set your SSID\n")); - printf_P(PSTR("sd Set destination SSID\n")); - printf_P(PSTR("s1 Set PATH1 SSID\n")); - printf_P(PSTR("s2 Set PATH2 SSID\n\n")); - - printf_P(PSTR("lla Set latitude (NMEA-format, eg 4903.50N)\n")); - printf_P(PSTR("llo Set latitude (NMEA-format, eg 07201.75W)\n")); - printf_P(PSTR("lp<0-9> Set TX power info\n")); - printf_P(PSTR("lh<0-9> Set antenna height info\n")); - printf_P(PSTR("lg<0-9> Set antenna gain info\n")); - printf_P(PSTR("ld<0-9> Set antenna directivity info\n")); - printf_P(PSTR("ls Select symbol\n")); - printf_P(PSTR("lt Select symbol table (standard/alternate)\n\n")); - - printf_P(PSTR("mc Set message recipient callsign\n")); - printf_P(PSTR("ms Set message recipient SSID\n")); - printf_P(PSTR("mr Retry last message\n")); - printf_P(PSTR("ma<1/0> Automatic message ACK on/off\n\n")); - - printf_P(PSTR("ps<1/0> Print SRC on/off\n")); - printf_P(PSTR("pd<1/0> Print DST on/off\n")); - printf_P(PSTR("pp<1/0> Print PATH on/off\n")); - printf_P(PSTR("pm<1/0> Print DATA on/off\n")); - printf_P(PSTR("pi<1/0> Print INFO on/off\n\n")); - printf_P(PSTR("v<1/0> Verbose mode on/off\n")); - printf_P(PSTR("V<1/0> Silent mode on/off\n\n")); - - printf_P(PSTR("w Set preamble time in ms\n")); - printf_P(PSTR("W Set transmission tail time in ms\n")); - - printf_P(PSTR("S Save configuration\n")); - printf_P(PSTR("L Load configuration\n")); - printf_P(PSTR("C Clear configuration\n")); - printf_P(PSTR("H Print configuration\n")); - printf_P(PSTR("----------------------------------\n")); - } -#endif - -#endif diff --git a/protocol/SimpleSerial.h b/protocol/SimpleSerial.h deleted file mode 100755 index d71546d..0000000 --- a/protocol/SimpleSerial.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _PROTOCOL_SIMPLE_SERIAL -#define _PROTOCOL_SIMPLE_SERIAL 0x01 -#include "AX25.h" - -#define DEFAULT_CALLSIGN "NOCALL" -#define DEFAULT_DESTINATION_CALL "APZMDM" - -void ss_init(AX25Ctx *ax25); - -void ss_messageCallback(struct AX25Msg *msg); -void ss_serialCallback(void *_buffer, size_t length, AX25Ctx *ctx); - -void ss_sendPkt(void *_buffer, size_t length, AX25Ctx *ax25); -void ss_sendLoc(void *_buffer, size_t length, AX25Ctx *ax25); -void ss_sendMsg(void *_buffer, size_t length, AX25Ctx *ax25); -void ss_msgRetry(AX25Ctx *ax25); - -void ss_clearSettings(void); -void ss_loadSettings(void); -void ss_saveSettings(void); -void ss_printSettings(void); - -void ss_printHelp(void); - -#endif \ No newline at end of file diff --git a/util/constants.h b/util/constants.h index 6a16a68..d198f2f 100755 --- a/util/constants.h +++ b/util/constants.h @@ -1,5 +1,5 @@ #define PROTOCOL_KISS 0x01 -#define PROTOCOL_SIMPLE_SERIAL 0x02 +#define PROTOCOL_RAW 0x02 #define m328p 0x01 #define m1284p 0x02 diff --git a/util/time.h b/util/time.h index ca5059a..07398d2 100755 --- a/util/time.h +++ b/util/time.h @@ -5,7 +5,7 @@ #include "device.h" #define DIV_ROUND(dividend, divisor) (((dividend) + (divisor) / 2) / (divisor)) -#define CLOCK_TICKS_PER_SEC CONFIG_AFSK_DAC_SAMPLERATE +#define CLOCK_TICKS_PER_SEC CONFIG_SAMPLERATE typedef int32_t ticks_t; typedef int32_t mtime_t;