diff options
142 files changed, 28668 insertions, 10819 deletions
diff --git a/.gitignore b/.gitignore index 8b8c45169d..a082ea22e4 100644 --- a/.gitignore +++ b/.gitignore @@ -16,8 +16,8 @@ build/ .vagrant/ .DS_STORE -# Eclipse Settings +# Eclipse/PyCharm/Other IDE Settings .cproject .project .settings/ - +.idea @@ -1,11 +1,13 @@ -# Quantum MK Firmware +# Quantum Mechanical Keyboard Firmware -This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.co) and the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard. +This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.co), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, TMK. This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). +The OLKB product firmwares are maintained by Jack, the Ergodox EZ by Erez, and the Clueboard by [Zach White](https://github.com/skullydazed). + ## Important background info: TMK documentation The documentation below explains QMK customizations and elaborates on some of the more useful features of TMK. To understand the base firmware, and especially what *layers* are and how they work, please see [TMK_README.md](/TMK_README.md). @@ -211,6 +213,23 @@ This will clear all keys besides the mods currently pressed. If the user attempts to activate layer 1 AND layer 2 at the same time (for example, by hitting their respective layer keys), layer 3 will be activated. Layers 1 and 2 will _also_ be activated, for the purposes of fallbacks (so a given key will fall back from 3 to 2, to 1 -- and only then to 0). +#### Naming your macros + +If you have a bunch of macros you want to refer to from your keymap, while keeping the keymap easily readable, you can just name them like so: + +``` +#define AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) +``` + +As was done on the [Planck default keymap](/keyboard/planck/keymaps/default/keymap.c#L33-L40) + #### Timer functionality It's possible to start timers and read values for time-specific events - here's an example: @@ -227,11 +246,91 @@ if (timer_elapsed(key_timer) < 100) { It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). +#### Example 1: Single-key copy/paste (hold to copy, tap to paste) + +With QMK, it's easy to make one key do two things, as long as one of those things is being a modifier. :) So if you want a key to act as Ctrl when held and send the letter R when tapped, that's easy: `CTL_T(KC_R)`. But what do you do when you want that key to send Ctrl-V (paste) when tapped, and Ctrl-C (copy) when held? + +Here's what you do: + + +``` +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + } + else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. + return MACRO( D(LCTL), T(C), U(LCTL), END ); + } + else { + return MACRO( D(LCTL), T(V), U(LCTL), END ); + } + } + break; + } + } + return MACRO_NONE; +}; +``` + +And then, to assign this macro to a key on your keyboard layout, you just use `M(0)` on the key you want to press for copy/paste. + +#### Example 2: Space Cadet Shift (making it easy to send opening and closing parentheses) + +In the [Modern Space Cadet Keyboard](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses), one of cooler features is the Shift Parentheses. To quote Steve Losh: + + > When held while pressing other keys, act like Shift. + > When pressed and released on their own, type an opening or closing parenthesis (left and right shift respectively). + +``` +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + register_code(KC_LSFT); // we're now holding down Shift. + } else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) < 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. + register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren + unregister_code(KC_9); // now let's let go of that key + } + unregister_code(KC_LSFT); // let's release the Shift key now. + } + break; + } + case 1: { + if (record->event.pressed) { + key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key + register_code(KC_RSFT); + } else { + if (timer_elapsed(key_timer) < 150) { + register_code(KC_0); + unregister_code(KC_0); + } + unregister_code(KC_RSFT); + } + break; + } + } + return MACRO_NONE; +}; +``` + +And then, to assign this macro to a key on your keyboard layout, you just use `M(0)` on the key you want to press for left shift/opening parens, and `M(1)` for right shift/closing parens. + ## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - #include <keymap_extras/keymap_colemak.h> + #include <keymap_colemak.h> If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: @@ -274,7 +373,7 @@ This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboar ## International Characters on Windows -[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys amont others. +[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others. The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 3f066aebcd..c1a0a6db42 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -142,7 +142,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index 5e31264e68..3996497161 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -57,3 +57,64 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif
\ No newline at end of file diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index d5461e424d..0c7aeb1cc8 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -3,8 +3,11 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include <stddef.h> +#include <avr/io.h> // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c deleted file mode 100644 index 647b57e718..0000000000 --- a/keyboard/atomic/backlight.c +++ /dev/null @@ -1,63 +0,0 @@ - -#include <avr/io.h> -#include "backlight.h" -#include "atomic.h" - - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -}
\ No newline at end of file diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h index cb0b78e447..cc92634646 100644 --- a/keyboard/atomic/keymaps/pvc/config.h +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -62,6 +62,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +// Enable Keyboard Locking via magic key +#define KEYBOARD_LOCK_ENABLE + + /* * Force NKRO * diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 36098f1eba..e17c41e23d 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -13,9 +13,10 @@ #define LAYER_DVORAK 2 #define LAYER_LOWER 3 #define LAYER_RAISE 4 -#define LAYER_ADJUST 5 -#define LAYER_FUNCTION 6 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 #define LAYER_MUSIC 7 +#define LAYER_ADJUST 8 #define MACRO_QWERTY 0 #define MACRO_COLEMAK 1 @@ -23,17 +24,20 @@ #define MACRO_LOWER 3 #define MACRO_RAISE 4 #define MACRO_FUNCTION 5 -#define MACRO_TIMBRE_1 6 -#define MACRO_TIMBRE_2 7 -#define MACRO_TIMBRE_3 8 -#define MACRO_TIMBRE_4 9 -#define MACRO_TEMPO_U 10 -#define MACRO_TEMPO_D 11 -#define MACRO_TONE_DEFAULT 12 -#define MACRO_MUSIC_ON 13 -#define MACRO_MUSIC_OFF 14 -#define MACRO_AUDIO_ON 15 -#define MACRO_AUDIO_OFF 16 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_ON 14 +#define MACRO_MUSIC_OFF 15 +#define MACRO_AUDIO_ON 16 +#define MACRO_AUDIO_OFF 17 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) @@ -41,6 +45,7 @@ #define M_LOWER M(MACRO_LOWER) #define M_RAISE M(MACRO_RAISE) #define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) #define TIMBR_1 M(MACRO_TIMBRE_1) #define TIMBR_2 M(MACRO_TIMBRE_2) #define TIMBR_3 M(MACRO_TIMBRE_3) @@ -54,6 +59,8 @@ #define MUS_OFF M(MACRO_MUSIC_OFF) #define AUD_OFF M(MACRO_AUDIO_OFF) #define AUD_ON M(MACRO_AUDIO_ON) +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) #define SC_UNDO LCTL(KC_Z) @@ -69,8 +76,11 @@ #define _______ KC_TRNS -#define ___T___ KC_TRNS #define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* QWERTY * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. @@ -82,17 +92,16 @@ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_QWERTY] = { /* QWERTY */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX }, + [LAYER_QWERTY] = { /* QWERTY */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* COLEMAK @@ -101,20 +110,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAPS | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_COLEMAK] = { /* COLEMAK */ + [LAYER_COLEMAK] = { /* COLEMAK */ { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, - { KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* DVORAK @@ -127,58 +136,82 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_DVORAK] = { /* DVORAK */ + [LAYER_DVORAK] = { /* DVORAK */ { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC }, { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, - [LAYER_LOWER] = { /* LOWERED */ - { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + [LAYER_LOWER] = { /* LOWERED */ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, { _______, _______, _______, _______, SC_CCLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, SC_REDO, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, + { _______, SC_REDO, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, KC_END }, { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______ }, }, - [LAYER_RAISE] = { /* RAISED */ - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + [LAYER_RAISE] = { /* RAISED */ + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, { _______, _______, _______, _______, SC_ACLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, SC_SELA, SC_SAVE, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, SC_UNDO, SC_CUT, SC_COPY, SC_PSTE, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, SC_SELA, SC_SAVE, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, + { _______, SC_UNDO, SC_CUT, SC_COPY, SC_PSTE, _______, _______, _______, _______, _______, _______, ________________, _______, KC_END }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, }, - [LAYER_FUNCTION] = { /* FUNCTION */ - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, - { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, - { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + [LAYER_FUNCTION] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_PAUS }, + { KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_PSCR }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_VOLU, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { /* MOUSE */ + { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U }, + { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, - [LAYER_ADJUST] = { /* ADJUST */ - { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, +#endif + + [LAYER_MUSIC] = { /* MUSIC */ + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + }, + + [LAYER_ADJUST] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ________________ }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, ________________, VC_UP, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ }, }, - [LAYER_MUSIC] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, }, +*/ + }; #ifdef AUDIO_ENABLE @@ -187,8 +220,8 @@ float tone_my_startup[][2] = SONG(ODE_TO_JOY); float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(COLEMAK_SOUND); -float tone_colemak[][2] = SONG(DVORAK_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); float tone_music_on[][2] = SONG(DOE_A_DEER); @@ -198,42 +231,13 @@ float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif /* AUDIO_ENABLE */ -/* -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} -*/ - void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } @@ -251,7 +255,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_QWERTY); - PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); + #endif /* AUDIO_ENABLE */ } break; @@ -259,7 +265,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_COLEMAK); - PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); + #endif /* AUDIO_ENABLE */ } break; @@ -267,11 +275,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { persistant_default_layer_set(1UL<<LAYER_DVORAK); - PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); + #endif /* AUDIO_ENABLE */ } break; - case MACRO_LOWER: if (record->event.pressed) { @@ -309,6 +318,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; @@ -380,6 +402,28 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + case MACRO_INC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + + case MACRO_DEC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + +#endif /* AUDIO_ENABLE */ + default: break; @@ -390,12 +434,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE -uint8_t starting_note = 0x0C; -int offset = 7; - void process_action_user(keyrecord_t *record) { + + uint8_t starting_note = 0x0C; + int offset = 7; + if (IS_LAYER_ON(LAYER_MUSIC)) { if (record->event.pressed) @@ -412,7 +457,7 @@ void process_action_user(keyrecord_t *record) void matrix_init_user(void) { - init_notes(); + set_voice(default_voice); play_startup_tone(); println("Matrix Init"); } @@ -421,6 +466,8 @@ void led_set_user(uint8_t usb_led) { static uint8_t old_usb_led = 0; + _delay_ms(10); // gets rid of tick + if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { // If CAPS LK LED is turning on... @@ -457,13 +504,14 @@ void led_set_user(uint8_t usb_led) void play_startup_tone() { + _delay_ms(10); // gets rid of tick PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); } void play_goodbye_tone() { PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); - _delay_ms(2000); + _delay_ms(1000); } -#endif /* AUDIO_ENABLE */ +#endif /* AUDIO_ENABLE */
\ No newline at end of file diff --git a/keyboard/clueboard1/Makefile b/keyboard/clueboard1/Makefile new file mode 100644 index 0000000000..7192a9734c --- /dev/null +++ b/keyboard/clueboard1/Makefile @@ -0,0 +1,137 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = clueboard1 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = clueboard1.c \ + led.c + +ifdef KEYMAP + SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +else + SRC := keymaps/keymap_default.c $(SRC) +endif + +CONFIG_H = config.h + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/clueboard1/clueboard1.c b/keyboard/clueboard1/clueboard1.c new file mode 100644 index 0000000000..289e4644d3 --- /dev/null +++ b/keyboard/clueboard1/clueboard1.c @@ -0,0 +1,23 @@ +#include "clueboard1.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +} + +void matrix_init_kb(void) { + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboard/clueboard1/clueboard1.h b/keyboard/clueboard1/clueboard1.h new file mode 100644 index 0000000000..839a81a150 --- /dev/null +++ b/keyboard/clueboard1/clueboard1.h @@ -0,0 +1,52 @@ +#ifndef CLUEBOARD1_H +#define CLUEBOARD1_H + +#include "matrix.h" +#include "keymap_common.h" +#include <stddef.h> + + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| | 0F| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| 1D| | 1F| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 2A| 2B| 2C| 2D| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 3A| 3B| 3C| 3D|3E| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 49| 4A| 4B| 4C| 4D| 4E| 4F| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k45, k46, k49, k4A, k4B, k4C, k4D, k4E, k4F \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, KC_NO, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/clueboard1/config.h b/keyboard/clueboard1/config.h new file mode 100644 index 0000000000..2b20c3873d --- /dev/null +++ b/keyboard/clueboard1/config.h @@ -0,0 +1,96 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2301 +#define DEVICE_VER 0x0003 +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard +#define DESCRIPTION QMK keyboard firmware for Clueboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +// COLS: Left to right, ROWS: Top to bottom + +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + * pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1 + */ +#define COLS (int []){ B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: D1 D0 D2 D5 D3 + */ +#define ROWS (int []){ D1, D0, D2, D5, D3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTB + #define ws2812_DDRREG DDRB + #define ws2812_pin 2 + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/clueboard1/keymaps/keymap_default.c b/keyboard/clueboard1/keymaps/keymap_default.c new file mode 100644 index 0000000000..3f4f3c4149 --- /dev/null +++ b/keyboard/clueboard1/keymaps/keymap_default.c @@ -0,0 +1,184 @@ +#include "clueboard1.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + #else + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboard/clueboard1/led.c b/keyboard/clueboard1/led.c new file mode 100644 index 0000000000..f0dd5662d5 --- /dev/null +++ b/keyboard/clueboard1/led.c @@ -0,0 +1,32 @@ + /* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <avr/io.h> +#include "stdint.h" +#include "led.h" + + +void led_set_kb(uint8_t usb_led) { + DDRF |= (1<<0); + if (usb_led & (1<<USB_LED_CAPS_LOCK)) { + // Turn capslock on + PORTF |= (1<<0); + } else { + // Turn capslock off + PORTF &= ~(1<<0); + } +} diff --git a/keyboard/clueboard2/Makefile b/keyboard/clueboard2/Makefile new file mode 100644 index 0000000000..bcce8ac9fa --- /dev/null +++ b/keyboard/clueboard2/Makefile @@ -0,0 +1,141 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = clueboard2 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = clueboard2.c led.c + +ifdef KEYMAP + SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +else + SRC := keymaps/keymap_default.c $(SRC) +endif + +CONFIG_H = config.h + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + +#ifdef BACKLIGHT_ENABLE + SRC := backlight.c $(SRC) +#endif + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/clueboard2/backlight.c b/keyboard/clueboard2/backlight.c new file mode 100644 index 0000000000..5dfa4ba0ae --- /dev/null +++ b/keyboard/clueboard2/backlight.c @@ -0,0 +1,41 @@ + +#include <avr/io.h> +#include "backlight.h" +#include "print.h" + +/* Clueboard 2.0 LED locations: + * + * Capslock: B4, pull high to turn on + * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH + * Page Up: B7, pull high to turn on + * Escape: D6, pull high to turn on + * Arrows: D4, pull high to turn on + */ + +void init_backlight_pin(void) { + print("init_backlight_pin()\n"); + // Set our LED pins as output + DDRD |= (1<<6); // Esc + DDRB |= (1<<7); // Page Up + DDRD |= (1<<4); // Arrows + + // Set our LED pins low + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows +} + +void backlight_set(uint8_t level) { + if ( level == 0 ) { + // Turn off light + PORTD |= (1<<6); // Esc + PORTB |= (1<<7); // Page Up + PORTD |= (1<<4); // Arrows + } else { + // Turn on light + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows + } +} + diff --git a/keyboard/clueboard2/clueboard2.c b/keyboard/clueboard2/clueboard2.c new file mode 100644 index 0000000000..437f8d1e49 --- /dev/null +++ b/keyboard/clueboard2/clueboard2.c @@ -0,0 +1,44 @@ +#include "clueboard2.h" + +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + if (matrix_init_user) { + (*matrix_init_user)(); + } + led_init_ports(); + + #ifdef BACKLIGHT_ENABLE + init_backlight_pin(); + #endif + + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1<<JTD); + MCUCR |= (1<<JTD); +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboard/clueboard2/clueboard2.h b/keyboard/clueboard2/clueboard2.h new file mode 100644 index 0000000000..9f0d42d2b3 --- /dev/null +++ b/keyboard/clueboard2/clueboard2.h @@ -0,0 +1,57 @@ +#ifndef CLUEBOARD2_H +#define CLUEBOARD2_H + +#include "matrix.h" +#include "keymap_common.h" +#include <stddef.h> + + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 55| 56| | 57| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 90| 91| 92| 93| 94| 95| 96| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ + k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ + k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ + k40, k41, k42, k43, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ + { k70, k71, k72, k73, k74, k75, KC_NO, KC_NO }, \ + { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ + { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/clueboard2/config.h b/keyboard/clueboard2/config.h new file mode 100644 index 0000000000..04166c20f6 --- /dev/null +++ b/keyboard/clueboard2/config.h @@ -0,0 +1,100 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2320 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard with RGB Underlighting +#define DESCRIPTION QMK keyboard firmware for Clueboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// COLS: Left to right, ROWS: Top to bottom + +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define COLS (int []){ F0, F1, F4, F5, F6, F7, E6, B1 } + + /* Row pin configuration + * row: 0 1 2 3 4 5 6 7 8 9 + * pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 + */ +#define ROWS (int []){ B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 1 + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTD + #define ws2812_DDRREG DDRD + #define ws2812_pin 7 + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/clueboard2/keymaps/keymap_default.c b/keyboard/clueboard2/keymaps/keymap_default.c new file mode 100644 index 0000000000..73179f94cd --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_default.c @@ -0,0 +1,183 @@ +#include "clueboard2.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + #else + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboard/clueboard2/keymaps/keymap_max.c b/keyboard/clueboard2/keymaps/keymap_max.c new file mode 100644 index 0000000000..714d6390d9 --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_max.c @@ -0,0 +1,147 @@ +#include "clueboard2.h" + +#ifdef ENABLE_RGBLIGHT +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * | Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~| BS| |PgUp| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgDn| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| Up| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Alt| Gui| MHen| Space| Space| Hen| Gui| Alt| Ctrl|Left|Down|Rght| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + MO(_FL), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset/Underlight layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(0), F(6), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(7), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(4), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(1), F(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(3), F(5), F(2)), +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboard/clueboard2/keymaps/keymap_skully.c b/keyboard/clueboard2/keymaps/keymap_skully.c new file mode 100644 index 0000000000..74a03f2f30 --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_skully.c @@ -0,0 +1,108 @@ +#include "clueboard2.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_DEL, BL_STEP, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP, \ + KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL), KC_TRNS,KC_TRNS, MO(_FL),KC_TRNS,KC_TRNS,MO(_FL),KC_HOME,KC_PGDN,KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL),KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboard/clueboard2/led.c b/keyboard/clueboard2/led.c new file mode 100644 index 0000000000..3d074e5d20 --- /dev/null +++ b/keyboard/clueboard2/led.c @@ -0,0 +1,36 @@ + /* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <avr/io.h> +#include "stdint.h" +#include "led.h" + + +void led_init_ports() { + // * Set our LED pins as output + DDRB |= (1<<4); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1<<USB_LED_CAPS_LOCK)) { + // Turn capslock on + PORTB |= (1<<4); + } else { + // Turn capslock off + PORTB &= ~(1<<4); + } +} diff --git a/keyboard/cluepad/Makefile b/keyboard/cluepad/Makefile new file mode 100644 index 0000000000..9d4ddc07fb --- /dev/null +++ b/keyboard/cluepad/Makefile @@ -0,0 +1,136 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = cluepad + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = cluepad.c backlight.c + +ifdef KEYMAP + SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +else + SRC := keymaps/keymap_default.c $(SRC) +endif + +CONFIG_H = config.h + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +# MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +# EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +# CONSOLE_ENABLE = yes # Console for debug(+400) +# COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable numpad's backlight functionality +RGBLIGHT_ENABLE = yes +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/cluepad/backlight.c b/keyboard/cluepad/backlight.c new file mode 100644 index 0000000000..a9caed1df8 --- /dev/null +++ b/keyboard/cluepad/backlight.c @@ -0,0 +1,54 @@ +#include <avr/io.h> +#include "backlight.h" +#include "led.h" + +#include "print.h" + +int pwm_level; + +void led_set_kb(uint8_t usb_led) +{ + print("led_set\n"); +} + +void init_backlight_pin(void) +{ + // Set C7 to output + DDRC |= (1<<7); + + // Initialize the timer + TC4H = 0x03; + OCR4C = 0xFF; + TCCR4A = 0b10000010; + TCCR4B = 0b00000001; +} + +void backlight_set(uint8_t level) +{ + // Determine the PWM level + switch (level) + { + case 0: + // 33% + pwm_level = 0x54; + break; + case 1: + // 66% + pwm_level = 0xA8; + break; + case 2: + // 100% + pwm_level = 0xFF; + break; + case 3: + // 0% + pwm_level = 0x00; + break; + default: + xprintf("Unknown level: %d\n", level); + } + + // Write the PWM level to the timer + TC4H = pwm_level >> 8; + OCR4A = 0xFF & pwm_level; +} diff --git a/keyboard/cluepad/cluepad.c b/keyboard/cluepad/cluepad.c new file mode 100644 index 0000000000..d55b999605 --- /dev/null +++ b/keyboard/cluepad/cluepad.c @@ -0,0 +1,39 @@ +#include "cluepad.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + if (matrix_init_user) { + (*matrix_init_user)(); + } + + #ifdef BACKLIGHT_ENABLE + init_backlight_pin(); + #endif + + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1<<JTD); + MCUCR |= (1<<JTD); +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboard/cluepad/cluepad.h b/keyboard/cluepad/cluepad.h new file mode 100644 index 0000000000..36bf591e4b --- /dev/null +++ b/keyboard/cluepad/cluepad.h @@ -0,0 +1,41 @@ +#ifndef CLUEPAD_H +#define CLUEPAD_H + +#include "matrix.h" +#include "keymap_common.h" +#include <stddef.h> + + +/* Cluepad matrix layout + * .-------------------. + * |NLCK| /| *| -| + * |-------------------| + * | 7| 8| 9| | + * |--------------| | + * | 4| 5| 6| +| + * |-------------------| + * | 1| 2| 3| | + * |--------------| | + * | 0| .| Ent| + * '-------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, \ + k30, k31, k32, k33, \ + k40, k42 \ +) { \ + { k00, k01, k02, k03, }, \ + { k10, k11, k12, k13, }, \ + { k20, k21, k22, KC_NO, }, \ + { k30, k31, k32, k33, }, \ + { k40, KC_NO, k42, KC_NO } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/cluepad/config.h b/keyboard/cluepad/config.h new file mode 100644 index 0000000000..5ed421a6e0 --- /dev/null +++ b/keyboard/cluepad/config.h @@ -0,0 +1,102 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2312 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT Cluepad with RGB Underlighting +#define DESCRIPTION QMK keyboard firmware for Cluepad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +// COLS: Left to right, ROWS: Top to bottom + +/* Column pin configuration + * col: 0 1 2 3 + * pin: F4 E6 B1 D2 + */ +#define COLS (int []){ F4, E6, B1, D2 } + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: + */ +#define ROWS (int []){ B0, D3, D5, D4, D6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Number of backlighting levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTF + #define ws2812_DDRREG DDRF + #define ws2812_pin 6 + #define RGBLED_NUM 4 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* Debug forcibly enabled */ +#define ALWAYS_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/cluepad/keymaps/keymap_default.c b/keyboard/cluepad/keymaps/keymap_default.c new file mode 100644 index 0000000000..8ba49952f6 --- /dev/null +++ b/keyboard/cluepad/keymaps/keymap_default.c @@ -0,0 +1,122 @@ +#include "cluepad.h" + +#include "backlight.h" +#include "rgblight.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * .-------------------. + * |NL F| /| *| -| + * |-------------------| + * | 7| 8| 9| | + * |--------------| | + * | 4| 5| 6| +| + * |-------------------| + * | 1| 2| 3| | + * |--------------| | + * | 0| .| Ent| + * '-------------------' + */ +[_BL] = KEYMAP( + LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_P4, KC_P5, KC_P6, \ + KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT), + + /* Keymap _FL: Function Layer + * .-------------------. + * |NL F| | | Fn0| + * |-------------------| + * | | Fn4| | | + * |--------------| | + * | Fn3|BL_S| Fn2| Fn6| + * |-------------------| + * | | Fn5| | | + * |--------------| | + * | Fn1| | Fn7| + * '-------------------' + */ +[_FL] = KEYMAP( + LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \ + KC_TRNS, F(4), KC_TRNS, F(6), \ + F(3), BL_STEP, F(2), \ + KC_TRNS, F(5), KC_TRNS, F(7), \ + F(1), KC_TRNS) +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} + diff --git a/keyboard/ergodox_ez/keymaps/ab/ab.hex b/keyboard/ergodox_ez/keymaps/ab/ab.hex new file mode 100644 index 0000000000..1659ae5802 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/ab.hex @@ -0,0 +1,1146 @@ +:100000000C940F020C9453020C9453020C94530260
+:100010000C9453020C9453020C9453020C9453020C
+:100020000C9453020C9453020C94190C0C94EB0C8A
+:100030000C9453020C9453020C9453020C945302EC
+:100040000C9453020C94CF210C9453020C94530241
+:100050000C9453020C94631B0C9453020C945302A3
+:100060000C9453020C9453020C9453020C945302BC
+:100070000C9453020C9453020C9453020C945302AC
+:100080000C9453020C9453020C9453020C9453029C
+:100090000C9453020C9453020C9453020C9453028C
+:1000A0000C9453020C9453020C945302500D720D95
+:1000B0005D0E720D5D0EB40DD70D5D0E2C0E3F0E54
+:1000C000391139117A117A11BC11F811F813F8139A
+:1000D0001012F81307130713D213F813F813E613CB
+:1000E00035002B003971E100E00000001E00140013
+:1000F00004001D0029002F001F001A0016001B001D
+:10010000E3004C002000080007000600E2002C007D
+:100110002100150009001900E20026022200170044
+:100120000A000500000006012300B60000004B0095
+:1001300000002F022400B70000004E000000300233
+:1001400025001C000B0011000000190126001800FA
+:100150000D0010005200270227000C000E00360090
+:1001600050002A002D0012000F0037004F00280019
+:100170002E00130033003800510030002A003100F7
+:100180002800340001540000290001000100010092
+:10019000010000003A00010001000100010001001F
+:1001A0003B000100F2000100010001003C00F000F2
+:1001B000F1000100F40000503D000100F3000100D7
+:1001C000F50001003E0001000100010000000100F7
+:1001D0003F0001000000010000000100400001009C
+:1001E00000000100000001004100010001000100C9
+:1001F00000000100420001000100010001000100B7
+:100200004300010001000100AA00010044000100B8
+:1002100001000100A90001004500010001000100EA
+:10022000A80001002A000100AE000100010000004A
+:1002300016034500720067006F0044006F007800ED
+:10024000200045005A0000001603450072006700B8
+:100250006F0044006F007800200045005A00000045
+:100260000403090409026D00040100A0FA09040056
+:10027000000103010100092111010001223F0007D3
+:1002800005810308000A09040100010301020009B5
+:100290002111010001224D000705820308000A090F
+:1002A00004020001030000000921110100012236AF
+:1002B000000705830308000A090403000103000086
+:1002C00000092111010001223900070584031000F3
+:1002D000011201100100000008EDFE0713010001EA
+:1002E00002000105010906A101050719E029E7152A
+:1002F0000025019508750181020508190129059558
+:1003000005750191029501750391010507190029F1
+:100310007715002501957875018102C005010980D6
+:10032000A101850216010026B7001A01002AB700B4
+:10033000751095018100C0050C0901A10185031606
+:100340000100269C021A01002A9C02751095018169
+:1003500000C005010902A1010901A1000509190157
+:100360002905150025019505750181029501750383
+:1003700081010501093009311581257F9502750834
+:10038000810609381581257F950175088106050CC0
+:100390000A38021581257F950175088106C0C005C0
+:1003A000010906A101050719E029E71500250195B6
+:1003B0000875018102950175088101050819012957
+:1003C00005950575019102950175039101050719C0
+:1003D0000029FF150025FF950675088100C0000063
+:1003E000000000000000000000010204060A0F17D0
+:1003F000202C3A4A5D71879DB3C7DAE9F5FCFFFC12
+:10040000F5E9DAC7B39D87715D4A3A2C20170F0AC8
+:10041000060402010000000000000000000011249A
+:100420001FBECFEFDAE0DEBFCDBF04B603FE24C0AF
+:100430008091EE019091EF01A091F001B091F10156
+:100440008730904BA740B04BB9F41092EE01109258
+:10045000EF011092F0011092F10114BE84B7877F72
+:1004600084BF88E10FB6F89480936000109260001A
+:100470000FBEE0E0FFE3099511E0A0E0B1E0EAE49F
+:10048000F7E402C005900D92A433B107D9F721E03B
+:10049000A4E3B1E001C01D92AE3EB207E1F70E94B5
+:1004A0005F090C94A3230C94000061110BC0FC01A4
+:1004B0008281882321F085EE0E94C10F03C085EE62
+:1004C0000E94891080E090E0089508956091B10144
+:1004D0007091B2018091B3019091B4010E948A1A87
+:1004E00056985E9825982D9826982E9827982F989C
+:1004F000813019F0823021F00895259A2D9A0895BF
+:10050000269A2E9A08950C94660256985E9825981D
+:100510002D9826982E9827982F988FEF90E09093FB
+:1005200089008093880090938B0080938A00909339
+:100530008D0080938C00259A2D9A2FEF80E792E012
+:10054000215080409040E1F700C00000269A2E9A8A
+:100550002FEF80E792E0215080409040E1F700C00B
+:100560000000279A2F9A2FEF80E792E021508040D9
+:100570009040E1F700C0000025982D982FEF80E70C
+:1005800092E0215080409040E1F700C000002698A2
+:100590002E982FEF80E792E0215080409040E1F7C5
+:1005A00000C0000027982F9856985E9825982D989F
+:1005B00026982E9827982F98089589EA809380008E
+:1005C00089E08093810024982C983F988AB18F7499
+:1005D0008AB96E98479A8BB1806B8BB9769A0E94D4
+:1005E00085020C94650280E28093000180913401C1
+:1005F00081110EC00E94420381E0809334012FEFED
+:1006000083ED90E3215080409040E1F700C000006E
+:1006100080E40E9448038093000181112EC00E9453
+:10062000720380930001811128C00E94720380939D
+:100630000001811122C08FE30E94720380930001A8
+:1006400081111BC00E946A0380E40E9448038093CA
+:100650000001811112C08CE00E947203809300019E
+:1006600081110BC00E94720380930001811105C0AB
+:100670008FE30E947203809300010E946A038091BD
+:10068000000108951092B9008AE08093B80008959F
+:1006900094EA9093BC009091BC0097FFFCCF90919E
+:1006A000B900987F983021F0903111F081E00895E1
+:1006B0008093BB0084E88093BC008091BC0087FFDE
+:1006C000FCCF8091B900887F883111F0803471F7B8
+:1006D00080E0089584E98093BC008091BC0084FD93
+:1006E000FCCF08958093BB0084E88093BC00809188
+:1006F000BC0087FFFCCF9091B900987F81E09832D1
+:1007000009F480E0089584E88093BC008091BC00E7
+:1007100087FFFCCF8091BB0008958091000181117B
+:1007200015C080E40E9448038093000181110CC031
+:1007300082E10E94720380930001811105C08FEF56
+:100740000E947203809300010E946A0384B1807F3B
+:1007500084B985B1807F85B98AB1837F8AB98BB12D
+:10076000837F8BB93E98469808950E94F302809348
+:1007700000010E948D0380B38C7080BB81B3836FB6
+:1007800081BBA6E3B1E0E4E4F1E08EE08E0F1192CC
+:100790001D928E13FCCF0C94DD02BF92CF92DF929C
+:1007A000EF92FF920F931F93CF93DF9380910001FD
+:1007B000882379F0809135018F5F80933501811115
+:1007C00008C00E94F30280930001811102C00E94C0
+:1007D000850206E311E0C0E0D0E0DD24D39482E09E
+:1007E000C82EEE24E394F12CC730D10500F580919A
+:1007F0000001811164C080E40E94480380930001DD
+:10080000811112C082E10E94720380930001811164
+:100810000BC0C7010C2E01C0880F0A94EAF780951F
+:100820000E947203809300010E946A0348C0CA308C
+:10083000A1F028F4C83059F0C93061F005C0CC30BF
+:1008400089F070F0CD3089F0209A289810C0219A54
+:1008500029980DC0229A2A980AC0239A2B9807C07B
+:10086000529A01C0539A5B9802C03E9A469890EA09
+:100870009A95F1F79FB1799902C082E001C080E0BA
+:1008800091709D25982B7C9902C084E001C080E086
+:10089000892B7D9902C038E001C030E0832B7E991E
+:1008A00002C020E101C020E0822B9FB19095991FEA
+:1008B0009927991F9295990F907E892B0FC080914F
+:1008C0000001811149C080E40E9448038093000127
+:1008D000882379F1B12C0E946A038B2DF801908155
+:1008E000981719F08083C09201010E948D03219610
+:1008F0000F5F1F4FCE30D10509F076CF80910101F7
+:10090000882361F1815080930101882339F08FE9B8
+:100910009FE00197F1F700C0000020C0A4E4B1E01F
+:10092000E6E3F1E0CF01825F91919D938E13FCCFBE
+:1009300015C083E10E947203809300018111CACF28
+:1009400081E40E944803809300018111C3CF0E947B
+:100950008303B82EB094BFCF80E0C0CF0E94830243
+:1009600081E0DF91CF911F910F91FF90EF90DF9089
+:10097000CF90BF900895E82FF0E0EC5BFE4F8081B0
+:1009800008950895089596E0799FF001112494E563
+:10099000899FE00DF11D1124E60FF11DEE0FFF1FE1
+:1009A000E052FF4F859194910895880F991FFC01A3
+:1009B000E05AF040859194910895880F991FFC01A9
+:1009C000E052FF4F8591949108950F931F93CF9319
+:1009D000DF93EC018115904350F5C11580E2D807F3
+:1009E00008F0B3C0CB3BD10590F4C83AD10508F06C
+:1009F0005AC0C53AD10508F04BC0C430D10508F043
+:100A0000BBC1219709F0B5C101E010E0F5C1CF3FAE
+:100A1000D10511F008F0B0C1C03FD10508F092C077
+:100A2000CE01805E9109089708F4A6C1A2C1C11544
+:100A300091E5D907A8F4C23020E5D20708F09EC09E
+:100A4000C11580E5D80709F485C008F091C0C1152B
+:100A500020E4D20708F08DC1DD278E01106CCCC1D7
+:100A6000C11580E8D80758F4C11590E7D90708F0F8
+:100A70007CC1C11520E6D20708F422C17AC1C11594
+:100A800080E9D80708F075C1DF708E01106AB4C123
+:100A9000C53AD10509F472C1C63AD10509F071C150
+:100AA00002E810E4A9C1C83AD10509F46DC1C93AF8
+:100AB000D10509F46CC1CA3AD10509F46BC1CB3A2E
+:100AC000D10509F46AC1CC3AD10509F469C1CD3A1E
+:100AD000D10509F468C1C03BD10509F467C1CE3A1C
+:100AE000D10509F466C1CF3AD10509F465C1C13B0E
+:100AF000D10509F464C1C23BD10509F463C1C33B0C
+:100B0000D10509F462C1C43BD10509F461C1C53BFB
+:100B1000D10509F460C1C63BD10509F45FC1C73BEB
+:100B2000D10509F45EC1C83BD10509F45DC1C93BDB
+:100B3000D10509F45CC1CA3BD10509F45BC100E0F1
+:100B400014E45AC18E01106557C1CE019F700E94F6
+:100B5000DD0453C10E941B149FEF24E38CE09150ED
+:100B600020408040E1F700C000000E94881B44C183
+:100B70008091CD0181608093CD013EC10E94321DE4
+:100B8000811102C00E94181D0E944F1D90E0909399
+:100B9000EE018093ED01C23090E5D90721F48091F8
+:100BA000ED01816086C0C43020E5D20721F4809138
+:100BB000ED0182607EC0C63080E5D80721F48091C7
+:100BC000ED01846076C0C83090E5D90719F48091B2
+:100BD000ED0127C0CA3020E5D20721F48091ED0154
+:100BE000806167C0CC3080E5D80721F48091ED01A9
+:100BF00080625FC0CE3090E5D90721F48091ED018D
+:100C0000806457C0C03120E5D20721F48091ED0106
+:100C100080684FC0C23180E5D80729F48091ED018A
+:100C20008460886046C0C33090E5D90721F4809184
+:100C3000ED018E7F3EC0C53020E5D20721F48091C2
+:100C4000ED018D7F36C0C73080E5D80721F4809153
+:100C5000ED018B7F2EC0C93090E5D90719F4809142
+:100C6000ED0126C0CB3020E5D20721F48091ED01C3
+:100C70008F7E1FC0CD3080E5D80721F48091ED0133
+:100C80008F7D17C0CF3090E5D90721F48091ED0119
+:100C90008F7B0FC0C13120E5D20721F48091ED0197
+:100CA0008F7707C0C331D04531F48091ED018B7F40
+:100CB000877F8093ED018091ED010E94531D9CC0C0
+:100CC0008D2F99278F70992781309105D9F49E0136
+:100CD0002370332702C0880F991F2A95E2F79C687A
+:100CE0008E0144E0000F111F4A95E1F700271370B1
+:100CF000802B912B53E0CC0FDD1F5A95E1F7C07686
+:100D0000DD272FC08230910531F4DC2FCC278E01F6
+:100D1000016F106A71C08330910569F4CE01837050
+:100D2000992701E010E002C0000F111F8A95E2F739
+:100D3000C8019C680FC0049709F05EC0CE018370A3
+:100D4000992701E010E002C0000F111F8A95E2F719
+:100D5000C8019A6823E0CC0FDD1F2A95E1F7C07E19
+:100D6000D7708C010C2B1D2B47C0DF708E011062D9
+:100D700043C000E010E040C08E013EC001E810E436
+:100D80003BC003E810E438C002EE14E435C009EEBD
+:100D900014E432C00AEE14E42FC005EB14E42CC0B6
+:100DA00006EB14E429C007EB14E426C00CEC14E4B1
+:100DB00023C00DEC14E420C003E815E41DC00AE8CC
+:100DC00015E41AC002E915E417C004E915E414C0DB
+:100DD00001E216E411C003E216E40EC004E216E4D8
+:100DE0000BC005E216E408C006E216E405C007E2FF
+:100DF00016E402C00AE216E4C801DF91CF911F9108
+:100E00000F91089596E0799FF001112494E5899F50
+:100E1000E00DF11D1124E60FF11DEE0FFF1FE05252
+:100E2000FF4F85919491803E9105E0F4803C9105BF
+:100E300058F58133910509F46FC048F48932910562
+:100E400009F463C08A32910509F46DC072C0893318
+:100E50009105E9F082389105D1F08533910509F4C7
+:100E60004DC067C0833E910581F138F4803E910505
+:100E7000B9F0823E9105D9F05CC0863E910561F1E2
+:100E8000873E9105A1F155C00E94D5040895209197
+:100E9000ED0120FD02C021FF4CC080EE90E049C072
+:100EA0008091ED0180FFF9CF89E390E042C080910D
+:100EB000ED0182FF0EC08091ED0184FF03C080E050
+:100EC00090E037C083EE90E034C08091ED0182FF66
+:100ED000F2CF82EE90E02DC08091ED0183FF0BC038
+:100EE0008091ED0184FDEBCF87EE90E022C08091F0
+:100EF000ED0183FFF5CF86EE90E01BC08091ED0100
+:100F000085FF07C089E290E014C08091ED0185FF64
+:100F1000F9CF85E390E00DC08091ED0186FF07C019
+:100F20008AE290E006C08091ED0186FFF9CF81E36F
+:100F300090E00E94E504089508950C949C07809128
+:100F400062010895CF93DF9300D01F92CDB7DEB733
+:100F50002091E401243019F523E029839B838A83BF
+:100F60002093E9008FEF9091E800815095FD06C035
+:100F700095ED9A95F1F700008111F5CF8091E80089
+:100F800085FF0DC040E050E063E070E0CE010196C7
+:100F90000E940C0A8091E8008E778093E8000F9001
+:100FA0000F900F90DF91CF910895CF93DF9300D0F2
+:100FB0001F92CDB7DEB72091E401243021F522E065
+:100FC00029839B838A8383E08093E9008FEF90914C
+:100FD000E800815095FD06C095ED9A95F1F7000067
+:100FE0008111F5CF8091E80085FF0DC040E050E011
+:100FF00063E070E0CE0101960E940C0A8091E80047
+:101000008E778093E8000F900F900F90DF91CF9133
+:1010100008952091E4012430F1F422E02093E900C6
+:101020002FEF3091E800215035FD06C035ED3A959F
+:10103000F1F700002111F5CF2091E80025FF0BC04A
+:1010400040E050E065E070E00E940C0A8091E8000A
+:101050008E778093E8000895CF93DF93EC01809121
+:10106000E401843009F046C090910C019923D9F035
+:1010700090910D019923B9F08093E9008FEF909141
+:10108000E800815095FD06C095E19A95F1F70000C2
+:101090008111F5CF8091E80085FF2CC040E050E041
+:1010A00060E170E017C081E08093E9008FEF9091DC
+:1010B000E800815095FD06C095ED9A95F1F7000086
+:1010C0008111F5CF8091E80085FF14C040E050E029
+:1010D00068E070E0CE010E940C0A8091E8008E77F3
+:1010E0008093E80080E1FE01A2E5B1E001900D925D
+:1010F0008A95E1F7DF91CF9108958091E301811105
+:1011000009C00E949E0B0E94FB0B8091E20084604C
+:101110008093E20008951092E301089508950C94DD
+:10112000BC210E941F1B0E94C2210E94980E0C9499
+:101130009D0742E061EC81E00E94180B42E061EC07
+:1011400082E00E94180B42E061EC83E00E94180BE1
+:1011500042E161EC84E00C94180B8091E60183304D
+:1011600009F455C030F4813071F0823009F48EC03A
+:1011700008958A3009F47AC08B3009F460C0893050
+:1011800009F09CC020C08091E501813A09F096C029
+:101190008091E800877F8093E8008091E901909139
+:1011A000EA01892B21F060E080E090E003C060E17B
+:1011B00082E591E070E00E94550A8091E8008B770B
+:1011C0008093E80008958091E501813209F076C0AE
+:1011D0008091E9019091EA01009719F0039709F0D5
+:1011E0006DC08091E800877F8093E8008091E800DF
+:1011F00082FD05C08091E4018111F8CF5FC080912C
+:10120000F100809362018091E8008B7753C0809158
+:10121000E501813A09F052C08091E9019091EA011B
+:10122000892B09F04BC08091E800877F8093E8000C
+:101230008091E80080FFFCCF80910C0136C0809146
+:10124000E5018132D9F58091E9019091EA01892B7C
+:10125000A9F58091E800877F8093E8000E944D0BFC
+:101260008091E70180930C010C941B148091E5019F
+:10127000813221F58091E800877F8093E8000E9409
+:101280004D0B8091E8018093630108958091E50101
+:10129000813AA1F48091E800877F8093E8008091F3
+:1012A000E80080FFFCCF809163018093F100809182
+:1012B000E8008E778093E8000C944D0B089584B776
+:1012C000877F84BF88E10FB6F89480936000109206
+:1012D00060000FBE90E080E80FB6F8948093610044
+:1012E000909361000FBE0E94E70E0E949E0B0E9429
+:1012F000FB0B8091E20084608093E20078940E946E
+:10130000760E0E94E90E82E091E00E94930E0E9408
+:10131000AA218091E401853069F40E94DD1A809150
+:10132000E2018823B1F30E940B1B882391F30E94F2
+:10133000F609EFCF0E94EF0EECCF292F3327233091
+:101340003105A9F06CF42130310509F442C0223096
+:10135000310509F043C08DE690E024E632E042C05A
+:1013600021323105C9F02232310519F137C09927F0
+:101370008130910541F08230910541F0892B71F562
+:10138000E0E6F2E005C0E8E4F2E002C0E0E3F2E00B
+:10139000849190E09F0126C0643000F5E62FF0E0D4
+:1013A000EE0FFF1FEE5DFE4F2081318189E090E05E
+:1013B00019C0643098F4E62FF0E0DF01AA0FBB1FDC
+:1013C000A65EBE4F2D913C91EA5EFE4F808190E07B
+:1013D00009C082E190E021ED32E004C080E090E0BD
+:1013E00020E030E0FA0131832083089580E189BD57
+:1013F00082E189BD09B400FEFDCF8091D8008F7DC8
+:101400008093D8008091E00082608093E00080911A
+:10141000E00081FDFCCF0895CF92DF92EF92FF9222
+:101420000F931F93CF93DF937C018B01EA010E94FE
+:101430006E0B811131C0209731F088819981081B92
+:10144000190BE80EF91EC12CD12C0115110519F14B
+:101450008091E80085FD14C08091E8008E7780932C
+:10146000E800209741F0888199818C0D9D1D99831A
+:10147000888385E011C00E946E0B882331F30CC075
+:10148000F70181917F018093F10001501109FFEF75
+:10149000CF1ADF0ADACF80E0DF91CF911F910F9151
+:1014A000FF90EF90DF90CF9008952091EB01309165
+:1014B000EC012617370748F06115710539F42091C2
+:1014C000E8002E772093E80001C0B901FC0120E07C
+:1014D00061157105B9F18091E401882309F440C0D8
+:1014E000853009F43FC08091E80083FD3DC08091C4
+:1014F000E80082FF06C08091E80082FF26C080E0FD
+:1015000008958091E80080FFE3CF2091F30080915F
+:10151000F20090E0922B6115710551F08830910531
+:1015200038F421912093F100615071090196F3CFB5
+:1015300021E0089709F020E08091E8008E77809301
+:10154000E800C6CF2111C7CFD6CF8091E401882310
+:1015500039F0853039F08091E80083FFCCCF04C0AA
+:1015600082E0089583E0089581E008952091EB01E1
+:101570003091EC012617370748F06115710539F4F1
+:101580002091E8002E772093E80001C0B901FC010A
+:1015900020E061157105C1F18091E401882309F40F
+:1015A00041C0853009F440C08091E80083FD3EC011
+:1015B0008091E80082FF06C08091E80082FF27C08A
+:1015C00080E008958091E80080FFE3CF2091F30050
+:1015D0008091F20090E0922B6115710559F08830EE
+:1015E000910540F424912093F100319661507109E6
+:1015F0000196F2CF21E0089709F020E08091E80001
+:101600008E778093E800C5CF2111C6CFD5CF8091CA
+:10161000E401882339F0853039F08091E80083FFB8
+:10162000CBCF04C082E0089583E0089581E008955F
+:10163000982F973058F59093E900981739F07091EA
+:10164000EC002091ED005091F00003C0242F762F84
+:1016500050E021FF19C03091EB003E7F3093EB004A
+:101660003091ED003D7F3093ED003091EB00316023
+:101670003093EB007093EC002093ED005093F0005A
+:101680002091EE0027FF07C09F5FD3CF8F7080931C
+:10169000E90081E0089580E008958091E50187FDEB
+:1016A00005C08091E80080FF0EC012C08091E80064
+:1016B00082FD05C08091E4018111F8CF08958091E9
+:1016C000E8008B7708C08091E4018111EACF08958A
+:1016D0008091E8008E778093E80008958091E4007F
+:1016E0009091E50045E62091EC0020FF21C020917B
+:1016F000E80020FD21C02091E401222389F025305B
+:1017000089F02091EB0025FD0FC02091E40030917D
+:10171000E5002817390739F3415041F0C901E3CFFB
+:1017200082E0089583E0089581E0089584E00895BB
+:101730002091E80022FFDFCF80E008950E940C0C8A
+:101740000E94140CE0EEF0E0808181608083E8ED7F
+:10175000F0E080818F77808319BCA7EDB0E08C9199
+:101760008E7F8C9380818F7E80831092E301089519
+:101770000F931F93CF93DF930E940C0C0E94140CC5
+:10178000C8EDD0E088818F778883888180688883DE
+:1017900088818F7D888319BC1092E4011092E0014A
+:1017A0001092E2011092E10100EE10E0F801808158
+:1017B0008B7F808388818160888342E060E080E065
+:1017C0000E94180BE1EEF0E080818E7F8083E2EED4
+:1017D000F0E0808181608083808188608083F8016F
+:1017E00080818E7F8083888180618883DF91CF9123
+:1017F0001F910F910895E8EDF0E080818F7E808346
+:10180000E7EDF0E080818160808384E082BF81E049
+:101810008093E3010C94B80BE8EDF0E080818E7FBB
+:1018200080831092E20008951092DA001092E10095
+:1018300008951F920F920FB60F9211242F933F938A
+:101840004F935F936F937F938F939F93AF93BF93C8
+:10185000EF93FF938091E10082FF0BC08091E20043
+:1018600082FF07C08091E1008B7F8093E1000E949E
+:10187000750E8091DA0080FF1FC08091D80080FF34
+:101880001BC08091DA008E7F8093DA008091D900AE
+:1018900080FF0DC080E189BD82E189BD09B400FEF1
+:1018A000FDCF81E08093E4010E947D0805C019BC52
+:1018B0001092E4010E948B088091E10080FF19C022
+:1018C0008091E20080FF15C08091E2008E7F8093BE
+:1018D000E2008091E20080618093E2008091D80074
+:1018E00080628093D80019BC85E08093E4010E9457
+:1018F0008F088091E10084FF30C08091E20084FF76
+:101900002CC080E189BD82E189BD09B400FEFDCF14
+:101910008091D8008F7D8093D8008091E1008F7EE8
+:101920008093E1008091E2008F7E8093E2008091BD
+:10193000E20081608093E2008091E001882311F051
+:1019400084E007C08091E30087FF02C083E001C00C
+:1019500081E08093E4010E9491088091E10083FF7F
+:1019600029C08091E20083FF25C08091E100877F3C
+:101970008093E10082E08093E4011092E001809185
+:10198000E1008E7F8093E1008091E2008E7F809362
+:10199000E2008091E20080618093E20042E060E03A
+:1019A00080E00E94180B8091F00088608093F00026
+:1019B0000E948E08FF91EF91BF91AF919F918F91FF
+:1019C0007F916F915F914F913F912F910F900FBE3B
+:1019D0000F901F9018951F920F920FB60F9211241F
+:1019E0002F933F934F935F936F937F938F939F9327
+:1019F000AF93BF93CF93EF93FF93C091E900CF7064
+:101A00008091EC001092E9008091F000877F809334
+:101A1000F00078940E94270D1092E9008091F00068
+:101A200088608093F000C093E900FF91EF91CF911F
+:101A3000BF91AF919F918F917F916F915F914F91E6
+:101A40003F912F910F900FBE0F901F9018951F93ED
+:101A5000CF93DF93CDB7DEB7AA970FB6F894DEBF6A
+:101A60000FBECDBFE5EEF1E08091F100819321E062
+:101A7000ED3EF207C9F70E94AD088091E80083FFB0
+:101A80001CC12091E5013091E601832F90E08A305E
+:101A9000910508F012C1FC01EA5AFF4F0C94532340
+:101AA000203881F0223809F008C18091E9018F7057
+:101AB0008093E9008091EB0085FB882780F91092E4
+:101AC000E90006C08091E1019091E20191118260EC
+:101AD0009091E800977F9093E8008093F100109236
+:101AE000F100C5C0822F8D7F09F0E7C0222319F0D5
+:101AF000223061F0E2C08091E701813009F0DDC061
+:101B0000333009F080E08093E20128C08091E70142
+:101B1000811124C02091E9012F7009F4CEC02093D7
+:101B2000E9008091EB0080FF19C08091EB00333019
+:101B300011F4806211C080618093EB0081E090E03D
+:101B4000022E01C0880F0A94EAF78093EA001092EF
+:101B5000EA008091EB0088608093EB001092E9002E
+:101B60008091E800877F86C02111A7C01091E7010E
+:101B70001F778091E3008078812B8093E300809130
+:101B8000E800877F8093E8000E944D0B8091E80079
+:101B900080FFFCCF8091E30080688093E3001123F5
+:101BA00011F083E001C082E08093E40186C02058F8
+:101BB000223008F082C08091E7019091E8018C3DCD
+:101BC00023E0920779F583E08A838AE289834FB71D
+:101BD000F894DE01139620E03EE051E2E32FF0E0BE
+:101BE00050935700E49120FF03C0E295EF703F5FF0
+:101BF000EF708E2F90E0EA3010F0C79601C0C096CB
+:101C00008D939D932F5F243149F74FBF8091E8005A
+:101C1000877F8093E8006AE270E0CE0101960E941F
+:101C2000550A14C0AE014F5F5F4F6091E9010E94F9
+:101C30009D09009709F441C02091E800277F209377
+:101C4000E800BC0189819A810E94B60A8091E8006F
+:101C50008B778093E80031C0203879F58091E800D7
+:101C6000877F8093E8008091E0018093F10080916C
+:101C7000E8008E778093E8000E944D0B1EC0211172
+:101C80001CC09091E7019230C0F48091E800877FFA
+:101C90008093E8009093E0010E944D0B8091E00159
+:101CA000811104C08091E30087FF02C084E001C07D
+:101CB00081E08093E4010E9499088091E80083FF0D
+:101CC0000AC08091E800877F8093E8008091EB0054
+:101CD00080628093EB00AA960FB6F894DEBF0FBE29
+:101CE000CDBFDF91CF911F9108950895CF9380913B
+:101CF000E4018823B1F08091E9008F709091EC00AD
+:101D000090FF02C090E801C090E0C92FC82B10924C
+:101D1000E9008091E80083FD0E94270DCF70C093F9
+:101D2000E900CF9108959093690180936801089527
+:101D3000E0916801F0916901309721F00190F08104
+:101D4000E02D099480E00895E0916801F091690127
+:101D5000309721F00280F381E02D09940895E091FD
+:101D60006801F0916901309721F00480F581E02D40
+:101D700009940895209166013091670182179307B5
+:101D800071F09093670180936601E0916801F09192
+:101D90006901309721F00680F781E02D09940895BC
+:101DA00020916401309165018217930771F090933F
+:101DB000650180936401E0916801F09169013097B9
+:101DC00021F00084F185E02D0994089508950C9484
+:101DD000E60E0E94251B0E94B5030C94EB1BCF92CC
+:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4
+:101DF000DEB72B970FB6F894DEBF0FBECDBF0E94A3
+:101E0000CD038BE6C82E81E0D82E00E010E0E02E56
+:101E1000802F0E94BB04F60141916F01F42EF82639
+:101E2000B1F40F5F1F4F0E30110589F78FEF8983D3
+:101E30008A831B820E942E1B8160782F9D838C8356
+:101E400049815A816B818D810E94920F40C090918F
+:101E5000CD0191FF04C08B870E94C1048B8520E0D7
+:101E600030E04F2D50E0922FBA01022E02C075953E
+:101E700067950A94E2F760FF24C02E83EF8221E089
+:101E800030E0690102C0CC0CDD1C9A95E2F790E0CD
+:101E90008C219D21892B09F420E028870E942E1B8C
+:101EA0008160782F9A8789874E815F8168858A85CE
+:101EB0000E94920FF801E559FE4F8081C826C0822A
+:101EC00006C02F5F3F4F2630310569F6AACF0E942A
+:101ED000D11E10916A010E94980E1817A1F00E945D
+:101EE000980E80936A012B960FB6F894DEBF0FBE52
+:101EF000CDBFDF91CF911F910F91FF90EF90DF90B9
+:101F0000CF900C949D072B960FB6F894DEBF0FBEB2
+:101F1000CDBFDF91CF911F910F91FF90EF90DF9098
+:101F2000CF900895CF93DF93CDB7DEB72B970FB641
+:101F3000F894DEBF0FBECDBF4F83588769877A877D
+:101F40008B87DE01119686E0FD0111928A95E9F7F3
+:101F500085E0FE01379601900D928A95E1F749815F
+:101F60005A816B817C818D819E810E94E7162B9620
+:101F70000FB6F894DEBF0FBECDBFDF91CF910895AD
+:101F80000895CF93C82F882309F4C1C0823859F42B
+:101F90000E94980E81FDBBC089E30E9491190E94A6
+:101FA0005B1A89E30CC0833879F40E94980E80FD97
+:101FB000AEC083E50E9491190E945B1A83E50E94DE
+:101FC000D119CF910C945B1A843859F40E94980E61
+:101FD00082FD9DC087E40E9491190E945B1A87E4EC
+:101FE000EECF8CEF8C0F813A48F48C2F0E940F219A
+:101FF00081118DC08C2F0E949119E3CF80E28C0F4C
+:10200000883048F4C77081E001C0880FCA95EAF7AC
+:102010000E94121AD6CF8BE58C0F833078F4C53A24
+:1020200029F0C63A31F482E890E005C081E890E0FA
+:1020300002C083E890E0CF910C94BA0E88E58C0F33
+:10204000833108F064C0C83A39F1C93A41F1CA3A5B
+:1020500049F1CB3A51F1CC3A59F1CD3A61F1C03B5B
+:1020600069F1CE3A71F1CF3A79F1C13B81F1C23BCE
+:1020700089F1C33B91F1C43B99F1C53BA1F1C63B4A
+:10208000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BAA
+:10209000C9F58AE292E038C082EE90E035C089EE60
+:1020A00090E032C08AEE90E02FC085EB90E02CC02B
+:1020B00086EB90E029C087EB90E026C08CEC90E0A6
+:1020C00023C08DEC90E020C083E891E01DC08AE839
+:1020D00091E01AC082E991E017C084E991E014C050
+:1020E00081E292E011C083E292E00EC084E292E0CD
+:1020F0000BC085E292E008C086E292E005C087E26C
+:1021000092E002C080E090E0CF910C94D00ECF918D
+:102110000895882309F44BC0823859F40E94980E20
+:1021200081FF45C089E30E9491190E945B1A89E3EF
+:102130000CC0833871F40E94980E80FF38C083E58C
+:102140000E9491190E945B1A83E50E94D1190C9498
+:102150005B1A843859F40E94980E82FF28C087E4E5
+:102160000E9491190E945B1A87E4EFCF9CEF980FB1
+:10217000913A58F390E2980F983050F4877091E0BC
+:1021800001C0990F8A95EAF7892F0E94181ADFCFAC
+:102190009BE5980F933020F480E090E00C94BA0E09
+:1021A000885A833120F480E090E00C94D00E08959A
+:1021B000882321F00E94121A0C945B1A0895882338
+:1021C00021F00E94181A0C945B1A0895CF92DF92A6
+:1021D000EF92FF920F931F93CF93DF93CDB7DEB7AC
+:1021E00028970FB6F894DEBF0FBECDBF8C0185E0F7
+:1021F000F801DE01119601900D928A95E1F7F80140
+:10220000D080E180F280558152955F7023813481C6
+:10221000232B39F0FFEFEF1206C081E0DF1203C07D
+:1022200003C081E001C080E080FDE2C2C8015F839D
+:102230000E94C00FD982EA8269817A818F2D0E9423
+:102240008D199E8388870E9441190E9414184E811F
+:102250005F816885FF2029F00E942F1A68855F81C1
+:102260004E81E42FE295EF70F0E0E05AFF4F0C94BE
+:102270005323842F807F142F1F70882311F0129511
+:10228000107FFF20B1F0112309F467C280E2860FAE
+:10229000883028F4812F68870E94121A04C0812F89
+:1022A00068870E94221A688568870E945B1A688581
+:1022B00054C2862F68870E9489106885112309F40B
+:1022C00097C2605E812F683018F40E94181A02C00D
+:1022D0000E94281A28960FB6F894DEBF0FBECDBF15
+:1022E000DF91CF911F910F91FF90EF90DF90CF90F2
+:1022F0000C945B1A242F207F842F8F70203211F0D2
+:102300008295807F662319F0613019F12BC0FF2080
+:10231000B1F0552309F493C1513009F090C12896CA
+:102320000FB6F894DEBF0FBECDBFDF91CF911F91E6
+:102330000F91FF90EF90DF90CF900C94421A5523AD
+:1023400019F0513009F454C28E830E94451A8E81CF
+:1023500089C1FF2021F0523008F04AC270C15111EA
+:1023600047C280C1FF2021F0552309F468C1F5C19F
+:10237000552309F477C105C2242F2695269523708D
+:1023800030E02115310521F021303105C9F030C28E
+:10239000FF2021F0862F942F937002C080E090E000
+:1023A00028960FB6F894DEBF0FBECDBFDF91CF9158
+:1023B0001F910F91FF90EF90DF90CF900C94BA0E89
+:1023C000FF2021F0862F942F937002C080E090E0D0
+:1023D00028960FB6F894DEBF0FBECDBFDF91CF9128
+:1023E0001F910F91FF90EF90DF90CF900C94D00E43
+:1023F000862FFF2019F00E94D91D02C00E94411EA5
+:1024000028960FB6F894DEBF0FBECDBFDF91CF91F7
+:102410001F910F91FF90EF90DF90CF900C94C61E0C
+:10242000842F837009F076C0F110E2C1262F229527
+:1024300026952770220F220F862F8F70C82ED12C41
+:10244000E12CF12C022E04C0CC0CDD1CEE1CFF1C78
+:102450000A94D2F764FF10C06FE070E080E090E073
+:1024600004C0660F771F881F991F2A95D2F76095C1
+:1024700070958095909503C060E070E0CB01242FAB
+:10248000269526952370422F50E042305105D1F019
+:102490004330510559F16C297D298E299F294130FE
+:1024A000510541F128960FB6F894DEBF0FBECDBF9F
+:1024B000DF91CF911F910F91FF90EF90DF90CF9020
+:1024C0000C9439186C297D298E299F2928960FB6DE
+:1024D000F894DEBF0FBECDBFDF91CF911F910F915A
+:1024E000FF90EF90DF90CF900C9453180E94391812
+:1024F000C701B60128960FB6F894DEBF0FBECDBF58
+:10250000DF91CF911F910F91FF90EF90DF90CF90CF
+:102510000C941F18FF2019F0842F817001C086953C
+:10252000882309F465C1262F229526952770220F4E
+:10253000220F862F8F70C82ED12CE12CF12C022E69
+:1025400004C0CC0CDD1CEE1CFF1C0A94D2F764FF07
+:1025500010C06FE070E080E090E004C0660F771F6D
+:10256000881F991F2A95D2F7609570958095909550
+:1025700003C060E070E0CB01242F269526952370E0
+:10258000422F50E042305105D1F04330510559F10E
+:102590006C297D298E299F294130510541F12896CA
+:1025A0000FB6F894DEBF0FBECDBFDF91CF911F9164
+:1025B0000F91FF90EF90DF90CF900C940D196C2944
+:1025C0007D298E299F2928960FB6F894DEBF0FBE6D
+:1025D000CDBFDF91CF911F910F91FF90EF90DF90D2
+:1025E000CF900C9427190E940D19C701B6012896A7
+:1025F0000FB6F894DEBF0FBECDBFDF91CF911F9114
+:102600000F91FF90EF90DF90CF900C94F318603F04
+:10261000C9F118F4603E50F49BC0623F09F460C0F9
+:1026200008F44AC0633F09F46FC092C0162F1F70B0
+:10263000842F8F71FF2099F00E948C18812F28968B
+:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3
+:102650000F91FF90EF90DF90CF900C94D8100E94D4
+:10266000AD18812F28960FB6F894DEBF0FBECDBFF0
+:10267000DF91CF911F910F91FF90EF90DF90CF905E
+:102680000C94DF10FF20A1F05111B2C0842F8F7184
+:1026900028960FB6F894DEBF0FBECDBFDF91CF9165
+:1026A0001F910F91FF90EF90DF90CF900C94D21874
+:1026B000523008F09DC0EACFFF20A1F0842F8F7127
+:1026C00028960FB6F894DEBF0FBECDBFDF91CF9135
+:1026D0001F910F91FF90EF90DF90CF900C948C188A
+:1026E000FF2061F3842F8F7128960FB6F894DEBF18
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053
+:10270000DF90CF900C94AD18FF2091F0842F8F7143
+:1027100028960FB6F894DEBF0FBECDBFDF91CF91E4
+:102720001F910F91FF90EF90DF90CF900C9477184E
+:1027300028960FB6F894DEBF0FBECDBFDF91CF91C4
+:102740001F910F91FF90EF90DF90CF900C946D1838
+:10275000FF20A1F0552309F4B1CF862F28960FB69C
+:10276000F894DEBF0FBECDBFDF91CF911F910F91C7
+:10277000FF90EF90DF90CF900C94C10F552309F498
+:10278000B1CF862F28960FB6F894DEBF0FBECDBF0F
+:10279000DF91CF911F910F91FF90EF90DF90CF903D
+:1027A0000C9489104F70C8010E94550228960FB6EC
+:1027B000F894DEBF0FBECDBFDF91CF911F910F9177
+:1027C000FF90EF90DF90CF900C9494174F70C8015A
+:1027D00028960FB6F894DEBF0FBECDBFDF91CF9124
+:1027E0001F910F91FF90EF90DF90CF900C94C20457
+:1027F00028960FB6F894DEBF0FBECDBFDF91CF9104
+:102800001F910F91FF90EF90DF90CF9008950E945D
+:102810002F1A0E943F1A0E94041A0E945B1A0E94FB
+:10282000721F0E94C61E80E090E00E94BA0E80E0F7
+:1028300090E00C94D00E0E941F1A0C9407140E9472
+:102840008219292F22952F7030E02C3031054CF45D
+:102850002A3031056CF4225031092230310590F4D0
+:1028600007C02C30310551F02F30310539F00AC046
+:10287000803E10F0803F31F481E0089593FB88277B
+:1028800080F9089580E00895CF93DF9300D000D0C1
+:102890001F92CDB7DEB70F900F900F900F900F9053
+:1028A000DF91CF910895CF93DF9300D000D000D077
+:1028B000CDB7DEB726960FB6F894DEBF0FBECDBFFC
+:1028C000DF91CF9108951F93CF93DF93C09179014A
+:1028D00016E080917A01C81799F0D0E01C9FF001B2
+:1028E0001D9FF00D1124E558FE4F408151816281FA
+:1028F0007381848195810E9453142196C770E9CF1A
+:10290000DF91CF911F9108954091AB015091AC019F
+:102910006091AD017091AE018091AF019091B001D5
+:102920000C945314CF938091B00182958F7009F06D
+:102930005FC08091AD01882309F45AC020917901CC
+:10294000A0917A016091AB017091AC018091AE01D0
+:102950009091AF0131E06F3F09F030E0B32FC6E056
+:102960002A1709F445C0009721F07F3F21F44B2F2F
+:1029700003C041E001C040E030E040FD35C0C29FEF
+:10298000F001C39FF00D1124E558FE4F41817413EF
+:102990002BC04081641328C04281411125C043816E
+:1029A00054814817590710F441505109481B590BDD
+:1029B000483C5105C8F48091B0018F7080618093CC
+:1029C000B00186E0829FF001839FF00D1124E05852
+:1029D000FE4F80818F70806180838BEA91E00E943E
+:1029E000E610CF910C9463142F5F3F4F2770B8CF40
+:1029F000CF910895CF92DF92EF92FF920F931F93A2
+:102A0000CF93DF93CDB7DEB762970FB6F894DEBFF2
+:102A10000FBECDBF8C0185E0F801DE011D9601904F
+:102A20000D928A95E1F7D8014C9111965C9111971E
+:102A300012966C9112971396ED90FC9014977091EA
+:102A4000AB01E091AC012091AE013091AF012115B5
+:102A5000310531F0EF3F31F481E07F3F19F403C0DD
+:102A600081E001C080E0B82FB170CB2E80FD6CC139
+:102A7000D090AD01DD2009F4F5C0F091B001E2166F
+:102A8000F30638F0C701821B930B883C910548F090
+:102A90009BC0209530952E0D3F1D283C310508F038
+:102AA00093C08F2F807F09F052C0E51314C07413B8
+:102AB00012C0D62E61110FC0FF70F061F093B0010B
+:102AC0000E9484148BEA91E00E94E6108091B0018C
+:102AD000F80185836CC1EF2831F05F3F31F481E06C
+:102AE0004F3F19F403C081E001C080E080FD03C0C6
+:102AF00081E0862701C080E0F82FF170FF2E80FF73
+:102B00001CC08091790120917A0136E0821709F486
+:102B100028C190E0389FF001399FF00D1124E5584D
+:102B2000FE4F7181571306C07081471303C0728135
+:102B3000671303C001968770E9CFD62E662309F488
+:102B400036C18091B00181608093B00153C0E5131C
+:102B500008C0741306C0611104C0D8011596FC9317
+:102B6000AEC04D875E878D859E856A8B0E941F143F
+:102B70006A89882329F1D62E662311F12091B001AC
+:102B8000822F82958F7090E002970CF460C0809144
+:102B9000AB019091AC0198878F831986FB86EA86FA
+:102BA0002C87CE01079651C0E51731F14D875E871E
+:102BB0008D859E856A8B0E941F146A8981112EC0A3
+:102BC000C8010E94E610A4C08F2F807F69F77E2D78
+:102BD000F98AE88A89890E9444148BEA91E00E946C
+:102BE000E610EBEAF1E086E0DF011D928A95E9F755
+:102BF0000E948414D12CDBC07413D8CF6111D6CFBE
+:102C0000D8011596FC93C8010E94E610EBEAF1E0AA
+:102C100086E0DF011D928A95E9F7C9C0D62E6623AA
+:102C200079F22091B001822F82958F7090E0029707
+:102C300074F08091AB019091AC019A8389831B82DF
+:102C4000FD82EC822E83CE0101960E94E61086E082
+:102C5000F801ABEAB1E001900D928A95E1F70E948C
+:102C600092146FC0E216F30628F0C701821B930B83
+:102C70009C0104C0209530952E0D3F1D283C310548
+:102C800008F052C0D62E662309F49ACFE5132CC063
+:102C900074132AC08091B00180FD1DC0982F9295B9
+:102CA0009F70C9F0D80115968C9315979F3039F015
+:102CB0009F5F9295907F8F70892B15968C93C8019A
+:102CC0000E94E61086E0F801ABEAB1E001900D92B7
+:102CD0008A95E1F736C086E0F801ABEAB1E00190F1
+:102CE0000D928A95E1F763C04D875E878D859E853D
+:102CF0000E941F14882379F086E0F801ABEAB1E066
+:102D000001900D928A95E1F70E9492140E9484141A
+:102D1000DD24D3944CC08091B00181608093B001D8
+:102D2000C8010E94E61043C07E2DF98AE88A89898D
+:102D30000E944414EBEAF1E086E0DF011D928A95DF
+:102D4000E9F70E94841433C0662309F439CF4D8714
+:102D50005E878D859E850E941F14882309F430CFDD
+:102D6000CBCF4D875E878D859E850E948219292F46
+:102D700022952F7030E0223031052CF49F7041F005
+:102D8000811106C00CC0243031052CF49F7049F429
+:102D9000805E883020F0C8010E94E610CF2CDC2C29
+:102DA00006C0D80115969C91907F91F7F8CF8D2D94
+:102DB00062960FB6F894DEBF0FBECDBFDF91CF9104
+:102DC0001F910F91FF90EF90DF90CF9008951F9388
+:102DD000CF93DF93CDB7DEB72C970FB6F894DEBF55
+:102DE0000FBECDBF4F83588769877A878B879C87B3
+:102DF000CE0107960E94FA148823C1F02F813885EE
+:102E00008A859B85892B31F03F3F11F080E003C01C
+:102E10002F3FE1F781E0811147C04F8158856985D7
+:102E20007A858B859C850E9453143EC086E0FE0106
+:102E30003796DE01119601900D928A95E1F7FF8198
+:102E4000E8854A855B854115510531F0EF3F31F446
+:102E500081E0FF3F19F403C081E001C080E080FD04
+:102E600023C020917A0130E0C9010196877099272B
+:102E70006091790170E086179707F1F1F983EA8391
+:102E80005D834C8396E0929FD001939FB00D1124F7
+:102E9000A558BE4FFE01319601900D929A95E1F72B
+:102EA00080937A010E94631416E0809179019091D9
+:102EB0007A01891779F1189FC001112485589E4F16
+:102EC0000E94FA14882331F1E09179011E9FF001EC
+:102ED0001124E558FE4F40815181628173818481C4
+:102EE00095810E9453148091790190E0019687703A
+:102EF000992780937901D9CF0E941B1410927A01EF
+:102F000010927901EBEAF1E086E0DF011D928A95EB
+:102F1000E9F7CACF2C960FB6F894DEBF0FBECDBF2F
+:102F2000DF91CF911F910895EF92FF920F931F931E
+:102F3000CF93DF93FC01009709F46FC0F12CEE24CE
+:102F4000E394EF0121968491843740F4843008F0B3
+:102F500055C0813081F0823021F15FC0853709F49E
+:102F600047C0C0F19CE7980F903708F056C08F77A4
+:102F70000E94891045C08F010E5F1F4FFE01849192
+:102F800090E2980F983050F48770FE2D01C0FF0F2B
+:102F90008A95EAF78F2F0E94321A15C00E94C10F3E
+:102FA00014C08F010E5F1F4FFE01849190E2980FB5
+:102FB000983068F48770FE2D01C0FF0F8A95EAF7FC
+:102FC0008F2F0E94381A0E945B1AE80119C00E94D4
+:102FD0008910FBCFCF010296FE01C491CC2361F092
+:102FE000EFE9FFE03197F1F700C00000C150F6CFE4
+:102FF000CF010296FE01F490EC0102C00E94C10FC5
+:103000008F2D882341F0EFE9FFE03197F1F700C001
+:1030100000008150F6CFFE0194CFDF91CF911F9138
+:103020000F91FF90EF90089508956093B50170930C
+:10303000B6018093B7019093B8010C9407140F93D5
+:103040001F930091B5011091B6012091B701309105
+:10305000B801062B172B282B392B0093B5011093A1
+:10306000B6012093B7013093B8011F910F910C94D2
+:1030700007140F931F930091B5011091B601209191
+:10308000B7013091B8010623172328233923009371
+:10309000B5011093B6012093B7013093B8011F9189
+:1030A0000F910C9407140F931F930091B501109189
+:1030B000B6012091B7013091B801062717272827BC
+:1030C00039270093B5011093B6012093B7013093CF
+:1030D000B8011F910F910C9407141092B101109236
+:1030E000B2011092B3011092B4010C94071441E0A4
+:1030F00050E060E070E004C0440F551F661F771F6A
+:103100008A95D2F74093B1015093B2016093B30115
+:103110007093B4010C94071441E050E060E070E05B
+:1031200004C0440F551F661F771F8A95D2F7809100
+:10313000B1019091B201A091B301B091B401842B7F
+:10314000952BA62BB72B8093B1019093B201A0933E
+:10315000B301B093B4010C94071441E050E060E077
+:1031600070E004C0440F551F661F771F8A95D2F781
+:1031700040955095609570958091B1019091B20104
+:10318000A091B301B091B40184239523A623B72362
+:103190008093B1019093B201A093B301B093B401B5
+:1031A0000C94071441E050E060E070E004C0440F6C
+:1031B000551F661F771F8A95D2F78091B1019091B4
+:1031C000B201A091B301B091B40184279527A6273D
+:1031D000B7278093B1019093B201A093B301B0934C
+:1031E000B4010C9407140F931F930091B101109137
+:1031F000B2012091B3013091B401062B172B282B7B
+:10320000392B0093B1011093B2012093B301309395
+:10321000B4011F910F910C9407140F931F93009109
+:10322000B1011091B2012091B3013091B401062394
+:103230001723282339230093B1011093B20120935F
+:10324000B3013093B4011F910F910C9407140F93A5
+:103250001F930091B1011091B2012091B3013091FF
+:10326000B40106271727282739270093B1011093A7
+:10327000B2012093B3013093B4011F910F910C94CC
+:1032800007140895CF92DF92EF92FF920F931F934E
+:10329000CF93DF93EC01C090B501D090B601E090E0
+:1032A000B701F090B8018091B1019091B201A09165
+:1032B000B301B091B401C82AD92AEA2AFB2A0FE146
+:1032C00010E0B701A601002E04C0769567955795CA
+:1032D00047950A94D2F740FD05C00150110988F7BF
+:1032E00080E007C0BE01802F0E9402070197A9F36A
+:1032F000802FDF91CF911F910F91FF90EF90DF9082
+:10330000CF900895CF93DF93EC010E944219BE0144
+:103310000E940207DF91CF910895CB010E9482198C
+:10332000089590910C019923D9F090910D01992362
+:10333000B9F0982F9695969596959F3088F5E091DF
+:103340000E01F0910F01E90FF11D877021E030E0CF
+:1033500001C0220F8A95EAF78181822B818308952B
+:1033600040910E0150910F0120E030E09FEFFA01F3
+:10337000E20FF31F6281681799F09F3F19F4611102
+:1033800001C0922F2F5F3F4F2E30310581F79F3FB5
+:1033900039F0FA01E90FF11D97FDFA95828308953E
+:1033A000089590910C019923E1F090910D019923DA
+:1033B000C1F0982F9695969596959F3020F5E091BF
+:1033C0000E01F0910F01E90FF11D877021E030E04F
+:1033D00001C0220F8A95EAF7209581812823218355
+:1033E000089540910E0150910F0120E030E0FA0164
+:1033F000E20FF31F9281981301C012822F5F3F4F9B
+:103400002E303105A1F7089581E090E0E0910E01A2
+:10341000F0910F01E80FF91F10820196803191059C
+:10342000A9F708959091CC01982B9093CC01089521
+:1034300080959091CC0198239093CC01089510929F
+:10344000CC0108959091CB01982B9093CB010895D6
+:1034500080959091CB0198239093CB010895109281
+:10346000CB0108959091CA01982B9093CA010895B9
+:1034700080959091CA0198239093CA010895109263
+:10348000CA0108958093B90108951092B901089571
+:1034900040910E0150910F0120E030E080E0FA01F0
+:1034A000E20FF31F918191118F5F2F5F3F4F2F30FC
+:1034B0003105A9F70895E0910E01F0910F01809177
+:1034C000CC018083E0910E01F0910F0180819091F9
+:1034D000CB01892B8083E0910E01F0910F01808157
+:1034E0009091CA01892B80839091B901992361F051
+:1034F000E0910E01F0910F018081892B80830E9461
+:10350000481A81111092B90180910E0190910F011A
+:103510000C94A40ECF92DF92EF92FF920F931F9321
+:103520006C01EE24FF24C114D104E104F10421F460
+:103530006B017C0180E001C080E133272F2D1E2D1F
+:103540000D2D011511052105310519F0885F680160
+:10355000790197018601A4E036952795179507957F
+:10356000AA95D1F7011511052105310519F08C5FD8
+:103570006801790197018601F2E036952795179544
+:103580000795FA95D1F7011511052105310519F0B7
+:103590008E5F68017901B701A60176956795579509
+:1035A0004795452B462B472B09F08F5F1F910F91B5
+:1035B000FF90EF90DF90CF9008958091E4018430E8
+:1035C00039F11092CE0120E488E190E00FB6F89432
+:1035D000A895809360000FBE2093600080E00E9459
+:1035E0009D0783B7817F846083BF83B7816083BF7A
+:1035F0007894889583B78E7F83BF0FB6F894A8958B
+:1036000080916000886180936000109260000FBE1E
+:10361000089508950895CF930E94091B0E94CD0339
+:103620000E940A1BC0E08C2F0E94BB04811104C0C1
+:10363000CF5FCE30C1F701C081E0CF9108950E94E5
+:103640001B140E94980E0C949D0782E084BD93E0A9
+:1036500095BD9AEF97BD80936E0008952FB7F894AB
+:103660008091CF019091D001A091D101B091D20170
+:103670002FBF0895CF92DF92EF92FF920F931F9387
+:103680002FB7F8944091CF015091D0016091D101B2
+:103690007091D2012FBF6A017B01EE24FF248C01BF
+:1036A00020E030E0C016D106E206F30610F44150E7
+:1036B0005109481B590BCA011F910F91FF90EF90C0
+:1036C000DF90CF9008951F920F920FB60F921124A2
+:1036D0008F939F93AF93BF938091CF019091D0012F
+:1036E000A091D101B091D2010196A11DB11D80938D
+:1036F000CF019093D001A093D101B093D201BF919B
+:10370000AF919F918F910F900FBE0F901F901895C2
+:103710000E949E0BF8942FEF87EA91E6215080409B
+:103720009040E1F700C0000087E090EBDC0180935F
+:10373000EE019093EF01A093F001B093F1012CE022
+:1037400088E190E00FB6F894A895809360000FBED2
+:1037500020936000FFCFEF92FF920F931F93CF93C0
+:10376000DF93D82FC0E08C2F0E94BB0400E010E054
+:10377000E82EF12CC701002E02C0959587950A947A
+:10378000E2F780FD06C00F5F1F4F0630110591F76D
+:1037900009C0602F7C2F80E00E94C304D813F3CFB0
+:1037A00081E004C0CF5FCE30F1F680E0DF91CF91B1
+:1037B0001F910F91FF90EF900895CF93C82F8CE247
+:1037C0000E94AB1B882321F08C2FCF910C94AB1B54
+:1037D00080E0CF910895CF930E94321D811102C0E5
+:1037E0000E94181DC5E6C15049F00E94CD038FE329
+:1037F0009CE90197F1F700C00000F5CF89E20E9433
+:10380000DD1B811113C18AE20E94DD1B81110E9420
+:10381000181D85E00E94DD1B81110E94881B0E94FB
+:103820003D1D8093CD0187E00E94DD1B8823A9F117
+:103830008BE10E94DD1B882351F08091CD0181FB3B
+:10384000222720F991E0922790FB81F90EC08EE0AB
+:103850000E94DD1B882361F08091CD0182FB22272D
+:1038600020F991E0922790FB82F98093CD0115C059
+:1038700080E10E94DD1B9091CD01882341F093FBF4
+:10388000222720F981E0822780FB93F904C0892F49
+:10389000809580FB90F99093CD018091CD010E949D
+:1038A000411D0E944F1D8093ED0180EE0E94DD1BA3
+:1038B000882341F08091ED01982F909590FB80F93D
+:1038C0008093ED0189E30E94DD1B882359F08091EC
+:1038D000ED0181FB222720F991E0922790FB81F9ED
+:1038E0008093ED0182EE0E94DD1B882359F08091C8
+:1038F000ED0182FB222720F991E0922790FB82F9CB
+:103900008093ED0186EE0E94DD1B882359F08091A3
+:10391000ED0183FB222720F991E0922790FB83F9A8
+:103920008093ED0183EE0E94DD1B882359F0809186
+:10393000ED0184FB222720F991E0922790FB84F986
+:103940008093ED0185E30E94DD1B882359F080916F
+:10395000ED0185FB222720F991E0922790FB85F964
+:103960008093ED0181E30E94DD1B882359F0809153
+:10397000ED0186FB222720F991E0922790FB86F942
+:103980008093ED0181E10E94DD1B882359F0809135
+:10399000ED0187FB222720F991E0922790FB87F920
+:1039A0008093ED018091ED010E94531D8091ED0106
+:1039B00087FB882780F980930D0187E20E94DD1B39
+:1039C000C82F8EE10E94DD1B8111C2608FE10E9431
+:1039D000DD1B8111C46080E20E94DD1B8111C86083
+:1039E00081E20E94DD1B8111C06182E20E94DD1B29
+:1039F0008111C06283E20E94DD1B8111C06484E2F8
+:103A00000E94DD1B882311F0C06802C0CC2329F07E
+:103A10008C2F0E944A1D6C2F03C00E94461D682FE8
+:103A200070E080E090E0CF910C941518CF9108954C
+:103A30006DEE7EEF80E090E00E948D2360E082E0FA
+:103A400090E00E947B2360E083E090E00E947B2373
+:103A500060E084E090E00E947B2360E085E090E0FD
+:103A60000C947B2380E090E00E94752321E08D3E42
+:103A70009E4F09F020E0822F089582E090E00C94A0
+:103A80006D23682F82E090E00C947B2383E090E02C
+:103A90000C946D23682F83E090E00C947B2384E0EA
+:103AA00090E00C946D23682F84E090E00C947B23CD
+:103AB0008091D50180FF0BC06091130185E0689F64
+:103AC000B001112475956795759567952AC081FF9A
+:103AD00009C06091130185E0689FB00111247595BC
+:103AE00067951FC082FF07C06091130185E0689F42
+:103AF000B001112416C04091D6014423C9F0609151
+:103B00001201461788F72091130185E0289F900144
+:103B10001124429FC001439F900D112470E00E9428
+:103B20003F236038710540F46115710539F002C01A
+:103B300065E070E0862F08958FE7089581E008958D
+:103B40008091D50180FF08C06091110170E07595EA
+:103B500067957595679521C081FF06C06091110139
+:103B600070E07595679519C082FF04C060911101DE
+:103B700070E010C08091D6018823C1F060911001DF
+:103B80008617A0F790911101989FC001112470E051
+:103B90000E943F236038710528F46115710521F0FA
+:103BA000862F08958FE7089581E0089561E070E021
+:103BB000F4CF803F21F40E94581D819504C0813FBD
+:103BC00029F40E94581D8093D9010895823F21F461
+:103BD0000E94581D819504C0833F29F40E94581DFE
+:103BE0008093D8010895893F19F40E94A01D05C053
+:103BF0008A3F31F40E94A01D81958093DA010895D7
+:103C00008B3F21F40E94A01D819504C08C3F29F4B4
+:103C10000E94A01D8093DB010895843F21F48091D0
+:103C2000D701816017C0853F21F48091D701826060
+:103C300011C0863F21F48091D70184600BC0873F7B
+:103C400021F48091D701886005C0883F31F48091CC
+:103C5000D70180618093D70108958D3F21F4809131
+:103C6000D50181600BC08E3F21F48091D501826027
+:103C700005C08F3F29F48091D50184608093D501E0
+:103C80000895803F39F48091D90187FF6CC010926C
+:103C9000D90169C0813F29F48091D9011816BCF37C
+:103CA00062C09091D801823F29F497FF5CC01092C6
+:103CB000D80159C0833F19F41916CCF354C0893F79
+:103CC00041F48091DA0118160CF04DC01092DA011F
+:103CD0004AC08A3F29F48091DA0187FF44C0F6CFB9
+:103CE0008B3F39F48091DB0187FF3DC01092DB01EF
+:103CF0003AC08C3F29F48091DB011816BCF333C025
+:103D0000843F21F48091D7018E7F17C0853F21F435
+:103D10008091D7018D7F11C0863F21F48091D7011A
+:103D20008B7F0BC0873F21F48091D701877F05C02F
+:103D3000883F31F48091D7018F7E8093D70113C0E3
+:103D40008D3F21F48091D5018E7F0BC08E3F21F4F1
+:103D50008091D5018D7F05C08F3F29F48091D501D9
+:103D60008B7F8093D5018091D80181110EC0809105
+:103D7000D90181110AC08091DA01811106C08091B8
+:103D8000DB01811102C01092D601089587ED91E008
+:103D90000E94AF0E0E942E1B9093D4018093D301FA
+:103DA00008951F93CF93DF938091D3019091D40115
+:103DB0000E943A1B4091D601442321F02091140126
+:103DC00030E006C0209115015AE0259F9001112492
+:103DD0008217930708F482C08091D8011091D9010D
+:103DE000D091DA01C091DB01811107C0111105C02A
+:103DF000D11103C0CC2309F471C04F3F19F04F5FBC
+:103E00004093D601181624F40E94581D8093D801BF
+:103E10008091D80187FF05C00E94581D819580932D
+:103E2000D801111624F40E94581D8093D901809165
+:103E3000D90187FF05C00E94581D81958093D90143
+:103E40006091D801662339F11091D901112319F13C
+:103E5000772767FD7095872F972F0E94462223E3CF
+:103E600033E343E35FE30E94AA220E940E226093A1
+:103E7000D801612F772767FD7095872F972F0E94B4
+:103E8000462223E333E343E35FE30E94AA220E9436
+:103E90000E226093D9011D1624F40E94A01D809368
+:103EA000DA018091DA0187FF05C00E94A01D81958B
+:103EB0008093DA011C1624F40E94A01D8093DB017C
+:103EC0008091DB0187FF05C00E94A01D8195809332
+:103ED000DB01DF91CF911F910C94C61EDF91CF9132
+:103EE0001F910895E7EDF1E085E0DF011D928A95CD
+:103EF000E9F71092D6011092D5010895833081F12F
+:103F000028F4813059F08230D1F00895853009F4D9
+:103F100049C0B8F1863009F456C008958091150162
+:103F2000262F30E0280F311D2F3F310524F4680F74
+:103F30006093150108958FEF809315010895809186
+:103F40001401262F30E0280F311D2F3F310524F4B6
+:103F5000680F6093140108958FEF80931401089502
+:103F600080911301262F30E0280F311D2F3F31059E
+:103F700024F4680F6093130108958FEF8093130169
+:103F8000089580911201262F30E0280F311D2F3F18
+:103F9000310524F4680F6093120108958FEF809328
+:103FA0001201089580911101262F30E0280F311D54
+:103FB0002F3F310524F4680F6093110108958FEFAE
+:103FC00080931101089580911001262F30E0280F71
+:103FD000311D2F3F310524F4680F609310010895BF
+:103FE0008FEF809310010895833011F128F4813010
+:103FF00049F0823091F00895853081F120F18630CA
+:10400000C1F1089580911501681720F4861B8093F3
+:1040100015010895109215010895809114016817F3
+:1040200020F4861B809314010895109214010895C2
+:1040300080911301681720F4861B80931301089563
+:1040400010921301089580911201681720F4861BC5
+:104050008093120108951092120108958091110128
+:10406000681720F4861B80931101089510921101A6
+:10407000089580911001681720F4861B8093100129
+:1040800008951092100108950F931F938D3109F434
+:104090006BC008F03FC08E3009F47FC0C0F4873099
+:1040A00009F469C068F4863009F0B1C08091CD018F
+:1040B000817F8E7F8093CD0181E08093DD01A8C058
+:1040C000883009F4A2C08B3009F49FC0A0C08631AB
+:1040D00009F49BC078F4803109F472C0813109F091
+:1040E00096C00E941B1490910D0181E08927809356
+:1040F0000D018BC0893109F488C08B3109F087C06C
+:104100008091CD0181FB222720F991E0922790FB3D
+:1041100081F94CC0853309F470C048F4873209F442
+:104120006CC008F459C0893209F467C070C0833488
+:1041300038F48A3308F04EC0883309F466C067C08B
+:10414000833409F45AC0883409F061C00E941B14FA
+:104150000FEF13ED20E3015010402040E1F700C0C5
+:1041600000000E94881B51C00E94C8210E94980E26
+:104170000E949D074AC09091CD01892F8095817042
+:1041800080FB90F929F0966098609093CD0140C033
+:10419000997F977F9093CD0138C08091CD0182FBAC
+:1041A000222720F991E0922790FB82F98093CD019C
+:1041B000992359F18091CD0181608093CD0125C073
+:1041C0008091CD0183FB222720F991E0922790FB7B
+:1041D00083F9ECCF895301C08D5141E050E060E09C
+:1041E00070E08A019B0104C0000F111F221F331FC2
+:1041F0008A95D2F7C901B80104C061E070E080E09F
+:1042000090E00E9415180E941B1481E001C080E01C
+:104210001F910F91089580E0089580E00895CF9355
+:10422000C82F8091DD01813079F018F08230E9F1FA
+:1042300087C0E0910E01F0910F018081813169F01A
+:10424000823209F07FC009C0E0910E01F0910F01A8
+:104250008081813111F0823261F48C2F0E940B2118
+:10426000811104C08C2F0E9444201DC081E090E089
+:104270001AC08C2F0E940D21811114C0C43179F015
+:1042800048F4CB3079F0C03109F060C082E080930F
+:10429000DD0108C0C93219F0C83321F057C01092AF
+:1042A000DD0154C081E0817053C0C93289F118F535
+:1042B000C43171F1A8F4C73009F046C08AE0809398
+:1042C000150194E19093140193E09093130180936E
+:1042D000120188E08093110188E28093100134C0BC
+:1042E000CE51C63088F5EC2FF0E0E65DFE4F8081C0
+:1042F0008093DC0129C0CE34E9F020F4CB3421F5E1
+:104300006AE013C0C13579F0C235F1F461E00DC047
+:104310008091DC01882319F01092DC0115C081E046
+:104320008093DD0115C061E006C08091DC010E9430
+:104330007E1F0AC06AE08091DC010E94F41F04C065
+:104340001092DD0180E004C081E002C080E0ABCFCC
+:10435000CF910895E1E8F0E08081886080838081DA
+:10436000816080838FB7F89493E09093890090EDFB
+:10437000909388008FBF0895EFE6F0E0808182601F
+:1043800080830895EFE6F0E080818D7F808308953B
+:10439000EFE6F0E0808192E08927808308951F9204
+:1043A0000F920FB60F9211242F933F934F935F9369
+:1043B0006F937F938F939F93AF93BF93EF93FF93ED
+:1043C0008091DE019091DF0101969093DF0180934F
+:1043D000DE01811103C082E00E949D07E091DF01B0
+:1043E000E695E695F0E0E252FC4FE4918091DE0123
+:1043F0008E1303C080E00E949D07FF91EF91BF9153
+:10440000AF919F918F917F916F915F914F913F916C
+:104410002F910F900FBE0F901F9018950E9415229C
+:104420006894B1110C94A42208950E94892288F006
+:104430009F5798F0B92F9927B751B0F0E1F0660F68
+:10444000771F881F991F1AF0BA95C9F714C0B130A9
+:1044500091F00E94A322B1E008950C94A322672F4B
+:10446000782F8827B85F39F0B93FCCF386957795D8
+:104470006795B395D9F73EF49095809570956195C1
+:104480007F4F8F4F9F4F0895E89409C097FB3EF4EC
+:1044900090958095709561957F4F8F4F9F4F992391
+:1044A000A9F0F92F96E9BB279395F695879577950F
+:1044B0006795B795F111F8CFFAF4BB0F11F460FFCF
+:1044C0001BC06F5F7F4F8F4F9F4F16C0882311F027
+:1044D00096E911C0772321F09EE8872F762F05C03B
+:1044E000662371F096E8862F70E060E02AF09A95D6
+:1044F000660F771F881FDAF7880F9695879597F9CB
+:10450000089557FD9058440F551F59F05F3F71F0C3
+:104510004795880F97FB991F61F09F3F79F087952A
+:104520000895121613061406551FF2CF4695F1DFB3
+:1045300008C0161617061806991FF1CF8695710543
+:10454000610508940895E894BB2766277727CB0177
+:1045500097F908950E94BD220C942E230E942023D7
+:1045600038F00E94272320F0952311F00C94172394
+:104570000C941D2311240C94A4220E94812270F318
+:10458000959FC1F3950F50E0551F629FF001729FF8
+:10459000BB27F00DB11D639FAA27F00DB11DAA1F07
+:1045A000649F6627B00DA11D661F829F2227B00D54
+:1045B000A11D621F739FB00DA11D621F839FA00DDF
+:1045C000611D221F749F3327A00D611D231F849F2F
+:1045D000600D211D822F762F6A2F11249F57504086
+:1045E0009AF0F1F088234AF0EE0FFF1FBB1F661F01
+:1045F000771F881F91505040A9F79E3F510580F0CA
+:104600000C9417230C94A4225F3FE4F3983ED4F358
+:10461000869577956795B795F795E7959F5FC1F76D
+:10462000FE2B880F911D9695879597F9089597F918
+:104630009F6780E870E060E008959FEF80EC089548
+:1046400000240A9416161706180609060895002471
+:104650000A9412161306140605060895092E0394EB
+:10466000000C11F4882352F0BB0F40F4BF2B11F45F
+:1046700060FF04C06F5F7F4F8F4F9F4F089597FB80
+:10468000072E16F4009407D077FD09D00E94592315
+:1046900007FC05D03EF4909581959F4F0895709545
+:1046A00061957F4F0895EE0FFF1F0590F491E02D67
+:1046B0000994AA1BBB1B51E107C0AA1FBB1FA61769
+:1046C000B70710F0A61BB70B881F991F5A95A9F7BB
+:1046D00080959095BC01CD010895F999FECF92BDCA
+:1046E00081BDF89A992780B50895A8E1B0E042E02D
+:1046F00050E00C949523262FF999FECF92BD81BDF1
+:10470000F89A019700B4021639F01FBA20BD0FB60F
+:10471000F894FA9AF99A0FBE08950196272F0E94ED
+:104720007C230C947B23DC01CB01FC01F999FECFA7
+:1047300006C0F2BDE1BDF89A319600B40D92415029
+:0A4740005040B8F70895F894FFCF39
+:10474A0020029F072C080908D507A2070101BA0110
+:10475A0028080A03140A3F4D36399F0352031C03E3
+:10476A00E30276028F02A802C102010203040506CF
+:04477A000708090023
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json new file mode 100644 index 0000000000..4ade748732 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -0,0 +1,385 @@ +[ + { + "name": "Beginner's Keymap for Ergodox-EZ", + "author": "Anand Babu Periasamy" + }, + [ + { + "x": 3.5 + }, + "#\n3\n\n\nF3", + { + "x": 10.5 + }, + ")\n0\n\n\nF10" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "@\n2\n\n\nF2", + { + "x": 1 + }, + "$\n4\n\n\nF4", + { + "x": 8.5 + }, + "(\n9\n\n\nF9", + { + "x": 1 + }, + "_\n-\n\n\nF11" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "%\n5\n\n\nF5", + "^\n6\n\n\nF6", + { + "x": 4.5 + }, + "&\n7\n\n\nF7", + "*\n8\n\n\nF8" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "~\n`\n\n\nEsc", + "!\n1\n\n\nF1", + { + "x": 14.5 + }, + "+\n=\n\n\nF12", + { + "a": 7, + "w": 1.5 + }, + "Backspace\n\n\n\nBackspace" + ], + [ + { + "y": -0.375, + "x": 3.5 + }, + "E\n\n\n\n<i class=\"fa fa-caret-up\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.8799999999999999, + "x": 2.5 + }, + "W" + ], + [ + { + "y": -0.9950000000000001, + "x": 4.5, + "a": 4 + }, + "R", + { + "x": 8.5, + "a": 7 + }, + "U", + { + "x": 1 + }, + "O" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "T", + { + "h": 1.5 + }, + "<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>", + { + "x": 4.5, + "h": 1.5 + }, + "<i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i>", + "Y" + ], + [ + { + "y": -0.875, + "a": 6, + "w": 1.5 + }, + "Tab", + { + "a": 7 + }, + "Q", + { + "x": 14.5 + }, + "P", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "D\n\n\n\n<i class=\"fa fa-caret-down\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S\n\n\n\n<i class=\"fa fa-caret-left\" aria-hidden=\"true\"></i>", + { + "x": 1 + }, + "F\n\n\n\n<i class=\"fa fa-caret-right\" aria-hidden=\"true\"></i>", + { + "x": 8.5 + }, + "J", + { + "x": 1 + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "a": 4, + "fa": [ + 0, + 0, + 0, + 2 + ], + "w": 1.5 + }, + "\n\n\nCtrl\n\n\nCaps", + { + "a": 7 + }, + "A", + { + "x": 14.5, + "a": 4 + }, + ":\n;", + { + "a": 7, + "w": 1.5 + }, + "Enter" + ], + [ + { + "y": -0.625, + "x": 6.5, + "h": 1.5 + }, + "PgUp", + { + "x": 4.5, + "h": 1.5 + }, + "PgDn" + ], + [ + { + "y": -0.75, + "x": 3.5 + }, + "C", + { + "x": 10.5, + "a": 4 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5, + "a": 7 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "a": 4 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5, + "a": 7 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "Shift", + "Z", + { + "x": 14.5, + "a": 4 + }, + "?\n/", + { + "w": 1.5 + }, + "\"\n'" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "Alt\n\n\n\n<i class=\"fa fa-hand-o-left\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-down'></i>" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "<i class='fa fa-linux'></i>", + { + "x": 1 + }, + "Alt\n\n\n\n<i class=\"fa fa-hand-o-right\" aria-hidden=\"true\"></i>", + { + "x": 8.5 + }, + "<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>", + { + "x": 1 + }, + "<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-up'></i>" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Ctrl\n\n\n\n<i class='fa fa-download'></i>", + "Esc", + { + "x": 14.5 + }, + "<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-off'></i>", + "Fn" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1 + }, + "<i class=\"fa fa-clone\" aria-hidden=\"true\"></i>", + "(" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Del", + "[" + ], + [ + { + "x": 2 + }, + "{" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + ")", + "<i class=\"fa fa-paste\" aria-hidden=\"true\"></i>" + ], + [ + { + "x": -3 + }, + "]", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "<i class=\"fa fa-chevron-left\" aria-hidden=\"true\"></i>" + ], + [ + { + "x": -3 + }, + "}" + ] +]
\ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png Binary files differnew file mode 100644 index 0000000000..9a6546e357 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png diff --git a/keyboard/ergodox_ez/keymaps/ab/keymap.c b/keyboard/ergodox_ez/keymaps/ab/keymap.c new file mode 100644 index 0000000000..9b5c93c1ee --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/keymap.c @@ -0,0 +1,140 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FN1 1 // media layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| PgUp | | PgDn |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Esc | LGui | Alt | Alt | | Left | Up | Dn | Right| Fn | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Copy | ( | | ) | Paste| + * ,------|------+------| |------+------+------. + * | | | [ | | ] | | | + * |Space | Del |------| |------| Enter|BSpace| + * | | | { | | } | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* + [BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK, + CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, + KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, + LCTL(KC_C), KC_LCBR, + KC_LPRN, + KC_SPC, KC_DEL, KC_LBRC, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_UP, KC_LEFT, KC_RIGHT,KC_DOWN, TG(FN1), + KC_RCBR, LCTL(KC_V), + KC_RPRN, + KC_RBRC, KC_ENT, KC_BSPC + ), +/* Keymap 1: Fn Keys, media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Teensy| | | Lclk | Rclk | | |VolUp |VolDn | Mute | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------+------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FN1 Layer + [FN1] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + RESET, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/ab/readme.md b/keyboard/ergodox_ez/keymaps/ab/readme.md new file mode 100644 index 0000000000..67d47151bc --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/readme.md @@ -0,0 +1,21 @@ +# Beginner's keymap for Ergodox-EZ +Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. + +![Beginner's Keymap](keyboard-layout.png) + +#### Pros +* Easier to switch between regular keyboards and Ergodox-EZ. +* Easy on beginners. It has everything you need for your day to day usage. + +#### Cons +* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboard/ergodox_ez/keymaps/default/readme.md) +* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. + +#### Notes +* Ideally number key [6] should have started from the right-hand side of the keyboard. Doing so breaks the familiar QWERTY layout. +* Quote key ['] should have been placed between [:] and [Enter]. Due to lack of key space, it is placed below [Enter]. +* Double [Alt] keys are placed adjacent to each other for convenience. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Additional bracket keys are placed in the center of the keyboard for programmer's convenience. + + diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex index aa08845658..ab32e94dd2 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex @@ -1,28 +1,28 @@ -:100000000C9465020C94AC020C94AC020C94AC02FF
-:100010000C94AC020C94AC020C94AC020C94AC02A8
-:100020000C94AC020C94AC020C94C30B0C94950C85
-:100030000C94AC020C94AC020C94AC020C94AC0288
-:100040000C94AC020C9409210C94AC020C94AC02FC
-:100050000C94AC020C949B1A0C94AC020C94AC0261
-:100060000C94AC020C94AC020C94AC020C94AC0258
-:100070000C94AC020C94AC020C94AC020C94AC0248
-:100080000C94AC020C94AC020C94AC020C94AC0238
-:100090000C94AC020C94AC020C94AC020C94AC0228
-:1000A0000C94AC020C94AC020C94AC02020D240D26
-:1000B000170E240D170E690D8C0D170EE10DF40DA2
-:1000C000DE10DE100D110D1150118A1197139713C8
-:1000D000A3119713981298126B1397139713821307
-:1000E0000000F0A12E004C002A00E1003581000044
+:100000000C9465020C94A9020C94A9020C94A90208
+:100010000C94A9020C94A9020C94A9020C94A902B4
+:100020000C94A9020C94A9020C94A00C0C94720DCF
+:100030000C94A9020C94A9020C94A9020C94A90294
+:100040000C94A9020C9446220C94A9020C94A902C7
+:100050000C94A9020C94EA1B0C94A9020C94A9021A
+:100060000C94A9020C94A9020C94A9020C94A90264
+:100070000C94A9020C94A9020C94A9020C94A90254
+:100080000C94A9020C94A9020C94A9020C94A90244
+:100090000C94A9020C94A9020C94A9020C94A90234
+:1000A0000C94A9020C94A9020C94A902D70DF90D85
+:1000B000E40EF90DE40E3B0E5E0EE40EB30EC60E1A
+:1000C000C011C0110112011243127F127F147F145C
+:1000D00097127F148E138E1359147F147F146D148E
+:1000E0000000F0A12E004C002A00003035810000F5
:1000F0001E00140004001D7134004D001F001A0082
:1001000016001B00E104C1002000080007000600E3
:1001100050002C0021001500090019004F004A0072
:10012000220017000A000500000065745000015409
-:100130000000007F0000E3004F0001540000007742
+:1001300000002F7F0000E3004F00015400003077E3
:100140000000E20023001C000B00110000002971D8
:10015000240018000D74100052004B0025000C0004
:100160000E00360051002800260012000F00370054
:100170002F002B81270013003382387130004E008E
-:100180002D0031003478E500C100000001000100BD
+:100180002D003100347801302D0000000100010005
:1001900001000100010000003A001E0022002602BA
:1001A000010001003B001F002300270201000100A5
:1001B0003C00200024002F004B0101003D002100E5
@@ -75,1047 +75,1085 @@ :1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
:1004B000B39D87715D4A3A2C20170F0A060402018A
:1004C0000000000000000000000011241FBECFEF5C
-:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198
-:1004E0009091EE01A091EF01B091F0018730904B17
-:1004F000A740B04BD1F41092ED011092EE01109292
-:10050000EF011092F00114BE84B7877F84BF0FB64D
-:10051000F894A895809160008861809360001092A3
-:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C
-:10053000E4EBF5E402C005900D92A433B107D9F7BE
-:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6
-:100550000E940A090C94D8220C94000061110BC06F
-:10056000FC018281882321F085EE0E94780F03C070
-:1005700085EE0E94401080E090E00895089560911B
-:10058000B1017091B2018091B3019091B4010E94C8
-:10059000C81956985E9825982D9826982E982798D1
-:1005A0002F98813019F0823021F00895259A2D9AE4
-:1005B0000895269A2E9A08950C94BF0256985E9834
-:1005C00025982D9826982E9827982F988FEF90E0B1
-:1005D000909389008093880090938B0080938A0089
-:1005E00090938D0080938C00259A2D9A2FEF80E7B1
-:1005F00092E0215080409040E1F700C00000269A30
-:100600002E9A2FEF80E792E0215080409040E1F752
-:1006100000C00000279A2F9A2FEF80E792E0215028
-:1006200080409040E1F700C0000025982D982FEF02
-:1006300080E792E0215080409040E1F700C0000048
-:1006400026982E982FEF80E792E02150804090402E
-:10065000E1F700C0000027982F9856985E982598DB
-:100660002D9826982E9827982F98089589EA809398
-:10067000800089E08093810024982C983F988AB16B
-:100680008F748AB96E98479A8BB1806B8BB9769AC2
-:100690000E94DE020C94BE0280E2809300018091F1
-:1006A000340181110EC00E949B0381E080933401CC
-:1006B0002FEF83ED90E3215080409040E1F700C0A0
-:1006C000000080E40E94A1038093000181112EC0EC
-:1006D0000E94CB0380930001811128C00E94CB03AC
-:1006E00080930001811122C08FE30E94CB0380938D
-:1006F000000181111BC00E94C30380E40E94A1037A
-:1007000080930001811112C08CE00E94CB03809382
-:10071000000181110BC00E94CB0380930001811165
-:1007200005C08FE30E94CB03809300010E94C303A6
-:100730008091000108951092B9008AE08093B8007A
-:10074000089594EA9093BC009091BC0097FFFCCF71
-:100750009091B900987F983021F0903111F081E0AC
-:1007600008958093BB0084E88093BC008091BC0016
-:1007700087FFFCCF8091B900887F883111F08034E9
-:1007800071F780E0089584E98093BC008091BC00FB
-:1007900084FDFCCF08958093BB0084E88093BC0067
-:1007A0008091BC0087FFFCCF9091B900987F81E0D9
-:1007B000983209F480E0089584E88093BC00809129
-:1007C000BC0087FFFCCF8091BB00089580910001A1
-:1007D000811115C080E40E94A10380930001811162
-:1007E0000CC082E10E94CB0380930001811105C0FF
-:1007F0008FEF0E94CB03809300010E94C30384B15A
-:10080000807F84B985B1807F85B98AB1837F8AB9B9
-:100810008BB1837F8BB93E98469808950E944C0314
-:10082000809300010E94E60380B38C7080BB81B38B
-:10083000836F81BBE4E4F1E0A6E3B1E011921D9285
-:1008400081E0E235F807D1F70C9436039F92AF921E
-:10085000BF92CF92DF92EF92FF920F931F93CF93AD
-:10086000DF9380910001882379F0809135018F5FBB
-:1008700080933501811108C00E944C0380930001D0
-:10088000811102C00E94DE0286E3E82E81E0F82E8C
-:100890008701C0E0D0E0BB24B39492E0A92ECC2421
-:1008A000C394D12CC730D10500F58091000181118E
-:1008B00064C080E40E94A10380930001811112C0F2
-:1008C00082E10E94CB038093000181110BC0C6011D
-:1008D0000C2E01C0880F0A94EAF780950E94CB0382
-:1008E000809300010E94C30348C0CA30A1F028F4DD
-:1008F000C83059F0C93061F005C0CC3089F070F0D3
-:10090000CD3089F0209A289810C0219A29980DC0DE
-:10091000229A2A980AC0239A2B9807C0529A01C09B
-:10092000539A5B9802C03E9A4698E0EAEA95F1F73E
-:100930008FB181708B25799902C032E001C030E01F
-:10094000832B7C9902C034E001C030E0832B7D9979
-:1009500002C028E001C020E0822B7E9902C090E115
-:1009600001C090E0892B9FB19095991F9927991FFD
-:100970009295990F907E892B0FC080910001811173
-:100980004AC080E40E94A10380930001882381F182
-:10099000912C0E94C303892DD8019C91981719F0BE
-:1009A0008C93A09201010E94E60321960F5F1F4FD6
-:1009B000CE30D10509F076CF80910101882369F10D
-:1009C000815080930101882339F0EFE9FFE03197EE
-:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF
-:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5
-:1009F00083E10E94CB03809300018111C9CF81E480
-:100A00000E94A103809300018111C2CF0E94DC03E8
-:100A1000982E9094BECF80E0BFCF0E94DC0281E090
-:100A2000DF91CF911F910F91FF90EF90DF90CF90CA
-:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1
-:100A40008081089508958B3B910580F4883A910543
-:100A500048F5853A9105D8F48430910508F0B2C084
-:100A6000019709F06EC081E090E00895803E910505
-:100A700008F467C0883E910508F4A4C09C01205F7B
-:100A800031092031310508F05CC090650895853A40
-:100A9000910509F459C0863A910509F058C082E8D9
-:100AA00090E40895883A910509F454C0893A910573
-:100AB00009F453C08A3A910509F452C08B3A910562
-:100AC00009F451C08C3A910509F450C08D3A910552
-:100AD00009F44FC0803B910509F44EC08E3A910550
-:100AE00009F44DC08F3A910509F44CC0813B910542
-:100AF00009F44BC0823B910509F44AC0833B910540
-:100B000009F449C0843B910509F448C0853B91052F
-:100B100009F447C0863B910509F446C0873B91051F
-:100B200009F445C0883B910509F444C0893B91050F
-:100B300009F443C08A3B910509F442C080E094E483
-:100B4000089580E090E0089581E890E4089583E8B6
-:100B500090E4089582EE94E4089589EE94E4089573
-:100B60008AEE94E4089585EB94E4089586EB94E48A
-:100B7000089587EB94E408958CEC94E408958DEC4B
-:100B800094E4089583E895E408958AE895E4089547
-:100B900082E995E4089584E995E4089581E296E474
-:100BA000089583E296E4089584E296E4089585E248
-:100BB00096E4089586E296E4089587E296E408951F
-:100BC0008AE296E40895089524E5829FC0011124E5
-:100BD000FC0126E0729FE00DF11D1124E60FF11DCE
-:100BE000EE0FFF1FEC51FF4F859194910895880FF0
-:100BF000991FFC01E05AF040859194910895880F67
-:100C0000991FFC01E052FF4F85919491089524E5CE
-:100C1000829FC0011124FC0146E0749FE00DF11D8C
-:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0
-:100C300094919C013A9521154FE1340708F425C1A0
-:100C40003F512115304120F49F700E94FF05089507
-:100C50009C0130532115304118F49927906C089568
-:100C6000811520E5920769F40E94B9134FEF84E3E0
-:100C70009CE0415080409040E1F700C000000C949F
-:100C8000C01A813020E5920731F48091CC01816057
-:100C90008093CC0108959C0130552115304108F016
-:100CA0005CC0292F33272F70332721303105E9F419
-:100CB000AC0164E0440F551F6A95E1F74427537077
-:100CC000BC016370772702C0220F331F6A95E2F7D9
-:100CD0003C68242B352B73E0880F991F7A95E1F738
-:100CE00080769927822B932B08952230310529F4A1
-:100CF000982F8827816F906A089523303105A1F4D9
-:100D0000AC0133E0440F551F3A95E1F7407E577030
-:100D10008370992721E030E002C0220F331F8A95AB
-:100D2000E2F7C9019C6816C02430310531F5AC01E9
-:100D300023E0440F551F2A95E1F7407E57708370DA
-:100D4000992721E030E002C0220F331F8A95E2F795
-:100D5000C9019A68842B952B08959C013057211561
-:100D6000304118F49F70906208959C01305821150D
-:100D7000304118F49F70906A0895803E9105E0F428
-:100D8000803C910558F58133910509F46FC048F412
-:100D90008932910509F463C08A32910509F46DC066
-:100DA00072C089339105E9F082389105D1F085331D
-:100DB000910509F44DC067C0833E910581F138F477
-:100DC000803E9105B9F0823E9105D9F05CC0863E27
-:100DD000910561F1873E9105A1F155C00E94F7058B
-:100DE00008952091DE0120FD02C021FF4CC080EE5D
-:100DF00090E049C08091DE0180FFF9CF89E390E067
-:100E000042C08091DE0182FF0EC08091DE0184FF2E
-:100E100003C080E090E037C083EE90E034C0809162
-:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4
-:100E300083FF0BC08091DE0184FDEBCF87EE90E055
-:100E400022C08091DE0183FFF5CF86EE90E01BC0CB
-:100E50008091DE0185FF07C089E290E014C0809197
-:100E6000DE0185FFF9CF85E390E00DC08091DE01C2
-:100E700086FF07C08AE290E006C08091DE0186FF0F
-:100E8000F9CF81E390E00E942305089508958091B1
-:100E900062010895CF93DF9300D01F92CDB7DEB7E4
-:100EA0009C018091E401843019F593E099833B83A0
-:100EB0002A839093E9008FEF9091E800815095FD8F
-:100EC00006C095ED9A95F1F700008111F5CF80915C
-:100ED000E80085FF0DC040E050E063E070E0CE0127
-:100EE00001960E94B7098091E8008E778093E80010
-:100EF0000F900F900F90DF91CF910895CF93DF93D4
-:100F000000D01F92CDB7DEB72091E401243021F547
-:100F100022E029839B838A8383E08093E9008FEF1B
-:100F20009091E800815095FD06C095ED9A95F1F7F6
-:100F300000008111F5CF8091E80085FF0DC040E0F1
-:100F400050E063E070E0CE0101960E94B709809105
-:100F5000E8008E778093E8000F900F900F90DF915C
-:100F6000CF9108959C018091E4018430F9F482E0EE
-:100F70008093E9009FEF8091E800915085FD06C0C5
-:100F800085ED8A95F1F700009111F5CF8091E80089
-:100F900085FF0CC040E050E065E070E0C9010E94B0
-:100FA000B7098091E8008E778093E8000895CF9389
-:100FB000DF93EC018091E401843009F046C0909108
-:100FC0000C019923D9F090910D019923B9F08093E8
-:100FD000E9008FEF9091E800815095FD06C095E102
-:100FE0009A95F1F700008111F5CF8091E80085FF17
-:100FF0002CC040E050E060E170E017C081E08093D9
-:10100000E9008FEF9091E800815095FD06C095EDC5
-:101010009A95F1F700008111F5CF8091E80085FFE6
-:1010200014C040E050E068E070E0CE010E94B709D3
-:101030008091E8008E778093E80080E1FE01A2E5D0
-:10104000B1E001900D928A95E1F7DF91CF9108957B
-:101050008091E301811109C00E94480B0E94A50BF9
-:101060008091E20084608093E20008951092E30191
-:10107000089508950C94F6200E94561A0E94FC20B0
-:101080000E94500E0C94460742E061EC81E00E9401
-:10109000C10A42E061EC82E00E94C10A42E061ECD8
-:1010A00083E00E94C10A42E161EC84E00C94C10A31
-:1010B0008091E601833009F455C030F4813071F03D
-:1010C000823009F48EC008958A3009F47AC08B30DA
-:1010D00009F460C0893009F09CC020C08091E5010E
-:1010E000813A09F096C08091E800877F8093E800FC
-:1010F0008091E9019091EA01892B21F460E182E578
-:1011000091E003C060E080E090E070E00E94020A9D
-:101110008091E8008B778093E80008958091E50145
-:10112000813209F076C08091E9019091EA0100973F
-:1011300019F0039709F06DC08091E800877F8093D4
-:10114000E8008091E80082FD05C08091E4018111F2
-:10115000F8CF5FC08091F100809362018091E80038
-:101160008B7753C08091E501813A09F052C080919C
-:10117000E9019091EA01892B09F04BC08091E800C8
-:10118000877F8093E8008091E80080FFFCCF80910A
-:101190000C0136C08091E5018132D9F58091E901D9
-:1011A0009091EA01892BA9F58091E800877F8093CF
-:1011B000E8000E94F60A8091E70180930C010C94EC
-:1011C000B9138091E501813221F58091E800877F94
-:1011D0008093E8000E94F60A8091E8018093630101
-:1011E00008958091E501813AA1F48091E800877F1C
-:1011F0008093E8008091E80080FFFCCF809163013C
-:101200008093F1008091E8008E778093E8000C9441
-:10121000F60A089584B7877F84BF0FB6F894A8951F
-:1012200080916000886180936000109260000FBE22
-:1012300090E080E80FB6F89480936100909361008D
-:101240000FBE0E949F0E0E94480B0E94A50B80912A
-:10125000E20084608093E20078940E94300E0E9445
-:10126000A10E82E091E00E944B0E0E94E42080914A
-:10127000E401853069F40E94181A8091E201882304
-:10128000B1F30E94421A882391F30E94A109EFCF83
-:101290000E94A70EECCF292F332723303105C9F048
-:1012A00060F42130310581F02230310509F041C070
-:1012B0008DE690E020E133E040C021323105E1F0DD
-:1012C0002232310531F135C082E190E02DE733E083
-:1012D00034C099278130910549F028F0029749F5EB
-:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088
-:1012F000849190E09F0121C06430D8F4E62FF0E0A3
-:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE
-:1013100014C0643070F470E0FB01EE0FFF1FE65E56
-:10132000FE4F20813181FB01EA5EFE4F808190E01B
-:1013300004C080E090E020E030E0FA0131832083B7
-:10134000089580E189BD82E189BD09B400FEFDCF29
-:101350008091D8008F7D8093D8008091E0008260DA
-:101360008093E0008091E00081FDFCCF0895CF9252
-:10137000DF92EF92FF920F931F93CF93DF93EC01D5
-:101380008B016A010E94150B811133C0C114D10475
-:1013900039F0F60180819181081B190BC80FD91F04
-:1013A000E12CF12C0115110519F18091E80085FD62
-:1013B00016C08091E8008E778093E800C114D104B4
-:1013C00049F0F60180819181E80EF91EF182E082F8
-:1013D00085E00FC00E94150B882321F30AC0899174
-:1013E0008093F10001501109FFEFEF1AFF0ADACFE5
-:1013F00080E0DF91CF911F910F91FF90EF90DF90F0
-:10140000CF9008952091EB013091EC01261737071A
-:1014100048F06115710539F42091E8002E7720938A
-:10142000E80001C0B901FC0120E06115710579F106
-:101430008091E4018823F1F18530F1F18091E80099
-:1014400083FD3CC08091E80082FD2EC08091E800C1
-:1014500080FFEBCF2091F3008091F20090E0922B7F
-:101460006115710551F08830910538F42191209370
-:10147000F100615071090196F3CF21E0089709F05E
-:1014800020E08091E8008E778093E800CECF211194
-:10149000CFCF0AC08091E401882361F0853061F0EC
-:1014A0008091E80083FD0AC08091E80082FFF2CFBE
-:1014B00080E0089582E0089583E0089581E0089532
-:1014C0002091EB013091EC012617370748F06115A8
-:1014D000710539F42091E8002E772093E80001C0CF
-:1014E000B901FC0120E06115710591F18091E401E1
-:1014F000882309F440C0853009F43FC08091E8009A
-:1015000083FD3DC08091E80082FD2FC08091E800FE
-:1015100080FFE9CF2091F3008091F20090E0922BC0
-:101520006115710559F08830910540F4249120939C
-:10153000F1003196615071090196F2CF21E00897D0
-:1015400009F020E08091E8008E778093E800CBCF0F
-:101550002111CCCF0AC08091E401882361F085304D
-:1015600061F08091E80083FD0AC08091E80082FF6D
-:10157000F2CF80E0089582E0089583E0089581E04D
-:101580000895982F973068F59093E900981739F0EF
-:101590007091EC002091ED005091F00003C0242FD9
-:1015A000762F50E021FD02C09F5FECCF3091EB0021
-:1015B0003E7F3093EB003091ED003D7F3093ED00A6
-:1015C0003091EB0031603093EB007093EC0020938E
-:1015D000ED005093F0002091EE0027FDE5CF80E074
-:1015E00008958F708093E90081E008958091E5016E
-:1015F00087FF11C08091E80082FD05C08091E40161
-:101600008111F8CF11C08091E8008B770BC08091D9
-:10161000E401882349F08091E80080FFF8CF8091B1
-:10162000E8008E778093E80008952091E4003091DF
-:10163000E50095E64091EC00842F817040FF23C0C7
-:101640008091E80080FD1DC08091E401882399F01D
-:10165000853099F08091EB0085FD11C04091E40048
-:101660005091E5002417350729F3915011F09A01A4
-:10167000E1CF84E0089582E0089583E0089581E059
-:10168000089580E008954091E80042FFDDCF08957D
-:101690000E94B60B0E94BE0BE0EEF0E080818160FC
-:1016A0008083E8EDF0E080818F77808319BCA7ED1F
-:1016B000B0E08C918E7F8C9380818F7E808310929E
-:1016C000E30108950F931F93CF93DF930E94B60B0E
-:1016D0000E94BE0BC8EDD0E088818F778883888117
-:1016E0008068888388818F7D888319BC1092E4018B
-:1016F0001092E0011092E2011092E10100EE10E080
-:10170000F80180818B7F808388818160888342E0BB
-:1017100060E080E00E94C10AE1EEF0E080818E7F0F
-:101720008083E2EEF0E08081816080838081886048
-:101730008083F80180818E7F8083888180618883A7
-:10174000DF91CF911F910F910895E8EDF0E0808136
-:101750008F7E8083E7EDF0E080818160808384E08C
-:1017600082BF81E08093E3010C94620BE8EDF0E02E
-:1017700080818E7F80831092E20008951092DA00BB
-:101780001092E10008951F920F920FB60F9211244C
-:101790002F933F934F935F936F937F938F939F9379
-:1017A000AF93BF93EF93FF938091E10082FF0BC053
-:1017B0008091E20082FF07C08091E1008B7F8093DF
-:1017C000E1000E942F0E8091DA0080FF1FC08091FF
-:1017D000D80080FF1BC08091DA008E7F8093DA00F2
-:1017E0008091D90080FF0DC080E189BD82E189BD73
-:1017F00009B400FEFDCF81E08093E4010E94280837
-:1018000005C019BC1092E4010E9436088091E100E5
-:1018100080FF19C08091E20080FF15C08091E20036
-:101820008E7F8093E2008091E20080618093E200ED
-:101830008091D80080628093D80019BC85E08093A5
-:10184000E4010E943A088091E10084FF30C0809159
-:10185000E20084FF2CC080E189BD82E189BD09B42A
-:1018600000FEFDCF8091D8008F7D8093D8008091BD
-:10187000E1008F7E8093E1008091E2008F7E809373
-:10188000E2008091E20081608093E2008091E001BB
-:10189000882311F084E007C08091E30087FD02C037
-:1018A00081E001C083E08093E4010E943C088091C4
-:1018B000E10083FF29C08091E20083FF25C0809171
-:1018C000E100877F8093E10082E08093E401109241
-:1018D000E0018091E1008E7F8093E1008091E20041
-:1018E0008E7F8093E2008091E20080618093E2002D
-:1018F00042E060E080E00E94C10A8091F0008860D0
-:101900008093F0000E943908FF91EF91BF91AF9151
-:101910009F918F917F916F915F914F913F912F9107
-:101920000F900FBE0F901F9018951F920F920FB639
-:101930000F9211242F933F934F935F936F937F9355
-:101940008F939F93AF93BF93CF93DF93EF93FF93C7
-:10195000C091E900CF708091EC00D82FD17080FD4C
-:10196000D0E81092E9008091F000877F8093F0002A
-:1019700078940E94D90C1092E9008091F000886060
-:101980008093F000CD2BCF70C093E900FF91EF91D1
-:10199000DF91CF91BF91AF919F918F917F916F9187
-:1019A0005F914F913F912F910F900FBE0F901F901D
-:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5
-:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF
-:1019D000819321E0ED3EF207C9F70E9458088091FB
-:1019E000E80083FF24C18091E5019091E601492F31
-:1019F00050E04A30510508F01AC1FA01EA5AFF4F87
-:101A00000C948D22803881F0823809F010C18091C9
-:101A1000E9018F708093E9008091EB0085FB8827B6
-:101A200080F91092E90006C08091E1019091E201F5
-:101A3000911182609091E800977F9093E8008093E5
-:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF
-:101A5000882319F0823061F0EAC08091E70181307B
-:101A600009F0E5C0933009F080E08093E2012BC0DB
-:101A70008091E701811127C08091E9018F7009F4FD
-:101A8000D6C08093E9002091EB0020FF1CC093306A
-:101A900021F48091EB00806214C09091EB00906182
-:101AA0009093EB0021E030E0A90102C0440F551FE4
-:101AB0008A95E2F74093EA001092EA008091EB00E9
-:101AC00088608093EB001092E9008091E800877FA6
-:101AD00086C08111ACC01091E7011F778091E300AF
-:101AE0008078812B8093E3008091E800877F80934A
-:101AF000E8000E94F60A8091E80080FFFCCF809108
-:101B0000E30080688093E300111102C082E001C00D
-:101B100083E08093E4018BC08058823008F087C056
-:101B20008091E7019091E8018C3D53E0950779F5AC
-:101B300083E08A838AE289834FB7F894DE011396A3
-:101B400020E03EE051E2E32FF0E050935700E491B3
-:101B500020FF03C0E295EF703F5FEF708E2F90E0A3
-:101B6000EA3010F0C79601C0C0968D939D932F5F09
-:101B7000243149F74FBF8091E800877F8093E800C8
-:101B80006AE270E0CE0101960E94020A14C0AE0122
-:101B90004F5F5F4F6091E9010E944B09BC01892BA7
-:101BA00009F445C09091E800977F9093E8008981FF
-:101BB0009A810E94600A8091E8008B778093E80008
-:101BC00036C08038A1F58091E800877F8093E800D7
-:101BD0008091E0018093F1008091E8008E778093FE
-:101BE000E8000E94F60A23C0811121C08091E7011C
-:101BF0009091E80199270297D4F48091E800877FBB
-:101C00008093E8008091E7018093E0010E94F60A4A
-:101C10008091E001811106C08091E30087FD02C040
-:101C200081E001C084E08093E4010E944408809137
-:101C3000E80083FF0AC08091E800877F8093E80076
-:101C40008091EB0080628093EB00AA960FB6F89427
-:101C5000DEBF0FBECDBFDF91CF911F9108950895D4
-:101C6000CF938091E4018823A1F0C091E900CF7067
-:101C70009091EC00892F817090FD80E8C82B109224
-:101C8000E9008091E80083FD0E94D90CCF70C093D9
-:101C9000E900CF91089590936901809368010895B8
-:101CA000E0916801F0916901309721F00190F08195
-:101CB000E02D099480E00895E0916801F0916901B8
-:101CC000309721F00280F381E02D09940895E0918E
-:101CD0006801F0916901309721F00480F581E02DD1
-:101CE00009940895209166013091670128173907FA
-:101CF00071F09093670180936601E0916801F09123
-:101D00006901309721F00680F781E02D099408954C
-:101D100020916401309165012817390771F0909383
-:101D2000650180936401E0916801F0916901309749
-:101D300021F00084F185E02D0994089508950C9414
-:101D40009E0E0E945C1A0E940E040C94221BCF92DD
-:101D5000DF92EF92FF920F931F93CF93DF93CDB754
-:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433
-:101D700026048BE6C82E81E0D82E00E010E0E02E8D
-:101D8000802F0E941C05F60141916F01F82EF42668
-:101D9000B1F40F5F1F4F0E30110589F78FEF898364
-:101DA0008A831B820E94651A8160782F9D838C83B1
-:101DB00049815A816B818D810E944A0F40C0909168
-:101DC000CC0191FF04C08B870E9422058B8520E007
-:101DD00030E04F2D50E0922FBA01022E02C07595CF
-:101DE00067950A94E2F760FF24C02E83EF8221E01A
-:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E
-:101E00008C219D21892B09F420E028870E94651AE6
-:101E10008160782F9A8789874E815F8168858A855E
-:101E20000E944A0FF801E559FE4F8081C826C08202
-:101E300006C02F5F3F4F2630310569F6AACF0E94BA
-:101E4000091E0E94500E90916A018917A1F00E940C
-:101E5000500E80936A012B960FB6F894DEBF0FBE2A
-:101E6000CDBFDF91CF911F910F91FF90EF90DF9049
-:101E7000CF900C9446072B960FB6F894DEBF0FBE9A
-:101E8000CDBFDF91CF911F910F91FF90EF90DF9029
-:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2
-:101EA000F894DEBF0FBECDBF4F83588769877A870E
-:101EB0008B87DE01119686E0FD0111928A95E9F784
-:101EC00085E0FE01379601900D928A95E1F74981F0
-:101ED0005A816B817C818D819E810E944D162B964B
-:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E
-:101EF000CF93C82F882309F4C1C0823859F40E94B7
-:101F0000500E81FDBBC089E30E94EA180E94A2190D
-:101F100089E30CC0833879F40E94500E80FDAEC076
-:101F200083E50E94EA180E94A21983E50E942919FC
-:101F3000CF910C94A219843859F40E94500E82FD5E
-:101F40009DC087E40E94EA180E94A21987E4EECFA0
-:101F50008CEF8C0F813A48F48C2F0E94492081111C
-:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E
-:101F700048F4C77081E001C0880FCA95EAF70E9453
-:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6
-:101F9000C63A31F083E890E005C081E890E002C0E5
-:101FA00082E890E0CF910C94720E88E58C0F83311B
-:101FB00008F064C0C83A39F1C93A41F1CA3A49F166
-:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC
-:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F
-:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB
-:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B
-:1020000080E090E038C082EE90E035C089EE90E04C
-:1020100032C08AEE90E02FC085EB90E02CC086EBBA
-:1020200090E029C087EB90E026C08CEC90E023C0C4
-:102030008DEC90E020C083E891E01DC08AE891E03B
-:102040001AC082E991E017C084E991E014C081E2EE
-:1020500092E011C083E292E00EC084E292E00BC0F5
-:1020600085E292E008C086E292E005C087E292E055
-:1020700002C08AE292E0CF910C94880ECF9108952D
-:10208000882309F44BC0823859F40E94500E81FF16
-:1020900045C089E30E94EA180E94A21989E30CC096
-:1020A000833871F40E94500E80FF38C083E50E948F
-:1020B000EA180E94A21983E50E9429190C94A2191A
-:1020C000843859F40E94500E82FF28C087E40E9491
-:1020D000EA180E94A21987E4EFCF9CEF980F913A7B
-:1020E00058F390E2980F983050F4877091E001C057
-:1020F000990F8A95EAF7892F0E947119DFCF9BE526
-:10210000980F933020F480E090E00C94720E885A7F
-:10211000833120F480E090E00C94880E08958823A9
-:1021200021F00E946B190C94A2190895882321F0C4
-:102130000E9471190C94A2190895BF92CF92DF9258
-:10214000EF92FF920F931F93CF93DF9300D000D0B5
-:1021500000D0CDB7DEB77C0185E0F701DE01119636
-:1021600001900D928A95E1F7F70183819481892B83
-:1021700009F4DDC2908181818F3F19F49F3F09F4FA
-:10218000D6C2F7010281258122952F7099838A8317
-:1021900089819A812E830E94A918182FB92E0E9436
-:1021A000A8180E946F17EB2DE295EF704E2F50E0AC
-:1021B000FA01E05AFF4F2E810C948D228B2D807FE7
-:1021C0009B2D9F70F92E882319F0F29480EFF8224E
-:1021D000002349F0FF2009F457C28F2D0E947B197C
-:1021E0000E94A21951C2812F0E944010FF2009F4C1
-:1021F0009EC28F2D0E94811926960FB6F894DEBFDD
-:102200000FBECDBFDF91CF911F910F91FF90EF9047
-:10221000DF90CF90BF900C94A2193B2D307F8B2D77
-:102220008F70303211F08295807F112319F01130B8
-:1022300021F12CC00023B9F0222309F490C12130F0
-:1022400009F08DC126960FB6F894DEBF0FBECDBF44
-:10225000DF91CF911F910F91FF90EF90DF90CF9082
-:10226000BF900C948B19222319F0213009F45FC21E
-:102270008E830E948E198E8186C1002321F0223028
-:1022800008F055C26CC1211152C27DC1002321F05A
-:10229000222309F464C1F8C1222309F474C109C2DC
-:1022A0008B2D86958695837019F08130D1F03FC2D1
-:1022B000002321F0812F9B2D937002C080E090E0DD
-:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B
-:1022D0001F910F91FF90EF90DF90CF90BF900C94E3
-:1022E000720E002321F0812F9B2D937002C080E09D
-:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB
-:10230000CF911F910F91FF90EF90DF90CF90BF90F2
-:102310000C94880E812F002319F00E94111D02C019
-:102320000E94791D26960FB6F894DEBF0FBECDBF72
-:10233000DF91CF911F910F91FF90EF90DF90CF90A1
-:10234000BF900C94FE1D8B2D837009F075C0011198
-:10235000EEC1812F829586958770880F880F912F07
-:102360009F70C92ED12CE12CF12C082E04C0CC0C6E
-:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004
-:1023800010E020E030E004C0000F111F221F331FB7
-:102390008A95D2F7C901B80160957095809590959E
-:1023A00003C060E070E0CB014B2D4695469543702D
-:1023B0004230C1F060F56C297D298E299F2941307A
-:1023C00051F126960FB6F894DEBF0FBECDBFDF9158
-:1023D000CF911F910F91FF90EF90DF90CF90BF9022
-:1023E0000C9496176C297D298E299F2926960FB665
-:1023F000F894DEBF0FBECDBFDF91CF911F910F913B
-:10240000FF90EF90DF90CF90BF900C94B2170E9496
-:102410009617C701B60126960FB6F894DEBF0FBE19
-:10242000CDBFDF91CF911F910F91FF90EF90DF9083
-:10243000CF90BF900C947A17002319F08B2D8170E8
-:1024400001C08695882309F472C1812F82958695F3
-:102450008770880F880F912F9F70C92ED12CE12C87
-:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1
-:10247000D2F714FF12C00FE010E020E030E004C0FB
-:10248000000F111F221F331F8A95D2F7C901B8010F
-:10249000609570958095909503C060E070E0CB01E9
-:1024A0004B2D4695469543704230C1F060F56C293E
-:1024B0007D298E299F29413051F126960FB6F89437
-:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067
-:1024D000EF90DF90CF90BF900C9470186C297D29FD
-:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A
-:1024F000DF91CF911F910F91FF90EF90DF90CF90E0
-:10250000BF900C948C180E947018C701B6012696D3
+:1004D000DAE0DEBFCDBF04B603FE24C08091F00198
+:1004E0009091F101A091F201B091F3018730904B0E
+:1004F000A740B04BB9F41092F0011092F1011092A4
+:10050000F2011092F30114BE84B7877F84BF88E1A3
+:100510000FB6F89480936000109260000FBEE0E088
+:10052000FFE3099511E0A0E0B1E0EAE1F8E402C0E0
+:1005300005900D92A433B107D9F711E0A4E3B1E01F
+:1005400001C01D92A03FB107E1F70E94E6090C949B
+:100550000B240C940000662319F06130F1F03DC0CB
+:10056000FC018281882341F00E94B51B90933501E4
+:100570008093340181EE1CC080913401909135014B
+:100580000E94C11B8634910534F486E20E94481013
+:1005900086E20E94101181EE1EC0FC018281882338
+:1005A00051F00E94B51B909335018093340185EE84
+:1005B0000E94481012C080913401909135010E9430
+:1005C000C11B8634910534F487E20E94481087E20B
+:1005D0000E94101185EE0E94101180E090E00895B5
+:1005E00008956091B3017091B4018091B50190912B
+:1005F000B6010E94131B56985E9825982D98269850
+:100600002E9827982F98813019F0823021F0089584
+:10061000259A2D9A0895269A2E9A08950C94F102FF
+:1006200056985E9825982D9826982E9827982F985A
+:100630008FEF90E0909389008093880090938B00D7
+:1006400080938A0090938D0080938C00259A2D9A38
+:100650002FEF80E792E0215080409040E1F700C00A
+:100660000000269A2E9A2FEF80E792E021508040DA
+:100670009040E1F700C00000279A2F9A2FEF80E703
+:1006800092E0215080409040E1F700C000002598A2
+:100690002D982FEF80E792E0215080409040E1F7C5
+:1006A00000C0000026982E982FEF80E792E021509E
+:1006B00080409040E1F700C0000027982F9856989E
+:1006C0005E9825982D9826982E9827982F9808950B
+:1006D00089EA8093800089E08093810024982C9897
+:1006E0003F988AB18F748AB96E98479A8BB1806BA4
+:1006F0008BB9769A0E9410030C94F00280E28093EA
+:1007000000018091360181110EC00E94CD0381E06D
+:10071000809336012FEF83ED90E32150804090408D
+:10072000E1F700C0000080E40E94D3038093000141
+:1007300081112EC00E94FD0380930001811128C009
+:100740000E94FD0380930001811122C08FE30E946B
+:10075000FD038093000181111BC00E94F50380E41A
+:100760000E94D30380930001811112C08CE00E948B
+:10077000FD038093000181110BC00E94FD03809353
+:100780000001811105C08FE30E94FD0380930001E9
+:100790000E94F5038091000108951092B9008AE04B
+:1007A0008093B800089594EA9093BC009091BC00A7
+:1007B00097FFFCCF9091B900987F983021F090314D
+:1007C00011F081E008958093BB0084E88093BC0021
+:1007D0008091BC0087FFFCCF8091B900887F883171
+:1007E00011F0803471F780E0089584E98093BC00B3
+:1007F0008091BC0084FDFCCF08958093BB0084E809
+:100800008093BC008091BC0087FFFCCF9091B90021
+:10081000987F81E0983209F480E0089584E880931D
+:10082000BC008091BC0087FFFCCF8091BB00089585
+:1008300080910001811115C080E40E94D303809350
+:10084000000181110CC082E10E94FD038093000130
+:10085000811105C08FEF0E94FD03809300010E946B
+:10086000F50384B1807F84B985B1807F85B98AB171
+:10087000837F8AB98BB1837F8BB93E984698089560
+:100880000E947E03809300010E94180480B38C7044
+:1008900080BB81B3836F81BBE6E4F1E0A8E3B1E004
+:1008A00011921D9281E0E435F807D1F70C946803AA
+:1008B000BF92CF92DF92EF92FF920F931F93CF934D
+:1008C000DF9380910001882379F0809137018F5F59
+:1008D00080933701811108C00E947E03809300013C
+:1008E000811102C00E94100308E311E0C0E0D0E0D3
+:1008F000DD24D39482E0C82EEE24E394F12CC7309B
+:1009000000F580910001811162C080E40E94D30350
+:1009100080930001811112C082E10E94FD03809347
+:10092000000181110BC0C7010C2E01C0880F0A9471
+:10093000EAF780950E94FD03809300010E94F50371
+:1009400046C0CA30A1F028F4C83059F0C93061F06F
+:1009500005C0CC3089F070F0CD3089F0209A28980D
+:1009600010C0219A29980DC0229A2A980AC0239A69
+:100970002B9807C0529A01C0539A5B9802C03E9AC6
+:100980004698E0EAEA95F1F78FB179995AC092E07A
+:1009900081708D25892B7C9B02C090E001C094E082
+:1009A000892B7D9B02C090E001C098E0892B7E9B43
+:1009B00002C090E001C090E1892B9FB19095991FF2
+:1009C0009927991F9295990F907E892B0FC080913E
+:1009D000000181114BC080E40E94D3038093000189
+:1009E000882389F1B12C0E94F5038B2DF8019081A9
+:1009F000981719F08083C09201010E941804219673
+:100A00000F5F1F4FCE30D10509F079CF80910101E2
+:100A1000882371F1815080930101882339F08FE997
+:100A20009FE00197F1F700C0000022C0A6E4B1E00A
+:100A3000E8E3F1E081918D9391E0E634F907D1F795
+:100A400017C090E0A5CF83E10E94FD0380930001D1
+:100A50008111C8CF81E40E94D303809300018111EA
+:100A6000C1CF0E940E04B82EB094BDCF80E0BECF9F
+:100A70000E940E0381E0DF91CF911F910F91FF90B3
+:100A8000EF90DF90CF90BF900895E82FF0E0EA5B01
+:100A9000FE4F808108950895089596E0799FF001B2
+:100AA000112494E5899FE00DF11D1124E60FF11D3D
+:100AB000EE0FFF1FEC51FF4F859194910895880F21
+:100AC000991F805A9040FC01859194910895880F58
+:100AD000991F80529F4FFC018591949108950F9327
+:100AE0001F93CF93DF93EC01811520E3920730F53C
+:100AF000811530E2930708F0B1C08B3B910588F473
+:100B0000883A910508F058C0853A910508F049C027
+:100B10008430910508F043C08130910509F4B2C1D9
+:100B2000AEC18F3F910509F0D0F5803F910508F0E7
+:100B300092C0805E9109089790F1A1C1C11581E52D
+:100B4000D807A8F4C23090E5D90708F09FC0C115B6
+:100B500020E5D20709F486C008F092C0C11580E4F0
+:100B6000D80708F08CC18E011127106CCCC1C115BB
+:100B700090E8D90758F4C11520E7D20708F07BC1E7
+:100B8000C11530E6D30708F423C179C1C11580E946
+:100B9000D80708F074C18E011F70106AB4C18E01AD
+:100BA000B2C1853A910509F470C1863A910509F4FC
+:100BB0006FC103E810E4A7C1883A910509F46BC13D
+:100BC000893A910509F46AC18A3A910509F469C123
+:100BD0008B3A910509F468C18C3A910509F467C113
+:100BE0008D3A910509F466C1803B910509F465C110
+:100BF0008E3A910509F464C18F3A910509F463C1F5
+:100C0000813B910509F462C1823B910509F461C100
+:100C1000833B910509F460C1843B910509F45FC1F0
+:100C2000853B910509F45EC1863B910509F45DC1E0
+:100C3000873B910509F45CC1883B910509F45BC1D0
+:100C4000893B910509F45AC18A3B910509F059C1C4
+:100C50000AE216E458C18C01106555C19F700E94CC
+:100C6000670552C10E94A2149FEF24E33CE091501B
+:100C700020403040E1F700C000000E940F1C43C13B
+:100C80008091CF0181608093CF013DC10E94B71D4B
+:100C9000811102C00E949D1D0E94D41D90E090937E
+:100CA000F0018093EF01C23080E5D80721F48091F4
+:100CB000EF01816086C0C43090E5D90721F48091AE
+:100CC000EF0182607EC0C63020E5D20721F480911A
+:100CD000EF01846076C0C83030E5D30719F4809105
+:100CE000EF0127C0CA3080E5D80721F48091EF01D9
+:100CF000806167C0CC3090E5D90721F48091EF0185
+:100D000080625FC0CE3020E5D20721F48091EF01F0
+:100D1000806457C0C03130E5D30721F48091EF01E2
+:100D200080684FC0C23180E5D80729F48091EF0177
+:100D30008460886046C0C33090E5D90721F4809173
+:100D4000EF018E7F3EC0C53020E5D20721F48091AF
+:100D5000EF018D7F36C0C73030E5D30721F4809195
+:100D6000EF018B7F2EC0C93080E5D80719F4809140
+:100D7000EF0126C0CB3090E5D90721F48091EF0137
+:100D80008F7E1FC0CD3020E5D20721F48091EF0186
+:100D90008F7D17C0CF3030E5D30721F48091EF016C
+:100DA0008F7B0FC0C13180E5D80721F48091EF011E
+:100DB0008F7707C0C331D04531F48091EF018B7F2D
+:100DC000877F8093EF018091EF010E94D81D9BC027
+:100DD0008D2F99278F70992781309105E9F48E0125
+:100DE000037011279C0102C0220F331F0A95E2F7FE
+:100DF00089011C68CE0164E0880F991F6A95E1F7AC
+:100E000088279370082B192B73E0CC0FDD1F7A9580
+:100E1000E1F7C076DD272CC08230910529F41C2F24
+:100E20000027016F106A6FC08330910561F4CE0115
+:100E30008370992701E010E002C0000F111F8A950E
+:100E4000E2F71C680EC0049709F05DC0CE01837004
+:100E5000992701E010E002C0000F111F8A95E2F708
+:100E60001A6843E0CC0FDD1F4A95E1F7C07ED770CA
+:100E70000C2B1D2B48C08E011F70106244C000E077
+:100E800010E041C001E010E03EC001E810E43BC0CA
+:100E900002E810E438C002EE14E435C009EE14E4B0
+:100EA00032C00AEE14E42FC005EB14E42CC006EBAC
+:100EB00014E429C007EB14E426C00CEC14E423C0AE
+:100EC0000DEC14E420C003E815E41DC00AE815E4A5
+:100ED0001AC002E915E417C004E915E414C001E2E0
+:100EE00016E411C003E216E40EC004E216E40BC0DF
+:100EF00005E216E408C006E216E405C007E216E4BF
+:100F000002C000E014E4C801DF91CF911F910F915E
+:100F1000089596E0799FF001112494E5899FE00DF2
+:100F2000F11D1124E60FF11DEE0FFF1FEC51FF4FD5
+:100F300085919491803E9105E0F4803C910558F5AF
+:100F40008133910509F46FC048F48932910509F4A1
+:100F500063C08A32910509F46DC072C0893391056E
+:100F6000E9F082389105D1F08533910509F44DC03F
+:100F700067C0833E910581F138F4803E9105B9F058
+:100F8000823E9105D9F05CC0863E910561F1873EB5
+:100F90009105A1F155C00E945F0508952091EF01D0
+:100FA00020FD02C021FF4CC080EE90E049C080913E
+:100FB000EF0180FFF9CF89E390E042C08091EF011B
+:100FC00082FF0EC08091EF0184FF03C080E090E0BB
+:100FD00037C083EE90E034C08091EF0182FFF2CF02
+:100FE00082EE90E02DC08091EF0183FF0BC08091D5
+:100FF000EF0184FDEBCF87EE90E022C08091EF01FE
+:1010000083FFF5CF86EE90E01BC08091EF0185FF56
+:1010100007C089E290E014C08091EF0185FFF9CF0D
+:1010200085E390E00DC08091EF0186FF07C08AE262
+:1010300090E006C08091EF0186FFF9CF81E390E058
+:101040000E946F05089508950C942308809164010F
+:101050000895CF93DF9300D01F92CDB7DEB72091D4
+:10106000E601243019F523E029839B838A832093AA
+:10107000E9008FEF9091E800815095FD06C095ED55
+:101080009A95F1F700008111F5CF8091E80085FF76
+:101090000DC040E050E063E070E0CE0101960E9498
+:1010A000930A8091E8008E778093E8000F900F906C
+:1010B0000F90DF91CF910895CF93DF9300D01F92CF
+:1010C000CDB7DEB72091E601243021F522E0298357
+:1010D0009B838A8383E08093E9008FEF9091E800FF
+:1010E000815095FD06C095ED9A95F1F700008111AC
+:1010F000F5CF8091E80085FF0DC040E050E063E04F
+:1011000070E0CE0101960E94930A8091E8008E77EC
+:101110008093E8000F900F900F90DF91CF9108958A
+:101120002091E6012430F1F422E02093E9002FEF32
+:101130003091E800215035FD06C035ED3A95F1F7C4
+:1011400000002111F5CF2091E80025FF0BC040E001
+:1011500050E065E070E00E94930A8091E8008E778D
+:101160008093E8000895CF93DF93EC018091E6012E
+:10117000843009F046C090910C019923D9F09091E8
+:101180000D019923B9F08093E9008FEF9091E80069
+:10119000815095FD06C095E19A95F1F70000811107
+:1011A000F5CF8091E80085FF2CC040E050E060E181
+:1011B00070E017C081E08093E9008FEF9091E80024
+:1011C000815095FD06C095ED9A95F1F700008111CB
+:1011D000F5CF8091E80085FF14C040E050E068E062
+:1011E00070E0CE010E94930A8091E8008E77809390
+:1011F000E80080E1FE01A4E5B1E001900D928A953E
+:10120000E1F7DF91CF9108958091E501811109C047
+:101210000E94250C0E94820C8091E20084608093E1
+:10122000E20008951092E501089508950C94332288
+:101230000E94A61B0E9439220E941F0F0C942408B2
+:1012400042E061EC81E00E949F0B42E061EC82E0B1
+:101250000E949F0B42E061EC83E00E949F0B42E101
+:1012600061EC84E00C949F0B8091E801833009F4D9
+:1012700055C030F4813071F0823009F48EC0089589
+:101280008A3009F47AC08B3009F460C0893009F0E3
+:101290009CC020C08091E701813A09F096C08091FE
+:1012A000E800877F8093E8008091EB019091EC014A
+:1012B000892B21F060E080E090E003C060E184E5EC
+:1012C00091E070E00E94DC0A8091E8008B778093C7
+:1012D000E80008958091E701813209F076C080919D
+:1012E000EB019091EC01009719F0039709F06DC0A4
+:1012F0008091E800877F8093E8008091E80082FD7C
+:1013000005C08091E6018111F8CF5FC08091F100A6
+:10131000809364018091E8008B7753C08091E7014E
+:10132000813A09F052C08091EB019091EC01892B38
+:1013300009F04BC08091E800877F8093E80080919E
+:10134000E80080FFFCCF80910C0136C08091E7015E
+:101350008132D9F58091EB019091EC01892BA9F5AF
+:101360008091E800877F8093E8000E94D40B8091F1
+:10137000E90180930C010C94A2148091E701813261
+:1013800021F58091E800877F8093E8000E94D40BCC
+:101390008091EA018093650108958091E701813A87
+:1013A000A1F48091E800877F8093E8008091E800B5
+:1013B00080FFFCCF809165018093F1008091E8006F
+:1013C0008E778093E8000C94D40B089584B7877FC0
+:1013D00084BF88E10FB6F89480936000109260009B
+:1013E0000FBE90E080E80FB6F89480936100909370
+:1013F00061000FBE0E946E0F0E94250C0E94820C9D
+:101400008091E20084608093E20078940E94FD0E57
+:101410000E94700F82E091E00E941A0F0E94212228
+:101420008091E601853069F40E94661B8091E40199
+:101430008823B1F30E94911B882391F30E947D0AB7
+:10144000EFCF0E94760FECCF292F332723303105C1
+:10145000A9F06CF42130310509F442C02230310585
+:1014600009F043C08DE690E020E133E042C0213234
+:101470003105C9F02232310519F137C09927813081
+:10148000910541F08230910541F0892B71F5ECE036
+:10149000F3E005C0E4EFF2E002C0ECEDF2E084918D
+:1014A00090E09F0126C0643000F5E62FF0E0EE0FDB
+:1014B000FF1FEE5DFE4F2081318189E090E019C071
+:1014C000643098F4E62FF0E0DF01AA0FBB1FA65EA0
+:1014D000BE4F2D913C91EA5EFE4F808190E009C0A5
+:1014E00082E190E02DE733E004C080E090E020E06E
+:1014F00030E0FA0131832083089580E189BD82E1E3
+:1015000089BD09B400FEFDCF8091D8008F7D809306
+:10151000D8008091E00082608093E0008091E0003C
+:1015200081FDFCCF0895CF92DF92EF92FF920F934F
+:101530001F93CF93DF937C018B01EA010E94F50B8F
+:10154000811131C0209731F088819981081B190BD6
+:10155000E80EF91EC12CD12C0115110519F180914D
+:10156000E80085FD14C08091E8008E778093E80044
+:10157000209741F0888199818C0D9D1D99838883E6
+:1015800085E011C00E94F50B882331F30CC0F701F0
+:1015900081917F018093F10001501109FFEFCF1A73
+:1015A000DF0ADACF80E0DF91CF911F910F91FF909A
+:1015B000EF90DF90CF9008952091ED013091EE01F2
+:1015C0002617370748F06115710539F42091E800B6
+:1015D0002E772093E80001C0B901FC0120E06115DD
+:1015E0007105B9F18091E601882309F440C0853086
+:1015F00009F43FC08091E80083FD3DC08091E80080
+:1016000082FF06C08091E80082FF26C080E0089536
+:101610008091E80080FFE3CF2091F3008091F200F9
+:1016200090E0922B6115710551F08830910538F4E6
+:1016300021912093F100615071090196F3CF21E0CF
+:10164000089709F020E08091E8008E778093E80009
+:10165000C6CF2111C7CFD6CF8091E601882339F0BC
+:10166000853039F08091E80083FFCCCF04C082E060
+:10167000089583E0089581E008952091ED0130916F
+:10168000EE012617370748F06115710539F42091EE
+:10169000E8002E772093E80001C0B901FC0120E0AA
+:1016A00061157105C1F18091E601882309F441C0FB
+:1016B000853009F440C08091E80083FD3EC08091F0
+:1016C000E80082FF06C08091E80082FF27C080E02A
+:1016D00008958091E80080FFE3CF2091F30080918E
+:1016E000F20090E0922B6115710559F08830910558
+:1016F00040F424912093F1003196615071090196D4
+:10170000F2CF21E0089709F020E08091E8008E7781
+:101710008093E800C5CF2111C6CFD5CF8091E601D7
+:10172000882339F0853039F08091E80083FFCBCFF2
+:1017300004C082E0089583E0089581E00895982F21
+:10174000973058F59093E900981739F07091EC00B4
+:101750002091ED005091F00003C0242F762F50E02F
+:1017600021FF19C03091EB003E7F3093EB003091A8
+:10177000ED003D7F3093ED003091EB003160309310
+:10178000EB007093EC002093ED005093F00020915B
+:10179000EE0027FF07C09F5FD3CF8F708093E900D3
+:1017A00081E0089580E008958091E70187FD05C0FC
+:1017B0008091E80080FF0EC012C08091E80082FD99
+:1017C00005C08091E6018111F8CF08958091E8006D
+:1017D0008B7708C08091E6018111EACF089580914E
+:1017E000E8008E778093E80008958091E40090915E
+:1017F000E50045E62091EC0020FF21C02091E800A3
+:1018000020FD21C02091E601222389F0253089F0B6
+:101810002091EB0025FD0FC02091E4003091E50000
+:101820002817390739F3415041F0C901E3CF82E06D
+:10183000089583E0089581E0089584E0089520915B
+:10184000E80022FFDFCF80E008950E94930C0E9401
+:101850009B0CE0EEF0E0808181608083E8EDF0E0B9
+:1018600080818F77808319BCA7EDB0E08C918E7F4B
+:101870008C9380818F7E80831092E50108950F9371
+:101880001F93CF93DF930E94930C0E949B0CC8ED93
+:10189000D0E088818F778883888180688883888179
+:1018A0008F7D888319BC1092E6011092E20110929C
+:1018B000E4011092E30100EE10E0F80180818B7FDB
+:1018C000808388818160888342E060E080E00E94BC
+:1018D0009F0BE1EEF0E080818E7F8083E2EEF0E00E
+:1018E000808181608083808188608083F80180812D
+:1018F0008E7F8083888180618883DF91CF911F9163
+:101900000F910895E8EDF0E080818F7E8083E7ED10
+:10191000F0E080818160808384E082BF81E08093F9
+:10192000E5010C943F0CE8EDF0E080818E7F808330
+:101930001092E20008951092DA001092E1000895EA
+:101940001F920F920FB60F9211242F933F934F9334
+:101950005F936F937F938F939F93AF93BF93EF9317
+:10196000FF938091E10082FF0BC08091E20082FF33
+:1019700007C08091E1008B7F8093E1000E94FC0E04
+:101980008091DA0080FF1FC08091D80080FF1BC0CB
+:101990008091DA008E7F8093DA008091D90080FFF9
+:1019A0000DC080E189BD82E189BD09B400FEFDCF93
+:1019B00081E08093E6010E94040905C019BC1092E1
+:1019C000E6010E9412098091E10080FF19C0809118
+:1019D000E20080FF15C08091E2008E7F8093E200DC
+:1019E0008091E20080618093E2008091D800806263
+:1019F0008093D80019BC85E08093E6010E94160907
+:101A00008091E10084FF30C08091E20084FF2CC00F
+:101A100080E189BD82E189BD09B400FEFDCF8091DE
+:101A2000D8008F7D8093D8008091E1008F7E8093D5
+:101A3000E1008091E2008F7E8093E2008091E200DD
+:101A400081608093E2008091E201882311F084E0BC
+:101A500007C08091E30087FF02C083E001C081E0FE
+:101A60008093E6010E9418098091E10083FF29C05C
+:101A70008091E20083FF25C08091E100877F809301
+:101A8000E10082E08093E6011092E2018091E100A2
+:101A90008E7F8093E1008091E2008E7F8093E20050
+:101AA0008091E20080618093E20042E060E080E0AB
+:101AB0000E949F0B8091F00088608093F0000E944C
+:101AC0001509FF91EF91BF91AF919F918F917F91F8
+:101AD0006F915F914F913F912F910F900FBE0F909B
+:101AE0001F9018951F920F920FB60F9211242F93EB
+:101AF0003F934F935F936F937F938F939F93AF9396
+:101B0000BF93CF93EF93FF93C091E900CF70809183
+:101B1000EC001092E9008091F000877F8093F00044
+:101B200078940E94AE0D1092E9008091F0008860D8
+:101B30008093F000C093E900FF91EF91CF91BF91A6
+:101B4000AF919F918F917F916F915F914F913F9155
+:101B50002F910F900FBE0F901F9018951F93CF934A
+:101B6000DF93CDB7DEB7AA970FB6F894DEBF0FBEEE
+:101B7000CDBFE7EEF1E08091F100819321E0EF3EEF
+:101B8000F207C9F70E9434098091E80083FF1CC165
+:101B90002091E7013091E801832F90E08A30910590
+:101BA00008F012C1FC01EA5AFF4F0C94BB23203805
+:101BB00081F0223809F008C18091EB018F70809389
+:101BC000E9008091EB0085FB882780F91092E900FD
+:101BD00006C08091E3019091E4019111826090919F
+:101BE000E800977F9093E8008093F1001092F10055
+:101BF000C5C0822F8D7F09F0E7C0222319F0223063
+:101C000061F0E2C08091E901813009F0DDC033303C
+:101C100009F080E08093E40128C08091E9018111FE
+:101C200024C02091EB012F7009F4CEC02093E9006D
+:101C30008091EB0080FF19C08091EB00333011F4EC
+:101C4000806211C080618093EB0081E090E0022E01
+:101C500001C0880F0A94EAF78093EA001092EA0024
+:101C60008091EB0088608093EB001092E9008091F6
+:101C7000E800877F86C02111A7C01091E9011F7776
+:101C80008091E3008078812B8093E3008091E800CD
+:101C9000877F8093E8000E94D40B8091E80080FF4A
+:101CA000FCCF8091E30080688093E300112311F062
+:101CB00083E001C082E08093E60186C02058223094
+:101CC00008F082C08091E9019091EA018C3D23E007
+:101CD000920779F583E08A838AE289834FB7F89483
+:101CE000DE01139620E03EE051E2E32FF0E0509356
+:101CF0005700E49120FF03C0E295EF703F5FEF7063
+:101D00008E2F90E0EA3010F0C79601C0C0968D93F8
+:101D10009D932F5F243149F74FBF8091E800877F63
+:101D20008093E8006AE270E0CE0101960E94DC0A2E
+:101D300014C0AE014F5F5F4F6091EB010E94240A17
+:101D4000009709F441C02091E800277F2093E80024
+:101D5000BC0189819A810E943D0B8091E8008B77BC
+:101D60008093E80031C0203879F58091E800877FC2
+:101D70008093E8008091E2018093F1008091E80077
+:101D80008E778093E8000E94D40B1EC021111CC0E6
+:101D90009091E9019230C0F48091E800877F8093B0
+:101DA000E8009093E2010E94D40B8091E20181113E
+:101DB00004C08091E30087FF02C084E001C081E09D
+:101DC0008093E6010E9420098091E80083FF0AC009
+:101DD0008091E800877F8093E8008091EB0080622B
+:101DE0008093EB00AA960FB6F894DEBF0FBECDBF6E
+:101DF000DF91CF911F9108950895CF938091E601CF
+:101E00008823B1F08091E9008F709091EC0090FFF1
+:101E100002C090E801C090E0C92FC82B1092E900E1
+:101E20008091E80083FD0E94AE0DCF70C093E90061
+:101E3000CF91089590936B0180936A010895E0918A
+:101E40006A01F0916B01309721F00190F081E02D53
+:101E5000099480E00895E0916A01F0916B01309758
+:101E600021F00280F381E02D09940895E0916A0148
+:101E7000F0916B01309721F00480F581E02D0994F9
+:101E8000089520916801309169018217930771F0DC
+:101E90009093690180936801E0916A01F0916B0170
+:101EA000309721F00680F781E02D09940895209164
+:101EB0006601309167018217930771F09093670173
+:101EC00080936601E0916A01F0916B01309721F0F7
+:101ED0000084F185E02D0994089508950C946D0F08
+:101EE0000E94AC1B0E9440040C94721CCF92DF92A3
+:101EF000EF92FF920F931F93CF93DF93CDB7DEB78F
+:101F00002B970FB6F894DEBF0FBECDBF0E945804CA
+:101F10003DE6E32E31E0F32E00E010E0C02E802FEE
+:101F20000E944505F701D1907F01D826B1F40F5FDB
+:101F30001F4F0E30110591F78FEF89838A831B8223
+:101F40000E94B51B8160782F9D838C8349815A81C3
+:101F50006B818D810E94191041C09091CF0191FF3A
+:101F600004C08B870E944B058B8520E030E04D2D0F
+:101F700050E0922FBA01022E02C0759567950A941F
+:101F8000E2F760FF25C02E83CF82EE24E394F12C8C
+:101F900002C0EE0CFF1C9A95E2F790E08E219F2183
+:101FA00021E0892B09F420E028870E94B51B81607D
+:101FB000782F9A8789874E815F8168858A850E94FC
+:101FC0001910F801E359FE4F80818E25808306C0E9
+:101FD0002F5F3F4F2630310561F6A9CF0E94561F73
+:101FE00010916C010E941F0F1817A1F00E941F0F83
+:101FF00080936C012B960FB6F894DEBF0FBECDBF59
+:10200000DF91CF911F910F91FF90EF90DF90CF90D4
+:102010000C9424082B960FB6F894DEBF0FBECDBFEC
+:10202000DF91CF911F910F91FF90EF90DF90CF90B4
+:102030000895CF93DF93CDB7DEB72B970FB6F89403
+:10204000DEBF0FBECDBF4F83588769877A878B87E6
+:10205000DE01119686E0FD0111928A95E9F785E08F
+:10206000FE01379601900D928A95E1F749815A81D8
+:102070006B817C818D819E810E946E172B960FB69D
+:10208000F894DEBF0FBECDBFDF91CF9108950895C4
+:10209000CF93C82F882309F4C1C0823859F40E9415
+:1020A0001F0F81FDBBC089E30E941A1A0E94E41A27
+:1020B00089E30CC0833879F40E941F0F80FDAEC005
+:1020C00083E50E941A1A0E94E41A83E50E945A1AB4
+:1020D000CF910C94E41A843859F40E941F0F82FDAA
+:1020E0009DC087E40E941A1A0E94E41A87E4EECF8A
+:1020F0008CEF8C0F813A48F48C2F0E94892181113A
+:102100008DC08C2F0E941A1AE3CF80E28C0F88308A
+:1021100048F4C77081E001C0880FCA95EAF70E94B1
+:102120009B1AD6CF8BE58C0F833078F4C53A29F013
+:10213000C63A31F482E890E005C081E890E002C040
+:1021400083E890E0CF910C94410F88E58C0F8331A8
+:1021500008F064C0C83A39F1C93A41F1CA3A49F1C4
+:10216000CB3A51F1CC3A59F1CD3A61F1C03B69F12A
+:10217000CE3A71F1CF3A79F1C13B81F1C23B89F19D
+:10218000C33B91F1C43B99F1C53BA1F1C63BA9F119
+:10219000C73BB1F1C83BB9F1C93BC1F1CA3BC9F575
+:1021A0008AE292E038C082EE90E035C089EE90E09D
+:1021B00032C08AEE90E02FC085EB90E02CC086EB19
+:1021C00090E029C087EB90E026C08CEC90E023C023
+:1021D0008DEC90E020C083E891E01DC08AE891E09A
+:1021E0001AC082E991E017C084E991E014C081E24D
+:1021F00092E011C083E292E00EC084E292E00BC054
+:1022000085E292E008C086E292E005C087E292E0B3
+:1022100002C080E090E0CF910C94570FCF910895C9
+:10222000882309F44BC0823859F40E941F0F81FFA4
+:1022300045C089E30E941A1A0E94E41A89E30CC07F
+:10224000833871F40E941F0F80FF38C083E50E941D
+:102250001A1A0E94E41A83E50E945A1A0C94E41A8E
+:10226000843859F40E941F0F82FF28C087E40E941F
+:102270001A1A0E94E41A87E4EFCF9CEF980F913A64
+:1022800058F390E2980F983050F4877091E001C0B5
+:10229000990F8A95EAF7892F0E94A11ADFCF9BE553
+:1022A000980F933020F480E090E00C94410F885A0E
+:1022B000833120F480E090E00C94570F0895882338
+:1022C00021F00E949B1A0C94E41A0895882321F0AF
+:1022D0000E94A11A0C94E41A0895CF92DF92EF9213
+:1022E000FF920F931F93CF93DF93CDB7DEB728975D
+:1022F0000FB6F894DEBF0FBECDBF8C0185E0F801AC
+:10230000DE01119601900D928A95E1F7F801D080D7
+:10231000E180F280558152955F7023813481232BB7
+:1023200039F0FFEFEF1206C081E0DF1203C003C0F7
+:1023300081E001C080E080FDE2C2C8015F830E94AD
+:102340004710D982EA8269817A818F2D0E94161AFC
+:102350009E8388870E94CA190E949D184E815F81C2
+:102360006885FF2029F00E94B81A68855F814E8138
+:10237000E42FE295EF70F0E0E05AFF4F0C94BB239E
+:10238000842F807F142F1F70882311F01295107FE7
+:10239000FF20B1F0112309F467C280E2860F883074
+:1023A00028F4812F68870E949B1A04C0812F6887B8
+:1023B0000E94AB1A688568870E94E41A688554C237
+:1023C000862F68870E9410116885112309F497C22F
+:1023D000605E812F683018F40E94A11A02C00E942A
+:1023E000B11A28960FB6F894DEBF0FBECDBFDF91AD
+:1023F000CF911F910F91FF90EF90DF90CF900C94B1
+:10240000E41A242F207F842F8F70203211F08295C0
+:10241000807F662319F0613019F12BC0FF20B1F0E5
+:10242000552309F493C1513009F090C128960FB695
+:10243000F894DEBF0FBECDBFDF91CF911F910F91FA
+:10244000FF90EF90DF90CF900C94CB1A552319F0AA
+:10245000513009F454C28E830E94CE1A8E8189C1F4
+:10246000FF2021F0523008F04AC270C1511147C21A
+:1024700080C1FF2021F0552309F468C1F5C155231F
+:1024800009F477C105C2242F26952695237030E0E4
+:102490002115310521F021303105C9F030C2FF206E
+:1024A00021F0862F942F937002C080E090E0289650
+:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155
+:1024C0000F91FF90EF90DF90CF900C94410FFF2081
+:1024D00021F0862F942F937002C080E090E0289620
+:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125
+:1024F0000F91FF90EF90DF90CF900C94570F862FA5
+:10250000FF2019F00E945E1E02C00E94C61E28967F
:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4
-:102520000F91FF90EF90DF90CF90BF900C945418D4
-:10253000103FD1F118F4103E50F4A1C0123F09F43D
-:1025400063C008F44CC0133F09F473C098C01F70F7
-:102550008B2D8F710023A1F00E94ED17812F2696FD
-:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4
-:102570000F91FF90EF90DF90CF90BF900C948F1051
-:102580000E940E18812F26960FB6F894DEBF0FBE5C
-:10259000CDBFDF91CF911F910F91FF90EF90DF9012
-:1025A000CF90BF900C9496100023A9F02111BFC0CA
-:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60
-:1025C000DF91CF911F910F91FF90EF90DF90CF900F
-:1025D000BF900C943318223008F0A9C0E9CF002333
-:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23
-:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2
-:10260000CF90BF900C94ED17002359F38B2D8F7151
-:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7
-:102620001F910F91FF90EF90DF90CF90BF900C948F
-:102630000E18002399F08B2D8F7126960FB6F89403
-:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5
-:10265000EF90DF90CF90BF900C94D81726960FB6CE
-:10266000F894DEBF0FBECDBFDF91CF911F910F91C8
-:10267000FF90EF90DF90CF90BF900C94CE17002387
-:10268000A9F0222309F4ADCF812F26960FB6F89436
-:10269000DEBF0FBECDBFDF91CF911F910F91FF9095
-:1026A000EF90DF90CF90BF900C94780F222309F425
-:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB
-:1026C000DF91CF911F910F91FF90EF90DF90CF900E
-:1026D000BF900C9440104B2D4F70612FC7010E948A
-:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7
-:1026F000CF911F910F91FF90EF90DF90CF90BF90FF
-:102700000C94F2164B2D4F70612FC70126960FB611
-:10271000F894DEBF0FBECDBFDF91CF911F910F9117
-:10272000FF90EF90DF90CF90BF900C94E30526963A
-:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2
-:102740000F91FF90EF90DF90CF90BF9008950E947F
-:1027500088190E945D190E94A2190E94AE1E0E9453
-:10276000FE1D80E090E00E94720E80E090E00C94EC
-:10277000880E0E9478190C94A7130E94A918292F7B
-:1027800022952F702C3030F42A3048F42250223019
-:1027900078F405C02C3041F02F3031F009C0803E74
-:1027A00048F0803F29F406C093FB882780F90895FC
-:1027B00080E0089581E00895CF93DF9300D000D0AA
-:1027C0001F92CDB7DEB70F900F900F900F900F9024
-:1027D000DF91CF910895CF93DF9300D000D000D048
-:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD
-:1027F000DF91CF9108951F93CF93DF93C09179011B
-:1028000016E080917A01C81799F0D0E01C9FF00182
-:102810001D9FF00D1124E558FE4F408151816281CA
-:102820007381848195810E94EB132196C770E9CF53
-:10283000DF91CF911F9108954091AB015091AC0170
-:102840006091AD017091AE018091AF019091B001A6
-:102850000C94EB138091B00182958F7009F054C0F5
-:102860008091AD01882309F44FC080917901A09136
-:102870007A014091AE015091AF016091AB0170912E
-:10288000AC01B6E08A1709F43FC090E0411551054C
-:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3
-:1028A000F00D1124E558FE4F218127132AC0208105
-:1028B000261327C02281211124C0238134812417AB
-:1028C000350710F421503109241B350B283C310504
-:1028D000C0F42091B0012F7020612093B00126E058
-:1028E000289FF001299FF00D1124E058FE4F8081B0
-:1028F0008F70806180838BEA91E00E949D100C9420
-:10290000FB1301968770BECF0895CF92DF92EF92AE
-:10291000FF920F931F93CF93DF93CDB7DEB76297EC
-:102920000FB6F894DEBF0FBECDBF8C0185E0F80175
-:10293000DE011D9601900D928A95E1F7D8014C9128
-:1029400011965C91119712966C918091AE019091C5
-:10295000AF01009709F475C13091AB017091AC01E2
-:102960007F3F19F43F3F09F46CC1F801C380D48064
-:10297000E090AD01EE2009F4BEC02091B001C81670
-:10298000D90628F0D601A81BB90BCD0104C080954B
-:1029900090958C0D9D1DFF24F394883C910578F053
-:1029A000F12C207F09F0C4C07C2DD98AC88A89897E
-:1029B0000E94DC138BEA91E00E949D10AFC0822F31
-:1029C000807F09F045C0571313C0431311C0611134
-:1029D0000FC02F7020612093B0010E941C148BEA5D
-:1029E00091E00E949D108091B001F80185832EC076
-:1029F000CD2819F15F3F11F44F3FF9F0F62E611128
-:102A00001CC08091790120917A0136E0821709F487
-:102A10005BC090E0389FF001399FF00D1124E5581C
-:102A2000FE4F7181571306C07081471303C0728136
-:102A3000711103C001968770E9CFF62E662309F461
-:102A40001CC18091B00181608093B001F12C15C14F
-:102A5000571309C0431307C0611105C08091B0012D
-:102A6000F8018583C8C04D875E878D859E856A8BFA
-:102A70000E94BD136A898823D1F16623C1F1209198
-:102A8000B001822F82958F7090E0029774F0809150
-:102A9000AB019091AC0198878F831986DB86CA863B
-:102AA0002C87CE0107960E949D1086E0F801ABEAC4
-:102AB000B1E001900D928A95E1F70E942A140E94DC
-:102AC0001C14FF24F394D9C04D875E878D859E85A5
-:102AD0000E94A918292F22952F70223008F0C1C01A
-:102AE0009F7009F0BBC0805E883008F4C6C0C80182
-:102AF0000E949D10E6CFC816D90608F453C0F6010F
-:102B0000E81BF90BCF01883C910508F450C0F12C6B
-:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E
-:102B200086E0DF011D928A95E9F70E941C14A5C07A
-:102B3000571314C0431312C0611110C08091B0012B
-:102B4000F8018583C8010E949D1086E0EBEAF1E060
-:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5
-:102B60008D859E856A8B0E94BD136A89882309F42E
-:102B7000BECF662309F4BBCF2091B001822F82958E
-:102B80008F7090E002970CF490CF8091AB01909100
-:102B9000AC019A8389831B82DD82CC822E83CE0195
-:102BA000019681CF809590958C0D9D1DACCFF62E12
-:102BB000662309F49CCF571333C0431331C02091CF
-:102BC000B00120FD24C0822F82958F70482F50E0E5
-:102BD00041155105E1F0D80115962C9315974F300A
-:102BE000510549F08F5F982F9295907F822F8F70BB
-:102BF000892B15968C93C8010E949D1086E0F801E0
-:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4
-:102C1000F801ABEAB1E001900D928A95E1F72DC081
-:102C20004D875E878D859E850E94BD1381113DCFA6
-:102C30008091B00181608093B001C8010E949D1015
-:102C40001CC0662309F453CF4D875E878D859E8512
-:102C50000E94BD13882309F44ACF27CF811143CFA7
-:102C60000CC0243008F043CF9F7009F43CCFD8014A
-:102C700015969C91907F09F036CF8F2D62960FB6F6
-:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2
-:102C9000FF90EF90DF90CF9008951F93CF93DF9335
-:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01
-:102CB0004F83588769877A878B879C87CE010796D1
-:102CC0000E948514882371F08A859B85892B09F4DD
-:102CD00041C088858F3F09F065C08F818F3F09F023
-:102CE00061C038C086E0FE013796DE011196019082
-:102CF0000D928A95E1F76A857B856115710551F121
-:102D0000FF81E885EF3F11F4FF3F21F120917A0127
-:102D100030E0C9010196877099274091790150E010
-:102D20008417950709F447C0F983EA837D836C8390
-:102D300096E0929FD001939FB00D1124A558BE4FED
-:102D4000FE01319601900D929A95E1F780937A01F8
-:102D50000E94FB1316E08091790190917A01891706
-:102D6000B9F1189FC001112485589E4F0E94851407
-:102D7000882371F1E09179011E9FF0011124E5583B
-:102D8000FE4F4081518162817381848195810E94CF
-:102D9000EB138091790190E00196877099278093D9
-:102DA0007901D9CF4F81588569857A858B859C8536
-:102DB0000E94EB13CFCF0E94B91310927A011092A8
-:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF
-:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A
-:102DE0001F910895EF92FF920F931F93CF93DF935C
-:102DF0008C01892B09F46CC0F12CEE24E394E801DA
-:102E00002196F8018491843740F4843008F051C051
-:102E1000813081F0823019F15BC0853709F444C0FC
-:102E2000A8F19CE7980F903708F052C08F770E9466
-:102E3000401041C00E5F1F4FFE01849190E2980F39
-:102E4000983050F48770FE2D01C0FF0F8A95EAF785
-:102E50008F2F0E947B1914C00E94780F2DC00E5F27
-:102E60001F4FFE01849190E2980F983060F48770B4
-:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E
-:102E80000E94A21919C00E94401016C00E5F1F4F69
-:102E9000FE01C491CC2381F08FE99FE00197F1F707
-:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E
-:102EB00003C00E94780F8E018F2D882309F49FCFC5
-:102EC000EFE9FFE03197F1F700C000008150F5CF46
-:102ED000DF91CF911F910F91FF90EF90089508958A
-:102EE0006093B5017093B6018093B7019093B801D8
-:102EF0000C94A7130F931F930091B5011091B60185
-:102F00002091B7013091B801DC01CB01802B912BCE
-:102F1000A22BB32B8093B5019093B601A093B70178
-:102F2000B093B8011F910F910C94A7130F931F93A7
-:102F30000091B5011091B6012091B7013091B8010F
-:102F4000DC01CB0180239123A223B3238093B5011D
-:102F50009093B601A093B701B093B8011F910F9160
-:102F60000C94A7130F931F930091B5011091B60114
-:102F70002091B7013091B801DC01CB018027912766
-:102F8000A227B3278093B5019093B601A093B70110
-:102F9000B093B8011F910F910C94A7131092B10137
-:102FA0001092B2011092B3011092B4010C94A713C5
-:102FB00041E050E060E070E004C0440F551F661F20
-:102FC000771F8A95D2F74093B1015093B201609375
-:102FD000B3017093B4010C94A71341E050E060E09A
-:102FE00070E004C0440F551F661F771F8A95D2F703
-:102FF0008091B1019091B201A091B301B091B4015F
-:10300000482B592B6A2B7B2B4093B1015093B20173
-:103010006093B3017093B4010C94A71341E050E0A6
-:1030200060E070E004C0440F551F661F771F8A954B
-:10303000D2F740955095609570958091B10190912F
-:10304000B201A091B301B091B401482359236A237E
-:103050007B234093B1015093B2016093B30170930D
-:10306000B4010C94A71341E050E060E070E004C0AC
-:10307000440F551F661F771F8A95D2F78091B101C3
-:103080009091B201A091B301B091B40148275927A2
-:103090006A277B274093B1015093B2016093B3013B
-:1030A0007093B4010C94A7130F931F930091B10177
-:1030B0001091B2012091B3013091B401DC01CB0138
-:1030C000802B912BA22BB32B8093B1019093B20153
-:1030D000A093B301B093B4011F910F910C94A71367
-:1030E0000F931F930091B1011091B2012091B30190
-:1030F0003091B401DC01CB0180239123A223B323BF
-:103100008093B1019093B201A093B301B093B40145
-:103110001F910F910C94A7130F931F930091B1016E
-:103120001091B2012091B3013091B401DC01CB01C7
-:1031300080279127A227B3278093B1019093B201F2
-:10314000A093B301B093B4011F910F910C94A713F6
-:103150000895CF92DF92EF92FF920F931F93CF9338
-:10316000DF938C01C090B101D090B201E090B30127
-:10317000F090B4018091B5019091B601A091B70192
-:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7
-:10319000D701C6010C2E04C0B695A79597958795C3
-:1031A0000A94D2F780FF07C0B8018C2F0E9407064F
-:1031B0008130910531F4219758F7B80180E00E94E1
-:1031C0000706DF91CF911F910F91FF90EF90DF9055
-:1031D000CF90089590910C019923F1F090910D01F9
-:1031E0009923D1F0982F9695969596959F3080F5D6
-:1031F000E0910E01F0910F01E90FF11D877021E0C0
-:1032000030E0A90102C0440F551F8A95E2F7CA01B8
-:103210009181892B8183089520910E0130910F01B6
-:10322000F90132969FEF40E05191851789F09F3F59
-:1032300019F4511101C0942F4F5F4E30A9F79F3FF1
-:1032400039F0F901E90FF11D97FDFA958283089590
-:10325000089590910C019923F9F090910D01992313
-:10326000D9F0982F9695969596959F3028F5E091F0
-:103270000E01F0910F01E90FF11D877021E030E0A0
-:10328000A90102C0440F551F8A95E2F7CA01809533
-:10329000918189238183089520910E0130910F013E
-:1032A000F9013296205F3F4F9081891301C010824F
-:1032B0003196E217F307C1F7089581E090E0E091BD
-:1032C0000E01F0910F01E80FF91F10820196803175
-:1032D0009105A9F708959091CB01892B8093CB019B
-:1032E000089580959091CB0189238093CB01089517
-:1032F0001092CB0108959091CA01892B8093CA0145
-:10330000089580959091CA0189238093CA010895F8
-:103310001092CA0108958093B90108951092B901DD
-:10332000089580910E0190910F01FC0131969C014E
-:10333000205F3F4F80E0919191118F5FE217F3077B
-:10334000D1F70895E0910E01F0910F018091CB012A
-:103350008083E0910E01F0910F0190818091CA016C
-:10336000892B80838091B901882361F0E0910E015F
-:10337000F0910F019081892B80830E949119811116
-:103380001092B90180910E0190910F010C945C0E86
-:10339000CF92DF92EF92FF926C01EE24FF24C114D2
-:1033A000D104E104F10421F0C701B60120E101C01C
-:1033B00020E0C72ED82EE92EFF24C114D104E10449
-:1033C000F10419F0285FC701B6016B017C0154E0DC
-:1033D000F694E794D794C7945A95D1F7C114D104C1
-:1033E000E104F10419F02C5FC701B6016B017C0107
-:1033F00042E0F694E794D794C7944A95D1F7C11464
-:10340000D104E104F10419F02E5FC701B601DC011B
-:10341000CB01B695A79597958795892B8A2B8B2BF2
-:1034200009F02F5F822FFF90EF90DF90CF900895EB
-:103430008091E401843011F120E488E190E00FB63E
-:10344000F894A895809360000FBE2093600083B726
-:10345000817F846083BF83B7816083BF78948895C0
-:1034600083B78E7F83BF0FB6F894A89580916000D4
-:10347000886180936000109260000FBE08950895E7
-:103480000C943F1ACF930E94401A0E9426040E9477
-:103490003F1AC0E08C2F0E941C05811104C0CF5F31
-:1034A000CE30C1F701C081E0CF9108950E94B913D9
-:1034B0000E94500E0C94460782E084BD93E095BDB7
-:1034C0009AEF97BD80936E0008952FB7F89480917E
-:1034D000CD019091CE01A091CF01B091D0012FBF2D
-:1034E0000895CF92DF92EF92FF920F931F932FB721
-:1034F000F8944091CD015091CE016091CF0170912F
-:10350000D0012FBF6A017B01EE24FF248C0120E053
-:1035100030E0C016D106E206F30610F4415051091E
-:103520009A01281B390BC9011F910F91FF90EF9051
-:10353000DF90CF9008951F920F920FB60F92112433
-:103540008F939F93AF93BF938091CD019091CE01C4
-:10355000A091CF01B091D0010196A11DB11D809322
-:10356000CD019093CE01A093CF01B093D001BF9134
-:10357000AF919F918F910F900FBE0F901F90189554
-:103580000E94480BF8942FEF87EA91E62150804083
-:103590009040E1F700C0000087E090EBDC018093F1
-:1035A000ED019093EE01A093EF01B093F0019CE048
-:1035B00088E10FB6F894A895809360000FBE9093B1
-:1035C0006000FFCFEF92FF920F931F93CF93DF9393
-:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0
-:1035E000F12CC701002E02C0959587950A94E2F749
-:1035F00080FD06C00F5F1F4F0630110591F709C00F
-:10360000602F7C2F80E00E94E4058D13F3CF81E0D2
-:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3
-:103620000F91FF90EF900895CF93C82F8CE20E94E6
-:10363000E21A882321F08C2FCF910C94E21A80E0BB
-:10364000CF910895CF930E94691C811102C00E94FE
-:103650004F1CC5E6C15049F00E9426048FE39CE947
-:103660000197F1F700C00000F5CF89E20E94141B1A
-:10367000811113C18AE20E94141B81110E944F1C08
-:1036800085E00E94141B81110E94C01A0E94741CC4
-:103690008093CC0187E00E94141B8823A9F18BE161
-:1036A0000E94141B882351F08091CC0181FB2227BA
-:1036B00020F991E0922790FB81F90EC08EE00E94E4
-:1036C000141B882361F08091CC0182FB222720F912
-:1036D00091E0922790FB82F98093CC0115C080E1A4
-:1036E0000E94141B9091CC01882341F093FB222768
-:1036F00020F981E0822780FB93F904C0892F80950F
-:1037000080FB90F99093CC018091CC010E94781CB1
-:103710000E94861C8093DE0180EE0E94141B882389
-:1037200041F08091DE01982F909590FB80F9809375
-:10373000DE0189E30E94141B882359F08091DE0189
-:1037400081FB222720F991E0922790FB81F9809359
-:10375000DE0182EE0E94141B882359F08091DE0165
-:1037600082FB222720F991E0922790FB82F9809337
-:10377000DE0186EE0E94141B882359F08091DE0141
-:1037800083FB222720F991E0922790FB83F9809315
-:10379000DE0183EE0E94141B882359F08091DE0124
-:1037A00084FB222720F991E0922790FB84F98093F3
-:1037B000DE0185E30E94141B882359F08091DE010D
-:1037C00085FB222720F991E0922790FB85F98093D1
-:1037D000DE0181E30E94141B882359F08091DE01F1
-:1037E00086FB222720F991E0922790FB86F98093AF
-:1037F000DE0181E10E94141B882359F08091DE01D3
-:1038000087FB222720F991E0922790FB87F980938C
-:10381000DE018091DE010E948A1C8091DE0187FB1F
-:10382000882780F980930D0187E20E94141BC82F1E
-:103830008EE10E94141B8111C2608FE10E94141B53
-:103840008111C46080E20E94141B8111C86081E272
-:103850000E94141B8111C06182E20E94141B81111D
-:10386000C06283E20E94141B8111C06484E20E9442
-:10387000141B882311F0C06802C0CC2329F08C2FC0
-:103880000E94811C6C2F03C00E947D1C682F70E079
-:1038900080E090E0CF910C947017CF9108956DEE79
-:1038A0007EEF80E090E00E94C32260E082E090E042
-:1038B0000E94B52260E083E090E00E94B52260E0C3
-:1038C00084E090E00E94B52260E085E090E00C94F6
-:1038D000B52280E090E00E94AF2221E08D3E9E4F15
-:1038E00009F020E0822F089582E090E00C94A72256
-:1038F000682F82E090E00C94B52283E090E00C9475
-:10390000A722682F83E090E00C94B52284E090E039
-:103910000C94A722682F84E090E00C94B52280914B
-:10392000D30180FF0BC06091130185E0689FB00157
-:10393000112475956795759567952BC081FF09C012
-:103940006091130185E0689FB0011124759567951A
-:1039500020C082FF07C06091130185E0689FB0011D
-:10396000112417C09091D4019923D1F060911201D4
-:10397000961788F72091130185E0289F9001112464
-:10398000929FA001939F500D112470E0CA010E94E4
-:1039900079226038710540F46115710519F406C08B
-:1039A00065E070E0862F08958FE7089581E008951F
-:1039B0008091D30180FF08C06091110170E075957E
-:1039C00067957595679521C081FF06C060911101CB
-:1039D00070E07595679519C082FF04C06091110170
-:1039E00070E010C09091D401992399F0609110017A
-:1039F0009617A0F780911101899FC001112470E0F2
-:103A00000E9479226038710540F46115710519F43E
-:103A100006C061E070E0862F08958FE7089581E089
-:103A20000895803F21F40E948F1C819504C0813F3E
-:103A300029F40E948F1C8093D7010895823F21F4BE
-:103A40000E948F1C819504C0833F29F40E948F1C23
-:103A50008093D6010895893F19F40E94D81C05C0AF
-:103A60008A3F31F40E94D81C81958093D801089533
-:103A70008B3F21F40E94D81C819504C08C3F29F40F
-:103A80000E94D81C8093D9010895843F21F480912D
-:103A9000D501816017C0853F21F48091D5018260F6
-:103AA00011C0863F21F48091D50184600BC0873F0F
-:103AB00021F48091D501886005C0883F31F4809160
-:103AC000D50180618093D50108958D3F21F48091C7
-:103AD000D30181600BC08E3F21F48091D3018260BD
-:103AE00005C08F3F29F48091D30184608093D30176
-:103AF0000895803F39F48091D70187FF6CC0109200
-:103B0000D70169C0813F29F48091D7011816BCF311
-:103B100062C09091D601823F29F497FF5CC0109259
-:103B2000D60159C0833F19F41916CCF354C0893F0C
-:103B300041F48091D80118160CF04DC01092D801B4
-:103B40004AC08A3F29F48091D80187FF44C0F6CF4C
-:103B50008B3F39F48091D90187FF3DC01092D90184
-:103B60003AC08C3F29F48091D9011816BCF333C0B8
-:103B7000843F21F48091D5018E7F17C0853F21F4C9
-:103B80008091D5018D7F11C0863F21F48091D501B0
-:103B90008B7F0BC0873F21F48091D501877F05C0C3
-:103BA000883F31F48091D5018F7E8093D50113C079
-:103BB0008D3F21F48091D3018E7F0BC08E3F21F485
-:103BC0008091D3018D7F05C08F3F29F48091D3016F
-:103BD0008B7F8093D3018091D60181110EC080919B
-:103BE000D70181110AC08091D801811106C080914E
-:103BF000D901811102C01092D401089585ED91E0A0
-:103C00000E94670E0E94651A9093D2018093D101A1
-:103C100008951F93CF93DF938091D1019091D201AA
-:103C20000E94711AAC019091D401992321F0209146
-:103C3000140130E006C0209115018AE0289F900110
-:103C400011244217530708F485C08091D601C09112
-:103C5000D701D091D8011091D901811107C0C111AC
-:103C600075C0D11173C0111171C074C09F3F19F09C
-:103C70009F5F9093D401181624F40E948F1C8093A8
-:103C8000D6018091D60187FF05C00E948F1C8195C7
-:103C90008093D6011C1624F40E948F1C8093D701B8
-:103CA0008091D70187FF05C00E948F1C819580936A
-:103CB000D7016091D601662331F1C091D701CC23A1
-:103CC00011F1062E000C770B880B990B0E948021B6
-:103CD00023E333E343E35FE30E94E4210E944821AE
-:103CE0006093D6016C2FCC0F770B880B990B0E9439
-:103CF000802123E333E343E35FE30E94E4210E9456
-:103D000048216093D7011D1624F40E94D81C80938B
-:103D1000D8018091D80187FF05C00E94D81C8195E9
-:103D20008093D801111624F40E94D81C8093D901E5
-:103D30008091D90187FF05C00E94D81C819580938E
-:103D4000D901DF91CF911F910C94FE1D9F3F09F087
-:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6
-:103D600085E0DF011D928A95E9F71092D401109247
-:103D7000D3010895833081F128F4813059F08230E5
-:103D8000D1F00895853009F449C0B8F1863009F4BE
-:103D900056C0089580911501262F30E0280F311D5F
-:103DA0002F3F310524F4680F6093150108958FEFBC
-:103DB00080931501089580911401262F30E0280F7B
-:103DC000311D2F3F310524F4680F609314010895CD
-:103DD0008FEF80931401089580911301262F30E016
-:103DE000280F311D2F3F310524F4680F6093130114
-:103DF00008958FEF80931301089580911201262F6B
-:103E000030E0280F311D2F3F310524F4680F6093F7
-:103E1000120108958FEF809312010895809111018E
-:103E2000262F30E0280F311D2F3F310524F4680F75
-:103E30006093110108958FEF80931101089580918F
-:103E40001001262F30E0280F311D2F3F310524F4BB
-:103E5000680F6093100108958FEF8093100108950B
-:103E6000833011F128F4813049F0823091F00895C7
-:103E7000853081F120F18630C1F1089580911501DE
-:103E8000681720F4861B8093150108951092150180
-:103E9000089580911401681720F4861B8093140103
-:103EA000089510921401089580911301681720F469
-:103EB000861B809313010895109213010895809139
-:103EC0001201681720F4861B809312010895109246
-:103ED0001201089580911101681720F4861B8093C8
-:103EE0001101089510921101089580911001681731
-:103EF00020F4861B809310010895109210010895FC
-:103F00000F931F938D3109F46BC008F03FC08E30C2
-:103F100009F47DC0C0F4873009F46EC068F48630BF
-:103F200009F0AFC08091CC01817F8E7F8093CC015E
-:103F300081E08093DB01A6C0883009F458C08B3043
-:103F400009F49BC09EC0863109F497C078F4803193
-:103F500009F470C0813109F094C00E94B9139091A6
-:103F60000D0181E0892780930D0187C0893109F413
-:103F700084C08B3109F085C08091CC0181FB222760
-:103F800020F991E0922790FB81F94AC0853309F42A
-:103F90005BC048F4873209F457C008F45AC089322C
-:103FA00009F452C06EC0833438F48A3308F067C015
-:103FB000883309F462C065C0833409F445C088348D
-:103FC00009F05FC00E94B9130FEF13ED20E3015019
-:103FD00010402040E1F700C000000E94C01A4DC010
-:103FE0000E9402210E94500E0E94460746C00E9475
-:103FF000741C0E94861C41C09091CC01892F817055
-:1040000090FF12C0917F9E7F9093CC013BC0809126
-:10401000CC0182FB222720F991E0922790FB82F9C4
-:104020008093CC01992349F18091CC0181608093E8
-:10403000CC0123C08091CC0183FB222720F991E0A1
-:10404000922790FB83F9ECCF61E070E080E090E094
-:1040500010C08D5141E050E060E070E08A019B01AA
-:1040600004C0000F111F221F331F8A95D2F7C90108
-:10407000B8010E9470170E94B91381E003C08953F0
-:10408000E9CF80E01F910F91089580E008950C948E
-:104090004520CF93C82F8091DB01813079F018F053
-:1040A0008230E9F187C0E0910E01F0910F0180812B
-:1040B000813169F0823209F07FC009C0E0910E01C0
-:1040C000F0910F018081813111F0823261F48C2FE7
-:1040D0000E944720811104C08C2F0E94801F1DC0A8
-:1040E00081E090E01AC08C2F0E944520811114C0FD
-:1040F000C43179F048F4CB3079F0C03109F060C0B8
-:1041000082E08093DB0108C0C93219F0C83321F086
-:1041100057C01092DB0154C081E0817053C0C93296
-:1041200089F118F5C43171F1A8F4C73009F046C01F
-:104130008AE08093150194E19093140193E09093A9
-:1041400013018093120188E08093110188E280932B
-:10415000100134C0CE51C63088F5EC2FF0E0E65D9A
-:10416000FE4F80818093DA0129C0CE34E9F020F43B
-:10417000CB3421F56AE013C0C13579F0C235F1F4D2
-:1041800061E00DC08091DA01882319F01092DA0104
-:1041900015C081E08093DB0115C061E006C080910D
-:1041A000DA010E94BA1E0AC06AE08091DA010E9418
-:1041B000301F04C01092DB0180E004C081E002C027
-:1041C00080E0ABCFCF910895E1E8F0E08081886096
-:1041D00080838081816080838FB7F89493E090938F
-:1041E000890090ED909388008FBF0895EFE6F0E08E
-:1041F0008081826080830895EFE6F0E080818D7F8A
-:1042000080830895EFE6F0E0908182E08927808343
-:1042100008951F920F920FB60F9211242F933F9380
-:104220004F935F936F937F938F939F93AF93BF93BE
-:10423000EF93FF938091DC019091DD0101969093C3
-:10424000DD018093DC01811103C082E00E944607FA
-:10425000E091DD01E695E695F0E0E657FB4FE4914D
-:104260008091DC018E1303C080E00E944607FF911D
-:10427000EF91BF91AF919F918F917F916F915F91DE
-:104280004F913F912F910F900FBE0F901F90189557
-:104290000E944F216894B1110C94DE2108950E9470
-:1042A000C32188F09F5798F0B92F9927B751B0F0E4
-:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA
-:1042C00014C0B13091F00E94DD21B1E008950C944A
-:1042D000DD21672F782F8827B85F39F0B93FCCF3FD
-:1042E000869577956795B395D9F73EF49095809527
-:1042F000709561957F4F8F4F9F4F0895E89409C047
-:1043000097FB3EF490958095709561957F4F8F4F08
-:104310009F4F9923A9F0F92F96E9BB279395F6951E
-:10432000879577956795B795F111F8CFFAF4BB0F9C
-:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000
-:10434000882311F096E911C0772321F09EE8872F8A
-:10435000762F05C0662371F096E8862F70E060E046
-:104360002AF09A95660F771F881FDAF7880F9695BF
-:10437000879597F9089557FD9058440F551F59F0A8
-:104380005F3F71F04795880F97FB991F61F09F3F42
-:1043900079F087950895121613061406551FF2CF6B
-:1043A0004695F1DF08C0161617061806991FF1CFBB
-:1043B00086957105610508940895E894BB276627E2
-:1043C0007727CB0197F908950E94F7210C94682272
-:1043D0000E945A2238F00E94612220F0952311F0A9
-:1043E0000C9451220C94572211240C94DE210E942B
-:1043F000BB2170F3959FC1F3950F50E0551F629F4D
-:10440000F001729FBB27F00DB11D639FAA27F00D2D
-:10441000B11DAA1F649F6627B00DA11D661F829F54
-:104420002227B00DA11D621F739FB00DA11D621F39
-:10443000839FA00D611D221F749F3327A00D611D56
-:10444000231F849F600D211D822F762F6A2F112438
-:104450009F5750409AF0F1F088234AF0EE0FFF1F6B
-:10446000BB1F661F771F881F91505040A9F79E3FC2
-:10447000510580F00C9451220C94DE215F3FE4F34F
-:10448000983ED4F3869577956795B795F795E79518
-:104490009F5FC1F7FE2B880F911D9695879597F921
-:1044A000089597F99F6780E870E060E008959FEFB6
-:1044B00080EC089500240A941616170618060906BB
-:1044C000089500240A94121613061406050608958A
-:1044D000092E0394000C11F4882352F0BB0F40F412
-:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52
-:1044F000089597FB072E16F4009407D077FD09D096
-:104500000E94932207FC05D03EF4909581959F4F21
-:104510000895709561957F4F0895EE0FFF1F0590E8
-:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF
-:10453000BB1FA617B70710F0A61BB70B881F991F44
-:104540005A95A9F780959095BC01CD010895F999E8
-:10455000FECF92BD81BDF89A992780B50895A8E154
-:10456000B0E042E050E00C94CA22262FF999FECF29
-:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80
-:104580000FBE019608950E94B522272F0C94B622E3
-:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03
-:1045A000F89A319600B40D9241505040B8F70895F2
-:0445B000F894FFCFAD
-:1045B40020024707D707B2077E074A070101BA015D
-:1045C40028080A03140A3F4D36394B04FE03C80376
-:1045D4008F0322033B0354036D0301020304050606
-:0445E40007080900BB
+:102520000F91FF90EF90DF90CF900C944B1F842F72
+:10253000837009F076C0F110E2C1262F229526950E
+:102540002770220F220F862F8F70C82ED12CE12CDE
+:10255000F12C022E04C0CC0CDD1CEE1CFF1C0A94D6
+:10256000D2F764FF10C06FE070E080E090E004C03C
+:10257000660F771F881F991F2A95D2F7609570956F
+:102580008095909503C060E070E0CB01242F2695E4
+:1025900026952370422F50E042305105D1F0433050
+:1025A000510559F16C297D298E299F29413051050A
+:1025B00041F128960FB6F894DEBF0FBECDBFDF9174
+:1025C000CF911F910F91FF90EF90DF90CF900C94DF
+:1025D000C2186C297D298E299F2928960FB6F89458
+:1025E000DEBF0FBECDBFDF91CF911F910F91FF9046
+:1025F000EF90DF90CF900C94DC180E94C218C701B6
+:10260000B60128960FB6F894DEBF0FBECDBFDF919E
+:10261000CF911F910F91FF90EF90DF90CF900C948E
+:10262000A818FF2019F0842F817001C08695882397
+:1026300009F465C1262F229526952770220F220FB7
+:10264000862F8F70C82ED12CE12CF12C022E04C0C5
+:10265000CC0CDD1CEE1CFF1C0A94D2F764FF10C0EA
+:102660006FE070E080E090E004C0660F771F881F85
+:10267000991F2A95D2F7609570958095909503C023
+:1026800060E070E0CB01242F269526952370422F21
+:1026900050E042305105D1F04330510559F16C29D9
+:1026A0007D298E299F294130510541F128960FB689
+:1026B000F894DEBF0FBECDBFDF91CF911F910F9178
+:1026C000FF90EF90DF90CF900C9496196C297D29A4
+:1026D0008E299F2928960FB6F894DEBF0FBECDBF76
+:1026E000DF91CF911F910F91FF90EF90DF90CF90EE
+:1026F0000C94B0190E949619C701B60128960FB61E
+:10270000F894DEBF0FBECDBFDF91CF911F910F9127
+:10271000FF90EF90DF90CF900C947C19603FC9F14F
+:1027200018F4603E50F49BC0623F09F460C008F4A6
+:102730004AC0633F09F46FC092C0162F1F70842FE8
+:102740008F71FF2099F00E941519812F28960FB6DE
+:10275000F894DEBF0FBECDBFDF91CF911F910F91D7
+:10276000FF90EF90DF90CF900C945F110E9436198C
+:10277000812F28960FB6F894DEBF0FBECDBFDF9134
+:10278000CF911F910F91FF90EF90DF90CF900C941D
+:102790006611FF20A1F05111B2C0842F8F712896CD
+:1027A0000FB6F894DEBF0FBECDBFDF91CF911F9162
+:1027B0000F91FF90EF90DF90CF900C945B19523007
+:1027C00008F09DC0EACFFF20A1F0842F8F712896DA
+:1027D0000FB6F894DEBF0FBECDBFDF91CF911F9132
+:1027E0000F91FF90EF90DF90CF900C941519FF2080
+:1027F00061F3842F8F7128960FB6F894DEBF0FBE59
+:10280000CDBFDF91CF911F910F91FF90EF90DF909F
+:10281000CF900C943619FF2091F0842F8F71289659
+:102820000FB6F894DEBF0FBECDBFDF91CF911F91E1
+:102830000F91FF90EF90DF90CF900C9400192896A5
+:102840000FB6F894DEBF0FBECDBFDF91CF911F91C1
+:102850000F91FF90EF90DF90CF900C94F618FF202F
+:10286000A1F0552309F4B1CF862F28960FB6F8941E
+:10287000DEBF0FBECDBFDF91CF911F910F91FF90B3
+:10288000EF90DF90CF900C944810552309F4B1CF0E
+:10289000862F28960FB6F894DEBF0FBECDBFDF910E
+:1028A000CF911F910F91FF90EF90DF90CF900C94FC
+:1028B00010114F70C8010E94AB0228960FB6F89411
+:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063
+:1028D000EF90DF90CF900C941B184F70C801289692
+:1028E0000FB6F894DEBF0FBECDBFDF91CF911F9121
+:1028F0000F91FF90EF90DF90CF900C944C052896AD
+:102900000FB6F894DEBF0FBECDBFDF91CF911F9100
+:102910000F91FF90EF90DF90CF9008950E94B81A2A
+:102920000E94C81A0E948D1A0E94E41A0E94F71F82
+:102930000E944B1F80E090E00E94410F80E090E0F9
+:102940000C94570F0E94A81A0C948E140E940B1A14
+:10295000292F22952F7030E02C3031054CF42A308D
+:1029600031056CF4225031092230310590F407C052
+:102970002C30310551F02F30310539F00AC0803E3E
+:1029800010F0803F31F481E0089593FB882780F9AF
+:10299000089580E00895CF93DF9300D000D01F9278
+:1029A000CDB7DEB70F900F900F900F900F90DF9183
+:1029B000CF910895CF93DF9300D000D000D0CDB752
+:1029C000DEB726960FB6F894DEBF0FBECDBFDF91FF
+:1029D000CF9108951F93CF93DF93C0917B0116E0B1
+:1029E00080917C01C81799F0D0E01C9FF0011D9FD9
+:1029F000F00D1124E358FE4F4081518162817381B3
+:102A0000848195810E94DA142196C770E9CFDF9105
+:102A1000CF911F9108954091AD015091AE01609109
+:102A2000AF017091B0018091B1019091B2010C940D
+:102A3000DA14CF938091B20182958F7009F05FC054
+:102A40008091AF01882309F45AC020917B01A091A5
+:102A50007C016091AD017091AE018091B0019091C7
+:102A6000B10131E06F3F09F030E0B32FC6E02A1723
+:102A700009F445C0009721F07F3F21F44B2F03C09C
+:102A800041E001C040E030E040FD35C0C29FF001B0
+:102A9000C39FF00D1124E358FE4F418174132BC0E6
+:102AA0004081641328C04281411125C04381548173
+:102AB0004817590710F441505109481B590B483C1D
+:102AC0005105C8F48091B2018F7080618093B2018A
+:102AD00086E0829FF001839FF00D1124EE57FE4F98
+:102AE00080818F70806180838DEA91E00E946D11FA
+:102AF000CF910C94EA142F5F3F4F2770B8CFCF913E
+:102B00000895CF92DF92EF92FF920F931F93CF938E
+:102B1000DF93CDB7DEB762970FB6F894DEBF0FBE76
+:102B2000CDBF8C0185E0F801DE011D9601900D926C
+:102B30008A95E1F7D8014C9111965C911197129604
+:102B40006C9112971396ED90FC9014977091AD01D3
+:102B5000E091AE012091B0013091B1012115310514
+:102B600031F0EF3F31F481E07F3F19F403C081E0A1
+:102B700001C080E0B82FB170CB2E80FD6CC1D09029
+:102B8000AF01DD2009F4F5C0F091B201E216F306C1
+:102B900038F0C701821B930B883C910548F09BC01D
+:102BA000209530952E0D3F1D283C310508F093C02F
+:102BB0008F2F807F09F052C0E51314C0741312C028
+:102BC000D62E61110FC0FF70F061F093B2010E9428
+:102BD0000B158DEA91E00E946D118091B201F80110
+:102BE00085836CC1EF2831F05F3F31F481E04F3FC6
+:102BF00019F403C081E001C080E080FD03C081E0E2
+:102C0000862701C080E0F82FF170FF2E80FF1CC0E6
+:102C100080917B0120917C0136E0821709F428C164
+:102C200090E0389FF001399FF00D1124E358FE4FDA
+:102C30007181571306C07081471303C072816713F7
+:102C400003C001968770E9CFD62E662309F436C1FA
+:102C50008091B20181608093B20153C0E51308C036
+:102C6000741306C0611104C0D8011596FC93AEC060
+:102C70004D875E878D859E856A8B0E94A6146A8922
+:102C8000882329F1D62E662311F12091B201822FDB
+:102C900082958F7090E002970CF460C08091AD0136
+:102CA0009091AE0198878F831986FB86EA862C87E0
+:102CB000CE01079651C0E51731F14D875E878D85AE
+:102CC0009E856A8B0E94A6146A8981112EC0C80154
+:102CD0000E946D11A4C08F2F807F69F77E2DF98A25
+:102CE000E88A89890E94CB148DEA91E00E946D11D7
+:102CF000EDEAF1E086E0DF011D928A95E9F70E9496
+:102D00000B15D12CDBC07413D8CF6111D6CFD801ED
+:102D10001596FC93C8010E946D11EDEAF1E086E082
+:102D2000DF011D928A95E9F7C9C0D62E662379F294
+:102D30002091B201822F82958F7090E0029774F0FB
+:102D40008091AD019091AE019A8389831B82FD82AF
+:102D5000EC822E83CE0101960E946D1186E0F8016F
+:102D6000ADEAB1E001900D928A95E1F70E94191544
+:102D70006FC0E216F30628F0C701821B930B9C017B
+:102D800004C0209530952E0D3F1D283C310508F0DC
+:102D900052C0D62E662309F49ACFE5132CC07413C3
+:102DA0002AC08091B20180FD1DC0982F92959F701E
+:102DB000C9F0D80115968C9315979F3039F09F5F15
+:102DC0009295907F8F70892B15968C93C8010E94E5
+:102DD0006D1186E0F801ADEAB1E001900D928A959F
+:102DE000E1F736C086E0F801ADEAB1E001900D925E
+:102DF0008A95E1F763C04D875E878D859E850E9429
+:102E0000A614882379F086E0F801ADEAB1E00190DC
+:102E10000D928A95E1F70E9419150E940B15DD2489
+:102E2000D3944CC08091B20181608093B201C801FB
+:102E30000E946D1143C07E2DF98AE88A89890E941B
+:102E4000CB14EDEAF1E086E0DF011D928A95E9F707
+:102E50000E940B1533C0662309F439CF4D875E8776
+:102E60008D859E850E94A614882309F430CFCBCF90
+:102E70004D875E878D859E850E940B1A292F22958E
+:102E80002F7030E0223031052CF49F7041F0811119
+:102E900006C00CC0243031052CF49F7049F4805ECC
+:102EA000883020F0C8010E946D11CF2CDC2C06C0A8
+:102EB000D80115969C91907F91F7F8CF8D2D629651
+:102EC0000FB6F894DEBF0FBECDBFDF91CF911F913B
+:102ED0000F91FF90EF90DF90CF9008951F93CF93C5
+:102EE000DF93CDB7DEB72C970FB6F894DEBF0FBED9
+:102EF000CDBF4F83588769877A878B879C87CE01A0
+:102F000007960E9481158823C1F02F8138858A8514
+:102F10009B85892B31F03F3F11F080E003C02F3FAC
+:102F2000E1F781E0811147C04F81588569857A8535
+:102F30008B859C850E94DA143EC086E0FE013796A0
+:102F4000DE01119601900D928A95E1F7FF81E885E7
+:102F50004A855B854115510531F0EF3F31F481E041
+:102F6000FF3F19F403C081E001C080E080FD23C071
+:102F700020917C0130E0C90101968770992760910A
+:102F80007B0170E086179707F1F1F983EA835D838F
+:102F90004C8396E0929FD001939FB00D1124A358CB
+:102FA000BE4FFE01319601900D929A95E1F7809304
+:102FB0007C010E94EA1416E080917B0190917C01D3
+:102FC000891779F1189FC001112483589E4F0E94E0
+:102FD0008115882331F1E0917B011E9FF0011124BE
+:102FE000E358FE4F408151816281738184819581D4
+:102FF0000E94DA1480917B0190E0019687709927F6
+:1030000080937B01D9CF0E94A21410927C01109270
+:103010007B01EDEAF1E086E0DF011D928A95E9F798
+:10302000CACF2C960FB6F894DEBF0FBECDBFDF918E
+:10303000CF911F910895EF92FF920F931F93CF931B
+:10304000DF939C01009709F471C0F12CEE24E39406
+:10305000E9012196F9018491843740F4843008F025
+:1030600056C0813081F0823021F160C0853709F48B
+:1030700049C0C0F19CE7980F903708F057C08F7790
+:103080000E94101146C089010E5F1F4FFE018491FE
+:1030900090E2980F983050F48770FE2D01C0FF0F1A
+:1030A0008A95EAF78F2F0E94BB1A15C00E9448101C
+:1030B00014C089010E5F1F4FFE01849190E2980FAA
+:1030C000983068F48770FE2D01C0FF0F8A95EAF7EB
+:1030D0008F2F0E94C11A0E94E41AE8011AC00E94B0
+:1030E0001011FBCF2E5F3F4FFE01C491CC2341F066
+:1030F0008FE99FE00197F1F700C00000C150F6CFC3
+:10310000E90107C0FE01F490E901229602C00E9485
+:1031100048108F2D882341F0EFE9FFE03197F1F758
+:1031200000C000008150F6CF9E0192CFDF91CF9179
+:103130001F910F91FF90EF90089508956093B7014C
+:103140007093B8018093B9019093BA010C948E14D6
+:103150000F931F930091B7011091B8012091B9010D
+:103160003091BA01062B172B282B392B0093B7016E
+:103170001093B8012093B9013093BA011F910F91B8
+:103180000C948E140F931F930091B7011091B80106
+:103190002091B9013091BA0106231723282339233E
+:1031A0000093B7011093B8012093B9013093BA018D
+:1031B0001F910F910C948E140F931F930091B701E0
+:1031C0001091B8012091B9013091BA010627172753
+:1031D000282739270093B7011093B8012093B9012C
+:1031E0003093BA011F910F910C948E141092B30179
+:1031F0001092B4011092B5011092B6010C948E1485
+:1032000041E050E060E070E004C0440F551F661FCD
+:10321000771F8A95D2F74093B3015093B40160931E
+:10322000B5017093B6010C948E1441E050E060E05B
+:1032300070E004C0440F551F661F771F8A95D2F7B0
+:103240008091B3019091B401A091B501B091B60104
+:10325000842B952BA62BB72B8093B3019093B401AD
+:10326000A093B501B093B6010C948E1441E050E0E8
+:1032700060E070E004C0440F551F661F771F8A95F9
+:10328000D2F740955095609570958091B3019091DB
+:10329000B401A091B501B091B60184239523A62372
+:1032A000B7238093B3019093B401A093B501B09379
+:1032B000B6010C948E1441E050E060E070E004C070
+:1032C000440F551F661F771F8A95D2F78091B3016F
+:1032D0009091B401A091B501B091B60184279527D2
+:1032E000A627B7278093B3019093B401A093B501AB
+:1032F000B093B6010C948E140F931F930091B301F9
+:103300001091B4012091B5013091B601062B172B15
+:10331000282B392B0093B3011093B4012093B501EE
+:103320003093B6011F910F910C948E140F931F933D
+:103330000091B3011091B4012091B5013091B60113
+:1033400006231723282339230093B3011093B401D4
+:103350002093B5013093B6011F910F910C948E14F8
+:103360000F931F930091B3011091B4012091B50107
+:103370003091B60106271727282739270093B30174
+:103380001093B4012093B5013093B6011F910F91B2
+:103390000C948E140895CF92DF92EF92FF920F93C8
+:1033A0001F93CF93DF93EC01C090B701D090B80189
+:1033B000E090B901F090BA018091B3019091B4010D
+:1033C000A091B501B091B601C82AD92AEA2AFB2AF0
+:1033D0000FE110E0B701A601002E04C076956795B5
+:1033E000579547950A94D2F740FD05C00150110941
+:1033F00088F780E007C0BE01802F0E9489070197EF
+:10340000A9F3802FDF91CF911F910F91FF90EF9043
+:10341000DF90CF900895CF93DF93EC010E94CB19FA
+:10342000BE010E948907DF91CF910895CB010E94D0
+:103430000B1A089590910C019923D9F090910D01E8
+:103440009923B9F0982F9695969596959F3088F583
+:10345000E0910E01F0910F01E90FF11D877021E05D
+:1034600030E001C0220F8A95EAF78181822B8183A7
+:10347000089540910E0150910F0120E030E09FEF40
+:10348000FA01E20FF31F6281681799F09F3F19F468
+:10349000611101C0922F2F5F3F4F2E30310581F710
+:1034A0009F3F39F0FA01E90FF11D97FDFA958283EC
+:1034B0000895089590910C019923E1F090910D01E8
+:1034C0009923C1F0982F9695969596959F3020F563
+:1034D000E0910E01F0910F01E90FF11D877021E0DD
+:1034E00030E001C0220F8A95EAF7209581812823D8
+:1034F0002183089540910E0150910F0120E030E0AA
+:10350000FA01E20FF31F9281981301C012822F5F1C
+:103510003F4F2E303105A1F7089581E090E0E09112
+:103520000E01F0910F01E80FF91F10820196803112
+:103530009105A9F708959091CE01982B9093CE0113
+:10354000089580959091CE0198239093CE0108958F
+:103550001092CE0108959091CD01982B9093CD01BA
+:10356000089580959091CD0198239093CD01089571
+:103570001092CD0108959091CC01982B9093CC019D
+:10358000089580959091CC0198239093CC01089553
+:103590001092CC0108958093BB0108951092BB0155
+:1035A000089540910E0150910F0120E030E080E03D
+:1035B000FA01E20FF31F918191118F5F2F5F3F4F4F
+:1035C0002F303105A9F70895E0910E01F0910F0118
+:1035D0008091CE018083E0910E01F0910F018081F6
+:1035E0009091CD01892B8083E0910E01F0910F0124
+:1035F00080819091CC01892B80839091BB0199238C
+:1036000061F0E0910E01F0910F018081892B8083A0
+:103610000E94D11A81111092BB0180910E019091EC
+:103620000F010C942B0FCF92DF92EF92FF920F932A
+:103630001F936C01EE24FF24C114D104E104F104B2
+:1036400021F46B017C0180E001C080E133272F2D44
+:103650001E2D0D2D011511052105310519F0885F6D
+:103660006801790197018601A4E0369527951795A1
+:103670000795AA95D1F7011511052105310519F016
+:103680008C5F6801790197018601F2E036952795F4
+:1036900017950795FA95D1F7011511052105310503
+:1036A00019F08E5F68017901B701A60176956795DB
+:1036B00057954795452B462B472B09F08F5F1F9158
+:1036C0000F91FF90EF90DF90CF9008958091E601E9
+:1036D000843021F11092D00120E488E190E00FB60F
+:1036E000F894A895809360000FBE2093600080E05E
+:1036F0000E94240883B7817F846083BF83B7816081
+:1037000083BF7894889583B78E7F83BF88E10FB697
+:10371000F89480936000109260000FBE08950895A1
+:103720000895CF930E948F1B0E9458040E94901B03
+:10373000C0E08C2F0E944505811105C0CF5FCE30BF
+:10374000C1F780E001C081E0CF9108950E94A214EA
+:103750000E941F0F0C94240882E084BD93E095BD65
+:103760009AEF97BD80936E0008952FB7F8948091DB
+:10377000D1019091D201A091D301B091D4012FBF7A
+:103780000895CF92DF92EF92FF920F931F932FB77E
+:10379000F8944091D1015091D2016091D301709180
+:1037A000D4012FBF6A017B01EE24FF248C0120E0AD
+:1037B00030E0C016D106E206F30610F4415051097C
+:1037C000481B590BCA011F910F91FF90EF90DF909A
+:1037D000CF9008951F920F920FB60F9211248F93DE
+:1037E0009F93AF93BF938091D1019091D201A0910B
+:1037F000D301B091D4010196A11DB11D8093D101D7
+:103800009093D201A093D301B093D401BF91AF9113
+:103810009F918F910F900FBE0F901F9018950E944F
+:10382000250CF8942FEF87EA91E6215080409040D4
+:10383000E1F700C0000087E090EBDC018093F0012D
+:103840009093F101A093F201B093F3012CE088E191
+:1038500090E00FB6F894A895809360000FBE209377
+:103860006000FFCFEF92FF920F931F93CF93DF93F0
+:10387000E82EF12C8F2D0E944505C0E0D0E0082FE6
+:1038800010E098010C2E02C0359527950A94E2F7B6
+:1038900020FD05C02196C630D10599F709C06C2FCF
+:1038A0007F2D80E00E944D05E812F4CF81E005C035
+:1038B000F3948EE0F812DECF80E0DF91CF911F917C
+:1038C0000F91FF90EF900895CF93C82F8CE20E9444
+:1038D000321C882321F08C2FCF910C94321C80E075
+:1038E000CF910895CF930E94B71D811102C00E940D
+:1038F0009D1DC5E6C15049F00E9458048FE39CE924
+:103900000197F1F700C00000F5CF89E20E94641C26
+:10391000811111C18AE20E94641C81110E949D1DC7
+:1039200085E00E94641C81110E940F1C0E94C21D30
+:103930008093CF0187E00E94641C882399F18BE17A
+:103940000E94641C882351F09091CF0191FB88273D
+:1039500080F921E0822780FB91F922C08EE00E944D
+:10396000641C882351F09091CF0192FB882780F945
+:1039700021E0822780FB92F913C080E10E94641C41
+:103980009091CF01882341F093FB882780F921E0B3
+:10399000822780FB93F904C0892F809580FB90F9E2
+:1039A0009093CF018091CF010E94C61D0E94D41D2B
+:1039B0008093EF0180EE0E94641C882341F0809187
+:1039C000EF01982F909590FB80F98093EF0189E3A8
+:1039D0000E94641C882359F09091EF0191FB882785
+:1039E00080F921E0822780FB91F99093EF0182EE2C
+:1039F0000E94641C882359F09091EF0192FB882764
+:103A000080F921E0822780FB92F99093EF0186EE06
+:103A10000E94641C882359F09091EF0193FB882742
+:103A200080F921E0822780FB93F99093EF0183EEE8
+:103A30000E94641C882359F09091EF0194FB882721
+:103A400080F921E0822780FB94F99093EF0185E3D0
+:103A50000E94641C882359F09091EF0195FB882700
+:103A600080F921E0822780FB95F99093EF0181E3B3
+:103A70000E94641C882359F09091EF0196FB8827DF
+:103A800080F921E0822780FB96F99093EF0181E194
+:103A90000E94641C882359F09091EF0197FB8827BE
+:103AA00080F921E0822780FB97F99093EF018091C4
+:103AB000EF010E94D81D8091EF0187FB882780F9D4
+:103AC00080930D0187E20E94641CC82F8EE10E9442
+:103AD000641C8111C2608FE10E94641C8111C4606A
+:103AE00080E20E94641C8111C86081E20E94641C13
+:103AF0008111C06182E20E94641C8111C06283E274
+:103B00000E94641C8111C06484E20E94641C8823AA
+:103B100011F0C06802C0CC2329F08C2F0E94CF1D69
+:103B20006C2F03C00E94CB1D682F70E080E090E0F6
+:103B3000CF910C949E18CF9108956DEE7EEF80E0AA
+:103B400090E00E94F52360E082E090E00E94E32391
+:103B500060E083E090E00E94E32360E084E090E096
+:103B60000E94E32360E085E090E00C94E32380E092
+:103B700090E00E94DD2321E08D3E9E4F09F020E081
+:103B8000822F089582E090E00C94D523682F82E084
+:103B900090E00C94E32383E090E00C94D523682F0D
+:103BA00083E090E00C94E32384E090E00C94D52330
+:103BB000682F84E090E00C94E3238091D70180FF8C
+:103BC0000BC06091130185E0689FB00111247595C9
+:103BD0006795759567952AC081FF09C060911301AB
+:103BE00085E0689FB0011124759567951FC082FF1D
+:103BF00007C06091130185E0689FB001112416C0D1
+:103C00004091D8014423C9F060911201461788F70A
+:103C10002091130185E0289F90011124429FC0014B
+:103C2000439F900D112470E00E94A7236038710516
+:103C300040F46115710539F002C065E070E0862F2F
+:103C400008958FE7089581E008958091D70180FF5E
+:103C500008C06091110170E075956795759567953D
+:103C600021C081FF06C06091110170E075956795D4
+:103C700019C082FF04C06091110170E010C08091F2
+:103C8000D8018823C1F0609110018617A0F79091A8
+:103C90001101989FC001112470E00E94A723603891
+:103CA000710528F46115710521F0862F08958FE7BD
+:103CB000089581E0089561E070E0F4CF803F21F441
+:103CC0000E94DD1D819504C0813F29F40E94DD1D05
+:103CD0008093DB010895823F21F40E94DD1D8195D0
+:103CE00004C0833F29F40E94DD1D8093DA0108950A
+:103CF000893F19F40E94251E05C08A3F31F40E94B5
+:103D0000251E81958093DC0108958B3F21F40E944C
+:103D1000251E819504C08C3F29F40E94251E8093A6
+:103D2000DD010895843F21F48091D901816017C09D
+:103D3000853F21F48091D901826011C0863F21F432
+:103D40008091D90184600BC0873F21F48091D90113
+:103D5000886005C0883F31F48091D90180618093EB
+:103D6000D90108958D3F21F48091D70181600BC066
+:103D70008E3F21F48091D701826005C08F3F29F4E6
+:103D80008091D70184608093D7010895803F39F4F2
+:103D90008091DB0187FF6CC01092DB0169C0813F1D
+:103DA00029F48091DB011816BCF362C09091DA010E
+:103DB000823F29F497FF5CC01092DA0159C0833F1B
+:103DC00019F41916CCF354C0893F41F48091DC01F9
+:103DD00018160CF04DC01092DC014AC08A3F29F43D
+:103DE0008091DC0187FF44C0F6CF8B3F39F480918E
+:103DF000DD0187FF3DC01092DD013AC08C3F29F400
+:103E00008091DD011816BCF333C0843F21F480910A
+:103E1000D9018E7F17C0853F21F48091D9018D7F14
+:103E200011C0863F21F48091D9018B7F0BC0873F61
+:103E300021F48091D901877F05C0883F31F48091BA
+:103E4000D9018F7E8093D90113C08D3F21F48091D9
+:103E5000D7018E7F0BC08E3F21F48091D7018D7FDB
+:103E600005C08F3F29F48091D7018B7F8093D701C4
+:103E70008091DA0181110EC08091DB0181110AC0AD
+:103E80008091DC01811106C08091DD01811102C0A9
+:103E90001092D801089589ED91E00E94360F0E949A
+:103EA000B51B9093D6018093D50108951F93CF93AE
+:103EB000DF938091D5019091D6010E94C11B409162
+:103EC000D801442321F02091140130E006C0209154
+:103ED00015015AE0259F900111248217930708F4D9
+:103EE00082C08091DA011091DB01D091DC01C09198
+:103EF000DD01811107C0111105C0D11103C0CC2310
+:103F000009F471C04F3F19F04F5F4093D801181664
+:103F100024F40E94DD1D8093DA018091DA0187FF8D
+:103F200005C00E94DD1D81958093DA01111624F4ED
+:103F30000E94DD1D8093DB018091DB0187FF05C0BE
+:103F40000E94DD1D81958093DB016091DA0166237B
+:103F500039F11091DB01112319F1772767FD709575
+:103F6000872F972F0E94B82223E333E343E35FE3D5
+:103F70000E941C230E9485226093DA01612F77271B
+:103F800067FD7095872F972F0E94B82223E333E3B4
+:103F900043E35FE30E941C230E9485226093DB01C0
+:103FA0001D1624F40E94251E8093DC018091DC0103
+:103FB00087FF05C00E94251E81958093DC011C1699
+:103FC00024F40E94251E8093DD018091DD0187FF8E
+:103FD00005C00E94251E81958093DD01DF91CF9160
+:103FE0001F910C944B1FDF91CF911F910895E9ED24
+:103FF000F1E085E0DF011D928A95E9F71092D80182
+:104000001092D7010895833081F128F4813059F05E
+:104010008230D1F00895853009F449C0B8F1863076
+:1040200009F456C0089520911501862F90E0820F63
+:10403000911D8F3F910520F4620F60931501089543
+:104040008FEF80931501089520911401862F90E041
+:10405000820F911D8F3F910520F4620F6093140130
+:1040600008958FEF80931401089520911301862FF6
+:1040700090E0820F911D8F3F910520F4620F6093B5
+:10408000130108958FEF8093130108952091120179
+:10409000862F90E0820F911D8F3F910520F4620FD3
+:1040A0006093120108958FEF80931201089520917B
+:1040B0001101862F90E0820F911D8F3F910520F412
+:1040C000620F6093110108958FEF8093110108959D
+:1040D00020911001862F90E0820F911D8F3F910556
+:1040E00020F4620F6093100108958FEF8093100108
+:1040F0000895833011F128F4813049F0823091F035
+:104100000895853081F120F18630C1F108958091C4
+:104110001501681720F4861B8093150108951092ED
+:104120001501089580911401681720F4861B80936F
+:1041300014010895109214010895809113016817D5
+:1041400020F4861B809313010895109213010895A3
+:1041500080911201681720F4861B80931201089544
+:1041600010921201089580911101681720F4861BA6
+:10417000809311010895109211010895809110010A
+:10418000681720F4861B8093100108951092100187
+:1041900008958D3109F442C020F58E3009F477C0BE
+:1041A00070F4873009F459C018F48630F1F134C046
+:1041B000883009F4A8C08B3009F4A5C02DC0863121
+:1041C00009F4A1C038F4803109F472C0813109F4D6
+:1041D00079C022C0893109F496C08B3109F44DC0F1
+:1041E0001BC0853309F487C048F4873209F483C0C3
+:1041F00008F473C0893209F47EC00EC0833438F4E9
+:104200008A3308F068C0883309F47DC005C0833460
+:1042100009F471C0883499F080E008950E943F222B
+:104220000E941F0F0E9424086EC08091CF01817FE1
+:104230008E7F8093CF0181E08093DF0108950E94FB
+:10424000A2142FEF83ED90E3215080409040E1F7DE
+:1042500000C000000E940F1C56C09091CF01892F12
+:104260008095817080FB90F919F0966098601DC070
+:10427000997F977F9093CF0146C09091CF0191FB9A
+:10428000882780F921E0822780FB91F909C090916D
+:10429000CF0192FB882780F921E0822780FB92F9E9
+:1042A0009093CF01882379F191609093CF01089585
+:1042B0009091CF0193FB882780F921E0822780FB32
+:1042C00093F9EECF0E94A21480910D0191E089270D
+:1042D00080930D0118C027EC01C023EE280F61E088
+:1042E00070E080E090E004C0660F771F881F991F80
+:1042F0002A95D2F704C061E070E080E090E00E946F
+:104300009E180E94A21481E0089580E0089580E044
+:104310000895CF93C82F8091DF01813079F018F094
+:104320008230D1F184C0A0910E01B0910F018C9127
+:10433000813169F0823209F07CC009C0A0910E0180
+:10434000B0910F018C91813111F0823249F48C2FA0
+:104350000E94852181111DC08C2F0E94C9201AC086
+:104360008C2F0E948721811114C0C43179F048F448
+:10437000CB3079F0C03109F060C082E08093DF017A
+:1043800008C0C93219F0C83321F057C01092DF01BC
+:1043900054C081E0817053C0C93289F118F5C4312D
+:1043A00071F1A8F4C73009F046C08AE08093150186
+:1043B00094E19093140193E0909313018093120180
+:1043C00088E08093110188E28093100134C0CE51BF
+:1043D000C63088F5EC2FF0E0E65DFE4F80818093DB
+:1043E000DE0129C0CE34E9F020F4CB3421F56AE0B7
+:1043F00013C0C13579F0C235F1F461E00DC0809190
+:10440000DE01882319F01092DE0115C081E080934F
+:10441000DF0115C061E006C08091DE010E9403202B
+:104420000AC06AE08091DE010E94792004C01092E7
+:10443000DF0180E004C081E002C080E0ABCFCF911B
+:104440000895E1E8F0E08081886080838081816068
+:1044500080838FB7F89493E09093890090ED9093C8
+:1044600088008FBF0895EFE6F0E08081826080834E
+:104470000895EFE6F0E080818D7F80830895EFE678
+:10448000F0E0808192E08927808308951F920F9247
+:104490000FB60F9211242F933F934F935F936F9317
+:1044A0007F938F939F93AF93BF93EF93FF938091ED
+:1044B000E0019091E10101969093E1018093E00188
+:1044C000811103C082E00E942408E091E101E69599
+:1044D000E695F0E0E657FB4FE4918091E0018E1302
+:1044E00003C080E00E942408FF91EF91BF91AF913B
+:1044F0009F918F917F916F915F914F913F912F91FC
+:104500000F900FBE0F901F90189504D06894B111B2
+:104510008DC0089570D088F09F5790F0B92F9927DB
+:10452000B751A0F0D1F0660F771F881F991F1AF0BE
+:10453000BA95C9F712C0B13081F077D0B1E00895D3
+:1045400074C0672F782F8827B85F39F0B93FCCF354
+:10455000869577956795B395D9F73EF490958095B4
+:10456000709561957F4F8F4F9F4F0895E89409C0D4
+:1045700097FB3EF490958095709561957F4F8F4F96
+:104580009F4F9923A9F0F92F96E9BB279395F695AC
+:10459000879577956795B795F111F8CFFAF4BB0F2A
+:1045A00011F460FF1BC06F5F7F4F8F4F9F4F16C08E
+:1045B000882311F096E911C0772321F09EE8872F18
+:1045C000762F05C0662371F096E8862F70E060E0D4
+:1045D0002AF09A95660F771F881FDAF7880F96954D
+:1045E000879597F9089557FD9058440F551F59F036
+:1045F0005F3F71F04795880F97FB991F61F09F3FD0
+:1046000079F087950895121613061406551FF2CFF8
+:104610004695F1DF08C0161617061806991FF1CF48
+:1046200086957105610508940895E894BB2766276F
+:104630007727CB0197F908950BD078C069D028F07F
+:104640006ED018F0952309F05AC05FC01124EECF48
+:10465000CADFA0F3959FD1F3950F50E0551F629FDD
+:10466000F001729FBB27F00DB11D639FAA27F00DCB
+:10467000B11DAA1F649F6627B00DA11D661F829FF2
+:104680002227B00DA11D621F739FB00DA11D621FD7
+:10469000839FA00D611D221F749F3327A00D611DF4
+:1046A000231F849F600D211D822F762F6A2F1124D6
+:1046B0009F5750408AF0E1F088234AF0EE0FFF1F29
+:1046C000BB1F661F771F881F91505040A9F79E3F60
+:1046D000510570F014C0AACF5F3FECF3983EDCF3B5
+:1046E000869577956795B795F795E7959F5FC1F79D
+:1046F000FE2B880F911D9695879597F9089597F948
+:104700009F6780E870E060E008959FEF80EC089577
+:1047100000240A94161617061806090608950024A0
+:104720000A9412161306140605060895092E03941A
+:10473000000C11F4882352F0BB0F40F4BF2B11F48E
+:1047400060FF04C06F5F7F4F8F4F9F4F089597FBAF
+:10475000072E16F4009407D077FD09D00E94C123DC
+:1047600007FC05D03EF4909581959F4F0895709574
+:1047700061957F4F0895EE0FFF1F0590F491E02D96
+:104780000994AA1BBB1B51E107C0AA1FBB1FA61798
+:10479000B70710F0A61BB70B881F991F5A95A9F7EA
+:1047A00080959095BC01CD010895F999FECF92BDF9
+:1047B00081BDF89A992780B50895A8E1B0E042E05C
+:1047C00050E00C94FD23262FF999FECF92BD81BDB8
+:1047D000F89A019700B4021639F01FBA20BD0FB63F
+:1047E000F894FA9AF99A0FBE08950196272F0E941D
+:1047F000E4230C94E323DC01CB01FC01F999FECF07
+:1048000006C0F2BDE1BDF89A319600B40D92415058
+:0A4810005040B8F70895F894FFCF68
+:10481A0020022608B30890085C0829080101BC0197
+:10482A0028080A03140A3F4D36394B04FE03C8030D
+:10483A008F0322033B0354036D030102030405069D
+:04484A000708090052
:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c index 24ff1c6884..bf5a974bfe 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -7,6 +7,9 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys +#define LSFTO M(0) // Left shift, open parens when tapped +#define RSFTC M(1) // Right shift, close parens when tapped + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -17,9 +20,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | - | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -36,18 +39,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LSFTO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, - KC_SPC,KC_FN1,KC_END, + KC_SPC,KC_FN1,KC_END, // right hand - KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), - MEH_T(KC_NO),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, - KC_LALT, CTL_T(KC_ESC), + KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), + MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), RSFTC, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_MINS, + KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,LT(SYMB, KC_TAB), KC_ENT ), @@ -140,17 +143,37 @@ const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) }; +static uint16_t key_timer; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); + case 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + register_code(KC_LSFT); // we're now holding down Shift. + } else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) < 70) { // the threshhold we pick for counting something as a tap. + register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren + unregister_code(KC_9); // now let's let go of that key + } + unregister_code(KC_LSFT); // let's release the Shift key now. + } + break; + } + case 1: { + if (record->event.pressed) { + key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key + register_code(KC_RSFT); + } else { + if (timer_elapsed(key_timer) < 70) { + register_code(KC_0); + unregister_code(KC_0); + } + unregister_code(KC_RSFT); + } + break; } - break; } return MACRO_NONE; }; @@ -183,3 +206,5 @@ void matrix_scan_user(void) { } }; + + diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md index 82e1c5e4a0..205280e290 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md @@ -4,6 +4,15 @@ This is my personal layout which I use to test out ideas which may or may not ma Changelog: +## Apr 29, 2016: + +* Tweaks the Hyper and Meh key to send brackets when tapped +* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) + +## Apr 25, 2016: + +* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped + ## Feb 11, 2016: * Updated ASCII legend for thumb clusters diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c index 3a999f2665..efd67addd5 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c +++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c @@ -2,29 +2,31 @@ #include "led.h" #include "debug.h" #include "action_layer.h" - -#define BASE 0 // default layer -#define LOCK 1 // layer lock keys -#define SYMB_MO 2 // symbols momentary layer -#define SYMB_TG 3 // symbols lock layer -#define SYMB_XX 4 // symbols exit layer -#define MDIA_MO 5 // media momentary layer -#define MDIA_TG 6 // media lock layer -#define MDIA_XX 7 // media exit layer -#define UNLOCK 8 // clear to base layer +#include "action_util.h" + +#define BASE 0 // default layer +#define LOCK 1 // shift-lock layer +#define SYMB_SH 2 // symbols shift layer +#define SYMB_LK 3 // symbols lock layer +#define SYMB_UN 4 // symbols unlock layer +#define MDIA_SH 5 // media shift layer +#define MDIA_LK 6 // media lock layer +#define MDIA_UN 7 // media unlock layer +#define UNLOCK 8 // clear to base layer /* - * Ordinary Ergodox EZ keyboard layout, v3 + * The Ordinary Layout for the Ergodox EZ keyboard, v3.1 * modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - * Details: http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html + * Details: readme.md + * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer +/* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | LOCK Grv | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK | + * | LOCK `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -32,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+-----------| * | LShift | Z | X | C | V | B | -Tab | | | N | M | , | . | / | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * |LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh |RCtrl | - * `----------------------------------' `----------------------------------' + * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. * | Home | End | | Left | Right| * ,------|------|------| |------+------+------. @@ -44,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = KEYMAP( // left hand - LT(LOCK, KC_GRV),KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC -,LT(MDIA_MO, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,MO(SYMB_MO) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) -,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + LT(LOCK, KC_GRV) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,LT(MDIA_SH, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,MO(SYMB_SH) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI - ,KC_HOME,KC_END - ,KC_PGUP - ,KC_BSPC,KC_DEL ,KC_PGDN + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN // right hand ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,LT(LOCK, KC_EQL) - ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,LT(MDIA_MO, KC_BSLS) - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,LT(SYMB_MO, KC_QUOT) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,LT(MDIA_SH, KC_BSLS) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,LT(SYMB_SH, KC_QUOT) ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT ,KC_RGUI,KC_RALT,ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL @@ -68,59 +70,59 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Layer Lock Keys * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media LOCK| | | | | | | | | | | | | | Media LOCK| - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * |Symbol LOCK| | | | | |------| |------| | | | | |Symbol LOCK| - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Caps LOCK| | | | | | | | | | | | | | Caps LOCK| - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------| + * | Media LOCK | | | | | | | | | | | | | | Media LOCK | + * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------| + * | Symbol LOCK | | | | | |------| |------| | | | | | Symbol LOCK | + * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------' + * | | | | | | | | | | | | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' */ [LOCK] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN3 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN2 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN3 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN2 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN3 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN2 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN3 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN2 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ), -/* Keymap 2: Symbol Momentary Layer +/* Keymap 2: Symbol Shift Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | + * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * | LShift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | RShift | * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' * | | | | | | | 0 | . | = | + | Entr | * `----------------------------------' `----------------------------------' @@ -132,22 +134,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Down | | PgDn | | | * `--------------------' `--------------------' */ -[SYMB_MO] = KEYMAP( +[SYMB_SH] = KEYMAP( // left hand KC_FN2 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS -,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,MO(SYMB_MO) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,MO(MDIA_SH) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(SYMB_SH) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV ,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LEFT ,KC_RGHT ,KC_UP ,KC_SPC ,KC_ENT ,KC_DOWN // right hand - ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) - ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_MO) + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_SH) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT - ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) ,KC_HOME ,KC_END ,KC_PGUP ,KC_PGDN ,KC_BSPC ,KC_DEL @@ -156,13 +158,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 3: Symbol Lock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Lock | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | Lock | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * | LShift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | RShift | * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' * | | | | | | | 0 | . | = | + | Entr | * `----------------------------------' `----------------------------------' @@ -174,22 +176,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Down | | PgDn | | | * `--------------------' `--------------------' */ -[SYMB_TG] = KEYMAP( // layer 3 : return key for symbol lock layer +[SYMB_LK] = KEYMAP( // left hand - MO(SYMB_XX) ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS -,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,MO(UNLOCK) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV -,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_SPC ,KC_ENT ,KC_DOWN + MO(SYMB_UN) ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS +,MO(MDIA_SH) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(UNLOCK) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN // right hand - ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_XX) - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_UN) + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(UNLOCK) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT - ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) ,KC_HOME ,KC_END ,KC_PGUP ,KC_PGDN ,KC_BSPC ,KC_DEL @@ -197,58 +199,58 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 4: Symbol Unlock Layer * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Unlock | | | | | | | | | | | | | | Unlock | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' + * ,------------------------------------------------------. ,------------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media LOCK | | | | | | | | | | | | | | Media LOCK | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | UNLOCK | | | | | |------| |------| | | | | | UNLOCK | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' */ -[SYMB_XX] = KEYMAP( +[SYMB_UN] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,TG(MDIA_TG) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS - // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TG(MDIA_TG) - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - ), - -/* Keymap 5: Media Momentary Layer + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,TG(MDIA_LK) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TG(MDIA_LK) + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* Keymap 5: Media Shift Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * | Media |ShutDn|LClick| MsUp |RClick|Vol Up|ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * | Symbol | Sleep|MsLeft|MsDown|MsRght|Vol Dn|------| |------|NumLok| Left | Down | Right|MyComp| Symbol | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * | LShift | | |MsDown| | Mute |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * | LCtrl| Meh |Hyper | LAlt | LGui | |Insert|Delete| Hyper| LAlt | LGui | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Stop |Refrsh| | Prev | Next | @@ -258,22 +260,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Home | |VolDn | | Pause| * `--------------------' `--------------------' */ -[MDIA_MO] = KEYMAP( +[MDIA_SH] = KEYMAP( // left hand - KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS -,MO(MDIA_MO) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U -,MO(SYMB_MO) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS -,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D -,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_TRNS ,KC_WHOM + KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(MDIA_SH) ,KC_POWER ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_VOLU ,KC_WH_U +,MO(SYMB_SH) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand - ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 - ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_MO) - ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_MO) - ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 + ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_SH) + ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_SH) + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT + ,GUI_T(KC_INS),ALT_T(KC_DEL),ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY @@ -282,15 +284,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 6: Media Lock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * | Media |ShutDn|LClick| MsUp |RClick|Vol Up|ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * | | Sleep|MsLeft|MsDown|MsRght|Vol Dn|------| |------|NumLok| Left | Down | Right|MyComp| | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * | LShift | | |MsDown| | Mute |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * | LCtrl| Meh |Hyper | LAlt | LGui | |Insert|Delete| Hyper| LAlt | LGui | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Stop |Refrsh| | Prev | Next | @@ -300,22 +302,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Home | |VolDn | | Pause| * `--------------------' `--------------------' */ -[MDIA_TG] = KEYMAP( +[MDIA_LK] = KEYMAP( // left hand - MO(MDIA_XX) ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS -,MO(UNLOCK) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U -,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS -,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D -,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 + MO(MDIA_UN),KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(UNLOCK) ,KC_POWER ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_VOLU ,KC_WH_U +,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI ,KC_WSTP ,KC_WREF ,KC_WSCH - ,KC_WBAK ,KC_TRNS ,KC_WHOM + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand - ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_XX) + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_UN) ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(UNLOCK) ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_NO - ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT + ,GUI_T(KC_INS),ALT_T(KC_DEL),ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY @@ -324,9 +326,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 7: Media Unlock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | + * | | Esc | | | | | | | | | | | | Bspc | | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Unlock | | | | | | | | | | | | | | Unlock | + * | UNLOCK | | | | | | | | | | | | | | UNLOCK | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| * | | | | | | |------| |------| | | | | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -342,34 +344,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | * `--------------------' `--------------------' */ -[MDIA_XX] = KEYMAP( +[MDIA_UN] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ), /* Keymap 8: Unlock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Unlock | | | | | | | | | | | | | | Unlock | + * | UNLOCK | | | | | | | | | | | | | | UNLOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | | | | | | | | | | | | | | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -389,22 +391,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [UNLOCK] = KEYMAP( // left hand - KC_FN1 ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_FN1 ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS @@ -413,9 +415,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_CLEAR(ON_PRESS) // FN1 - clear to base layer - ,[2] = ACTION_LAYER_INVERT(SYMB_TG, ON_PRESS) // FN2 - toggle to Symbols on press - ,[3] = ACTION_LAYER_INVERT(MDIA_TG, ON_PRESS) // FN3 - toggle to Media on press + [1] = ACTION_LAYER_CLEAR(ON_PRESS) // FN1 - clear to base layer + ,[2] = ACTION_LAYER_INVERT(SYMB_LK, ON_PRESS) // FN2 - toggle to Symbols on press + ,[3] = ACTION_LAYER_INVERT(MDIA_LK, ON_PRESS) // FN3 - toggle to Media on press }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -440,31 +442,34 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); + uint8_t layer = biton32(layer_state); - // do not change lights for locking and unlocking - if(layer == UNLOCK || layer == LOCK || layer == SYMB_XX || layer == MDIA_XX) { - return; + // shift or caps lock turns on red light + if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { + ergodox_right_led_1_on(); + } else { + ergodox_right_led_1_off(); } - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - - // caps lock turns on red light - if(host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { - ergodox_right_led_1_on(); + // do not change lights while locking and unlocking + if(layer == LOCK || layer == SYMB_UN || layer == MDIA_UN || layer == UNLOCK) { + return; } - // symbol lock turns on green light - if(layer == SYMB_MO || layer == SYMB_TG) { + //ergodox_board_led_off(); + + // symbol turns on green light + if(layer == SYMB_SH || layer == SYMB_LK) { ergodox_right_led_2_on(); + } else { + ergodox_right_led_2_off(); } - // media lock turns on blue light - if(layer == MDIA_MO || layer == MDIA_TG) { + // media turns on blue light + if(layer == MDIA_SH || layer == MDIA_LK) { ergodox_right_led_3_on(); + } else { + ergodox_right_led_3_off(); } }; diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png Binary files differindex 9c0e8bba39..0ae162431d 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt index c7bd272eca..cc4c877ebd 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt @@ -3,25 +3,25 @@ [{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F16"], [{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], [{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], -[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#ffb063",a:4},"Scroll\n\n\n\n\n\nUp",{x:8.5},"Home",{x:1},"Page\n\n\n\n\n\nUp"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{c:"#ffb063",a:4,h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], +[{y:-0.875,x:2.5},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], [{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], [{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], [{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5,c:"#e6e067",a:4},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], [{y:-0.875,c:"#cccccc",a:7,w:1.5},"",{c:"#e6e067",a:4},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#cccccc",a:7,w:1.5},""], [{y:-0.625,x:6.5,c:"#ffb063",a:4,h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], [{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], -[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#ffb063",a:4},"Scroll\n\n\n\n\n\nDown",{x:8.5},"End",{x:1},"Page\n\n\n\n\n\nDown"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5},""], -[{y:-0.875,c:"#2277ff",a:4,fa:[0,1,0,0,0,0,0],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063"},"Delete"], -[{y:-0.875,x:2.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{x:1,c:"#ff8500"},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert",{x:1,c:"#cccccc",a:7},""], -[{y:-0.75,x:0.5,c:"#e6e067",a:4},"Mute","Vol\n\n\n\n\n\nDown",{x:14.5,c:"#cccccc",a:7},"",""], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#cfc82b",a:4},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#ffb063",a:4},"End",{x:1},"Page\n\n\n\n\n\nDown"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#cccccc",a:7},""], +[{y:-0.875,c:"#2277ff",a:4,f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#ffb063"},"Delete\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], [{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], [{x:2},"Home\n\n\nBrowser"], [{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#cfc82b",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], [{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png Binary files differindex 2538fbeb30..b3101e5c04 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt index 098a08d2f1..35efdba7d6 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt @@ -1,27 +1,27 @@ [{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], [{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], -[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F6"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], [{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], -[{y:-0.375,x:3.5,c:"#c4e0bf"},"{",{x:10.5,c:"#89b087"},"8"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], -[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#c4e0bf"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#c4e0bf"},"(",{x:10.5,c:"#89b087"},"5"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"`",{x:6.5},"/"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#c4e0bf",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], [{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], -[{y:-0.75,x:3.5,c:"#c4e0bf"},"[",{x:10.5,c:"#89b087"},"2"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"~",{x:6.5},"\\"], -[{y:-0.875,c:"#2277ff",f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#c4e0bf"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#cccccc",a:7},"",{x:10.5,c:"#89b087",a:4},"."], -[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#89b087",a:4},"0",{x:1},"="], -[{y:-0.75,x:0.5,c:"#cccccc",a:7},"","",{x:14.5,c:"#89b087",a:4},"+","Enter"], +[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",fa:[0,1,0,1,0,0,1],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], +[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], [{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], [{h:2},"Space",{h:2},"Enter","Up"], [{x:2},"Down"], [{r:-30,rx:13,y:-1,x:-3},"Home","End"], -[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], -[{x:-3},"Page\n\n\n\n\n\nDown"] +[{x:-3,f:3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3,f:3},"Page\n\n\n\n\n\nDown"] diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex index b726e5e92a..8e2d5ce26d 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex @@ -1,17 +1,17 @@ :100000000C945F040C94A3040C94A3040C94A30418
:100010000C94A3040C94A3040C94A3040C94A304C4
-:100020000C94A3040C94A3040C94BC0D0C948E0E9D
+:100020000C94A3040C94A3040C94C40D0C94960E8D
:100030000C94A3040C94A3040C94A3040C94A304A4
-:100040000C94A3040C9439230C94A3040C94A304DF
-:100050000C94A3040C94DB1C0C94A3040C94A30434
+:100040000C94A3040C9441230C94A3040C94A304D7
+:100050000C94A3040C94E31C0C94A3040C94A3042C
:100060000C94A3040C94A3040C94A3040C94A30474
:100070000C94A3040C94A3040C94A3040C94A30464
:100080000C94A3040C94A3040C94A3040C94A30454
:100090000C94A3040C94A3040C94A3040C94A30444
-:1000A0000C94A3040C94A3040C94A304F30E150F56
-:1000B0000010150F0010570F7A0F0010CF0FE20F2E
-:1000C000D612D61204130413461382138215821516
-:1000D0009A138215911491145C158215821570156E
+:1000A0000C94A3040C94A3040C94A304FB0E1D0F46
+:1000B00008101D0F08105F0F820F0810D70FEA0FEE
+:1000C000DE12DE120C130C134E138A138A158A15D6
+:1000D000A2138A159914991464158A158A1578152E
:1000E000000000810889248935812B850252E100B6
:1000F000E00000001E00140004001D0000774E0008
:100100001F001A0016001B00007F4C002000080092
@@ -32,29 +32,29 @@ :1001F00001000100010001000000010001000100F8
:1002000001000100010001000100010001000100E6
:1002100001000100010001000100010001000100D6
-:100220000100010001000100010001000100C30004
+:100220002A00010001000100010001000100C300DB
:10023000C200390001000000C20005520252E10074
:10024000010000003A001E022002220201005100BB
:100250003B001F0221022302010028003C002F0264
:1002600026022F0001002C003D0030022702300042
:10027000010052003E00240235003502000050000B
-:100280000100360200002B0000004F000100370281
+:100280000100360200002B0000004F002D00370255
:1002900000002B0200004A003F003102380031000C
-:1002A00000004D004000240021001E0027004B00EC
-:1002B0004100250022001F0037004C0042002600AC
-:1002C000230020002E002A004300380025022D00C4
-:1002D0002E024E00C20005520252E5002800000026
+:1002A00000004D004000240021001E0027784B0074
+:1002B0004100250022001F0037744C004200260038
+:1002C000230020002E7F2A004300380025022D0045
+:1002D0002E774E00C20005520252E5002871000040
:1002E000045205520852E100010000003A001E02CB
:1002F00020022202010051003B001F0221022302C2
:10030000010028003C002F0226022F0001002C00D3
:100310003D00300227023000010052003E0024025E
:1003200035003502000050000100360200002B00AD
-:1003300000004F000100370200002B0200004A00BD
+:1003300000004F002D00370200002B0200004A0091
:100340003F0031023800310000004D004000240021
-:1003500021001E0027004B004100250022001F0045
-:1003600037004C0042002600230020002E002A0007
-:100370004300380025022D002E024E000452055283
-:100380000852E5002800000001000654C1003900B1
+:1003500021001E0027784B004100250022001F00CD
+:1003600037744C0042002600230020002E7F2A0014
+:100370004300380025022D002E774E00045205520E
+:100380000852E5002871000001000654C100390040
:10039000010000002900010001000100010001002E
:1003A0000100010001000100010001000100010045
:1003B0000100010001000100010001000100010035
@@ -63,29 +63,29 @@ :1003E0000000010000000100010001000100010007
:1003F00000000100010001000100010001000100F6
:1004000001000100010001000100010001000100E4
-:1004100001000100010001000100010001000100D4
+:1004100001000100010001002A00010001000100AB
:100420000100010001000654C10039000100000074
-:10043000C30005520252E100A8000000440066001B
-:10044000A6000100AA00B50045000100F20001006D
-:10045000A90001006800F000F100F100F400B6000E
-:1004600069000100F3000100F500B4006A0001001A
-:10047000010001000000B8000100F9000000FA00CE
-:100480000000B9000100F9000000FA000000AC0013
-:100490006B004600530001000000AB006C004A00F6
-:1004A00050004D004900A9006D005200510051005C
-:1004B0004C00AE006E004B004F004E000100AD003E
-:1004C0006F00B100B30001000100AA00C300055293
-:1004D0000252E50001000000075208520000E1004E
-:1004E000A800000044006600A6000100AA00B500B4
-:1004F00045000100F2000100A90001006800F000C1
-:10050000F100F100F400B60069000100F300010001
-:10051000F500B4006A000100010001000000B8000D
-:100520000100F9000000FA000000B9000100F90024
-:100530000000FA000000AC006B0046005300010010
-:100540000000AB006C004A0050004D004900A900BB
-:100550006D005200510051004C00AE006E004B0087
-:100560004F004E000100AD006F00B100B30001006C
-:100570000100AA00075208520000E5000100000037
+:10043000C30005520252E100E000000044006600E3
+:10044000A60000000077B5004500F400F2000000AF
+:10045000007F00006800F000F100F100E200B6004B
+:100460006900F500F3000000E300B4006A00A90091
+:10047000AA00A8000000B8000000F9000000FA007F
+:100480000000B9000000F9000000FA000000AC0014
+:100490006B004600530000000000AB006C004A00F7
+:1004A00050004D004978A9006D00520051005100E4
+:1004B0004C74AE006E004B004F004E00007FAD004C
+:1004C0006F00B100B30000000077AA00C30005521E
+:1004D0000252E500E4000000075208520000E1006B
+:1004E000E000000044006600A60000000077B500B0
+:1004F0004500F400F2000000007F00006800F000FA
+:10050000F100F100E200B6006900F500F300000020
+:10051000E300B4006A00A900AA00A8000000B80027
+:100520000000F9000000FA000000B9000000F90026
+:100530000000FA000000AC006B0046005300000011
+:100540000000AB006C004A0050004D004978A90043
+:100550006D005200510051004C74AE006E004B0013
+:100560004F004E00007FAD006F00B100B3000000EF
+:100570000077AA00075208520000E500E4000000DE
:100580000100C10001003900010000002900010044
:100590000100010001000100010001000100010053
:1005A0000100010001000100010001000100010043
@@ -95,7 +95,7 @@ :1005E0000100010001000100000001000100010004
:1005F00001000100010001000100010001000100F3
:1006000001000100010001000100010001000100E2
-:100610000100010001000100010001000100C10012
+:100610002A00010001000100010001000100C100E9
:100620000100390001000000C100010001000100CB
:10063000010000002900010001000100010001008B
:1006400001000100010001000100010001000100A2
@@ -143,1047 +143,1048 @@ :1008E0008730904BA740B04BB9F41092EF011092B3
:1008F000F0011092F1011092F20114BE84B7877FCB
:1009000084BF88E10FB6F894809360001092600075
-:100910000FBEE0E0FFE3099511E0A0E0B1E0E6EFF3
-:10092000F9E402C005900D92A433B107D9F721E094
+:100910000FBEE0E0FFE3099511E0A0E0B1E0E6E002
+:10092000FAE402C005900D92A433B107D9F721E093
:10093000A4E3B1E001C01D92AF3EB207E1F70E940F
-:10094000020B0C94F9240C94000061110BC0FC0103
-:100950008281882321F085EE0E94631103C085EE19
-:100960000E942B1280E090E008950895CF9360914B
+:100940000A0B0C9401250C94000061110BC0FC01F2
+:100950008281882321F085EE0E946B1103C085EE11
+:100960000E94331280E090E008950895CF93609143
:10097000B1017091B2018091B3019091B4010E94D4
-:10098000071CC82F8130F9F08430E9F089EF8C0F13
-:100990008230C8F056985E9825982D9826982E9803
-:1009A00027982F980E943B1081FF02C0259A2D9A0C
-:1009B0008EEF8C0F823010F4269A2E9AC550C230DA
-:1009C00010F4279A2F9ACF9108950C94B604569854
-:1009D0005E9825982D9826982E9827982F988FEF17
-:1009E00090E0909389008093880090938B0080938F
-:1009F0008A0090938D0080938C00259A2D9A2FEF7A
-:100A000080E792E0215080409040E1F700C0000074
-:100A1000269A2E9A2FEF80E792E021508040904056
-:100A2000E1F700C00000279A2F9A2FEF80E792E0AD
-:100A3000215080409040E1F700C0000025982D989B
-:100A40002FEF80E792E0215080409040E1F700C016
-:100A5000000026982E982FEF80E792E021508040EA
-:100A60009040E1F700C0000027982F9856985E98B4
-:100A700025982D9826982E9827982F98089589EADA
-:100A80008093800089E08093810024982C983F987F
-:100A90008AB18F748AB96E98479A8BB1806B8BB983
-:100AA000769A0E94E7040C94B50480E280930001DA
-:100AB0008091340181110EC00E94A40581E08093D1
-:100AC00034012FEF83ED90E3215080409040E1F717
-:100AD00000C0000080E40E94AA05809300018111FB
-:100AE0002EC00E94D40580930001811128C00E946D
-:100AF000D40580930001811122C08FE30E94D405A8
-:100B00008093000181111BC00E94CC0580E40E94EB
-:100B1000AA0580930001811112C08CE00E94D405C7
-:100B20008093000181110BC00E94D40580930001C5
-:100B3000811105C08FE30E94D405809300010E94BB
-:100B4000CC058091000108951092B9008AE080934D
-:100B5000B800089594EA9093BC009091BC0097FF70
-:100B6000FCCF9091B900987F983021F0903111F02E
-:100B700081E008958093BB0084E88093BC0080915D
-:100B8000BC0087FFFCCF8091B900887F883111F0CD
-:100B9000803471F780E0089584E98093BC008091EF
-:100BA000BC0084FDFCCF08958093BB0084E8809353
-:100BB000BC008091BC0087FFFCCF9091B900987F6A
-:100BC00081E0983209F480E0089584E88093BC00C5
-:100BD0008091BC0087FFFCCF8091BB00089580917D
-:100BE0000001811115C080E40E94AA0580930001D4
-:100BF00081110CC082E10E94D40580930001811113
-:100C000005C08FEF0E94D405809300010E94CC059F
-:100C100084B1807F84B985B1807F85B98AB1837FB3
-:100C20008AB98BB1837F8BB93E98469808950E940C
-:100C30005505809300010E94EF0580B38C7080BB46
-:100C400081B3836F81BBE4E4F1E0A6E3B1E01192EC
-:100C50001D9281E0E235F807D1F70C943F05BF9271
-:100C6000CF92DF92EF92FF920F931F93CF93DF9378
-:100C700080910001882379F0809135018F5F809306
-:100C80003501811108C00E94550580930001811132
-:100C900002C00E94E70406E311E0C0E0D0E0DD24DA
-:100CA000D39482E0C82EEE24E394F12CC73000F5F3
-:100CB00080910001811162C080E40E94AA058093A6
-:100CC0000001811112C082E10E94D40580930001CD
-:100CD00081110BC0C7010C2E01C0880F0A94EAF7DE
-:100CE00080950E94D405809300010E94CC0546C0E7
-:100CF000CA30A1F028F4C83059F0C93061F005C0FD
-:100D0000CC3089F070F0CD3089F0209A289810C04E
-:100D1000219A29980DC0229A2A980AC0239A2B98C2
-:100D200007C0529A01C0539A5B9802C03E9A4698F7
-:100D3000E0EAEA95F1F78FB179995AC092E08170B3
-:100D40008D25892B7C9B02C090E001C094E0892B0B
-:100D50007D9B02C090E001C098E0892B7E9B02C081
-:100D600090E001C090E1892B9FB19095991F992740
-:100D7000991F9295990F907E892B0FC08091000149
-:100D800081114BC080E40E94AA0580930001882352
-:100D900089F1B12C0E94CC058B2DF8019081981718
-:100DA00019F08083C09201010E94EF0521960F5F28
-:100DB0001F4FCE30D10509F079CF809101018823F2
-:100DC00071F1815080930101882339F08FE99FE010
-:100DD0000197F1F700C0000022C0A4E4B1E0E6E30F
-:100DE000F1E081918D9391E0E434F907D1F717C0D8
-:100DF00090E0A5CF83E10E94D4058093000181118A
-:100E0000C8CF81E40E94AA05809300018111C1CF5F
-:100E10000E94E505B82EB094BDCF80E0BECF0E9401
-:100E2000E50481E0DF91CF911F910F91FF90EF904A
-:100E3000DF90CF90BF900895E82FF0E0EC5BFE4F7D
-:100E40008081089508958B3B910578F4883A910547
-:100E500040F5853A9105D0F48430910508F0B1C091
-:100E60008130910509F4ADC06BC0803E910508F456
-:100E700067C0883E910508F4A4C09C01205F310939
-:100E80002031310508F05CC090650895853A9105E0
-:100E900009F459C0863A910509F458C083E890E4F2
-:100EA0000895883A910509F454C0893A910509F4E6
-:100EB00053C08A3A910509F452C08B3A910509F45E
-:100EC00051C08C3A910509F450C08D3A910509F44E
-:100ED0004FC0803B910509F44EC08E3A910509F44C
-:100EE0004DC08F3A910509F44CC0813B910509F43E
-:100EF0004BC0823B910509F44AC0833B910509F43C
-:100F000049C0843B910509F448C0853B910509F42B
-:100F100047C0863B910509F446C0873B910509F41B
-:100F200045C0883B910509F444C0893B910509F40B
-:100F300043C08A3B910509F042C08AE296E40895D5
-:100F400080E090E0089581E890E4089582E890E4DC
-:100F5000089582EE94E4089589EE94E408958AEE6B
-:100F600094E4089585EB94E4089586EB94E4089561
-:100F700087EB94E408958CEC94E408958DEC94E46C
-:100F8000089583E895E408958AE895E4089582E950
-:100F900095E4089584E995E4089581E296E408953E
-:100FA00083E296E4089584E296E4089585E296E467
-:100FB000089586E296E4089587E296E4089580E035
-:100FC00094E40895089596E0799FF001112494E542
-:100FD000899FE00DF11D1124E60FF11DEE0FFF1F9B
-:100FE000E851FF4F859194910895880F991F805A79
-:100FF0009040FC01859194910895880F991F80522B
-:101000009F4FFC0185919491089526E0729FF00115
-:10101000112444E5849FE00DF11D1124E60FF11D1C
-:10102000EE0FFF1FE851FF4F25913491C9019A95AA
-:1010300081159F4110F4C9010895C901905281158D
-:10104000904128F4C9019F700E94FD070895C901CD
-:1010500090538115904120F4C9019927906C08950F
-:10106000211580E5380769F40E94A5159FEF24E358
-:101070004CE0915020404040E1F700C000000C944B
-:10108000001D213080E5380731F48091CD01816069
-:101090008093CD010895C90190558115904108F0C4
-:1010A00050C0832F99278F70992781309105D9F4EB
-:1010B000A9014370552702C0880F991F4A95E2F78E
-:1010C0009C68A90164E0440F551F6A95E1F7442725
-:1010D0005370842B952B73E0220F331F7A95E1F721
-:1010E000207633271DC08230910529F4922F88275E
-:1010F000816F906A089583309105A9F4A901437026
-:10110000552781E090E002C0880F991F4A95E2F7C9
-:101110009C6843E0220F331F4A95E1F7207E377029
-:10112000822B932B08950497F1F4A901437055275E
-:1011300081E090E002C0880F991F4A95E2F79A6813
-:10114000E8CFC90190578115904120F4C9019F70E3
-:1011500090620895C90190588115904120F4C90109
-:101160009F70906A0895203E3105E0F4203C3105DF
-:1011700058F52133310509F470C048F4293231059E
-:1011800009F464C02A32310509F46EC074C02933F1
-:101190003105F1F022383105D9F02533310509F454
-:1011A0004EC069C0233E310589F138F4203E310537
-:1011B000C1F0223E3105E1F05EC0263E310569F105
-:1011C000273E3105A9F157C0C9010E94F5070895CE
-:1011D0008091E00180FD02C081FF4DC080EE90E073
-:1011E0004BC08091E00180FFF9CF89E390E044C0DB
-:1011F0008091E00182FF0EC08091E00184FF03C076
-:1012000080E090E039C083EE90E036C08091E0014C
-:1012100082FFF2CF82EE90E02FC08091E00183FF49
-:101220000BC08091E00184FDEBCF87EE90E024C0FD
-:101230008091E00183FFF5CF86EE90E01DC08091A4
-:10124000E00185FF07C089E290E016C08091E001CF
-:1012500085FFF9CF85E390E00FC08091E00186FF24
-:1012600007C08AE290E008C08091E00186FFF9CFD4
-:1012700081E390E001C0C9010E9423070895089509
-:101280000C943F09809162010895CF93DF9300D0C1
-:101290001F92CDB7DEB72091E601243019F523E087
-:1012A00029839B838A832093E9008FEF9091E80044
-:1012B000815095FD06C095ED9A95F1F700008111DA
-:1012C000F5CF8091E80085FF0DC040E050E063E07D
-:1012D00070E0CE0101960E94AF0B8091E8008E77FE
-:1012E0008093E8000F900F900F90DF91CF910895B9
-:1012F000CF93DF9300D01F92CDB7DEB72091E601E8
-:10130000243021F522E029839B838A8383E0809324
-:10131000E9008FEF9091E800815095FD06C095EDB2
-:101320009A95F1F700008111F5CF8091E80085FFD3
-:101330000DC040E050E063E070E0CE0101960E94F5
-:10134000AF0B8091E8008E778093E8000F900F90AC
-:101350000F90DF91CF9108952091E6012430F1F4B0
-:1013600022E02093E9002FEF3091E800215035FD75
-:1013700006C035ED3A95F1F700002111F5CF209127
-:10138000E80025FF0BC040E050E065E070E00E94FF
-:10139000AF0B8091E8008E778093E8000895CF939B
-:1013A000DF93EC018091E601843009F046C0909112
-:1013B0000C019923D9F090910D019923B9F08093F4
-:1013C000E9008FEF9091E800815095FD06C095E10E
-:1013D0009A95F1F700008111F5CF8091E80085FF23
-:1013E0002CC040E050E060E170E017C081E08093E5
-:1013F000E9008FEF9091E800815095FD06C095EDD2
-:101400009A95F1F700008111F5CF8091E80085FFF2
-:1014100014C040E050E068E070E0CE010E94AF0BE5
-:101420008091E8008E778093E80080E1FE01A2E5DC
-:10143000B1E001900D928A95E1F7DF91CF91089587
-:101440008091E501811109C00E94410D0E949E0D0D
-:101450008091E20084608093E20008951092E5019B
-:10146000089508950C9426230E94971C0E942C2313
-:101470000E943B100C94400942E061EC81E00E9424
-:10148000BB0C42E061EC82E00E94BB0C42E061ECEC
-:1014900083E00E94BB0C42E161EC84E00C94BB0C45
-:1014A0008091E801833009F455C030F4813071F047
-:1014B000823009F48EC008958A3009F47AC08B30E6
-:1014C00009F460C0893009F09CC020C08091E70118
-:1014D000813A09F096C08091E800877F8093E80008
-:1014E0008091EB019091EC01892B21F060E080E08C
-:1014F00090E003C060E182E591E070E00E94F80BAB
-:101500008091E8008B778093E80008958091E7014F
-:10151000813209F076C08091EB019091EC01009747
-:1015200019F0039709F06DC08091E800877F8093E0
-:10153000E8008091E80082FD05C08091E6018111FC
-:10154000F8CF5FC08091F100809362018091E80044
-:101550008B7753C08091E701813A09F052C08091A6
-:10156000EB019091EC01892B09F04BC08091E800D0
-:10157000877F8093E8008091E80080FFFCCF809116
-:101580000C0136C08091E7018132D9F58091EB01E1
-:101590009091EC01892BA9F58091E800877F8093D9
-:1015A000E8000E94F00C8091E90180930C010C94FA
-:1015B000A5158091E701813221F58091E800877FB0
-:1015C0008093E8000E94F00C8091EA01809363010F
-:1015D00008958091E701813AA1F48091E800877F26
-:1015E0008093E8008091E80080FFFCCF8091630148
-:1015F0008093F1008091E8008E778093E8000C944E
-:10160000F00C089584B7877F84BF88E10FB6F89403
-:1016100080936000109260000FBE90E080E80FB6EB
-:10162000F89480936100909361000FBE0E948A102D
-:101630000E94410D0E949E0D8091E2008460809383
-:10164000E20078940E9419100E948C1082E091E0D0
-:101650000E9436100E9414238091E601853069F4BF
-:101660000E945A1C8091E4018823B1F30E94821CDD
-:10167000882391F30E94990BEFCF0E949210ECCF38
-:10168000292F332723303105A9F06CF4213031059F
-:1016900009F442C02230310509F043C08DE690E0E4
-:1016A00024E037E042C021323105C9F02232310551
-:1016B00019F137C099278130910541F082309105A9
-:1016C00041F0892B71F5E0E0F7E005C0E8EEF6E0C7
-:1016D00002C0E0EDF6E0849190E09F0126C0643006
-:1016E00000F5E62FF0E0EE0FFF1FEE5DFE4F2081CC
-:1016F000318189E090E019C0643098F4E62FF0E081
-:10170000DF01AA0FBB1FA65EBE4F2D913C91EA5E82
-:10171000FE4F808190E009C082E190E021E737E050
-:1017200004C080E090E020E030E0FA0131832083C3
-:10173000089580E189BD82E189BD09B400FEFDCF35
-:101740008091D8008F7D8093D8008091E0008260E6
-:101750008093E0008091E00081FDFCCF0895CF925E
-:10176000DF92EF92FF920F931F93CF93DF937C0151
-:101770008B01EA010E94110D811131C0209731F0D7
-:1017800088819981081B190BE80EF91EC12CD12CF8
-:101790000115110519F18091E80085FD14C08091B3
-:1017A000E8008E778093E800209741F08881998146
-:1017B0008C0D9D1D9983888385E011C00E94110DB9
-:1017C000882331F30CC0F70181917F018093F100F0
-:1017D00001501109FFEFCF1ADF0ADACF80E0DF9165
-:1017E000CF911F910F91FF90EF90DF90CF900895D0
-:1017F0002091ED013091EE012617370748F0611571
-:10180000710539F42091E8002E772093E80001C09B
-:10181000B901FC0120E061157105B9F18091E60183
-:10182000882309F440C0853009F43FC08091E80066
-:1018300083FD3DC08091E80082FF06C08091E800F2
-:1018400082FF26C080E008958091E80080FFE3CF0A
-:101850002091F3008091F20090E0922B61157105C8
-:1018600051F08830910538F421912093F1006150B6
-:1018700071090196F3CF21E0089709F020E08091EB
-:10188000E8008E778093E800C6CF2111C7CFD6CF6E
-:101890008091E601882339F0853039F08091E800A5
-:1018A00083FFCCCF04C082E0089583E0089581E0F7
-:1018B00008952091ED013091EE012617370748F089
-:1018C0006115710539F42091E8002E772093E80026
-:1018D00001C0B901FC0120E061157105C1F18091E1
-:1018E000E601882309F441C0853009F440C08091A5
-:1018F000E80083FD3EC08091E80082FF06C0809131
-:10190000E80082FF27C080E008958091E80080FF12
-:10191000E3CF2091F3008091F20090E0922B6115CB
-:10192000710559F08830910540F424912093F1001D
-:101930003196615071090196F2CF21E0089709F0C4
-:1019400020E08091E8008E778093E800C5CF2111D8
-:10195000C6CFD5CF8091E601882339F0853039F0A4
-:101960008091E80083FFCBCF04C082E0089583E03C
-:10197000089581E00895982F973058F59093E900E5
-:10198000981739F07091EC002091ED005091F00023
-:1019900003C0242F762F50E021FF19C03091EB00B7
-:1019A0003E7F3093EB003091ED003D7F3093ED00B2
-:1019B0003091EB0031603093EB007093EC0020939A
-:1019C000ED005093F0002091EE0027FF07C09F5FCD
-:1019D000D3CF8F708093E90081E0089580E008956F
-:1019E0008091E70187FD05C08091E80080FF0EC06F
-:1019F00012C08091E80082FD05C08091E60181114E
-:101A0000F8CF08958091E8008B7708C08091E601B7
-:101A10008111EACF08958091E8008E778093E800E5
-:101A200008958091E4009091E50045E62091EC0056
-:101A300020FF21C02091E80020FD21C02091E60177
-:101A4000222389F0253089F02091EB0025FD0FC07D
-:101A50002091E4003091E5002817390739F341500F
-:101A600041F0C901E3CF82E0089583E0089581E069
-:101A7000089584E008952091E80022FFDFCF80E000
-:101A800008950E94AF0D0E94B70DE0EEF0E0808156
-:101A900081608083E8EDF0E080818F77808319BCDE
-:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8
-:101AB0001092E50108950F931F93CF93DF930E9437
-:101AC000AF0D0E94B70DC8EDD0E088818F77888375
-:101AD00088818068888388818F7D888319BC109273
-:101AE000E6011092E2011092E4011092E30100EE8F
-:101AF00010E0F80180818B7F8083888181608883FA
-:101B000042E060E080E00E94BB0CE1EEF0E080810A
-:101B10008E7F8083E2EEF0E080818160808380812F
-:101B200088608083F80180818E7F808388818061D6
-:101B30008883DF91CF911F910F910895E8EDF0E038
-:101B400080818F7E8083E7EDF0E0808181608083FB
-:101B500084E082BF81E08093E5010C945B0DE8EDA9
-:101B6000F0E080818E7F80831092E20008951092D1
-:101B7000DA001092E10008951F920F920FB60F92B3
-:101B800011242F933F934F935F936F937F938F9382
-:101B90009F93AF93BF93EF93FF938091E10082FFF8
-:101BA0000BC08091E20082FF07C08091E1008B7F33
-:101BB0008093E1000E9418108091DA0080FF1FC01E
-:101BC0008091D80080FF1BC08091DA008E7F8093C7
-:101BD000DA008091D90080FF0DC080E189BD82E1EB
-:101BE00089BD09B400FEFDCF81E08093E6010E942B
-:101BF000200A05C019BC1092E6010E942E0A8091AD
-:101C0000E10080FF19C08091E20080FF15C0809143
-:101C1000E2008E7F8093E2008091E20080618093F9
-:101C2000E2008091D80080628093D80019BC85E0E2
-:101C30008093E6010E94320A8091E10084FF30C067
-:101C40008091E20084FF2CC080E189BD82E189BDE2
-:101C500009B400FEFDCF8091D8008F7D8093D8001D
-:101C60008091E1008F7E8093E1008091E2008F7E81
-:101C70008093E2008091E20081608093E200809195
-:101C8000E201882311F084E007C08091E30087FF20
-:101C900002C083E001C081E08093E6010E94340A23
-:101CA0008091E10083FF29C08091E20083FF25C07D
-:101CB0008091E100877F8093E10082E08093E601DC
-:101CC0001092E2018091E1008E7F8093E10080918B
-:101CD000E2008E7F8093E2008091E2008061809339
-:101CE000E20042E060E080E00E94BB0C8091F000E6
-:101CF00088608093F0000E94310AFF91EF91BF91BC
-:101D0000AF919F918F917F916F915F914F913F9193
-:101D10002F910F900FBE0F901F9018951F920F924A
-:101D20000FB60F9211242F933F934F935F936F93AE
-:101D30007F938F939F93AF93BF93CF93EF93FF9333
-:101D4000C091E900CF708091EC001092E900809181
-:101D5000F000877F8093F00078940E94CA0E109262
-:101D6000E9008091F00088608093F000C093E90062
-:101D7000FF91EF91CF91BF91AF919F918F917F9103
-:101D80006F915F914F913F912F910F900FBE0F90E8
-:101D90001F9018951F93CF93DF93CDB7DEB7AA9707
-:101DA0000FB6F894DEBF0FBECDBFE7EEF1E0809135
-:101DB000F100819321E0EF3EF207C9F70E94500A3B
-:101DC0008091E80083FF1CC12091E7013091E80178
-:101DD000832F90E08A30910508F012C1FC01EA5A85
-:101DE000FF4F0C94AE24203881F0223809F008C14E
-:101DF0008091EB018F708093E9008091EB0085FB6F
-:101E0000882780F91092E90006C08091E301909143
-:101E1000E401911182609091E800977F9093E8002F
-:101E20008093F1001092F100C5C0822F8D7F09F0E0
-:101E3000E7C0222319F0223061F0E2C08091E9016D
-:101E4000813009F0DDC0333009F080E08093E40197
-:101E500028C08091E901811124C02091EB012F70ED
-:101E600009F4CEC02093E9008091EB0080FF19C0F7
-:101E70008091EB00333011F4806211C08061809357
-:101E8000EB0081E090E0022E01C0880F0A94EAF78F
-:101E90008093EA001092EA008091EB0088608093C2
-:101EA000EB001092E9008091E800877F86C0211145
-:101EB000A7C01091E9011F778091E3008078812B02
-:101EC0008093E3008091E800877F8093E8000E9480
-:101ED000F00C8091E80080FFFCCF8091E3008068E7
-:101EE0008093E300112311F083E001C082E080932E
-:101EF000E60186C02058223008F082C08091E901B6
-:101F00009091EA018C3D23E0920779F583E08A8382
-:101F10008AE289834FB7F894DE01139620E03EE011
-:101F200051E2E32FF0E050935700E49120FF03C00B
-:101F3000E295EF703F5FEF708E2F90E0EA3010F087
-:101F4000C79601C0C0968D939D932F5F243149F7AA
-:101F50004FBF8091E800877F8093E8006AE270E0DD
-:101F6000CE0101960E94F80B14C0AE014F5F5F4F87
-:101F70006091EB010E94400B009709F441C0209151
-:101F8000E800277F2093E800BC0189819A810E94A4
-:101F9000590C8091E8008B778093E80031C020389D
-:101FA00079F58091E800877F8093E8008091E201D5
-:101FB0008093F1008091E8008E778093E8000E9482
-:101FC000F00C1EC021111CC09091E9019230C0F4A8
-:101FD0008091E800877F8093E8009093E2010E945F
-:101FE000F00C8091E201811104C08091E30087FF31
-:101FF00002C084E001C081E08093E6010E943C0AB7
-:102000008091E80083FF0AC08091E800877F809379
-:10201000E8008091EB0080628093EB00AA960FB6F7
-:10202000F894DEBF0FBECDBFDF91CF911F91089511
-:102030000895CF938091E6018823B1F08091E90063
-:102040008F709091EC0090FF02C090E801C090E08A
-:10205000C92FC82B1092E9008091E80083FD0E94EF
-:10206000CA0ECF70C093E900CF9108959093690193
-:10207000809368010895E0916801F09169013097BB
-:1020800021F00190F081E02D099480E00895E09125
-:102090006801F0916901309721F00280F381E02D11
-:1020A00009940895E0916801F0916901309721F059
-:1020B0000480F581E02D0994089520916601309106
-:1020C00067018217930771F090936701809366010F
-:1020D000E0916801F0916901309721F00680F78165
-:1020E000E02D0994089520916401309165018217D3
-:1020F000930771F09093650180936401E09168010A
-:10210000F0916901309721F00084F185E02D099468
-:10211000089508950C9489100E949D1C0E94170632
-:102120000C94631DCF92DF92EF92FF920F931F9357
-:10213000CF93DF93CDB7DEB72B970FB6F894DEBF02
-:102140000FBECDBF0E942F063BE6E32E31E0F32EFB
-:1021500000E010E0C02E802F0E941C07F701D190F4
-:102160007F01D826B1F40F5F1F4F0E30110591F794
-:102170008FEF89838A831B820E94A61C8160782F3F
-:102180009D838C8349815A816B818D810E94351199
-:1021900041C09091CD0191FF04C08B870E9422071E
-:1021A0008B8520E030E04D2D50E0922FBA01022EB9
-:1021B00002C0759567950A94E2F760FF25C02E83EB
-:1021C000CF82EE24E394F12C02C0EE0CFF1C9A9512
-:1021D000E2F790E08E219F2121E0892B09F420E095
-:1021E00028870E94A61C8160782F9A8789874E8154
-:1021F0005F8168858A850E943511F801E559FE4F97
-:1022000080818E25808306C02F5F3F4F26303105A9
-:1022100061F6A9CF0E94472010916A010E943B10ED
-:102220001817A1F00E943B1080936A012B960FB6FD
-:10223000F894DEBF0FBECDBFDF91CF911F910F91FC
-:10224000FF90EF90DF90CF900C9440092B960FB643
-:10225000F894DEBF0FBECDBFDF91CF911F910F91DC
-:10226000FF90EF90DF90CF900895CF93DF93CDB79D
-:10227000DEB72B970FB6F894DEBF0FBECDBF4F83EE
-:10228000588769877A878B87DE01119686E0FD0182
-:1022900011928A95E9F785E0FE01379601900D923B
-:1022A0008A95E1F749815A816B817C818D819E817C
-:1022B0000E9471182B960FB6F894DEBF0FBECDBFEB
-:1022C000DF91CF910895CF93C82F882309F4C1C01F
-:1022D000823859F40E943B1081FDBBC089E30E9403
-:1022E0000E1B0E94D81B89E30CC0833879F40E942E
-:1022F0003B1080FDAEC083E50E940E1B0E94D81BE0
-:1023000083E50E944E1BCF910C94D81B843859F45E
-:102310000E943B1082FD9DC087E40E940E1B0E941C
-:10232000D81B87E4EECF8CEF8C0F813A48F48C2FCA
-:102330000E947C2281118DC08C2F0E940E1BE3CF46
-:1023400080E28C0F883048F4C77081E001C0880FAC
-:10235000CA95EAF70E948F1BD6CF8BE58C0F83308E
-:1023600078F4C53A29F0C63A31F482E890E005C025
-:1023700081E890E002C083E890E0CF910C945D107A
-:1023800088E58C0F833108F064C0C83A39F1C93A46
-:1023900041F1CA3A49F1CB3A51F1CC3A59F1CD3A2F
-:1023A00061F1C03B69F1CE3A71F1CF3A79F1C13BAD
-:1023B00081F1C23B89F1C33B91F1C43B99F1C53B2B
-:1023C000A1F1C63BA9F1C73BB1F1C83BB9F1C93B8B
-:1023D000C1F1CA3BC9F58AE292E038C082EE90E0D2
-:1023E00035C089EE90E032C08AEE90E02FC085EBD8
-:1023F00090E02CC086EB90E029C087EB90E026C0EF
-:102400008CEC90E023C08DEC90E020C083E891E05C
-:102410001DC08AE891E01AC082E991E017C084E902
-:1024200091E014C081E292E011C083E292E00EC01C
-:1024300084E292E00BC085E292E008C086E292E07E
-:1024400005C087E292E002C080E090E0CF910C945A
-:102450007310CF910895882309F44BC0823859F442
-:102460000E943B1081FF45C089E30E940E1B0E9421
-:10247000D81B89E30CC0833871F40E943B1080FFA5
-:1024800038C083E50E940E1B0E94D81B83E50E9482
-:102490004E1B0C94D81B843859F40E943B1082FFC9
-:1024A00028C087E40E940E1B0E94D81B87E4EFCF50
-:1024B0009CEF980F913A58F390E2980F983050F4AF
-:1024C000877091E001C0990F8A95EAF7892F0E94E1
-:1024D000951BDFCF9BE5980F933020F480E090E0D0
-:1024E0000C945D10885A833120F480E090E00C94C5
-:1024F00073100895882321F00E948F1B0C94D81B21
-:102500000895882321F00E94951B0C94D81B0895F0
-:10251000CF92DF92EF92FF920F931F93CF93DF93AF
-:10252000CDB7DEB728970FB6F894DEBF0FBECDBF8C
-:102530008C0185E0F801DE01119601900D928A95DB
-:10254000E1F7F80140813181F280258122952F70D9
-:1025500083819481892B31F03F3F31F481E04F3FFB
-:1025600019F403C081E001C080E080FDCBC2498343
-:102570003A8389819A812F830E94CC1A9E8388870F
-:102580000E94CB1A0E949E192F814E816885FF20E0
-:1025900029F00E94AC1B68854E812F81E42FE295C3
-:1025A000EF70F0E0E05AFF4F0C94AE24842F807F50
-:1025B000142F1F70882311F01295107FFF2059F0FF
-:1025C000112309F454C2812F68870E949F1B0E9427
-:1025D000D81B68854CC2862F0E942B12112309F448
-:1025E00091C2812F0E94A51B28960FB6F894DEBFDA
-:1025F0000FBECDBFDF91CF911F910F91FF90EF9054
-:10260000DF90CF900C94D81B342F307F842F8F70A5
-:10261000303211F08295807F662319F0613019F114
-:102620002BC0FF20B1F0222309F493C1213009F01F
-:1026300090C128960FB6F894DEBF0FBECDBFDF91D4
-:10264000CF911F910F91FF90EF90DF90CF900C945E
-:10265000BF1B222319F0213009F454C28E830E943B
-:10266000C21B8E8189C1FF2021F0223008F04AC2AE
-:1026700070C1211147C280C1FF2021F0222309F43B
-:1026800068C1F5C1222309F477C105C2242F26951C
-:102690002695237030E02115310521F021303105D8
-:1026A000C9F030C2FF2021F0862F942F937002C012
-:1026B00080E090E028960FB6F894DEBF0FBECDBF45
-:1026C000DF91CF911F910F91FF90EF90DF90CF900E
-:1026D0000C945D10FF2021F0862F942F937002C080
-:1026E00080E090E028960FB6F894DEBF0FBECDBF15
-:1026F000DF91CF911F910F91FF90EF90DF90CF90DE
-:102700000C947310862FFF2019F00E944F1F02C0F7
-:102710000E94B71F28960FB6F894DEBF0FBECDBF3C
-:10272000DF91CF911F910F91FF90EF90DF90CF90AD
-:102730000C943C20842F837009F076C0F110E2C124
-:10274000262F229526952770220F220F862F8F7015
-:10275000C82ED12CE12CF12C022E04C0CC0CDD1C97
-:10276000EE1CFF1C0A94D2F764FF10C06FE070E00B
-:1027700080E090E004C0660F771F881F991F2A959C
-:10278000D2F7609570958095909503C060E070E0F9
-:10279000CB01242F269526952370422F50E04230FE
-:1027A0005105D1F04330510559F16C297D298E290D
-:1027B0009F294130510541F128960FB6F894DEBFAC
-:1027C0000FBECDBFDF91CF911F910F91FF90EF9082
-:1027D000DF90CF900C94C3196C297D298E299F29F5
-:1027E00028960FB6F894DEBF0FBECDBFDF91CF9114
-:1027F0001F910F91FF90EF90DF90CF900C94DD1917
-:102800000E94C319C701B60128960FB6F894DEBF1F
-:102810000FBECDBFDF91CF911F910F91FF90EF9031
-:10282000DF90CF900C94A919FF2019F0842F8170AC
-:1028300001C08695882309F465C1262F2295269527
-:102840002770220F220F862F8F70C82ED12CE12CDB
-:10285000F12C022E04C0CC0CDD1CEE1CFF1C0A94D3
-:10286000D2F764FF10C06FE070E080E090E004C039
-:10287000660F771F881F991F2A95D2F7609570956C
-:102880008095909503C060E070E0CB01242F2695E1
-:1028900026952370422F50E042305105D1F043304D
-:1028A000510559F16C297D298E299F294130510507
-:1028B00041F128960FB6F894DEBF0FBECDBFDF9171
-:1028C000CF911F910F91FF90EF90DF90CF900C94DC
-:1028D000971A6C297D298E299F2928960FB6F8947E
-:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043
-:1028F000EF90DF90CF900C94B11A0E94971AC70105
-:10290000B60128960FB6F894DEBF0FBECDBFDF919B
-:10291000CF911F910F91FF90EF90DF90CF900C948B
-:102920007D1A603FC9F118F4603E50F49BC0623FCD
-:1029300009F460C008F44AC0633F09F46FC092C054
-:10294000162F1F70842F8F71FF2099F00E94161A86
-:10295000812F28960FB6F894DEBF0FBECDBFDF9152
-:10296000CF911F910F91FF90EF90DF90CF900C943B
-:102970007A120E94371A812F28960FB6F894DEBF7C
-:102980000FBECDBFDF91CF911F910F91FF90EF90C0
-:10299000DF90CF900C948112FF20A1F02111B2C0E2
-:1029A000842F8F7128960FB6F894DEBF0FBECDBF6F
-:1029B000DF91CF911F910F91FF90EF90DF90CF901B
-:1029C0000C945C1A223008F09DC0EACFFF20A1F0E1
-:1029D000842F8F7128960FB6F894DEBF0FBECDBF3F
-:1029E000DF91CF911F910F91FF90EF90DF90CF90EB
-:1029F0000C94161AFF2061F3842F8F7128960FB65E
-:102A0000F894DEBF0FBECDBFDF91CF911F910F9124
-:102A1000FF90EF90DF90CF900C94371AFF2091F049
-:102A2000842F8F7128960FB6F894DEBF0FBECDBFEE
-:102A3000DF91CF911F910F91FF90EF90DF90CF909A
-:102A40000C94011A28960FB6F894DEBF0FBECDBFC6
-:102A5000DF91CF911F910F91FF90EF90DF90CF907A
-:102A60000C94F719FF20A1F0222309F4B1CF862F8F
-:102A700028960FB6F894DEBF0FBECDBFDF91CF9181
-:102A80001F910F91FF90EF90DF90CF900C94631106
-:102A9000222309F4B1CF862F28960FB6F894DEBF13
-:102AA0000FBECDBFDF91CF911F910F91FF90EF909F
-:102AB000DF90CF900C942B124F70C8010E94A50498
-:102AC00028960FB6F894DEBF0FBECDBFDF91CF9131
-:102AD0001F910F91FF90EF90DF90CF900C941E19F3
-:102AE0004F70C80128960FB6F894DEBF0FBECDBF59
-:102AF000DF91CF911F910F91FF90EF90DF90CF90DA
-:102B00000C94E20728960FB6F894DEBF0FBECDBF37
-:102B1000DF91CF911F910F91FF90EF90DF90CF90B9
-:102B200008950E94AC1B0E94BC1B0E94811B0E9446
-:102B3000D81B0E94E8200E943C2080E090E00E9488
-:102B40005D1080E090E00C9473100E949C1B0C942C
-:102B500091150E94CC1A292F22952F7030E02C302D
-:102B600031054CF42A3031056CF422503109223001
-:102B7000310590F407C02C30310551F02F3031056C
-:102B800039F00AC0803E10F0803F31F481E00895B2
-:102B900093FB882780F9089580E00895CF93DF9311
-:102BA00000D000D01F92CDB7DEB70F900F900F90DE
-:102BB0000F900F90DF91CF910895CF93DF9300D0C6
-:102BC00000D000D0CDB7DEB726960FB6F894DEBFA2
-:102BD0000FBECDBFDF91CF9108951F93CF93DF93A9
-:102BE000C091790116E080917A01C81799F0D0E080
-:102BF0001C9FF0011D9FF00D1124E558FE4F4081F0
-:102C0000518162817381848195810E94DD152196B5
-:102C1000C770E9CFDF91CF911F9108954091AB012B
-:102C20005091AC016091AD017091AE018091AF0106
-:102C30009091B0010C94DD15CF938091B0018295F5
-:102C40008F7009F05FC08091AD01882309F45AC0EC
-:102C500020917901A0917A016091AB017091AC0152
-:102C60008091AE019091AF0131E06F3F09F030E00B
-:102C7000B32FC6E02A1709F445C0009721F07F3F23
-:102C800021F44B2F03C041E001C040E030E040FDA3
-:102C900035C0C29FF001C39FF00D1124E558FE4FCF
-:102CA000418174132BC04081641328C042814111BB
-:102CB00025C0438154814817590710F441505109E8
-:102CC000481B590B483C5105C8F48091B0018F70E6
-:102CD00080618093B00186E0829FF001839FF00DB8
-:102CE0001124E058FE4F80818F70806180838BEAD1
-:102CF00091E00E948812CF910C94ED152F5F3F4F09
-:102D00002770B8CFCF910895CF92DF92EF92FF92C4
-:102D10000F931F93CF93DF93CDB7DEB762970FB6B4
-:102D2000F894DEBF0FBECDBF8C0185E0F801DE0157
-:102D30001D9601900D928A95E1F7D8014C9111965C
-:102D40005C91119712966C9112971396ED90FC90EE
-:102D500014977091AB01E091AC012091AE013091DC
-:102D6000AF012115310531F0EF3F31F481E07F3FB4
-:102D700019F403C081E001C080E0B82FB170CB2E00
-:102D800080FD6CC1D090AD01DD2009F4F5C0F0915B
-:102D9000B001E216F30638F0C701821B930B883CA2
-:102DA000910548F09BC0209530952E0D3F1D283C85
-:102DB000310508F093C08F2F807F09F052C0E513D2
-:102DC00014C0741312C0D62E61110FC0FF70F061D1
-:102DD000F093B0010E940E168BEA91E00E948812D7
-:102DE0008091B001F80185836CC1EF2831F05F3F1D
-:102DF00031F481E04F3F19F403C081E001C080E06D
-:102E000080FD03C081E0862701C080E0F82FF170CB
-:102E1000FF2E80FF1CC08091790120917A0136E05D
-:102E2000821709F428C190E0389FF001399FF00D16
-:102E30001124E558FE4F7181571306C07081471366
-:102E400003C07281671303C001968770E9CFD62E45
-:102E5000662309F436C18091B00181608093B0018E
-:102E600053C0E51308C0741306C0611104C0D80133
-:102E70001596FC93AEC04D875E878D859E856A8BC7
-:102E80000E94A9156A89882329F1D62E662311F19B
-:102E90002091B001822F82958F7090E002970CF400
-:102EA00060C08091AB019091AC0198878F831986A7
-:102EB000FB86EA862C87CE01079651C0E51731F1D3
-:102EC0004D875E878D859E856A8B0E94A9156A89CC
-:102ED00081112EC0C8010E948812A4C08F2F807F4C
-:102EE00069F77E2DF98AE88A89890E94CE158BEAD6
-:102EF00091E00E948812EBEAF1E086E0DF011D928A
-:102F00008A95E9F70E940E16D12CDBC07413D8CF36
-:102F10006111D6CFD8011596FC93C8010E94881282
-:102F2000EBEAF1E086E0DF011D928A95E9F7C9C07E
-:102F3000D62E662379F22091B001822F82958F7070
-:102F400090E0029774F08091AB019091AC019A836C
-:102F500089831B82FD82EC822E83CE0101960E9422
-:102F6000881286E0F801ABEAB1E001900D928A95F3
-:102F7000E1F70E941C166FC0E216F30628F0C701A5
-:102F8000821B930B9C0104C0209530952E0D3F1D94
-:102F9000283C310508F052C0D62E662309F49ACF9A
-:102FA000E5132CC074132AC08091B00180FD1DC0B0
-:102FB000982F92959F70C9F0D80115968C9315970C
-:102FC0009F3039F09F5F9295907F8F70892B159677
-:102FD0008C93C8010E94881286E0F801ABEAB1E048
-:102FE00001900D928A95E1F736C086E0F801ABEAD0
-:102FF000B1E001900D928A95E1F763C04D875E873D
-:103000008D859E850E94A915882379F086E0F801B8
-:10301000ABEAB1E001900D928A95E1F70E941C168F
-:103020000E940E16DD24D3944CC08091B0018160C3
-:103030008093B001C8010E94881243C07E2DF98A96
-:10304000E88A89890E94CE15EBEAF1E086E0DF018B
-:103050001D928A95E9F70E940E1633C0662309F483
-:1030600039CF4D875E878D859E850E94A91588235F
-:1030700009F430CFCBCF4D875E878D859E850E942A
-:10308000CC1A292F22952F7030E0223031052CF4F4
-:103090009F7041F0811106C00CC0243031052CF422
-:1030A0009F7049F4805E883020F0C8010E94881229
-:1030B000CF2CDC2C06C0D80115969C91907F91F7FF
-:1030C000F8CF8D2D62960FB6F894DEBF0FBECDBF40
-:1030D000DF91CF911F910F91FF90EF90DF90CF90F4
-:1030E00008951F93CF93DF93CDB7DEB72C970FB61C
-:1030F000F894DEBF0FBECDBF4F83588769877A87AC
-:103100008B879C87CE0107960E9484168823C1F086
-:103110002F8138858A859B85892B31F03F3F11F0BF
-:1031200080E003C02F3FE1F781E0811147C04F816C
-:10313000588569857A858B859C850E94DD153EC002
-:1031400086E0FE013796DE01119601900D928A9578
-:10315000E1F7FF81E8854A855B854115510531F02E
-:10316000EF3F31F481E0FF3F19F403C081E001C07B
-:1031700080E080FD23C020917A0130E0C9010196F2
-:10318000877099276091790170E086179707F1F1B0
-:10319000F983EA835D834C8396E0929FD001939FED
-:1031A000B00D1124A558BE4FFE01319601900D922D
-:1031B0009A95E1F780937A010E94ED1516E08091CF
-:1031C000790190917A01891779F1189FC001112432
-:1031D00085589E4F0E948416882331F1E091790131
-:1031E0001E9FF0011124E558FE4F408151816281FC
-:1031F0007381848195810E94DD158091790190E031
-:1032000001968770992780937901D9CF0E94A515DF
-:1032100010927A0110927901EBEAF1E086E0DF0189
-:103220001D928A95E9F7CACF2C960FB6F894DEBFA7
-:103230000FBECDBFDF91CF911F910895EF92FF9206
-:103240000F931F93CF93DF93FC01009709F46FC096
-:10325000F12CEE24E394EF0121968491843740F41D
-:10326000843008F055C0813081F0823021F15FC098
-:10327000853709F447C0C0F19CE7980F903708F0F4
-:1032800056C08F770E942B1245C08F010E5F1F4FD3
-:10329000FE01849190E2980F983050F48770FE2DD3
-:1032A00001C0FF0F8A95EAF78F2F0E94AF1B15C050
-:1032B0000E94631114C08F010E5F1F4FFE018491A5
-:1032C00090E2980F983068F48770FE2D01C0FF0FD0
-:1032D0008A95EAF78F2F0E94B51B0E94D81BE80140
-:1032E00019C00E942B12FBCFCF010296FE01C491A0
-:1032F000CC2361F0EFE9FFE03197F1F700C0000067
-:10330000C150F6CFCF010296FE01F490EC0102C04D
-:103310000E9463118F2D882341F0EFE9FFE0319780
-:10332000F1F700C000008150F6CFFE0194CFDF918D
-:10333000CF911F910F91FF90EF90089508956093A2
-:10334000B5017093B6018093B7019093B8010C94C6
-:1033500091150F931F930091B5011091B601209123
-:10336000B7013091B801062B172B282B392B00936E
-:10337000B5011093B6012093B7013093B8011F91A6
-:103380000F910C9491150F931F930091B50110911B
-:10339000B6012091B7013091B801062317232823E5
-:1033A00039230093B5011093B6012093B7013093F0
-:1033B000B8011F910F910C9491150F931F930091D9
-:1033C000B5011091B6012091B7013091B8010627DF
-:1033D0001727282739270093B5011093B6012093AA
-:1033E000B7013093B8011F910F910C949115109271
-:1033F000B1011092B2011092B3011092B4010C9479
-:10340000911541E050E060E070E004C0440F551FAA
-:10341000661F771F8A95D2F74093B1015093B2018E
-:103420006093B3017093B4010C94911541E050E0A6
-:1034300060E070E004C0440F551F661F771F8A9537
-:10344000D2F78091B1019091B201A091B301B091F6
-:10345000B401842B952BA62BB72B8093B1019093AD
-:10346000B201A093B301B093B4010C94911541E063
-:1034700050E060E070E004C0440F551F661F771FE6
-:103480008A95D2F740955095609570958091B101DD
-:103490009091B201A091B301B091B401842395231E
-:1034A000A623B7238093B1019093B201A093B301F7
-:1034B000B093B4010C94911541E050E060E070E0ED
-:1034C00004C0440F551F661F771F8A95D2F780915D
-:1034D000B1019091B201A091B301B091B4018427E0
-:1034E0009527A627B7278093B1019093B201A093A7
-:1034F000B301B093B4010C9491150F931F930091F5
-:10350000B1011091B2012091B3013091B401062BA9
-:10351000172B282B392B0093B1011093B201209364
-:10352000B3013093B4011F910F910C9491150F9337
-:103530001F930091B1011091B2012091B30130911C
-:10354000B40106231723282339230093B1011093D4
-:10355000B2012093B3013093B4011F910F910C94E9
-:1035600091150F931F930091B1011091B201209119
-:10357000B3013091B4010627172728273927009374
-:10358000B1011093B2012093B3013093B4011F91A4
-:103590000F910C9491150895CF92DF92EF92FF92C4
-:1035A0000F931F93CF93DF93EC01C090B501D090A0
-:1035B000B601E090B701F090B8018091B10190910F
-:1035C000B201A091B301B091B401C82AD92AEA2A64
-:1035D000FB2A0FE110E0B701A601002E04C076958A
-:1035E0006795579547950A94D2F740FF07C0BE01EB
-:1035F000802F0E9405088130910539F4015011098E
-:1036000050F7BE0180E00E940508DF91CF911F9125
-:103610000F91FF90EF90DF90CF90089590910C0163
-:103620009923D9F090910D019923B9F0982F96958F
-:10363000969596959F3088F5E0910E01F0910F01D7
-:10364000E90FF11D877021E030E001C0220F8A955B
-:10365000EAF78181822B8183089540910E01509178
-:103660000F0120E030E09FEFFA01E20FF31F6281CB
-:10367000681799F09F3F19F4611101C0922F2F5FD5
-:103680003F4F2E30310581F79F3F39F0FA01E90FA6
-:10369000F11D97FDFA9582830895089590910C018C
-:1036A0009923E1F090910D019923C1F0982F9695FF
-:1036B000969596959F3020F5E0910E01F0910F01BF
-:1036C000E90FF11D877021E030E001C0220F8A95DB
-:1036D000EAF72095818128232183089540910E01E6
-:1036E00050910F0120E030E0FA01E20FF31F9281C8
-:1036F000981301C012822F5F3F4F2E303105A1F782
-:10370000089581E090E0E0910E01F0910F01E80F43
-:10371000F91F1082019680319105A9F708959091C3
-:10372000CC01982B9093CC01089580959091CC0179
-:1037300098239093CC0108951092CC010895909114
-:10374000CB01982B9093CB01089580959091CB015C
-:1037500098239093CB0108951092CB0108959091F6
-:10376000CA01982B9093CA01089580959091CA013F
-:1037700098239093CA0108951092CA0108958093E6
-:10378000B90108951092B901089540910E01509128
-:103790000F0120E030E080E0FA01E20FF31F918199
-:1037A00091118F5F2F5F3F4F2F303105A9F708959B
-:1037B000E0910E01F0910F018091CC018083E091A6
-:1037C0000E01F0910F0180819091CB01892B8083B4
-:1037D000E0910E01F0910F0180819091CA01892B37
-:1037E00080839091B901992361F0E0910E01F091ED
-:1037F0000F018081892B80830E94C51B811110924B
-:10380000B90180910E0190910F010C944710CF9255
-:10381000DF92EF92FF920F931F936C01EE24FF242F
-:10382000C114D104E104F10421F46B017C0180E0B6
-:1038300001C080E133272F2D1E2D0D2D01151105FF
-:103840002105310519F0885F68017901970186012A
-:10385000A4E03695279517950795AA95D1F70115F8
-:1038600011052105310519F08C5F68017901970177
-:103870008601F2E03695279517950795FA95D1F7C9
-:10388000011511052105310519F08E5F68017901D7
-:10389000B701A6017695679557954795452B462B19
-:1038A000472B09F08F5F1F910F91FF90EF90DF90F2
-:1038B000CF9008958091E601843009F11092CE01F5
-:1038C00020E488E190E00FB6F894A895809360001A
-:1038D0000FBE2093600083B7817F846083BF83B76E
-:1038E000816083BF7894889583B78E7F83BF88E19A
-:1038F0000FB6F89480936000109260000FBE089598
-:1039000008950895CF930E94801C0E942F060E9464
-:10391000811CC0E08C2F0E941C07811105C0CF5F65
-:10392000CE30C1F780E001C081E0CF9108950E94C0
-:10393000A5150E943B100C94400982E084BD93E0E1
-:1039400095BD9AEF97BD80936E0008952FB7F894B8
-:103950008091CF019091D001A091D101B091D2017D
-:103960002FBF0895CF92DF92EF92FF920F931F9394
-:103970002FB7F8944091CF015091D0016091D101BF
-:103980007091D2012FBF6A017B01EE24FF248C01CC
-:1039900020E030E0C016D106E206F30610F44150F4
-:1039A0005109481B590BCA011F910F91FF90EF90CD
-:1039B000DF90CF9008951F920F920FB60F921124AF
-:1039C0008F939F93AF93BF938091CF019091D0013C
-:1039D000A091D101B091D2010196A11DB11D80939A
-:1039E000CF019093D001A093D101B093D201BF91A8
-:1039F000AF919F918F910F900FBE0F901F901895D0
-:103A00000E94410DF8942FEF87EA91E62150804003
-:103A10009040E1F700C0000087E090EBDC0180936C
-:103A2000EF019093F001A093F101B093F2012CE02B
-:103A300088E190E00FB6F894A895809360000FBEDF
-:103A400020936000FFCFEF92FF920F931F93CF93CD
-:103A5000DF93E82EF12C8F2D0E941C07C0E0D0E0F0
-:103A6000082F10E098010C2E02C0359527950A9476
-:103A7000E2F720FD05C02196C630D10599F709C0AF
-:103A80006C2F7F2D80E00E94E307E812F4CF81E0E5
-:103A900005C0F3948EE0F812DECF80E0DF91CF9185
-:103AA0001F910F91FF90EF900895CF93C82F8CE254
-:103AB0000E94231D882321F08C2FCF910C94231D6D
-:103AC00080E0CF910895CF930E94A81E811102C07B
-:103AD0000E948E1EC5E6C15049F00E942F068FE35A
-:103AE0009CE90197F1F700C00000F5CF89E20E9440
-:103AF000551D811111C18AE20E94551D81110E943C
-:103B00008E1E85E00E94551D81110E94001D0E949D
-:103B1000B31E8093CD0187E00E94551D882399F143
-:103B20008BE10E94551D882351F09091CD0191FBAE
-:103B3000882780F921E0822780FB91F922C08EE05E
-:103B40000E94551D882351F09091CD0192FB88274A
-:103B500080F921E0822780FB92F913C080E10E9466
-:103B6000551D9091CD01882341F093FB882780F962
-:103B700021E0822780FB93F904C0892F809580FB88
-:103B800090F99093CD018091CD010E94B71E0E94C3
-:103B9000C51E8093E00180EE0E94551D882341F0F0
-:103BA0008091E001982F909590FB80F98093E0013F
-:103BB00089E30E94551D882359F09091E00191FB03
-:103BC000882780F921E0822780FB91F99093E0011A
-:103BD00082EE0E94551D882359F09091E00192FBDE
-:103BE000882780F921E0822780FB92F99093E001F9
-:103BF00086EE0E94551D882359F09091E00193FBB9
-:103C0000882780F921E0822780FB93F99093E001D7
-:103C100083EE0E94551D882359F09091E00194FB9A
-:103C2000882780F921E0822780FB94F99093E001B6
-:103C300085E30E94551D882359F09091E00195FB82
-:103C4000882780F921E0822780FB95F99093E00195
-:103C500081E30E94551D882359F09091E00196FB65
-:103C6000882780F921E0822780FB96F99093E00174
-:103C700081E10E94551D882359F09091E00197FB46
-:103C8000882780F921E0822780FB97F99093E00153
-:103C90008091E0010E94C91E8091E00187FB882786
-:103CA00080F980930D0187E20E94551DC82F8EE197
-:103CB0000E94551D8111C2608FE10E94551D811126
-:103CC000C46080E20E94551D8111C86081E20E949B
-:103CD000551D8111C06182E20E94551D8111C06293
-:103CE00083E20E94551D8111C06484E20E94551D2B
-:103CF000882311F0C06802C0CC2329F08C2F0E94C9
-:103D0000C01E6C2F03C00E94BC1E682F70E080E0B4
-:103D100090E0CF910C949F19CF9108956DEE7EEFB6
-:103D200080E090E00E94E42460E082E090E00E9465
-:103D3000D62460E083E090E00E94D62460E084E036
-:103D400090E00E94D62460E085E090E00C94D624B8
-:103D500080E090E00E94D02421E08D3E9E4F09F04B
-:103D600020E0822F089582E090E00C94C824682F10
-:103D700082E090E00C94D62483E090E00C94C82478
-:103D8000682F83E090E00C94D62484E090E00C94BB
-:103D9000C824682F84E090E00C94D6248091D5014B
-:103DA00080FF0BC06091130185E0689FB001112472
-:103DB00075956795759567952AC081FF09C06091D3
-:103DC000130185E0689FB0011124759567951FC0A8
-:103DD00082FF07C06091130185E0689FB001112444
-:103DE00016C04091D6014423C9F0609112014617D4
-:103DF00088F72091130185E0289F90011124429FAC
-:103E0000C001439F900D112470E00E949A246038F5
-:103E1000710540F46115710539F002C065E070E08C
-:103E2000862F08958FE7089581E008958091D50148
-:103E300080FF08C06091110170E0759567957595D8
-:103E4000679521C081FF06C06091110170E07595F2
-:103E5000679519C082FF04C06091110170E010C025
-:103E60008091D6018823C1F0609110018617A0F7D8
-:103E700090911101989FC001112470E00E949A2432
-:103E80006038710528F46115710521F0862F0895B9
-:103E90008FE7089581E0089561E070E0F4CF803FFE
-:103EA00021F40E94CE1E819504C0813F29F40E9416
-:103EB000CE1E8093D9010895823F21F40E94CE1E28
-:103EC000819504C0833F29F40E94CE1E8093D801BF
-:103ED0000895893F19F40E94161F05C08A3F31F4E6
-:103EE0000E94161F81958093DA0108958B3F21F47B
-:103EF0000E94161F819504C08C3F29F40E94161F52
-:103F00008093DB010895843F21F48091D701816083
-:103F100017C0853F21F48091D701826011C0863F90
-:103F200021F48091D70184600BC0873F21F48091F8
-:103F3000D701886005C0883F31F48091D701806146
-:103F40008093D70108958D3F21F48091D501816040
-:103F50000BC08E3F21F48091D501826005C08F3F58
-:103F600029F48091D50184608093D5010895803F24
-:103F700039F48091D90187FF6CC01092D90169C0D2
-:103F8000813F29F48091D9011816BCF362C0909149
-:103F9000D801823F29F497FF5CC01092D80159C024
-:103FA000833F19F41916CCF354C0893F41F4809132
-:103FB000DA0118160CF04DC01092DA014AC08A3F9F
-:103FC00029F48091DA0187FF44C0F6CF8B3F39F4A2
-:103FD0008091DB0187FF3DC01092DB013AC08C3F2E
-:103FE00029F48091DB011816BCF333C0843F21F41F
-:103FF0008091D7018E7F17C0853F21F48091D70132
-:104000008D7F11C0863F21F48091D7018B7F0BC03B
-:10401000873F21F48091D701877F05C0883F31F425
-:104020008091D7018F7E8093D70113C08D3F21F4FB
-:104030008091D5018E7F0BC08E3F21F48091D501F8
-:104040008D7F05C08F3F29F48091D5018B7F8093B0
-:10405000D5018091D80181110EC08091D9018111C3
-:104060000AC08091DA01811106C08091DB018111C3
-:1040700002C01092D601089587ED91E00E9452107F
-:104080000E94A61C9093D4018093D30108951F939E
-:10409000CF93DF938091D3019091D4010E94B21C01
-:1040A0004091D601442321F02091140130E006C054
-:1040B000209115015AE0259F900111248217930742
-:1040C00008F482C08091D8011091D901D091DA0111
-:1040D000C091DB01811107C0111105C0D11103C0CE
-:1040E000CC2309F471C04F3F19F04F5F4093D601C4
-:1040F000181624F40E94CE1E8093D8018091D80116
-:1041000087FF05C00E94CE1E81958093D8011116AD
-:1041100024F40E94CE1E8093D9018091D90187FF9B
-:1041200005C00E94CE1E81958093D9016091D8016F
-:10413000662339F11091D901112319F1772767FD11
-:104140007095872F972F0E94AB2323E333E343E33C
-:104150005FE30E940F240E9478236093D801612FAF
-:10416000772767FD7095872F972F0E94AB2323E356
-:1041700033E343E35FE30E940F240E9478236093BC
-:10418000D9011D1624F40E94161F8093DA01809134
-:10419000DA0187FF05C00E94161F81958093DA011E
-:1041A0001C1624F40E94161F8093DB018091DB0112
-:1041B00087FF05C00E94161F81958093DB01DF9168
-:1041C000CF911F910C943C20DF91CF911F910895C6
-:1041D000E7EDF1E085E0DF011D928A95E9F71092A5
-:1041E000D6011092D5010895833081F128F48130F1
-:1041F00059F08230D1F00895853009F449C0B8F102
-:10420000863009F456C0089520911501862F90E05C
-:10421000820F911D8F3F910520F4620F609315016D
-:1042200008958FEF80931501089520911401862F32
-:1042300090E0820F911D8F3F910520F4620F6093F3
-:10424000140108958FEF80931401089520911301B4
-:10425000862F90E0820F911D8F3F910520F4620F11
-:104260006093130108958FEF8093130108952091B7
-:104270001201862F90E0820F911D8F3F910520F44F
-:10428000620F6093120108958FEF809312010895D9
-:1042900020911101862F90E0820F911D8F3F910593
-:1042A00020F4620F6093110108958FEF8093110144
-:1042B000089520911001862F90E0820F911D8F3F6D
-:1042C000910520F4620F6093100108958FEF8093A1
-:1042D00010010895833011F128F4813049F08230C3
-:1042E00091F00895853081F120F18630C1F1089573
-:1042F00080911501681720F4861B8093150108959D
-:1043000010921501089580911401681720F4861BFE
-:10431000809314010895109214010895809113015F
-:10432000681720F4861B80931301089510921301DF
-:10433000089580911201681720F4861B8093120162
-:10434000089510921201089580911101681720F4C8
-:10435000861B809311010895109211010895809198
-:104360001001681720F4861B8093100108951092A5
-:10437000100108958D3109F442C020F58E3009F402
-:1043800079C070F4873009F45EC020F4863009F4F7
-:1043900042C033C08830D1F18B3009F4A7C02DC0A2
-:1043A000863109F4A3C038F4803109F46DC081313D
-:1043B00009F47BC022C0893109F498C08B3109F41B
-:1043C0004FC01BC0853309F479C048F4873209F423
-:1043D00075C008F478C0893209F470C00EC0833407
-:1043E00038F48A3308F071C0883309F47FC005C0FF
-:1043F000833409F463C08834C1F080E008950E94DA
-:1044000032230E943B100E94400970C00E94B31EDC
-:104410000E94C51E6BC08091CD01817F8E7F8093ED
-:10442000CD0181E08093DD0108950E94A5152FEF55
-:1044300083ED90E3215080409040E1F700C0000000
-:104440000E94001D53C09091CD01892F817090FF73
-:1044500003C0917F9E7F26C091609093CD0146C09E
-:104460009091CD0191FB882780F921E0822780FB84
-:1044700091F913C09091CD0192FB882780F921E03A
-:10448000822780FB92F909C09091CD0193FB882788
-:1044900080F921E0822780FB93F99093CD01882356
-:1044A00029F191609093CD0108950E94A515809106
-:1044B0000D0191E0892780930D0118C061E070E043
-:1044C00080E090E00FC023EE01C027EC280F61E0F0
-:1044D00070E080E090E004C0660F771F881F991F8E
-:1044E0002A95D2F70E949F190E94A51581E0089590
-:1044F00080E0089580E00895CF93C82F8091DD017A
-:10450000813079F018F08230D1F184C0A0910E0191
-:10451000B0910F018C91813169F0823209F07CC039
-:1045200009C0A0910E01B0910F018C91813111F061
-:10453000823249F48C2F0E94782281111DC08C2F69
-:104540000E94BA211AC08C2F0E947A22811114C0B5
-:10455000C43179F048F4CB3079F0C03109F060C053
-:1045600082E08093DD0108C0C93219F0C83321F020
-:1045700057C01092DD0154C081E0817053C0C93230
-:1045800089F118F5C43171F1A8F4C73009F046C0BB
-:104590008AE08093150194E19093140193E0909345
-:1045A00013018093120188E08093110188E28093C7
-:1045B000100134C0CE51C63088F5EC2FF0E0E65D36
-:1045C000FE4F80818093DC0129C0CE34E9F020F4D5
-:1045D000CB3421F56AE013C0C13579F0C235F1F46E
-:1045E00061E00DC08091DC01882319F01092DC019C
-:1045F00015C081E08093DD0115C061E006C08091A7
-:10460000DC010E94F4200AC06AE08091DC010E9473
-:104610006A2104C01092DD0180E004C081E002C084
-:1046200080E0ABCFCF910895E1E8F0E08081886031
-:1046300080838081816080838FB7F89493E090932A
-:10464000890090ED909388008FBF0895EFE6F0E029
-:104650008081826080830895EFE6F0E080818D7F25
-:1046600080830895EFE6F0E0808192E089278083DF
-:1046700008951F920F920FB60F9211242F933F931C
-:104680004F935F936F937F938F939F93AF93BF935A
-:10469000EF93FF938091DE019091DF01019690935B
-:1046A000DF018093DE01811103C082E00E94400996
-:1046B000E091DF01E695E695F0E0E258F74FE491EE
-:1046C0008091DE018E1303C080E00E944009FF91BB
-:1046D000EF91BF91AF919F918F917F916F915F917A
-:1046E0004F913F912F910F900FBE0F901F901895F3
-:1046F00004D06894B1118DC0089570D088F09F5790
-:1047000090F0B92F9927B751A0F0D1F0660F771F1D
-:10471000881F991F1AF0BA95C9F712C0B13081F0FD
-:1047200077D0B1E0089574C0672F782F8827B85FDD
-:1047300039F0B93FCCF3869577956795B395D9F75E
-:104740003EF490958095709561957F4F8F4F9F4F68
-:104750000895E89409C097FB3EF490958095709574
-:1047600061957F4F8F4F9F4F9923A9F0F92F96E9BD
-:10477000BB279395F695879577956795B795F11132
-:10478000F8CFFAF4BB0F11F460FF1BC06F5F7F4FCF
-:104790008F4F9F4F16C0882311F096E911C07723E1
-:1047A00021F09EE8872F762F05C0662371F096E8EA
-:1047B000862F70E060E02AF09A95660F771F881FB9
-:1047C000DAF7880F9695879597F9089557FD9058D1
-:1047D000440F551F59F05F3F71F04795880F97FBC5
-:1047E000991F61F09F3F79F087950895121613067F
-:1047F0001406551FF2CF4695F1DF08C016161706AE
-:104800001806991FF1CF86957105610508940895E2
-:10481000E894BB2766277727CB0197F908950BD03B
-:1048200078C069D028F06ED018F0952309F05AC0EE
-:104830005FC01124EECFCADFA0F3959FD1F3950F8F
-:1048400050E0551F629FF001729FBB27F00DB11D14
-:10485000639FAA27F00DB11DAA1F649F6627B00DA4
-:10486000A11D661F829F2227B00DA11D621F739F8D
-:10487000B00DA11D621F839FA00D611D221F749F9B
-:104880003327A00D611D231F849F600D211D822FE2
-:10489000762F6A2F11249F5750408AF0E1F0882329
-:1048A0004AF0EE0FFF1FBB1F661F771F881F915036
-:1048B0005040A9F79E3F510570F014C0AACF5F3F4A
-:1048C000ECF3983EDCF3869577956795B795F79569
-:1048D000E7959F5FC1F7FE2B880F911D96958795F1
-:1048E00097F9089597F99F6780E870E060E0089570
-:1048F0009FEF80EC089500240A94161617061806F8
-:104900000906089500240A941216130614060506D3
-:104910000895092E0394000C11F4882352F0BB0F64
-:1049200040F4BF2B11F460FF04C06F5F7F4F8F4FC7
-:104930009F4F089597FB072E16F4009407D077FD3C
-:1049400009D00E94B42407FC05D03EF490958195CF
-:104950009F4F0895709561957F4F0895EE0FFF1F4B
-:104960000590F491E02D0994AA1BBB1B51E107C0EF
-:10497000AA1FBB1FA617B70710F0A61BB70B881FEF
-:10498000991F5A95A9F780959095BC01CD0108957E
-:10499000F999FECF92BD81BDF89A992780B5089507
-:1049A000A8E1B0E042E050E00C94EB24262FF99906
-:1049B000FECF1FBA92BD81BD20BD0FB6F894FA9A02
-:1049C000F99A0FBE019608950E94D624272F0C94C1
-:1049D000D724DC01CB01FC01F999FECF06C0F2BD62
-:1049E000E1BDF89A319600B40D9241505040B8F7AD
-:0649F0000895F894FFCFCA
-:1049F60020024209CF09AC09780945090101BA012B
-:104A060028080A03140A3F4D36393F08F207BC0747
-:104A1600830716072F0748076107010203040506E7
-:044A26000708090074
+:100980000F1CC82FE0910E01F0910F01808182723F
+:1009900019F0259A2D9A06C00E94431081FDF9CFC7
+:1009A00025982D98C130B9F0C430A9F089EF8C0F8B
+:1009B000823088F08EEF8C0F823018F4269A2E9AAF
+:1009C00002C026982E98C550C23018F4279A2F9A44
+:1009D00002C027982F98CF9108950C94B60456988A
+:1009E0005E9825982D9826982E9827982F988FEF07
+:1009F00090E0909389008093880090938B0080937F
+:100A00008A0090938D0080938C00259A2D9A2FEF69
+:100A100080E792E0215080409040E1F700C0000064
+:100A2000269A2E9A2FEF80E792E021508040904046
+:100A3000E1F700C00000279A2F9A2FEF80E792E09D
+:100A4000215080409040E1F700C0000025982D988B
+:100A50002FEF80E792E0215080409040E1F700C006
+:100A6000000026982E982FEF80E792E021508040DA
+:100A70009040E1F700C0000027982F9856985E98A4
+:100A800025982D9826982E9827982F98089589EACA
+:100A90008093800089E08093810024982C983F986F
+:100AA0008AB18F748AB96E98479A8BB1806B8BB973
+:100AB000769A0E94EF040C94B50480E280930001C2
+:100AC0008091340181110EC00E94AC0581E08093B9
+:100AD00034012FEF83ED90E3215080409040E1F707
+:100AE00000C0000080E40E94B205809300018111E3
+:100AF0002EC00E94DC0580930001811128C00E9455
+:100B0000DC0580930001811122C08FE30E94DC0587
+:100B10008093000181111BC00E94D40580E40E94D3
+:100B2000B20580930001811112C08CE00E94DC05A7
+:100B30008093000181110BC00E94DC0580930001AD
+:100B4000811105C08FE30E94DC05809300010E94A3
+:100B5000D4058091000108951092B9008AE0809335
+:100B6000B800089594EA9093BC009091BC0097FF60
+:100B7000FCCF9091B900987F983021F0903111F01E
+:100B800081E008958093BB0084E88093BC0080914D
+:100B9000BC0087FFFCCF8091B900887F883111F0BD
+:100BA000803471F780E0089584E98093BC008091DF
+:100BB000BC0084FDFCCF08958093BB0084E8809343
+:100BC000BC008091BC0087FFFCCF9091B900987F5A
+:100BD00081E0983209F480E0089584E88093BC00B5
+:100BE0008091BC0087FFFCCF8091BB00089580916D
+:100BF0000001811115C080E40E94B20580930001BC
+:100C000081110CC082E10E94DC05809300018111FA
+:100C100005C08FEF0E94DC05809300010E94D4057F
+:100C200084B1807F84B985B1807F85B98AB1837FA3
+:100C30008AB98BB1837F8BB93E98469808950E94FC
+:100C40005D05809300010E94F70580B38C7080BB26
+:100C500081B3836F81BBE4E4F1E0A6E3B1E01192DC
+:100C60001D9281E0E235F807D1F70C944705BF9259
+:100C7000CF92DF92EF92FF920F931F93CF93DF9368
+:100C800080910001882379F0809135018F5F8093F6
+:100C90003501811108C00E945D058093000181111A
+:100CA00002C00E94EF0406E311E0C0E0D0E0DD24C2
+:100CB000D39482E0C82EEE24E394F12CC73000F5E3
+:100CC00080910001811162C080E40E94B20580938E
+:100CD0000001811112C082E10E94DC0580930001B5
+:100CE00081110BC0C7010C2E01C0880F0A94EAF7CE
+:100CF00080950E94DC05809300010E94D40546C0C7
+:100D0000CA30A1F028F4C83059F0C93061F005C0EC
+:100D1000CC3089F070F0CD3089F0209A289810C03E
+:100D2000219A29980DC0229A2A980AC0239A2B98B2
+:100D300007C0529A01C0539A5B9802C03E9A4698E7
+:100D4000E0EAEA95F1F78FB179995AC092E08170A3
+:100D50008D25892B7C9B02C090E001C094E0892BFB
+:100D60007D9B02C090E001C098E0892B7E9B02C071
+:100D700090E001C090E1892B9FB19095991F992730
+:100D8000991F9295990F907E892B0FC08091000139
+:100D900081114BC080E40E94B2058093000188233A
+:100DA00089F1B12C0E94D4058B2DF8019081981700
+:100DB00019F08083C09201010E94F70521960F5F10
+:100DC0001F4FCE30D10509F079CF809101018823E2
+:100DD00071F1815080930101882339F08FE99FE000
+:100DE0000197F1F700C0000022C0A4E4B1E0E6E3FF
+:100DF000F1E081918D9391E0E434F907D1F717C0C8
+:100E000090E0A5CF83E10E94DC0580930001811171
+:100E1000C8CF81E40E94B205809300018111C1CF47
+:100E20000E94ED05B82EB094BDCF80E0BECF0E94E9
+:100E3000ED0481E0DF91CF911F910F91FF90EF9032
+:100E4000DF90CF90BF900895E82FF0E0EC5BFE4F6D
+:100E50008081089508958B3B910578F4883A910537
+:100E600040F5853A9105D0F48430910508F0B1C081
+:100E70008130910509F4ADC06BC0803E910508F446
+:100E800067C0883E910508F4A4C09C01205F310929
+:100E90002031310508F05CC090650895853A9105D0
+:100EA00009F459C0863A910509F458C083E890E4E2
+:100EB0000895883A910509F454C0893A910509F4D6
+:100EC00053C08A3A910509F452C08B3A910509F44E
+:100ED00051C08C3A910509F450C08D3A910509F43E
+:100EE0004FC0803B910509F44EC08E3A910509F43C
+:100EF0004DC08F3A910509F44CC0813B910509F42E
+:100F00004BC0823B910509F44AC0833B910509F42B
+:100F100049C0843B910509F448C0853B910509F41B
+:100F200047C0863B910509F446C0873B910509F40B
+:100F300045C0883B910509F444C0893B910509F4FB
+:100F400043C08A3B910509F042C08AE296E40895C5
+:100F500080E090E0089581E890E4089582E890E4CC
+:100F6000089582EE94E4089589EE94E408958AEE5B
+:100F700094E4089585EB94E4089586EB94E4089551
+:100F800087EB94E408958CEC94E408958DEC94E45C
+:100F9000089583E895E408958AE895E4089582E940
+:100FA00095E4089584E995E4089581E296E408952E
+:100FB00083E296E4089584E296E4089585E296E457
+:100FC000089586E296E4089587E296E4089580E025
+:100FD00094E40895089596E0799FF001112494E532
+:100FE000899FE00DF11D1124E60FF11DEE0FFF1F8B
+:100FF000E851FF4F859194910895880F991F805A69
+:101000009040FC01859194910895880F991F80521A
+:101010009F4FFC0185919491089526E0729FF00105
+:10102000112444E5849FE00DF11D1124E60FF11D0C
+:10103000EE0FFF1FE851FF4F25913491C9019A959A
+:1010400081159F4110F4C9010895C901905281157D
+:10105000904128F4C9019F700E9405080895C901B4
+:1010600090538115904120F4C9019927906C0895FF
+:10107000211580E5380769F40E94AD159FEF24E340
+:101080004CE0915020404040E1F700C000000C943B
+:10109000081D213080E5380731F48091CD01816051
+:1010A0008093CD010895C90190558115904108F0B4
+:1010B00050C0832F99278F70992781309105D9F4DB
+:1010C000A9014370552702C0880F991F4A95E2F77E
+:1010D0009C68A90164E0440F551F6A95E1F7442715
+:1010E0005370842B952B73E0220F331F7A95E1F711
+:1010F000207633271DC08230910529F4922F88274E
+:10110000816F906A089583309105A9F4A901437015
+:10111000552781E090E002C0880F991F4A95E2F7B9
+:101120009C6843E0220F331F4A95E1F7207E377019
+:10113000822B932B08950497F1F4A901437055274E
+:1011400081E090E002C0880F991F4A95E2F79A6803
+:10115000E8CFC90190578115904120F4C9019F70D3
+:1011600090620895C90190588115904120F4C901F9
+:101170009F70906A0895203E3105E0F4203C3105CF
+:1011800058F52133310509F470C048F4293231058E
+:1011900009F464C02A32310509F46EC074C02933E1
+:1011A0003105F1F022383105D9F02533310509F444
+:1011B0004EC069C0233E310589F138F4203E310527
+:1011C000C1F0223E3105E1F05EC0263E310569F1F5
+:1011D000273E3105A9F157C0C9010E94FD070895B6
+:1011E0008091E00180FD02C081FF4DC080EE90E063
+:1011F0004BC08091E00180FFF9CF89E390E044C0CB
+:101200008091E00182FF0EC08091E00184FF03C065
+:1012100080E090E039C083EE90E036C08091E0013C
+:1012200082FFF2CF82EE90E02FC08091E00183FF39
+:101230000BC08091E00184FDEBCF87EE90E024C0ED
+:101240008091E00183FFF5CF86EE90E01DC0809194
+:10125000E00185FF07C089E290E016C08091E001BF
+:1012600085FFF9CF85E390E00FC08091E00186FF14
+:1012700007C08AE290E008C08091E00186FFF9CFC4
+:1012800081E390E001C0C9010E942B0708950895F1
+:101290000C944709809162010895CF93DF9300D0A9
+:1012A0001F92CDB7DEB72091E601243019F523E077
+:1012B00029839B838A832093E9008FEF9091E80034
+:1012C000815095FD06C095ED9A95F1F700008111CA
+:1012D000F5CF8091E80085FF0DC040E050E063E06D
+:1012E00070E0CE0101960E94B70B8091E8008E77E6
+:1012F0008093E8000F900F900F90DF91CF910895A9
+:10130000CF93DF9300D01F92CDB7DEB72091E601D7
+:10131000243021F522E029839B838A8383E0809314
+:10132000E9008FEF9091E800815095FD06C095EDA2
+:101330009A95F1F700008111F5CF8091E80085FFC3
+:101340000DC040E050E063E070E0CE0101960E94E5
+:10135000B70B8091E8008E778093E8000F900F9094
+:101360000F90DF91CF9108952091E6012430F1F4A0
+:1013700022E02093E9002FEF3091E800215035FD65
+:1013800006C035ED3A95F1F700002111F5CF209117
+:10139000E80025FF0BC040E050E065E070E00E94EF
+:1013A000B70B8091E8008E778093E8000895CF9383
+:1013B000DF93EC018091E601843009F046C0909102
+:1013C0000C019923D9F090910D019923B9F08093E4
+:1013D000E9008FEF9091E800815095FD06C095E1FE
+:1013E0009A95F1F700008111F5CF8091E80085FF13
+:1013F0002CC040E050E060E170E017C081E08093D5
+:10140000E9008FEF9091E800815095FD06C095EDC1
+:101410009A95F1F700008111F5CF8091E80085FFE2
+:1014200014C040E050E068E070E0CE010E94B70BCD
+:101430008091E8008E778093E80080E1FE01A2E5CC
+:10144000B1E001900D928A95E1F7DF91CF91089577
+:101450008091E501811109C00E94490D0E94A60DED
+:101460008091E20084608093E20008951092E5018B
+:10147000089508950C942E230E949F1C0E943423EB
+:101480000E9443100C94480942E061EC81E00E9404
+:10149000C30C42E061EC82E00E94C30C42E061ECCC
+:1014A00083E00E94C30C42E161EC84E00C94C30C25
+:1014B0008091E801833009F455C030F4813071F037
+:1014C000823009F48EC008958A3009F47AC08B30D6
+:1014D00009F460C0893009F09CC020C08091E70108
+:1014E000813A09F096C08091E800877F8093E800F8
+:1014F0008091EB019091EC01892B21F060E080E07C
+:1015000090E003C060E182E591E070E00E94000C91
+:101510008091E8008B778093E80008958091E7013F
+:10152000813209F076C08091EB019091EC01009737
+:1015300019F0039709F06DC08091E800877F8093D0
+:10154000E8008091E80082FD05C08091E6018111EC
+:10155000F8CF5FC08091F100809362018091E80034
+:101560008B7753C08091E701813A09F052C0809196
+:10157000EB019091EC01892B09F04BC08091E800C0
+:10158000877F8093E8008091E80080FFFCCF809106
+:101590000C0136C08091E7018132D9F58091EB01D1
+:1015A0009091EC01892BA9F58091E800877F8093C9
+:1015B000E8000E94F80C8091E90180930C010C94E2
+:1015C000AD158091E701813221F58091E800877F98
+:1015D0008093E8000E94F80C8091EA0180936301F7
+:1015E00008958091E701813AA1F48091E800877F16
+:1015F0008093E8008091E80080FFFCCF8091630138
+:101600008093F1008091E8008E778093E8000C943D
+:10161000F80C089584B7877F84BF88E10FB6F894EB
+:1016200080936000109260000FBE90E080E80FB6DB
+:10163000F89480936100909361000FBE0E94921015
+:101640000E94490D0E94A60D8091E2008460809363
+:10165000E20078940E9421100E94941082E091E0B0
+:101660000E943E100E941C238091E601853069F49F
+:101670000E94621C8091E4018823B1F30E948A1CBD
+:10168000882391F30E94A10BEFCF0E949A10ECCF18
+:10169000292F332723303105A9F06CF4213031058F
+:1016A00009F442C02230310509F043C08DE690E0D4
+:1016B00024E037E042C021323105C9F02232310541
+:1016C00019F137C099278130910541F08230910599
+:1016D00041F0892B71F5E0E0F7E005C0E8EEF6E0B7
+:1016E00002C0E0EDF6E0849190E09F0126C06430F6
+:1016F00000F5E62FF0E0EE0FFF1FEE5DFE4F2081BC
+:10170000318189E090E019C0643098F4E62FF0E070
+:10171000DF01AA0FBB1FA65EBE4F2D913C91EA5E72
+:10172000FE4F808190E009C082E190E021E737E040
+:1017300004C080E090E020E030E0FA0131832083B3
+:10174000089580E189BD82E189BD09B400FEFDCF25
+:101750008091D8008F7D8093D8008091E0008260D6
+:101760008093E0008091E00081FDFCCF0895CF924E
+:10177000DF92EF92FF920F931F93CF93DF937C0141
+:101780008B01EA010E94190D811131C0209731F0BF
+:1017900088819981081B190BE80EF91EC12CD12CE8
+:1017A0000115110519F18091E80085FD14C08091A3
+:1017B000E8008E778093E800209741F08881998136
+:1017C0008C0D9D1D9983888385E011C00E94190DA1
+:1017D000882331F30CC0F70181917F018093F100E0
+:1017E00001501109FFEFCF1ADF0ADACF80E0DF9155
+:1017F000CF911F910F91FF90EF90DF90CF900895C0
+:101800002091ED013091EE012617370748F0611560
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E061157105B9F18091E60173
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FF06C08091E800E2
+:1018500082FF26C080E008958091E80080FFE3CFFA
+:101860002091F3008091F20090E0922B61157105B8
+:1018700051F08830910538F421912093F1006150A6
+:1018800071090196F3CF21E0089709F020E08091DB
+:10189000E8008E778093E800C6CF2111C7CFD6CF5E
+:1018A0008091E601882339F0853039F08091E80095
+:1018B00083FFCCCF04C082E0089583E0089581E0E7
+:1018C00008952091ED013091EE012617370748F079
+:1018D0006115710539F42091E8002E772093E80016
+:1018E00001C0B901FC0120E061157105C1F18091D1
+:1018F000E601882309F441C0853009F440C0809195
+:10190000E80083FD3EC08091E80082FF06C0809120
+:10191000E80082FF27C080E008958091E80080FF02
+:10192000E3CF2091F3008091F20090E0922B6115BB
+:10193000710559F08830910540F424912093F1000D
+:101940003196615071090196F2CF21E0089709F0B4
+:1019500020E08091E8008E778093E800C5CF2111C8
+:10196000C6CFD5CF8091E601882339F0853039F094
+:101970008091E80083FFCBCF04C082E0089583E02C
+:10198000089581E00895982F973058F59093E900D5
+:10199000981739F07091EC002091ED005091F00013
+:1019A00003C0242F762F50E021FF19C03091EB00A7
+:1019B0003E7F3093EB003091ED003D7F3093ED00A2
+:1019C0003091EB0031603093EB007093EC0020938A
+:1019D000ED005093F0002091EE0027FF07C09F5FBD
+:1019E000D3CF8F708093E90081E0089580E008955F
+:1019F0008091E70187FD05C08091E80080FF0EC05F
+:101A000012C08091E80082FD05C08091E60181113D
+:101A1000F8CF08958091E8008B7708C08091E601A7
+:101A20008111EACF08958091E8008E778093E800D5
+:101A300008958091E4009091E50045E62091EC0046
+:101A400020FF21C02091E80020FD21C02091E60167
+:101A5000222389F0253089F02091EB0025FD0FC06D
+:101A60002091E4003091E5002817390739F34150FF
+:101A700041F0C901E3CF82E0089583E0089581E059
+:101A8000089584E008952091E80022FFDFCF80E0F0
+:101A900008950E94B70D0E94BF0DE0EEF0E0808136
+:101AA00081608083E8EDF0E080818F77808319BCCE
+:101AB000A7EDB0E08C918E7F8C9380818F7E8083A8
+:101AC0001092E50108950F931F93CF93DF930E9427
+:101AD000B70D0E94BF0DC8EDD0E088818F77888355
+:101AE00088818068888388818F7D888319BC109263
+:101AF000E6011092E2011092E4011092E30100EE7F
+:101B000010E0F80180818B7F8083888181608883E9
+:101B100042E060E080E00E94C30CE1EEF0E08081F2
+:101B20008E7F8083E2EEF0E080818160808380811F
+:101B300088608083F80180818E7F808388818061C6
+:101B40008883DF91CF911F910F910895E8EDF0E028
+:101B500080818F7E8083E7EDF0E0808181608083EB
+:101B600084E082BF81E08093E5010C94630DE8ED91
+:101B7000F0E080818E7F80831092E20008951092C1
+:101B8000DA001092E10008951F920F920FB60F92A3
+:101B900011242F933F934F935F936F937F938F9372
+:101BA0009F93AF93BF93EF93FF938091E10082FFE8
+:101BB0000BC08091E20082FF07C08091E1008B7F23
+:101BC0008093E1000E9420108091DA0080FF1FC006
+:101BD0008091D80080FF1BC08091DA008E7F8093B7
+:101BE000DA008091D90080FF0DC080E189BD82E1DB
+:101BF00089BD09B400FEFDCF81E08093E6010E941B
+:101C0000280A05C019BC1092E6010E94360A80918C
+:101C1000E10080FF19C08091E20080FF15C0809133
+:101C2000E2008E7F8093E2008091E20080618093E9
+:101C3000E2008091D80080628093D80019BC85E0D2
+:101C40008093E6010E943A0A8091E10084FF30C04F
+:101C50008091E20084FF2CC080E189BD82E189BDD2
+:101C600009B400FEFDCF8091D8008F7D8093D8000D
+:101C70008091E1008F7E8093E1008091E2008F7E71
+:101C80008093E2008091E20081608093E200809185
+:101C9000E201882311F084E007C08091E30087FF10
+:101CA00002C083E001C081E08093E6010E943C0A0B
+:101CB0008091E10083FF29C08091E20083FF25C06D
+:101CC0008091E100877F8093E10082E08093E601CC
+:101CD0001092E2018091E1008E7F8093E10080917B
+:101CE000E2008E7F8093E2008091E2008061809329
+:101CF000E20042E060E080E00E94C30C8091F000CE
+:101D000088608093F0000E94390AFF91EF91BF91A3
+:101D1000AF919F918F917F916F915F914F913F9183
+:101D20002F910F900FBE0F901F9018951F920F923A
+:101D30000FB60F9211242F933F934F935F936F939E
+:101D40007F938F939F93AF93BF93CF93EF93FF9323
+:101D5000C091E900CF708091EC001092E900809171
+:101D6000F000877F8093F00078940E94D20E10924A
+:101D7000E9008091F00088608093F000C093E90052
+:101D8000FF91EF91CF91BF91AF919F918F917F91F3
+:101D90006F915F914F913F912F910F900FBE0F90D8
+:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7
+:101DB0000FB6F894DEBF0FBECDBFE7EEF1E0809125
+:101DC000F100819321E0EF3EF207C9F70E94580A23
+:101DD0008091E80083FF1CC12091E7013091E80168
+:101DE000832F90E08A30910508F012C1FC01EA5A75
+:101DF000FF4F0C94B624203881F0223809F008C136
+:101E00008091EB018F708093E9008091EB0085FB5E
+:101E1000882780F91092E90006C08091E301909133
+:101E2000E401911182609091E800977F9093E8001F
+:101E30008093F1001092F100C5C0822F8D7F09F0D0
+:101E4000E7C0222319F0223061F0E2C08091E9015D
+:101E5000813009F0DDC0333009F080E08093E40187
+:101E600028C08091E901811124C02091EB012F70DD
+:101E700009F4CEC02093E9008091EB0080FF19C0E7
+:101E80008091EB00333011F4806211C08061809347
+:101E9000EB0081E090E0022E01C0880F0A94EAF77F
+:101EA0008093EA001092EA008091EB0088608093B2
+:101EB000EB001092E9008091E800877F86C0211135
+:101EC000A7C01091E9011F778091E3008078812BF2
+:101ED0008093E3008091E800877F8093E8000E9470
+:101EE000F80C8091E80080FFFCCF8091E3008068CF
+:101EF0008093E300112311F083E001C082E080931E
+:101F0000E60186C02058223008F082C08091E901A5
+:101F10009091EA018C3D23E0920779F583E08A8372
+:101F20008AE289834FB7F894DE01139620E03EE001
+:101F300051E2E32FF0E050935700E49120FF03C0FB
+:101F4000E295EF703F5FEF708E2F90E0EA3010F077
+:101F5000C79601C0C0968D939D932F5F243149F79A
+:101F60004FBF8091E800877F8093E8006AE270E0CD
+:101F7000CE0101960E94000C14C0AE014F5F5F4F6E
+:101F80006091EB010E94480B009709F441C0209139
+:101F9000E800277F2093E800BC0189819A810E9494
+:101FA000610C8091E8008B778093E80031C0203885
+:101FB00079F58091E800877F8093E8008091E201C5
+:101FC0008093F1008091E8008E778093E8000E9472
+:101FD000F80C1EC021111CC09091E9019230C0F490
+:101FE0008091E800877F8093E8009093E2010E944F
+:101FF000F80C8091E201811104C08091E30087FF19
+:1020000002C084E001C081E08093E6010E94440A9E
+:102010008091E80083FF0AC08091E800877F809369
+:10202000E8008091EB0080628093EB00AA960FB6E7
+:10203000F894DEBF0FBECDBFDF91CF911F91089501
+:102040000895CF938091E6018823B1F08091E90053
+:102050008F709091EC0090FF02C090E801C090E07A
+:10206000C92FC82B1092E9008091E80083FD0E94DF
+:10207000D20ECF70C093E900CF910895909369017B
+:10208000809368010895E0916801F09169013097AB
+:1020900021F00190F081E02D099480E00895E09115
+:1020A0006801F0916901309721F00280F381E02D01
+:1020B00009940895E0916801F0916901309721F049
+:1020C0000480F581E02D09940895209166013091F6
+:1020D00067018217930771F09093670180936601FF
+:1020E000E0916801F0916901309721F00680F78155
+:1020F000E02D0994089520916401309165018217C3
+:10210000930771F09093650180936401E0916801F9
+:10211000F0916901309721F00084F185E02D099458
+:10212000089508950C9491100E94A51C0E941F060A
+:102130000C946B1DCF92DF92EF92FF920F931F933F
+:10214000CF93DF93CDB7DEB72B970FB6F894DEBFF2
+:102150000FBECDBF0E9437063BE6E32E31E0F32EE3
+:1021600000E010E0C02E802F0E942407F701D190DC
+:102170007F01D826B1F40F5F1F4F0E30110591F784
+:102180008FEF89838A831B820E94AE1C8160782F27
+:102190009D838C8349815A816B818D810E943D1181
+:1021A00041C09091CD0191FF04C08B870E942A0706
+:1021B0008B8520E030E04D2D50E0922FBA01022EA9
+:1021C00002C0759567950A94E2F760FF25C02E83DB
+:1021D000CF82EE24E394F12C02C0EE0CFF1C9A9502
+:1021E000E2F790E08E219F2121E0892B09F420E085
+:1021F00028870E94AE1C8160782F9A8789874E813C
+:102200005F8168858A850E943D11F801E559FE4F7E
+:1022100080818E25808306C02F5F3F4F2630310599
+:1022200061F6A9CF0E944F2010916A010E944310CD
+:102230001817A1F00E94431080936A012B960FB6E5
+:10224000F894DEBF0FBECDBFDF91CF911F910F91EC
+:10225000FF90EF90DF90CF900C9448092B960FB62B
+:10226000F894DEBF0FBECDBFDF91CF911F910F91CC
+:10227000FF90EF90DF90CF900895CF93DF93CDB78D
+:10228000DEB72B970FB6F894DEBF0FBECDBF4F83DE
+:10229000588769877A878B87DE01119686E0FD0172
+:1022A00011928A95E9F785E0FE01379601900D922B
+:1022B0008A95E1F749815A816B817C818D819E816C
+:1022C0000E9479182B960FB6F894DEBF0FBECDBFD3
+:1022D000DF91CF910895CF93C82F882309F4C1C00F
+:1022E000823859F40E94431081FDBBC089E30E94EB
+:1022F000161B0E94E01B89E30CC0833879F40E940E
+:10230000431080FDAEC083E50E94161B0E94E01BB7
+:1023100083E50E94561BCF910C94E01B843859F43E
+:102320000E94431082FD9DC087E40E94161B0E94FC
+:10233000E01B87E4EECF8CEF8C0F813A48F48C2FB2
+:102340000E94842281118DC08C2F0E94161BE3CF26
+:1023500080E28C0F883048F4C77081E001C0880F9C
+:10236000CA95EAF70E94971BD6CF8BE58C0F833076
+:1023700078F4C53A29F0C63A31F482E890E005C015
+:1023800081E890E002C083E890E0CF910C94651062
+:1023900088E58C0F833108F064C0C83A39F1C93A36
+:1023A00041F1CA3A49F1CB3A51F1CC3A59F1CD3A1F
+:1023B00061F1C03B69F1CE3A71F1CF3A79F1C13B9D
+:1023C00081F1C23B89F1C33B91F1C43B99F1C53B1B
+:1023D000A1F1C63BA9F1C73BB1F1C83BB9F1C93B7B
+:1023E000C1F1CA3BC9F58AE292E038C082EE90E0C2
+:1023F00035C089EE90E032C08AEE90E02FC085EBC8
+:1024000090E02CC086EB90E029C087EB90E026C0DE
+:102410008CEC90E023C08DEC90E020C083E891E04C
+:102420001DC08AE891E01AC082E991E017C084E9F2
+:1024300091E014C081E292E011C083E292E00EC00C
+:1024400084E292E00BC085E292E008C086E292E06E
+:1024500005C087E292E002C080E090E0CF910C944A
+:102460007B10CF910895882309F44BC0823859F42A
+:102470000E94431081FF45C089E30E94161B0E9401
+:10248000E01B89E30CC0833871F40E94431080FF85
+:1024900038C083E50E94161B0E94E01B83E50E9462
+:1024A000561B0C94E01B843859F40E94431082FFA1
+:1024B00028C087E40E94161B0E94E01B87E4EFCF30
+:1024C0009CEF980F913A58F390E2980F983050F49F
+:1024D000877091E001C0990F8A95EAF7892F0E94D1
+:1024E0009D1BDFCF9BE5980F933020F480E090E0B8
+:1024F0000C946510885A833120F480E090E00C94AD
+:102500007B100895882321F00E94971B0C94E01BF8
+:102510000895882321F00E949D1B0C94E01B0895D0
+:10252000CF92DF92EF92FF920F931F93CF93DF939F
+:10253000CDB7DEB728970FB6F894DEBF0FBECDBF7C
+:102540008C0185E0F801DE01119601900D928A95CB
+:10255000E1F7F80140813181F280258122952F70C9
+:1025600083819481892B31F03F3F31F481E04F3FEB
+:1025700019F403C081E001C080E080FDCBC2498333
+:102580003A8389819A812F830E94D41A9E838887F7
+:102590000E94D31A0E94A6192F814E816885FF20C0
+:1025A00029F00E94B41B68854E812F81E42FE295AB
+:1025B000EF70F0E0E05AFF4F0C94B624842F807F38
+:1025C000142F1F70882311F01295107FFF2059F0EF
+:1025D000112309F454C2812F68870E94A71B0E940F
+:1025E000E01B68854CC2862F0E943312112309F428
+:1025F00091C2812F0E94AD1B28960FB6F894DEBFC2
+:102600000FBECDBFDF91CF911F910F91FF90EF9043
+:10261000DF90CF900C94E01B342F307F842F8F708D
+:10262000303211F08295807F662319F0613019F104
+:102630002BC0FF20B1F0222309F493C1213009F00F
+:1026400090C128960FB6F894DEBF0FBECDBFDF91C4
+:10265000CF911F910F91FF90EF90DF90CF900C944E
+:10266000C71B222319F0213009F454C28E830E9423
+:10267000CA1B8E8189C1FF2021F0223008F04AC296
+:1026800070C1211147C280C1FF2021F0222309F42B
+:1026900068C1F5C1222309F477C105C2242F26950C
+:1026A0002695237030E02115310521F021303105C8
+:1026B000C9F030C2FF2021F0862F942F937002C002
+:1026C00080E090E028960FB6F894DEBF0FBECDBF35
+:1026D000DF91CF911F910F91FF90EF90DF90CF90FE
+:1026E0000C946510FF2021F0862F942F937002C068
+:1026F00080E090E028960FB6F894DEBF0FBECDBF05
+:10270000DF91CF911F910F91FF90EF90DF90CF90CD
+:102710000C947B10862FFF2019F00E94571F02C0D7
+:102720000E94BF1F28960FB6F894DEBF0FBECDBF24
+:10273000DF91CF911F910F91FF90EF90DF90CF909D
+:102740000C944420842F837009F076C0F110E2C10C
+:10275000262F229526952770220F220F862F8F7005
+:10276000C82ED12CE12CF12C022E04C0CC0CDD1C87
+:10277000EE1CFF1C0A94D2F764FF10C06FE070E0FB
+:1027800080E090E004C0660F771F881F991F2A958C
+:10279000D2F7609570958095909503C060E070E0E9
+:1027A000CB01242F269526952370422F50E04230EE
+:1027B0005105D1F04330510559F16C297D298E29FD
+:1027C0009F294130510541F128960FB6F894DEBF9C
+:1027D0000FBECDBFDF91CF911F910F91FF90EF9072
+:1027E000DF90CF900C94CB196C297D298E299F29DD
+:1027F00028960FB6F894DEBF0FBECDBFDF91CF9104
+:102800001F910F91FF90EF90DF90CF900C94E519FE
+:102810000E94CB19C701B60128960FB6F894DEBF07
+:102820000FBECDBFDF91CF911F910F91FF90EF9021
+:10283000DF90CF900C94B119FF2019F0842F817094
+:1028400001C08695882309F465C1262F2295269517
+:102850002770220F220F862F8F70C82ED12CE12CCB
+:10286000F12C022E04C0CC0CDD1CEE1CFF1C0A94C3
+:10287000D2F764FF10C06FE070E080E090E004C029
+:10288000660F771F881F991F2A95D2F7609570955C
+:102890008095909503C060E070E0CB01242F2695D1
+:1028A00026952370422F50E042305105D1F043303D
+:1028B000510559F16C297D298E299F2941305105F7
+:1028C00041F128960FB6F894DEBF0FBECDBFDF9161
+:1028D000CF911F910F91FF90EF90DF90CF900C94CC
+:1028E0009F1A6C297D298E299F2928960FB6F89466
+:1028F000DEBF0FBECDBFDF91CF911F910F91FF9033
+:10290000EF90DF90CF900C94B91A0E949F1AC701E4
+:10291000B60128960FB6F894DEBF0FBECDBFDF918B
+:10292000CF911F910F91FF90EF90DF90CF900C947B
+:10293000851A603FC9F118F4603E50F49BC0623FB5
+:1029400009F460C008F44AC0633F09F46FC092C044
+:10295000162F1F70842F8F71FF2099F00E941E1A6E
+:10296000812F28960FB6F894DEBF0FBECDBFDF9142
+:10297000CF911F910F91FF90EF90DF90CF900C942B
+:1029800082120E943F1A812F28960FB6F894DEBF5C
+:102990000FBECDBFDF91CF911F910F91FF90EF90B0
+:1029A000DF90CF900C948912FF20A1F02111B2C0CA
+:1029B000842F8F7128960FB6F894DEBF0FBECDBF5F
+:1029C000DF91CF911F910F91FF90EF90DF90CF900B
+:1029D0000C94641A223008F09DC0EACFFF20A1F0C9
+:1029E000842F8F7128960FB6F894DEBF0FBECDBF2F
+:1029F000DF91CF911F910F91FF90EF90DF90CF90DB
+:102A00000C941E1AFF2061F3842F8F7128960FB645
+:102A1000F894DEBF0FBECDBFDF91CF911F910F9114
+:102A2000FF90EF90DF90CF900C943F1AFF2091F031
+:102A3000842F8F7128960FB6F894DEBF0FBECDBFDE
+:102A4000DF91CF911F910F91FF90EF90DF90CF908A
+:102A50000C94091A28960FB6F894DEBF0FBECDBFAE
+:102A6000DF91CF911F910F91FF90EF90DF90CF906A
+:102A70000C94FF19FF20A1F0222309F4B1CF862F77
+:102A800028960FB6F894DEBF0FBECDBFDF91CF9171
+:102A90001F910F91FF90EF90DF90CF900C946B11EE
+:102AA000222309F4B1CF862F28960FB6F894DEBF03
+:102AB0000FBECDBFDF91CF911F910F91FF90EF908F
+:102AC000DF90CF900C9433124F70C8010E94A50480
+:102AD00028960FB6F894DEBF0FBECDBFDF91CF9121
+:102AE0001F910F91FF90EF90DF90CF900C942619DB
+:102AF0004F70C80128960FB6F894DEBF0FBECDBF49
+:102B0000DF91CF911F910F91FF90EF90DF90CF90C9
+:102B10000C94EA0728960FB6F894DEBF0FBECDBF1F
+:102B2000DF91CF911F910F91FF90EF90DF90CF90A9
+:102B300008950E94B41B0E94C41B0E94891B0E941E
+:102B4000E01B0E94F0200E94442080E090E00E9460
+:102B5000651080E090E00C947B100E94A41B0C9404
+:102B600099150E94D41A292F22952F7030E02C300D
+:102B700031054CF42A3031056CF4225031092230F1
+:102B8000310590F407C02C30310551F02F3031055C
+:102B900039F00AC0803E10F0803F31F481E00895A2
+:102BA00093FB882780F9089580E00895CF93DF9301
+:102BB00000D000D01F92CDB7DEB70F900F900F90CE
+:102BC0000F900F90DF91CF910895CF93DF9300D0B6
+:102BD00000D000D0CDB7DEB726960FB6F894DEBF92
+:102BE0000FBECDBFDF91CF9108951F93CF93DF9399
+:102BF000C091790116E080917A01C81799F0D0E070
+:102C00001C9FF0011D9FF00D1124E558FE4F4081DF
+:102C1000518162817381848195810E94E51521969D
+:102C2000C770E9CFDF91CF911F9108954091AB011B
+:102C30005091AC016091AD017091AE018091AF01F6
+:102C40009091B0010C94E515CF938091B0018295DD
+:102C50008F7009F05FC08091AD01882309F45AC0DC
+:102C600020917901A0917A016091AB017091AC0142
+:102C70008091AE019091AF0131E06F3F09F030E0FB
+:102C8000B32FC6E02A1709F445C0009721F07F3F13
+:102C900021F44B2F03C041E001C040E030E040FD93
+:102CA00035C0C29FF001C39FF00D1124E558FE4FBF
+:102CB000418174132BC04081641328C042814111AB
+:102CC00025C0438154814817590710F441505109D8
+:102CD000481B590B483C5105C8F48091B0018F70D6
+:102CE00080618093B00186E0829FF001839FF00DA8
+:102CF0001124E058FE4F80818F70806180838BEAC1
+:102D000091E00E949012CF910C94F5152F5F3F4FE8
+:102D10002770B8CFCF910895CF92DF92EF92FF92B4
+:102D20000F931F93CF93DF93CDB7DEB762970FB6A4
+:102D3000F894DEBF0FBECDBF8C0185E0F801DE0147
+:102D40001D9601900D928A95E1F7D8014C9111964C
+:102D50005C91119712966C9112971396ED90FC90DE
+:102D600014977091AB01E091AC012091AE013091CC
+:102D7000AF012115310531F0EF3F31F481E07F3FA4
+:102D800019F403C081E001C080E0B82FB170CB2EF0
+:102D900080FD6CC1D090AD01DD2009F4F5C0F0914B
+:102DA000B001E216F30638F0C701821B930B883C92
+:102DB000910548F09BC0209530952E0D3F1D283C75
+:102DC000310508F093C08F2F807F09F052C0E513C2
+:102DD00014C0741312C0D62E61110FC0FF70F061C1
+:102DE000F093B0010E9416168BEA91E00E949012B7
+:102DF0008091B001F80185836CC1EF2831F05F3F0D
+:102E000031F481E04F3F19F403C081E001C080E05C
+:102E100080FD03C081E0862701C080E0F82FF170BB
+:102E2000FF2E80FF1CC08091790120917A0136E04D
+:102E3000821709F428C190E0389FF001399FF00D06
+:102E40001124E558FE4F7181571306C07081471356
+:102E500003C07281671303C001968770E9CFD62E35
+:102E6000662309F436C18091B00181608093B0017E
+:102E700053C0E51308C0741306C0611104C0D80123
+:102E80001596FC93AEC04D875E878D859E856A8BB7
+:102E90000E94B1156A89882329F1D62E662311F183
+:102EA0002091B001822F82958F7090E002970CF4F0
+:102EB00060C08091AB019091AC0198878F83198697
+:102EC000FB86EA862C87CE01079651C0E51731F1C3
+:102ED0004D875E878D859E856A8B0E94B1156A89B4
+:102EE00081112EC0C8010E949012A4C08F2F807F34
+:102EF00069F77E2DF98AE88A89890E94D6158BEABE
+:102F000091E00E949012EBEAF1E086E0DF011D9271
+:102F10008A95E9F70E941616D12CDBC07413D8CF1E
+:102F20006111D6CFD8011596FC93C8010E9490126A
+:102F3000EBEAF1E086E0DF011D928A95E9F7C9C06E
+:102F4000D62E662379F22091B001822F82958F7060
+:102F500090E0029774F08091AB019091AC019A835C
+:102F600089831B82FD82EC822E83CE0101960E9412
+:102F7000901286E0F801ABEAB1E001900D928A95DB
+:102F8000E1F70E9424166FC0E216F30628F0C7018D
+:102F9000821B930B9C0104C0209530952E0D3F1D84
+:102FA000283C310508F052C0D62E662309F49ACF8A
+:102FB000E5132CC074132AC08091B00180FD1DC0A0
+:102FC000982F92959F70C9F0D80115968C931597FC
+:102FD0009F3039F09F5F9295907F8F70892B159667
+:102FE0008C93C8010E94901286E0F801ABEAB1E030
+:102FF00001900D928A95E1F736C086E0F801ABEAC0
+:10300000B1E001900D928A95E1F763C04D875E872C
+:103010008D859E850E94B115882379F086E0F801A0
+:10302000ABEAB1E001900D928A95E1F70E94241677
+:103030000E941616DD24D3944CC08091B0018160AB
+:103040008093B001C8010E94901243C07E2DF98A7E
+:10305000E88A89890E94D615EBEAF1E086E0DF0173
+:103060001D928A95E9F70E94161633C0662309F46B
+:1030700039CF4D875E878D859E850E94B115882347
+:1030800009F430CFCBCF4D875E878D859E850E941A
+:10309000D41A292F22952F7030E0223031052CF4DC
+:1030A0009F7041F0811106C00CC0243031052CF412
+:1030B0009F7049F4805E883020F0C8010E94901211
+:1030C000CF2CDC2C06C0D80115969C91907F91F7EF
+:1030D000F8CF8D2D62960FB6F894DEBF0FBECDBF30
+:1030E000DF91CF911F910F91FF90EF90DF90CF90E4
+:1030F00008951F93CF93DF93CDB7DEB72C970FB60C
+:10310000F894DEBF0FBECDBF4F83588769877A879B
+:103110008B879C87CE0107960E948C168823C1F06E
+:103120002F8138858A859B85892B31F03F3F11F0AF
+:1031300080E003C02F3FE1F781E0811147C04F815C
+:10314000588569857A858B859C850E94E5153EC0EA
+:1031500086E0FE013796DE01119601900D928A9568
+:10316000E1F7FF81E8854A855B854115510531F01E
+:10317000EF3F31F481E0FF3F19F403C081E001C06B
+:1031800080E080FD23C020917A0130E0C9010196E2
+:10319000877099276091790170E086179707F1F1A0
+:1031A000F983EA835D834C8396E0929FD001939FDD
+:1031B000B00D1124A558BE4FFE01319601900D921D
+:1031C0009A95E1F780937A010E94F51516E08091B7
+:1031D000790190917A01891779F1189FC001112422
+:1031E00085589E4F0E948C16882331F1E091790119
+:1031F0001E9FF0011124E558FE4F408151816281EC
+:103200007381848195810E94E5158091790190E018
+:1032100001968770992780937901D9CF0E94AD15C7
+:1032200010927A0110927901EBEAF1E086E0DF0179
+:103230001D928A95E9F7CACF2C960FB6F894DEBF97
+:103240000FBECDBFDF91CF911F910895EF92FF92F6
+:103250000F931F93CF93DF93FC01009709F46FC086
+:10326000F12CEE24E394EF0121968491843740F40D
+:10327000843008F055C0813081F0823021F15FC088
+:10328000853709F447C0C0F19CE7980F903708F0E4
+:1032900056C08F770E94331245C08F010E5F1F4FBB
+:1032A000FE01849190E2980F983050F48770FE2DC3
+:1032B00001C0FF0F8A95EAF78F2F0E94B71B15C038
+:1032C0000E946B1114C08F010E5F1F4FFE0184918D
+:1032D00090E2980F983068F48770FE2D01C0FF0FC0
+:1032E0008A95EAF78F2F0E94BD1B0E94E01BE80120
+:1032F00019C00E943312FBCFCF010296FE01C49188
+:10330000CC2361F0EFE9FFE03197F1F700C0000056
+:10331000C150F6CFCF010296FE01F490EC0102C03D
+:103320000E946B118F2D882341F0EFE9FFE0319768
+:10333000F1F700C000008150F6CFFE0194CFDF917D
+:10334000CF911F910F91FF90EF9008950895609392
+:10335000B5017093B6018093B7019093B8010C94B6
+:1033600099150F931F930091B5011091B60120910B
+:10337000B7013091B801062B172B282B392B00935E
+:10338000B5011093B6012093B7013093B8011F9196
+:103390000F910C9499150F931F930091B501109103
+:1033A000B6012091B7013091B801062317232823D5
+:1033B00039230093B5011093B6012093B7013093E0
+:1033C000B8011F910F910C9499150F931F930091C1
+:1033D000B5011091B6012091B7013091B8010627CF
+:1033E0001727282739270093B5011093B60120939A
+:1033F000B7013093B8011F910F910C949915109259
+:10340000B1011092B2011092B3011092B4010C9468
+:10341000991541E050E060E070E004C0440F551F92
+:10342000661F771F8A95D2F74093B1015093B2017E
+:103430006093B3017093B4010C94991541E050E08E
+:1034400060E070E004C0440F551F661F771F8A9527
+:10345000D2F78091B1019091B201A091B301B091E6
+:10346000B401842B952BA62BB72B8093B10190939D
+:10347000B201A093B301B093B4010C94991541E04B
+:1034800050E060E070E004C0440F551F661F771FD6
+:103490008A95D2F740955095609570958091B101CD
+:1034A0009091B201A091B301B091B401842395230E
+:1034B000A623B7238093B1019093B201A093B301E7
+:1034C000B093B4010C94991541E050E060E070E0D5
+:1034D00004C0440F551F661F771F8A95D2F780914D
+:1034E000B1019091B201A091B301B091B4018427D0
+:1034F0009527A627B7278093B1019093B201A09397
+:10350000B301B093B4010C9499150F931F930091DC
+:10351000B1011091B2012091B3013091B401062B99
+:10352000172B282B392B0093B1011093B201209354
+:10353000B3013093B4011F910F910C9499150F931F
+:103540001F930091B1011091B2012091B30130910C
+:10355000B40106231723282339230093B1011093C4
+:10356000B2012093B3013093B4011F910F910C94D9
+:1035700099150F931F930091B1011091B201209101
+:10358000B3013091B4010627172728273927009364
+:10359000B1011093B2012093B3013093B4011F9194
+:1035A0000F910C9499150895CF92DF92EF92FF92AC
+:1035B0000F931F93CF93DF93EC01C090B501D09090
+:1035C000B601E090B701F090B8018091B1019091FF
+:1035D000B201A091B301B091B401C82AD92AEA2A54
+:1035E000FB2A0FE110E0B701A601002E04C076957A
+:1035F0006795579547950A94D2F740FF07C0BE01DB
+:10360000802F0E940D088130910539F40150110975
+:1036100050F7BE0180E00E940D08DF91CF911F910D
+:103620000F91FF90EF90DF90CF90089590910C0153
+:103630009923D9F090910D019923B9F0982F96957F
+:10364000969596959F3088F5E0910E01F0910F01C7
+:10365000E90FF11D877021E030E001C0220F8A954B
+:10366000EAF78181822B8183089540910E01509168
+:103670000F0120E030E09FEFFA01E20FF31F6281BB
+:10368000681799F09F3F19F4611101C0922F2F5FC5
+:103690003F4F2E30310581F79F3F39F0FA01E90F96
+:1036A000F11D97FDFA9582830895089590910C017C
+:1036B0009923E1F090910D019923C1F0982F9695EF
+:1036C000969596959F3020F5E0910E01F0910F01AF
+:1036D000E90FF11D877021E030E001C0220F8A95CB
+:1036E000EAF72095818128232183089540910E01D6
+:1036F00050910F0120E030E0FA01E20FF31F9281B8
+:10370000981301C012822F5F3F4F2E303105A1F771
+:10371000089581E090E0E0910E01F0910F01E80F33
+:10372000F91F1082019680319105A9F708959091B3
+:10373000CC01982B9093CC01089580959091CC0169
+:1037400098239093CC0108951092CC010895909104
+:10375000CB01982B9093CB01089580959091CB014C
+:1037600098239093CB0108951092CB0108959091E6
+:10377000CA01982B9093CA01089580959091CA012F
+:1037800098239093CA0108951092CA0108958093D6
+:10379000B90108951092B901089540910E01509118
+:1037A0000F0120E030E080E0FA01E20FF31F918189
+:1037B00091118F5F2F5F3F4F2F303105A9F708958B
+:1037C000E0910E01F0910F018091CC018083E09196
+:1037D0000E01F0910F0180819091CB01892B8083A4
+:1037E000E0910E01F0910F0180819091CA01892B27
+:1037F00080839091B901992361F0E0910E01F091DD
+:103800000F018081892B80830E94CD1B8111109232
+:10381000B90180910E0190910F010C944F10CF923D
+:10382000DF92EF92FF920F931F936C01EE24FF241F
+:10383000C114D104E104F10421F46B017C0180E0A6
+:1038400001C080E133272F2D1E2D0D2D01151105EF
+:103850002105310519F0885F68017901970186011A
+:10386000A4E03695279517950795AA95D1F70115E8
+:1038700011052105310519F08C5F68017901970167
+:103880008601F2E03695279517950795FA95D1F7B9
+:10389000011511052105310519F08E5F68017901C7
+:1038A000B701A6017695679557954795452B462B09
+:1038B000472B09F08F5F1F910F91FF90EF90DF90E2
+:1038C000CF9008958091E601843009F11092CE01E5
+:1038D00020E488E190E00FB6F894A895809360000A
+:1038E0000FBE2093600083B7817F846083BF83B75E
+:1038F000816083BF7894889583B78E7F83BF88E18A
+:103900000FB6F89480936000109260000FBE089587
+:1039100008950895CF930E94881C0E9437060E9444
+:10392000891CC0E08C2F0E942407811105C0CF5F45
+:10393000CE30C1F780E001C081E0CF9108950E94B0
+:10394000AD150E9443100C94480982E084BD93E0B9
+:1039500095BD9AEF97BD80936E0008952FB7F894A8
+:103960008091CF019091D001A091D101B091D2016D
+:103970002FBF0895CF92DF92EF92FF920F931F9384
+:103980002FB7F8944091CF015091D0016091D101AF
+:103990007091D2012FBF6A017B01EE24FF248C01BC
+:1039A00020E030E0C016D106E206F30610F44150E4
+:1039B0005109481B590BCA011F910F91FF90EF90BD
+:1039C000DF90CF9008951F920F920FB60F9211249F
+:1039D0008F939F93AF93BF938091CF019091D0012C
+:1039E000A091D101B091D2010196A11DB11D80938A
+:1039F000CF019093D001A093D101B093D201BF9198
+:103A0000AF919F918F910F900FBE0F901F901895BF
+:103A10000E94490DF8942FEF87EA91E621508040EB
+:103A20009040E1F700C0000087E090EBDC0180935C
+:103A3000EF019093F001A093F101B093F2012CE01B
+:103A400088E190E00FB6F894A895809360000FBECF
+:103A500020936000FFCFEF92FF920F931F93CF93BD
+:103A6000DF93E82EF12C8F2D0E942407C0E0D0E0D8
+:103A7000082F10E098010C2E02C0359527950A9466
+:103A8000E2F720FD05C02196C630D10599F709C09F
+:103A90006C2F7F2D80E00E94EB07E812F4CF81E0CD
+:103AA00005C0F3948EE0F812DECF80E0DF91CF9175
+:103AB0001F910F91FF90EF900895CF93C82F8CE244
+:103AC0000E942B1D882321F08C2FCF910C942B1D4D
+:103AD00080E0CF910895CF930E94B01E811102C063
+:103AE0000E94961EC5E6C15049F00E9437068FE33A
+:103AF0009CE90197F1F700C00000F5CF89E20E9430
+:103B00005D1D811111C18AE20E945D1D81110E941B
+:103B1000961E85E00E945D1D81110E94081D0E9475
+:103B2000BB1E8093CD0187E00E945D1D882399F123
+:103B30008BE10E945D1D882351F09091CD0191FB96
+:103B4000882780F921E0822780FB91F922C08EE04E
+:103B50000E945D1D882351F09091CD0192FB882732
+:103B600080F921E0822780FB92F913C080E10E9456
+:103B70005D1D9091CD01882341F093FB882780F94A
+:103B800021E0822780FB93F904C0892F809580FB78
+:103B900090F99093CD018091CD010E94BF1E0E94AB
+:103BA000CD1E8093E00180EE0E945D1D882341F0D0
+:103BB0008091E001982F909590FB80F98093E0012F
+:103BC00089E30E945D1D882359F09091E00191FBEB
+:103BD000882780F921E0822780FB91F99093E0010A
+:103BE00082EE0E945D1D882359F09091E00192FBC6
+:103BF000882780F921E0822780FB92F99093E001E9
+:103C000086EE0E945D1D882359F09091E00193FBA0
+:103C1000882780F921E0822780FB93F99093E001C7
+:103C200083EE0E945D1D882359F09091E00194FB82
+:103C3000882780F921E0822780FB94F99093E001A6
+:103C400085E30E945D1D882359F09091E00195FB6A
+:103C5000882780F921E0822780FB95F99093E00185
+:103C600081E30E945D1D882359F09091E00196FB4D
+:103C7000882780F921E0822780FB96F99093E00164
+:103C800081E10E945D1D882359F09091E00197FB2E
+:103C9000882780F921E0822780FB97F99093E00143
+:103CA0008091E0010E94D11E8091E00187FB88276E
+:103CB00080F980930D0187E20E945D1DC82F8EE17F
+:103CC0000E945D1D8111C2608FE10E945D1D811106
+:103CD000C46080E20E945D1D8111C86081E20E9483
+:103CE0005D1D8111C06182E20E945D1D8111C06273
+:103CF00083E20E945D1D8111C06484E20E945D1D0B
+:103D0000882311F0C06802C0CC2329F08C2F0E94B8
+:103D1000C81E6C2F03C00E94C41E682F70E080E094
+:103D200090E0CF910C94A719CF9108956DEE7EEF9E
+:103D300080E090E00E94EC2460E082E090E00E944D
+:103D4000DE2460E083E090E00E94DE2460E084E016
+:103D500090E00E94DE2460E085E090E00C94DE2498
+:103D600080E090E00E94D82421E08D3E9E4F09F033
+:103D700020E0822F089582E090E00C94D024682FF8
+:103D800082E090E00C94DE2483E090E00C94D02458
+:103D9000682F83E090E00C94DE2484E090E00C94A3
+:103DA000D024682F84E090E00C94DE248091D5012B
+:103DB00080FF0BC06091130185E0689FB001112462
+:103DC00075956795759567952AC081FF09C06091C3
+:103DD000130185E0689FB0011124759567951FC098
+:103DE00082FF07C06091130185E0689FB001112434
+:103DF00016C04091D6014423C9F0609112014617C4
+:103E000088F72091130185E0289F90011124429F9B
+:103E1000C001439F900D112470E00E94A2246038DD
+:103E2000710540F46115710539F002C065E070E07C
+:103E3000862F08958FE7089581E008958091D50138
+:103E400080FF08C06091110170E0759567957595C8
+:103E5000679521C081FF06C06091110170E07595E2
+:103E6000679519C082FF04C06091110170E010C015
+:103E70008091D6018823C1F0609110018617A0F7C8
+:103E800090911101989FC001112470E00E94A2241A
+:103E90006038710528F46115710521F0862F0895A9
+:103EA0008FE7089581E0089561E070E0F4CF803FEE
+:103EB00021F40E94D61E819504C0813F29F40E94FE
+:103EC000D61E8093D9010895823F21F40E94D61E08
+:103ED000819504C0833F29F40E94D61E8093D801A7
+:103EE0000895893F19F40E941E1F05C08A3F31F4CE
+:103EF0000E941E1F81958093DA0108958B3F21F463
+:103F00000E941E1F819504C08C3F29F40E941E1F31
+:103F10008093DB010895843F21F48091D701816073
+:103F200017C0853F21F48091D701826011C0863F80
+:103F300021F48091D70184600BC0873F21F48091E8
+:103F4000D701886005C0883F31F48091D701806136
+:103F50008093D70108958D3F21F48091D501816030
+:103F60000BC08E3F21F48091D501826005C08F3F48
+:103F700029F48091D50184608093D5010895803F14
+:103F800039F48091D90187FF6CC01092D90169C0C2
+:103F9000813F29F48091D9011816BCF362C0909139
+:103FA000D801823F29F497FF5CC01092D80159C014
+:103FB000833F19F41916CCF354C0893F41F4809122
+:103FC000DA0118160CF04DC01092DA014AC08A3F8F
+:103FD00029F48091DA0187FF44C0F6CF8B3F39F492
+:103FE0008091DB0187FF3DC01092DB013AC08C3F1E
+:103FF00029F48091DB011816BCF333C0843F21F40F
+:104000008091D7018E7F17C0853F21F48091D70121
+:104010008D7F11C0863F21F48091D7018B7F0BC02B
+:10402000873F21F48091D701877F05C0883F31F415
+:104030008091D7018F7E8093D70113C08D3F21F4EB
+:104040008091D5018E7F0BC08E3F21F48091D501E8
+:104050008D7F05C08F3F29F48091D5018B7F8093A0
+:10406000D5018091D80181110EC08091D9018111B3
+:104070000AC08091DA01811106C08091DB018111B3
+:1040800002C01092D601089587ED91E00E945A1067
+:104090000E94AE1C9093D4018093D30108951F9386
+:1040A000CF93DF938091D3019091D4010E94BA1CE9
+:1040B0004091D601442321F02091140130E006C044
+:1040C000209115015AE0259F900111248217930732
+:1040D00008F482C08091D8011091D901D091DA0101
+:1040E000C091DB01811107C0111105C0D11103C0BE
+:1040F000CC2309F471C04F3F19F04F5F4093D601B4
+:10410000181624F40E94D61E8093D8018091D801FD
+:1041100087FF05C00E94D61E81958093D801111695
+:1041200024F40E94D61E8093D9018091D90187FF83
+:1041300005C00E94D61E81958093D9016091D80157
+:10414000662339F11091D901112319F1772767FD01
+:104150007095872F972F0E94B32323E333E343E324
+:104160005FE30E9417240E9480236093D801612F8F
+:10417000772767FD7095872F972F0E94B32323E33E
+:1041800033E343E35FE30E9417240E94802360939C
+:10419000D9011D1624F40E941E1F8093DA0180911C
+:1041A000DA0187FF05C00E941E1F81958093DA0106
+:1041B0001C1624F40E941E1F8093DB018091DB01FA
+:1041C00087FF05C00E941E1F81958093DB01DF9150
+:1041D000CF911F910C944420DF91CF911F910895AE
+:1041E000E7EDF1E085E0DF011D928A95E9F7109295
+:1041F000D6011092D5010895833081F128F48130E1
+:1042000059F08230D1F00895853009F449C0B8F1F1
+:10421000863009F456C0089520911501862F90E04C
+:10422000820F911D8F3F910520F4620F609315015D
+:1042300008958FEF80931501089520911401862F22
+:1042400090E0820F911D8F3F910520F4620F6093E3
+:10425000140108958FEF80931401089520911301A4
+:10426000862F90E0820F911D8F3F910520F4620F01
+:104270006093130108958FEF8093130108952091A7
+:104280001201862F90E0820F911D8F3F910520F43F
+:10429000620F6093120108958FEF809312010895C9
+:1042A00020911101862F90E0820F911D8F3F910583
+:1042B00020F4620F6093110108958FEF8093110134
+:1042C000089520911001862F90E0820F911D8F3F5D
+:1042D000910520F4620F6093100108958FEF809391
+:1042E00010010895833011F128F4813049F08230B3
+:1042F00091F00895853081F120F18630C1F1089563
+:1043000080911501681720F4861B8093150108958C
+:1043100010921501089580911401681720F4861BEE
+:10432000809314010895109214010895809113014F
+:10433000681720F4861B80931301089510921301CF
+:10434000089580911201681720F4861B8093120152
+:10435000089510921201089580911101681720F4B8
+:10436000861B809311010895109211010895809188
+:104370001001681720F4861B809310010895109295
+:10438000100108958D3109F442C020F58E3009F4F2
+:1043900079C070F4873009F45EC020F4863009F4E7
+:1043A00042C033C08830D1F18B3009F4A7C02DC092
+:1043B000863109F4A3C038F4803109F46DC081312D
+:1043C00009F47BC022C0893109F498C08B3109F40B
+:1043D0004FC01BC0853309F479C048F4873209F413
+:1043E00075C008F478C0893209F470C00EC08334F7
+:1043F00038F48A3308F071C0883309F47FC005C0EF
+:10440000833409F463C08834C1F080E008950E94C9
+:104410003A230E9443100E94480970C00E94BB1EAC
+:104420000E94CD1E6BC08091CD01817F8E7F8093D5
+:10443000CD0181E08093DD0108950E94AD152FEF3D
+:1044400083ED90E3215080409040E1F700C00000F0
+:104450000E94081D53C09091CD01892F817090FF5B
+:1044600003C0917F9E7F26C091609093CD0146C08E
+:104470009091CD0191FB882780F921E0822780FB74
+:1044800091F913C09091CD0192FB882780F921E02A
+:10449000822780FB92F909C09091CD0193FB882778
+:1044A00080F921E0822780FB93F99093CD01882346
+:1044B00029F191609093CD0108950E94AD158091EE
+:1044C0000D0191E0892780930D0118C061E070E033
+:1044D00080E090E00FC023EE01C027EC280F61E0E0
+:1044E00070E080E090E004C0660F771F881F991F7E
+:1044F0002A95D2F70E94A7190E94AD1581E0089570
+:1045000080E0089580E00895CF93C82F8091DD0169
+:10451000813079F018F08230D1F184C0A0910E0181
+:10452000B0910F018C91813169F0823209F07CC029
+:1045300009C0A0910E01B0910F018C91813111F051
+:10454000823249F48C2F0E94802281111DC08C2F51
+:104550000E94C2211AC08C2F0E948222811114C095
+:10456000C43179F048F4CB3079F0C03109F060C043
+:1045700082E08093DD0108C0C93219F0C83321F010
+:1045800057C01092DD0154C081E0817053C0C93220
+:1045900089F118F5C43171F1A8F4C73009F046C0AB
+:1045A0008AE08093150194E19093140193E0909335
+:1045B00013018093120188E08093110188E28093B7
+:1045C000100134C0CE51C63088F5EC2FF0E0E65D26
+:1045D000FE4F80818093DC0129C0CE34E9F020F4C5
+:1045E000CB3421F56AE013C0C13579F0C235F1F45E
+:1045F00061E00DC08091DC01882319F01092DC018C
+:1046000015C081E08093DD0115C061E006C0809196
+:10461000DC010E94FC200AC06AE08091DC010E945B
+:10462000722104C01092DD0180E004C081E002C06C
+:1046300080E0ABCFCF910895E1E8F0E08081886021
+:1046400080838081816080838FB7F89493E090931A
+:10465000890090ED909388008FBF0895EFE6F0E019
+:104660008081826080830895EFE6F0E080818D7F15
+:1046700080830895EFE6F0E0808192E089278083CF
+:1046800008951F920F920FB60F9211242F933F930C
+:104690004F935F936F937F938F939F93AF93BF934A
+:1046A000EF93FF938091DE019091DF01019690934B
+:1046B000DF018093DE01811103C082E00E9448097E
+:1046C000E091DF01E695E695F0E0E258F74FE491DE
+:1046D0008091DE018E1303C080E00E944809FF91A3
+:1046E000EF91BF91AF919F918F917F916F915F916A
+:1046F0004F913F912F910F900FBE0F901F901895E3
+:1047000004D06894B1118DC0089570D088F09F577F
+:1047100090F0B92F9927B751A0F0D1F0660F771F0D
+:10472000881F991F1AF0BA95C9F712C0B13081F0ED
+:1047300077D0B1E0089574C0672F782F8827B85FCD
+:1047400039F0B93FCCF3869577956795B395D9F74E
+:104750003EF490958095709561957F4F8F4F9F4F58
+:104760000895E89409C097FB3EF490958095709564
+:1047700061957F4F8F4F9F4F9923A9F0F92F96E9AD
+:10478000BB279395F695879577956795B795F11122
+:10479000F8CFFAF4BB0F11F460FF1BC06F5F7F4FBF
+:1047A0008F4F9F4F16C0882311F096E911C07723D1
+:1047B00021F09EE8872F762F05C0662371F096E8DA
+:1047C000862F70E060E02AF09A95660F771F881FA9
+:1047D000DAF7880F9695879597F9089557FD9058C1
+:1047E000440F551F59F05F3F71F04795880F97FBB5
+:1047F000991F61F09F3F79F087950895121613066F
+:104800001406551FF2CF4695F1DF08C0161617069D
+:104810001806991FF1CF86957105610508940895D2
+:10482000E894BB2766277727CB0197F908950BD02B
+:1048300078C069D028F06ED018F0952309F05AC0DE
+:104840005FC01124EECFCADFA0F3959FD1F3950F7F
+:1048500050E0551F629FF001729FBB27F00DB11D04
+:10486000639FAA27F00DB11DAA1F649F6627B00D94
+:10487000A11D661F829F2227B00DA11D621F739F7D
+:10488000B00DA11D621F839FA00D611D221F749F8B
+:104890003327A00D611D231F849F600D211D822FD2
+:1048A000762F6A2F11249F5750408AF0E1F0882319
+:1048B0004AF0EE0FFF1FBB1F661F771F881F915026
+:1048C0005040A9F79E3F510570F014C0AACF5F3F3A
+:1048D000ECF3983EDCF3869577956795B795F79559
+:1048E000E7959F5FC1F7FE2B880F911D96958795E1
+:1048F00097F9089597F99F6780E870E060E0089560
+:104900009FEF80EC089500240A94161617061806E7
+:104910000906089500240A941216130614060506C3
+:104920000895092E0394000C11F4882352F0BB0F54
+:1049300040F4BF2B11F460FF04C06F5F7F4F8F4FB7
+:104940009F4F089597FB072E16F4009407D077FD2C
+:1049500009D00E94BC2407FC05D03EF490958195B7
+:104960009F4F0895709561957F4F0895EE0FFF1F3B
+:104970000590F491E02D0994AA1BBB1B51E107C0DF
+:10498000AA1FBB1FA617B70710F0A61BB70B881FDF
+:10499000991F5A95A9F780959095BC01CD0108956E
+:1049A000F999FECF92BD81BDF89A992780B50895F7
+:1049B000A8E1B0E042E050E00C94F324262FF999EE
+:1049C000FECF1FBA92BD81BD20BD0FB6F894FA9AF2
+:1049D000F99A0FBE019608950E94DE24272F0C94A9
+:1049E000DF24DC01CB01FC01F999FECF06C0F2BD4A
+:1049F000E1BDF89A319600B40D9241505040B8F79D
+:064A00000895F894FFCFB9
+:104A060020024A09D709B40980094D090101BA01F2
+:104A160028080A03140A3F4D36393F08F207BC0737
+:104A2600830716072F0748076107010203040506D7
+:044A36000708090064
:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md index f100dd1c5c..842dc7ee19 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/readme.md +++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md @@ -18,7 +18,7 @@ no rights reserved, use for any purposes, credit me if you are a nice person ![Ordinary base layout](ordinary-base.png) -This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. @@ -45,7 +45,7 @@ The symbol keys are mostly the same as on the default layout, which did a good j The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. -Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with most keys mirrored, but the Delete keys shifted to maintain the directional significance of their arrangement. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the yellow keys, and Enter is right where it should be. +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. ## The Media Layer ## @@ -55,6 +55,7 @@ Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these * The bright green keys are more F-keys * The dark yellow keys signal Web and Audio applications * The light yellow keys signal the operating system +* The uncolored keys do nothing in case you bump them by accident ![Ordinary media layout](ordinary-media.png) @@ -62,14 +63,18 @@ This layer was inspired by the Media layer on the Ergodox EZ but takes it farthe Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. +Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. + ## Switching Between Layers ## -The three Shift keys correspond to three logical layers on top of the ever-present base layer, and are represented in the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. Shift keys work in the expected way: press them and the keys shift to that layer; release them and the keys shift back to the base layer. The Ordinary Layout also features a Shift Lock key to keep a layer active indefinitely. Hold down the Shift Lock key then press any Shift key to lock to that layer. Or, hold down the Shift key and press the Shift Lock key; either way works. To revert to the base layer, use the Shift Lock key again in combination with the Shift key. +The three Shift keys correspond to three logical layers on top of the ever-present base layer, and are represented in the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. Shift keys work in the expected way: press them and the keys shift to that layer; release them and the keys shift back to the base layer. The Ordinary Layout also features a Shift Lock key to keep a layer active indefinitely. Hold down the Shift Lock key then press any Shift key to lock to that layer. Or, hold down the Shift key and press the Shift Lock key; it works either way. To revert to the base layer, use the Shift Lock key again in combination with the Shift key. -This layout attempts to treat the Capitals Shift layer the same as the other two Shift layers, but internally they are different which causes some inconsistencies. For instance, it is possible to switch from any layer to any other layer, and to lock to any layer, *except* it is not possible to go from Media to Symbols. You must exit the Media layer before engaging the Symbols layer. Also, the Caps Lock feature must be triggered by first pressing the Shift Lock key then a Capitals Shift key; it doesn't work if you press the Shift key first (instead you get the secondary symbol associated with the Shift Lock button). +This layout attempts to treat the Capitals Shift layer the same as the other two Shift layers, but internally they are different which causes some inconsistencies. For instance, it is possible to switch from any layer to any other layer, and to lock to any layer, *except* it is not possible to go from Media to Symbols. You must exit the Media layer before engaging the Symbols layer. Also, the Caps Lock feature must be triggered by first pressing the Shift Lock key then a Capitals Shift key; it doesn't work if you press the Shift key first (instead you get the secondary symbol character associated with the Shift Lock button). -## Special Escape Sequence ## +## Special Escape & Backspace Sequences ## -In the Ordinary Layout, the most unsatisfying key location is the Escape key which rightly belongs segregated on its own way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one, in the top left corner, was assigned to the tilde button which is traditionally found in that location. The Escape key is important so it features prominently on the other top corner on the left side of the keyboard, and is always there in all layers. Nevertheless, alas, it isn't Ordinary to put the escape in that different corner! +In the Ordinary Layout, the most unsatisfying key location is the Escape key which rightly belongs segregated on its own way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one, in the top left corner, is home to the tilde (er, grave) which is commonly found there. The Escape key is important so it features prominently on the other top corner on the left side of the keyboard, and is always there in all layers. Nevertheless, alas, it isn't Ordinary to put the escape in that different corner! That tilde key has a second function as the Shift Lock key and that makes possible a special feature. To make this layout as Ordinary as possible, the Escape key can *also* be accessed by pressing Shift Lock then the 1 button right next to it. This easy gesture is a way to partially maintain the ease of flicking your wrist to the left and tapping Escape. This gesture works in all layers. + +Finally, because the special Escape sequence is so natural and useful, on the top right corner of the Ergodox EZ you can do the same gesture with the 0 key to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. These special sequences should feel unremarkably mundane but might prove to be remarkably useful. diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index dffcb21da3..174f26cbe5 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -1,413 +1,329 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" +#include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" #include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define SMLY 3 // media keys -#define NUMB 4 // number keys -#define EGOS 5 // Egoshooter layer - -#define M_CTRL_CMDV 1 -#define M_CTRL_CMDC 2 -#define M_MEH_SH_ACUT 3 -#define M_DE_OSX_PLUS_CTRLALT 12 -#define M_DE_OSX_CIRC_CTRLCMD 13 -#define M_TOGGLE_5 14 -#define M_CTL_SFT_HASH 15 -#define M_LGUI_SHFT 16 - -#define SM_SMILE 4 -#define SM_SMIRK 5 -#define SM_FROWN 6 -#define SM_CRY 7 -#define SM_KISS 8 -#define SM_HEART 9 -#define SM_LAUGH 10 -#define SM_SAD 11 +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 +#define M_CTRL_CMDV 0 +#define M_CTRL_CMDC 1 +#define M_MEH_SH_ACUT 2 +#define M_LGUI_SHFT 3 +#define M_CTL_SFT_HASH 4 +#define M_DE_OSX_CIRC_CTRLCMD 5 +#define M_DE_OSX_PLUS_CTRLALT 6 +#define SM_SMILE 7 +#define SM_SMIRK 8 +#define SM_CRY 9 +#define SM_SAD 10 +#define SM_HEART 11 +#define SM_LAUGH 12 +#define SM_KISS 13 +#define SM_FROWN 14 +#define M_TOGGLE_5 15 +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,-----------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' - * |</L1| ^°/CTRL_CMD | +/CTRL_ALT | UP | DOWN| | Left | Right | CMD-SHFT| ALT-SHIFT | +/L1 | - * `------------------------------------------' `---------------------------------------------' - * ,-------------. ,---------------. - * |`/Meh | Media| | NUM | ´/Hyper | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Back-| Del |------| |------| Enter | Space| - * | Space| | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), - KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, - KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, - KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, - LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, - M(M_MEH_SH_ACUT), TG(MDIA), - KC_HOME, - KC_BSPC,KC_DEL, LT(SMLY,KC_END), - // right hand - M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, - KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, - DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), - KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM,DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, - KC_LEFT, KC_RIGHT,LGUI(KC_LSFT),LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), - TG(NUMB), ALL_T(DE_OSX_ACUT), - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | ' | LEFT| DOWN | RIGHT | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | F13 | F12 | - * ,------|------|------| |------+------+------. - * | | | | | F14 | | | - * | | |------| |------| | | - * | | | | | F15 | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,DE_OSX_LESS,DE_OSX_MORE,DE_OSX_EXLM,DE_OSX_QST, KC_TRNS,KC_TRNS, - KC_TRNS,DE_OSX_HASH,DE_OSX_DLR, DE_OSX_BSLS,DE_OSX_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_OSX_LESS,DE_OSX_PERC,DE_OSX_PIPE,DE_OSX_TILD,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, - DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, - KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), - DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, - KC_F13, KC_F12, - KC_F14, - KC_F15, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | Mute | | | | | | EGOS | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | Left | Down | Right | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, - KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: Smiley layer - * making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using - * keyboard short commands... - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | :-) | ;-) | :-D | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | :-{ | :-( | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| <3 | :-* | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | r| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' - */ -[SMLY] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, - M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -//number pad -[NUMB] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 3: Egoshooter layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | L5 | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | SHIFT | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | CTRL | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | F1 | F2 | | | | - * ,------|------|------| |------+--------+------. - * | | | F3 | | | | | - * | SPACE| CTRL|------| |------| | | - * | | | F4 | | | | | - * `--------------------' `----------------------' - */ -[EGOS] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, - KC_F3, - KC_SPC, KC_LCTL, KC_F4, - // right hand - M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, + M(M_MEH_SH_ACUT), TG(MDIA), + KC_HOME, + KC_BSPC, KC_DEL, LT(SMLY,KC_END), + //right half + M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + TG(NUMB), ALL_T(DE_OSX_ACUT), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), + DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[NUMB]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(SMLY) // FN2 - Momentary Layer 2 (Smiley) + }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint16_t start; - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case 1: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL), END); - } else { - if (timer_elapsed(start) > 150) { - return MACRO(U(LCTRL), END); - } else { - return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); - } - } - break; - case 2: - if (record->event.pressed) { +static uint16_t start; +switch(id) { +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case M_CTRL_CMDC: +//Macro: M_CTRL_CMDC//----------------------- +if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),END); } else { - if (timer_elapsed(start) > 150){ + if (timer_elapsed(start) >150) { return MACRO(U(LCTRL),END); } else { return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); } } - break; - case 3: - if (record->event.pressed) { + +break; +case M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { start = timer_read(); - return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + return MACRO(D(LCTRL),D(LALT),END); } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); } else { - return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); } } - break; - case M_LGUI_SHFT: - if (record->event.pressed){ + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ return MACRO(D(LGUI),D(LSFT),END); }else{ return MACRO(U(LGUI),U(LSFT),END); } - break; - case M_CTL_SFT_HASH: - if (record->event.pressed) { - start=timer_read(); - return MACRO(D(LCTRL),D(LSFT),END); + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(T(GRV),T(3),END); + } + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); + } + +break; +case M_CTL_SFT_HASH: +//Macro: M_CTL_SFT_HASH//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); } else { - if (timer_elapsed(start) > 150){ + if (timer_elapsed(start) >150) { return MACRO(U(LCTRL),U(LSFT),END); } else { return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); } } - break; - case M_DE_OSX_CIRC_CTRLCMD: - if (record->event.pressed) { + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),D(LGUI),END); } else { - if (timer_elapsed(start) > 150){ + if (timer_elapsed(start) >150) { return MACRO(U(LCTRL),U(LGUI),END); } else { - return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); } } - break; - case M_DE_OSX_PLUS_CTRLALT: - if (record->event.pressed) { + +break; +case M_CTRL_CMDV: +//Macro: M_CTRL_CMDV//----------------------- +if (record->event.pressed) { start = timer_read(); - return MACRO(D(LCTRL),D(LALT),END); + return MACRO(D(LCTRL),END); } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LALT),END); + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),END); } else { - return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + return MACRO(U(LCTRL),D(LGUI),T(V),U(LGUI),END); } } - break; - case SM_SMILE: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); - } - break; - case SM_SMIRK: - if (record->event.pressed) { - return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); - } - break; - case SM_CRY: - if (record->event.pressed) { - return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); - } - break; - - case SM_SAD: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); - } - break; - - case SM_HEART: - if (record->event.pressed) { - return MACRO(T(GRV),T(3),END); - } - break; - case SM_LAUGH: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); - } - break; - case SM_KISS: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); - } - break; - case SM_FROWN: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); + } } - break; - case M_TOGGLE_5: - if (record->event.pressed){ - layer_state ^= (1<<5); - layer_state &= (1<<5); - } - break; - } - return MACRO_NONE; + +break; +} +return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -418,36 +334,43 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); +uint8_t layer = biton32(layer_state); - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - default: - // none - break; - } +ergodox_board_led_off(); +ergodox_right_led_1_off(); +ergodox_right_led_2_off(); +ergodox_right_led_3_off(); +switch (layer) { + + case SYMB: + ergodox_right_led_1_on(); + + + break; + case MDIA: + + ergodox_right_led_2_on(); + + break; + case SMLY: + + + ergodox_right_led_3_on(); + break; + case NUMB: + ergodox_right_led_1_on(); + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} }; + diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index c7cb8d8630..e6ce5da90b 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,1197 +1,1235 @@ -:100000000C94F0030C9434040C9434040C943404D5 -:100010000C9434040C9434040C9434040C94340480 -:100020000C9434040C9434040C94210E0C94F30EB0 -:100030000C9434040C9434040C9434040C94340460 -:100040000C9434040C9478230C9434040C943404ED -:100050000C9434040C94091D0C9434040C94340452 -:100060000C9434040C9434040C9434040C94340430 -:100070000C9434040C9434040C9434040C94340420 -:100080000C9434040C9434040C9434040C94340410 -:100090000C9434040C9434040C9434040C94340400 -:1000A0000C9434040C9434040C94340444044E042E -:1000B00066047E04C604CC04ED04D204E804DE0425 -:1000C000E304D804AE049604F204600F820F7010AB -:1000D000820F7010C70FEA0F70103F1052103413C8 -:1000E000341363136313A613E413FD15FD15FD13F9 -:1000F000FD15FE14FE14D115FD15FD15E81501E1E1 -:100100000137023702E10138023801E201250225F8 -:1001100002E20001E10137023702E1013802380151 -:10012000E10130023002E10001E10137023702E172 -:100130000138023801E10107020702E1000135023E -:1001400035012002200001E10137023702E10138C8 -:10015000023801E10125022502E10001E101360238 -:100160003602E10138023801E10125022502E100F1 -:1001700001E10136023602E10138023801E10126CF -:10018000022602E10001E10137023702E1013802F3 -:100190003801E10126022602E10002E002E201301C -:1001A00002300002E002E20001E001E20002E002AF -:1001B000E3016402640002E002E30001E001E30005 -:1001C00002E002E2012E022E02E10002E002E10260 -:1001D000E20001E001E101E20002E001E3010602C8 -:1001E0000602E30002E00001E00002E001E3011981 -:1001F000021902E30002E00001E0000000F0A1F0BB -:10020000A329002B00E200E100358100001E00144C -:100210000004001D710D304D831F001A0016001BD5 -:10022000000C304C00200008000700060052002A95 -:1002300000210015000900190051004A0022001792 -:10024000000A00050000000330E101E3000000E2C5 -:1002500000000002543100E7000000E60000000446 -:100260005423001C000B00110000002E7F240018F6 -:10027000000D00100050004B0025000C000E003651 -:10028000004F002C00260012000F003700E1082864 -:10029000002700130033003871E1044E002D002FB9 -:1002A000003474E50030810000010001000100010C -:1002B00000010000003A003500310001000100019A -:1002C000003B0035022102350001004C003C001EBD -:1002D0000224062202010001003D002D0224022416 -:1002E00004010001003E000100370011040000017C -:1002F000000100010000000100000001000E3001BB -:100300000000000100000068003F002406240224D1 -:100310000400004500400022042502110431026956 -:100320000041002304260264005000010042003511 -:100330000025045200510001004300350226043814 -:10034000004F006A0044001E02310021020100003B -:100350000001000100010001000100000001000196 -:100360000001000100010001000100F400F200FBA7 -:1003700000010001000100F000F100FA000100019D -:10038000000100F500F300FC00010001000100F98C -:1003900000FA00F600000001000100010000000169 -:1003A0000000000100A800010000000100000001A1 -:1003B0000001000100A900AA0000000100010001E5 -:1003C000000100010001000100010001000100AC7A -:1003D000000100B600010001000100AB0050000167 -:1003E00000010001000100520051000100AE0001B7 -:1003F00000010001004F00000001000100010001A8 -:1004000000010000000100010001000100010001E5 -:1004100000010001000100010001000100010001D4 -:1004200000010001000100010001000100010001C4 -:1004300000010001000100010001000100000001B5 -:100440000001000100000001000000010004300173 -:1004500000000001000000010005300630093001F5 -:1004600000000001000A300B3008300100010001DB -:10047000000100073001000100010001000100013E -:100480000001000100010001000100010001000164 -:100490000001000100010001000100010001000055 -:1004A0000001000100010001000100000001000145 -:1004B00000010001000100010001000100500001E5 -:1004C0000001000100010052005100010001000183 -:1004D00000010001004F00010001000100010001C6 -:1004E0000001000100000001000100010000000106 -:1004F00000000001000100010000000100000001F7 -:10050000003F00520051002302000001004000247F -:100510000021001E00270001004100250022001FCD -:1005200000370001004200260023002000360001B1 -:10053000004300300230002402270201004400453D -:1005400000380001000100000001000100E100018D -:1005500000E0000000010001000100010001003D79 -:100560000001000100010001000100E000010001A4 -:10057000000100010001002C000100010001000148 -:100580000001003C00010001000100010000003AF0 -:1005900000010001000000010000003B000E3001DE -:1005A0000000000100000001000100010001000145 -:1005B0000000000100010001000100010001000134 -:1005C0000001000100010001000100010001000123 -:1005D0000001000100010001000100010001000113 -:1005E0000001000100010001000100010001000004 -:1005F0000016034500720067006F0044006F00782A -:1006000000200045005A00000016034500720067F4 -:10061000006F0044006F007800200045005A000081 -:10062000000403090409026D00040100A0FA090492 -:1006300000000103010100092111010001223F0016 -:100640000705810308000A090401000103010200F3 -:10065000092111010001224D000705820308000A4B -:100660000904020001030000000921110100012218 -:1006700036000705830308000A090403000103008C -:10068000000009211101000122390007058403102F -:1006900000011201100100000008EDFE0713010027 -:1006A0000102000105010906A101050719E029E77A -:1006B0001500250195087501810205081901290514 -:1006C00095057501910295017503910105071900C2 -:1006D000297715002501957875018102C00501096A -:1006E00080A101850216010026B7001A01002AB771 -:1006F00000751095018100C0050C0901A101850359 -:10070000160100269C021A01002A9C027510950110 -:100710008100C005010902A1010901A10005091913 -:1007200001290515002501950575018102950175C1 -:100730000381010501093009311581257F95027575 -:1007400008810609381581257F9501750881060500 -:100750000C0A38021581257F950175088106C0C0F5 -:1007600005010906A101050719E029E71500250182 -:100770009508750181029501750881010508190127 -:1007800029059505750191029501750391010507EC -:10079000190029FF150025FF950675088100C00086 -:1007A00000000000000000000000010204060A0F23 -:1007B00017202C3A4A5D71879DB3C7DAE9F5FCFF33 -:1007C000FCF5E9DAC7B39D87715D4A3A2C20170F13 -:1007D0000A06040201000000000000000000000002 -:1007E00011241FBECFEFDAE0DEBFCDBF04B603FE9B -:1007F00024C08091F0019091F101A091F201B0919B -:10080000F3018730904BA740B04BB9F41092F00140 -:100810001092F1011092F2011092F30114BE84B70C -:10082000877F84BF88E10FB6F894809360001092B0 -:1008300060000FBEE0E0FFE3099511E0A0E0B1E049 -:10084000E4E7FAE402C005900D92A433B107D9F7AA -:1008500011E0A4E3B1E001C01D92A03FB107E1F7B0 -:100860000E94650B0C9438250C940000462F50E034 -:100870004F30510508F0DEC0DC01FA01EA5AFF4FA3 -:1008800012968C910C94ED24882321F085EE0E9421 -:10089000D111D0C085EE0E949912CCC0882349F0B6 -:1008A0000E94D31C909335018093340188EF91E02E -:1008B000089580913401909135010E94DF1C8739A1 -:1008C00091050CF0A8C08AEE91E00895882349F0C4 -:1008D0000E94D31C909335018093340187EE91E000 -:1008E000089580913401909135010E94DF1C873971 -:1008F00091050CF093C089ED91E00895882349F0AB -:100900000E94D31C909335018093340182ED91E0D5 -:10091000089580913401909135010E94DF1C873940 -:1009200091050CF07EC080EC91E00895882349F099 -:100930000E94D31C90933501809334018BEB91E09E -:10094000089580913401909135010E94DF1C873910 -:1009500091050CF069C08DEA91E00895882349F073 -:100960000E94D31C909335018093340188EA91E072 -:10097000089580913401909135010E94DF1C8739E0 -:1009800091050CF054C08AE991E00895882309F498 -:1009900051C085E891E00895882309F44BC080E7B1 -:1009A00091E00895882309F445C08BE591E008950E -:1009B000882309F43FC086E491E008958823D1F1AB -:1009C0008DE391E008958823A9F188E291E00895EC -:1009D000882381F183E191E00895882359F18EEF16 -:1009E00090E00895882331F18091B3019091B40192 -:1009F000A091B501B091B60120E2822780729927BB -:100A0000AA27BB278093B3019093B401A093B501AB -:100A1000B093B6010FC085EF91E0089584EE91E0A8 -:100A200008958BEC91E0089586EB91E0089583EAB8 -:100A300091E0089580E090E0089508956091B301F9 -:100A40007091B4018091B5019091B6010E94381C5B -:100A500056985E9825982D9826982E9827982F9826 -:100A60008330C1F028F4813041F0823049F008959C -:100A7000843049F0853051F00895259A2D9A0895D3 -:100A8000269A2E9A0895259A2D9A04C0259A2D9A71 -:100A9000269A2E9A279A2F9A08950C941E055698F6 -:100AA0005E9825982D9826982E9827982F988FEF46 -:100AB00090E0909389008093880090938B008093BE -:100AC0008A0090938D0080938C00259A2D9A2FEFA9 -:100AD00080E792E0215080409040E1F700C00000A4 -:100AE000269A2E9A2FEF80E792E021508040904086 -:100AF000E1F700C00000279A2F9A2FEF80E792E0DD -:100B0000215080409040E1F700C0000025982D98CA -:100B10002FEF80E792E0215080409040E1F700C045 -:100B2000000026982E982FEF80E792E02150804019 -:100B30009040E1F700C0000027982F9856985E98E3 -:100B400025982D9826982E9827982F98089589EA09 -:100B50008093800089E08093810024982C983F98AE -:100B60008AB18F748AB96E98479A8BB1806B8BB9B2 -:100B7000769A0E944F050C941D0580E28093000137 -:100B80008091360181110EC00E940C0681E0809395 -:100B900036012FEF83ED90E3215080409040E1F744 -:100BA00000C0000080E40E941206809300018111C1 -:100BB0002EC00E943C0680930001811128C00E9433 -:100BC0003C0680930001811122C08FE30E943C0605 -:100BD0008093000181111BC00E94340680E40E94B2 -:100BE000120680930001811112C08CE00E943C0625 -:100BF0008093000181110BC00E943C06809300018C -:100C0000811105C08FE30E943C06809300010E9481 -:100C100034068091000108951092B9008AE0809313 -:100C2000B800089594EA9093BC009091BC0097FF9F -:100C3000FCCF9091B900987F983021F0903111F05D -:100C400081E008958093BB0084E88093BC0080918C -:100C5000BC0087FFFCCF8091B900887F883111F0FC -:100C6000803471F780E0089584E98093BC0080911E -:100C7000BC0084FDFCCF08958093BB0084E8809382 -:100C8000BC008091BC0087FFFCCF9091B900987F99 -:100C900081E0983209F480E0089584E88093BC00F4 -:100CA0008091BC0087FFFCCF8091BB0008958091AC -:100CB0000001811115C080E40E941206809300019A -:100CC00081110CC082E10E943C06809300018111D9 -:100CD00005C08FEF0E943C06809300010E943406FD -:100CE00084B1807F84B985B1807F85B98AB1837FE3 -:100CF0008AB98BB1837F8BB93E98469808950E943C -:100D0000BD05809300010E94570680B38C7080BBA4 -:100D100081B3836F81BBA8E3B1E0E6E4F1E08EE04C -:100D20008E0F11921D928E13FCCF0C94A705BF92CB -:100D3000CF92DF92EF92FF920F931F93CF93DF93A7 -:100D400080910001882379F0809137018F5F809333 -:100D50003701811108C00E94BD05809300018111F7 -:100D600002C00E944F0508E311E0C0E0D0E0DD249E -:100D7000D39482E0C82EEE24E394F12CC730D10541 -:100D800000F580910001811164C080E40E94120688 -:100D900080930001811112C082E10E943C06809381 -:100DA000000181110BC0C7010C2E01C0880F0A94ED -:100DB000EAF780950E943C06809300010E94340669 -:100DC00048C0CA30A1F028F4C83059F0C93061F0E9 -:100DD00005C0CC3089F070F0CD3089F0209A289889 -:100DE00010C0219A29980DC0229A2A980AC0239AE5 -:100DF0002B9807C0529A01C0539A5B9802C03E9A42 -:100E0000469890EA9A95F1F79FB1799902C082E0ED -:100E100001C080E091709D25982B7C9902C084E0F0 -:100E200001C080E0892B7D9902C038E001C030E02C -:100E3000832B7E9902C020E101C020E0822B9FB16C -:100E40009095991F9927991F9295990F907E892BBC -:100E50000FC080910001811149C080E40E941206F8 -:100E600080930001882379F1B12C0E9434068B2DE8 -:100E7000F8019081981719F08083C09201010E94B7 -:100E8000570621960F5F1F4FCE30D10509F076CF60 -:100E900080910101882361F18150809301018823B1 -:100EA00039F08FE99FE00197F1F700C0000020C002 -:100EB000A6E4B1E0E8E3F1E0CF01825F91919D9378 -:100EC0008E13FCCF15C083E10E943C068093000185 -:100ED0008111CACF81E40E94120680930001811122 -:100EE000C3CF0E944D06B82EB094BFCF80E0C0CFD4 -:100EF0000E944D0581E0DF91CF911F910F91FF90EE -:100F0000EF90DF90CF90BF900895E82FF0E0EA5B7C -:100F1000FE4F8081089508958B3B910578F4883ABF -:100F2000910540F5853A9105D0F48430910508F09B -:100F3000B1C08130910509F4ADC06BC0803E910510 -:100F400008F467C0883E910508F4A4C09C01205FA6 -:100F500031092031310508F05CC090650895853A6B -:100F6000910509F459C0863A910509F058C082E804 -:100F700090E40895883A910509F454C0893A91059E -:100F800009F453C08A3A910509F452C08B3A91058D -:100F900009F451C08C3A910509F450C08D3A91057D -:100FA00009F44FC0803B910509F44EC08E3A91057B -:100FB00009F44DC08F3A910509F44CC0813B91056D -:100FC00009F44BC0823B910509F44AC0833B91056B -:100FD00009F449C0843B910509F448C0853B91055B -:100FE00009F447C0863B910509F446C0873B91054B -:100FF00009F445C0883B910509F444C0893B91053B -:1010000009F443C08A3B910509F442C080E094E4AE -:10101000089580E090E0089581E890E4089583E8E1 -:1010200090E4089582EE94E4089589EE94E408959E -:101030008AEE94E4089585EB94E4089586EB94E4B5 -:10104000089587EB94E408958CEC94E408958DEC76 -:1010500094E4089583E895E408958AE895E4089572 -:1010600082E995E4089584E995E4089581E296E49F -:10107000089583E296E4089584E296E4089585E273 -:1010800096E4089586E296E4089587E296E408954A -:101090008AE296E40895089596E0799FF00111247C -:1010A00094E5899FE00DF11D1124E60FF11DEE0F6F -:1010B000FF1FEF5FFD4F859194910895880F991F51 -:1010C000FC01E558FF4F859194910895880F991F71 -:1010D000FC01E550FE4F85919491089526E0729FA2 -:1010E000F001112444E5849FE00DF11D1124E60F69 -:1010F000F11DEE0FFF1FEF5FFD4F859194919C0155 -:101100003A9521154FE1340708F41AC13F512115D2 -:10111000304120F49F700E94660808959C0130536E -:101120002115304118F49927906C0895811520E518 -:10113000920769F40E941F164FEF84E39CE0415030 -:1011400080409040E1F700C000000C942E1D8130DB -:1011500020E5920731F48091CE0181608093CE0129 -:1011600008959C0130552115304108F051C0292FB8 -:1011700033272F70332721303105D9F4AC01437068 -:10118000552702C0220F331F4A95E2F73C68AC0195 -:1011900064E0440F551F6A95E1F744275370242BF0 -:1011A000352B73E0880F991F7A95E1F780769927A0 -:1011B0001DC02230310529F4982F8827816F906A4D -:1011C000089523303105A9F4AC014370552721E07F -:1011D00030E002C0220F331F4A95E2F73C6843E03B -:1011E000880F991F4A95E1F7807E9770822B932B89 -:1011F000089524303105E1F4AC014370552721E016 -:1012000030E002C0220F331F4A95E2F73A68E7CF79 -:101210009C0130572115304118F49F709062089559 -:101220009C0130582115304118F49F70906A089540 -:10123000803E9105E0F4803C910558F5813391059D -:1012400009F46FC048F48932910509F463C08A3209 -:10125000910509F46DC072C089339105E9F08238B7 -:101260009105D1F08533910509F44DC067C0833EE7 -:10127000910581F138F4803E9105B9F0823E9105E7 -:10128000D9F05CC0863E910561F1873E9105A1F1E0 -:1012900055C00E945E0808952091E10120FD02C022 -:1012A00021FF4CC080EE90E049C08091E10180FFB9 -:1012B000F9CF89E390E042C08091E10182FF0EC046 -:1012C0008091E10184FF03C080E090E037C083EEAD -:1012D00090E034C08091E10182FFF2CF82EE90E095 -:1012E0002DC08091E10183FF0BC08091E10184FD5D -:1012F000EBCF87EE90E022C08091E10183FFF5CF34 -:1013000086EE90E01BC08091E10185FF07C089E275 -:1013100090E014C08091E10185FFF9CF85E390E072 -:101320000DC08091E10186FF07C08AE290E006C00F -:101330008091E10186FFF9CF81E390E00E948C0764 -:10134000089508950C94A109809164010895CF93A4 -:10135000DF9300D01F92CDB7DEB79C018091E701EB -:10136000843019F593E099833B832A839093E900B5 -:101370008FEF9091E800815095FD06C095ED9A950C -:10138000F1F700008111F5CF8091E80085FF0DC0D5 -:1013900040E050E063E070E0CE0101960E94110C45 -:1013A0008091E8008E778093E8000F900F900F9067 -:1013B000DF91CF910895CF93DF9300D01F92CDB7E7 -:1013C000DEB72091E701243021F522E029839B83B9 -:1013D0008A8383E08093E9008FEF9091E800815049 -:1013E00095FD06C095ED9A95F1F700008111F5CFB6 -:1013F0008091E80085FF0DC040E050E063E070E0C0 -:10140000CE0101960E94110C8091E8008E778093A6 -:10141000E8000F900F900F90DF91CF9108952091E9 -:10142000E7012430F1F422E02093E9002FEF30911E -:10143000E800215035FD06C035ED3A95F1F7000082 -:101440002111F5CF2091E80025FF0BC040E050E0CE -:1014500065E070E00E94110C8091E8008E77809327 -:10146000E8000895CF93DF93EC019091E701943069 -:1014700009F046C080910C018823D9F080910D01BC -:101480008823B9F09093E9008FEF9091E8008150A4 -:1014900095FD06C095E19A95F1F700008111F5CF11 -:1014A0008091E80085FF2CC040E050E060E170E0F2 -:1014B00017C081E08093E9008FEF9091E8008150A0 -:1014C00095FD06C095ED9A95F1F700008111F5CFD5 -:1014D0008091E80085FF14C040E050E068E070E0D3 -:1014E000CE010E94110C8091E8008E778093E80075 -:1014F00080E1FE01A4E5B1E001900D928A95E1F74B -:10150000DF91CF9108958091E601811109C00E9479 -:10151000A60D0E94030E8091E20084608093E20099 -:1015200008951092E601089508950C9465230E9491 -:10153000C41C0E946B230E94A9100C94A20942E0D3 -:1015400061EC81E00E94200D42E061EC82E00E94AB -:10155000200D42E061EC83E00E94200D42E161EC4D -:1015600084E00C94200D8091E901833009F455C08A -:1015700030F4813071F0823009F48EC008958A30E1 -:1015800009F47AC08B3009F460C0893009F09CC03E -:1015900020C08091E801813A09F096C08091E8006E -:1015A000877F8093E8008091EC019091ED01892B79 -:1015B00021F460E184E591E003C060E080E090E028 -:1015C00070E00E945C0C8091E8008B778093E800CB -:1015D00008958091E801813209F076C08091EC0194 -:1015E0009091ED01009719F0039709F06DC080917B -:1015F000E800877F8093E8008091E80082FD05C0C5 -:101600008091E7018111F8CF5FC08091F100809354 -:1016100064018091E8008B7753C08091E801813AA2 -:1016200009F052C08091EC019091ED01892B09F0F5 -:101630004BC08091E800877F8093E8008091E800AC -:1016400080FFFCCF80910C0136C08091E80181328F -:10165000D9F58091EC019091ED01892BA9F580914C -:10166000E800877F8093E8000E94550D8091EA0191 -:1016700080930C010C941F168091E801813221F5B2 -:101680008091E800877F8093E8000E94550D80914B -:10169000EB018093650108958091E801813AA1F4FE -:1016A0008091E800877F8093E8008091E80080FFC8 -:1016B000FCCF809165018093F1008091E8008E77E6 -:1016C0008093E8000C94550D089584B7877F84BFFC -:1016D00088E10FB6F89480936000109260000FBE0E -:1016E00090E080E80FB6F8948093610090936100D9 -:1016F0000FBE0E94F8100E94A60D0E94030E80915A -:10170000E20084608093E20078940E9489100E9435 -:10171000FA1082E091E00E94A4100E94532380916D -:10172000E701853069F40E94881C8091E5018823D7 -:10173000B1F30E94B01C882391F30E94FB0BEFCF02 -:101740000E940011ECCF292F332723303105C9F037 -:1017500064F42130310581F02230310509F043C0B5 -:101760008DE690E025E236E042C021323105F1F00D -:101770002232310541F137C082E190E022E936E0C2 -:1017800036C099278130910541F08230910541F0B2 -:10179000892B49F5E1E2F6E005C0E9E0F6E002C098 -:1017A000E1EFF5E0849190E09F0121C06430D8F42E -:1017B000E62FF0E0EE0FFF1FEE5DFE4F208131813E -:1017C00089E090E014C0643070F470E0FB01EE0F2B -:1017D000FF1FE65EFE4F20813181FB01EA5EFE4F76 -:1017E000808190E004C080E090E020E030E0FA01E9 -:1017F00031832083089580E189BD82E189BD09B4E8 -:1018000000FEFDCF8091D8008F7D8093D80080911D -:10181000E00082608093E0008091E00081FDFCCFD9 -:101820000895CF92DF92EF92FF920F931F93CF9381 -:10183000DF93EC018B016A010E94740D811133C0AA -:10184000C114D10439F0F60180819181081B190B74 -:10185000C80FD91FE12CF12C0115110519F1809148 -:10186000E80085FD16C08091E8008E778093E8003F -:10187000C114D10449F0F60180819181E80EF91E6E -:10188000F182E08285E00FC00E94740D882321F36D -:101890000AC089918093F10001501109FFEFEF1AFE -:1018A000FF0ADACF80E0DF91CF911F910F91FF9077 -:1018B000EF90DF90CF9008952091EE013091EF01ED -:1018C0002617370748F06115710539F42091E800B3 -:1018D0002E772093E80001C0B90140E06115710541 -:1018E000A9F12091E701222309F443C0253009F42E -:1018F00042C02091E80023FD40C02091E80022FD75 -:1019000032C02091E80020FFE9CF4091F300209100 -:10191000F20030E0342BFC01CF016115710559F064 -:101920002830310540F481918093F10061507109B4 -:101930002F5F3F4FF1CF41E02830310509F040E003 -:101940002091E8002E772093E800C8CF4111C9CF3D -:101950000AC08091E701882361F0853061F08091B1 -:10196000E80083FD0AC08091E80082FFF2CF80E0AA -:10197000089582E0089583E0089581E0089520911C -:10198000EE013091EF012617370748F06115710518 -:1019900039F42091E8002E772093E80001C0B901C6 -:1019A000FC0120E06115710591F18091E701882328 -:1019B00009F440C0853009F43FC08091E80083FD00 -:1019C0003DC08091E80082FD2FC08091E80080FF3B -:1019D000E9CF2091F3008091F20090E0922B611505 -:1019E000710559F08830910540F424912093F1005D -:1019F0003196615071090196F2CF21E0089709F004 -:101A000020E08091E8008E778093E800CBCF211111 -:101A1000CCCF0AC08091E701882361F0853061F066 -:101A20008091E80083FD0AC08091E80082FFF2CF38 -:101A300080E0089582E0089583E0089581E00895AC -:101A4000982F973058F59093E900981739F07091D6 -:101A5000EC002091ED005091F00003C0242F762F70 -:101A600050E021FF19C03091EB003E7F3093EB0036 -:101A70003091ED003D7F3093ED003091EB0031600F -:101A80003093EB007093EC002093ED005093F00046 -:101A90002091EE0027FF07C09F5FD3CF8F70809308 -:101AA000E90081E0089580E008958091E80187FFD2 -:101AB00011C08091E80082FD05C08091E70181118D -:101AC000F8CF11C08091E8008B770BC08091E701BF -:101AD000882349F08091E80080FFF8CF8091E800EA -:101AE0008E778093E80008952091E4003091E5001E -:101AF00095E64091EC00842F817040FF22C08091D8 -:101B0000E80080FD1CC08091E701882391F08530BA -:101B100091F08091EB0085FD10C04091E400509160 -:101B2000E5004217530729F39A01915011F784E019 -:101B3000089582E0089583E0089581E0089580E0AB -:101B400008954091E80042FFDECF08950E94140EF0 -:101B50000E941C0EE0EEF0E0808181608083E8ED61 -:101B6000F0E080818F77808319BCA7EDB0E08C9185 -:101B70008E7F8C9380818F7E80831092E601089502 -:101B80000F931F93CF93DF930E94140E0E941C0E9D -:101B9000C8EDD0E088818F778883888180688883CA -:101BA00088818F7D888319BC1092E7011092E30130 -:101BB0001092E5011092E40100EE10E0F80180813E -:101BC0008B7F808388818160888342E060E080E051 -:101BD0000E94200DE1EEF0E080818E7F8083E2EEB6 -:101BE000F0E0808181608083808188608083F8015B -:101BF00080818E7F8083888180618883DF91CF910F -:101C00001F910F910895E8EDF0E080818F7E808331 -:101C1000E7EDF0E080818160808384E082BF81E035 -:101C20008093E6010C94C00DE8EDF0E080818E7F9A -:101C300080831092E20008951092DA001092E10081 -:101C400008951F920F920FB60F9211242F933F9376 -:101C50004F935F936F937F938F939F93AF93BF93B4 -:101C6000EF93FF938091E10082FF0BC08091E2002F -:101C700082FF07C08091E1008B7F8093E1000E948A -:101C800088108091DA0080FF1FC08091D80080FF0B -:101C90001BC08091DA008E7F8093DA008091D9009A -:101CA00080FF0DC080E189BD82E189BD09B400FEDD -:101CB000FDCF81E08093E7010E94830A05C019BC33 -:101CC0001092E7010E94910A8091E10080FF19C003 -:101CD0008091E20080FF15C08091E2008E7F8093AA -:101CE000E2008091E20080618093E2008091D80060 -:101CF00080628093D80019BC85E08093E7010E9440 -:101D0000950A8091E10084FF30C08091E20084FF59 -:101D10002CC080E189BD82E189BD09B400FEFDCF00 -:101D20008091D8008F7D8093D8008091E1008F7ED4 -:101D30008093E1008091E2008F7E8093E2008091A9 -:101D4000E20081608093E2008091E301882311F03A -:101D500084E007C08091E30087FD02C081E001C0FC -:101D600083E08093E7010E94970A8091E10083FF5E -:101D700029C08091E20083FF25C08091E100877F28 -:101D80008093E10082E08093E7011092E30180916B -:101D9000E1008E7F8093E1008091E2008E7F80934E -:101DA000E2008091E20080618093E20042E060E026 -:101DB00080E00E94200D8091F00088608093F00008 -:101DC0000E94940AFF91EF91BF91AF919F918F91E3 -:101DD0007F916F915F914F913F912F910F900FBE27 -:101DE0000F901F9018951F920F920FB60F9211240B -:101DF0002F933F934F935F936F937F938F939F9313 -:101E0000AF93BF93CF93DF93EF93FF93C091E9001C -:101E1000CF708091EC00D82FD17080FDD0E8109267 -:101E2000E9008091F000877F8093F00078940E9411 -:101E3000370F1092E9008091F00088608093F000E5 -:101E4000CD2BCF70C093E900FF91EF91DF91CF913F -:101E5000BF91AF919F918F917F916F915F914F91C2 -:101E60003F912F910F900FBE0F901F9018951F93C9 -:101E7000CF93DF93CDB7DEB7AA970FB6F894DEBF46 -:101E80000FBECDBFE8EEF1E088E08E0F9091F1003B -:101E900091938E13FBCF0E94B30A8091E80083FFD9 -:101EA0001FC18091E8019091E901492F50E04A302B -:101EB000510508F015C1FA01EB59FF4F0C94ED24C0 -:101EC000803881F0823809F00BC18091EC018F706D -:101ED0008093E9008091EB0085FB882780F91092C0 -:101EE000E90006C08091E4019091E50191118260C2 -:101EF0009091E800977F9093E8008093F100109212 -:101F0000F100C8C0282F2D7F09F0EAC0882319F0FE -:101F1000823061F0E5C08091EA01813009F0E0C0D3 -:101F2000933009F080E08093E5012BC08091EA01B5 -:101F3000811127C08091EC018F7009F4D1C080938A -:101F4000E9002091EB0020FF1CC0933021F4809128 -:101F5000EB00806214C09091EB0090619093EB00D5 -:101F600021E030E0A90102C0440F551F8A95E2F735 -:101F70004093EA001092EA008091EB008860809321 -:101F8000EB001092E9008091E800877F86C0811104 -:101F9000A7C01091EA011F778091E3008078812B20 -:101FA0008093E3008091E800877F8093E8000E949F -:101FB000550D8091E80080FFFCCF8091E3008068A0 -:101FC0008093E300111102C082E001C083E080939E -:101FD000E70186C08058823008F082C08091EA0113 -:101FE0009091EB018C3D53E0950779F583E08A836E -:101FF0008AE289834FB7F894DE01139620E03EE031 -:1020000051E2E32FF0E050935700E49120FF03C02A -:10201000E295EF703F5FEF708E2F90E0EA3010F0A6 -:10202000C79601C0C0968D939D932F5F243149F7C9 -:102030004FBF8091E800877F8093E8006AE270E0FC -:10204000CE0101960E945C0C14C0AE014F5F5F4F41 -:102050006091EC010E94A30BBC01892B09F440C0E4 -:102060009091E800977F9093E80089819A810E947F -:10207000BF0C8091E8008B778093E80031C08038F6 -:1020800079F58091E800877F8093E8008091E301F3 -:102090008093F1008091E8008E778093E8000E94A1 -:1020A000550D1EC081111CC09091EA019230C0F400 -:1020B0008091E800877F8093E8009093E3010E947D -:1020C000550D8091E301811106C08091E30087FDE9 -:1020D00002C081E001C084E08093E7010E949F0A72 -:1020E0008091E80083FF0AC08091E800877F809399 -:1020F000E8008091EB0080628093EB00AA960FB617 -:10210000F894DEBF0FBECDBFDF91CF911F91089530 -:102110000895CF938091E7018823A1F0C091E90051 -:10212000CF709091EC00892F817090FD80E8C82BD2 -:102130001092E9008091E80083FD0E94370FCF7074 -:10214000C093E900CF91089590936B0180936A0149 -:102150000895E0916A01F0916B01309721F00190B0 -:10216000F081E02D099480E00895E0916A01F091FA -:102170006B01309721F00280F381E02D09940895DE -:10218000E0916A01F0916B01309721F00480F581B4 -:10219000E02D09940895209168013091690182171A -:1021A000930771F09093690180936801E0916A014F -:1021B000F0916B01309721F00680F781E02D0994B2 -:1021C000089520916601309167018217930771F09D -:1021D0009093670180936601E0916A01F0916B0131 -:1021E000309721F00084F185E02D09940895089539 -:1021F0000C94F7100E94CA1C0E947F060C94901D3C -:10220000CF92DF92EF92FF920F931F93CF93DF93C2 -:10221000CDB7DEB72B970FB6F894DEBF0FBECDBF9C -:102220000E9497068DE6C82E81E0D82E00E010E0CF -:10223000E02E802F0E948507F60141916F01F42E58 -:10224000F826B1F40F5F1F4F0E30110589F78FEF9D -:1022500089838A831B820E94D31C8160782F9D838F -:102260008C8349815A816B818D810E94A31140C06A -:102270009091CE0191FF04C08B870E948B078B85C4 -:1022800020E030E04F2D50E0922FBA01022E02C024 -:10229000759567950A94E2F760FF24C02E83EF825C -:1022A00021E030E0690102C0CC0CDD1C9A95E2F718 -:1022B00090E08C219D21892B09F420E028870E9441 -:1022C000D31C8160782F9A8789874E815F816885CA -:1022D0008A850E94A311F801E359FE4F8081C82628 -:1022E000C08206C02F5F3F4F2630310569F6AACF66 -:1022F0000E94772010916C010E94A9101817A1F07C -:102300000E94A91080936C012B960FB6F894DEBF43 -:102310000FBECDBFDF91CF911F910F91FF90EF9036 -:10232000DF90CF900C94A2092B960FB6F894DEBFE5 -:102330000FBECDBFDF91CF911F910F91FF90EF9016 -:10234000DF90CF900895CF93DF93CDB7DEB72B9773 -:102350000FB6F894DEBF0FBECDBF4F835887698795 -:102360007A878B87DE01119686E0FD0111928A95AE -:10237000E9F785E0FE01379601900D928A95E1F725 -:1023800049815A816B817C818D819E810E94B9181F -:102390002B960FB6F894DEBF0FBECDBFDF91CF9165 -:1023A0000895CF93882309F4C2C0C82F823859F406 -:1023B0000E94A91081FDBBC089E30E94551B0E94A9 -:1023C000121C89E30CC0833879F40E94A91080FDA7 -:1023D000AEC083E50E94551B0E94121C83E50E943B -:1023E000971BCF910C94121C843859F40E94A910A9 -:1023F00082FD9DC087E40E94551B0E94121C87E449 -:10240000EECF8CEF8C0F813A48F48C2F0E94B822CB -:1024100081118DC08C2F0E94551BE3CF80E28C0F61 -:10242000883048F4C77081E001C0880FCA95EAF788 -:102430000E94DB1BD6CF8BE58C0F833078F4C53A36 -:1024400029F0C63A31F083E890E005C081E890E0D9 -:1024500002C082E890E0CF910C94CB1088E58C0FFD -:10246000833108F064C0C83A39F1C93A41F1CA3A37 -:1024700049F1CB3A51F1CC3A59F1CD3A61F1C03B37 -:1024800069F1CE3A71F1CF3A79F1C13B81F1C23BAA -:1024900089F1C33B91F1C43B99F1C53BA1F1C63B26 -:1024A000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B86 -:1024B000C9F180E090E038C082EE90E035C089EE4E -:1024C00090E032C08AEE90E02FC085EB90E02CC007 -:1024D00086EB90E029C087EB90E026C08CEC90E082 -:1024E00023C08DEC90E020C083E891E01DC08AE815 -:1024F00091E01AC082E991E017C084E991E014C02C -:1025000081E292E011C083E292E00EC084E292E0A8 -:102510000BC085E292E008C086E292E005C087E247 -:1025200092E002C08AE292E0CF910C94E110CF9148 -:102530000895882309F44BC0823859F40E94A910E9 -:1025400081FF45C089E30E94551B0E94121C89E34C -:102550000CC0833871F40E94A91080FF38C083E555 -:102560000E94551B0E94121C83E50E94971B0C942D -:10257000121C843859F40E94A91082FF28C087E4F5 -:102580000E94551B0E94121C87E4EFCF9CEF980F0E -:10259000913A58F390E2980F983050F4877091E098 -:1025A00001C0990F8A95EAF7892F0E94E11BDFCFBE -:1025B0009BE5980F933020F480E090E00C94CB10D2 -:1025C000885A833120F480E090E00C94E110089563 -:1025D000882321F00E94DB1B0C94121C0895882391 -:1025E00021F00E94E11B0C94121C0895BF92CF921F -:1025F000DF92EF92FF920F931F93CF93DF9300D060 -:1026000000D000D0CDB7DEB725E0FC01DE01119689 -:1026100001900D922A95E1F7FC0140813181028100 -:10262000258122952F7063817481672B09F4E5C29F -:102630003F3F19F44F3F09F4E0C27C0149833A83DC -:1026400089819A812E830E94141B182FB92E0E9413 -:10265000131B0E94DA19EB2DE295EF70F0E0E159BF -:10266000FF4F2E810C94ED248B2D807F9B2D9F702E -:10267000F92E882319F0F29480EFF822002349F014 -:10268000FF2009F467C28F2D0E94EB1B0E94121CD1 -:1026900061C2812F0E949912FF2009F4AEC28F2DD2 -:1026A0000E94F11B26960FB6F894DEBF0FBECDBF79 -:1026B000DF91CF911F910F91FF90EF90DF90CF901E -:1026C000BF900C94121C3B2D307F8B2D8F703032BD -:1026D00011F08295807F112319F0113021F12CC067 -:1026E0000023B9F0222309F4A0C1213009F09DC1D3 -:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 -:102700001F910F91FF90EF90DF90CF90BF900C94AE -:10271000FB1B222319F0213009F46FC28E830E9423 -:10272000FE1B8E8196C1002321F0223008F065C285 -:102730007CC1211162C28DC1002321F0222309F442 -:1027400074C108C2222309F484C119C22B2D269515 -:102750002695237030E02115310521F02130310517 -:10276000D1F04BC2002321F0812F9B2D937002C02A -:1027700080E090E026960FB6F894DEBF0FBECDBF86 -:10278000DF91CF911F910F91FF90EF90DF90CF904D -:10279000BF900C94CB10002321F0812F9B2D9370C0 -:1027A00002C080E090E026960FB6F894DEBF0FBE20 -:1027B000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1027C000CF90BF900C94E110812F002319F00E944C -:1027D0007F1F02C00E94E71F26960FB6F894DEBF47 -:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 -:1027F000DF90CF90BF900C946C208B2D837009F0EC -:102800007BC00111FAC1812F829586958770880F50 -:10281000880F912F9F70C92ED12CE12CF12C082EFE -:1028200004C0CC0CDD1CEE1CFF1C0A94D2F714FF74 -:1028300012C04FE050E060E070E004C0440F551F4C -:10284000661F771F8A95D2F7CB01BA016095709504 -:102850008095909503C060E070E0CB012B2D26950C -:1028600026952370422F50E042305105D9F0433075 -:10287000510569F16C297D298E299F294130510527 -:1028800051F126960FB6F894DEBF0FBECDBFDF9193 -:10289000CF911F910F91FF90EF90DF90CF90BF905D -:1028A0000C94011A6C297D298E299F2926960FB632 -:1028B000F894DEBF0FBECDBFDF91CF911F910F9176 -:1028C000FF90EF90DF90CF90BF900C941D1A0E9464 -:1028D000011AC701B60126960FB6F894DEBF0FBEE7 -:1028E000CDBFDF91CF911F910F91FF90EF90DF90BF -:1028F000CF90BF900C94E519002319F08B2D8170B7 -:1029000001C08695882309F478C1812F8295869528 -:102910008770880F880F912F9F70C92ED12CE12CC2 -:10292000F12C082E04C0CC0CDD1CEE1CFF1C0A94FC -:10293000D2F714FF12C04FE050E060E070E004C036 -:10294000440F551F661F771F8A95D2F7CB01BA0136 -:10295000609570958095909503C060E070E0CB0124 -:102960002B2D269526952370422F50E0423051059D -:10297000D9F04330510569F16C297D298E299F29B1 -:102980004130510551F126960FB6F894DEBF0FBEC7 -:10299000CDBFDF91CF911F910F91FF90EF90DF900E -:1029A000CF90BF900C94DB1A6C297D298E299F292A +:100000000C94FC030C9440040C9440040C944004A5 +:100010000C9440040C9440040C9440040C94400450 +:100020000C9440040C9440040C940E0F0C94E00FBC +:100030000C9440040C9440040C9440040C94400430 +:100040000C9440040C94AA240C9440040C94400496 +:100050000C9440040C94391E0C9440040C944004FD +:100060000C9440040C9440040C9440040C94400400 +:100070000C9440040C9440040C9440040C944004F0 +:100080000C9440040C9440040C9440040C944004E0 +:100090000C9440040C9440040C9440040C944004D0 +:1000A0000C9440040C9440040C944004FF046A0433 +:1000B0001605B804C904E7048204AC04B204A6041B +:1000C000E104BD04C3049A04A00450044D106F1051 +:1000D0005D116F105D11B410D7105D112C113F111F +:1000E0002B142B1468146814AB14E91402170217AC +:1000F0000215021703160316D61602170217ED167D +:1001000002E002E2012E022E02E10002E002E10220 +:10011000E20001E001E101E20002E001E301190275 +:100120001902E30002E00001E00002E002E30164E2 +:1001300002640002E002E30001E001E30001E101EA +:1001400037023702E10138023801E10125022502B8 +:10015000E10002E002E1013102310002E002E100CF +:1001600001E001E10001E10137023702E10138025B +:100170003801E10107020702E100013502350120E3 +:1001800002200002E302E10001E301E10001E101DC +:1001900036023602E10138023801E1012602260268 +:1001A000E10001E10137023702E10138023801E1E3 +:1001B0000126022602E10001E10136023602E101D8 +:1001C00038023801E10125022502E10001E1013791 +:1001D000023702E10138023801E20125022502E27C +:1001E0000001E10137023702E10138023801E10183 +:1001F00030023002E10002E002E20130023000028F +:10020000E002E20001E001E20002E001E301060297 +:100210000602E30002E00001E00029002B00E200FA +:10022000E100358100001E00140004001D7105303E +:100230004D831F001A0016001B0006304C002000E2 +:1002400008000700060052002A00210015000900DE +:10025000190051004A00220017000A0005000000A2 +:1002600002300430E3000000E200000002540430D9 +:10027000E7000000E6000000045423001C000B000F +:10028000110000002E7F240018000D001000500007 +:100290004B0025000C000E0036004F002C002600FD +:1002A00012000F003700E108280027001300330078 +:1002B0003871E1044E002D002F003474E5003081C8 +:1002C00000000100010001000100010000003A00EF +:1002D000350031000100010001003B003502210220 +:1002E000350001004C003C001E02240622020100E1 +:1002F00001003D002D0224022404010001003E0003 +:10030000010037001104000001000100010000009D +:100310000100000001000F3001000000010000009A +:1003200068003F0024062402240400004500400029 +:10033000220425021104310269004100230426022F +:1003400064005000010042003500250452005100B5 +:10035000010043003502260438004F006A004400C3 +:100360001E02310021020100000001000100010015 +:100370000100010000000100010001000100010076 +:1003800001000100F400F200FB0001000100010087 +:10039000F000F100FA00010001000100F500F30097 +:1003A000FC00010001000100F900FA00F600000065 +:1003B0000100010001000000010000000100A80090 +:1003C0000100000001000000010001000100A9007F +:1003D000AA0000000100010001000100010001006D +:1003E0000100010001000100AC000100B6000100A5 +:1003F00001000100AB0050000100010001000100FC +:10040000520051000100AE000100010001004F0048 +:1004100000000100010001000100010000000100D6 +:1004200001000100010001000100010001000100C4 +:1004300001000100010001000100010001000100B4 +:1004400001000100010001000100010001000100A4 +:100450000100010001000000010001000100000096 +:100460000100000001000730010000000100000051 +:10047000010008300E300B300100000001000C308C +:100480000A300D30010001000100010009300100B7 +:100490000100010001000100010001000100010054 +:1004A0000100010001000100010001000100010044 +:1004B0000100010001000100000001000100010035 +:1004C0000100010000000100010001000100010025 +:1004D00001000100010050000100010001000100C5 +:1004E00052005100010001000100010001004F0015 +:1004F00001000100010001000100010001000000F5 +:1005000001000100010000000100000001000100E5 +:10051000010000000100000001003F0052005100F6 +:100520002302000001004000240021001E002700DB +:1005300001004100250022001F0037000100420099 +:100540002600230020003600010043003002300066 +:100550002402270201004400450038000100010088 +:10056000000001000100E1000100E00000000100C6 +:1005700001000100010001003D0001000100010037 +:1005800001000100E0000100010001000100010084 +:100590002C00010001000100010001003C000100ED +:1005A00001000100010000003A000100010000000C +:1005B000010000003B000F300100000001000000BE +:1005C0000100010001000100010000000100010024 +:1005D0000100010001000100010001000100010013 +:1005E0000100010001000100010001000100010003 +:1005F00001000100010001000100010001000100F3 +:100600000100010001000100000016034500720016 +:1006100067006F0044006F007800200045005A001A +:10062000000016034500720067006F0044006F0071 +:100630007800200045005A00000004030904090264 +:100640006D00040100A0FA0904000001030101008B +:10065000092111010001223F000705810308000A5A +:100660000904010001030102000921110100012216 +:100670004D000705820308000A0904020001030077 +:10068000000009211101000122360007058303083B +:10069000000A090403000103000000092111010000 +:1006A0000122390007058403100001120110010026 +:1006B000000008EDFE071301000102000105010919 +:1006C00006A101050719E029E71500250195087520 +:1006D0000181020508190129059505750191029509 +:1006E000017503910105071900297715002501956A +:1006F0007875018102C005010980A10185021601FA +:100700000026B7001A01002AB70075109501810074 +:10071000C0050C0901A1018503160100269C021ADF +:1007200001002A9C02751095018100C00501090293 +:10073000A1010901A10005091901290515002501DB +:100740009505750181029501750381010501093047 +:1007500009311581257F95027508810609381581B3 +:10076000257F950175088106050C0A38021581253B +:100770007F950175088106C0C005010906A1010524 +:100780000719E029E71500250195087501810295F3 +:100790000175088101050819012905950575019163 +:1007A000029501750391010507190029FF15002520 +:1007B000FF950675088100C00000000000000000E1 +:1007C000000000010204060A0F17202C3A4A5D714E +:1007D000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DFD +:1007E00087715D4A3A2C20170F0A060402010000A7 +:1007F000000000000000000011241FBECFEFDAE06F +:10080000DEBFCDBF04B603FE24C08091F0019091FD +:10081000F101A091F201B091F3018730904BA74014 +:10082000B04BB9F41092F0011092F1011092F20164 +:100830001092F30114BE84B7877F84BF88E10FB69E +:10084000F89480936000109260000FBEE0E0FFE338 +:10085000099511E0A0E0B1E0E8EDFCE402C00590EC +:100860000D92A433B107D9F711E0A4E3B1E001C0C0 +:100870001D92A03FB107E1F70E94520C0C946A262A +:100880000C940000462F50E04031510508F0F1C0B3 +:10089000DC01FA01EA5AFF4F12968C910C941F2644 +:1008A000882309F4E6C08091B3019091B401A0912E +:1008B000B501B091B60120E2822780729927AA275C +:1008C000BB278093B3019093B401A093B501B0937B +:1008D000B601CFC0882349F00E94031E90933501D2 +:1008E0008093340187E192E00895809134019091E2 +:1008F00035010E940F1E873991050CF0AEC089E0CA +:1009000092E00895882349F00E94031E90933501D8 +:100910008093340184E092E00895809134019091B5 +:1009200035010E940F1E873991050CF099C086EFA2 +:1009300091E00895882309F49CC081EE91E0089528 +:10094000882309F496C08CEC91E00895882309F47B +:1009500090C087EB91E00895882309F48AC082EA69 +:1009600091E00895882309F484C08DE891E008950A +:10097000811179C083E891E00895882309F479C052 +:100980008AE791E00895882309F473C085E691E031 +:100990000895882349F00E94031E909335018093A7 +:1009A000340180E691E00895809134019091350101 +:1009B0000E940F1E873991050CF058C082E591E026 +:1009C0000895882309F455C08DE391E008958823A4 +:1009D00049F00E94031E909335018093340188E30F +:1009E00091E0089580913401909135010E940F1E8D +:1009F000873991050CF040C08AE291E00895882380 +:100A000049F00E94031E909335018093340187E2E0 +:100A100091E0089580913401909135010E940F1E5C +:100A20008739910564F589E191E00895882349F0BB +:100A30000E94031E909335018093340182E191E07E +:100A4000089580913401909135010E940F1E8739DD +:100A50009105C4F480E091E0089584E192E0089566 +:100A60008FEF91E0089588E891E008958BE591E09B +:100A7000089580E090E0089583E391E0089584E292 +:100A800091E008958BE091E0089508956091B3019D +:100A90007091B4018091B5019091B6010E94651DDD +:100AA00056985E9825982D9826982E9827982F98D6 +:100AB0008330C1F028F4813041F0823049F008954C +:100AC000843049F0853051F00895259A2D9A089583 +:100AD000269A2E9A0895259A2D9A04C0259A2D9A21 +:100AE000269A2E9A279A2F9A08950C94460556987E +:100AF0005E9825982D9826982E9827982F988FEFF6 +:100B000090E0909389008093880090938B0080936D +:100B10008A0090938D0080938C00259A2D9A2FEF58 +:100B200080E792E0215080409040E1F700C0000053 +:100B3000269A2E9A2FEF80E792E021508040904035 +:100B4000E1F700C00000279A2F9A2FEF80E792E08C +:100B5000215080409040E1F700C0000025982D987A +:100B60002FEF80E792E0215080409040E1F700C0F5 +:100B7000000026982E982FEF80E792E021508040C9 +:100B80009040E1F700C0000027982F9856985E9893 +:100B900025982D9826982E9827982F98089589EAB9 +:100BA0008093800089E08093810024982C983F985E +:100BB0008AB18F748AB96E98479A8BB1806B8BB962 +:100BC000769A0E9477050C94450580E28093000197 +:100BD0008091360181110EC00E94340681E080931D +:100BE00036012FEF83ED90E3215080409040E1F7F4 +:100BF00000C0000080E40E943A0680930001811149 +:100C00002EC00E94640680930001811128C00E94BA +:100C1000640680930001811122C08FE30E94640664 +:100C20008093000181111BC00E945C0680E40E9439 +:100C30003A0680930001811112C08CE00E94640684 +:100C40008093000181110BC00E9464068093000113 +:100C5000811105C08FE30E946406809300010E9409 +:100C60005C068091000108951092B9008AE080939B +:100C7000B800089594EA9093BC009091BC0097FF4F +:100C8000FCCF9091B900987F983021F0903111F00D +:100C900081E008958093BB0084E88093BC0080913C +:100CA000BC0087FFFCCF8091B900887F883111F0AC +:100CB000803471F780E0089584E98093BC008091CE +:100CC000BC0084FDFCCF08958093BB0084E8809332 +:100CD000BC008091BC0087FFFCCF9091B900987F49 +:100CE00081E0983209F480E0089584E88093BC00A4 +:100CF0008091BC0087FFFCCF8091BB00089580915C +:100D00000001811115C080E40E943A068093000121 +:100D100081110CC082E10E94640680930001811160 +:100D200005C08FEF0E946406809300010E945C065C +:100D300084B1807F84B985B1807F85B98AB1837F92 +:100D40008AB98BB1837F8BB93E98469808950E94EB +:100D5000E505809300010E947F0680B38C7080BB04 +:100D600081B3836F81BBA8E3B1E0E6E4F1E08EE0FC +:100D70008E0F11921D928E13FCCF0C94CF05BF9253 +:100D8000CF92DF92EF92FF920F931F93CF93DF9357 +:100D900080910001882379F0809137018F5F8093E3 +:100DA0003701811108C00E94E5058093000181117F +:100DB00002C00E94770508E311E0C0E0D0E0DD2426 +:100DC000D39482E0C82EEE24E394F12CC730D105F1 +:100DD00000F580910001811164C080E40E943A0610 +:100DE00080930001811112C082E10E946406809309 +:100DF000000181110BC0C7010C2E01C0880F0A949D +:100E0000EAF780950E946406809300010E945C06C8 +:100E100048C0CA30A1F028F4C83059F0C93061F098 +:100E200005C0CC3089F070F0CD3089F0209A289838 +:100E300010C0219A29980DC0229A2A980AC0239A94 +:100E40002B9807C0529A01C0539A5B9802C03E9AF1 +:100E5000469890EA9A95F1F79FB1799902C082E09D +:100E600001C080E091709D25982B7C9902C084E0A0 +:100E700001C080E0892B7D9902C038E001C030E0DC +:100E8000832B7E9902C020E101C020E0822B9FB11C +:100E90009095991F9927991F9295990F907E892B6C +:100EA0000FC080910001811149C080E40E943A0680 +:100EB00080930001882379F1B12C0E945C068B2D70 +:100EC000F8019081981719F08083C09201010E9467 +:100ED0007F0621960F5F1F4FCE30D10509F076CFE8 +:100EE00080910101882361F1815080930101882361 +:100EF00039F08FE99FE00197F1F700C0000020C0B2 +:100F0000A6E4B1E0E8E3F1E0CF01825F91919D9327 +:100F10008E13FCCF15C083E10E946406809300010C +:100F20008111CACF81E40E943A06809300018111A9 +:100F3000C3CF0E947506B82EB094BFCF80E0C0CF5B +:100F40000E94750581E0DF91CF911F910F91FF9075 +:100F5000EF90DF90CF90BF900895E82FF0E0EA5B2C +:100F6000FE4F808108950895089596E0799FF001DD +:100F7000112494E5899FE00DF11D1124E60FF11D68 +:100F8000EE0FFF1FE65EFD4F859194910895880F47 +:100F9000991FFC01E656FF4F859194910895880FA3 +:100FA000991FFC01E65EFD4F8591949108950F9382 +:100FB0001F93CF93DF93EC018115904350F5C1153A +:100FC00080E2D80708F0B3C0CB3BD10590F4C83A13 +:100FD000D10508F05AC0C53AD10508F04BC0C4305D +:100FE000D10508F0BBC1219709F0B5C101E010E0BF +:100FF000F5C1CF3FD10511F008F0B0C1C03FD10518 +:1010000008F092C0CE01805E9109089708F4A6C14D +:10101000A2C1C11591E5D907A8F4C23020E5D207D5 +:1010200008F09EC0C11580E5D80709F485C008F016 +:1010300091C0C11520E4D20708F08DC1DD278E01D3 +:10104000106CCCC1C11580E8D80758F4C11590E7E1 +:10105000D90708F07CC1C11520E6D20708F422C1E7 +:101060007AC1C11580E9D80708F075C1DF708E011B +:10107000106AB4C1C53AD10509F472C1C63AD105A6 +:1010800009F071C102E810E4A9C1C83AD10509F418 +:101090006DC1C93AD10509F46CC1CA3AD10509F448 +:1010A0006BC1CB3AD10509F46AC1CC3AD10509F438 +:1010B00069C1CD3AD10509F468C1C03BD10509F435 +:1010C00067C1CE3AD10509F466C1CF3AD10509F41A +:1010D00065C1C13BD10509F464C1C23BD10509F426 +:1010E00063C1C33BD10509F462C1C43BD10509F416 +:1010F00061C1C53BD10509F460C1C63BD10509F406 +:101100005FC1C73BD10509F45EC1C83BD10509F4F5 +:101110005DC1C93BD10509F45CC1CA3BD10509F4E5 +:101120005BC100E014E45AC18E01106557C1CE01C5 +:101130009F700E94CF0753C10E9426179FEF24E3A0 +:101140008CE0915020408040E1F700C000000E94F8 +:101150005E1E44C18091CF0181608093CF013EC16A +:101160000E940720811102C00E94ED1F0E942420CE +:1011700090E09093F0018093EF01C23090E5D907A1 +:1011800021F48091EF01816086C0C43020E5D20750 +:1011900021F48091EF0182607EC0C63080E5D807DF +:1011A00021F48091EF01846076C0C83090E5D907C2 +:1011B00019F48091EF0127C0CA3020E5D20721F44D +:1011C0008091EF01806167C0CC3080E5D80721F4C1 +:1011D0008091EF0180625FC0CE3090E5D90721F4A5 +:1011E0008091EF01806457C0C03120E5D20721F41F +:1011F0008091EF0180684FC0C23180E5D80729F4A3 +:101200008091EF018460886046C0C33090E5D907C3 +:1012100021F48091EF018E7F3EC0C53020E5D207DA +:1012200021F48091EF018D7F36C0C73080E5D8076B +:1012300021F48091EF018B7F2EC0C93090E5D90752 +:1012400019F48091EF0126C0CB3020E5D20721F4BC +:101250008091EF018F7E1FC0CD3080E5D80721F44B +:101260008091EF018F7D17C0CF3090E5D90721F431 +:101270008091EF018F7B0FC0C13120E5D20721F4AF +:101280008091EF018F7707C0C331D04531F4809151 +:10129000EF018B7F877F8093EF018091EF010E94A8 +:1012A00028209CC08D2F99278F7099278130910518 +:1012B000D9F49E012370332702C0880F991F2A9505 +:1012C000E2F79C688E0144E0000F111F4A95E1F798 +:1012D00000271370802B912B53E0CC0FDD1F5A9504 +:1012E000E1F7C076DD272FC08230910531F4DC2F85 +:1012F000CC278E01016F106A71C08330910569F4AB +:10130000CE018370992701E010E002C0000F111F89 +:101310008A95E2F7C8019C680FC0049709F05EC087 +:10132000CE018370992701E010E002C0000F111F69 +:101330008A95E2F7C8019A6823E0CC0FDD1F2A9551 +:10134000E1F7C07ED7708C010C2B1D2B47C0DF70DE +:101350008E01106243C000E010E040C08E013EC02C +:1013600001E810E43BC003E810E438C002EE14E4E6 +:1013700035C009EE14E432C00AEE14E42FC005EBC8 +:1013800014E42CC006EB14E429C007EB14E426C0D7 +:101390000CEC14E423C00DEC14E420C003E815E4C5 +:1013A0001DC00AE815E41AC002E915E417C004E9F3 +:1013B00015E414C001E216E411C003E216E40EC005 +:1013C00004E216E40BC005E216E408C006E216E4E7 +:1013D00005C007E216E402C00AE216E4C801DF9184 +:1013E000CF911F910F91089596E0799FF0011124FC +:1013F00094E5899FE00DF11D1124E60FF11DEE0F1C +:10140000FF1FE65EFD4F85919491803E9105E0F4CB +:10141000803C910558F58133910509F46FC048F47B +:101420008932910509F463C08A32910509F46DC0CF +:1014300072C089339105E9F082389105D1F0853386 +:10144000910509F44DC067C0833E910581F138F4E0 +:10145000803E9105B9F0823E9105D9F05CC0863E90 +:10146000910561F1873E9105A1F155C00E94C70722 +:1014700008952091EF0120FD02C021FF4CC080EEB5 +:1014800090E049C08091EF0180FFF9CF89E390E0BF +:1014900042C08091EF0182FF0EC08091EF0184FF76 +:1014A00003C080E090E037C083EE90E034C08091CC +:1014B000EF0182FFF2CF82EE90E02DC08091EF012C +:1014C00083FF0BC08091EF0184FDEBCF87EE90E0AE +:1014D00022C08091EF0183FFF5CF86EE90E01BC024 +:1014E0008091EF0185FF07C089E290E014C08091F0 +:1014F000EF0185FFF9CF85E390E00DC08091EF010A +:1015000086FF07C08AE290E006C08091EF0186FF67 +:10151000F9CF81E390E00E94D707089508950C94D5 +:101520008E0A809164010895CF93DF9300D01F92BB +:10153000CDB7DEB79C018091E601843019F593E0C8 +:1015400099833B832A839093E9008FEF9091E80081 +:10155000815095FD06C095ED9A95F1F70000811137 +:10156000F5CF8091E80085FF0DC040E050E063E0DA +:1015700070E0CE0101960E94FE0C8091E8008E770B +:101580008093E8000F900F900F90DF91CF91089516 +:10159000CF93DF9300D01F92CDB7DEB72091E60145 +:1015A000243021F522E029839B838A8383E0809382 +:1015B000E9008FEF9091E800815095FD06C095ED10 +:1015C0009A95F1F700008111F5CF8091E80085FF31 +:1015D0000DC040E050E063E070E0CE0101960E9453 +:1015E000FE0C8091E8008E778093E8000F900F90BA +:1015F0000F90DF91CF9108952091E6012430F1F40E +:1016000022E02093E9002FEF3091E800215035FDD2 +:1016100006C035ED3A95F1F700002111F5CF209184 +:10162000E80025FF0BC040E050E065E070E00E945C +:10163000FE0C8091E8008E778093E8000895CF93A8 +:10164000DF93EC019091E601943009F046C080915F +:101650000C018823D9F080910D018823B9F0909373 +:10166000E9008FEF9091E800815095FD06C095E16B +:101670009A95F1F700008111F5CF8091E80085FF80 +:101680002CC040E050E060E170E017C081E0809342 +:10169000E9008FEF9091E800815095FD06C095ED2F +:1016A0009A95F1F700008111F5CF8091E80085FF50 +:1016B00014C040E050E068E070E0CE010E94FE0CF3 +:1016C0008091E8008E778093E80080E1FE01A4E538 +:1016D000B1E001900D928A95E1F7DF91CF910895E5 +:1016E0008091E501811109C00E94930E0E94F00EC5 +:1016F0008091E20084608093E20008951092E501F9 +:10170000089508950C9497240E94F41D0E949D242E +:101710000E9496110C948F0A42E061EC81E00E94D5 +:101720000D0E42E061EC82E00E940D0E42E061ECA1 +:1017300083E00E940D0E42E161EC84E00C940D0EFA +:101740008091E801833009F455C030F4813071F0A4 +:10175000823009F48EC008958A3009F47AC08B3043 +:1017600009F460C0893009F09CC020C08091E70175 +:10177000813A09F096C08091E800877F8093E80065 +:101780008091EB019091EC01892B21F460E184E5DB +:1017900091E003C060E080E090E070E00E94490DBD +:1017A0008091E8008B778093E80008958091E701AD +:1017B000813209F076C08091EB019091EC010097A5 +:1017C00019F0039709F06DC08091E800877F80933E +:1017D000E8008091E80082FD05C08091E60181115A +:1017E000F8CF5FC08091F100809364018091E800A0 +:1017F0008B7753C08091E701813A09F052C0809104 +:10180000EB019091EC01892B09F04BC08091E8002D +:10181000877F8093E8008091E80080FFFCCF809173 +:101820000C0136C08091E7018132D9F58091EB013E +:101830009091EC01892BA9F58091E800877F809336 +:10184000E8000E94420E8091E90180930C010C9403 +:1018500026178091E701813221F58091E800877F8A +:101860008093E8000E94420E8091EA018093650116 +:1018700008958091E701813AA1F48091E800877F83 +:101880008093E8008091E80080FFFCCF80916501A3 +:101890008093F1008091E8008E778093E8000C94AB +:1018A000420E089584B7877F84BF88E10FB6F8940D +:1018B00080936000109260000FBE90E080E80FB649 +:1018C000F89480936100909361000FBE0E94E5112F +:1018D0000E94930E0E94F00E8091E200846080933B +:1018E000E20078940E9476110E94E71182E091E074 +:1018F0000E9491110E9485248091E601853069F44F +:101900000E94B51D8091E4018823B1F30E94E01D7F +:10191000882391F30E94E80CEFCF0E94ED11ECCFE9 +:10192000292F332723303105C9F064F421303105E4 +:1019300081F02230310509F043C08DE690E02EE3BE +:1019400036E042C021323105F1F02232310541F159 +:1019500037C082E190E02BEA36E036C0992781302B +:10196000910541F08230910541F0892B49F5EAE378 +:10197000F6E005C0E2E2F6E002C0EAE0F6E08491BB +:1019800090E09F0121C06430D8F4E62FF0E0EE0F24 +:10199000FF1FEE5DFE4F2081318189E090E014C091 +:1019A000643070F470E0FB01EE0FFF1FE65EFE4F47 +:1019B00020813181FB01EA5EFE4F808190E004C00E +:1019C00080E090E020E030E0FA0131832083089548 +:1019D00080E189BD82E189BD09B400FEFDCF80911F +:1019E000D8008F7D8093D8008091E0008260809342 +:1019F000E0008091E00081FDFCCF0895CF92DF925E +:101A0000EF92FF920F931F93CF93DF93EC018B0123 +:101A10006A010E94610E811133C0C114D10439F0F2 +:101A2000F60180819181081B190BC80FD91FE12C89 +:101A3000F12C0115110519F18091E80085FD16C002 +:101A40008091E8008E778093E800C114D10449F0BA +:101A5000F60180819181E80EF91EF182E08285E035 +:101A60000FC00E94610E882321F30AC089918093E0 +:101A7000F10001501109FFEFEF1AFF0ADACF80E001 +:101A8000DF91CF911F910F91FF90EF90DF90CF905A +:101A900008952091ED013091EE012617370748F0A7 +:101AA0006115710539F42091E8002E772093E80044 +:101AB00001C0B90140E061157105A9F12091E6016D +:101AC000222309F443C0253009F442C02091E800E4 +:101AD00023FD40C02091E80022FD32C02091E800A3 +:101AE00020FFE9CF4091F3002091F20030E0342B49 +:101AF000FC01CF016115710559F02830310540F422 +:101B000081918093F100615071092F5F3F4FF1CFB8 +:101B100041E02830310509F040E02091E8002E77BF +:101B20002093E800C8CF4111C9CF0AC08091E601D7 +:101B3000882361F0853061F08091E80083FD0AC060 +:101B40008091E80082FFF2CF80E0089582E008955E +:101B500083E0089581E008952091ED013091EE0138 +:101B60002617370748F06115710539F42091E80010 +:101B70002E772093E80001C0B901FC0120E0611537 +:101B8000710591F18091E601882309F440C0853008 +:101B900009F43FC08091E80083FD3DC08091E800DA +:101BA00082FD2FC08091E80080FFE9CF2091F300F3 +:101BB0008091F20090E0922B6115710559F0883008 +:101BC000910540F424912093F10031966150710900 +:101BD0000196F2CF21E0089709F020E08091E8001B +:101BE0008E778093E800CBCF2111CCCF0AC08091B3 +:101BF000E601882361F0853061F08091E80083FD83 +:101C00000AC08091E80082FFF2CF80E0089582E070 +:101C1000089583E0089581E00895982F973058F54E +:101C20009093E900981739F07091EC002091ED0045 +:101C30005091F00003C0242F762F50E021FF19C0EF +:101C40003091EB003E7F3093EB003091ED003D7F13 +:101C50003093ED003091EB0031603093EB007093E6 +:101C6000EC002093ED005093F0002091EE0027FF50 +:101C700007C09F5FD3CF8F708093E90081E0089504 +:101C800080E008958091E70187FF11C08091E8000E +:101C900082FD05C08091E6018111F8CF11C08091CD +:101CA000E8008B770BC08091E601882349F0809192 +:101CB000E80080FFF8CF8091E8008E778093E800FD +:101CC00008952091E4003091E50095E64091EC0004 +:101CD000842F817040FF22C08091E80080FD1CC0ED +:101CE0008091E601882391F0853091F08091EB009E +:101CF00085FD10C04091E4005091E5004217530764 +:101D000029F39A01915011F784E0089582E0089533 +:101D100083E0089581E0089580E008954091E8000F +:101D200042FFDECF08950E94010F0E94090FE0EEEE +:101D3000F0E0808181608083E8EDF0E080818F7742 +:101D4000808319BCA7EDB0E08C918E7F8C9380814D +:101D50008F7E80831092E50108950F931F93CF9398 +:101D6000DF930E94010F0E94090FC8EDD0E0888127 +:101D70008F77888388818068888388818F7D888336 +:101D800019BC1092E6011092E2011092E401109247 +:101D9000E30100EE10E0F80180818B7F8083888171 +:101DA0008160888342E060E080E00E940D0EE1EEF9 +:101DB000F0E080818E7F8083E2EEF0E080818160C0 +:101DC0008083808188608083F80180818E7F80831A +:101DD000888180618883DF91CF911F910F91089551 +:101DE000E8EDF0E080818F7E8083E7EDF0E0808198 +:101DF0008160808384E082BF81E08093E5010C9460 +:101E0000AD0EE8EDF0E080818E7F80831092E200DD +:101E100008951092DA001092E10008951F920F9237 +:101E20000FB60F9211242F933F934F935F936F93AD +:101E30007F938F939F93AF93BF93EF93FF93809183 +:101E4000E10082FF0BC08091E20082FF07C0809119 +:101E5000E1008B7F8093E1000E9475118091DA0090 +:101E600080FF1FC08091D80080FF1BC08091DA00E6 +:101E70008E7F8093DA008091D90080FF0DC080E1D1 +:101E800089BD82E189BD09B400FEFDCF81E0809368 +:101E9000E6010E94700B05C019BC1092E6010E9479 +:101EA0007E0B8091E10080FF19C08091E20080FFED +:101EB00015C08091E2008E7F8093E2008091E20065 +:101EC00080618093E2008091D80080628093D80086 +:101ED00019BC85E08093E6010E94820B8091E100AD +:101EE00084FF30C08091E20084FF2CC080E189BD76 +:101EF00082E189BD09B400FEFDCF8091D8008F7DBD +:101F00008093D8008091E1008F7E8093E1008091E2 +:101F1000E2008F7E8093E2008091E20081608093F6 +:101F2000E2008091E201882311F084E007C08091F3 +:101F3000E30087FD02C081E001C083E08093E601F9 +:101F40000E94840B8091E10083FF29C08091E20010 +:101F500083FF25C08091E100877F8093E10082E0CC +:101F60008093E6011092E2018091E1008E7F8093E0 +:101F7000E1008091E2008E7F8093E2008091E20098 +:101F800080618093E20042E060E080E00E940D0EFC +:101F90008091F00088608093F0000E94810BFF9197 +:101FA000EF91BF91AF919F918F917F916F915F91D1 +:101FB0004F913F912F910F900FBE0F901F9018954A +:101FC0001F920F920FB60F9211242F933F934F93AE +:101FD0005F936F937F938F939F93AF93BF93CF93B1 +:101FE000DF93EF93FF93C091E900CF708091EC00F5 +:101FF000D82FD17080FDD0E81092E9008091F000D8 +:10200000877F8093F00078940E9424101092E9005A +:102010008091F00088608093F000CD2BCF70C0934A +:10202000E900FF91EF91DF91CF91BF91AF919F9127 +:102030008F917F916F915F914F913F912F910F9071 +:102040000FBE0F901F9018951F93CF93DF93CDB7BE +:10205000DEB7AA970FB6F894DEBF0FBECDBFE7EE8E +:10206000F1E088E08E0F9091F10091938E13FBCFF9 +:102070000E94A00B8091E80083FF1FC18091E701BF +:102080009091E801492F50E04A30510508F015C100 +:10209000FA01EA59FF4F0C941F26803881F08238EC +:1020A00009F00BC18091EB018F708093E900809162 +:1020B000EB0085FB882780F91092E90006C080912B +:1020C000E3019091E401911182609091E800977F83 +:1020D0009093E8008093F1001092F100C8C0282F7F +:1020E0002D7F09F0EAC0882319F0823061F0E5C045 +:1020F0008091E901813009F0E0C0933009F080E07F +:102100008093E4012BC08091E901811127C0809167 +:10211000EB018F7009F4D1C08093E9002091EB00AE +:1021200020FF1CC0933021F48091EB00806214C02A +:102130009091EB0090619093EB0021E030E0A901D9 +:1021400002C0440F551F8A95E2F74093EA001092AF +:10215000EA008091EB0088608093EB001092E90028 +:102160008091E800877F86C08111A7C01091E901A6 +:102170001F778091E3008078812B8093E30080912A +:10218000E800877F8093E8000E94420E8091E8007B +:1021900080FFFCCF8091E30080688093E300111101 +:1021A00002C082E001C083E08093E60186C08058CF +:1021B000823008F082C08091E9019091EA018C3D63 +:1021C00053E0950779F583E08A838AE289834FB7E4 +:1021D000F894DE01139620E03EE051E2E32FF0E0B8 +:1021E00050935700E49120FF03C0E295EF703F5FEA +:1021F000EF708E2F90E0EA3010F0C79601C0C096C5 +:102200008D939D932F5F243149F74FBF8091E80054 +:10221000877F8093E8006AE270E0CE0101960E9419 +:10222000490D14C0AE014F5F5F4F6091EB010E94FA +:10223000900CBC01892B09F440C09091E800977F75 +:102240009093E80089819A810E94AC0D8091E8000A +:102250008B778093E80031C0803879F58091E80071 +:10226000877F8093E8008091E2018093F100809164 +:10227000E8008E778093E8000E94420E1EC0811114 +:102280001CC09091E9019230C0F48091E800877FF2 +:102290008093E8009093E2010E94420E8091E20157 +:1022A000811106C08091E30087FD02C081E001C07A +:1022B00084E08093E6010E948C0B8091E80083FF0C +:1022C0000AC08091E800877F8093E8008091EB004E +:1022D00080628093EB00AA960FB6F894DEBF0FBE23 +:1022E000CDBFDF91CF911F9108950895CF93809135 +:1022F000E6018823A1F0C091E900CF709091EC0035 +:10230000892F817090FD80E8C82B1092E9008091A0 +:10231000E80083FD0E942410CF70C093E900CF91A4 +:10232000089590936B0180936A010895E0916A018A +:10233000F0916B01309721F00190F081E02D09942C +:1023400080E00895E0916A01F0916B01309721F0EF +:102350000280F381E02D09940895E0916A01F091E3 +:102360006B01309721F00480F581E02D09940895E8 +:1023700020916801309169018217930771F0909361 +:10238000690180936801E0916A01F0916B013097D7 +:1023900021F00680F781E02D0994089520916601CF +:1023A000309167018217930771F0909367018093D2 +:1023B0006601E0916A01F0916B01309721F0008491 +:1023C000F185E02D0994089508950C94E4110E947C +:1023D000FA1D0E94A7060C94C01ECF92DF92EF92C6 +:1023E000FF920F931F93CF93DF93CDB7DEB72B9759 +:1023F0000FB6F894DEBF0FBECDBF0E94BF068DE6BC +:10240000C82E81E0D82E00E010E0E02E802F0E9440 +:10241000AD07F60141916F01F42EF826B1F40F5F7C +:102420001F4F0E30110589F78FEF89838A831B8236 +:102430000E94031E8160782F9D838C8349815A817D +:102440006B818D810E94901240C09091CF0191FFCD +:1024500004C08B870E94B3078B8520E030E04F2DAE +:1024600050E0922FBA01022E02C0759567950A942A +:10247000E2F760FF24C02E83EF8221E030E06901A3 +:1024800002C0CC0CDD1C9A95E2F790E08C219D21D6 +:10249000892B09F420E028870E94031E8160782F91 +:1024A0009A8789874E815F8168858A850E9490120C +:1024B000F801E359FE4F8081C826C08206C02F5F15 +:1024C0003F4F2630310569F6AACF0E94A72110910F +:1024D0006C010E9496111817A1F00E94961180932A +:1024E0006C012B960FB6F894DEBF0FBECDBFDF9107 +:1024F000CF911F910F91FF90EF90DF90CF900C94B0 +:102500008F0A2B960FB6F894DEBF0FBECDBFDF91BA +:10251000CF911F910F91FF90EF90DF90CF90089592 +:10252000CF93DF93CDB7DEB72B970FB6F894DEBF0E +:102530000FBECDBF4F83588769877A878B87DE01AF +:10254000119686E0FD0111928A95E9F785E0FE017A +:10255000379601900D928A95E1F749815A816B81F6 +:102560007C818D819E810E94C0192B960FB6F894B4 +:10257000DEBF0FBECDBFDF91CF9108950895CF93F9 +:10258000882309F4C2C0C82F823859F40E949611DA +:1025900081FDBBC089E30E94691C0E94361D89E34E +:1025A0000CC0833879F40E94961180FDAEC083E59B +:1025B0000E94691C0E94361D83E50E94AB1CCF91CE +:1025C0000C94361D843859F40E94961182FD9DC0EA +:1025D00087E40E94691C0E94361D87E4EECF8CEFD1 +:1025E0008C0F813A48F48C2F0E94EA2381118DC010 +:1025F0008C2F0E94691CE3CF80E28C0F883048F456 +:10260000C77081E001C0880FCA95EAF70E94EF1CED +:10261000D6CF8BE58C0F833078F4C53A29F0C63AD3 +:1026200031F083E890E005C081E890E002C082E8E4 +:1026300090E0CF910C94B81188E58C0F833108F0AD +:1026400064C0C83A39F1C93A41F1CA3A49F1CB3AC2 +:1026500051F1CC3A59F1CD3A61F1C03B69F1CE3A32 +:1026600071F1CF3A79F1C13B81F1C23B89F1C33BB2 +:1026700091F1C43B99F1C53BA1F1C63BA9F1C73B20 +:10268000B1F1C83BB9F1C93BC1F1CA3BC9F180E026 +:1026900090E038C082EE90E035C089EE90E032C024 +:1026A0008AEE90E02FC085EB90E02CC086EB90E0A6 +:1026B00029C087EB90E026C08CEC90E023C08DEC25 +:1026C00090E020C083E891E01DC08AE891E01AC044 +:1026D00082E991E017C084E991E014C081E292E0C0 +:1026E00011C083E292E00EC084E292E00BC085E26A +:1026F00092E008C086E292E005C087E292E002C064 +:102700008AE292E0CF910C94CE11CF910895882364 +:1027100009F44BC0823859F40E94961181FF45C0DC +:1027200089E30E94691C0E94361D89E30CC083382E +:1027300071F40E94961180FF38C083E50E94691CE5 +:102740000E94361D83E50E94AB1C0C94361D843814 +:1027500059F40E94961182FF28C087E40E94691CE8 +:102760000E94361D87E4EFCF9CEF980F913A58F303 +:1027700090E2980F983050F4877091E001C0990F63 +:102780008A95EAF7892F0E94F51CDFCF9BE5980F09 +:10279000933020F480E090E00C94B811885A833193 +:1027A00020F480E090E00C94CE110895882321F06D +:1027B0000E94EF1C0C94361D0895882321F00E947E +:1027C000F51C0C94361D0895BF92CF92DF92EF92C4 +:1027D000FF920F931F93CF93DF9300D000D000D0D0 +:1027E000CDB7DEB725E0FC01DE01119601900D9218 +:1027F0002A95E1F7FC01D080118102812581229583 +:102800002F7043815481452B09F4FCC21F3F21F4F2 +:10281000FFEFDF1609F4F6C27C012E830E94BE1280 +:10282000D9821A8369817A81802F0E94651C182FB2 +:10283000B92E0E941A1C0E94E11A2E81002319F061 +:102840000E940C1D2E81EB2DE295EF70F0E0E05917 +:10285000FF4F0C941F268B2D807F9B2D9F70F92E90 +:10286000882319F0F29480EFF822002389F0FF20EA +:1028700009F475C280E2810F883020F48F2D0E9408 +:10288000EF1C03C08F2D0E94FF1C0E94361D67C2E3 +:10289000812F0E948713FF2009F4B4C2105E8F2D90 +:1028A000183018F40E94F51C02C00E94051D2696DF +:1028B0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1028C0000F91FF90EF90DF90CF90BF900C94361D4A +:1028D0003B2D307F8B2D8F70303211F08295807FB1 +:1028E000112319F0113021F12CC00023B9F022235B +:1028F00009F4A0C1213009F09DC126960FB6F894C5 +:10290000DEBF0FBECDBFDF91CF911F910F91FF9022 +:10291000EF90DF90CF90BF900C941F1D222319F0F1 +:10292000213009F46FC28E830E94221D8E8196C1D0 +:10293000002321F0223008F065C27CC1211162C25F +:102940008DC1002321F0222309F474C108C222237F +:1029500009F484C119C22B2D26952695237030E0E9 +:102960002115310521F021303105D1F04BC2002372 +:1029700021F0812F9B2D937002C080E090E026967D +:102980000FB6F894DEBF0FBECDBFDF91CF911F9180 +:102990000F91FF90EF90DF90CF90BF900C94B81103 +:1029A000002321F0812F9B2D937002C080E090E0E6 :1029B00026960FB6F894DEBF0FBECDBFDF91CF9144 :1029C0001F910F91FF90EF90DF90CF90BF900C94EC -:1029D000F71A0E94DB1AC701B60126960FB6F894C3 -:1029E000DEBF0FBECDBFDF91CF911F910F91FF9042 -:1029F000EF90DF90CF90BF900C94BF1A103FD1F1B1 -:102A000018F4103E50F4A1C0123F09F463C008F45A -:102A10004CC0133F09F473C098C01F708B2D8F7189 -:102A20000023A1F00E94581A812F26960FB6F89421 -:102A3000DEBF0FBECDBFDF91CF911F910F91FF90F1 -:102A4000EF90DF90CF90BF900C94E8120E94791A1B -:102A5000812F26960FB6F894DEBF0FBECDBFDF9153 -:102A6000CF911F910F91FF90EF90DF90CF90BF908B -:102A70000C94EF120023A9F02111BFC08B2D8F7190 -:102A800026960FB6F894DEBF0FBECDBFDF91CF9173 -:102A90001F910F91FF90EF90DF90CF90BF900C941B -:102AA0009E1A223008F0A9C0E9CF0023A9F08B2D8F -:102AB0008F7126960FB6F894DEBF0FBECDBFDF91A3 -:102AC000CF911F910F91FF90EF90DF90CF90BF902B -:102AD0000C94581A002359F38B2D8F7126960FB63C -:102AE000F894DEBF0FBECDBFDF91CF911F910F9144 -:102AF000FF90EF90DF90CF90BF900C94791A002355 -:102B000099F08B2D8F7126960FB6F894DEBF0FBE0D -:102B1000CDBFDF91CF911F910F91FF90EF90DF908C -:102B2000CF90BF900C94431A26960FB6F894DEBF50 -:102B30000FBECDBFDF91CF911F910F91FF90EF900E -:102B4000DF90CF90BF900C94391A0023A9F0222374 -:102B500009F4ADCF812F26960FB6F894DEBF0FBED5 -:102B6000CDBFDF91CF911F910F91FF90EF90DF903C -:102B7000CF90BF900C94D111222309F4ADCF812FB7 -:102B800026960FB6F894DEBF0FBECDBFDF91CF9172 -:102B90001F910F91FF90EF90DF90CF90BF900C941A -:102BA00099124B2D4F70612FC7010E943604269653 -:102BB0000FB6F894DEBF0FBECDBFDF91CF911F914E -:102BC0000F91FF90EF90DF90CF90BF900C945D1924 -:102BD0004B2D4F70612FC70126960FB6F894DEBFBC -:102BE0000FBECDBFDF91CF911F910F91FF90EF905E -:102BF000DF90CF90BF900C944B0826960FB6F894B8 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF90BF9008950E94F81B0E9424 -:102C2000CD1B0E94121C0E941D210E946C2080E07E -:102C300090E00E94CB1080E090E00C94E1100E94A4 -:102C4000E81B0C940D160E94141B292F22952F703F -:102C500030E02C3031054CF42A3031056CF4225030 -:102C600031092230310588F407C02C30310549F094 -:102C70002F30310531F009C0803E48F0803F29F403 -:102C800006C093FB882780F9089580E0089581E0CD -:102C90000895CF93DF9300D000D01F92CDB7DEB759 -:102CA0000F900F900F900F900F90DF91CF9108959C -:102CB000CF93DF9300D000D000D0CDB7DEB72696FB -:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550 -:102CD0001F93CF93DF93C0917B0116E080917C011D -:102CE000C81799F0D0E01C9FF0011D9FF00D112432 -:102CF000E358FE4F408151816281738184819581C7 -:102D00000E9458162196C770E9CFDF91CF911F918D -:102D100008954091AD015091AE016091AF01709165 -:102D2000B0018091B1019091B2010C94581680913C -:102D3000B20182958F7009F054C08091AF01882351 -:102D400009F44FC080917B01A0917C016091AD019D -:102D50007091AE014091B0015091B101B6E08A1777 -:102D600009F43FC090E041155105C1F17F3F11F4D6 -:102D70006F3FA1F1B89FF001B99FF00D1124E35806 -:102D8000FE4F218172132AC02081621327C0228145 -:102D9000211124C0238134812417350710F42150D8 -:102DA0003109241B350B283C3105C0F42091B201B8 -:102DB0002F7020612093B20126E0289FF001299F07 -:102DC000F00D1124EE57FE4F80818F70806180835B -:102DD0008DEA91E00E94F6120C94681601968770B5 -:102DE000BECF0895CF92DF92EF92FF920F931F9381 -:102DF000CF93DF93CDB7DEB762970FB6F894DEBFFF -:102E00000FBECDBF8C0185E0F801DE011D9601905B -:102E10000D928A95E1F7D8014C9111965C9111972A -:102E200012966C9112971396CD90DC901497309176 -:102E3000AD017091AE018091B0019091B101009708 -:102E400009F46BC17F3F19F43F3F09F466C1E0907C -:102E5000AF01EE2009F4C0C02091B201C816D90616 -:102E600028F0F601E81BF90BCF0104C0809590957E -:102E70008C0D9D1DFF24F394883C910578F0F12C76 -:102E8000207F09F0C6C07C2DD98AC88A89890E9412 -:102E900049168DEA91E00E94F612B1C0822F807F20 -:102EA00009F046C0751314C0341312C0611110C06C -:102EB0002F7020612093B2010E9489168DEA91E063 -:102EC0000E94F6128091B201D80115968C932EC003 -:102ED000CD2819F15F3F11F44F3FF9F0F62E611143 -:102EE0001CC080917B0120917C0136E0821709F49F -:102EF0005AC090E0389FF001399FF00D1124E3583B -:102F0000FE4F7181571306C07081471303C0728151 -:102F1000711103C001968770E9CFF62E662309F47C -:102F200018C18091B20181608093B201F12C11C16E -:102F3000751308C0341306C0611104C08091B2013A -:102F4000D801C3C04D875E878D859E856A8B0E94A0 -:102F500023166A898823E1F16623D1F12091B20119 -:102F6000822F82958F7090E0029774F08091AD016E -:102F70009091AE0198878F831986DB86CA862C874D -:102F8000CE0107960E94F61286E0F801ADEAB1E0A4 -:102F900001900D928A95E1F70E9497160E9489167A -:102FA000FF24F394D6C04D875E878D859E850E9451 -:102FB000141B292F22952F7030E0223031050CF0A0 -:102FC000BCC09F7009F0B6C0805E883008F4C1C0F4 -:102FD000C8010E94F612E4CFC816D90608F453C0FF -:102FE000F601E81BF90BCF01883C910508F450C0AD -:102FF000F12C7C2DD98AC88A89890E944916EDEA6C -:10300000F1E086E0DF011D928A95E9F70E948916BA -:10301000A0C0751314C0341312C0611110C0809188 -:10302000B201F8018583C8010E94F61286E0EDEA3C -:10303000F1E0DF011D928A95E9F7FE2C8AC04D87E9 -:103040005E878D859E856A8B0E9423166A898823F8 -:1030500009F4BECF662309F4BBCF2091B201822FC1 -:1030600082958F7090E002970CF48ECF8091AD0125 -:103070009091AE019A8389831B82DD82CC822E835C -:10308000CE0101967FCF809590958C0D9D1DACCF84 -:10309000F62E662309F49CCF75132EC034132CC072 -:1030A0002091B20120FD1FC0822F82958F70D9F030 -:1030B000D80115962C9315978F3049F08F5F982F74 -:1030C0009295907F822F8F70892B15968C93C801D3 -:1030D0000E94F61286E0F801ADEAB1E001900D928F -:1030E0008A95E1F793CF86E0F801ADEAB1E001906F -:1030F0000D928A95E1F72DC04D875E878D859E855F -:103100000E942316811140CF8091B201816080938B -:10311000B201C8010E94F6121CC0662309F458CF00 -:103120004D875E878D859E850E942316882309F42E -:103130004FCF2ACF811148CF0CC0243031050CF07D -:1031400047CF9F7009F440CFF8019581907F09F037 -:103150003BCF8F2D62960FB6F894DEBF0FBECDBF6A -:10316000DF91CF911F910F91FF90EF90DF90CF9063 -:1031700008951F93CF93DF93CDB7DEB72C970FB68B -:10318000F894DEBF0FBECDBF4F83588769877A871B -:103190008B879C87CE0107960E94F216882369F0E0 -:1031A0008F8198852A853B85232BF1F19F3F09F07C -:1031B00063C08F3F09F060C037C086E0FE013796DC -:1031C000DE01119601900D928A95E1F76F81788565 -:1031D000EA85FB85309741F17F3F11F46F3F21F184 -:1031E00020917C0130E0C9010196877099274091B8 -:1031F0007B0150E08417950709F447C069837A83FF -:10320000FD83EC8396E0929FD001939FB00D112433 -:10321000A358BE4FFE01319601900D929A95E1F7A9 -:1032200080937C010E94681616E080917B0190914A -:103230007C018917C1F1189FC001112483589E4F4A -:103240000E94F216882379F1E0917B011E9FF00124 -:103250001124E358FE4F4081518162817381848142 -:1032600095810E94581680917B0190E001968770AD -:10327000992780937B01D9CF4F81588569857A85BD -:103280008B859C850E945816CFCF0E941F161092E6 -:103290007C0110927B01EDEAF1E086E0DF011D92F6 -:1032A0008A95E9F7C1CF2C960FB6F894DEBF0FBE12 -:1032B000CDBFDF91CF911F910895EF92FF920F93B1 -:1032C0001F93CF93DF938C01892B09F46CC0F12CF1 -:1032D000EE24E394E8012196F8018491843740F4C8 -:1032E000843008F051C0813081F0823019F15BC028 -:1032F000853709F444C0A8F19CE7980F903708F08F -:1033000052C08F770E94991241C00E5F1F4FFE017D -:10331000C49180E28C0F883048F4C7708E2D01C0B4 -:10332000880FCA95EAF70E94EB1B14C08C2F0E94ED -:10333000D1112DC00E5F1F4FFE01C49180E28C0F92 -:10334000883058F4C7708E2D01C0880FCA95EAF7EF -:103350000E94F11B0E94121C1AC08C2F0E9499120D -:1033600016C00E5F1F4FFE01C491CC2381F08FE980 -:103370009FE00197F1F700C00000C150F6CF0E5F4B -:103380001F4FFE01F49003C00E94D1118E018F2DBA -:10339000882309F49FCFEFE9FFE03197F1F700C0F0 -:1033A00000008150F5CFDF91CF911F910F91FF90D9 -:1033B000EF90089508956093B7017093B8018093DA -:1033C000B9019093BA010C940D160F931F930091BD -:1033D000B7011091B8012091B9013091BA01DC0117 -:1033E000CB01802B912BA22BB32B8093B701909311 -:1033F000B801A093B901B093BA011F910F910C9439 -:103400000D160F931F930091B7011091B8012091F1 -:10341000B9013091BA01DC01CB0180239123A223B1 -:10342000B3238093B7019093B801A093B901B093EF -:10343000BA011F910F910C940D160F931F930091D9 -:10344000B7011091B8012091B9013091BA01DC01A6 -:10345000CB0180279127A227B3278093B7019093B0 -:10346000B801A093B901B093BA011F910F910C94C8 -:103470000D161092B3011092B4011092B501109282 -:10348000B6010C940D1641E050E060E070E004C01D -:10349000440F551F661F771F8A95D2F74093B301DB -:1034A0005093B4016093B5017093B6010C940D165E -:1034B00041E050E060E070E004C0440F551F661F1B -:1034C000771F8A95D2F78091B3019091B401A091B2 -:1034D000B501B091B601482B592B6A2B7B2B409339 -:1034E000B3015093B4016093B5017093B6010C948D -:1034F0000D1641E050E060E070E004C0440F551F3D -:10350000661F771F8A95D2F7409550956095709504 -:103510008091B3019091B401A091B501B091B60131 -:10352000482359236A237B234093B3015093B4016A -:103530006093B5017093B6010C940D1641E050E014 -:1035400060E070E004C0440F551F661F771F8A9526 -:10355000D2F78091B3019091B401A091B501B091DF -:10356000B601482759276A277B274093B301509318 -:10357000B4016093B5017093B6010C940D160F93CE -:103580001F930091B3011091B4012091B5013091C6 -:10359000B601DC01CB01802B912BA22BB32B8093A6 -:1035A000B3019093B401A093B501B093B6011F91FC -:1035B0000F910C940D160F931F930091B30110916E -:1035C000B4012091B5013091B601DC01CB0180231B -:1035D0009123A223B3238093B3019093B401A093CA -:1035E000B501B093B6011F910F910C940D160F9376 -:1035F0001F930091B3011091B4012091B501309156 -:10360000B601DC01CB0180279127A227B327809345 -:10361000B3019093B401A093B501B093B6011F918B -:103620000F910C940D160895CF92DF92EF92FF92B6 -:103630000F931F93CF93DF938C01C090B701D0906D -:10364000B801E090B901F090BA014091B3015091F6 -:10365000B4016091B5017091B601C42AD52AE62A59 -:10366000F72ACFE1D0E0D701C6010C2E04C0B695F1 -:10367000A795979587950A94D2F780FF07C0B80160 -:103680008C2F0E946E088130910531F4219758F7F4 -:10369000B80180E00E946E08DF91CF911F910F91D9 -:1036A000FF90EF90DF90CF90089590910C019923B7 -:1036B00021F090910D01911109C020910E013091DE -:1036C0000F01F90132969FEF40E01FC0982F9695A9 -:1036D000969596959F3050F5E0910E01F0910F016F -:1036E000E90FF11D877021E030E0A90102C0440F0D -:1036F000551F8A95E2F7CA019181892B818308952C -:103700009F3F39F04F5F4E3041F051915813F8CF41 -:103710000DC05111F7CF942FF5CF9F3F39F0F9012C -:10372000E90FF11D97FDFA95828308950895909110 -:103730000C01992321F090910D01911109C0209164 -:103740000E0130910F01F9013296205F3F4F1FC0EB -:10375000982F9695969596959F30F0F4E0910E01EE -:10376000F0910F01E90FF11D877021E030E0A90110 -:1037700002C0440F551F8A95E2F7CA0180959181D6 -:103780008923818308953196E217F30729F0908108 -:103790009813F9CF1082F7CF089581E090E0E0917F -:1037A0000E01F0910F01E80FF91F10820196803190 -:1037B0009105A9F708959091CD01892B8093CD01B2 -:1037C000089580959091CD0189238093CD0108952E -:1037D0001092CD0108959091CC01892B8093CC015A -:1037E000089580959091CC0189238093CC01089510 -:1037F0001092CC0108958093BB0108951092BB01F3 -:10380000089580910E0190910F01FC0131969C0169 -:10381000205F3F4F80E0919191118F5FE217F30796 -:10382000D1F70895E0910E01F0910F018091CD0143 -:103830008083E0910E01F0910F0190818091CC0185 -:10384000892B80838091BB01882361F0E0910E0178 -:10385000F0910F019081892B80830E94011C8111BE -:103860001092BB0180910E0190910F010C94B51044 -:10387000CF92DF92EF92FF926C01EE24FF24C114ED -:10388000D104E104F10421F0C701B60120E101C037 -:1038900020E0C72ED82EE92EFF24C114D104E10464 -:1038A000F10419F0285FC701B6016B017C0154E0F7 -:1038B000F694E794D794C7945A95D1F7C114D104DC -:1038C000E104F10419F02C5FC701B6016B017C0122 -:1038D00042E0F694E794D794C7944A95D1F7C1147F -:1038E000D104E104F10419F02E5FC701B601DC0137 -:1038F000CB01B695A79597958795892B8A2B8B2B0E -:1039000009F02F5F822FFF90EF90DF90CF90089506 -:103910008091E701843009F11092CF0120E488E121 -:1039200090E00FB6F894A895809360000FBE2093A6 -:10393000600083B7817F846083BF83B7816083BF6A -:103940007894889583B78E7F83BF88E10FB6F8940B -:1039500080936000109260000FBE0895089508954E -:10396000CF930E94AE1C0E9497060E94AF1CC0E03D -:103970008C2F0E948507811104C0CF5FCE30C1F724 -:1039800001C081E0CF9108950E941F160E94A910E6 -:103990000C94A20982E084BD93E095BD9AEF97BD97 -:1039A00080936E0008952FB7F8948091D001909184 -:1039B000D101A091D201B091D3012FBF0895CF9230 -:1039C000DF92EF92FF920F931F932FB7F8944091DD -:1039D000D0015091D1016091D2017091D3012FBFDC -:1039E0006A017B01EE24FF248C0120E030E0C01648 -:1039F000D106E206F30610F4415051099A01281B42 -:103A0000390BC9011F910F91FF90EF90DF90CF907C -:103A100008951F920F920FB60F9211248F939F93C8 -:103A2000AF93BF938091D0019091D101A091D20129 -:103A3000B091D3010196A11DB11D8093D001909347 -:103A4000D101A093D201B093D301BF91AF919F91C7 -:103A50008F910F900FBE0F901F9018950E94A60D8A -:103A6000F8942FEF87EA91E6215080409040E1F7EB -:103A700000C0000087E090EBDC018093F0019093A0 -:103A8000F101A093F201B093F3019CE088E10FB63D -:103A9000F894A895809360000FBE90936000FFCFCC -:103AA000EF92FF920F931F93CF93DF93D82FC0E035 -:103AB0008C2F0E94850700E010E0E82EF12CC70152 -:103AC000002E02C0959587950A94E2F780FD06C006 -:103AD0000F5F1F4F0630110591F709C0602F7C2F33 -:103AE00080E00E944C08D813F3CF81E004C0CF5F80 -:103AF000CE30F1F680E0DF91CF911F910F91FF90D2 -:103B0000EF900895CF93C82F8CE20E94501D882318 -:103B100021F08C2FCF910C94501D80E0CF9108950F -:103B2000CF930E94D71E811102C00E94BD1EC5E620 -:103B3000C15049F00E9497068FE39CE90197F1F785 -:103B400000C00000F5CF89E20E94821D811113C1DF -:103B50008AE20E94821D81110E94BD1E85E00E94A2 -:103B6000821D81110E942E1D0E94E21E8093CE01B3 -:103B700087E00E94821D8823A9F18BE10E94821DAB -:103B8000882351F08091CE0181FB222720F991E01A -:103B9000922790FB81F90EC08EE00E94821D88233F -:103BA00061F08091CE0182FB222720F991E09227DB -:103BB00090FB82F98093CE0115C080E10E94821DA6 -:103BC0009091CE01882341F093FB222720F981E0D8 -:103BD000822780FB93F904C0892F809580FB90F9A0 -:103BE0009093CE018091CE010E94E61E0E94F41EA9 -:103BF0008093E10180EE0E94821D882341F0809134 -:103C0000E101982F909590FB80F98093E10189E381 -:103C10000E94821D882359F08091E10181FB2227B7 -:103C200020F991E0922790FB81F98093E10182EEE7 -:103C30000E94821D882359F08091E10182FB222796 -:103C400020F991E0922790FB82F98093E10186EEC2 -:103C50000E94821D882359F08091E10183FB222775 -:103C600020F991E0922790FB83F98093E10183EEA4 -:103C70000E94821D882359F08091E10184FB222754 -:103C800020F991E0922790FB84F98093E10185E38C -:103C90000E94821D882359F08091E10185FB222733 -:103CA00020F991E0922790FB85F98093E10181E36F -:103CB0000E94821D882359F08091E10186FB222712 -:103CC00020F991E0922790FB86F98093E10181E150 -:103CD0000E94821D882359F08091E10187FB2227F1 -:103CE00020F991E0922790FB87F98093E101809180 -:103CF000E1010E94F81E8091E10187FB882780F98D -:103D000080930D0187E20E94821DC82F8EE10E94E0 -:103D1000821D8111C2608FE10E94821D8111C460E9 -:103D200080E20E94821D8111C86081E20E94821D92 -:103D30008111C06182E20E94821D8111C06283E212 -:103D40000E94821D8111C06484E20E94821D88232A -:103D500011F0C06802C0CC2329F08C2F0E94EF1E06 -:103D60006C2F03C00E94EB1E682F70E080E090E093 -:103D7000CF910C94DB19CF9108956DEE7EEF80E02A -:103D800090E00E94232560E082E090E00E941525EB -:103D900060E083E090E00E94152560E084E090E020 -:103DA0000E94152560E085E090E00C94152580E0E8 -:103DB00090E00E940F2521E08D3E9E4F09F020E00B -:103DC000822F089582E090E00C940725682F82E00E -:103DD00090E00C94152583E090E00C940725682F63 -:103DE00083E090E00C94152584E090E00C94072586 -:103DF000682F84E090E00C9415258091D60180FF17 -:103E00000BC06091130185E0689FB0011124759586 -:103E10006795759567952BC081FF09C06091130167 -:103E200085E0689FB00111247595679520C082FFD9 -:103E300007C06091130185E0689FB001112417C08D -:103E40009091D7019923D1F060911201961788F7CC -:103E50002091130185E0289F90011124929FA001D9 -:103E6000939F500D112470E0CA010E94D92460383C -:103E7000710540F46115710539F002C065E070E02C -:103E8000862F08958FE7089581E008958091D601E7 -:103E900080FF08C06091110170E075956795759578 -:103EA000679521C081FF06C06091110170E0759592 -:103EB000679519C082FF04C06091110170E010C0C5 -:103EC0009091D7019923C1F0609110019617A0F746 -:103ED00080911101899FC001112470E00E94D924B2 -:103EE0006038710528F46115710521F0862F089559 -:103EF0008FE7089581E0089561E070E0F4CF803F9E -:103F000021F40E94FD1E819504C0813F29F40E9486 -:103F1000FD1E8093DA010895823F21F40E94FD1E68 -:103F2000819504C0833F29F40E94FD1E8093D9012E -:103F30000895893F19F40E94461F05C08A3F31F455 -:103F40000E94461F81958093DB0108958B3F21F4E9 -:103F50000E94461F819504C08C3F29F40E94461F91 -:103F60008093DC010895843F21F48091D801816021 -:103F700017C0853F21F48091D801826011C0863F2F -:103F800021F48091D80184600BC0873F21F4809197 -:103F9000D801886005C0883F31F48091D8018061E4 -:103FA0008093D80108958D3F21F48091D6018160DE -:103FB0000BC08E3F21F48091D601826005C08F3FF7 -:103FC00029F48091D60184608093D6010895803FC2 -:103FD00039F48091DA0187FF6CC01092DA0169C070 -:103FE000813F29F48091DA011816BCF362C09091E8 -:103FF000D901823F29F497FF5CC01092D90159C0C2 -:10400000833F19F41916CCF354C0893F41F48091D1 -:10401000DB0118160CF04DC01092DB014AC08A3F3C -:1040200029F48091DB0187FF44C0F6CF8B3F39F440 -:104030008091DC0187FF3DC01092DC013AC08C3FCB -:1040400029F48091DC011816BCF333C0843F21F4BD -:104050008091D8018E7F17C0853F21F48091D801CF -:104060008D7F11C0863F21F48091D8018B7F0BC0DA -:10407000873F21F48091D801877F05C0883F31F4C4 -:104080008091D8018F7E8093D80113C08D3F21F499 -:104090008091D6018E7F0BC08E3F21F48091D60196 -:1040A0008D7F05C08F3F29F48091D6018B7F80934F -:1040B000D6018091D90181110EC08091DA01811160 -:1040C0000AC08091DB01811106C08091DC01811161 -:1040D00002C01092D701089588ED91E00E94C010AF -:1040E0000E94D31C9093D5018093D40108951F930F -:1040F000CF93DF938091D4019091D5010E94DF1C72 -:10410000AC019091D701992321F02091140130E066 -:1041100006C0209115018AE0289F900111244217C2 -:10412000530708F486C08091D901C091DA01D0917B -:10413000DB011091DC01811107C0C11176C0D111E2 -:1041400074C0111172C075C09F3F19F09F5F9093AA -:10415000D701181624F40E94FD1E8093D901809186 -:10416000D90187FF05C00E94FD1E81958093D9016A -:104170001C1624F40E94FD1E8093DA018091DA015E -:1041800087FF05C00E94FD1E81958093DA01609132 -:10419000D901662339F1C091DA01CC2319F17727CF -:1041A00067FD7095872F972F0E94EA2323E333E35F -:1041B00043E35FE30E944E240E94B7236093D9013A -:1041C0006C2F772767FD7095872F972F0E94EA2322 -:1041D00023E333E343E35FE30E944E240E94B723CB -:1041E0006093DA011D1624F40E94461F8093DB01C0 -:1041F0008091DB0187FF05C00E94461F8195809357 -:10420000DB01111624F40E94461F8093DC0180918B -:10421000DC0187FF05C00E94461F81958093DC0169 -:10422000DF91CF911F910C946C209F3F09F08ECFAE -:1042300096CFDF91CF911F910895E8EDF1E085E0F1 -:10424000DF011D928A95E9F71092D7011092D601ED -:104250000895833081F128F4813059F08230D1F013 -:104260000895853009F449C0B8F1863009F456C084 -:10427000089580911501262F30E0280F311D2F3F22 -:10428000310524F4680F6093150108958FEF809332 -:104290001501089580911401262F30E0280F311D5B -:1042A0002F3F310524F4680F6093140108958FEFB8 -:1042B00080931401089580911301262F30E0280F78 -:1042C000311D2F3F310524F4680F609313010895C9 -:1042D0008FEF80931301089580911201262F30E013 -:1042E000280F311D2F3F310524F4680F6093120110 -:1042F00008958FEF80931201089580911101262F68 -:1043000030E0280F311D2F3F310524F4680F6093F2 -:10431000110108958FEF809311010895809110018C -:10432000262F30E0280F311D2F3F310524F4680F70 -:104330006093100108958FEF8093100108958330EA -:1043400011F128F4813049F0823091F008958530E0 -:1043500081F120F18630C1F108958091150168172F -:1043600020F4861B8093150108951092150108957D -:1043700080911401681720F4861B8093140108951E -:1043800010921401089580911301681720F4861B80 -:1043900080931301089510921301089580911201E2 -:1043A000681720F4861B8093120108951092120161 -:1043B000089580911101681720F4861B80931101E4 -:1043C000089510921101089580911001681720F44A -:1043D000861B8093100108951092100108950F9389 -:1043E0001F938D3109F46BC008F03FC08E3009F483 -:1043F0007DC0C0F4873009F46EC068F4863009F0DF -:10440000AFC08091CE01817F8E7F8093CE0181E00D -:104410008093DE01A6C0883009F458C08B3009F4BF -:104420009BC09EC0863109F497C078F4803109F4AE -:1044300070C0813109F094C00E941F1690910D0147 -:1044400081E0892780930D0187C0893109F484C0F8 -:104450008B3109F085C08091CE0181FB222720F9A4 -:1044600091E0922790FB81F94AC0853309F45BC043 -:1044700048F4873209F457C008F45AC0893209F465 -:1044800052C06EC0833438F48A3308F067C0883372 -:1044900009F462C065C0833409F445C0883409F06A -:1044A0005FC00E941F160FEF13ED20E30150104074 -:1044B0002040E1F700C000000E942E1D4DC00E9468 -:1044C00071230E94A9100E94A20946C00E94E21E08 -:1044D0000E94F41E41C09091CE01892F817090FFFF -:1044E00012C0917F9E7F9093CE013BC08091CE0100 -:1044F00082FB222720F991E0922790FB82F980939A -:10450000CE01992349F18091CE0181608093CE0143 -:1045100023C08091CE0183FB222720F991E09227CE -:1045200090FB83F9ECCF61E070E080E090E010C098 -:104530008D5141E050E060E070E08A019B0104C0D1 -:10454000000F111F221F331F8A95D2F7C901B8012E -:104550000E94DB190E941F1681E003C08953E9CF36 -:1045600080E01F910F91089580E0089580E0089504 -:10457000CF93C82F8091DE01813079F018F082301E -:10458000E9F187C0E0910E01F0910F018081813146 -:1045900069F0823209F07FC009C0E0910E01F0910C -:1045A0000F018081813111F0823261F48C2F0E94E1 -:1045B000B422811104C08C2F0E94EF211DC081E024 -:1045C00090E01AC08C2F0E94B622811114C0C43111 -:1045D00079F048F4CB3079F0C03109F060C082E066 -:1045E0008093DE0108C0C93219F0C83321F057C0EA -:1045F0001092DE0154C081E0817053C0C93289F14C -:1046000018F5C43171F1A8F4C73009F046C08AE04A -:104610008093150194E19093140193E0909313011A -:104620008093120188E08093110188E28093100149 -:1046300034C0CE51C63088F5EC2FF0E0E65DFE4F79 -:1046400080818093DD0129C0CE34E9F020F4CB34A1 -:1046500021F56AE013C0C13579F0C235F1F461E0AB -:104660000DC08091DD01882319F01092DD0115C085 -:1046700081E08093DE0115C061E006C08091DD011C -:104680000E9429210AC06AE08091DD010E949F21D9 -:1046900004C01092DE0180E004C081E002C080E02E -:1046A000ABCFCF910895E1E8F0E08081886080830E -:1046B0008081816080838FB7F89493E09093890024 -:1046C00090ED909388008FBF0895EFE6F0E0808131 -:1046D000826080830895EFE6F0E080818D7F8083A3 -:1046E0000895EFE6F0E0908182E0892780830895C5 -:1046F0001F920F920FB60F9211242F933F934F9357 -:104700005F936F937F938F939F93AF93BF93EF9339 -:10471000FF938091DF019091E00101969093E00179 -:104720008093DF01811103C082E00E94A209E09121 -:10473000E001E695E695F0E0E156F84FE4918091CE -:10474000DF018E1303C080E00E94A209FF91EF9168 -:10475000BF91AF919F918F917F916F915F914F9199 -:104760003F912F910F900FBE0F901F90189504D07E -:104770006894B1118DC0089570D088F09F5790F063 -:10478000B92F9927B751A0F0D1F0660F771F881F76 -:10479000991F1AF0BA95C9F712C0B13081F077D0DD -:1047A000B1E0089574C0672F782F8827B85F39F07B -:1047B000B93FCCF3869577956795B395D9F73EF4D5 -:1047C00090958095709561957F4F8F4F9F4F08957D -:1047D000E89409C097FB3EF490958095709561959B -:1047E0007F4F8F4F9F4F9923A9F0F92F96E9BB2751 -:1047F0009395F695879577956795B795F111F8CFCD -:10480000FAF4BB0F11F460FF1BC06F5F7F4F8F4F37 -:104810009F4F16C0882311F096E911C0772321F02D -:104820009EE8872F762F05C0662371F096E8862FC5 -:1048300070E060E02AF09A95660F771F881FDAF71C -:10484000880F9695879597F9089557FD9058440FCE -:10485000551F59F05F3F71F04795880F97FB991FDF -:1048600061F09F3F79F0879508951216130614069C -:10487000551FF2CF4695F1DF08C016161706180629 -:10488000991FF1CF86957105610508940895E89404 -:10489000BB2766277727CB0197F908950BD078C0FF -:1048A00069D028F06ED018F0952309F05AC05FC087 -:1048B0001124EECFCADFA0F3959FD1F3950F50E0FE -:1048C000551F629FF001729FBB27F00DB11D639FC2 -:1048D000AA27F00DB11DAA1F649F6627B00DA11D68 -:1048E000661F829F2227B00DA11D621F739FB00D0E -:1048F000A11D621F839FA00D611D221F749F33277E -:10490000A00D611D231F849F600D211D822F762F16 -:104910006A2F11249F5750408AF0E1F088234AF013 -:10492000EE0FFF1FBB1F661F771F881F915050405F -:10493000A9F79E3F510570F014C0AACF5F3FECF37A -:10494000983EDCF3869577956795B795F795E7954B -:104950009F5FC1F7FE2B880F911D9695879597F95C -:10496000089597F99F6780E870E060E008959FEFF1 -:1049700080EC089500240A941616170618060906F6 -:10498000089500240A9412161306140605060895C5 -:10499000092E0394000C11F4882352F0BB0F40F44D -:1049A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8D -:1049B000089597FB072E16F4009407D077FD09D0D1 -:1049C0000E94F32407FC05D03EF4909581959F4FFB -:1049D0000895709561957F4F0895EE0FFF1F059024 -:1049E000F491E02D0994AA1BBB1B51E107C0AA1F3B -:1049F000BB1FA617B70710F0A61BB70B881F991F80 -:104A00005A95A9F780959095BC01CD010895F99923 -:104A1000FECF92BD81BDF89A992780B50895A8E18F -:104A2000B0E042E050E00C942A25262FF999FECF01 -:104A30001FBA92BD81BD20BD0FB6F894FA9AF99ABB -:104A40000FBE019608950E941525272F0C94162558 -:104A5000DC01CB01FC01F999FECF06C0F2BDE1BD3E -:104A6000F89A319600B40D9241505040B8F708952D -:044A7000F894FFCFE8 -:104A74002002A409320A0F0ADB09A7090101BC01BB -:104A840028080A03140A3F4D363960071307DD0668 -:104A9400A4063706500669068206010203040506C9 -:044AA40007080900F6 +:1029D000CE11812F002319F00E94AF2002C00E9467 +:1029E000172126960FB6F894DEBF0FBECDBFDF913C +:1029F000CF911F910F91FF90EF90DF90CF90BF90FC +:102A00000C949C218B2D837009F07BC00111FAC1BD +:102A1000812F829586958770880F880F912F9F70E0 +:102A2000C92ED12CE12CF12C082E04C0CC0CDD1CBD +:102A3000EE1CFF1C0A94D2F714FF12C04FE050E0C6 +:102A400060E070E004C0440F551F661F771F8A9531 +:102A5000D2F7CB01BA01609570958095909503C02F +:102A600060E070E0CB012B2D269526952370422F38 +:102A700050E042305105D9F04330510569F16C29DD +:102A80007D298E299F294130510551F126960FB697 +:102A9000F894DEBF0FBECDBFDF91CF911F910F9194 +:102AA000FF90EF90DF90CF90BF900C94081B6C29A3 +:102AB0007D298E299F2926960FB6F894DEBF0FBE7A +:102AC000CDBFDF91CF911F910F91FF90EF90DF90DD +:102AD000CF90BF900C94241B0E94081BC701B60125 +:102AE00026960FB6F894DEBF0FBECDBFDF91CF9113 +:102AF0001F910F91FF90EF90DF90CF90BF900C94BB +:102B0000EC1A002319F08B2D817001C08695882363 +:102B100009F478C1812F829586958770880F880F78 +:102B2000912F9F70C92ED12CE12CF12C082E04C0BE +:102B3000CC0CDD1CEE1CFF1C0A94D2F714FF12C053 +:102B40004FE050E060E070E004C0440F551F661F86 +:102B5000771F8A95D2F7CB01BA0160957095809561 +:102B6000909503C060E070E0CB012B2D2695269553 +:102B70002370422F50E042305105D9F043305105C7 +:102B800069F16C297D298E299F294130510551F128 +:102B900026960FB6F894DEBF0FBECDBFDF91CF9162 +:102BA0001F910F91FF90EF90DF90CF90BF900C940A +:102BB000E21B6C297D298E299F2926960FB6F89451 +:102BC000DEBF0FBECDBFDF91CF911F910F91FF9060 +:102BD000EF90DF90CF90BF900C94FE1B0E94E21B01 +:102BE000C701B60126960FB6F894DEBF0FBECDBF63 +:102BF000DF91CF911F910F91FF90EF90DF90CF90D9 +:102C0000BF900C94C61B103FD1F118F4103E50F445 +:102C1000A1C0123F09F463C008F44CC0133F09F48B +:102C200073C098C01F708B2D8F710023A1F00E947C +:102C30005F1B812F26960FB6F894DEBF0FBECDBF67 +:102C4000DF91CF911F910F91FF90EF90DF90CF9088 +:102C5000BF900C94D6130E94801B812F26960FB62E +:102C6000F894DEBF0FBECDBFDF91CF911F910F91C2 +:102C7000FF90EF90DF90CF90BF900C94DD13002376 +:102C8000A9F02111BFC08B2D8F7126960FB6F89435 +:102C9000DEBF0FBECDBFDF91CF911F910F91FF908F +:102CA000EF90DF90CF90BF900C94A51B223008F0DE +:102CB000A9C0E9CF0023A9F08B2D8F7126960FB6FE +:102CC000F894DEBF0FBECDBFDF91CF911F910F9162 +:102CD000FF90EF90DF90CF90BF900C945F1B00238C +:102CE00059F38B2D8F7126960FB6F894DEBF0FBE69 +:102CF000CDBFDF91CF911F910F91FF90EF90DF90AB +:102D0000CF90BF900C94801B002399F08B2D8F7176 +:102D100026960FB6F894DEBF0FBECDBFDF91CF91E0 +:102D20001F910F91FF90EF90DF90CF90BF900C9488 +:102D30004A1B26960FB6F894DEBF0FBECDBFDF91BB +:102D4000CF911F910F91FF90EF90DF90CF90BF90A8 +:102D50000C94401B0023A9F0222309F4ADCF812F4E +:102D600026960FB6F894DEBF0FBECDBFDF91CF9190 +:102D70001F910F91FF90EF90DF90CF90BF900C9438 +:102D8000BF12222309F4ADCF812F26960FB6F894F7 +:102D9000DEBF0FBECDBFDF91CF911F910F91FF908E +:102DA000EF90DF90CF90BF900C9487134B2D4F7016 +:102DB000612FC7010E94420426960FB6F894DEBF29 +:102DC0000FBECDBFDF91CF911F910F91FF90EF907C +:102DD000DF90CF90BF900C94641A4B2D4F70612FF1 +:102DE000C70126960FB6F894DEBF0FBECDBFDF91A8 +:102DF000CF911F910F91FF90EF90DF90CF90BF90F8 +:102E00000C94B40726960FB6F894DEBF0FBECDBF64 +:102E1000DF91CF911F910F91FF90EF90DF90CF90B6 +:102E2000BF9008950E940C1D0E941C1D0E94E11C71 +:102E30000E94361D0E944D220E949C2180E090E05D +:102E40000E94B81180E090E00C94CE110E94FC1C0E +:102E50000C9412170E945A1C292F22952F7030E0D3 +:102E60002C3031054CF42A3031056CF422503109F4 +:102E70002230310588F407C02C30310549F02F305D +:102E8000310531F009C0803E48F0803F29F406C08A +:102E900093FB882780F9089580E0089581E00895E4 +:102EA000CF93DF9300D000D01F92CDB7DEB70F9045 +:102EB0000F900F900F900F90DF91CF910895CF93C7 +:102EC000DF9300D000D000D0CDB7DEB726960FB686 +:102ED000F894DEBF0FBECDBFDF91CF9108951F9351 +:102EE000CF93DF93C0917B0116E080917C01C817DE +:102EF00099F0D0E01C9FF0011D9FF00D1124E358C4 +:102F0000FE4F4081518162817381848195810E944D +:102F10005F172196C770E9CFDF91CF911F91089578 +:102F20004091AD015091AE016091AF017091B0013F +:102F30008091B1019091B2010C945F178091B20120 +:102F400082958F7009F054C08091AF01882309F4F5 +:102F50004FC080917B01A0917C016091AD01709187 +:102F6000AE014091B0015091B101B6E08A1709F469 +:102F70003FC090E041155105C1F17F3F11F46F3F13 +:102F8000A1F1B89FF001B99FF00D1124E358FE4F55 +:102F9000218172132AC02081621327C0228121114E +:102FA00024C0238134812417350710F421503109BE +:102FB000241B350B283C3105C0F42091B2012F7041 +:102FC00020612093B20126E0289FF001299FF00D97 +:102FD0001124EE57FE4F80818F70806180838DEACF +:102FE00091E00E94E4130C946F1701968770BECF96 +:102FF0000895CF92DF92EF92FF920F931F93CF939A +:10300000DF93CDB7DEB762970FB6F894DEBF0FBE81 +:10301000CDBF8C0185E0F801DE011D9601900D9277 +:103020008A95E1F7D8014C9111965C91119712960F +:103030006C9112971396CD90DC9014973091AD015E +:103040007091AE018091B0019091B101009709F4A7 +:103050006BC17F3F19F43F3F09F466C1E090AF01B7 +:10306000EE2009F4C0C02091B201C816D90628F09C +:10307000F601E81BF90BCF0104C0809590958C0DEB +:103080009D1DFF24F394883C910578F0F12C207F5E +:1030900009F0C6C07C2DD98AC88A89890E94501738 +:1030A0008DEA91E00E94E413B1C0822F807F09F085 +:1030B00046C0751314C0341312C0611110C02F70B4 +:1030C00020612093B2010E9490178DEA91E00E9446 +:1030D000E4138091B201D80115968C932EC0CD28AF +:1030E00019F15F3F11F44F3FF9F0F62E61111CC04A +:1030F00080917B0120917C0136E0821709F45AC04F +:1031000090E0389FF001399FF00D1124E358FE4FF5 +:103110007181571306C07081471303C0728171110A +:1031200003C001968770E9CFF62E662309F418C113 +:103130008091B20181608093B201F12C11C17513AD +:1031400008C0341306C0611104C08091B201D801D7 +:10315000C3C04D875E878D859E856A8B0E942A1726 +:103160006A898823E1F16623D1F12091B201822F8F +:1031700082958F7090E0029774F08091AD019091EC +:10318000AE0198878F831986DB86CA862C87CE018D +:1031900007960E94E41386E0F801ADEAB1E00190E1 +:1031A0000D928A95E1F70E949E170E949017FF24C6 +:1031B000F394D6C04D875E878D859E850E945A1CEC +:1031C000292F22952F7030E0223031050CF0BCC041 +:1031D0009F7009F0B6C0805E883008F4C1C0C80195 +:1031E0000E94E413E4CFC816D90608F453C0F601D0 +:1031F000E81BF90BCF01883C910508F450C0F12C75 +:103200007C2DD98AC88A89890E945017EDEAF1E09D +:1032100086E0DF011D928A95E9F70E949017A0C011 +:10322000751314C0341312C0611110C08091B20123 +:10323000F8018583C8010E94E41386E0EDEAF1E01D +:10324000DF011D928A95E9F7FE2C8AC04D875E87C3 +:103250008D859E856A8B0E942A176A89882309F4C6 +:10326000BECF662309F4BBCF2091B201822F829595 +:103270008F7090E002970CF48ECF8091AD01909109 +:10328000AE019A8389831B82DD82CC822E83CE019C +:1032900001967FCF809590958C0D9D1DACCFF62E1D +:1032A000662309F49CCF75132EC034132CC02091D3 +:1032B000B20120FD1FC0822F82958F70D9F0D801F6 +:1032C00015962C9315978F3049F08F5F982F929514 +:1032D000907F822F8F70892B15968C93C8010E9446 +:1032E000E41386E0F801ADEAB1E001900D928A9511 +:1032F000E1F793CF86E0F801ADEAB1E001900D92DD +:103300008A95E1F72DC04D875E878D859E850E9449 +:103310002A17811140CF8091B20181608093B20160 +:10332000C8010E94E4131CC0662309F458CF4D87DE +:103330005E878D859E850E942A17882309F44FCFCA +:103340002ACF811148CF0CC0243031050CF047CF73 +:103350009F7009F440CFF8019581907F09F03BCF31 +:103360008F2D62960FB6F894DEBF0FBECDBFDF91F2 +:10337000CF911F910F91FF90EF90DF90CF90089524 +:103380001F93CF93DF93CDB7DEB72C970FB6F8948A +:10339000DEBF0FBECDBF4F83588769877A878B8783 +:1033A0009C87CE0107960E94F917882369F08F81C8 +:1033B00098852A853B85232BF1F19F3F09F063C057 +:1033C0008F3F09F060C037C086E0FE013796DE010E +:1033D000119601900D928A95E1F76F817885EA85C3 +:1033E000FB85309741F17F3F11F46F3F21F1209130 +:1033F0007C0130E0C90101968770992740917B01DB +:1034000050E08417950709F447C069837A83FD83E8 +:10341000EC8396E0929FD001939FB00D1124A358A6 +:10342000BE4FFE01319601900D929A95E1F780937F +:103430007C010E946F1716E080917B0190917C01C6 +:103440008917C1F1189FC001112483589E4F0E9413 +:10345000F917882379F1E0917B011E9FF001112477 +:10346000E358FE4F4081518162817381848195814F +:103470000E945F1780917B0190E0019687709927E9 +:1034800080937B01D9CF4F81588569857A858B855B +:103490009C850E945F17CFCF0E94261710927C0157 +:1034A00010927B01EDEAF1E086E0DF011D928A9542 +:1034B000E9F7C1CF2C960FB6F894DEBF0FBECDBF93 +:1034C000DF91CF911F910895EF92FF920F931F9379 +:1034D000CF93DF938C01892B09F46CC0F12CEE247F +:1034E000E394E8012196F8018491843740F4843014 +:1034F00008F051C0813081F0823019F15BC085370E +:1035000009F444C0A8F19CE7980F903708F052C026 +:103510008F770E94871341C00E5F1F4FFE01C49139 +:1035200080E28C0F883048F4C7708E2D01C0880F60 +:10353000CA95EAF70E940F1D14C08C2F0E94BF127B +:103540002DC00E5F1F4FFE01C49180E28C0F8830AA +:1035500058F4C7708E2D01C0880FCA95EAF70E94F3 +:10356000151D0E94361D1AC08C2F0E94871316C08D +:103570000E5F1F4FFE01C491CC2381F08FE99FE0C5 +:103580000197F1F700C00000C150F6CF0E5F1F4F4A +:10359000FE01F49003C00E94BF128E018F2D88237C +:1035A00009F49FCFEFE9FFE03197F1F700C0000089 +:1035B0008150F5CFDF91CF911F910F91FF90EF9048 +:1035C000089508956093B7017093B8018093B9018D +:1035D0009093BA010C9412170F931F930091B701A7 +:1035E0001091B8012091B9013091BA01DC01CB01F1 +:1035F000802B912BA22BB32B8093B7019093B80112 +:10360000A093B901B093BA011F910F910C941217B6 +:103610000F931F930091B7011091B8012091B90148 +:103620003091BA01DC01CB0180239123A223B32383 +:103630008093B7019093B801A093B901B093BA01F8 +:103640001F910F910C9412170F931F930091B701C4 +:103650001091B8012091B9013091BA01DC01CB0180 +:1036600080279127A227B3278093B7019093B801B1 +:10367000A093B901B093BA011F910F910C94121746 +:103680001092B3011092B4011092B5011092B601DC +:103690000C94121741E050E060E070E004C0440F69 +:1036A000551F661F771F8A95D2F74093B301509339 +:1036B000B4016093B5017093B6010C94121741E008 +:1036C00050E060E070E004C0440F551F661F771F94 +:1036D0008A95D2F78091B3019091B401A091B50180 +:1036E000B091B601482B592B6A2B7B2B4093B30129 +:1036F0005093B4016093B5017093B6010C94121706 +:1037000041E050E060E070E004C0440F551F661FC8 +:10371000771F8A95D2F74095509560957095809166 +:10372000B3019091B401A091B501B091B6014823C5 +:1037300059236A237B234093B3015093B4016093D0 +:10374000B5017093B6010C94121741E050E060E0AF +:1037500070E004C0440F551F661F771F8A95D2F78B +:103760008091B3019091B401A091B501B091B601DF +:10377000482759276A277B274093B3015093B40108 +:103780006093B5017093B6010C9412170F931F93B9 +:103790000091B3011091B4012091B5013091B601AF +:1037A000DC01CB01802B912BA22BB32B8093B30197 +:1037B0009093B401A093B501B093B6011F910F91FE +:1037C0000C9412170F931F930091B3011091B40141 +:1037D0002091B5013091B601DC01CB01802391230A +:1037E000A223B3238093B3019093B401A093B501B6 +:1037F000B093B6011F910F910C9412170F931F9362 +:103800000091B3011091B4012091B5013091B6013E +:10381000DC01CB0180279127A227B3278093B30136 +:103820009093B401A093B501B093B6011F910F918D +:103830000C9412170895CF92DF92EF92FF920F939C +:103840001F93CF93DF938C01C090B701D090B80144 +:10385000E090B901F090BA018091B3019091B40168 +:10386000A091B501B091B601C82AD92AEA2AFB2A4B +:10387000CFE1D0E0D701C6010C2E04C0B695A795C4 +:10388000979587950A94D2F780FF06C0B8018C2FD0 +:103890000E94F409019721F4219760F780E001C0AC +:1038A0008C2FDF91CF911F910F91FF90EF90DF90C0 +:1038B000CF900895CF93DF93EC010E941B1CBE01B3 +:1038C0000E94F409DF91CF910895CB010E945A1C08 +:1038D000089590910C01992321F090910D0191117F +:1038E00009C020910E0130910F01F90132969FEF2E +:1038F00040E01FC0982F9695969596959F3050F56D +:10390000E0910E01F0910F01E90FF11D877021E0A8 +:1039100030E0A90102C0440F551F8A95E2F7CA01A1 +:103920009181892B818308959F3F39F04F5F4E30FD +:1039300041F051915813F8CF0DC05111F7CF942F8A +:10394000F5CF9F3F39F0F901E90FF11D97FDFA9589 +:1039500082830895089590910C01992321F090910C +:103960000D01911109C020910E0130910F01F90153 +:103970003296205F3F4F1FC0982F9695969596954B +:103980009F30F0F4E0910E01F0910F01E90FF11D6D +:10399000877021E030E0A90102C0440F551F8A95CD +:1039A000E2F7CA0180959181892381830895319638 +:1039B000E217F30729F090819813F9CF1082F7CF1F +:1039C000089581E090E0E0910E01F0910F01E80F81 +:1039D000F91F1082019680319105A9F70895909101 +:1039E000CE01892B8093CE01089580959091CE01D0 +:1039F00089238093CE0108951092CE01089590916D +:103A0000CD01892B8093CD01089580959091CD01B2 +:103A100089238093CD0108951092CD01089590914E +:103A2000CC01892B8093CC01089580959091CC0195 +:103A300089238093CC0108951092CC01089580933E +:103A4000BB0108951092BB01089580910E019091E1 +:103A50000F01FC0131969C01205F3F4F80E0919166 +:103A600091118F5FE217F307D1F70895E0910E01EE +:103A7000F0910F018091CE018083E0910E01F091D1 +:103A80000F0190818091CD01892B8083E0910E01FF +:103A9000F0910F0190818091CC01892B80838091DE +:103AA000BB01882361F0E0910E01F0910F0190813C +:103AB000892B80830E94251D81111092BB0180916A +:103AC0000E0190910F010C94A211CF92DF92EF9210 +:103AD000FF926C01EE24FF24C114D104E104F1042F +:103AE00021F0C701B60120E101C020E0C72ED82E89 +:103AF000E92EFF24C114D104E104F10419F0285F78 +:103B0000C701B6016B017C0154E0F694E794D794A9 +:103B1000C7945A95D1F7C114D104E104F10419F006 +:103B20002C5FC701B6016B017C0142E0F694E7947B +:103B3000D794C7944A95D1F7C114D104E104F10494 +:103B400019F02E5FC701B601DC01CB01B695A79530 +:103B500097958795892B8A2B8B2B09F02F5F822FC6 +:103B6000FF90EF90DF90CF9008958091E601843030 +:103B700021F11092D00120E488E190E00FB6F89492 +:103B8000A895809360000FBE2093600080E00E94A3 +:103B90008F0A83B7817F846083BF83B7816083BFCF +:103BA0007894889583B78E7F83BF88E10FB6F894A9 +:103BB00080936000109260000FBE089508950895EC +:103BC000CF930E94DE1D0E94BF060E94DF1DC0E051 +:103BD0008C2F0E94AD07811104C0CF5FCE30C1F79A +:103BE00001C081E0CF9108950E9426170E9496118E +:103BF0000C948F0A82E084BD93E095BD9AEF97BD47 +:103C000080936E0008952FB7F8948091D101909120 +:103C1000D201A091D301B091D4012FBF0895CF92CA +:103C2000DF92EF92FF920F931F932FB7F89440917A +:103C3000D1015091D2016091D3017091D4012FBF75 +:103C40006A017B01EE24FF248C0120E030E0C016E5 +:103C5000D106E206F30610F4415051099A01281BDF +:103C6000390BC9011F910F91FF90EF90DF90CF901A +:103C700008951F920F920FB60F9211248F939F9366 +:103C8000AF93BF938091D1019091D201A091D301C4 +:103C9000B091D4010196A11DB11D8093D1019093E3 +:103CA000D201A093D301B093D401BF91AF919F9162 +:103CB0008F910F900FBE0F901F9018950E94930E3A +:103CC000F8942FEF87EA91E6215080409040E1F789 +:103CD00000C0000087E090EBDC018093F00190933E +:103CE000F101A093F201B093F3019CE088E10FB6DB +:103CF000F894A895809360000FBE90936000FFCF6A +:103D0000EF92FF920F931F93CF93DF93D82FC0E0D2 +:103D10008C2F0E94AD0700E010E0E82EF12CC701C7 +:103D2000002E02C0959587950A94E2F780FD06C0A3 +:103D30000F5F1F4F0630110591F709C0602F7C2FD0 +:103D400080E00E94B507D813F3CF81E004C0CF5FB5 +:103D5000CE30F1F680E0DF91CF911F910F91FF906F +:103D6000EF900895CF93C82F8CE20E94801E882385 +:103D700021F08C2FCF910C94801E80E0CF9108957C +:103D8000CF930E940720811102C00E94ED1FC5E65B +:103D9000C15049F00E94BF068FE39CE90197F1F7FB +:103DA00000C00000F5CF89E20E94B21E811113C14C +:103DB0008AE20E94B21E81110E94ED1F85E00E94DE +:103DC000B21E81110E945E1E0E9412208093CF01BC +:103DD00087E00E94B21E8823A9F18BE10E94B21EE7 +:103DE000882351F08091CF0181FB222720F991E0B7 +:103DF000922790FB81F90EC08EE00E94B21E8823AC +:103E000061F08091CF0182FB222720F991E0922777 +:103E100090FB82F98093CF0115C080E10E94B21E11 +:103E20009091CF01882341F093FB222720F981E074 +:103E3000822780FB93F904C0892F809580FB90F93D +:103E40009093CF018091CF010E9416200E942420E0 +:103E50008093EF0180EE0E94B21E882341F0809192 +:103E6000EF01982F909590FB80F98093EF0189E303 +:103E70000E94B21E882359F08091EF0181FB222716 +:103E800020F991E0922790FB81F98093EF0182EE77 +:103E90000E94B21E882359F08091EF0182FB2227F5 +:103EA00020F991E0922790FB82F98093EF0186EE52 +:103EB0000E94B21E882359F08091EF0183FB2227D4 +:103EC00020F991E0922790FB83F98093EF0183EE34 +:103ED0000E94B21E882359F08091EF0184FB2227B3 +:103EE00020F991E0922790FB84F98093EF0185E31C +:103EF0000E94B21E882359F08091EF0185FB222792 +:103F000020F991E0922790FB85F98093EF0181E3FE +:103F10000E94B21E882359F08091EF0186FB222770 +:103F200020F991E0922790FB86F98093EF0181E1DF +:103F30000E94B21E882359F08091EF0187FB22274F +:103F400020F991E0922790FB87F98093EF0180910F +:103F5000EF010E9428208091EF0187FB882780F9DC +:103F600080930D0187E20E94B21EC82F8EE10E944D +:103F7000B21E8111C2608FE10E94B21E8111C46025 +:103F800080E20E94B21E8111C86081E20E94B21ECE +:103F90008111C06182E20E94B21E8111C06283E27F +:103FA0000E94B21E8111C06484E20E94B21E882366 +:103FB00011F0C06802C0CC2329F08C2F0E941F2072 +:103FC0006C2F03C00E941B20682F70E080E090E0FF +:103FD000CF910C94E21ACF9108956DEE7EEF80E0C0 +:103FE00090E00E94552660E082E090E00E94472623 +:103FF00060E083E090E00E94472660E084E090E08B +:104000000E94472660E085E090E00C94472680E01F +:1040100090E00E94412621E08D3E9E4F09F020E075 +:10402000822F089582E090E00C943926682F82E078 +:1040300090E00C94472683E090E00C943926682F9A +:1040400083E090E00C94472684E090E00C943926BD +:10405000682F84E090E00C9447268091D70180FF80 +:104060000BC06091130185E0689FB0011124759524 +:104070006795759567952BC081FF09C06091130105 +:1040800085E0689FB00111247595679520C082FF77 +:1040900007C06091130185E0689FB001112417C02B +:1040A0009091D8019923D1F060911201961788F769 +:1040B0002091130185E0289F90011124929FA00177 +:1040C000939F500D112470E0CA010E940B266038A6 +:1040D000710540F46115710539F002C065E070E0CA +:1040E000862F08958FE7089581E008958091D70184 +:1040F00080FF08C06091110170E075956795759516 +:10410000679521C081FF06C06091110170E075952F +:10411000679519C082FF04C06091110170E010C062 +:104120009091D8019923C1F0609110019617A0F7E2 +:1041300080911101899FC001112470E00E940B261B +:104140006038710528F46115710521F0862F0895F6 +:104150008FE7089581E0089561E070E0F4CF803F3B +:1041600021F40E942D20819504C0813F29F40E94F2 +:104170002D208093DB010895823F21F40E942D20A1 +:10418000819504C0833F29F40E942D208093DA0199 +:104190000895893F19F40E94762005C08A3F31F4C2 +:1041A0000E94762081958093DC0108958B3F21F455 +:1041B0000E947620819504C08C3F29F40E947620CD +:1041C0008093DD010895843F21F48091D9018160BD +:1041D00017C0853F21F48091D901826011C0863FCC +:1041E00021F48091D90184600BC0873F21F4809134 +:1041F000D901886005C0883F31F48091D901806180 +:104200008093D90108958D3F21F48091D701816079 +:104210000BC08E3F21F48091D701826005C08F3F93 +:1042200029F48091D70184608093D7010895803F5D +:1042300039F48091DB0187FF6CC01092DB0169C00B +:10424000813F29F48091DB011816BCF362C0909184 +:10425000DA01823F29F497FF5CC01092DA0159C05D +:10426000833F19F41916CCF354C0893F41F480916F +:10427000DC0118160CF04DC01092DC014AC08A3FD8 +:1042800029F48091DC0187FF44C0F6CF8B3F39F4DD +:104290008091DD0187FF3DC01092DD013AC08C3F67 +:1042A00029F48091DD011816BCF333C0843F21F45A +:1042B0008091D9018E7F17C0853F21F48091D9016B +:1042C0008D7F11C0863F21F48091D9018B7F0BC077 +:1042D000873F21F48091D901877F05C0883F31F461 +:1042E0008091D9018F7E8093D90113C08D3F21F435 +:1042F0008091D7018E7F0BC08E3F21F48091D70132 +:104300008D7F05C08F3F29F48091D7018B7F8093EB +:10431000D7018091DA0181110EC08091DB018111FA +:104320000AC08091DC01811106C08091DD018111FC +:1043300002C01092D801089589ED91E00E94AD115C +:104340000E94031E9093D6018093D50108951F9378 +:10435000CF93DF938091D5019091D6010E940F1EDB +:10436000AC019091D801992321F02091140130E003 +:1043700006C0209115018AE0289F90011124421760 +:10438000530708F486C08091DA01C091DB01D09117 +:10439000DC011091DD01811107C0C11176C0D1117E +:1043A00074C0111172C075C09F3F19F09F5F909348 +:1043B000D801181624F40E942D208093DA018091F0 +:1043C000DA0187FF05C00E942D2081958093DA01D4 +:1043D0001C1624F40E942D208093DB018091DB01C8 +:1043E00087FF05C00E942D2081958093DB0160919D +:1043F000DA01662339F1C091DB01CC2319F177276B +:1044000067FD7095872F972F0E941C2523E333E3C8 +:1044100043E35FE30E9480250E94E9246093DA0170 +:104420006C2F772767FD7095872F972F0E941C258B +:1044300023E333E343E35FE30E9480250E94E92402 +:104440006093DB011D1624F40E9476208093DC012A +:104450008091DC0187FF05C00E94762081958093C2 +:10446000DC01111624F40E9476208093DD018091F6 +:10447000DD0187FF05C00E94762081958093DD01D4 +:10448000DF91CF911F910C949C219F3F09F08ECF1B +:1044900096CFDF91CF911F910895E9EDF1E085E08E +:1044A000DF011D928A95E9F71092D8011092D70189 +:1044B0000895833081F128F4813059F08230D1F0B1 +:1044C0000895853009F449C0B8F1863009F456C022 +:1044D000089580911501262F30E0280F311D2F3FC0 +:1044E000310524F4680F6093150108958FEF8093D0 +:1044F0001501089580911401262F30E0280F311DF9 +:104500002F3F310524F4680F6093140108958FEF55 +:1045100080931401089580911301262F30E0280F15 +:10452000311D2F3F310524F4680F60931301089566 +:104530008FEF80931301089580911201262F30E0B0 +:10454000280F311D2F3F310524F4680F60931201AD +:1045500008958FEF80931201089580911101262F05 +:1045600030E0280F311D2F3F310524F4680F609390 +:10457000110108958FEF809311010895809110012A +:10458000262F30E0280F311D2F3F310524F4680F0E +:104590006093100108958FEF809310010895833088 +:1045A00011F128F4813049F0823091F0089585307E +:1045B00081F120F18630C1F10895809115016817CD +:1045C00020F4861B8093150108951092150108951B +:1045D00080911401681720F4861B809314010895BC +:1045E00010921401089580911301681720F4861B1E +:1045F0008093130108951092130108958091120180 +:10460000681720F4861B80931201089510921201FE +:10461000089580911101681720F4861B8093110181 +:10462000089510921101089580911001681720F4E7 +:10463000861B8093100108951092100108950F9326 +:104640001F938D3109F46BC008F03FC08E3009F420 +:104650007FC0C0F4873009F469C068F4863009F07F +:10466000B1C08091CF01817F8E7F8093CF0181E0A7 +:104670008093DF01A8C0883009F4A2C08B3009F410 +:104680009FC0A0C0863109F49BC078F4803109F442 +:1046900072C0813109F096C00E94261790910D01D9 +:1046A00081E0892780930D018BC0893109F488C08E +:1046B0008B3109F087C08091CF0181FB222720F93F +:1046C00091E0922790FB81F94CC0853309F470C0CA +:1046D00048F4873209F46CC008F459C0893209F4EF +:1046E00067C070C0833438F48A3308F04EC0883312 +:1046F00009F466C067C0833409F45AC0883409F0ED +:1047000061C00E9426170FEF13ED20E30150104007 +:104710002040E1F700C000000E945E1E51C00E94D0 +:10472000A3240E9496110E948F0A4AC09091CF0143 +:10473000892F8095817080FB90F929F096609860B0 +:104740009093CF0140C0997F977F9093CF0138C05D +:104750008091CF0182FB222720F991E0922790FBE4 +:1047600082F98093CF01992359F18091CF01816023 +:104770008093CF0125C08091CF0183FB222720F9B0 +:1047800091E0922790FB83F9ECCF895301C08D51C2 +:1047900041E050E060E070E08A019B0104C0000F3E +:1047A000111F221F331F8A95D2F7C901B80104C017 +:1047B00061E070E080E090E00E94E21A0E9426171B +:1047C00081E001C080E01F910F91089580E008957D +:1047D00080E00895CF93C82F8091DF01813079F078 +:1047E00018F08230E9F187C0E0910E01F0910F01DD +:1047F0008081813169F0823209F07FC009C0E09187 +:104800000E01F0910F018081813111F0823261F44B +:104810008C2F0E94E623811104C08C2F0E941F233D +:104820001DC081E090E01AC08C2F0E94E823811106 +:1048300014C0C43179F048F4CB3079F0C03109F0BC +:1048400060C082E08093DF0108C0C93219F0C8332C +:1048500021F057C01092DF0154C081E0817053C035 +:10486000C93289F118F5C43171F1A8F4C73009F0E3 +:1048700046C08AE08093150194E19093140193E07F +:10488000909313018093120188E08093110188E2D4 +:104890008093100134C0CE51C63088F5EC2FF0E083 +:1048A000E65DFE4F80818093DE0129C0CE34E9F0C1 +:1048B00020F4CB3421F56AE013C0C13579F0C2355C +:1048C000F1F461E00DC08091DE01882319F01092AF +:1048D000DE0115C081E08093DF0115C061E006C0F4 +:1048E0008091DE010E9459220AC06AE08091DE01B7 +:1048F0000E94CF2204C01092DF0180E004C081E05A +:1049000002C080E0ABCFCF910895E1E8F0E0808174 +:10491000886080838081816080838FB7F89493E082 +:104920009093890090ED909388008FBF0895EFE6F3 +:10493000F0E08081826080830895EFE6F0E080817E +:104940008D7F80830895EFE6F0E0908182E08927F3 +:10495000808308951F920F920FB60F9211242F9308 +:104960003F934F935F936F937F938F939F93AF93F7 +:10497000BF93EF93FF938091E0019091E101019645 +:104980009093E1018093E001811103C082E00E94D5 +:104990008F0AE091E101E695E695F0E0E854F84FE2 +:1049A000E4918091E0018E1303C080E00E948F0AA1 +:1049B000FF91EF91BF91AF919F918F917F916F91F7 +:1049C0005F914F913F912F910F900FBE0F901F90CD +:1049D000189504D06894B1118DC0089570D088F0F6 +:1049E0009F5790F0B92F9927B751A0F0D1F0660FDB +:1049F000771F881F991F1AF0BA95C9F712C0B130F6 +:104A000081F077D0B1E0089574C0672F782F8827A0 +:104A1000B85F39F0B93FCCF3869577956795B39534 +:104A2000D9F73EF490958095709561957F4F8F4FA3 +:104A30009F4F0895E89409C097FB3EF490958095A8 +:104A4000709561957F4F8F4F9F4F9923A9F0F92F54 +:104A500096E9BB279395F695879577956795B795D2 +:104A6000F111F8CFFAF4BB0F11F460FF1BC06F5FB8 +:104A70007F4F8F4F9F4F16C0882311F096E911C0CA +:104A8000772321F09EE8872F762F05C0662371F0EB +:104A900096E8862F70E060E02AF09A95660F771FFF +:104AA000881FDAF7880F9695879597F9089557FD2F +:104AB0009058440F551F59F05F3F71F04795880F8C +:104AC00097FB991F61F09F3F79F087950895121623 +:104AD00013061406551FF2CF4695F1DF08C01616CF +:104AE00017061806991FF1CF869571056105089480 +:104AF0000895E894BB2766277727CB0197F9089597 +:104B00000BD078C069D028F06ED018F0952309F04A +:104B10005AC05FC01124EECFCADFA0F3959FD1F336 +:104B2000950F50E0551F629FF001729FBB27F00D5B +:104B3000B11D639FAA27F00DB11DAA1F649F6627B0 +:104B4000B00DA11D661F829F2227B00DA11D621FFF +:104B5000739FB00DA11D621F839FA00D611D221FB9 +:104B6000749F3327A00D611D231F849F600D211D9D +:104B7000822F762F6A2F11249F5750408AF0E1F040 +:104B800088234AF0EE0FFF1FBB1F661F771F881F89 +:104B900091505040A9F79E3F510570F014C0AACF24 +:104BA0005F3FECF3983EDCF3869577956795B79574 +:104BB000F795E7959F5FC1F7FE2B880F911D96959E +:104BC000879597F9089597F99F6780E870E060E00E +:104BD00008959FEF80EC089500240A941616170696 +:104BE00018060906089500240A94121613061406DE +:104BF00005060895092E0394000C11F4882352F041 +:104C0000BB0F40F4BF2B11F460FF04C06F5F7F4FF8 +:104C10008F4F9F4F089597FB072E16F4009407D0EF +:104C200077FD09D00E94252607FC05D03EF490951B +:104C300081959F4F0895709561957F4F0895EE0F70 +:104C4000FF1F0590F491E02D0994AA1BBB1B51E1B5 +:104C500007C0AA1FBB1FA617B70710F0A61BB70BEC +:104C6000881F991F5A95A9F780959095BC01CD0191 +:104C70000895F999FECF92BD81BDF89A992780B524 +:104C80000895A8E1B0E042E050E00C945C26262FA5 +:104C9000F999FECF1FBA92BD81BD20BD0FB6F89421 +:104CA000FA9AF99A0FBE019608950E944726272F77 +:104CB0000C944826DC01CB01FC01F999FECF06C01B +:104CC000F2BDE1BDF89A319600B40D9241505040CA +:084CD000B8F70895F894FFCF36 +:104CD8002002910A1F0BFC0AC80A940A0101BC01B0 +:104CE80028080A03140A3F4D363979072C07F606B7 +:104CF800BD065006690682069B06010203040506E6 +:044D0800070809008F :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png Binary files differindex 8e709ee260..d442a992c8 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png diff --git a/keyboard/ergodox_ez/keymaps/osx_de/readme.md b/keyboard/ergodox_ez/keymaps/osx_de/readme.md index 44d7a334e9..5011a9dd62 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/readme.md +++ b/keyboard/ergodox_ez/keymaps/osx_de/readme.md @@ -11,6 +11,12 @@ Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyb - der Zehnerblock wurde in eine eigene Layer umgezogen - die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). + + ------------------------------ @@ -26,3 +32,10 @@ This is only a little tweak of the existing default layout for the ErgoDox keyb - the symbollayer now has only symbols - the number block was moved to a special layer - meh and hyper went down to the thumb block + +# Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). + diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c index 70ac8f01f2..72ed195eb7 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -1,229 +1,153 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" #include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" +#include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define ADNW 3 // media keys -#define NUMB 4 // number keys - +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define QWERTZ 3 +#define NUMB 4 +#define UNUSED 0 +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* - -/* Keymap 0: ADNW-Koy layer - * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | K | . | O | , | Y | CMD | | CMD | V | G | C | L | ß | Z | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |</L1| ^ |AltShf| Left | Right| | Up | Down | CMD-SHIFT | ´ | //L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | L1 | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Enter | Space| - * | |ace | End | | PgDn | | | - * `--------------------' `----------------------' - */ -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_TRNS, - KC_TRNS, KC_H, KC_A, KC_E, KC_I, KC_U, - KC_TRNS, CTL_T(KC_X),KC_Q, DE_AE, DE_UE, DE_OE, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, - KC_TRNS, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, - KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), - KC_TRNS, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | ! | ? | | | | | \ | [ | ] | | | # | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_GRV,LSFT(KC_GRV),DE_EXLM,DE_QST,KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, LALT(LSFT(KC_7)),DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,LALT(KC_7),LALT(KC_N),KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: qwertz layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |</L1| ^° |AltShf| Left | Right| | Up | Down | CMD-SHIFT | + | #/L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | MDIA | Meh | | Hyper| NUM | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Back-| Del |------| |------| Enter | Space| - * | Space| | End | | PgDn | | | - * `--------------------' `----------------------' - */ - -[BASE] = KEYMAP( // layer 3 : default qwertz layout - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, - TG(3), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, - LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - TG(2), MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC,KC_DEL,KC_END, - // right hand - LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, - KC_H, KC_J, KC_K, KC_L, KC_SCLN,LT(MDIA,DE_AE), - KC_RALT,KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,LGUI(KC_LSFT),KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), TG(4), - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), -//numblock -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), +[BASE]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, + TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, + KC_LSFT, CTL_T(KC_X), KC_Q, DE_AE, DE_UE, DE_OE, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + TG(MDIA), MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_OSX_MINS, + KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, + KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), + KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), TG(NUMB), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_LESS, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, + KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +[QWERTZ]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_TRNS, MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_AE), + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), KC_TRNS, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[NUMB]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(ADNW) // FN2 - Momentary Layer 2 (ADNW) + }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: +static uint16_t start; +switch(id) { +case UNUSED: +//Macro: UNUSED//----------------------- + + + + + if (record->event.pressed) { register_code(KC_RSFT); } else { unregister_code(KC_RSFT); } - break; - } - return MACRO_NONE; + + + +break; +} +return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -234,31 +158,18 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); +uint8_t layer = biton32(layer_state); + +ergodox_board_led_off(); +ergodox_right_led_1_off(); +ergodox_right_led_2_off(); +ergodox_right_led_3_off(); +switch (layer) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } +default: +// none +break; +} }; + diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex index 56448283d2..f574150e34 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex @@ -1,1122 +1,1171 @@ -:100000000C9466020C94AD020C94AD020C94AD02FB
-:100010000C94AD020C94AD020C94AD020C94AD02A4
-:100020000C94AD020C94AD020C94CF0B0C94A10C6B
-:100030000C94AD020C94AD020C94AD020C94AD0284
-:100040000C94AD020C9415210C94AD020C94AD02ED
-:100050000C94AD020C94A71A0C94AD020C94AD0252
-:100060000C94AD020C94AD020C94AD020C94AD0254
-:100070000C94AD020C94AD020C94AD020C94AD0244
-:100080000C94AD020C94AD020C94AD020C94AD0234
-:100090000C94AD020C94AD020C94AD020C94AD0224
-:1000A0000C94AD020C94AD020C94AD020E0D300D0B
-:1000B000230E300D230E750D980D230EED0D000E41
-:1000C000EA10EA10191119115C119611A313A31368
-:1000D000AF11A313A412A4127713A313A3138E13A7
-:1000E0000000F0A1F0A329002B000354E1003581AA
-:1000F00000001E00140004001D7164004D001F006C
-:100100001A0016001B00E1044C0020000800070044
-:10011000060050002A0021001500090019004F00B8
-:100120004A00220017000A000500000002541908C6
-:10013000E3000000E20000002E770608E700000060
-:10014000E60000002E7F23001C000B0011000000C1
-:100150000454240018000D00100052004B0025002C
-:100160000C000E00360051002C00260012000F007B
-:100170003700E108280027001300330038713000F1
-:100180004E002D002F003482E50031810000010077
-:100190000100010001000100000001000100010058
-:1001A00001000100010001000100500001000100F8
-:1001B0000100010052005100010001000100010096
-:1001C00001004F00010001000100010001000100D9
-:1001D000010000000100010001000000010000001A
-:1001E00001000100010000000100000001003F00CB
-:1001F00052005100230200000100400024002100B1
-:100200001E00270001004100250022001F003700CA
-:1002100001004200260023002000270001004300C7
-:100220003002300024022E0001004400450001008D
-:1002300001000100000001000100010001000100B7
-:100240000000010001000100FB00010001000100AD
-:100250000100F200F900010001000100F000F100CE
-:10026000FA00F400010001000100F300FC00F500B9
-:100270000100010001000100F60000000100010082
-:100280000100000001000000010001000100000069
-:100290000100000001000100010001000100000058
-:1002A0000100010001000100A800A90001000100F7
-:1002B00001000100AC00AA00B6000100010001002D
-:1002C000AB0050000100010001000100520051008C
-:1002D0000100AE000100010001004F000000160304
-:1002E0004500720067006F0044006F007800200036
-:1002F00045005A00000016034500720067006F00B9
-:1003000044006F007800200045005A0000000403FC
-:10031000090409026D00040100A0FA0904000001AB
-:1003200003010100092111010001223F000705819D
-:100330000308000A09040100010301020009211158
-:10034000010001224D000705820308000A0904028A
-:1003500000010300000009211101000122360007FD
-:1003600005830308000A09040300010300000009D3
-:100370002111010001223900070584031000011238
-:1003800001100100000008EDFE071301000102004A
-:100390000105010906A101050719E029E715002556
-:1003A0000195087501810205081901290595057552
-:1003B000019102950175039101050719002977152F
-:1003C000002501957875018102C005010980A10110
-:1003D000850216010026B7001A01002AB700751021
-:1003E00095018100C0050C0901A1018503160100DA
-:1003F000269C021A01002A9C02751095018100C0FA
-:1004000005010902A1010901A10005091901290538
-:10041000150025019505750181029501750381017E
-:100420000501093009311581257F9502750881067E
-:1004300009381581257F950175088106050C0A3854
-:10044000021581257F950175088106C0C005010947
-:1004500006A101050719E029E71500250195087592
-:100460000181029501750881010508190129059589
-:100470000575019102950175039101050719002980
-:10048000FF150025FF950675088100C000000000DB
-:1004900000000000000000010204060A0F17202CD3
-:1004A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9CF
-:1004B000DAC7B39D87715D4A3A2C20170F0A0604EC
-:1004C00002010000000000000000000011241FBE17
-:1004D000CFEFDAE0DEBFCDBF04B603FE27C08091C8
-:1004E000ED019091EE01A091EF01B091F001873004
-:1004F000904BA740B04BD1F41092ED011092EE0159
-:100500001092EF011092F00114BE84B7877F84BF70
-:100510000FB6F894A8958091600088618093600080
-:10052000109260000FBEE0E0FFE3099511E0A0E04B
-:10053000B1E0ECECF5E402C005900D92A433B107F4
-:10054000D9F721E0A4E3B1E001C01D92AD3EB207AE
-:10055000E1F70E9416090C94E4220C94000061114A
-:100560000BC0FC018281882321F085EE0E94840F5C
-:1005700003C085EE0E944C1080E090E0089508953D
-:100580006091B1017091B2018091B3019091B40179
-:100590000E94D41956985E9825982D9826982E98E2
-:1005A00027982F98823061F018F4813031F0089547
-:1005B000833059F0843039F00895259A2D9A0895A2
-:1005C000269A2E9A0895259A2D9A279A2F9A089559
-:1005D0000C94C00256985E9825982D9826982E98CF
-:1005E00027982F988FEF90E0909389008093880050
-:1005F00090938B0080938A0090938D0080938C0061
-:10060000259A2D9A2FEF80E792E02150804090406C
-:10061000E1F700C00000269A2E9A2FEF80E792E0C3
-:10062000215080409040E1F700C00000279A2F9AA7
-:100630002FEF80E792E0215080409040E1F700C02A
-:10064000000025982D982FEF80E792E02150804000
-:100650009040E1F700C0000026982E982FEF80E729
-:1006600092E0215080409040E1F700C000002798C0
-:100670002F9856985E9825982D9826982E9827980A
-:100680002F98089589EA8093800089E08093810003
-:1006900024982C983F988AB18F748AB96E98479A9B
-:1006A0008BB1806B8BB9769A0E94EA020C94BF02E0
-:1006B00080E2809300018091340181110EC00E947C
-:1006C000A70381E0809334012FEF83ED90E3215065
-:1006D00080409040E1F700C0000080E40E94AD033C
-:1006E0008093000181112EC00E94D70380930001E6
-:1006F000811128C00E94D70380930001811122C07C
-:100700008FE30E94D7038093000181111BC00E94D8
-:10071000CF0380E40E94AD0380930001811112C0D9
-:100720008CE00E94D7038093000181110BC00E94CE
-:10073000D70380930001811105C08FE30E94D70386
-:10074000809300010E94CF038091000108951092D0
-:10075000B9008AE08093B800089594EA9093BC00B1
-:100760009091BC0097FFFCCF9091B900987F983092
-:1007700021F0903111F081E008958093BB0084E86E
-:100780008093BC008091BC0087FFFCCF8091B900B2
-:10079000887F883111F0803471F780E0089584E912
-:1007A0008093BC008091BC0084FDFCCF08958093B1
-:1007B000BB0084E88093BC008091BC0087FFFCCF25
-:1007C0009091B900987F81E0983209F480E0089513
-:1007D00084E88093BC008091BC0087FFFCCF8091AF
-:1007E000BB00089580910001811115C080E40E9432
-:1007F000AD038093000181110CC082E10E94D703F8
-:1008000080930001811105C08FEF0E94D703809370
-:1008100000010E94CF0384B1807F84B985B1807FBD
-:1008200085B98AB1837F8AB98BB1837F8BB93E98B2
-:10083000469808950E945803809300010E94F20395
-:1008400080B38C7080BB81B3836F81BBE4E4F1E043
-:10085000A6E3B1E011921D9281E0E235F807D1F7ED
-:100860000C9442039F92AF92BF92CF92DF92EF928D
-:10087000FF920F931F93CF93DF9380910001882302
-:1008800079F0809135018F5F80933501811108C027
-:100890000E94580380930001811102C00E94EA0265
-:1008A00086E3E82E81E0F82E8701C0E0D0E0BB248B
-:1008B000B39492E0A92ECC24C394D12CC730D10597
-:1008C00000F580910001811164C080E40E94AD03B5
-:1008D00080930001811112C082E10E94D7038093AE
-:1008E000000181110BC0C6010C2E01C0880F0A94B3
-:1008F000EAF780950E94D703809300010E94CF03FE
-:1009000048C0CA30A1F028F4C83059F0C93061F0AD
-:1009100005C0CC3089F070F0CD3089F0209A28984D
-:1009200010C0219A29980DC0229A2A980AC0239AA9
-:100930002B9807C0529A01C0539A5B9802C03E9A06
-:100940004698E0EAEA95F1F78FB181708B257999A5
-:1009500002C032E001C030E0832B7C9902C034E059
-:1009600001C030E0832B7D9902C028E001C020E067
-:10097000822B7E9902C090E101C090E0892B9FB14B
-:100980009095991F9927991F9295990F907E892B81
-:100990000FC08091000181114AC080E40E94AD0324
-:1009A00080930001882381F1912C0E94CF03892D2F
-:1009B000D8019C91981719F08C93A09201010E9484
-:1009C000F20321960F5F1F4FCE30D10509F076CF8D
-:1009D00080910101882369F181508093010188236E
-:1009E00039F0EFE9FFE03197F1F700C0000021C0D6
-:1009F000E4E4F1E0D7018D917D018193B4E4EB163D
-:100A0000B1E0FB06B9F715C083E10E94D7038093DC
-:100A100000018111C9CF81E40E94AD0380930001E0
-:100A20008111C2CF0E94E803982E9094BECF80E03F
-:100A3000BFCF0E94E80281E0DF91CF911F910F911B
-:100A4000FF90EF90DF90CF90BF90AF909F90089570
-:100A5000E82FF0E0EC5BFE4F8081089508958B3B1A
-:100A6000910580F4883A910548F5853A9105D8F4C6
-:100A70008430910508F0B2C0019709F06EC081E0A2
-:100A800090E00895803E910508F467C0883E910586
-:100A900008F4A4C09C01205F31092031310508F021
-:100AA0005CC090650895853A910509F459C0863A6D
-:100AB000910509F058C082E890E40895883A9105BC
-:100AC00009F454C0893A910509F453C08A3A910552
-:100AD00009F452C08B3A910509F451C08C3A910542
-:100AE00009F450C08D3A910509F44FC0803B91053F
-:100AF00009F44EC08E3A910509F44DC08F3A910524
-:100B000009F44CC0813B910509F44BC0823B91052F
-:100B100009F44AC0833B910509F449C0843B91051F
-:100B200009F448C0853B910509F447C0863B91050F
-:100B300009F446C0873B910509F445C0883B9105FF
-:100B400009F444C0893B910509F443C08A3B9105EF
-:100B500009F442C080E094E4089580E090E00895B4
-:100B600081E890E4089583E890E4089582EE94E4A7
-:100B7000089589EE94E408958AEE94E4089585EB4F
-:100B800094E4089586EB94E4089587EB94E4089543
-:100B90008CEC94E408958DEC94E4089583E895E456
-:100BA00008958AE895E4089582E995E4089584E932
-:100BB00095E4089581E296E4089583E296E4089529
-:100BC00084E296E4089585E296E4089586E296E448
-:100BD000089587E296E408958AE296E408950895D8
-:100BE00024E5829FC0011124FC0126E0729FE00DE4
-:100BF000F11D1124E60FF11DEE0FFF1FEA51FF4F0B
-:100C0000859194910895880F991FFC01E05AF04056
-:100C1000859194910895880F991FFC01E052FF4F30
-:100C200085919491089524E5829FC0011124FC01CF
-:100C300046E0749FE00DF11D1124E60FF11DEE0F4B
-:100C4000FF1FEA51FF4F859194919C013A95211520
-:100C50004FE1340708F425C13F512115304120F4FC
-:100C60009F700E940B0608959C013053211530415E
-:100C700018F49927906C0895811520E5920769F47E
-:100C80000E94C5134FEF84E39CE0415080409040A8
-:100C9000E1F700C000000C94CC1A813020E59207E7
-:100CA00031F48091CC0181608093CC0108959C0146
-:100CB00030552115304108F05CC0292F33272F70A3
-:100CC000332721303105E9F4AC0164E0440F551FAE
-:100CD0006A95E1F744275370BC016370772702C01F
-:100CE000220F331F6A95E2F73C68242B352B73E003
-:100CF000880F991F7A95E1F780769927822B932B9D
-:100D000008952230310529F4982F8827816F906A41
-:100D1000089523303105A1F4AC0133E0440F551F91
-:100D20003A95E1F7407E57708370992721E030E0D3
-:100D300002C0220F331F8A95E2F7C9019C6816C0D2
-:100D40002430310531F5AC0123E0440F551F2A95BD
-:100D5000E1F7407E57708370992721E030E002C0B0
-:100D6000220F331F8A95E2F7C9019A68842B952BCD
-:100D700008959C0130572115304118F49F709062FE
-:100D800008959C0130582115304118F49F70906AE5
-:100D90000895803E9105E0F4803C910558F581333B
-:100DA000910509F46FC048F48932910509F463C0D4
-:100DB0008A32910509F46DC072C089339105E9F05A
-:100DC00082389105D1F08533910509F44DC067C093
-:100DD000833E910581F138F4803E9105B9F0823E61
-:100DE0009105D9F05CC0863E910561F1873E910581
-:100DF000A1F155C00E94030608952091DE0120FD57
-:100E000002C021FF4CC080EE90E049C08091DE011D
-:100E100080FFF9CF89E390E042C08091DE0182FF3C
-:100E20000EC08091DE0184FF03C080E090E037C0F7
-:100E300083EE90E034C08091DE0182FFF2CF82EE3B
-:100E400090E02DC08091DE0183FF0BC08091DE0118
-:100E500084FDEBCF87EE90E022C08091DE0183FF1E
-:100E6000F5CF86EE90E01BC08091DE0185FF07C0C4
-:100E700089E290E014C08091DE0185FFF9CF85E31F
-:100E800090E00DC08091DE0186FF07C08AE290E00D
-:100E900006C08091DE0186FFF9CF81E390E00E94D9
-:100EA0002F0508950895809162010895CF93DF93EF
-:100EB00000D01F92CDB7DEB79C018091E401843051
-:100EC00019F593E099833B832A839093E9008FEF90
-:100ED0009091E800815095FD06C095ED9A95F1F747
-:100EE00000008111F5CF8091E80085FF0DC040E042
-:100EF00050E063E070E0CE0101960E94C30980914A
-:100F0000E8008E778093E8000F900F900F90DF91AC
-:100F1000CF910895CF93DF9300D01F92CDB7DEB766
-:100F20002091E401243021F522E029839B838A83E8
-:100F300083E08093E9008FEF9091E800815095FD68
-:100F400006C095ED9A95F1F700008111F5CF8091DB
-:100F5000E80085FF0DC040E050E063E070E0CE01A6
-:100F600001960E94C3098091E8008E778093E80083
-:100F70000F900F900F90DF91CF9108959C01809179
-:100F8000E4018430F9F482E08093E9009FEF8091DE
-:100F9000E800915085FD06C085ED8A95F1F70000C7
-:100FA0009111F5CF8091E80085FF0CC040E050E042
-:100FB00065E070E0C9010E94C3098091E8008E7766
-:100FC0008093E8000895CF93DF93EC018091E401D2
-:100FD000843009F046C090910C019923D9F090918A
-:100FE0000D019923B9F08093E9008FEF9091E8000B
-:100FF000815095FD06C095E19A95F1F700008111A9
-:10100000F5CF8091E80085FF2CC040E050E060E122
-:1010100070E017C081E08093E9008FEF9091E800C5
-:10102000815095FD06C095ED9A95F1F7000081116C
-:10103000F5CF8091E80085FF14C040E050E068E003
-:1010400070E0CE010E94C3098091E8008E77809302
-:10105000E80080E1FE01A2E5B1E001900D928A95E1
-:10106000E1F7DF91CF9108958091E301811109C0EB
-:101070000E94540B0E94B10B8091E2008460809327
-:10108000E20008951092E301089508950C9402215E
-:101090000E94621A0E9408210E945C0E0C94520762
-:1010A00042E061EC81E00E94CD0A42E061EC82E026
-:1010B0000E94CD0A42E061EC83E00E94CD0A42E149
-:1010C00061EC84E00C94CD0A8091E601833009F450
-:1010D00055C030F4813071F0823009F48EC008952B
-:1010E0008A3009F47AC08B3009F460C0893009F085
-:1010F0009CC020C08091E501813A09F096C08091A2
-:10110000E800877F8093E8008091E9019091EA01EF
-:10111000892B21F460E182E591E003C060E080E08A
-:1011200090E070E00E940E0A8091E8008B77809337
-:10113000E80008958091E501813209F076C0809140
-:10114000E9019091EA01009719F0039709F06DC049
-:101150008091E800877F8093E8008091E80082FD1D
-:1011600005C08091E4018111F8CF5FC08091F1004A
-:10117000809362018091E8008B7753C08091E501F4
-:10118000813A09F052C08091E9019091EA01892BDE
-:1011900009F04BC08091E800877F8093E800809140
-:1011A000E80080FFFCCF80910C0136C08091E50102
-:1011B0008132D9F58091E9019091EA01892BA9F555
-:1011C0008091E800877F8093E8000E94020B809165
-:1011D000E70180930C010C94C5138091E5018132E5
-:1011E00021F58091E800877F8093E8000E94020B40
-:1011F0008091E8018093630108958091E501813A2F
-:10120000A1F48091E800877F8093E8008091E80056
-:1012100080FFFCCF809163018093F1008091E80012
-:101220008E778093E8000C94020B089584B7877F33
-:1012300084BF0FB6F894A895809160008861809370
-:101240006000109260000FBE90E080E80FB6F89446
-:1012500080936100909361000FBE0E94AB0E0E94CC
-:10126000540B0E94B10B8091E20084608093E200F5
-:1012700078940E943C0E0E94AD0E82E091E00E94A4
-:10128000570E0E94F0208091E401853069F40E949D
-:10129000241A8091E2018823B1F30E944E1A882318
-:1012A00091F30E94AD09EFCF0E94B30EECCF292F2E
-:1012B000332723303105C9F060F42130310581F046
-:1012C0002230310509F041C08DE690E022E133E0A3
-:1012D00040C021323105E1F02232310531F135C013
-:1012E00082E190E02FE733E034C099278130910507
-:1012F00049F028F0029749F5EEEDF2E005C0EEE086
-:10130000F3E002C0E6EFF2E0849190E09F0121C09B
-:101310006430D8F4E62FF0E0EE0FFF1FEE5DFE4FD5
-:101320002081318189E090E014C0643070F470E075
-:10133000FB01EE0FFF1FE65EFE4F20813181FB01B6
-:10134000EA5EFE4F808190E004C080E090E020E003
-:1013500030E0FA0131832083089580E189BD82E184
-:1013600089BD09B400FEFDCF8091D8008F7D8093A8
-:10137000D8008091E00082608093E0008091E000DE
-:1013800081FDFCCF0895CF92DF92EF92FF920F93F1
-:101390001F93CF93DF93EC018B016A010E94210B15
-:1013A000811133C0C114D10439F0F60180819181DB
-:1013B000081B190BC80FD91FE12CF12C01151105C1
-:1013C00019F18091E80085FD16C08091E8008E77C4
-:1013D0008093E800C114D10449F0F6018081918125
-:1013E000E80EF91EF182E08285E00FC00E94210B19
-:1013F000882321F30AC089918093F10001501109DB
-:10140000FFEFEF1AFF0ADACF80E0DF91CF911F9153
-:101410000F91FF90EF90DF90CF9008952091EB0116
-:101420003091EC012617370748F06115710539F442
-:101430002091E8002E772093E80001C0B901FC015B
-:1014400020E06115710579F18091E4018823F1F1C3
-:101450008530F1F18091E80083FD3CC08091E80087
-:1014600082FD2EC08091E80080FFEBCF2091F30039
-:101470008091F20090E0922B6115710551F0883057
-:10148000910538F421912093F10061507109019682
-:10149000F3CF21E0089709F020E08091E8008E77F3
-:1014A0008093E800CECF2111CFCF0AC08091E40114
-:1014B000882361F0853061F08091E80083FD0AC0E7
-:1014C0008091E80082FFF2CF80E0089582E00895E5
-:1014D00083E0089581E008952091EB013091EC01C3
-:1014E0002617370748F06115710539F42091E80097
-:1014F0002E772093E80001C0B901FC0120E06115BE
-:10150000710591F18091E401882309F440C0853090
-:1015100009F43FC08091E80083FD3DC08091E80060
-:1015200082FD2FC08091E80080FFE9CF2091F30079
-:101530008091F20090E0922B6115710559F088308E
-:10154000910540F424912093F10031966150710986
-:101550000196F2CF21E0089709F020E08091E800A1
-:101560008E778093E800CBCF2111CCCF0AC0809139
-:10157000E401882361F0853061F08091E80083FD0B
-:101580000AC08091E80082FFF2CF80E0089582E0F7
-:10159000089583E0089581E00895982F973068F5C5
-:1015A0009093E900981739F07091EC002091ED00CC
-:1015B0005091F00003C0242F762F50E021FD02C08F
-:1015C0009F5FECCF3091EB003E7F3093EB0030918A
-:1015D000ED003D7F3093ED003091EB0031603093B2
-:1015E000EB007093EC002093ED005093F0002091FD
-:1015F000EE0027FDE5CF80E008958F708093E9002D
-:1016000081E008958091E50187FF11C08091E80095
-:1016100082FD05C08091E4018111F8CF11C0809155
-:10162000E8008B770BC08091E401882349F080911A
-:10163000E80080FFF8CF8091E8008E778093E80083
-:1016400008952091E4003091E50095E64091EC008A
-:10165000842F817040FF23C08091E80080FD1DC071
-:101660008091E401882399F0853099F08091EB0016
-:1016700085FD11C04091E4005091E5002417350725
-:1016800029F3915011F09A01E1CF84E0089582E0AE
-:10169000089583E0089581E0089580E008954091E1
-:1016A000E80042FFDDCF08950E94C20B0E94CA0BE2
-:1016B000E0EEF0E0808181608083E8EDF0E0808101
-:1016C0008F77808319BCA7EDB0E08C918E7F8C93CF
-:1016D00080818F7E80831092E30108950F931F9382
-:1016E000CF93DF930E94C20B0E94CA0BC8EDD0E0DB
-:1016F00088818F77888388818068888388818F7DBF
-:10170000888319BC1092E4011092E0011092E2016A
-:101710001092E10100EE10E0F80180818B7F808360
-:1017200088818160888342E060E080E00E94CD0A89
-:10173000E1EEF0E080818E7F8083E2EEF0E0808158
-:1017400081608083808188608083F80180818E7FC2
-:101750008083888180618883DF91CF911F910F9171
-:101760000895E8EDF0E080818F7E8083E7EDF0E082
-:1017700080818160808384E082BF81E08093E30187
-:101780000C946E0BE8EDF0E080818E7F80831092E8
-:10179000E20008951092DA001092E10008951F927D
-:1017A0000F920FB60F9211242F933F934F935F9395
-:1017B0006F937F938F939F93AF93BF93EF93FF9319
-:1017C0008091E10082FF0BC08091E20082FF07C0A0
-:1017D0008091E1008B7F8093E1000E943B0E80911D
-:1017E000DA0080FF1FC08091D80080FF1BC080916D
-:1017F000DA008E7F8093DA008091D90080FF0DC0DF
-:1018000080E189BD82E189BD09B400FEFDCF81E0A0
-:101810008093E4010E94340805C019BC1092E401D1
-:101820000E9442088091E10080FF19C08091E2008F
-:1018300080FF15C08091E2008E7F8093E20080914E
-:10184000E20080618093E2008091D8008062809302
-:10185000D80019BC85E08093E4010E94460880917D
-:10186000E10084FF30C08091E20084FF2CC080E161
-:1018700089BD82E189BD09B400FEFDCF8091D80009
-:101880008F7D8093D8008091E1008F7E8093E1006E
-:101890008091E2008F7E8093E2008091E20081607F
-:1018A0008093E2008091E001882311F084E007C07A
-:1018B0008091E30087FD02C081E001C083E0809356
-:1018C000E4010E9448088091E10083FF29C08091D3
-:1018D000E20083FF25C08091E100877F8093E100D3
-:1018E00082E08093E4011092E0018091E1008E7F1C
-:1018F0008093E1008091E2008E7F8093E2008091EE
-:10190000E20080618093E20042E060E080E00E94BB
-:10191000CD0A8091F00088608093F0000E94450815
-:10192000FF91EF91BF91AF919F918F917F916F91B7
-:101930005F914F913F912F910F900FBE0F901F908D
-:1019400018951F920F920FB60F9211242F933F9369
-:101950004F935F936F937F938F939F93AF93BF93B7
-:10196000CF93DF93EF93FF93C091E900CF70809105
-:10197000EC00D82FD17080FDD0E81092E900809162
-:10198000F000877F8093F00078940E94E50C10921D
-:10199000E9008091F00088608093F000CD2BCF703B
-:1019A000C093E900FF91EF91DF91CF91BF91AF918B
-:1019B0009F918F917F916F915F914F913F912F9167
-:1019C0000F900FBE0F901F9018951F93CF93DF932A
-:1019D000CDB7DEB7AA970FB6F894DEBF0FBECDBF66
-:1019E000E5EEF1E08091F100819321E0ED3EF20718
-:1019F000C9F70E9464088091E80083FF24C18091A8
-:101A0000E5019091E601492F50E04A30510508F078
-:101A10001AC1FA01EA5AFF4F0C949922803881F0DA
-:101A2000823809F010C18091E9018F708093E9003C
-:101A30008091EB0085FB882780F91092E90006C0B1
-:101A40008091E1019091E201911182609091E80012
-:101A5000977F9093E8008093F1001092F100C8C046
-:101A6000282F2D7F09F0EFC0882319F0823061F014
-:101A7000EAC08091E701813009F0E5C0933009F0B8
-:101A800080E08093E2012BC08091E701811127C0A3
-:101A90008091E9018F7009F4D6C08093E90020910C
-:101AA000EB0020FF1CC0933021F48091EB0080629A
-:101AB00014C09091EB0090619093EB0021E030E036
-:101AC000A90102C0440F551F8A95E2F74093EA002E
-:101AD0001092EA008091EB0088608093EB001092F6
-:101AE000E9008091E800877F86C08111ACC0109129
-:101AF000E7011F778091E3008078812B8093E300DA
-:101B00008091E800877F8093E8000E94020B80911B
-:101B1000E80080FFFCCF8091E30080688093E300C1
-:101B2000111102C082E001C083E08093E4018BC008
-:101B30008058823008F087C08091E7019091E801D9
-:101B40008C3D53E0950779F583E08A838AE28983A7
-:101B50004FB7F894DE01139620E03EE051E2E32F08
-:101B6000F0E050935700E49120FF03C0E295EF703E
-:101B70003F5FEF708E2F90E0EA3010F0C79601C003
-:101B8000C0968D939D932F5F243149F74FBF80916D
-:101B9000E800877F8093E8006AE270E0CE0101965A
-:101BA0000E940E0A14C0AE014F5F5F4F6091E901C1
-:101BB0000E945709BC01892B09F445C09091E800A7
-:101BC000977F9093E80089819A810E946C0A8091A6
-:101BD000E8008B778093E80036C08038A1F58091CB
-:101BE000E800877F8093E8008091E0018093F10016
-:101BF0008091E8008E778093E8000E94020B23C05A
-:101C0000811121C08091E7019091E8019927029705
-:101C1000D4F48091E800877F8093E8008091E70109
-:101C20008093E0010E94020B8091E001811106C0C7
-:101C30008091E30087FD02C081E001C084E08093D1
-:101C4000E4010E9450088091E80083FF0AC080915F
-:101C5000E800877F8093E8008091EB0080628093AA
-:101C6000EB00AA960FB6F894DEBF0FBECDBFDF9192
-:101C7000CF911F9108950895CF938091E401882317
-:101C8000A1F0C091E900CF709091EC00892F817094
-:101C900090FD80E8C82B1092E9008091E80083FD58
-:101CA0000E94E50CCF70C093E900CF910895909306
-:101CB0006901809368010895E0916801F0916901DC
-:101CC000309721F00190F081E02D099480E0089593
-:101CD000E0916801F0916901309721F00280F38171
-:101CE000E02D09940895E0916801F0916901309721
-:101CF00021F00480F581E02D09940895209166017A
-:101D0000309167012817390771F09093670180932C
-:101D10006601E0916801F0916901309721F0068039
-:101D2000F781E02D099408952091640130916501B7
-:101D30002817390771F09093650180936401E09151
-:101D40006801F0916901309721F00084F185E02D60
-:101D50000994089508950C94AA0E0E94681A0E948E
-:101D60001A040C942E1BCF92DF92EF92FF920F93E6
-:101D70001F93CF93DF93CDB7DEB72B970FB6F894B1
-:101D8000DEBF0FBECDBF0E9432048BE6C82E81E0BD
-:101D9000D82E00E010E0E02E802F0E942805F601EA
-:101DA00041916F01F82EF426B1F40F5F1F4F0E30F2
-:101DB000110589F78FEF89838A831B820E94711A2C
-:101DC0008160782F9D838C8349815A816B818D81BD
-:101DD0000E94560F40C09091CC0191FF04C08B87A8
-:101DE0000E942E058B8520E030E04F2D50E0922F91
-:101DF000BA01022E02C0759567950A94E2F760FF5A
-:101E000024C02E83EF8221E030E0690102C0CC0CB7
-:101E1000DD1C9A95E2F790E08C219D21892B09F435
-:101E200020E028870E94711A8160782F9A8789871D
-:101E30004E815F8168858A850E94560FF801E559B9
-:101E4000FE4F8081C826C08206C02F5F3F4F2630DC
-:101E5000310569F6AACF0E94151E0E945C0E909172
-:101E60006A018917A1F00E945C0E80936A012B968B
-:101E70000FB6F894DEBF0FBECDBFDF91CF911F919B
-:101E80000F91FF90EF90DF90CF900C9452072B961C
-:101E90000FB6F894DEBF0FBECDBFDF91CF911F917B
-:101EA0000F91FF90EF90DF90CF900895CF93DF9345
-:101EB000CDB7DEB72B970FB6F894DEBF0FBECDBF00
-:101EC0004F83588769877A878B87DE01119686E072
-:101ED000FD0111928A95E9F785E0FE0137960190A0
-:101EE0000D928A95E1F749815A816B817C818D81C0
-:101EF0009E810E9459162B960FB6F894DEBF0FBE36
-:101F0000CDBFDF91CF910895CF93C82F882309F4D7
-:101F1000C1C0823859F40E945C0E81FDBBC089E3C8
-:101F20000E94F6180E94AE1989E30CC0833879F438
-:101F30000E945C0E80FDAEC083E50E94F6180E94F0
-:101F4000AE1983E50E943519CF910C94AE198438EF
-:101F500059F40E945C0E82FD9DC087E40E94F61831
-:101F60000E94AE1987E4EECF8CEF8C0F813A48F4D3
-:101F70008C2F0E94552081118DC08C2F0E94F61845
-:101F8000E3CF80E28C0F883048F4C77081E001C055
-:101F9000880FCA95EAF70E947719D6CF8BE58C0F88
-:101FA000833078F4C53A29F0C63A31F083E890E0FE
-:101FB00005C081E890E002C082E890E0CF910C94E7
-:101FC0007E0E88E58C0F833108F064C0C83A39F181
-:101FD000C93A41F1CA3A49F1CB3A51F1CC3A59F1F7
-:101FE000CD3A61F1C03B69F1CE3A71F1CF3A79F166
-:101FF000C13B81F1C23B89F1C33B91F1C43B99F1F3
-:10200000C53BA1F1C63BA9F1C73BB1F1C83BB9F152
-:10201000C93BC1F1CA3BC9F180E090E038C082EE13
-:1020200090E035C089EE90E032C08AEE90E02FC09B
-:1020300085EB90E02CC086EB90E029C087EB90E028
-:1020400026C08CEC90E023C08DEC90E020C083E8AB
-:1020500091E01DC08AE891E01AC082E991E017C0C2
-:1020600084E991E014C081E292E011C083E292E041
-:102070000EC084E292E00BC085E292E008C086E2E6
-:1020800092E005C087E292E002C08AE292E0CF913E
-:102090000C94940ECF910895882309F44BC0823894
-:1020A00059F40E945C0E81FF45C089E30E94F61836
-:1020B0000E94AE1989E30CC0833871F40E945C0E53
-:1020C00080FF38C083E50E94F6180E94AE1983E5B0
-:1020D0000E9435190C94AE19843859F40E945C0E94
-:1020E00082FF28C087E40E94F6180E94AE1987E498
-:1020F000EFCF9CEF980F913A58F390E2980F9830F9
-:1021000050F4877091E001C0990F8A95EAF7892F02
-:102110000E947D19DFCF9BE5980F933020F480E07B
-:1021200090E00C947E0E885A833120F480E090E099
-:102130000C94940E0895882321F00E9477190C9432
-:10214000AE190895882321F00E947D190C94AE19D0
-:102150000895BF92CF92DF92EF92FF920F931F9359
-:10216000CF93DF9300D000D000D0CDB7DEB77C0195
-:1021700085E0F701DE01119601900D928A95E1F755
-:10218000F70183819481892B09F4DDC290818181DB
-:102190008F3F19F49F3F09F4D6C2F70102812581D0
-:1021A00022952F7099838A8389819A812E830E9438
-:1021B000B518182FB92E0E94B4180E947B17EB2D6A
-:1021C000E295EF704E2F50E0FA01E05AFF4F2E815A
-:1021D0000C9499228B2D807F9B2D9F70F92E882344
-:1021E00019F0F29480EFF822002349F0FF2009F45F
-:1021F00057C28F2D0E9487190E94AE1951C2812F9C
-:102200000E944C10FF2009F49EC28F2D0E948D1950
-:1022100026960FB6F894DEBF0FBECDBFDF91CF91EB
-:102220001F910F91FF90EF90DF90CF90BF900C9493
-:10223000AE193B2D307F8B2D8F70303211F082958F
-:10224000807F112319F0113021F12CC00023B9F047
-:10225000222309F490C1213009F08DC126960FB6D2
-:10226000F894DEBF0FBECDBFDF91CF911F910F91CC
-:10227000FF90EF90DF90CF90BF900C94971922239E
-:1022800019F0213009F45FC28E830E949A198E8161
-:1022900086C1002321F0223008F055C26CC1211103
-:1022A00052C27DC1002321F0222309F464C1F8C188
-:1022B000222309F474C109C28B2D869586958370FB
-:1022C00019F08130D1F03FC2002321F0812F9B2DE6
-:1022D000937002C080E090E026960FB6F894DEBFBF
-:1022E0000FBECDBFDF91CF911F910F91FF90EF9067
-:1022F000DF90CF90BF900C947E0E002321F0812FB1
-:102300009B2D937002C080E090E026960FB6F89463
-:10231000DEBF0FBECDBFDF91CF911F910F91FF9018
-:10232000EF90DF90CF90BF900C94940E812F0023FC
-:1023300019F00E941D1D02C00E94851D26960FB631
-:10234000F894DEBF0FBECDBFDF91CF911F910F91EB
-:10235000FF90EF90DF90CF90BF900C940A1E8B2DD2
-:10236000837009F075C00111EEC1812F82958695A9
-:102370008770880F880F912F9F70C92ED12CE12C68
-:10238000F12C082E04C0CC0CDD1CEE1CFF1C0A94A2
-:10239000D2F714FF12C00FE010E020E030E004C0DC
-:1023A000000F111F221F331F8A95D2F7C901B801F0
-:1023B000609570958095909503C060E070E0CB01CA
-:1023C0004B2D4695469543704230C1F060F56C291F
-:1023D0007D298E299F29413051F126960FB6F89418
-:1023E000DEBF0FBECDBFDF91CF911F910F91FF9048
-:1023F000EF90DF90CF90BF900C94A2176C297D29AD
-:102400008E299F2926960FB6F894DEBF0FBECDBF4A
-:10241000DF91CF911F910F91FF90EF90DF90CF90C0
-:10242000BF900C94BE170E94A217C701B601269652
-:102430000FB6F894DEBF0FBECDBFDF91CF911F91D5
-:102440000F91FF90EF90DF90CF90BF900C94861784
-:10245000002319F08B2D817001C08695882309F423
-:1024600072C1812F829586958770880F880F912F72
-:102470009F70C92ED12CE12CF12C082E04C0CC0C5D
-:10248000DD1CEE1CFF1C0A94D2F714FF12C00FE0F3
-:1024900010E020E030E004C0000F111F221F331FA6
-:1024A0008A95D2F7C901B80160957095809590958D
-:1024B00003C060E070E0CB014B2D4695469543701C
-:1024C0004230C1F060F56C297D298E299F29413069
-:1024D00051F126960FB6F894DEBF0FBECDBFDF9147
-:1024E000CF911F910F91FF90EF90DF90CF90BF9011
-:1024F0000C947C186C297D298E299F2926960FB66D
-:10250000F894DEBF0FBECDBFDF91CF911F910F9129
-:10251000FF90EF90DF90CF90BF900C9498180E949E
-:102520007C18C701B60126960FB6F894DEBF0FBE21
-:10253000CDBFDF91CF911F910F91FF90EF90DF9072
-:10254000CF90BF900C946018103FD1F118F4103E5A
-:1025500050F4A1C0123F09F463C008F44CC0133F0B
-:1025600009F473C098C01F708B2D8F710023A1F0E8
-:102570000E94F917812F26960FB6F894DEBF0FBE82
-:10258000CDBFDF91CF911F910F91FF90EF90DF9022
-:10259000CF90BF900C949B100E941A18812F269602
-:1025A0000FB6F894DEBF0FBECDBFDF91CF911F9164
-:1025B0000F91FF90EF90DF90CF90BF900C94A210FE
-:1025C0000023A9F02111BFC08B2D8F7126960FB665
-:1025D000F894DEBF0FBECDBFDF91CF911F910F9159
-:1025E000FF90EF90DF90CF90BF900C943F18223077
-:1025F00008F0A9C0E9CF0023A9F08B2D8F71269692
-:102600000FB6F894DEBF0FBECDBFDF91CF911F9103
-:102610000F91FF90EF90DF90CF90BF900C94F9173F
-:10262000002359F38B2D8F7126960FB6F894DEBFD9
-:102630000FBECDBFDF91CF911F910F91FF90EF9013
-:10264000DF90CF90BF900C941A18002399F08B2D37
-:102650008F7126960FB6F894DEBF0FBECDBFDF9107
-:10266000CF911F910F91FF90EF90DF90CF90BF908F
-:102670000C94E41726960FB6F894DEBF0FBECDBFBC
-:10268000DF91CF911F910F91FF90EF90DF90CF904E
-:10269000BF900C94DA170023A9F0222309F4ADCFE0
-:1026A000812F26960FB6F894DEBF0FBECDBFDF9107
-:1026B000CF911F910F91FF90EF90DF90CF90BF903F
-:1026C0000C94840F222309F4ADCF812F26960FB6E8
-:1026D000F894DEBF0FBECDBFDF91CF911F910F9158
-:1026E000FF90EF90DF90CF90BF900C944C104B2D4B
-:1026F0004F70612FC7010E94AF0226960FB6F89463
-:10270000DEBF0FBECDBFDF91CF911F910F91FF9024
-:10271000EF90DF90CF90BF900C94FE164B2D4F7032
-:10272000612FC70126960FB6F894DEBF0FBECDBF4E
-:10273000DF91CF911F910F91FF90EF90DF90CF909D
-:10274000BF900C94EF0526960FB6F894DEBF0FBE2F
-:10275000CDBFDF91CF911F910F91FF90EF90DF9050
-:10276000CF90BF9008950E9494190E9469190E9409
-:10277000AE190E94BA1E0E940A1E80E090E00E94DC
-:102780007E0E80E090E00C94940E0E9484190C94CC
-:10279000B3130E94B518292F22952F702C3030F4D6
-:1027A0002A3048F42250223078F405C02C3041F011
-:1027B0002F3031F009C0803E48F0803F29F406C038
-:1027C00093FB882780F9089580E0089581E00895BB
-:1027D000CF93DF9300D000D01F92CDB7DEB70F901C
-:1027E0000F900F900F900F90DF91CF910895CF939E
-:1027F000DF9300D000D000D0CDB7DEB726960FB65D
-:10280000F894DEBF0FBECDBFDF91CF9108951F9327
-:10281000CF93DF93C091790116E080917A01C817B8
-:1028200099F0D0E01C9FF0011D9FF00D1124E55898
-:10283000FE4F4081518162817381848195810E9424
-:10284000F7132196C770E9CFDF91CF911F910895BB
-:102850004091AB015091AC016091AD017091AE011E
-:102860008091AF019091B0010C94F7138091B00169
-:1028700082958F7009F054C08091AD01882309F4CE
-:102880004FC080917901A0917A014091AE015091A1
-:10289000AF016091AB017091AC01B6E08A1709F409
-:1028A0003FC090E041155105C1F17F3F11F46F3FEA
-:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A
-:1028C000218127132AC02081261327C022812111AC
-:1028D00024C0238134812417350710F42150310995
-:1028E000241B350B283C3105C0F42091B0012F701A
-:1028F00020612093B00126E0289FF001299FF00D70
-:102900001124E058FE4F80818F70806180838BEAB4
-:1029100091E00E94A9100C94071401968770BECF15
-:102920000895CF92DF92EF92FF920F931F93CF9370
-:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58
-:10294000CDBF8C0185E0F801DE011D9601900D924E
-:102950008A95E1F7D8014C9111965C9111971296E6
-:102960006C918091AE019091AF01009709F475C10F
-:102970003091AB017091AC017F3F19F43F3F09F4F6
-:102980006CC1F801C380D480E090AD01EE2009F461
-:10299000BEC02091B001C816D90628F0D601A81BE8
-:1029A000B90BCD0104C0809590958C0D9D1DFF2421
-:1029B000F394883C910578F0F12C207F09F0C4C095
-:1029C0007C2DD98AC88A89890E94E8138BEA91E014
-:1029D0000E94A910AFC0822F807F09F045C0571315
-:1029E00013C0431311C061110FC02F7020612093D9
-:1029F000B0010E9428148BEA91E00E94A9108091F6
-:102A0000B001F80185832EC0CD2819F15F3F11F484
-:102A10004F3FF9F0F62E61111CC080917901209191
-:102A20007A0136E0821709F45BC090E0389FF0012C
-:102A3000399FF00D1124E558FE4F7181571306C0E0
-:102A40007081471303C07281711103C001968770B2
-:102A5000E9CFF62E662309F41CC18091B001816094
-:102A60008093B001F12C15C1571309C0431307C05F
-:102A7000611105C08091B001F8018583C8C04D8700
-:102A80005E878D859E856A8B0E94C9136A8988231B
-:102A9000D1F16623C1F12091B001822F82958F7010
-:102AA00090E0029774F08091AB019091AC0198870F
-:102AB0008F831986DB86CA862C87CE0107960E94F3
-:102AC000A91086E0F801ABEAB1E001900D928A9579
-:102AD000E1F70E9436140E942814FF24F394D9C011
-:102AE0004D875E878D859E850E94B518292F22957A
-:102AF0002F70223008F0C1C09F7009F0BBC0805E0B
-:102B0000883008F4C6C0C8010E94A910E6CFC816D4
-:102B1000D90608F453C0F601E81BF90BCF01883C35
-:102B2000910508F450C0F12C7C2DD98AC88A898976
-:102B30000E94E813EBEAF1E086E0DF011D928A953E
-:102B4000E9F70E942814A5C0571314C0431312C0FC
-:102B5000611110C08091B001F8018583C8010E9405
-:102B6000A91086E0EBEAF1E0DF011D928A95E9F712
-:102B7000FE2C8FC04D875E878D859E856A8B0E9457
-:102B8000C9136A89882309F4BECF662309F4BBCF31
-:102B90002091B001822F82958F7090E002970CF403
-:102BA00090CF8091AB019091AC019A8389831B8275
-:102BB000DD82CC822E83CE01019681CF80959095C7
-:102BC0008C0D9D1DACCFF62E662309F49CCF5713B8
-:102BD00033C0431331C02091B00120FD24C0822FA7
-:102BE00082958F70482F50E041155105E1F0D801D2
-:102BF00015962C9315974F30510549F08F5F982FFC
-:102C00009295907F822F8F70892B15968C93C80197
-:102C10000E94A91086E0F801ABEAB1E001900D92A4
-:102C20008A95E1F78ECF86E0F801ABEAB1E001903A
-:102C30000D928A95E1F72DC04D875E878D859E8523
-:102C40000E94C91381113DCF8091B00181608093B2
-:102C5000B001C8010E94A9101CC0662309F453CF1B
-:102C60004D875E878D859E850E94C913882309F450
-:102C70004ACF27CF811143CF0CC0243008F043CF77
-:102C80009F7009F43CCFD80115969C91907F09F074
-:102C900036CF8F2D62960FB6F894DEBF0FBECDBF34
-:102CA000DF91CF911F910F91FF90EF90DF90CF9028
-:102CB00008951F93CF93DF93CDB7DEB72C970FB650
-:102CC000F894DEBF0FBECDBF4F83588769877A87E0
-:102CD0008B879C87CE0107960E949114882371F000
-:102CE0008A859B85892B09F441C088858F3F09F02F
-:102CF00065C08F818F3F09F061C038C086E0FE015A
-:102D00003796DE01119601900D928A95E1F76A855A
-:102D10007B856115710551F1FF81E885EF3F11F465
-:102D2000FF3F21F120917A0130E0C90101968770BF
-:102D300099274091790150E08417950709F447C01D
-:102D4000F983EA837D836C8396E0929FD001939F01
-:102D5000B00D1124A558BE4FFE01319601900D9281
-:102D60009A95E1F780937A010E94071416E080910A
-:102D7000790190917A018917B9F1189FC001112446
-:102D800085589E4F0E949114882371F1E09179013A
-:102D90001E9FF0011124E558FE4F40815181628150
-:102DA0007381848195810E94F7138091790190E06D
-:102DB00001968770992780937901D9CF4F815885E3
-:102DC00069857A858B859C850E94F713CFCF0E94F9
-:102DD000C51310927A0110927901EBEAF1E086E0D6
-:102DE000DF011D928A95E9F72C960FB6F894DEBFA5
-:102DF0000FBECDBFDF91CF911F910895EF92FF924B
-:102E00000F931F93CF93DF938C01892B09F46CC030
-:102E1000F12CEE24E394E8012196F80184918437A3
-:102E200040F4843008F051C0813081F0823019F1D3
-:102E30005BC0853709F444C0A8F19CE7980F903730
-:102E400008F052C08F770E944C1041C00E5F1F4F98
-:102E5000FE01849190E2980F983050F48770FE2D17
-:102E600001C0FF0F8A95EAF78F2F0E94871914C0BF
-:102E70000E94840F2DC00E5F1F4FFE01849190E2CF
-:102E8000980F983060F48770FE2D01C0FF0F8A956F
-:102E9000EAF78F2F0E948D190E94AE1919C00E9467
-:102EA0004C1016C00E5F1F4FFE01C491CC2381F061
-:102EB0008FE99FE00197F1F700C00000C150F6CF05
-:102EC0000E5F1F4FFE01F49003C00E94840F8E011D
-:102ED0008F2D882309F49FCFEFE9FFE03197F1F7B9
-:102EE00000C000008150F5CFDF91CF911F910F916D
-:102EF000FF90EF90089508956093B5017093B60127
-:102F00008093B7019093B8010C94B3130F931F9360
-:102F10000091B5011091B6012091B7013091B8012F
-:102F2000DC01CB01802B912BA22BB32B8093B5011D
-:102F30009093B601A093B701B093B8011F910F9180
-:102F40000C94B3130F931F930091B5011091B60128
-:102F50002091B7013091B801DC01CB01802391238E
-:102F6000A223B3238093B5019093B601A093B70138
-:102F7000B093B8011F910F910C94B3130F931F934B
-:102F80000091B5011091B6012091B7013091B801BF
-:102F9000DC01CB0180279127A227B3278093B501BD
-:102FA0009093B601A093B701B093B8011F910F9110
-:102FB0000C94B3131092B1011092B2011092B301AC
-:102FC0001092B4010C94B31341E050E060E070E063
-:102FD00004C0440F551F661F771F8A95D2F7409390
-:102FE000B1015093B2016093B3017093B4010C949A
-:102FF000B31341E050E060E070E004C0440F551F9F
-:10300000661F771F8A95D2F78091B1019091B20126
-:10301000A091B301B091B401482B592B6A2B7B2BA3
-:103020004093B1015093B2016093B3017093B40126
-:103030000C94B31341E050E060E070E004C0440F32
-:10304000551F661F771F8A95D2F74095509560955A
-:1030500070958091B1019091B201A091B301B091AE
-:10306000B401482359236A237B234093B101509331
-:10307000B2016093B3017093B4010C94B31341E0B7
-:1030800050E060E070E004C0440F551F661F771FDA
-:103090008A95D2F78091B1019091B201A091B301CC
-:1030A000B091B401482759276A277B274093B10183
-:1030B0005093B2016093B3017093B4010C94B313B5
-:1030C0000F931F930091B1011091B2012091B301B0
-:1030D0003091B401DC01CB01802B912BA22BB32BBF
-:1030E0008093B1019093B201A093B301B093B40166
-:1030F0001F910F910C94B3130F931F930091B10183
-:103100001091B2012091B3013091B401DC01CB01E7
-:1031100080239123A223B3238093B1019093B20122
-:10312000A093B301B093B4011F910F910C94B3130A
-:103130000F931F930091B1011091B2012091B3013F
-:103140003091B401DC01CB0180279127A227B3275E
-:103150008093B1019093B201A093B301B093B401F5
-:103160001F910F910C94B3130895CF92DF92EF92B9
-:10317000FF920F931F93CF93DF938C01C090B10107
-:10318000D090B201E090B301F090B4018091B5010C
-:103190009091B601A091B701B091B801C82AD92A7F
-:1031A000EA2AFB2ACFE1D0E0D701C6010C2E04C0E9
-:1031B000B695A795979587950A94D2F780FF07C093
-:1031C000B8018C2F0E9413068130910531F42197AC
-:1031D00058F7B80180E00E941306DF91CF911F914C
-:1031E0000F91FF90EF90DF90CF90089590910C0198
-:1031F0009923F1F090910D019923D1F0982F969594
-:10320000969596959F3080F5E0910E01F0910F0113
-:10321000E90FF11D877021E030E0A90102C0440FE1
-:10322000551F8A95E2F7CA019181892B8183089500
-:1032300020910E0130910F01F90132969FEF40E08D
-:103240005191851789F09F3F19F4511101C0942FB6
-:103250004F5F4E30A9F79F3F39F0F901E90FF11D9B
-:1032600097FDFA9582830895089590910C01992312
-:10327000F9F090910D019923D9F0982F9695969594
-:1032800096959F3028F5E0910E01F0910F01E90F1E
-:10329000F11D877021E030E0A90102C0440F551FE5
-:1032A0008A95E2F7CA0180959181892381830895E7
-:1032B00020910E0130910F01F9013296205F3F4FAE
-:1032C0009081891301C010823196E217F307C1F78C
-:1032D000089581E090E0E0910E01F0910F01E80F78
-:1032E000F91F1082019680319105A9F708959091F8
-:1032F000CB01892B8093CB01089580959091CB01D0
-:1033000089238093CB0108951092CB010895909169
-:10331000CA01892B8093CA01089580959091CA01B2
-:1033200089238093CA0108951092CA010895809359
-:10333000B90108951092B901089580910E019091FC
-:103340000F01FC0131969C01205F3F4F80E091917D
-:1033500091118F5FE217F307D1F70895E0910E0105
-:10336000F0910F018091CB018083E0910E01F091EB
-:103370000F0190818091CA01892B80838091B901CE
-:10338000882361F0E0910E01F0910F019081892B6B
-:1033900080830E949D1981111092B90180910E01C4
-:1033A00090910F010C94680ECF92DF92EF92FF92F2
-:1033B0006C01EE24FF24C114D104E104F10421F0D6
-:1033C000C701B60120E101C020E0C72ED82EE92EAA
-:1033D000FF24C114D104E104F10419F0285FC701EE
-:1033E000B6016B017C0154E0F694E794D794C7943E
-:1033F0005A95D1F7C114D104E104F10419F02C5FFE
-:10340000C701B6016B017C0142E0F694E794D794C2
-:10341000C7944A95D1F7C114D104E104F10419F01D
-:103420002E5FC701B601DC01CB01B695A795979534
-:103430008795892B8A2B8B2B09F02F5F822FFF908A
-:10344000EF90DF90CF9008958091E401843011F1E6
-:1034500020E488E190E00FB6F894A895809360008E
-:103460000FBE2093600083B7817F846083BF83B7E2
-:10347000816083BF7894889583B78E7F83BF0FB6B2
-:10348000F894A89580916000886180936000109204
-:1034900060000FBE089508950C944B1ACF930E94BC
-:1034A0004C1A0E9432040E944B1AC0E08C2F0E94DA
-:1034B0002805811104C0CF5FCE30C1F701C081E083
-:1034C000CF9108950E94C5130E945C0E0C94520780
-:1034D00082E084BD93E095BD9AEF97BD80936E0026
-:1034E00008952FB7F8948091CD019091CE01A091CD
-:1034F000CF01B091D0012FBF0895CF92DF92EF920C
-:10350000FF920F931F932FB7F8944091CD015091E4
-:10351000CE016091CF017091D0012FBF6A017B0174
-:10352000EE24FF248C0120E030E0C016D106E20634
-:10353000F30610F4415051099A01281B390BC901B7
-:103540001F910F91FF90EF90DF90CF9008951F9201
-:103550000F920FB60F9211248F939F93AF93BF9347
-:103560008091CD019091CE01A091CF01B091D00179
-:103570000196A11DB11D8093CD019093CE01A09322
-:10358000CF01B093D001BF91AF919F918F910F90D8
-:103590000FBE0F901F9018950E94540BF8942FEFB8
-:1035A00087EA91E6215080409040E1F700C000009A
-:1035B00087E090EBDC018093ED019093EE01A09306
-:1035C000EF01B093F0019CE088E10FB6F894A89564
-:1035D000809360000FBE90936000FFCFEF92FF9248
-:1035E0000F931F93CF93DF93D82FC0E08C2F0E94AF
-:1035F000280500E010E0E82EF12CC701002E02C0E3
-:10360000959587950A94E2F780FD06C00F5F1F4FDE
-:103610000630110591F709C0602F7C2F80E00E94D1
-:10362000F0058D13F3CF81E004C0CF5FCE30F1F60B
-:1036300080E0DF91CF911F910F91FF90EF9008955F
-:10364000CF93C82F8CE20E94EE1A882321F08C2F92
-:10365000CF910C94EE1A80E0CF910895CF930E9401
-:10366000751C811102C00E945B1CC5E6C15049F067
-:103670000E9432048FE39CE90197F1F700C000003B
-:10368000F5CF89E20E94201B811113C18AE20E94BA
-:10369000201B81110E945B1C85E00E94201B811170
-:1036A0000E94CC1A0E94801C8093CC0187E00E946B
-:1036B000201B8823A9F18BE10E94201B882351F055
-:1036C0008091CC0181FB222720F991E0922790FB89
-:1036D00081F90EC08EE00E94201B882361F080914A
-:1036E000CC0182FB222720F991E0922790FB82F9FE
-:1036F0008093CC0115C080E10E94201B9091CC01E9
-:10370000882341F093FB222720F981E0822780FB68
-:1037100093F904C0892F809580FB90F99093CC0198
-:103720008091CC010E94841C0E94921C8093DE0137
-:1037300080EE0E94201B882341F08091DE01982FAB
-:10374000909590FB80F98093DE0189E30E94201B15
-:10375000882359F08091DE0181FB222720F991E036
-:10376000922790FB81F98093DE0182EE0E94201B5C
-:10377000882359F08091DE0182FB222720F991E015
-:10378000922790FB82F98093DE0186EE0E94201B37
-:10379000882359F08091DE0183FB222720F991E0F4
-:1037A000922790FB83F98093DE0183EE0E94201B19
-:1037B000882359F08091DE0184FB222720F991E0D3
-:1037C000922790FB84F98093DE0185E30E94201B01
-:1037D000882359F08091DE0185FB222720F991E0B2
-:1037E000922790FB85F98093DE0181E30E94201BE4
-:1037F000882359F08091DE0186FB222720F991E091
-:10380000922790FB86F98093DE0181E10E94201BC4
-:10381000882359F08091DE0187FB222720F991E06F
-:10382000922790FB87F98093DE018091DE010E9450
-:10383000961C8091DE0187FB882780F980930D011B
-:1038400087E20E94201BC82F8EE10E94201B81115D
-:10385000C2608FE10E94201B8111C46080E20E943F
-:10386000201B8111C86081E20E94201B8111C06170
-:1038700082E20E94201B8111C06283E20E94201B11
-:103880008111C06484E20E94201B882311F0C0686B
-:1038900002C0CC2329F08C2F0E948D1C6C2F03C0FA
-:1038A0000E94891C682F70E080E090E0CF910C941A
-:1038B0007C17CF9108956DEE7EEF80E090E00E943E
-:1038C000CF2260E082E090E00E94C12260E083E0CD
-:1038D00090E00E94C12260E084E090E00E94C1225A
-:1038E00060E085E090E00C94C12280E090E00E94CE
-:1038F000BB2221E08D3E9E4F09F020E0822F0895EB
-:1039000082E090E00C94B322682F82E090E00C9467
-:10391000C12283E090E00C94B322682F83E090E012
-:103920000C94C12284E090E00C94B322682F84E0D0
-:1039300090E00C94C1228091D30180FF0BC0609174
-:10394000130185E0689FB001112475956795759501
-:1039500067952BC081FF09C06091130185E0689FC6
-:10396000B00111247595679520C082FF07C0609152
-:10397000130185E0689FB001112417C09091D40114
-:103980009923D1F060911201961788F720911301C5
-:1039900085E0289F90011124929FA001939F500DD4
-:1039A000112470E0CA010E9485226038710540F43C
-:1039B0006115710519F406C065E070E0862F089561
-:1039C0008FE7089581E008958091D30180FF08C0BA
-:1039D0006091110170E0759567957595679521C0A7
-:1039E00081FF06C06091110170E07595679519C05F
-:1039F00082FF04C06091110170E010C09091D40169
-:103A0000992399F0609110019617A0F78091110108
-:103A1000899FC001112470E00E94852260387105E1
-:103A200040F46115710519F406C061E070E0862F5D
-:103A300008958FE7089581E00895803F21F40E9462
-:103A40009B1C819504C0813F29F40E949B1C80939C
-:103A5000D7010895823F21F40E949B1C819504C0E8
-:103A6000833F29F40E949B1C8093D6010895893FCF
-:103A700019F40E94E41C05C08A3F31F40E94E41C42
-:103A800081958093D80108958B3F21F40E94E41C16
-:103A9000819504C08C3F29F40E94E41C8093D901D5
-:103AA0000895843F21F48091D501816017C0853F3E
-:103AB00021F48091D501826011C0863F21F480916C
-:103AC000D50184600BC0873F21F48091D5018860C7
-:103AD00005C0883F31F48091D50180618093D50184
-:103AE00008958D3F21F48091D30181600BC08E3FFA
-:103AF00021F48091D301826005C08F3F29F4809129
-:103B0000D30184608093D3010895803F39F480917C
-:103B1000D70187FF6CC01092D70169C0813F29F49B
-:103B20008091D7011816BCF362C09091D601823FF4
-:103B300029F497FF5CC01092D60159C0833F19F455
-:103B40001916CCF354C0893F41F48091D80118165E
-:103B50000CF04DC01092D8014AC08A3F29F48091E0
-:103B6000D80187FF44C0F6CF8B3F39F48091D9014B
-:103B700087FF3DC01092D9013AC08C3F29F4809153
-:103B8000D9011816BCF333C0843F21F48091D501CC
-:103B90008E7F17C0853F21F48091D5018D7F11C0A4
-:103BA000863F21F48091D5018B7F0BC0873F21F4A4
-:103BB0008091D501877F05C0883F31F48091D50180
-:103BC0008F7E8093D50113C08D3F21F48091D30166
-:103BD0008E7F0BC08E3F21F48091D3018D7F05C075
-:103BE0008F3F29F48091D3018B7F8093D301809103
-:103BF000D60181110EC08091D70181110AC0809138
-:103C0000D801811106C08091D901811102C01092A2
-:103C1000D401089585ED91E00E94730E0E94711AFF
-:103C20009093D2018093D10108951F93CF93DF9396
-:103C30008091D1019091D2010E947D1AAC019091A6
-:103C4000D401992321F02091140130E006C0209185
-:103C500015018AE0289F900111244217530708F4A8
-:103C600085C08091D601C091D701D091D801109123
-:103C7000D901811107C0C11175C0D11173C01111D3
-:103C800071C074C09F3F19F09F5F9093D4011816C4
-:103C900024F40E949B1C8093D6018091D60187FF5B
-:103CA00005C00E949B1C81958093D6011C1624F4AC
-:103CB0000E949B1C8093D7018091D70187FF05C08C
-:103CC0000E949B1C81958093D7016091D601662349
-:103CD00031F1C091D701CC2311F1062E000C770BE6
-:103CE000880B990B0E948C2123E333E343E35FE3CA
-:103CF0000E94F0210E9454216093D6016C2FCC0FBA
-:103D0000770B880B990B0E948C2123E333E343E369
-:103D10005FE30E94F0210E9454216093D7011D1699
-:103D200024F40E94E41C8093D8018091D80187FF7D
-:103D300005C00E94E41C81958093D801111624F4DB
-:103D40000E94E41C8093D9018091D90187FF05C0AE
-:103D50000E94E41C81958093D901DF91CF911F913E
-:103D60000C940A1E9F3F09F08FCFA0CFDF91CF9117
-:103D70001F910895E5EDF1E085E0DF011D928A9540
-:103D8000E9F71092D4011092D3010895833081F1A4
-:103D900028F4813059F08230D1F00895853009F44B
-:103DA00049C0B8F1863009F456C0089580911501D4
-:103DB000262F30E0280F311D2F3F310524F4680FE6
-:103DC0006093150108958FEF8093150108958091F8
-:103DD0001401262F30E0280F311D2F3F310524F428
-:103DE000680F6093140108958FEF80931401089574
-:103DF00080911301262F30E0280F311D2F3F310510
-:103E000024F4680F6093130108958FEF80931301DA
-:103E1000089580911201262F30E0280F311D2F3F89
-:103E2000310524F4680F6093120108958FEF809399
-:103E30001201089580911101262F30E0280F311DC5
-:103E40002F3F310524F4680F6093110108958FEF1F
-:103E500080931101089580911001262F30E0280FE2
-:103E6000311D2F3F310524F4680F60931001089530
-:103E70008FEF809310010895833011F128F4813081
-:103E800049F0823091F00895853081F120F186303B
-:103E9000C1F1089580911501681720F4861B809365
-:103EA0001501089510921501089580911401681765
-:103EB00020F4861B80931401089510921401089534
-:103EC00080911301681720F4861B809313010895D5
-:103ED00010921301089580911201681720F4861B37
-:103EE000809312010895109212010895809111019A
-:103EF000681720F4861B8093110108951092110118
-:103F0000089580911001681720F4861B809310019A
-:103F100008951092100108950F931F938D3109F4A5
-:103F20006BC008F03FC08E3009F47DC0C0F487300C
-:103F300009F46EC068F4863009F0AFC08091CC01FE
-:103F4000817F8E7F8093CC0181E08093DB01A6C0CE
-:103F5000883009F458C08B3009F49BC09EC086316C
-:103F600009F497C078F4803109F470C0813109F008
-:103F700094C00E94C51390910D0181E08927809320
-:103F80000D0187C0893109F484C08B3109F085C0E7
-:103F90008091CC0181FB222720F991E0922790FBB0
-:103FA00081F94AC0853309F45BC048F4873209F4CB
-:103FB00057C008F45AC0893209F452C06EC0833425
-:103FC00038F48A3308F067C0883309F462C065C0EA
-:103FD000833409F445C0883409F05FC00E94C513DA
-:103FE0000FEF13ED20E3015010402040E1F700C037
-:103FF00000000E94CC1A4DC00E940E210E945C0E4F
-:104000000E94520746C00E94801C0E94921C41C020
-:104010009091CC01892F817090FF12C0917F9E7F7B
-:104020009093CC013BC08091CC0182FB222720F9E8
-:1040300091E0922790FB82F98093CC01992349F17A
-:104040008091CC0181608093CC0123C08091CC0110
-:1040500083FB222720F991E0922790FB83F9ECCF94
-:1040600061E070E080E090E010C08D5141E050E0F0
-:1040700060E070E08A019B0104C0000F111F221F45
-:10408000331F8A95D2F7C901B8010E947C170E949C
-:10409000C51381E003C08953E9CF80E01F910F91E0
-:1040A000089580E008950C945120CF93C82F8091FB
-:1040B000DB01813079F018F08230E9F187C0E091BE
-:1040C0000E01F0910F018081813169F0823209F097
-:1040D0007FC009C0E0910E01F0910F018081813114
-:1040E00011F0823261F48C2F0E945320811104C0A0
-:1040F0008C2F0E948C1F1DC081E090E01AC08C2F75
-:104100000E945120811114C0C43179F048F4CB30A1
-:1041100079F0C03109F060C082E08093DB0108C013
-:10412000C93219F0C83321F057C01092DB0154C0D6
-:1041300081E0817053C0C93289F118F5C43171F141
-:10414000A8F4C73009F046C08AE08093150194E1D5
-:104150009093140193E0909313018093120188E0EF
-:104160008093110188E28093100134C0CE51C63093
-:1041700088F5EC2FF0E0E65DFE4F80818093DA0158
-:1041800029C0CE34E9F020F4CB3421F56AE013C025
-:10419000C13579F0C235F1F461E00DC08091DA01EA
-:1041A000882319F01092DA0115C081E08093DB01B9
-:1041B00015C061E006C08091DA010E94C61E0AC0E7
-:1041C0006AE08091DA010E943C1F04C01092DB017A
-:1041D00080E004C081E002C080E0ABCFCF910895C1
-:1041E000E1E8F0E080818860808380818160808365
-:1041F0008FB7F89493E09093890090ED90938800A6
-:104200008FBF0895EFE6F0E080818260808308959B
-:10421000EFE6F0E080818D7F80830895EFE6F0E0A7
-:10422000908182E08927808308951F920F920FB6B4
-:104230000F9211242F933F934F935F936F937F932C
-:104240008F939F93AF93BF93EF93FF938091DC0184
-:104250009091DD0101969093DD018093DC01811145
-:1042600003C082E00E945207E091DD01E695E695E9
-:10427000F0E0E457FB4FE4918091DC018E1303C022
-:1042800080E00E945207FF91EF91BF91AF919F9103
-:104290008F917F916F915F914F913F912F910F90EF
-:1042A0000FBE0F901F9018950E945B216894B1116A
-:1042B0000C94EA2108950E94CF2188F09F5798F02E
-:1042C000B92F9927B751B0F0E1F0660F771F881F1B
-:1042D000991F1AF0BA95C9F714C0B13091F00E9435
-:1042E000E921B1E008950C94E921672F782F882700
-:1042F000B85F39F0B93FCCF3869577956795B3955C
-:10430000D9F73EF490958095709561957F4F8F4FCA
-:104310009F4F0895E89409C097FB3EF490958095CF
-:10432000709561957F4F8F4F9F4F9923A9F0F92F7B
-:1043300096E9BB279395F695879577956795B795F9
-:10434000F111F8CFFAF4BB0F11F460FF1BC06F5FDF
-:104350007F4F8F4F9F4F16C0882311F096E911C0F1
-:10436000772321F09EE8872F762F05C0662371F012
-:1043700096E8862F70E060E02AF09A95660F771F26
-:10438000881FDAF7880F9695879597F9089557FD56
-:104390009058440F551F59F05F3F71F04795880FB3
-:1043A00097FB991F61F09F3F79F08795089512164A
-:1043B00013061406551FF2CF4695F1DF08C01616F6
-:1043C00017061806991FF1CF8695710561050894A7
-:1043D0000895E894BB2766277727CB0197F90895BE
-:1043E0000E9403220C9474220E94662238F00E94DC
-:1043F0006D2220F0952311F00C945D220C94632221
-:1044000011240C94EA210E94C72170F3959FC1F3F7
-:10441000950F50E0551F629FF001729FBB27F00D72
-:10442000B11D639FAA27F00DB11DAA1F649F6627C7
-:10443000B00DA11D661F829F2227B00DA11D621F16
-:10444000739FB00DA11D621F839FA00D611D221FD0
-:10445000749F3327A00D611D231F849F600D211DB4
-:10446000822F762F6A2F11249F5750409AF0F1F037
-:1044700088234AF0EE0FFF1FBB1F661F771F881FA0
-:1044800091505040A9F79E3F510580F00C945D2259
-:104490000C94EA215F3FE4F3983ED4F38695779538
-:1044A0006795B795F795E7959F5FC1F7FE2B880F46
-:1044B000911D9695879597F9089597F99F6780E8DC
-:1044C00070E060E008959FEF80EC089500240A9466
-:1044D0001616170618060906089500240A941216DF
-:1044E0001306140605060895092E0394000C11F412
-:1044F000882352F0BB0F40F4BF2B11F460FF04C0BF
-:104500006F5F7F4F8F4F9F4F089597FB072E16F4D5
-:10451000009407D077FD09D00E949F2207FC05D0A8
-:104520003EF4909581959F4F0895709561957F4FCA
-:104530000895EE0FFF1F0590F491E02D0994AA1B3A
-:10454000BB1B51E107C0AA1FBB1FA617B70710F07E
-:10455000A61BB70B881F991F5A95A9F780959095B0
-:10456000BC01CD010895F999FECF92BD81BDF89AA5
-:10457000992780B50895A8E1B0E042E050E00C949E
-:10458000D622262FF999FECF1FBA92BD81BD20BD3C
-:104590000FB6F894FA9AF99A0FBE019608950E9400
-:1045A000C122272F0C94C222DC01CB01FC01F99916
-:1045B000FECF06C0F2BDE1BDF89A319600B40D926F
-:0C45C00041505040B8F70895F894FFCF28
-:1045CC0020025307E307BE078A0756070101BA0109
-:1045DC0028080A03140A3F4D36394D040004CA0357
-:1045EC00910324033D0356036F03010203040506E4
-:0445FC0007080900A3
+:100000000C940B030C944F030C944F030C944F036C
+:100010000C944F030C944F030C944F030C944F0318
+:100020000C944F030C944F030C940E0D0C94E00DA4
+:100030000C944F030C944F030C944F030C944F03F8
+:100040000C944F030C94AA220C944F030C944F036E
+:100050000C944F030C94391C0C944F030C944F03D5
+:100060000C944F030C944F030C944F030C944F03C8
+:100070000C944F030C944F030C944F030C944F03B8
+:100080000C944F030C944F030C944F030C944F03A8
+:100090000C944F030C944F030C944F030C944F0398
+:1000A0000C944F030C944F030C944F034D0E6F0EA2
+:1000B0005D0F6F0E5D0FB40ED70E5D0F2C0F3F0F4F
+:1000C0002B122B1268126812AB12E91202150215DC
+:1000D0000213021503140314D61402150215ED14AD
+:1000E00029002B000354E100358100001E000E00A2
+:1000F0000B001B7164004D001F003700040014004A
+:10010000E1044C00200012000800340050002A00D6
+:10011000210036000C002F004F004A0022001D0075
+:100120001800330000000254E000E3000000E20089
+:1001300000002E77E400E7000000E60000002E7FBC
+:1001400023001900070005000000045424000A00E1
+:100150001700130052004B002500060015001A007E
+:1001600051002C0026000F0011001000E1082800AB
+:1001700027002D0016000D7130004E0038001C00C5
+:100180000982E50031810000010001000100010049
+:10019000010000003A0035003100010001000100BB
+:1001A0003B0035022102640001004C003C001E02AD
+:1001B00024062202010001003D002D022402240435
+:1001C000010001003E0001003700110400000100A1
+:1001D0000100010000000100000001000100010019
+:1001E00000000100000001003F0024062402230259
+:1001F000000001004000220425023500010001003A
+:100200004100230426023502370001004200240485
+:1002100025041F021E0201004300310026043102A2
+:10022000010001004400450001002D020100000012
+:1002300001000100010001000100000001000100B7
+:100240000100FB000100010001000100F200F900C3
+:10025000010001000100F000F100FA00F4000100CB
+:1002600001000100F300FC00F500010001000100A5
+:100270000100F60000000100010001000000010083
+:100280000000010001000100000001000000010069
+:100290000100010001000100000001000100010057
+:1002A0000100A800A9000100010001000100AC004C
+:1002B000AA00B600010001000100AB0050000100DF
+:1002C000010001000100520051000100AE000100D8
+:1002D000010001004F00000029002B000100E10097
+:1002E000358100001E00140004001D7164004D00E3
+:1002F0001F001A0016001B00E1044C00200008003B
+:100300000700060050002A0021001500090019000E
+:100310004F004A00220017000A00050000000100FB
+:100320001908E3000000E20000002E770608E7004D
+:100330000000E60000002E7F23001C000B001100CF
+:1003400000000100240018000D00100052004B00B6
+:1003500025000C000E00360051002C002600120073
+:100360000F003700E1082800270013003300387120
+:1003700030004E002D002F003482E5003181000056
+:100380000100010001000100010000000100010066
+:100390000100010001000100010001005000010006
+:1003A00001000100010052005100010001000100A4
+:1003B000010001004F0001000100010001000100E7
+:1003C0000100010000000100010001000000010027
+:1003D0000000010001000100000001000000010018
+:1003E0003F005200510023020000010040002400A1
+:1003F00021001E00270001004100250022001F00EF
+:1004000037000100420026002300200027000100E1
+:1004100043003002300024022E0001004400450059
+:100420000100010001000000160345007200670092
+:100430006F0044006F007800200045005A00000063
+:1004400016034500720067006F0044006F007800DB
+:10045000200045005A0000000403090409026D0051
+:10046000040100A0FA0904000001030101000921B0
+:1004700011010001223F000705810308000A090459
+:1004800001000103010200092111010001224D00B8
+:100490000705820308000A090402000103000000A6
+:1004A0000921110100012236000705830308000A13
+:1004B00009040300010300000009211101000122C9
+:1004C000390007058403100001120110010000002B
+:1004D00008EDFE071301000102000105010906A154
+:1004E00001050719E029E715002501950875018127
+:1004F00002050819012905950575019102950175F7
+:1005000003910105071900297715002501957875D4
+:10051000018102C005010980A101850216010026A2
+:10052000B7001A01002AB700751095018100C005B7
+:100530000C0901A1018503160100269C021A010085
+:100540002A9C02751095018100C005010902A101D4
+:100550000901A100050919012905150025019505C5
+:100560007501810295017503810105010930093189
+:100570001581257F95027508810609381581257F2B
+:10058000950175088106050C0A38021581257F95AD
+:100590000175088106C0C005010906A101050719FA
+:1005A000E029E7150025019508750181029501757F
+:1005B0000881010508190129059505750191029524
+:1005C00001750391010507190029FF150025FF9505
+:1005D0000675088100C00000000000000000000057
+:1005E00000010204060A0F17202C3A4A5D71879D0C
+:1005F000B3C7DAE9F5FCFFFCF5E9DAC7B39D87710B
+:100600005D4A3A2C20170F0A060402010000000080
+:1006100000000000000011241FBECFEFDAE0DEBFB3
+:10062000CDBF04B603FE24C08091EE019091EF018E
+:10063000A091F001B091F1018730904BA740B04BF1
+:10064000B9F41092EE011092EF011092F0011092A5
+:10065000F10114BE84B7877F84BF88E10FB6F89498
+:1006600080936000109260000FBEE0E0FFE3099508
+:1006700011E0A0E0B1E0E8EDF8E402C005900D92D1
+:10068000A433B107D9F711E0A4E3B1E001C01D9292
+:10069000AE3EB107E1F70E94520A0C946A240C9412
+:1006A000000061110BC0FC018281882321F085EEDE
+:1006B0000E94BF1003C085EE0E94871180E090E089
+:1006C000089508956091B1017091B2018091B301D4
+:1006D0009091B4010E94651B56985E9825982D98BC
+:1006E00026982E9827982F9808950C946203569870
+:1006F0005E9825982D9826982E9827982F988FEFFA
+:1007000090E0909389008093880090938B00809371
+:100710008A0090938D0080938C00259A2D9A2FEF5C
+:1007200080E792E0215080409040E1F700C0000057
+:10073000269A2E9A2FEF80E792E021508040904039
+:10074000E1F700C00000279A2F9A2FEF80E792E090
+:10075000215080409040E1F700C0000025982D987E
+:100760002FEF80E792E0215080409040E1F700C0F9
+:10077000000026982E982FEF80E792E021508040CD
+:100780009040E1F700C0000027982F9856985E9897
+:1007900025982D9826982E9827982F98089589EABD
+:1007A0008093800089E08093810024982C983F9862
+:1007B0008AB18F748AB96E98479A8BB1806B8BB966
+:1007C000769A0E9477030C94610380E28093000183
+:1007D0008091340181110EC00E94340481E0809325
+:1007E00034012FEF83ED90E3215080409040E1F7FA
+:1007F00000C0000080E40E943A048093000181114F
+:100800002EC00E94640480930001811128C00E94C0
+:10081000640480930001811122C08FE30E9464046C
+:100820008093000181111BC00E945C0480E40E943F
+:100830003A0480930001811112C08CE00E9464048C
+:100840008093000181110BC00E9464048093000119
+:10085000811105C08FE30E946404809300010E940F
+:100860005C048091000108951092B9008AE08093A1
+:10087000B800089594EA9093BC009091BC0097FF53
+:10088000FCCF9091B900987F983021F0903111F011
+:1008900081E008958093BB0084E88093BC00809140
+:1008A000BC0087FFFCCF8091B900887F883111F0B0
+:1008B000803471F780E0089584E98093BC008091D2
+:1008C000BC0084FDFCCF08958093BB0084E8809336
+:1008D000BC008091BC0087FFFCCF9091B900987F4D
+:1008E00081E0983209F480E0089584E88093BC00A8
+:1008F0008091BC0087FFFCCF8091BB000895809160
+:100900000001811115C080E40E943A048093000127
+:1009100081110CC082E10E94640480930001811166
+:1009200005C08FEF0E946404809300010E945C0464
+:1009300084B1807F84B985B1807F85B98AB1837F96
+:100940008AB98BB1837F8BB93E98469808950E94EF
+:10095000E503809300010E947F0480B38C7080BB0C
+:1009600081B3836F81BBA6E3B1E0E4E4F1E08EE004
+:100970008E0F11921D928E13FCCF0C94CF03BF9259
+:10098000CF92DF92EF92FF920F931F93CF93DF935B
+:1009900080910001882379F0809135018F5F8093E9
+:1009A0003501811108C00E94E50380930001811187
+:1009B00002C00E94770306E311E0C0E0D0E0DD242E
+:1009C000D39482E0C82EEE24E394F12CC730D105F5
+:1009D00000F580910001811164C080E40E943A0416
+:1009E00080930001811112C082E10E94640480930F
+:1009F000000181110BC0C7010C2E01C0880F0A94A1
+:100A0000EAF780950E946404809300010E945C04D0
+:100A100048C0CA30A1F028F4C83059F0C93061F09C
+:100A200005C0CC3089F070F0CD3089F0209A28983C
+:100A300010C0219A29980DC0229A2A980AC0239A98
+:100A40002B9807C0529A01C0539A5B9802C03E9AF5
+:100A5000469890EA9A95F1F79FB1799902C082E0A1
+:100A600001C080E091709D25982B7C9902C084E0A4
+:100A700001C080E0892B7D9902C038E001C030E0E0
+:100A8000832B7E9902C020E101C020E0822B9FB120
+:100A90009095991F9927991F9295990F907E892B70
+:100AA0000FC080910001811149C080E40E943A0486
+:100AB00080930001882379F1B12C0E945C048B2D76
+:100AC000F8019081981719F08083C09201010E946B
+:100AD0007F0421960F5F1F4FCE30D10509F076CFEE
+:100AE00080910101882361F1815080930101882365
+:100AF00039F08FE99FE00197F1F700C0000020C0B6
+:100B0000A4E4B1E0E6E3F1E0CF01825F91919D932F
+:100B10008E13FCCF15C083E10E9464048093000112
+:100B20008111CACF81E40E943A04809300018111AF
+:100B3000C3CF0E947504B82EB094BFCF80E0C0CF61
+:100B40000E94750381E0DF91CF911F910F91FF907B
+:100B5000EF90DF90CF90BF900895E82FF0E0EC5B2E
+:100B6000FE4F808108950895089596E0799FF001E1
+:100B7000112494E5899FE00DF11D1124E60FF11D6C
+:100B8000EE0FFF1FE052FF4F859194910895880F5B
+:100B9000991FFC01E05AF040859194910895880FC7
+:100BA000991FFC01E052FF4F8591949108950F9396
+:100BB0001F93CF93DF93EC018115904350F5C1153E
+:100BC00080E2D80708F0B3C0CB3BD10590F4C83A17
+:100BD000D10508F05AC0C53AD10508F04BC0C43061
+:100BE000D10508F0BBC1219709F0B5C101E010E0C3
+:100BF000F5C1CF3FD10511F008F0B0C1C03FD1051C
+:100C000008F092C0CE01805E9109089708F4A6C151
+:100C1000A2C1C11591E5D907A8F4C23020E5D207D9
+:100C200008F09EC0C11580E5D80709F485C008F01A
+:100C300091C0C11520E4D20708F08DC1DD278E01D7
+:100C4000106CCCC1C11580E8D80758F4C11590E7E5
+:100C5000D90708F07CC1C11520E6D20708F422C1EB
+:100C60007AC1C11580E9D80708F075C1DF708E011F
+:100C7000106AB4C1C53AD10509F472C1C63AD105AA
+:100C800009F071C102E810E4A9C1C83AD10509F41C
+:100C90006DC1C93AD10509F46CC1CA3AD10509F44C
+:100CA0006BC1CB3AD10509F46AC1CC3AD10509F43C
+:100CB00069C1CD3AD10509F468C1C03BD10509F439
+:100CC00067C1CE3AD10509F466C1CF3AD10509F41E
+:100CD00065C1C13BD10509F464C1C23BD10509F42A
+:100CE00063C1C33BD10509F462C1C43BD10509F41A
+:100CF00061C1C53BD10509F460C1C63BD10509F40A
+:100D00005FC1C73BD10509F45EC1C83BD10509F4F9
+:100D10005DC1C93BD10509F45CC1CA3BD10509F4E9
+:100D20005BC100E014E45AC18E01106557C1CE01C9
+:100D30009F700E94CF0553C10E9426159FEF24E3A8
+:100D40008CE0915020408040E1F700C000000E94FC
+:100D50005E1C44C18091CD0181608093CD013EC174
+:100D60000E94071E811102C00E94ED1D0E94241ED8
+:100D700090E09093EE018093ED01C23090E5D907A9
+:100D800021F48091ED01816086C0C43020E5D20756
+:100D900021F48091ED0182607EC0C63080E5D807E5
+:100DA00021F48091ED01846076C0C83090E5D907C8
+:100DB00019F48091ED0127C0CA3020E5D20721F453
+:100DC0008091ED01806167C0CC3080E5D80721F4C7
+:100DD0008091ED0180625FC0CE3090E5D90721F4AB
+:100DE0008091ED01806457C0C03120E5D20721F425
+:100DF0008091ED0180684FC0C23180E5D80729F4A9
+:100E00008091ED018460886046C0C33090E5D907C9
+:100E100021F48091ED018E7F3EC0C53020E5D207E0
+:100E200021F48091ED018D7F36C0C73080E5D80771
+:100E300021F48091ED018B7F2EC0C93090E5D90758
+:100E400019F48091ED0126C0CB3020E5D20721F4C2
+:100E50008091ED018F7E1FC0CD3080E5D80721F451
+:100E60008091ED018F7D17C0CF3090E5D90721F437
+:100E70008091ED018F7B0FC0C13120E5D20721F4B5
+:100E80008091ED018F7707C0C331D04531F4809157
+:100E9000ED018B7F877F8093ED018091ED010E94B2
+:100EA000281E9CC08D2F99278F709927813091051E
+:100EB000D9F49E012370332702C0880F991F2A9509
+:100EC000E2F79C688E0144E0000F111F4A95E1F79C
+:100ED00000271370802B912B53E0CC0FDD1F5A9508
+:100EE000E1F7C076DD272FC08230910531F4DC2F89
+:100EF000CC278E01016F106A71C08330910569F4AF
+:100F0000CE018370992701E010E002C0000F111F8D
+:100F10008A95E2F7C8019C680FC0049709F05EC08B
+:100F2000CE018370992701E010E002C0000F111F6D
+:100F30008A95E2F7C8019A6823E0CC0FDD1F2A9555
+:100F4000E1F7C07ED7708C010C2B1D2B47C0DF70E2
+:100F50008E01106243C000E010E040C08E013EC030
+:100F600001E810E43BC003E810E438C002EE14E4EA
+:100F700035C009EE14E432C00AEE14E42FC005EBCC
+:100F800014E42CC006EB14E429C007EB14E426C0DB
+:100F90000CEC14E423C00DEC14E420C003E815E4C9
+:100FA0001DC00AE815E41AC002E915E417C004E9F7
+:100FB00015E414C001E216E411C003E216E40EC009
+:100FC00004E216E40BC005E216E408C006E216E4EB
+:100FD00005C007E216E402C00AE216E4C801DF9188
+:100FE000CF911F910F91089596E0799FF001112400
+:100FF00094E5899FE00DF11D1124E60FF11DEE0F20
+:10100000FF1FE052FF4F85919491803E9105E0F4DF
+:10101000803C910558F58133910509F46FC048F47F
+:101020008932910509F463C08A32910509F46DC0D3
+:1010300072C089339105E9F082389105D1F085338A
+:10104000910509F44DC067C0833E910581F138F4E4
+:10105000803E9105B9F0823E9105D9F05CC0863E94
+:10106000910561F1873E9105A1F155C00E94C70528
+:1010700008952091ED0120FD02C021FF4CC080EEBB
+:1010800090E049C08091ED0180FFF9CF89E390E0C5
+:1010900042C08091ED0182FF0EC08091ED0184FF7E
+:1010A00003C080E090E037C083EE90E034C08091D0
+:1010B000ED0182FFF2CF82EE90E02DC08091ED0134
+:1010C00083FF0BC08091ED0184FDEBCF87EE90E0B4
+:1010D00022C08091ED0183FFF5CF86EE90E01BC02A
+:1010E0008091ED0185FF07C089E290E014C08091F6
+:1010F000ED0185FFF9CF85E390E00DC08091ED0112
+:1011000086FF07C08AE290E006C08091ED0186FF6D
+:10111000F9CF81E390E00E94D705089508950C94DB
+:101120008E08809162010895CF93DF9300D01F92C3
+:10113000CDB7DEB79C018091E401843019F593E0CE
+:1011400099833B832A839093E9008FEF9091E80085
+:10115000815095FD06C095ED9A95F1F7000081113B
+:10116000F5CF8091E80085FF0DC040E050E063E0DE
+:1011700070E0CE0101960E94FE0A8091E8008E7711
+:101180008093E8000F900F900F90DF91CF9108951A
+:10119000CF93DF9300D01F92CDB7DEB72091E4014B
+:1011A000243021F522E029839B838A8383E0809386
+:1011B000E9008FEF9091E800815095FD06C095ED14
+:1011C0009A95F1F700008111F5CF8091E80085FF35
+:1011D0000DC040E050E063E070E0CE0101960E9457
+:1011E000FE0A8091E8008E778093E8000F900F90C0
+:1011F0000F90DF91CF9108952091E4012430F1F414
+:1012000022E02093E9002FEF3091E800215035FDD6
+:1012100006C035ED3A95F1F700002111F5CF209188
+:10122000E80025FF0BC040E050E065E070E00E9460
+:10123000FE0A8091E8008E778093E8000895CF93AE
+:10124000DF93EC019091E401943009F046C0809165
+:101250000C018823D9F080910D018823B9F0909377
+:10126000E9008FEF9091E800815095FD06C095E16F
+:101270009A95F1F700008111F5CF8091E80085FF84
+:101280002CC040E050E060E170E017C081E0809346
+:10129000E9008FEF9091E800815095FD06C095ED33
+:1012A0009A95F1F700008111F5CF8091E80085FF54
+:1012B00014C040E050E068E070E0CE010E94FE0AF9
+:1012C0008091E8008E778093E80080E1FE01A2E53E
+:1012D000B1E001900D928A95E1F7DF91CF910895E9
+:1012E0008091E301811109C00E94930C0E94F00CCF
+:1012F0008091E20084608093E20008951092E301FF
+:10130000089508950C9497220E94F41B0E949D2238
+:101310000E94960F0C948F0842E061EC81E00E94DD
+:101320000D0C42E061EC82E00E940D0C42E061ECA9
+:1013300083E00E940D0C42E161EC84E00C940D0C02
+:101340008091E601833009F455C030F4813071F0AA
+:10135000823009F48EC008958A3009F47AC08B3047
+:1013600009F460C0893009F09CC020C08091E5017B
+:10137000813A09F096C08091E800877F8093E80069
+:101380008091E9019091EA01892B21F460E182E5E5
+:1013900091E003C060E080E090E070E00E94490BC3
+:1013A0008091E8008B778093E80008958091E501B3
+:1013B000813209F076C08091E9019091EA010097AD
+:1013C00019F0039709F06DC08091E800877F809342
+:1013D000E8008091E80082FD05C08091E401811160
+:1013E000F8CF5FC08091F100809362018091E800A6
+:1013F0008B7753C08091E501813A09F052C080910A
+:10140000E9019091EA01892B09F04BC08091E80035
+:10141000877F8093E8008091E80080FFFCCF809177
+:101420000C0136C08091E5018132D9F58091E90146
+:101430009091EA01892BA9F58091E800877F80933C
+:10144000E8000E94420C8091E70180930C010C940B
+:1014500026158091E501813221F58091E800877F92
+:101460008093E8000E94420C8091E8018093630120
+:1014700008958091E501813AA1F48091E800877F89
+:101480008093E8008091E80080FFFCCF80916301A9
+:101490008093F1008091E8008E778093E8000C94AF
+:1014A000420C089584B7877F84BF88E10FB6F89413
+:1014B00080936000109260000FBE90E080E80FB64D
+:1014C000F89480936100909361000FBE0E94E50F35
+:1014D0000E94930C0E94F00C8091E2008460809343
+:1014E000E20078940E94760F0E94E70F82E091E07C
+:1014F0000E94910F0E9485228091E401853069F459
+:101500000E94B51B8091E2018823B1F30E94E01B89
+:10151000882391F30E94E80AEFCF0E94ED0FECCFF1
+:10152000292F332723303105C9F064F421303105E8
+:1015300081F02230310509F043C08DE690E02CE5C2
+:1015400034E042C021323105F1F02232310541F15F
+:1015500037C082E190E029EC34E036C09927813031
+:10156000910541F08230910541F0892B49F5E8E57C
+:10157000F4E005C0E0E4F4E002C0E8E2F4E08491C5
+:1015800090E09F0121C06430D8F4E62FF0E0EE0F28
+:10159000FF1FEE5DFE4F2081318189E090E014C095
+:1015A000643070F470E0FB01EE0FFF1FE65EFE4F4B
+:1015B00020813181FB01EA5EFE4F808190E004C012
+:1015C00080E090E020E030E0FA013183208308954C
+:1015D00080E189BD82E189BD09B400FEFDCF809123
+:1015E000D8008F7D8093D8008091E0008260809346
+:1015F000E0008091E00081FDFCCF0895CF92DF9262
+:10160000EF92FF920F931F93CF93DF93EC018B0127
+:101610006A010E94610C811133C0C114D10439F0F8
+:10162000F60180819181081B190BC80FD91FE12C8D
+:10163000F12C0115110519F18091E80085FD16C006
+:101640008091E8008E778093E800C114D10449F0BE
+:10165000F60180819181E80EF91EF182E08285E039
+:101660000FC00E94610C882321F30AC089918093E6
+:10167000F10001501109FFEFEF1AFF0ADACF80E005
+:10168000DF91CF911F910F91FF90EF90DF90CF905E
+:1016900008952091EB013091EC012617370748F0AF
+:1016A0006115710539F42091E8002E772093E80048
+:1016B00001C0B90140E061157105A9F12091E40173
+:1016C000222309F443C0253009F442C02091E800E8
+:1016D00023FD40C02091E80022FD32C02091E800A7
+:1016E00020FFE9CF4091F3002091F20030E0342B4D
+:1016F000FC01CF016115710559F02830310540F426
+:1017000081918093F100615071092F5F3F4FF1CFBC
+:1017100041E02830310509F040E02091E8002E77C3
+:101720002093E800C8CF4111C9CF0AC08091E401DD
+:10173000882361F0853061F08091E80083FD0AC064
+:101740008091E80082FFF2CF80E0089582E0089562
+:1017500083E0089581E008952091EB013091EC0140
+:101760002617370748F06115710539F42091E80014
+:101770002E772093E80001C0B901FC0120E061153B
+:10178000710591F18091E401882309F440C085300E
+:1017900009F43FC08091E80083FD3DC08091E800DE
+:1017A00082FD2FC08091E80080FFE9CF2091F300F7
+:1017B0008091F20090E0922B6115710559F088300C
+:1017C000910540F424912093F10031966150710904
+:1017D0000196F2CF21E0089709F020E08091E8001F
+:1017E0008E778093E800CBCF2111CCCF0AC08091B7
+:1017F000E401882361F0853061F08091E80083FD89
+:101800000AC08091E80082FFF2CF80E0089582E074
+:10181000089583E0089581E00895982F973058F552
+:101820009093E900981739F07091EC002091ED0049
+:101830005091F00003C0242F762F50E021FF19C0F3
+:101840003091EB003E7F3093EB003091ED003D7F17
+:101850003093ED003091EB0031603093EB007093EA
+:10186000EC002093ED005093F0002091EE0027FF54
+:1018700007C09F5FD3CF8F708093E90081E0089508
+:1018800080E008958091E50187FF11C08091E80014
+:1018900082FD05C08091E4018111F8CF11C08091D3
+:1018A000E8008B770BC08091E401882349F0809198
+:1018B000E80080FFF8CF8091E8008E778093E80001
+:1018C00008952091E4003091E50095E64091EC0008
+:1018D000842F817040FF22C08091E80080FD1CC0F1
+:1018E0008091E401882391F0853091F08091EB00A4
+:1018F00085FD10C04091E4005091E5004217530768
+:1019000029F39A01915011F784E0089582E0089537
+:1019100083E0089581E0089580E008954091E80013
+:1019200042FFDECF08950E94010D0E94090DE0EEF6
+:10193000F0E0808181608083E8EDF0E080818F7746
+:10194000808319BCA7EDB0E08C918E7F8C93808151
+:101950008F7E80831092E30108950F931F93CF939E
+:10196000DF930E94010D0E94090DC8EDD0E088812F
+:101970008F77888388818068888388818F7D88833A
+:1019800019BC1092E4011092E0011092E201109251
+:10199000E10100EE10E0F80180818B7F8083888177
+:1019A0008160888342E060E080E00E940D0CE1EEFF
+:1019B000F0E080818E7F8083E2EEF0E080818160C4
+:1019C0008083808188608083F80180818E7F80831E
+:1019D000888180618883DF91CF911F910F91089555
+:1019E000E8EDF0E080818F7E8083E7EDF0E080819C
+:1019F0008160808384E082BF81E08093E3010C9466
+:101A0000AD0CE8EDF0E080818E7F80831092E200E3
+:101A100008951092DA001092E10008951F920F923B
+:101A20000FB60F9211242F933F934F935F936F93B1
+:101A30007F938F939F93AF93BF93EF93FF93809187
+:101A4000E10082FF0BC08091E20082FF07C080911D
+:101A5000E1008B7F8093E1000E94750F8091DA0096
+:101A600080FF1FC08091D80080FF1BC08091DA00EA
+:101A70008E7F8093DA008091D90080FF0DC080E1D5
+:101A800089BD82E189BD09B400FEFDCF81E080936C
+:101A9000E4010E94700905C019BC1092E4010E9483
+:101AA0007E098091E10080FF19C08091E20080FFF3
+:101AB00015C08091E2008E7F8093E2008091E20069
+:101AC00080618093E2008091D80080628093D8008A
+:101AD00019BC85E08093E4010E9482098091E100B5
+:101AE00084FF30C08091E20084FF2CC080E189BD7A
+:101AF00082E189BD09B400FEFDCF8091D8008F7DC1
+:101B00008093D8008091E1008F7E8093E1008091E6
+:101B1000E2008F7E8093E2008091E20081608093FA
+:101B2000E2008091E001882311F084E007C08091F9
+:101B3000E30087FD02C081E001C083E08093E401FF
+:101B40000E9484098091E10083FF29C08091E20016
+:101B500083FF25C08091E100877F8093E10082E0D0
+:101B60008093E4011092E0018091E1008E7F8093E8
+:101B7000E1008091E2008E7F8093E2008091E2009C
+:101B800080618093E20042E060E080E00E940D0C02
+:101B90008091F00088608093F0000E948109FF919D
+:101BA000EF91BF91AF919F918F917F916F915F91D5
+:101BB0004F913F912F910F900FBE0F901F9018954E
+:101BC0001F920F920FB60F9211242F933F934F93B2
+:101BD0005F936F937F938F939F93AF93BF93CF93B5
+:101BE000DF93EF93FF93C091E900CF708091EC00F9
+:101BF000D82FD17080FDD0E81092E9008091F000DC
+:101C0000877F8093F00078940E94240E1092E90060
+:101C10008091F00088608093F000CD2BCF70C0934E
+:101C2000E900FF91EF91DF91CF91BF91AF919F912B
+:101C30008F917F916F915F914F913F912F910F9075
+:101C40000FBE0F901F9018951F93CF93DF93CDB7C2
+:101C5000DEB7AA970FB6F894DEBF0FBECDBFE5EE94
+:101C6000F1E088E08E0F9091F10091938E13FBCFFD
+:101C70000E94A0098091E80083FF1FC18091E501C7
+:101C80009091E601492F50E04A30510508F015C106
+:101C9000FA01EA5AFF4F0C941F24803881F08238F1
+:101CA00009F00BC18091E9018F708093E900809168
+:101CB000EB0085FB882780F91092E90006C080912F
+:101CC000E1019091E201911182609091E800977F8B
+:101CD0009093E8008093F1001092F100C8C0282F83
+:101CE0002D7F09F0EAC0882319F0823061F0E5C049
+:101CF0008091E701813009F0E0C0933009F080E085
+:101D00008093E2012BC08091E701811127C080916F
+:101D1000E9018F7009F4D1C08093E9002091EB00B4
+:101D200020FF1CC0933021F48091EB00806214C02E
+:101D30009091EB0090619093EB0021E030E0A901DD
+:101D400002C0440F551F8A95E2F74093EA001092B3
+:101D5000EA008091EB0088608093EB001092E9002C
+:101D60008091E800877F86C08111A7C01091E701AC
+:101D70001F778091E3008078812B8093E30080912E
+:101D8000E800877F8093E8000E94420C8091E80081
+:101D900080FFFCCF8091E30080688093E300111105
+:101DA00002C082E001C083E08093E40186C08058D5
+:101DB000823008F082C08091E7019091E8018C3D6B
+:101DC00053E0950779F583E08A838AE289834FB7E8
+:101DD000F894DE01139620E03EE051E2E32FF0E0BC
+:101DE00050935700E49120FF03C0E295EF703F5FEE
+:101DF000EF708E2F90E0EA3010F0C79601C0C096C9
+:101E00008D939D932F5F243149F74FBF8091E80058
+:101E1000877F8093E8006AE270E0CE0101960E941D
+:101E2000490B14C0AE014F5F5F4F6091E9010E9402
+:101E3000900ABC01892B09F440C09091E800977F7B
+:101E40009093E80089819A810E94AC0B8091E80010
+:101E50008B778093E80031C0803879F58091E80075
+:101E6000877F8093E8008091E0018093F10080916A
+:101E7000E8008E778093E8000E94420C1EC081111A
+:101E80001CC09091E7019230C0F48091E800877FF8
+:101E90008093E8009093E0010E94420C8091E00161
+:101EA000811106C08091E30087FD02C081E001C07E
+:101EB00084E08093E4010E948C098091E80083FF14
+:101EC0000AC08091E800877F8093E8008091EB0052
+:101ED00080628093EB00AA960FB6F894DEBF0FBE27
+:101EE000CDBFDF91CF911F9108950895CF93809139
+:101EF000E4018823A1F0C091E900CF709091EC003B
+:101F0000892F817090FD80E8C82B1092E9008091A4
+:101F1000E80083FD0E94240ECF70C093E900CF91AA
+:101F2000089590936901809368010895E091680194
+:101F3000F0916901309721F00190F081E02D099432
+:101F400080E00895E0916801F0916901309721F0F7
+:101F50000280F381E02D09940895E0916801F091E9
+:101F60006901309721F00480F581E02D09940895EE
+:101F700020916601309167018217930771F0909369
+:101F8000670180936601E0916801F09169013097E3
+:101F900021F00680F781E02D0994089520916401D5
+:101FA000309165018217930771F0909365018093DA
+:101FB0006401E0916801F0916901309721F000849B
+:101FC000F185E02D0994089508950C94E40F0E9482
+:101FD000FA1B0E94A7040C94C01CCF92DF92EF92D0
+:101FE000FF920F931F93CF93DF93CDB7DEB72B975D
+:101FF0000FB6F894DEBF0FBECDBF0E94BF048BE6C4
+:10200000C82E81E0D82E00E010E0E02E802F0E9444
+:10201000AD05F60141916F01F42EF826B1F40F5F82
+:102020001F4F0E30110589F78FEF89838A831B823A
+:102030000E94031C8160782F9D838C8349815A8183
+:102040006B818D810E94901040C09091CD0191FFD5
+:1020500004C08B870E94B3058B8520E030E04F2DB4
+:1020600050E0922FBA01022E02C0759567950A942E
+:10207000E2F760FF24C02E83EF8221E030E06901A7
+:1020800002C0CC0CDD1C9A95E2F790E08C219D21DA
+:10209000892B09F420E028870E94031C8160782F97
+:1020A0009A8789874E815F8168858A850E94901012
+:1020B000F801E559FE4F8081C826C08206C02F5F17
+:1020C0003F4F2630310569F6AACF0E94A71F109115
+:1020D0006A010E94960F1817A1F00E94960F809334
+:1020E0006A012B960FB6F894DEBF0FBECDBFDF910D
+:1020F000CF911F910F91FF90EF90DF90CF900C94B4
+:102100008F082B960FB6F894DEBF0FBECDBFDF91C0
+:10211000CF911F910F91FF90EF90DF90CF90089596
+:10212000CF93DF93CDB7DEB72B970FB6F894DEBF12
+:102130000FBECDBF4F83588769877A878B87DE01B3
+:10214000119686E0FD0111928A95E9F785E0FE017E
+:10215000379601900D928A95E1F749815A816B81FA
+:102160007C818D819E810E94C0172B960FB6F894BA
+:10217000DEBF0FBECDBFDF91CF9108950895CF93FD
+:10218000882309F4C2C0C82F823859F40E94960FE0
+:1021900081FDBBC089E30E94691A0E94361B89E356
+:1021A0000CC0833879F40E94960F80FDAEC083E5A1
+:1021B0000E94691A0E94361B83E50E94AB1ACF91D8
+:1021C0000C94361B843859F40E94960F82FD9DC0F2
+:1021D00087E40E94691A0E94361B87E4EECF8CEFD9
+:1021E0008C0F813A48F48C2F0E94EA2181118DC016
+:1021F0008C2F0E94691AE3CF80E28C0F883048F45C
+:10220000C77081E001C0880FCA95EAF70E94EF1AF3
+:10221000D6CF8BE58C0F833078F4C53A29F0C63AD7
+:1022200031F083E890E005C081E890E002C082E8E8
+:1022300090E0CF910C94B80F88E58C0F833108F0B3
+:1022400064C0C83A39F1C93A41F1CA3A49F1CB3AC6
+:1022500051F1CC3A59F1CD3A61F1C03B69F1CE3A36
+:1022600071F1CF3A79F1C13B81F1C23B89F1C33BB6
+:1022700091F1C43B99F1C53BA1F1C63BA9F1C73B24
+:10228000B1F1C83BB9F1C93BC1F1CA3BC9F180E02A
+:1022900090E038C082EE90E035C089EE90E032C028
+:1022A0008AEE90E02FC085EB90E02CC086EB90E0AA
+:1022B00029C087EB90E026C08CEC90E023C08DEC29
+:1022C00090E020C083E891E01DC08AE891E01AC048
+:1022D00082E991E017C084E991E014C081E292E0C4
+:1022E00011C083E292E00EC084E292E00BC085E26E
+:1022F00092E008C086E292E005C087E292E002C068
+:102300008AE292E0CF910C94CE0FCF91089588236A
+:1023100009F44BC0823859F40E94960F81FF45C0E2
+:1023200089E30E94691A0E94361B89E30CC0833836
+:1023300071F40E94960F80FF38C083E50E94691AED
+:102340000E94361B83E50E94AB1A0C94361B84381E
+:1023500059F40E94960F82FF28C087E40E94691AF0
+:102360000E94361B87E4EFCF9CEF980F913A58F309
+:1023700090E2980F983050F4877091E001C0990F67
+:102380008A95EAF7892F0E94F51ADFCF9BE5980F0F
+:10239000933020F480E090E00C94B80F885A833199
+:1023A00020F480E090E00C94CE0F0895882321F073
+:1023B0000E94EF1A0C94361B0895882321F00E9486
+:1023C000F51A0C94361B0895BF92CF92DF92EF92CC
+:1023D000FF920F931F93CF93DF9300D000D000D0D4
+:1023E000CDB7DEB725E0FC01DE01119601900D921C
+:1023F0002A95E1F7FC01D080118102812581229587
+:102400002F7043815481452B09F4FCC21F3F21F4F6
+:10241000FFEFDF1609F4F6C27C012E830E94BE1086
+:10242000D9821A8369817A81802F0E94651A182FB8
+:10243000B92E0E941A1A0E94E1182E81002319F069
+:102440000E940C1B2E81EB2DE295EF70F0E0E05A1C
+:10245000FF4F0C941F248B2D807F9B2D9F70F92E96
+:10246000882319F0F29480EFF822002389F0FF20EE
+:1024700009F475C280E2810F883020F48F2D0E940C
+:10248000EF1A03C08F2D0E94FF1A0E94361B67C2ED
+:10249000812F0E948711FF2009F4B4C2105E8F2D96
+:1024A000183018F40E94F51A02C00E94051B2696E7
+:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155
+:1024C0000F91FF90EF90DF90CF90BF900C94361B50
+:1024D0003B2D307F8B2D8F70303211F08295807FB5
+:1024E000112319F0113021F12CC00023B9F022235F
+:1024F00009F4A0C1213009F09DC126960FB6F894C9
+:10250000DEBF0FBECDBFDF91CF911F910F91FF9026
+:10251000EF90DF90CF90BF900C941F1B222319F0F7
+:10252000213009F46FC28E830E94221B8E8196C1D6
+:10253000002321F0223008F065C27CC1211162C263
+:102540008DC1002321F0222309F474C108C2222383
+:1025500009F484C119C22B2D26952695237030E0ED
+:102560002115310521F021303105D1F04BC2002376
+:1025700021F0812F9B2D937002C080E090E0269681
+:102580000FB6F894DEBF0FBECDBFDF91CF911F9184
+:102590000F91FF90EF90DF90CF90BF900C94B80F09
+:1025A000002321F0812F9B2D937002C080E090E0EA
+:1025B00026960FB6F894DEBF0FBECDBFDF91CF9148
+:1025C0001F910F91FF90EF90DF90CF90BF900C94F0
+:1025D000CE0F812F002319F00E94AF1E02C00E946F
+:1025E000171F26960FB6F894DEBF0FBECDBFDF9142
+:1025F000CF911F910F91FF90EF90DF90CF90BF9000
+:102600000C949C1F8B2D837009F07BC00111FAC1C3
+:10261000812F829586958770880F880F912F9F70E4
+:10262000C92ED12CE12CF12C082E04C0CC0CDD1CC1
+:10263000EE1CFF1C0A94D2F714FF12C04FE050E0CA
+:1026400060E070E004C0440F551F661F771F8A9535
+:10265000D2F7CB01BA01609570958095909503C033
+:1026600060E070E0CB012B2D269526952370422F3C
+:1026700050E042305105D9F04330510569F16C29E1
+:102680007D298E299F294130510551F126960FB69B
+:10269000F894DEBF0FBECDBFDF91CF911F910F9198
+:1026A000FF90EF90DF90CF90BF900C9408196C29A9
+:1026B0007D298E299F2926960FB6F894DEBF0FBE7E
+:1026C000CDBFDF91CF911F910F91FF90EF90DF90E1
+:1026D000CF90BF900C9424190E940819C701B6012D
+:1026E00026960FB6F894DEBF0FBECDBFDF91CF9117
+:1026F0001F910F91FF90EF90DF90CF90BF900C94BF
+:10270000EC18002319F08B2D817001C08695882369
+:1027100009F478C1812F829586958770880F880F7C
+:10272000912F9F70C92ED12CE12CF12C082E04C0C2
+:10273000CC0CDD1CEE1CFF1C0A94D2F714FF12C057
+:102740004FE050E060E070E004C0440F551F661F8A
+:10275000771F8A95D2F7CB01BA0160957095809565
+:10276000909503C060E070E0CB012B2D2695269557
+:102770002370422F50E042305105D9F043305105CB
+:1027800069F16C297D298E299F294130510551F12C
+:1027900026960FB6F894DEBF0FBECDBFDF91CF9166
+:1027A0001F910F91FF90EF90DF90CF90BF900C940E
+:1027B000E2196C297D298E299F2926960FB6F89457
+:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064
+:1027D000EF90DF90CF90BF900C94FE190E94E21909
+:1027E000C701B60126960FB6F894DEBF0FBECDBF67
+:1027F000DF91CF911F910F91FF90EF90DF90CF90DD
+:10280000BF900C94C619103FD1F118F4103E50F44B
+:10281000A1C0123F09F463C008F44CC0133F09F48F
+:1028200073C098C01F708B2D8F710023A1F00E9480
+:102830005F19812F26960FB6F894DEBF0FBECDBF6D
+:10284000DF91CF911F910F91FF90EF90DF90CF908C
+:10285000BF900C94D6110E948019812F26960FB636
+:10286000F894DEBF0FBECDBFDF91CF911F910F91C6
+:10287000FF90EF90DF90CF90BF900C94DD1100237C
+:10288000A9F02111BFC08B2D8F7126960FB6F89439
+:10289000DEBF0FBECDBFDF91CF911F910F91FF9093
+:1028A000EF90DF90CF90BF900C94A519223008F0E4
+:1028B000A9C0E9CF0023A9F08B2D8F7126960FB602
+:1028C000F894DEBF0FBECDBFDF91CF911F910F9166
+:1028D000FF90EF90DF90CF90BF900C945F19002392
+:1028E00059F38B2D8F7126960FB6F894DEBF0FBE6D
+:1028F000CDBFDF91CF911F910F91FF90EF90DF90AF
+:10290000CF90BF900C948019002399F08B2D8F717C
+:1029100026960FB6F894DEBF0FBECDBFDF91CF91E4
+:102920001F910F91FF90EF90DF90CF90BF900C948C
+:102930004A1926960FB6F894DEBF0FBECDBFDF91C1
+:10294000CF911F910F91FF90EF90DF90CF90BF90AC
+:102950000C9440190023A9F0222309F4ADCF812F54
+:1029600026960FB6F894DEBF0FBECDBFDF91CF9194
+:102970001F910F91FF90EF90DF90CF90BF900C943C
+:10298000BF10222309F4ADCF812F26960FB6F894FD
+:10299000DEBF0FBECDBFDF91CF911F910F91FF9092
+:1029A000EF90DF90CF90BF900C9487114B2D4F701C
+:1029B000612FC7010E94510326960FB6F894DEBF1F
+:1029C0000FBECDBFDF91CF911F910F91FF90EF9080
+:1029D000DF90CF90BF900C9464184B2D4F70612FF7
+:1029E000C70126960FB6F894DEBF0FBECDBFDF91AC
+:1029F000CF911F910F91FF90EF90DF90CF90BF90FC
+:102A00000C94B40526960FB6F894DEBF0FBECDBF6A
+:102A1000DF91CF911F910F91FF90EF90DF90CF90BA
+:102A2000BF9008950E940C1B0E941C1B0E94E11A7B
+:102A30000E94361B0E944D200E949C1F80E090E067
+:102A40000E94B80F80E090E00C94CE0F0E94FC1A18
+:102A50000C9412150E945A1A292F22952F7030E0DB
+:102A60002C3031054CF42A3031056CF422503109F8
+:102A70002230310588F407C02C30310549F02F3061
+:102A8000310531F009C0803E48F0803F29F406C08E
+:102A900093FB882780F9089580E0089581E00895E8
+:102AA000CF93DF9300D000D01F92CDB7DEB70F9049
+:102AB0000F900F900F900F90DF91CF910895CF93CB
+:102AC000DF9300D000D000D0CDB7DEB726960FB68A
+:102AD000F894DEBF0FBECDBFDF91CF9108951F9355
+:102AE000CF93DF93C091790116E080917A01C817E6
+:102AF00099F0D0E01C9FF0011D9FF00D1124E558C6
+:102B0000FE4F4081518162817381848195810E9451
+:102B10005F152196C770E9CFDF91CF911F9108957E
+:102B20004091AB015091AC016091AD017091AE014B
+:102B30008091AF019091B0010C945F158091B0012C
+:102B400082958F7009F054C08091AD01882309F4FB
+:102B50004FC080917901A0917A016091AB01709191
+:102B6000AC014091AE015091AF01B6E08A1709F473
+:102B70003FC090E041155105C1F17F3F11F46F3F17
+:102B8000A1F1B89FF001B99FF00D1124E558FE4F57
+:102B9000218172132AC02081621327C02281211152
+:102BA00024C0238134812417350710F421503109C2
+:102BB000241B350B283C3105C0F42091B0012F7047
+:102BC00020612093B00126E0289FF001299FF00D9D
+:102BD0001124E058FE4F80818F70806180838BEAE2
+:102BE00091E00E94E4110C946F1501968770BECF9E
+:102BF0000895CF92DF92EF92FF920F931F93CF939E
+:102C0000DF93CDB7DEB762970FB6F894DEBF0FBE85
+:102C1000CDBF8C0185E0F801DE011D9601900D927B
+:102C20008A95E1F7D8014C9111965C911197129613
+:102C30006C9112971396CD90DC9014973091AB0164
+:102C40007091AC018091AE019091AF01009709F4B1
+:102C50006BC17F3F19F43F3F09F466C1E090AD01BD
+:102C6000EE2009F4C0C02091B001C816D90628F0A2
+:102C7000F601E81BF90BCF0104C0809590958C0DEF
+:102C80009D1DFF24F394883C910578F0F12C207F62
+:102C900009F0C6C07C2DD98AC88A89890E9450153E
+:102CA0008BEA91E00E94E411B1C0822F807F09F08D
+:102CB00046C0751314C0341312C0611110C02F70B8
+:102CC00020612093B0010E9490158BEA91E00E9450
+:102CD000E4118091B001D80115968C932EC0CD28B7
+:102CE00019F15F3F11F44F3FF9F0F62E61111CC04E
+:102CF0008091790120917A0136E0821709F45AC057
+:102D000090E0389FF001399FF00D1124E558FE4FF7
+:102D10007181571306C07081471303C0728171110E
+:102D200003C001968770E9CFF62E662309F418C117
+:102D30008091B00181608093B001F12C11C17513B5
+:102D400008C0341306C0611104C08091B001D801DD
+:102D5000C3C04D875E878D859E856A8B0E942A152C
+:102D60006A898823E1F16623D1F12091B001822F95
+:102D700082958F7090E0029774F08091AB019091F2
+:102D8000AC0198878F831986DB86CA862C87CE0193
+:102D900007960E94E41186E0F801ABEAB1E00190E9
+:102DA0000D928A95E1F70E949E150E949015FF24CE
+:102DB000F394D6C04D875E878D859E850E945A1AF2
+:102DC000292F22952F7030E0223031050CF0BCC045
+:102DD0009F7009F0B6C0805E883008F4C1C0C80199
+:102DE0000E94E411E4CFC816D90608F453C0F601D6
+:102DF000E81BF90BCF01883C910508F450C0F12C79
+:102E00007C2DD98AC88A89890E945015EBEAF1E0A5
+:102E100086E0DF011D928A95E9F70E949015A0C017
+:102E2000751314C0341312C0611110C08091B00129
+:102E3000F8018583C8010E94E41186E0EBEAF1E025
+:102E4000DF011D928A95E9F7FE2C8AC04D875E87C7
+:102E50008D859E856A8B0E942A156A89882309F4CC
+:102E6000BECF662309F4BBCF2091B001822F82959B
+:102E70008F7090E002970CF48ECF8091AB0190910F
+:102E8000AC019A8389831B82DD82CC822E83CE01A2
+:102E900001967FCF809590958C0D9D1DACCFF62E21
+:102EA000662309F49CCF75132EC034132CC02091D7
+:102EB000B00120FD1FC0822F82958F70D9F0D801FC
+:102EC00015962C9315978F3049F08F5F982F929518
+:102ED000907F822F8F70892B15968C93C8010E944A
+:102EE000E41186E0F801ABEAB1E001900D928A9519
+:102EF000E1F793CF86E0F801ABEAB1E001900D92E3
+:102F00008A95E1F72DC04D875E878D859E850E944D
+:102F10002A15811140CF8091B00181608093B0016A
+:102F2000C8010E94E4111CC0662309F458CF4D87E4
+:102F30005E878D859E850E942A15882309F44FCFD0
+:102F40002ACF811148CF0CC0243031050CF047CF77
+:102F50009F7009F440CFF8019581907F09F03BCF35
+:102F60008F2D62960FB6F894DEBF0FBECDBFDF91F6
+:102F7000CF911F910F91FF90EF90DF90CF90089528
+:102F80001F93CF93DF93CDB7DEB72C970FB6F8948E
+:102F9000DEBF0FBECDBF4F83588769877A878B8787
+:102FA0009C87CE0107960E94F915882369F08F81CE
+:102FB00098852A853B85232BF1F19F3F09F063C05B
+:102FC0008F3F09F060C037C086E0FE013796DE0112
+:102FD000119601900D928A95E1F76F817885EA85C7
+:102FE000FB85309741F17F3F11F46F3F21F1209134
+:102FF0007A0130E0C90101968770992740917901E3
+:1030000050E08417950709F447C069837A83FD83EC
+:10301000EC8396E0929FD001939FB00D1124A558A8
+:10302000BE4FFE01319601900D929A95E1F7809383
+:103030007A010E946F1516E08091790190917A01D2
+:103040008917C1F1189FC001112485589E4F0E9415
+:10305000F915882379F1E09179011E9FF00111247F
+:10306000E558FE4F40815181628173818481958151
+:103070000E945F158091790190E0019687709927F1
+:1030800080937901D9CF4F81588569857A858B8561
+:103090009C850E945F15CFCF0E94261510927A0161
+:1030A00010927901EBEAF1E086E0DF011D928A954A
+:1030B000E9F7C1CF2C960FB6F894DEBF0FBECDBF97
+:1030C000DF91CF911F910895EF92FF920F931F937D
+:1030D000CF93DF938C01892B09F46CC0F12CEE2483
+:1030E000E394E8012196F8018491843740F4843018
+:1030F00008F051C0813081F0823019F15BC0853712
+:1031000009F444C0A8F19CE7980F903708F052C02A
+:103110008F770E94871141C00E5F1F4FFE01C4913F
+:1031200080E28C0F883048F4C7708E2D01C0880F64
+:10313000CA95EAF70E940F1B14C08C2F0E94BF1083
+:103140002DC00E5F1F4FFE01C49180E28C0F8830AE
+:1031500058F4C7708E2D01C0880FCA95EAF70E94F7
+:10316000151B0E94361B1AC08C2F0E94871116C097
+:103170000E5F1F4FFE01C491CC2381F08FE99FE0C9
+:103180000197F1F700C00000C150F6CF0E5F1F4F4E
+:10319000FE01F49003C00E94BF108E018F2D882382
+:1031A00009F49FCFEFE9FFE03197F1F700C000008D
+:1031B0008150F5CFDF91CF911F910F91FF90EF904C
+:1031C000089508956093B5017093B6018093B70197
+:1031D0009093B8010C9412150F931F930091B501B1
+:1031E0001091B6012091B7013091B801DC01CB01FB
+:1031F000802B912BA22BB32B8093B5019093B6011A
+:10320000A093B701B093B8011F910F910C941215C0
+:103210000F931F930091B5011091B6012091B70152
+:103220003091B801DC01CB0180239123A223B32389
+:103230008093B5019093B601A093B701B093B80104
+:103240001F910F910C9412150F931F930091B501CC
+:103250001091B6012091B7013091B801DC01CB018A
+:1032600080279127A227B3278093B5019093B601B9
+:10327000A093B701B093B8011F910F910C94121550
+:103280001092B1011092B2011092B3011092B401E8
+:103290000C94121541E050E060E070E004C0440F6F
+:1032A000551F661F771F8A95D2F74093B10150933F
+:1032B000B2016093B3017093B4010C94121541E014
+:1032C00050E060E070E004C0440F551F661F771F98
+:1032D0008A95D2F78091B1019091B201A091B3018A
+:1032E000B091B401482B592B6A2B7B2B4093B10131
+:1032F0005093B2016093B3017093B4010C94121512
+:1033000041E050E060E070E004C0440F551F661FCC
+:10331000771F8A95D2F7409550956095709580916A
+:10332000B1019091B201A091B301B091B4014823D1
+:1033300059236A237B234093B1015093B2016093D8
+:10334000B3017093B4010C94121541E050E060E0B9
+:1033500070E004C0440F551F661F771F8A95D2F78F
+:103360008091B1019091B201A091B301B091B401EB
+:10337000482759276A277B274093B1015093B20110
+:103380006093B3017093B4010C9412150F931F93C3
+:103390000091B1011091B2012091B3013091B401BB
+:1033A000DC01CB01802B912BA22BB32B8093B1019D
+:1033B0009093B201A093B301B093B4011F910F9108
+:1033C0000C9412150F931F930091B1011091B2014B
+:1033D0002091B3013091B401DC01CB018023912312
+:1033E000A223B3238093B1019093B201A093B301C0
+:1033F000B093B4011F910F910C9412150F931F936A
+:103400000091B1011091B2012091B3013091B4014A
+:10341000DC01CB0180279127A227B3278093B1013C
+:103420009093B201A093B301B093B4011F910F9197
+:103430000C9412150895CF92DF92EF92FF920F93A2
+:103440001F93CF93DF938C01C090B501D090B6014C
+:10345000E090B701F090B8018091B1019091B20174
+:10346000A091B301B091B401C82AD92AEA2AFB2A53
+:10347000CFE1D0E0D701C6010C2E04C0B695A795C8
+:10348000979587950A94D2F780FF06C0B8018C2FD4
+:103490000E94F407019721F4219760F780E001C0B2
+:1034A0008C2FDF91CF911F910F91FF90EF90DF90C4
+:1034B000CF900895CF93DF93EC010E941B1ABE01B9
+:1034C0000E94F407DF91CF910895CB010E945A1A10
+:1034D000089590910C01992321F090910D01911183
+:1034E00009C020910E0130910F01F90132969FEF32
+:1034F00040E01FC0982F9695969596959F3050F571
+:10350000E0910E01F0910F01E90FF11D877021E0AC
+:1035100030E0A90102C0440F551F8A95E2F7CA01A5
+:103520009181892B818308959F3F39F04F5F4E3001
+:1035300041F051915813F8CF0DC05111F7CF942F8E
+:10354000F5CF9F3F39F0F901E90FF11D97FDFA958D
+:1035500082830895089590910C01992321F0909110
+:103560000D01911109C020910E0130910F01F90157
+:103570003296205F3F4F1FC0982F9695969596954F
+:103580009F30F0F4E0910E01F0910F01E90FF11D71
+:10359000877021E030E0A90102C0440F551F8A95D1
+:1035A000E2F7CA018095918189238183089531963C
+:1035B000E217F30729F090819813F9CF1082F7CF23
+:1035C000089581E090E0E0910E01F0910F01E80F85
+:1035D000F91F1082019680319105A9F70895909105
+:1035E000CC01892B8093CC01089580959091CC01DA
+:1035F00089238093CC0108951092CC010895909175
+:10360000CB01892B8093CB01089580959091CB01BC
+:1036100089238093CB0108951092CB010895909156
+:10362000CA01892B8093CA01089580959091CA019F
+:1036300089238093CA0108951092CA010895809346
+:10364000B90108951092B901089580910E019091E9
+:103650000F01FC0131969C01205F3F4F80E091916A
+:1036600091118F5FE217F307D1F70895E0910E01F2
+:10367000F0910F018091CC018083E0910E01F091D7
+:103680000F0190818091CB01892B8083E0910E0105
+:10369000F0910F0190818091CA01892B80838091E4
+:1036A000B901882361F0E0910E01F0910F01908142
+:1036B000892B80830E94251B81111092B901809172
+:1036C0000E0190910F010C94A20FCF92DF92EF9216
+:1036D000FF926C01EE24FF24C114D104E104F10433
+:1036E00021F0C701B60120E101C020E0C72ED82E8D
+:1036F000E92EFF24C114D104E104F10419F0285F7C
+:10370000C701B6016B017C0154E0F694E794D794AD
+:10371000C7945A95D1F7C114D104E104F10419F00A
+:103720002C5FC701B6016B017C0142E0F694E7947F
+:10373000D794C7944A95D1F7C114D104E104F10498
+:1037400019F02E5FC701B601DC01CB01B695A79534
+:1037500097958795892B8A2B8B2B09F02F5F822FCA
+:10376000FF90EF90DF90CF9008958091E401843036
+:1037700021F11092CE0120E488E190E00FB6F89498
+:10378000A895809360000FBE2093600080E00E94A7
+:103790008F0883B7817F846083BF83B7816083BFD5
+:1037A0007894889583B78E7F83BF88E10FB6F894AD
+:1037B00080936000109260000FBE089508950895F0
+:1037C000CF930E94DE1B0E94BF040E94DF1BC0E05B
+:1037D0008C2F0E94AD05811104C0CF5FCE30C1F7A0
+:1037E00001C081E0CF9108950E9426150E94960F96
+:1037F0000C948F0882E084BD93E095BD9AEF97BD4D
+:1038000080936E0008952FB7F8948091CF01909126
+:10381000D001A091D101B091D2012FBF0895CF92D4
+:10382000DF92EF92FF920F931F932FB7F89440917E
+:10383000CF015091D0016091D1017091D2012FBF81
+:103840006A017B01EE24FF248C0120E030E0C016E9
+:10385000D106E206F30610F4415051099A01281BE3
+:10386000390BC9011F910F91FF90EF90DF90CF901E
+:1038700008951F920F920FB60F9211248F939F936A
+:10388000AF93BF938091CF019091D001A091D101CE
+:10389000B091D2010196A11DB11D8093CF019093EB
+:1038A000D001A093D101B093D201BF91AF919F916C
+:1038B0008F910F900FBE0F901F9018950E94930C40
+:1038C000F8942FEF87EA91E6215080409040E1F78D
+:1038D00000C0000087E090EBDC018093EE01909344
+:1038E000EF01A093F001B093F1019CE088E10FB6E5
+:1038F000F894A895809360000FBE90936000FFCF6E
+:10390000EF92FF920F931F93CF93DF93D82FC0E0D6
+:103910008C2F0E94AD0500E010E0E82EF12CC701CD
+:10392000002E02C0959587950A94E2F780FD06C0A7
+:103930000F5F1F4F0630110591F709C0602F7C2FD4
+:1039400080E00E94B505D813F3CF81E004C0CF5FBB
+:10395000CE30F1F680E0DF91CF911F910F91FF9073
+:10396000EF900895CF93C82F8CE20E94801C88238B
+:1039700021F08C2FCF910C94801C80E0CF91089582
+:10398000CF930E94071E811102C00E94ED1DC5E663
+:10399000C15049F00E94BF048FE39CE90197F1F701
+:1039A00000C00000F5CF89E20E94B21C811113C152
+:1039B0008AE20E94B21C81110E94ED1D85E00E94E6
+:1039C000B21C81110E945E1C0E94121E8093CD01C8
+:1039D00087E00E94B21C8823A9F18BE10E94B21CEF
+:1039E000882351F08091CD0181FB222720F991E0BD
+:1039F000922790FB81F90EC08EE00E94B21C8823B2
+:103A000061F08091CD0182FB222720F991E092277D
+:103A100090FB82F98093CD0115C080E10E94B21C19
+:103A20009091CD01882341F093FB222720F981E07A
+:103A3000822780FB93F904C0892F809580FB90F941
+:103A40009093CD018091CD010E94161E0E94241EEC
+:103A50008093ED0180EE0E94B21C882341F080919A
+:103A6000ED01982F909590FB80F98093ED0189E30B
+:103A70000E94B21C882359F08091ED0181FB22271E
+:103A800020F991E0922790FB81F98093ED0182EE7D
+:103A90000E94B21C882359F08091ED0182FB2227FD
+:103AA00020F991E0922790FB82F98093ED0186EE58
+:103AB0000E94B21C882359F08091ED0183FB2227DC
+:103AC00020F991E0922790FB83F98093ED0183EE3A
+:103AD0000E94B21C882359F08091ED0184FB2227BB
+:103AE00020F991E0922790FB84F98093ED0185E322
+:103AF0000E94B21C882359F08091ED0185FB22279A
+:103B000020F991E0922790FB85F98093ED0181E304
+:103B10000E94B21C882359F08091ED0186FB222778
+:103B200020F991E0922790FB86F98093ED0181E1E5
+:103B30000E94B21C882359F08091ED0187FB222757
+:103B400020F991E0922790FB87F98093ED01809115
+:103B5000ED010E94281E8091ED0187FB882780F9E6
+:103B600080930D0187E20E94B21CC82F8EE10E9453
+:103B7000B21C8111C2608FE10E94B21C8111C4602D
+:103B800080E20E94B21C8111C86081E20E94B21CD6
+:103B90008111C06182E20E94B21C8111C06283E285
+:103BA0000E94B21C8111C06484E20E94B21C88236E
+:103BB00011F0C06802C0CC2329F08C2F0E941F1E78
+:103BC0006C2F03C00E941B1E682F70E080E090E005
+:103BD000CF910C94E218CF9108956DEE7EEF80E0C6
+:103BE00090E00E94552460E082E090E00E9447242B
+:103BF00060E083E090E00E94472460E084E090E091
+:103C00000E94472460E085E090E00C94472480E027
+:103C100090E00E94412421E08D3E9E4F09F020E07B
+:103C2000822F089582E090E00C943924682F82E07E
+:103C300090E00C94472483E090E00C943924682FA2
+:103C400083E090E00C94472484E090E00C943924C5
+:103C5000682F84E090E00C9447248091D50180FF88
+:103C60000BC06091130185E0689FB0011124759528
+:103C70006795759567952BC081FF09C06091130109
+:103C800085E0689FB00111247595679520C082FF7B
+:103C900007C06091130185E0689FB001112417C02F
+:103CA0009091D6019923D1F060911201961788F76F
+:103CB0002091130185E0289F90011124929FA0017B
+:103CC000939F500D112470E0CA010E940B246038AC
+:103CD000710540F46115710539F002C065E070E0CE
+:103CE000862F08958FE7089581E008958091D5018A
+:103CF00080FF08C06091110170E07595679575951A
+:103D0000679521C081FF06C06091110170E0759533
+:103D1000679519C082FF04C06091110170E010C066
+:103D20009091D6019923C1F0609110019617A0F7E8
+:103D300080911101899FC001112470E00E940B2421
+:103D40006038710528F46115710521F0862F0895FA
+:103D50008FE7089581E0089561E070E0F4CF803F3F
+:103D600021F40E942D1E819504C0813F29F40E94F8
+:103D70002D1E8093D9010895823F21F40E942D1EAB
+:103D8000819504C0833F29F40E942D1E8093D801A1
+:103D90000895893F19F40E94761E05C08A3F31F4C8
+:103DA0000E94761E81958093DA0108958B3F21F45D
+:103DB0000E94761E819504C08C3F29F40E94761ED5
+:103DC0008093DB010895843F21F48091D7018160C5
+:103DD00017C0853F21F48091D701826011C0863FD2
+:103DE00021F48091D70184600BC0873F21F480913A
+:103DF000D701886005C0883F31F48091D701806188
+:103E00008093D70108958D3F21F48091D501816081
+:103E10000BC08E3F21F48091D501826005C08F3F99
+:103E200029F48091D50184608093D5010895803F65
+:103E300039F48091D90187FF6CC01092D90169C013
+:103E4000813F29F48091D9011816BCF362C090918A
+:103E5000D801823F29F497FF5CC01092D80159C065
+:103E6000833F19F41916CCF354C0893F41F4809173
+:103E7000DA0118160CF04DC01092DA014AC08A3FE0
+:103E800029F48091DA0187FF44C0F6CF8B3F39F4E3
+:103E90008091DB0187FF3DC01092DB013AC08C3F6F
+:103EA00029F48091DB011816BCF333C0843F21F460
+:103EB0008091D7018E7F17C0853F21F48091D70173
+:103EC0008D7F11C0863F21F48091D7018B7F0BC07D
+:103ED000873F21F48091D701877F05C0883F31F467
+:103EE0008091D7018F7E8093D70113C08D3F21F43D
+:103EF0008091D5018E7F0BC08E3F21F48091D5013A
+:103F00008D7F05C08F3F29F48091D5018B7F8093F1
+:103F1000D5018091D80181110EC08091D901811104
+:103F20000AC08091DA01811106C08091DB01811104
+:103F300002C01092D601089587ED91E00E94AD0F66
+:103F40000E94031C9093D4018093D30108951F9382
+:103F5000CF93DF938091D3019091D4010E940F1CE5
+:103F6000AC019091D601992321F02091140130E009
+:103F700006C0209115018AE0289F90011124421764
+:103F8000530708F486C08091D801C091D901D0911F
+:103F9000DA011091DB01811107C0C11176C0D11186
+:103FA00074C0111172C075C09F3F19F09F5F90934C
+:103FB000D601181624F40E942D1E8093D8018091FA
+:103FC000D80187FF05C00E942D1E81958093D801DE
+:103FD0001C1624F40E942D1E8093D9018091D901D2
+:103FE00087FF05C00E942D1E81958093D9016091A5
+:103FF000D801662339F1C091D901CC2319F1772773
+:1040000067FD7095872F972F0E941C2323E333E3CE
+:1040100043E35FE30E9480230E94E9226093D8017A
+:104020006C2F772767FD7095872F972F0E941C2391
+:1040300023E333E343E35FE30E9480230E94E9220A
+:104040006093D9011D1624F40E94761E8093DA0134
+:104050008091DA0187FF05C00E94761E81958093CA
+:10406000DA01111624F40E94761E8093DB01809100
+:10407000DB0187FF05C00E94761E81958093DB01DE
+:10408000DF91CF911F910C949C1F9F3F09F08ECF21
+:1040900096CFDF91CF911F910895E7EDF1E085E094
+:1040A000DF011D928A95E9F71092D6011092D50191
+:1040B0000895833081F128F4813059F08230D1F0B5
+:1040C0000895853009F449C0B8F1863009F456C026
+:1040D000089580911501262F30E0280F311D2F3FC4
+:1040E000310524F4680F6093150108958FEF8093D4
+:1040F0001501089580911401262F30E0280F311DFD
+:104100002F3F310524F4680F6093140108958FEF59
+:1041100080931401089580911301262F30E0280F19
+:10412000311D2F3F310524F4680F6093130108956A
+:104130008FEF80931301089580911201262F30E0B4
+:10414000280F311D2F3F310524F4680F60931201B1
+:1041500008958FEF80931201089580911101262F09
+:1041600030E0280F311D2F3F310524F4680F609394
+:10417000110108958FEF809311010895809110012E
+:10418000262F30E0280F311D2F3F310524F4680F12
+:104190006093100108958FEF80931001089583308C
+:1041A00011F128F4813049F0823091F00895853082
+:1041B00081F120F18630C1F10895809115016817D1
+:1041C00020F4861B8093150108951092150108951F
+:1041D00080911401681720F4861B809314010895C0
+:1041E00010921401089580911301681720F4861B22
+:1041F0008093130108951092130108958091120184
+:10420000681720F4861B8093120108951092120102
+:10421000089580911101681720F4861B8093110185
+:10422000089510921101089580911001681720F4EB
+:10423000861B8093100108951092100108950F932A
+:104240001F938D3109F46BC008F03FC08E3009F424
+:104250007FC0C0F4873009F469C068F4863009F083
+:10426000B1C08091CD01817F8E7F8093CD0181E0AF
+:104270008093DD01A8C0883009F4A2C08B3009F416
+:104280009FC0A0C0863109F49BC078F4803109F446
+:1042900072C0813109F096C00E94261590910D01DF
+:1042A00081E0892780930D018BC0893109F488C092
+:1042B0008B3109F087C08091CD0181FB222720F945
+:1042C00091E0922790FB81F94CC0853309F470C0CE
+:1042D00048F4873209F46CC008F459C0893209F4F3
+:1042E00067C070C0833438F48A3308F04EC0883316
+:1042F00009F466C067C0833409F45AC0883409F0F1
+:1043000061C00E9426150FEF13ED20E3015010400D
+:104310002040E1F700C000000E945E1C51C00E94D6
+:10432000A3220E94960F0E948F084AC09091CD014F
+:10433000892F8095817080FB90F929F096609860B4
+:104340009093CD0140C0997F977F9093CD0138C065
+:104350008091CD0182FB222720F991E0922790FBEA
+:1043600082F98093CD01992359F18091CD0181602B
+:104370008093CD0125C08091CD0183FB222720F9B8
+:1043800091E0922790FB83F9ECCF895301C08D51C6
+:1043900041E050E060E070E08A019B0104C0000F42
+:1043A000111F221F331F8A95D2F7C901B80104C01B
+:1043B00061E070E080E090E00E94E2180E94261523
+:1043C00081E001C080E01F910F91089580E0089581
+:1043D00080E00895CF93C82F8091DD01813079F07E
+:1043E00018F08230E9F187C0E0910E01F0910F01E1
+:1043F0008081813169F0823209F07FC009C0E0918B
+:104400000E01F0910F018081813111F0823261F44F
+:104410008C2F0E94E621811104C08C2F0E941F2145
+:104420001DC081E090E01AC08C2F0E94E82181110C
+:1044300014C0C43179F048F4CB3079F0C03109F0C0
+:1044400060C082E08093DD0108C0C93219F0C83332
+:1044500021F057C01092DD0154C081E0817053C03B
+:10446000C93289F118F5C43171F1A8F4C73009F0E7
+:1044700046C08AE08093150194E19093140193E083
+:10448000909313018093120188E08093110188E2D8
+:104490008093100134C0CE51C63088F5EC2FF0E087
+:1044A000E65DFE4F80818093DC0129C0CE34E9F0C7
+:1044B00020F4CB3421F56AE013C0C13579F0C23560
+:1044C000F1F461E00DC08091DC01882319F01092B5
+:1044D000DC0115C081E08093DD0115C061E006C0FC
+:1044E0008091DC010E9459200AC06AE08091DC01C1
+:1044F0000E94CF2004C01092DD0180E004C081E062
+:1045000002C080E0ABCFCF910895E1E8F0E0808178
+:10451000886080838081816080838FB7F89493E086
+:104520009093890090ED909388008FBF0895EFE6F7
+:10453000F0E08081826080830895EFE6F0E0808182
+:104540008D7F80830895EFE6F0E0908182E08927F7
+:10455000808308951F920F920FB60F9211242F930C
+:104560003F934F935F936F937F938F939F93AF93FB
+:10457000BF93EF93FF938091DE019091DF0101964D
+:104580009093DF018093DE01811103C082E00E94DD
+:104590008F08E091DF01E695E695F0E0EA52FA4FE8
+:1045A000E4918091DE018E1303C080E00E948F08A9
+:1045B000FF91EF91BF91AF919F918F917F916F91FB
+:1045C0005F914F913F912F910F900FBE0F901F90D1
+:1045D000189504D06894B1118DC0089570D088F0FA
+:1045E0009F5790F0B92F9927B751A0F0D1F0660FDF
+:1045F000771F881F991F1AF0BA95C9F712C0B130FA
+:1046000081F077D0B1E0089574C0672F782F8827A4
+:10461000B85F39F0B93FCCF3869577956795B39538
+:10462000D9F73EF490958095709561957F4F8F4FA7
+:104630009F4F0895E89409C097FB3EF490958095AC
+:10464000709561957F4F8F4F9F4F9923A9F0F92F58
+:1046500096E9BB279395F695879577956795B795D6
+:10466000F111F8CFFAF4BB0F11F460FF1BC06F5FBC
+:104670007F4F8F4F9F4F16C0882311F096E911C0CE
+:10468000772321F09EE8872F762F05C0662371F0EF
+:1046900096E8862F70E060E02AF09A95660F771F03
+:1046A000881FDAF7880F9695879597F9089557FD33
+:1046B0009058440F551F59F05F3F71F04795880F90
+:1046C00097FB991F61F09F3F79F087950895121627
+:1046D00013061406551FF2CF4695F1DF08C01616D3
+:1046E00017061806991FF1CF869571056105089484
+:1046F0000895E894BB2766277727CB0197F908959B
+:104700000BD078C069D028F06ED018F0952309F04E
+:104710005AC05FC01124EECFCADFA0F3959FD1F33A
+:10472000950F50E0551F629FF001729FBB27F00D5F
+:10473000B11D639FAA27F00DB11DAA1F649F6627B4
+:10474000B00DA11D661F829F2227B00DA11D621F03
+:10475000739FB00DA11D621F839FA00D611D221FBD
+:10476000749F3327A00D611D231F849F600D211DA1
+:10477000822F762F6A2F11249F5750408AF0E1F044
+:1047800088234AF0EE0FFF1FBB1F661F771F881F8D
+:1047900091505040A9F79E3F510570F014C0AACF28
+:1047A0005F3FECF3983EDCF3869577956795B79578
+:1047B000F795E7959F5FC1F7FE2B880F911D9695A2
+:1047C000879597F9089597F99F6780E870E060E012
+:1047D00008959FEF80EC089500240A94161617069A
+:1047E00018060906089500240A94121613061406E2
+:1047F00005060895092E0394000C11F4882352F045
+:10480000BB0F40F4BF2B11F460FF04C06F5F7F4FFC
+:104810008F4F9F4F089597FB072E16F4009407D0F3
+:1048200077FD09D00E94252407FC05D03EF4909521
+:1048300081959F4F0895709561957F4F0895EE0F74
+:10484000FF1F0590F491E02D0994AA1BBB1B51E1B9
+:1048500007C0AA1FBB1FA617B70710F0A61BB70BF0
+:10486000881F991F5A95A9F780959095BC01CD0195
+:104870000895F999FECF92BD81BDF89A992780B528
+:104880000895A8E1B0E042E050E00C945C24262FAB
+:10489000F999FECF1FBA92BD81BD20BD0FB6F89425
+:1048A000FA9AF99A0FBE019608950E944724272F7D
+:1048B0000C944824DC01CB01FC01F999FECF06C021
+:1048C000F2BDE1BDF89A319600B40D9241505040CE
+:0848D000B8F70895F894FFCF3A
+:1048D800200291081F09FC08C80894080101BA01C0
+:1048E80028080A03140A3F4D363997054A05140566
+:1048F800DB046E048704A004B9040102030405065E
+:044908000708090093
:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png Binary files differnew file mode 100644 index 0000000000..193aa339e6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c new file mode 100644 index 0000000000..b3ed55f217 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -0,0 +1,376 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" +#include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" +#include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define SMLY_TOG_QUOT 0 +#define M_TOGGLE_5 1 +#define TGH_NUM 2 +#define M_DE_OSX_PLUS_CTRLALT 3 +#define SM_KISS 4 +#define SM_FROWN 5 +#define SM_CRY 6 +#define SM_SMILE 7 +#define SM_SMIRK 8 +#define M_LGUI_SHFT 9 +#define SM_HEART 10 +#define TOG_HLD_MDIA 11 +#define SM_LAUGH 12 +#define SM_SAD 13 +#define M_DE_OSX_CIRC_CTRLCMD 14 +#define M_MEH_SH_ACUT 15 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, + //right half + M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + KC_LEFT, KC_RIGHT, + KC_UP, + KC_DOWN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_MUTE, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[NUMB]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, + DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, + KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +static uint16_t start; +switch(id) { +case SMLY_TOG_QUOT: +//Macro: SMLY_TOG_QUOT//----------------------- +if (record->event.pressed) { + start = timer_read(); + layer_state ^= (1<<SMLY); + layer_state &= (1<<SMLY); + return MACRO_NONE; } else { + layer_state ^= (1<<SMLY); + layer_state &= (1<<SMLY); + if (timer_elapsed(start) >150) { + return MACRO_NONE; + } else { + return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); + } + } + +break; +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case TGH_NUM: +//Macro: TGH_NUM//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1<<NUMB); + layer_state &=(1<<NUMB); + } else { + if (timer_elapsed(start) > 150) { + layer_state^=(1<<NUMB); + layer_state&=(1<<NUMB); + } + } +return MACRO_NONE; + +break; +case M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); + }else{ + return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); + } + +break; +case TOG_HLD_MDIA: +//Macro: TOG_HLD_MDIA//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1<<MDIA); + layer_state &=(1<<MDIA); + } else { + if (timer_elapsed(start) > 150) { + layer_state^=(1<<MDIA); + layer_state&=(1<<MDIA); + } + } +return MACRO_NONE; + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END); + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); + } + } + +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END); + } + } + +break; +} +return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + +uint8_t layer = biton32(layer_state); + +ergodox_board_led_off(); +ergodox_right_led_1_off(); +ergodox_right_led_2_off(); +ergodox_right_led_3_off(); +switch (layer) { + + case SYMB: + ergodox_right_led_1_on(); + + + break; + case MDIA: + + ergodox_right_led_2_on(); + + break; + case NUMB: + + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png Binary files differnew file mode 100644 index 0000000000..29f1099d06 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png diff --git a/keyboard/ergodox_ez/keymaps/plums/keymap.c b/keyboard/ergodox_ez/keymaps/plums/keymap.c new file mode 100644 index 0000000000..46eb2e42b1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/keymap.c @@ -0,0 +1,229 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGA | LAlt | | RAlt | Play | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Esc |------| |------|Enter |Space | + * |ace | | End | | PgDn | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, + LGUI(KC_LALT), KC_LALT, + KC_HOME, + KC_BSPC, KC_ESC, KC_END, + // right hand + HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), + KC_RALT, KC_MPLY, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) + [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_LCTL); + } else { + // tap press action + return MACRO( D(LCTL), T(A), U(LCTL), END ); + } + } else { + // hold press action + register_code(KC_LCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_LCTL); + } + record->tap.count = 0; + } + break; + case 1: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_RCTL); + } else { + // tap press action + return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); + } + } else { + // hold press action + register_code(KC_RCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_RCTL); + } + record->tap.count = 0; + } + break; + } + return MACRO_NONE; +}; + + + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/plums/plums.hex b/keyboard/ergodox_ez/keymaps/plums/plums.hex new file mode 100644 index 0000000000..f950ba3ab2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/plums.hex @@ -0,0 +1,1159 @@ +:100000000C946E020C94B2020C94B2020C94B202E4
+:100010000C94B2020C94B2020C94B2020C94B20290
+:100020000C94B2020C94B2020C94A60C0C94780DB1
+:100030000C94B2020C94B2020C94B2020C94B20270
+:100040000C94B2020C9442220C94B2020C94B202B0
+:100050000C94B2020C94D11B0C94B2020C94B20218
+:100060000C94B2020C94B2020C94B2020C94B20240
+:100070000C94B2020C94B2020C94B2020C94B20230
+:100080000C94B2020C94B2020C94B2020C94B20220
+:100090000C94B2020C94B2020C94B2020C94B20210
+:1000A0000C94B2020C94B2020C94B202E50D070E4D
+:1000B000F50E070EF50E4C0E6F0EF50EC40ED70E94
+:1000C000C311C31100120012431281129A149A1420
+:1000D0009A129A149B139B136E149A149A148514F3
+:1000E00001E40135023502E40001E00104020402EA
+:1000F000E00000C801C835002B00E300E10000204B
+:1001000000001E00140004001D002F024D001F00FF
+:100110001A0016001B002602290020000800070014
+:10012000060031022A0021001500090019003302DF
+:100130004A00220017000A0005000000E2083E0005
+:100140002F00000001540000E200100F30000000FA
+:1001500002540000E60023001C000B001100000008
+:10016000AE00240018000D0010002D004B002500EB
+:100170000C000E0036002E002C00260012000F008E
+:100180003700270228002700130033003800300210
+:100190004E00A80031003400E500012000000100FD
+:1001A000010001000100010000003A001E022002CF
+:1001B0002202010001003B001F0221022302010074
+:1001C00001003C002F0226022F00010001003D002B
+:1001D000300227023000010001003E0031023500EC
+:1001E00035020000010001000100000001000000D4
+:1001F00001000100010000000100000001003F00BB
+:100200000100500001000000010040000100510009
+:100210000100010001004100010052000100010045
+:100220000100420001004F000100010001004300F5
+:10023000010001000100010001004400450001002F
+:100240000100010000000100010001000100A900FF
+:1002500000000100010001000100AA0001000100EE
+:10026000010001000100AC000100010001000100DB
+:100270000100AB00010001000100010001000100CC
+:100280000100010001000100010000000100010067
+:100290000100000001000000010001000100000059
+:1002A00001000000010001000100F2000100000057
+:1002B000010001000100F1000100F4000100010053
+:1002C0000100F0000100F500B60001000100F3009C
+:1002D0000100010001000100010001000100010016
+:1002E00001000100010001000100010000001603EF
+:1002F0004500720067006F0044006F007800200026
+:1003000045005A00000016034500720067006F00A8
+:1003100044006F007800200045005A0000000403EC
+:10032000090409026D00040100A0FA09040000019B
+:1003300003010100092111010001223F000705818D
+:100340000308000A09040100010301020009211148
+:10035000010001224D000705820308000A0904027A
+:1003600000010300000009211101000122360007ED
+:1003700005830308000A09040300010300000009C3
+:100380002111010001223900070584031000011228
+:1003900001100100000008EDFE071301000102003A
+:1003A0000105010906A101050719E029E715002546
+:1003B0000195087501810205081901290595057542
+:1003C000019102950175039101050719002977151F
+:1003D000002501957875018102C005010980A10100
+:1003E000850216010026B7001A01002AB700751011
+:1003F00095018100C0050C0901A1018503160100CA
+:10040000269C021A01002A9C02751095018100C0E9
+:1004100005010902A1010901A10005091901290528
+:10042000150025019505750181029501750381016E
+:100430000501093009311581257F9502750881066E
+:1004400009381581257F950175088106050C0A3844
+:10045000021581257F950175088106C0C005010937
+:1004600006A101050719E029E71500250195087582
+:100470000181029501750881010508190129059579
+:100480000575019102950175039101050719002970
+:10049000FF150025FF950675088100C000000000CB
+:1004A00000000000000000010204060A0F17202CC3
+:1004B0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9BF
+:1004C000DAC7B39D87715D4A3A2C20170F0A0604DC
+:1004D00002010000000000000000000011241FBE07
+:1004E000CFEFDAE0DEBFCDBF04B603FE24C08091BB
+:1004F000EE019091EF01A091F001B091F1018730F0
+:10050000904BA740B04BB9F41092EE011092EF015E
+:100510001092F0011092F10114BE84B7877F84BF5E
+:1005200088E10FB6F89480936000109260000FBECF
+:10053000E0E0FFE3099511E0A0E0B1E0E2E1F8E4DA
+:1005400002C005900D92A433B107D9F711E0A4E3DE
+:10055000B1E001C01D92AE3EB107E1F70E94EA0989
+:100560000C9407240C940000CF93DF93EC016623D6
+:1005700019F06130C9F015C09A818D81992349F035
+:10058000982F907F21F080FF22C08F708D8380EEA6
+:1005900017C0807F19F480EE0E941F118D818F702B
+:1005A0008D8380E090E018C09A818D81992359F065
+:1005B000982F907F21F080FF0DC08F708D8384EE87
+:1005C0000E945710EECF807F49F784EEE5CF89EE89
+:1005D00090E002C080EE90E0DF91CF910895089501
+:1005E0006091B1017091B2018091B3019091B40119
+:1005F0000E94FD1A56985E9825982D9826982E9858
+:1006000027982F98813019F0823021F00895259A8B
+:100610002D9A0895269A2E9A08950C94F0025698D1
+:100620005E9825982D9826982E9827982F988FEFCA
+:1006300090E0909389008093880090938B00809342
+:100640008A0090938D0080938C00259A2D9A2FEF2D
+:1006500080E792E0215080409040E1F700C0000028
+:10066000269A2E9A2FEF80E792E02150804090400A
+:10067000E1F700C00000279A2F9A2FEF80E792E061
+:10068000215080409040E1F700C0000025982D984F
+:100690002FEF80E792E0215080409040E1F700C0CA
+:1006A000000026982E982FEF80E792E0215080409E
+:1006B0009040E1F700C0000027982F9856985E9868
+:1006C00025982D9826982E9827982F98089589EA8E
+:1006D0008093800089E08093810024982C983F9833
+:1006E0008AB18F748AB96E98479A8BB1806B8BB937
+:1006F000769A0E940F030C94EF0280E2809300012F
+:100700008091340181110EC00E94CC0381E080935E
+:1007100034012FEF83ED90E3215080409040E1F7CA
+:1007200000C0000080E40E94D20380930001811188
+:100730002EC00E94FC0380930001811128C00E94FA
+:10074000FC0380930001811122C08FE30E94FC030F
+:100750008093000181111BC00E94F40380E40E9479
+:10076000D20380930001811112C08CE00E94FC032F
+:100770008093000181110BC00E94FC038093000153
+:10078000811105C08FE30E94FC03809300010E9449
+:10079000F4038091000108951092B9008AE08093DB
+:1007A000B800089594EA9093BC009091BC0097FF24
+:1007B000FCCF9091B900987F983021F0903111F0E2
+:1007C00081E008958093BB0084E88093BC00809111
+:1007D000BC0087FFFCCF8091B900887F883111F081
+:1007E000803471F780E0089584E98093BC008091A3
+:1007F000BC0084FDFCCF08958093BB0084E8809307
+:10080000BC008091BC0087FFFCCF9091B900987F1D
+:1008100081E0983209F480E0089584E88093BC0078
+:100820008091BC0087FFFCCF8091BB000895809130
+:100830000001811115C080E40E94D2038093000161
+:1008400081110CC082E10E94FC03809300018111A0
+:1008500005C08FEF0E94FC03809300010E94F40307
+:1008600084B1807F84B985B1807F85B98AB1837F67
+:100870008AB98BB1837F8BB93E98469808950E94C0
+:100880007D03809300010E94170480B38C7080BBAD
+:1008900081B3836F81BBA6E3B1E0E4E4F1E08EE0D5
+:1008A0008E0F11921D928E13FCCF0C946703BF9292
+:1008B000CF92DF92EF92FF920F931F93CF93DF932C
+:1008C00080910001882379F0809135018F5F8093BA
+:1008D0003501811108C00E947D03809300018111C0
+:1008E00002C00E940F0306E311E0C0E0D0E0DD2467
+:1008F000D39482E0C82EEE24E394F12CC730D105C6
+:1009000000F580910001811164C080E40E94D2034F
+:1009100080930001811112C082E10E94FC03809348
+:10092000000181110BC0C7010C2E01C0880F0A9471
+:10093000EAF780950E94FC03809300010E94F40373
+:1009400048C0CA30A1F028F4C83059F0C93061F06D
+:1009500005C0CC3089F070F0CD3089F0209A28980D
+:1009600010C0219A29980DC0229A2A980AC0239A69
+:100970002B9807C0529A01C0539A5B9802C03E9AC6
+:10098000469890EA9A95F1F79FB1799902C082E072
+:1009900001C080E091709D25982B7C9902C084E075
+:1009A00001C080E0892B7D9902C038E001C030E0B1
+:1009B000832B7E9902C020E101C020E0822B9FB1F1
+:1009C0009095991F9927991F9295990F907E892B41
+:1009D0000FC080910001811149C080E40E94D203C0
+:1009E00080930001882379F1B12C0E94F4038B2DB0
+:1009F000F8019081981719F08083C09201010E943C
+:100A0000170421960F5F1F4FCE30D10509F076CF26
+:100A100080910101882361F1815080930101882335
+:100A200039F08FE99FE00197F1F700C0000020C086
+:100A3000A4E4B1E0E6E3F1E0CF01825F91919D9300
+:100A40008E13FCCF15C083E10E94FC03809300014C
+:100A50008111CACF81E40E94D203809300018111E9
+:100A6000C3CF0E940D04B82EB094BFCF80E0C0CF9A
+:100A70000E940D0381E0DF91CF911F910F91FF90B4
+:100A8000EF90DF90CF90BF900895E82FF0E0EC5BFF
+:100A9000FE4F808108950895089596E0799FF001B2
+:100AA000112494E5899FE00DF11D1124E60FF11D3D
+:100AB000EE0FFF1FEA50FF4F859194910895880F24
+:100AC000991FFC01EE58F040859194910895880F8C
+:100AD000991FFC01EE50FF4F8591949108950F935B
+:100AE0001F93CF93DF93EC018115904350F5C1150F
+:100AF00080E2D80708F0B3C0CB3BD10590F4C83AE8
+:100B0000D10508F05AC0C53AD10508F04BC0C43031
+:100B1000D10508F0BBC1219709F0B5C101E010E093
+:100B2000F5C1CF3FD10511F008F0B0C1C03FD105EC
+:100B300008F092C0CE01805E9109089708F4A6C122
+:100B4000A2C1C11591E5D907A8F4C23020E5D207AA
+:100B500008F09EC0C11580E5D80709F485C008F0EB
+:100B600091C0C11520E4D20708F08DC1DD278E01A8
+:100B7000106CCCC1C11580E8D80758F4C11590E7B6
+:100B8000D90708F07CC1C11520E6D20708F422C1BC
+:100B90007AC1C11580E9D80708F075C1DF708E01F0
+:100BA000106AB4C1C53AD10509F472C1C63AD1057B
+:100BB00009F071C102E810E4A9C1C83AD10509F4ED
+:100BC0006DC1C93AD10509F46CC1CA3AD10509F41D
+:100BD0006BC1CB3AD10509F46AC1CC3AD10509F40D
+:100BE00069C1CD3AD10509F468C1C03BD10509F40A
+:100BF00067C1CE3AD10509F466C1CF3AD10509F4EF
+:100C000065C1C13BD10509F464C1C23BD10509F4FA
+:100C100063C1C33BD10509F462C1C43BD10509F4EA
+:100C200061C1C53BD10509F460C1C63BD10509F4DA
+:100C30005FC1C73BD10509F45EC1C83BD10509F4CA
+:100C40005DC1C93BD10509F45CC1CA3BD10509F4BA
+:100C50005BC100E014E45AC18E01106557C1CE019A
+:100C60009F700E94670553C10E94BE149FEF24E34A
+:100C70008CE0915020408040E1F700C000000E94CD
+:100C8000F61B44C18091CD0181608093CD013EC1AE
+:100C90000E949F1D811102C00E94851D0E94BC1DE3
+:100CA00090E09093EE018093ED01C23090E5D9077A
+:100CB00021F48091ED01816086C0C43020E5D20727
+:100CC00021F48091ED0182607EC0C63080E5D807B6
+:100CD00021F48091ED01846076C0C83090E5D90799
+:100CE00019F48091ED0127C0CA3020E5D20721F424
+:100CF0008091ED01806167C0CC3080E5D80721F498
+:100D00008091ED0180625FC0CE3090E5D90721F47B
+:100D10008091ED01806457C0C03120E5D20721F4F5
+:100D20008091ED0180684FC0C23180E5D80729F479
+:100D30008091ED018460886046C0C33090E5D9079A
+:100D400021F48091ED018E7F3EC0C53020E5D207B1
+:100D500021F48091ED018D7F36C0C73080E5D80742
+:100D600021F48091ED018B7F2EC0C93090E5D90729
+:100D700019F48091ED0126C0CB3020E5D20721F493
+:100D80008091ED018F7E1FC0CD3080E5D80721F422
+:100D90008091ED018F7D17C0CF3090E5D90721F408
+:100DA0008091ED018F7B0FC0C13120E5D20721F486
+:100DB0008091ED018F7707C0C331D04531F4809128
+:100DC000ED018B7F877F8093ED018091ED010E9483
+:100DD000C01D9CC08D2F99278F7099278130910558
+:100DE000D9F49E012370332702C0880F991F2A95DA
+:100DF000E2F79C688E0144E0000F111F4A95E1F76D
+:100E000000271370802B912B53E0CC0FDD1F5A95D8
+:100E1000E1F7C076DD272FC08230910531F4DC2F59
+:100E2000CC278E01016F106A71C08330910569F47F
+:100E3000CE018370992701E010E002C0000F111F5E
+:100E40008A95E2F7C8019C680FC0049709F05EC05C
+:100E5000CE018370992701E010E002C0000F111F3E
+:100E60008A95E2F7C8019A6823E0CC0FDD1F2A9526
+:100E7000E1F7C07ED7708C010C2B1D2B47C0DF70B3
+:100E80008E01106243C000E010E040C08E013EC001
+:100E900001E810E43BC003E810E438C002EE14E4BB
+:100EA00035C009EE14E432C00AEE14E42FC005EB9D
+:100EB00014E42CC006EB14E429C007EB14E426C0AC
+:100EC0000CEC14E423C00DEC14E420C003E815E49A
+:100ED0001DC00AE815E41AC002E915E417C004E9C8
+:100EE00015E414C001E216E411C003E216E40EC0DA
+:100EF00004E216E40BC005E216E408C006E216E4BC
+:100F000005C007E216E402C00AE216E4C801DF9158
+:100F1000CF911F910F91089596E0799FF0011124D0
+:100F200094E5899FE00DF11D1124E60FF11DEE0FF0
+:100F3000FF1FEA50FF4F85919491803E9105E0F4A8
+:100F4000803C910558F58133910509F46FC048F450
+:100F50008932910509F463C08A32910509F46DC0A4
+:100F600072C089339105E9F082389105D1F085335B
+:100F7000910509F44DC067C0833E910581F138F4B5
+:100F8000803E9105B9F0823E9105D9F05CC0863E65
+:100F9000910561F1873E9105A1F155C00E945F0561
+:100FA00008952091ED0120FD02C021FF4CC080EE8C
+:100FB00090E049C08091ED0180FFF9CF89E390E096
+:100FC00042C08091ED0182FF0EC08091ED0184FF4F
+:100FD00003C080E090E037C083EE90E034C08091A1
+:100FE000ED0182FFF2CF82EE90E02DC08091ED0105
+:100FF00083FF0BC08091ED0184FDEBCF87EE90E085
+:1010000022C08091ED0183FFF5CF86EE90E01BC0FA
+:101010008091ED0185FF07C089E290E014C08091C6
+:10102000ED0185FFF9CF85E390E00DC08091ED01E2
+:1010300086FF07C08AE290E006C08091ED0186FF3E
+:10104000F9CF81E390E00E946F05089508950C9414
+:101050002608809162010895CF93DF9300D01F92FC
+:10106000CDB7DEB79C018091E401843019F593E09F
+:1010700099833B832A839093E9008FEF9091E80056
+:10108000815095FD06C095ED9A95F1F7000081110C
+:10109000F5CF8091E80085FF0DC040E050E063E0AF
+:1010A00070E0CE0101960E94960A8091E8008E774A
+:1010B0008093E8000F900F900F90DF91CF910895EB
+:1010C000CF93DF9300D01F92CDB7DEB72091E4011C
+:1010D000243021F522E029839B838A8383E0809357
+:1010E000E9008FEF9091E800815095FD06C095EDE5
+:1010F0009A95F1F700008111F5CF8091E80085FF06
+:101100000DC040E050E063E070E0CE0101960E9427
+:10111000960A8091E8008E778093E8000F900F90F8
+:101120000F90DF91CF9108952091E4012430F1F4E4
+:1011300022E02093E9002FEF3091E800215035FDA7
+:1011400006C035ED3A95F1F700002111F5CF209159
+:10115000E80025FF0BC040E050E065E070E00E9431
+:10116000960A8091E8008E778093E8000895CF93E7
+:10117000DF93EC019091E401943009F046C0809136
+:101180000C018823D9F080910D018823B9F0909348
+:10119000E9008FEF9091E800815095FD06C095E140
+:1011A0009A95F1F700008111F5CF8091E80085FF55
+:1011B0002CC040E050E060E170E017C081E0809317
+:1011C000E9008FEF9091E800815095FD06C095ED04
+:1011D0009A95F1F700008111F5CF8091E80085FF25
+:1011E00014C040E050E068E070E0CE010E94960A32
+:1011F0008091E8008E778093E80080E1FE01A2E50F
+:10120000B1E001900D928A95E1F7DF91CF910895B9
+:101210008091E301811109C00E942B0C0E94880C6F
+:101220008091E20084608093E20008951092E301CF
+:10123000089508950C942F220E948C1B0E94352241
+:101240000E942E0F0C94270842E061EC81E00E947E
+:10125000A50B42E061EC82E00E94A50B42E061EC4C
+:1012600083E00E94A50B42E161EC84E00C94A50BA5
+:101270008091E601833009F455C030F4813071F07B
+:10128000823009F48EC008958A3009F47AC08B3018
+:1012900009F460C0893009F09CC020C08091E5014C
+:1012A000813A09F096C08091E800877F8093E8003A
+:1012B0008091E9019091EA01892B21F460E182E5B6
+:1012C00091E003C060E080E090E070E00E94E10AFD
+:1012D0008091E8008B778093E80008958091E50184
+:1012E000813209F076C08091E9019091EA0100977E
+:1012F00019F0039709F06DC08091E800877F809313
+:10130000E8008091E80082FD05C08091E401811130
+:10131000F8CF5FC08091F100809362018091E80076
+:101320008B7753C08091E501813A09F052C08091DA
+:10133000E9019091EA01892B09F04BC08091E80006
+:10134000877F8093E8008091E80080FFFCCF809148
+:101350000C0136C08091E5018132D9F58091E90117
+:101360009091EA01892BA9F58091E800877F80930D
+:10137000E8000E94DA0B8091E70180930C010C9445
+:10138000BE148091E501813221F58091E800877FCC
+:101390008093E8000E94DA0B8091E801809363015A
+:1013A00008958091E501813AA1F48091E800877F5A
+:1013B0008093E8008091E80080FFFCCF809163017A
+:1013C0008093F1008091E8008E778093E8000C9480
+:1013D000DA0B089584B7877F84BF88E10FB6F8944D
+:1013E00080936000109260000FBE90E080E80FB61E
+:1013F000F89480936100909361000FBE0E947D0F6E
+:101400000E942B0C0E94880C8091E20084608093E3
+:10141000E20078940E940E0F0E947F0F82E091E01C
+:101420000E94290F0E941D228091E401853069F4F9
+:101430000E944D1B8091E2018823B1F30E94781B2A
+:10144000882391F30E94800AEFCF0E94850FECCF92
+:10145000292F332723303105C9F064F421303105B9
+:1014600081F02230310509F043C08DE690E022E2A0
+:1014700033E042C021323105F1F02232310541F131
+:1014800037C082E190E02FE833E036C09927813001
+:10149000910541F08230910541F0892B49F5EEE14B
+:1014A000F3E005C0E6E0F3E002C0EEEEF2E0849186
+:1014B00090E09F0121C06430D8F4E62FF0E0EE0FF9
+:1014C000FF1FEE5DFE4F2081318189E090E014C066
+:1014D000643070F470E0FB01EE0FFF1FE65EFE4F1C
+:1014E00020813181FB01EA5EFE4F808190E004C0E3
+:1014F00080E090E020E030E0FA013183208308951D
+:1015000080E189BD82E189BD09B400FEFDCF8091F3
+:10151000D8008F7D8093D8008091E0008260809316
+:10152000E0008091E00081FDFCCF0895CF92DF9232
+:10153000EF92FF920F931F93CF93DF93EC018B01F8
+:101540006A010E94F90B811133C0C114D10439F032
+:10155000F60180819181081B190BC80FD91FE12C5E
+:10156000F12C0115110519F18091E80085FD16C0D7
+:101570008091E8008E778093E800C114D10449F08F
+:10158000F60180819181E80EF91EF182E08285E00A
+:101590000FC00E94F90B882321F30AC08991809320
+:1015A000F10001501109FFEFEF1AFF0ADACF80E0D6
+:1015B000DF91CF911F910F91FF90EF90DF90CF902F
+:1015C00008952091EB013091EC012617370748F080
+:1015D0006115710539F42091E8002E772093E80019
+:1015E00001C0B90140E061157105A9F12091E40144
+:1015F000222309F443C0253009F442C02091E800B9
+:1016000023FD40C02091E80022FD32C02091E80077
+:1016100020FFE9CF4091F3002091F20030E0342B1D
+:10162000FC01CF016115710559F02830310540F4F6
+:1016300081918093F100615071092F5F3F4FF1CF8D
+:1016400041E02830310509F040E02091E8002E7794
+:101650002093E800C8CF4111C9CF0AC08091E401AE
+:10166000882361F0853061F08091E80083FD0AC035
+:101670008091E80082FFF2CF80E0089582E0089533
+:1016800083E0089581E008952091EB013091EC0111
+:101690002617370748F06115710539F42091E800E5
+:1016A0002E772093E80001C0B901FC0120E061150C
+:1016B000710591F18091E401882309F440C08530DF
+:1016C00009F43FC08091E80083FD3DC08091E800AF
+:1016D00082FD2FC08091E80080FFE9CF2091F300C8
+:1016E0008091F20090E0922B6115710559F08830DD
+:1016F000910540F424912093F100319661507109D5
+:101700000196F2CF21E0089709F020E08091E800EF
+:101710008E778093E800CBCF2111CCCF0AC0809187
+:10172000E401882361F0853061F08091E80083FD59
+:101730000AC08091E80082FFF2CF80E0089582E045
+:10174000089583E0089581E00895982F973058F523
+:101750009093E900981739F07091EC002091ED001A
+:101760005091F00003C0242F762F50E021FF19C0C4
+:101770003091EB003E7F3093EB003091ED003D7FE8
+:101780003093ED003091EB0031603093EB007093BB
+:10179000EC002093ED005093F0002091EE0027FF25
+:1017A00007C09F5FD3CF8F708093E90081E00895D9
+:1017B00080E008958091E50187FF11C08091E800E5
+:1017C00082FD05C08091E4018111F8CF11C08091A4
+:1017D000E8008B770BC08091E401882349F0809169
+:1017E000E80080FFF8CF8091E8008E778093E800D2
+:1017F00008952091E4003091E50095E64091EC00D9
+:10180000842F817040FF22C08091E80080FD1CC0C1
+:101810008091E401882391F0853091F08091EB0074
+:1018200085FD10C04091E4005091E5004217530738
+:1018300029F39A01915011F784E0089582E0089508
+:1018400083E0089581E0089580E008954091E800E4
+:1018500042FFDECF08950E94990C0E94A10CE0EE99
+:10186000F0E0808181608083E8EDF0E080818F7717
+:10187000808319BCA7EDB0E08C918E7F8C93808122
+:101880008F7E80831092E30108950F931F93CF936F
+:10189000DF930E94990C0E94A10CC8EDD0E08881D2
+:1018A0008F77888388818068888388818F7D88830B
+:1018B00019BC1092E4011092E0011092E201109222
+:1018C000E10100EE10E0F80180818B7F8083888148
+:1018D0008160888342E060E080E00E94A50BE1EE39
+:1018E000F0E080818E7F8083E2EEF0E08081816095
+:1018F0008083808188608083F80180818E7F8083EF
+:10190000888180618883DF91CF911F910F91089525
+:10191000E8EDF0E080818F7E8083E7EDF0E080816C
+:101920008160808384E082BF81E08093E3010C9436
+:10193000450CE8EDF0E080818E7F80831092E2001C
+:1019400008951092DA001092E10008951F920F920C
+:101950000FB60F9211242F933F934F935F936F9382
+:101960007F938F939F93AF93BF93EF93FF93809158
+:10197000E10082FF0BC08091E20082FF07C08091EE
+:10198000E1008B7F8093E1000E940D0F8091DA00CF
+:1019900080FF1FC08091D80080FF1BC08091DA00BB
+:1019A0008E7F8093DA008091D90080FF0DC080E1A6
+:1019B00089BD82E189BD09B400FEFDCF81E080933D
+:1019C000E4010E94080905C019BC1092E4010E94BC
+:1019D00016098091E10080FF19C08091E20080FF2C
+:1019E00015C08091E2008E7F8093E2008091E2003A
+:1019F00080618093E2008091D80080628093D8005B
+:101A000019BC85E08093E4010E941A098091E100ED
+:101A100084FF30C08091E20084FF2CC080E189BD4A
+:101A200082E189BD09B400FEFDCF8091D8008F7D91
+:101A30008093D8008091E1008F7E8093E1008091B7
+:101A4000E2008F7E8093E2008091E20081608093CB
+:101A5000E2008091E001882311F084E007C08091CA
+:101A6000E30087FD02C081E001C083E08093E401D0
+:101A70000E941C098091E10083FF29C08091E2004F
+:101A800083FF25C08091E100877F8093E10082E0A1
+:101A90008093E4011092E0018091E1008E7F8093B9
+:101AA000E1008091E2008E7F8093E2008091E2006D
+:101AB00080618093E20042E060E080E00E94A50B3C
+:101AC0008091F00088608093F0000E941909FF91D6
+:101AD000EF91BF91AF919F918F917F916F915F91A6
+:101AE0004F913F912F910F900FBE0F901F9018951F
+:101AF0001F920F920FB60F9211242F933F934F9383
+:101B00005F936F937F938F939F93AF93BF93CF9385
+:101B1000DF93EF93FF93C091E900CF708091EC00C9
+:101B2000D82FD17080FDD0E81092E9008091F000AC
+:101B3000877F8093F00078940E94BC0D1092E9009A
+:101B40008091F00088608093F000CD2BCF70C0931F
+:101B5000E900FF91EF91DF91CF91BF91AF919F91FC
+:101B60008F917F916F915F914F913F912F910F9046
+:101B70000FBE0F901F9018951F93CF93DF93CDB793
+:101B8000DEB7AA970FB6F894DEBF0FBECDBFE5EE65
+:101B9000F1E088E08E0F9091F10091938E13FBCFCE
+:101BA0000E9438098091E80083FF1FC18091E50100
+:101BB0009091E601492F50E04A30510508F015C1D7
+:101BC000FA01EA5AFF4F0C94B723803881F082382B
+:101BD00009F00BC18091E9018F708093E900809139
+:101BE000EB0085FB882780F91092E90006C0809100
+:101BF000E1019091E201911182609091E800977F5C
+:101C00009093E8008093F1001092F100C8C0282F53
+:101C10002D7F09F0EAC0882319F0823061F0E5C019
+:101C20008091E701813009F0E0C0933009F080E055
+:101C30008093E2012BC08091E701811127C0809140
+:101C4000E9018F7009F4D1C08093E9002091EB0085
+:101C500020FF1CC0933021F48091EB00806214C0FF
+:101C60009091EB0090619093EB0021E030E0A901AE
+:101C700002C0440F551F8A95E2F74093EA00109284
+:101C8000EA008091EB0088608093EB001092E900FD
+:101C90008091E800877F86C08111A7C01091E7017D
+:101CA0001F778091E3008078812B8093E3008091FF
+:101CB000E800877F8093E8000E94DA0B8091E800BB
+:101CC00080FFFCCF8091E30080688093E3001111D6
+:101CD00002C082E001C083E08093E40186C08058A6
+:101CE000823008F082C08091E7019091E8018C3D3C
+:101CF00053E0950779F583E08A838AE289834FB7B9
+:101D0000F894DE01139620E03EE051E2E32FF0E08C
+:101D100050935700E49120FF03C0E295EF703F5FBE
+:101D2000EF708E2F90E0EA3010F0C79601C0C09699
+:101D30008D939D932F5F243149F74FBF8091E80029
+:101D4000877F8093E8006AE270E0CE0101960E94EE
+:101D5000E10A14C0AE014F5F5F4F6091E9010E943C
+:101D6000280ABC01892B09F440C09091E800977FB4
+:101D70009093E80089819A810E94440B8091E80049
+:101D80008B778093E80031C0803879F58091E80046
+:101D9000877F8093E8008091E0018093F10080913B
+:101DA000E8008E778093E8000E94DA0B1EC0811154
+:101DB0001CC09091E7019230C0F48091E800877FC9
+:101DC0008093E8009093E0010E94DA0B8091E0019B
+:101DD000811106C08091E30087FD02C081E001C04F
+:101DE00084E08093E4010E9424098091E80083FF4D
+:101DF0000AC08091E800877F8093E8008091EB0023
+:101E000080628093EB00AA960FB6F894DEBF0FBEF7
+:101E1000CDBFDF91CF911F9108950895CF93809109
+:101E2000E4018823A1F0C091E900CF709091EC000B
+:101E3000892F817090FD80E8C82B1092E900809175
+:101E4000E80083FD0E94BC0DCF70C093E900CF91E4
+:101E5000089590936901809368010895E091680165
+:101E6000F0916901309721F00190F081E02D099403
+:101E700080E00895E0916801F0916901309721F0C8
+:101E80000280F381E02D09940895E0916801F091BA
+:101E90006901309721F00480F581E02D09940895BF
+:101EA00020916601309167018217930771F090933A
+:101EB000670180936601E0916801F09169013097B4
+:101EC00021F00680F781E02D0994089520916401A6
+:101ED000309165018217930771F0909365018093AB
+:101EE0006401E0916801F0916901309721F000846C
+:101EF000F185E02D0994089508950C947C0F0E94BB
+:101F0000921B0E943F040C94581CCF92DF92EF92D8
+:101F1000FF920F931F93CF93DF93CDB7DEB72B972D
+:101F20000FB6F894DEBF0FBECDBF0E9457048BE6FC
+:101F3000C82E81E0D82E00E010E0E02E802F0E9415
+:101F40004505F60141916F01F42EF826B1F40F5FBB
+:101F50001F4F0E30110589F78FEF89838A831B820B
+:101F60000E949B1B8160782F9D838C8349815A81BD
+:101F70006B818D810E94281040C09091CD0191FF0E
+:101F800004C08B870E944B058B8520E030E04F2DED
+:101F900050E0922FBA01022E02C0759567950A94FF
+:101FA000E2F760FF24C02E83EF8221E030E0690178
+:101FB00002C0CC0CDD1C9A95E2F790E08C219D21AB
+:101FC000892B09F420E028870E949B1B8160782FD1
+:101FD0009A8789874E815F8168858A850E9428104B
+:101FE000F801E559FE4F8081C826C08206C02F5FE8
+:101FF0003F4F2630310569F6AACF0E943F1F10914E
+:102000006A010E942E0F1817A1F00E942E0F8093D4
+:102010006A012B960FB6F894DEBF0FBECDBFDF91DD
+:10202000CF911F910F91FF90EF90DF90CF900C9484
+:1020300027082B960FB6F894DEBF0FBECDBFDF91F9
+:10204000CF911F910F91FF90EF90DF90CF90089567
+:10205000CF93DF93CDB7DEB72B970FB6F894DEBFE3
+:102060000FBECDBF4F83588769877A878B87DE0184
+:10207000119686E0FD0111928A95E9F785E0FE014F
+:10208000379601900D928A95E1F749815A816B81CB
+:102090007C818D819E810E9458172B960FB6F894F3
+:1020A000DEBF0FBECDBFDF91CF9108950895CF93CE
+:1020B000882309F4C2C0C82F823859F40E942E0F19
+:1020C00081FDBBC089E30E94011A0E94CE1A89E3F8
+:1020D0000CC0833879F40E942E0F80FDAEC083E5DA
+:1020E0000E94011A0E94CE1A83E50E94431ACF91E2
+:1020F0000C94CE1A843859F40E942E0F82FD9DC094
+:1021000087E40E94011A0E94CE1A87E4EECF8CEF7A
+:102110008C0F813A48F48C2F0E94822181118DC04E
+:102120008C2F0E94011AE3CF80E28C0F883048F494
+:10213000C77081E001C0880FCA95EAF70E94871A2C
+:10214000D6CF8BE58C0F833078F4C53A29F0C63AA8
+:1021500031F083E890E005C081E890E002C082E8B9
+:1021600090E0CF910C94500F88E58C0F833108F0EC
+:1021700064C0C83A39F1C93A41F1CA3A49F1CB3A97
+:1021800051F1CC3A59F1CD3A61F1C03B69F1CE3A07
+:1021900071F1CF3A79F1C13B81F1C23B89F1C33B87
+:1021A00091F1C43B99F1C53BA1F1C63BA9F1C73BF5
+:1021B000B1F1C83BB9F1C93BC1F1CA3BC9F180E0FB
+:1021C00090E038C082EE90E035C089EE90E032C0F9
+:1021D0008AEE90E02FC085EB90E02CC086EB90E07B
+:1021E00029C087EB90E026C08CEC90E023C08DECFA
+:1021F00090E020C083E891E01DC08AE891E01AC019
+:1022000082E991E017C084E991E014C081E292E094
+:1022100011C083E292E00EC084E292E00BC085E23E
+:1022200092E008C086E292E005C087E292E002C038
+:102230008AE292E0CF910C94660FCF9108958823A3
+:1022400009F44BC0823859F40E942E0F81FF45C01B
+:1022500089E30E94011A0E94CE1A89E30CC08338D8
+:1022600071F40E942E0F80FF38C083E50E94011A8E
+:102270000E94CE1A83E50E94431A0C94CE1A843829
+:1022800059F40E942E0F82FF28C087E40E94011A91
+:102290000E94CE1A87E4EFCF9CEF980F913A58F343
+:1022A00090E2980F983050F4877091E001C0990F38
+:1022B0008A95EAF7892F0E948D1ADFCF9BE5980F48
+:1022C000933020F480E090E00C94500F885A8331D2
+:1022D00020F480E090E00C94660F0895882321F0AC
+:1022E0000E94871A0C94CE1A0895882321F00E9428
+:1022F0008D1A0C94CE1A0895BF92CF92DF92EF926E
+:10230000FF920F931F93CF93DF9300D000D000D0A4
+:10231000CDB7DEB725E0FC01DE01119601900D92EC
+:102320002A95E1F7FC01D080118102812581229557
+:102330002F7043815481452B09F4FCC21F3F21F4C7
+:10234000FFEFDF1609F4F6C27C012E830E945610BF
+:10235000D9821A8369817A81802F0E94FD19182FF2
+:10236000B92E0E94B2190E9479182E81002319F00B
+:102370000E94A41A2E81EB2DE295EF70F0E0E05A56
+:10238000FF4F0C94B7238B2D807F9B2D9F70F92ED0
+:10239000882319F0F29480EFF822002389F0FF20BF
+:1023A00009F475C280E2810F883020F48F2D0E94DD
+:1023B000871A03C08F2D0E94971A0E94CE1A67C2F7
+:1023C000812F0E941F11FF2009F4B4C2105E8F2DCF
+:1023D000183018F40E948D1A02C00E949D1A269689
+:1023E0000FB6F894DEBF0FBECDBFDF91CF911F9126
+:1023F0000F91FF90EF90DF90CF90BF900C94CE1A8A
+:102400003B2D307F8B2D8F70303211F08295807F85
+:10241000112319F0113021F12CC00023B9F022232F
+:1024200009F4A0C1213009F09DC126960FB6F89499
+:10243000DEBF0FBECDBFDF91CF911F910F91FF90F7
+:10244000EF90DF90CF90BF900C94B71A222319F031
+:10245000213009F46FC28E830E94BA1A8E8196C110
+:10246000002321F0223008F065C27CC1211162C234
+:102470008DC1002321F0222309F474C108C2222354
+:1024800009F484C119C22B2D26952695237030E0BE
+:102490002115310521F021303105D1F04BC2002347
+:1024A00021F0812F9B2D937002C080E090E0269652
+:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155
+:1024C0000F91FF90EF90DF90CF90BF900C94500F42
+:1024D000002321F0812F9B2D937002C080E090E0BB
+:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119
+:1024F0001F910F91FF90EF90DF90CF90BF900C94C1
+:10250000660F812F002319F00E94471E02C00E940F
+:10251000AF1E26960FB6F894DEBF0FBECDBFDF917B
+:10252000CF911F910F91FF90EF90DF90CF90BF90D0
+:102530000C94341F8B2D837009F07BC00111FAC1FC
+:10254000812F829586958770880F880F912F9F70B5
+:10255000C92ED12CE12CF12C082E04C0CC0CDD1C92
+:10256000EE1CFF1C0A94D2F714FF12C04FE050E09B
+:1025700060E070E004C0440F551F661F771F8A9506
+:10258000D2F7CB01BA01609570958095909503C004
+:1025900060E070E0CB012B2D269526952370422F0D
+:1025A00050E042305105D9F04330510569F16C29B2
+:1025B0007D298E299F294130510551F126960FB66C
+:1025C000F894DEBF0FBECDBFDF91CF911F910F9169
+:1025D000FF90EF90DF90CF90BF900C94A0186C29E3
+:1025E0007D298E299F2926960FB6F894DEBF0FBE4F
+:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2
+:10260000CF90BF900C94BC180E94A018C701B601CF
+:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7
+:102620001F910F91FF90EF90DF90CF90BF900C948F
+:102630008418002319F08B2D817001C086958823A2
+:1026400009F478C1812F829586958770880F880F4D
+:10265000912F9F70C92ED12CE12CF12C082E04C093
+:10266000CC0CDD1CEE1CFF1C0A94D2F714FF12C028
+:102670004FE050E060E070E004C0440F551F661F5B
+:10268000771F8A95D2F7CB01BA0160957095809536
+:10269000909503C060E070E0CB012B2D2695269528
+:1026A0002370422F50E042305105D9F0433051059C
+:1026B00069F16C297D298E299F294130510551F1FD
+:1026C00026960FB6F894DEBF0FBECDBFDF91CF9137
+:1026D0001F910F91FF90EF90DF90CF90BF900C94DF
+:1026E0007A196C297D298E299F2926960FB6F89490
+:1026F000DEBF0FBECDBFDF91CF911F910F91FF9035
+:10270000EF90DF90CF90BF900C9496190E947A19A9
+:10271000C701B60126960FB6F894DEBF0FBECDBF37
+:10272000DF91CF911F910F91FF90EF90DF90CF90AD
+:10273000BF900C945E19103FD1F118F4103E50F484
+:10274000A1C0123F09F463C008F44CC0133F09F460
+:1027500073C098C01F708B2D8F710023A1F00E9451
+:10276000F718812F26960FB6F894DEBF0FBECDBFA7
+:10277000DF91CF911F910F91FF90EF90DF90CF905D
+:10278000BF900C946E110E941819812F26960FB6D7
+:10279000F894DEBF0FBECDBFDF91CF911F910F9197
+:1027A000FF90EF90DF90CF90BF900C9475110023B5
+:1027B000A9F02111BFC08B2D8F7126960FB6F8940A
+:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064
+:1027D000EF90DF90CF90BF900C943D19223008F01D
+:1027E000A9C0E9CF0023A9F08B2D8F7126960FB6D3
+:1027F000F894DEBF0FBECDBFDF91CF911F910F9137
+:10280000FF90EF90DF90CF90BF900C94F7180023CB
+:1028100059F38B2D8F7126960FB6F894DEBF0FBE3D
+:10282000CDBFDF91CF911F910F91FF90EF90DF907F
+:10283000CF90BF900C941819002399F08B2D8F71B5
+:1028400026960FB6F894DEBF0FBECDBFDF91CF91B5
+:102850001F910F91FF90EF90DF90CF90BF900C945D
+:10286000E21826960FB6F894DEBF0FBECDBFDF91FB
+:10287000CF911F910F91FF90EF90DF90CF90BF907D
+:102880000C94D8180023A9F0222309F4ADCF812F8E
+:1028900026960FB6F894DEBF0FBECDBFDF91CF9165
+:1028A0001F910F91FF90EF90DF90CF90BF900C940D
+:1028B0005710222309F4ADCF812F26960FB6F89436
+:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063
+:1028D000EF90DF90CF90BF900C941F114B2D4F7055
+:1028E000612FC7010E94B40226960FB6F894DEBF8E
+:1028F0000FBECDBFDF91CF911F910F91FF90EF9051
+:10290000DF90CF90BF900C94FC174B2D4F70612F30
+:10291000C70126960FB6F894DEBF0FBECDBFDF917C
+:10292000CF911F910F91FF90EF90DF90CF90BF90CC
+:102930000C944C0526960FB6F894DEBF0FBECDBFA3
+:10294000DF91CF911F910F91FF90EF90DF90CF908B
+:10295000BF9008950E94A41A0E94B41A0E94791A86
+:102960000E94CE1A0E94E51F0E94341F80E090E072
+:102970000E94500F80E090E00C94660F0E94941A21
+:102980000C94AA140E94F219292F22952F7030E07E
+:102990002C3031054CF42A3031056CF422503109C9
+:1029A0002230310588F407C02C30310549F02F3032
+:1029B000310531F009C0803E48F0803F29F406C05F
+:1029C00093FB882780F9089580E0089581E00895B9
+:1029D000CF93DF9300D000D01F92CDB7DEB70F901A
+:1029E0000F900F900F900F90DF91CF910895CF939C
+:1029F000DF9300D000D000D0CDB7DEB726960FB65B
+:102A0000F894DEBF0FBECDBFDF91CF9108951F9325
+:102A1000CF93DF93C091790116E080917A01C817B6
+:102A200099F0D0E01C9FF0011D9FF00D1124E55896
+:102A3000FE4F4081518162817381848195810E9422
+:102A4000F7142196C770E9CFDF91CF911F910895B8
+:102A50004091AB015091AC016091AD017091AE011C
+:102A60008091AF019091B0010C94F7148091B00166
+:102A700082958F7009F054C08091AD01882309F4CC
+:102A80004FC080917901A0917A016091AB01709162
+:102A9000AC014091AE015091AF01B6E08A1709F444
+:102AA0003FC090E041155105C1F17F3F11F46F3FE8
+:102AB000A1F1B89FF001B99FF00D1124E558FE4F28
+:102AC000218172132AC02081621327C02281211123
+:102AD00024C0238134812417350710F42150310993
+:102AE000241B350B283C3105C0F42091B0012F7018
+:102AF00020612093B00126E0289FF001299FF00D6E
+:102B00001124E058FE4F80818F70806180838BEAB2
+:102B100091E00E947C110C94071501968770BECF3E
+:102B20000895CF92DF92EF92FF920F931F93CF936E
+:102B3000DF93CDB7DEB762970FB6F894DEBF0FBE56
+:102B4000CDBF8C0185E0F801DE011D9601900D924C
+:102B50008A95E1F7D8014C9111965C9111971296E4
+:102B60006C9112971396CD90DC9014973091AB0135
+:102B70007091AC018091AE019091AF01009709F482
+:102B80006BC17F3F19F43F3F09F466C1E090AD018E
+:102B9000EE2009F4C0C02091B001C816D90628F073
+:102BA000F601E81BF90BCF0104C0809590958C0DC0
+:102BB0009D1DFF24F394883C910578F0F12C207F33
+:102BC00009F0C6C07C2DD98AC88A89890E94E81478
+:102BD0008BEA91E00E947C11B1C0822F807F09F0C6
+:102BE00046C0751314C0341312C0611110C02F7089
+:102BF00020612093B0010E9428158BEA91E00E9489
+:102C00007C118091B001D80115968C932EC0CD28EF
+:102C100019F15F3F11F44F3FF9F0F62E61111CC01E
+:102C20008091790120917A0136E0821709F45AC027
+:102C300090E0389FF001399FF00D1124E558FE4FC8
+:102C40007181571306C07081471303C072817111DF
+:102C500003C001968770E9CFF62E662309F418C1E8
+:102C60008091B00181608093B001F12C11C1751386
+:102C700008C0341306C0611104C08091B001D801AE
+:102C8000C3C04D875E878D859E856A8B0E94C21466
+:102C90006A898823E1F16623D1F12091B001822F66
+:102CA00082958F7090E0029774F08091AB019091C3
+:102CB000AC0198878F831986DB86CA862C87CE0164
+:102CC00007960E947C1186E0F801ABEAB1E0019022
+:102CD0000D928A95E1F70E9436150E942815FF246F
+:102CE000F394D6C04D875E878D859E850E94F2192C
+:102CF000292F22952F7030E0223031050CF0BCC016
+:102D00009F7009F0B6C0805E883008F4C1C0C80169
+:102D10000E947C11E4CFC816D90608F453C0F6010E
+:102D2000E81BF90BCF01883C910508F450C0F12C49
+:102D30007C2DD98AC88A89890E94E814EBEAF1E0DF
+:102D400086E0DF011D928A95E9F70E942815A0C050
+:102D5000751314C0341312C0611110C08091B001FA
+:102D6000F8018583C8010E947C1186E0EBEAF1E05E
+:102D7000DF011D928A95E9F7FE2C8AC04D875E8798
+:102D80008D859E856A8B0E94C2146A89882309F406
+:102D9000BECF662309F4BBCF2091B001822F82956C
+:102DA0008F7090E002970CF48ECF8091AB019091E0
+:102DB000AC019A8389831B82DD82CC822E83CE0173
+:102DC00001967FCF809590958C0D9D1DACCFF62EF2
+:102DD000662309F49CCF75132EC034132CC02091A8
+:102DE000B00120FD1FC0822F82958F70D9F0D801CD
+:102DF00015962C9315978F3049F08F5F982F9295E9
+:102E0000907F822F8F70892B15968C93C8010E941A
+:102E10007C1186E0F801ABEAB1E001900D928A9551
+:102E2000E1F793CF86E0F801ABEAB1E001900D92B3
+:102E30008A95E1F72DC04D875E878D859E850E941E
+:102E4000C214811140CF8091B00181608093B001A4
+:102E5000C8010E947C111CC0662309F458CF4D871D
+:102E60005E878D859E850E94C214882309F44FCF0A
+:102E70002ACF811148CF0CC0243031050CF047CF48
+:102E80009F7009F440CFF8019581907F09F03BCF06
+:102E90008F2D62960FB6F894DEBF0FBECDBFDF91C7
+:102EA000CF911F910F91FF90EF90DF90CF900895F9
+:102EB0001F93CF93DF93CDB7DEB72C970FB6F8945F
+:102EC000DEBF0FBECDBF4F83588769877A878B8758
+:102ED0009C87CE0107960E949115882369F08F8107
+:102EE00098852A853B85232BF1F19F3F09F063C02C
+:102EF0008F3F09F060C037C086E0FE013796DE01E3
+:102F0000119601900D928A95E1F76F817885EA8597
+:102F1000FB85309741F17F3F11F46F3F21F1209104
+:102F20007A0130E0C90101968770992740917901B3
+:102F300050E08417950709F447C069837A83FD83BD
+:102F4000EC8396E0929FD001939FB00D1124A55879
+:102F5000BE4FFE01319601900D929A95E1F7809354
+:102F60007A010E94071516E08091790190917A010B
+:102F70008917C1F1189FC001112485589E4F0E94E6
+:102F80009115882379F1E09179011E9FF0011124B8
+:102F9000E558FE4F40815181628173818481958122
+:102FA0000E94F7148091790190E00196877099272B
+:102FB00080937901D9CF4F81588569857A858B8532
+:102FC0009C850E94F714CFCF0E94BE1410927A0104
+:102FD00010927901EBEAF1E086E0DF011D928A951B
+:102FE000E9F7C1CF2C960FB6F894DEBF0FBECDBF68
+:102FF000DF91CF911F910895EF92FF920F931F934E
+:10300000CF93DF938C01892B09F46CC0F12CEE2453
+:10301000E394E8012196F8018491843740F48430E8
+:1030200008F051C0813081F0823019F15BC08537E2
+:1030300009F444C0A8F19CE7980F903708F052C0FB
+:103040008F770E941F1141C00E5F1F4FFE01C49178
+:1030500080E28C0F883048F4C7708E2D01C0880F35
+:10306000CA95EAF70E94A71A14C08C2F0E94571025
+:103070002DC00E5F1F4FFE01C49180E28C0F88307F
+:1030800058F4C7708E2D01C0880FCA95EAF70E94C8
+:10309000AD1A0E94CE1A1AC08C2F0E941F1116C0A2
+:1030A0000E5F1F4FFE01C491CC2381F08FE99FE09A
+:1030B0000197F1F700C00000C150F6CF0E5F1F4F1F
+:1030C000FE01F49003C00E9457108E018F2D8823BB
+:1030D00009F49FCFEFE9FFE03197F1F700C000005E
+:1030E0008150F5CFDF91CF911F910F91FF90EF901D
+:1030F000089508956093B5017093B6018093B70168
+:103100009093B8010C94AA140F931F930091B501EA
+:103110001091B6012091B7013091B801DC01CB01CB
+:10312000802B912BA22BB32B8093B5019093B601EA
+:10313000A093B701B093B8011F910F910C94AA14FA
+:103140000F931F930091B5011091B6012091B70123
+:103150003091B801DC01CB0180239123A223B3235A
+:103160008093B5019093B601A093B701B093B801D5
+:103170001F910F910C94AA140F931F930091B50106
+:103180001091B6012091B7013091B801DC01CB015B
+:1031900080279127A227B3278093B5019093B6018A
+:1031A000A093B701B093B8011F910F910C94AA148A
+:1031B0001092B1011092B2011092B3011092B401B9
+:1031C0000C94AA1441E050E060E070E004C0440FA9
+:1031D000551F661F771F8A95D2F74093B101509310
+:1031E000B2016093B3017093B4010C94AA1441E04E
+:1031F00050E060E070E004C0440F551F661F771F69
+:103200008A95D2F78091B1019091B201A091B3015A
+:10321000B091B401482B592B6A2B7B2B4093B10101
+:103220005093B2016093B3017093B4010C94AA144B
+:1032300041E050E060E070E004C0440F551F661F9D
+:10324000771F8A95D2F7409550956095709580913B
+:10325000B1019091B201A091B301B091B4014823A2
+:1032600059236A237B234093B1015093B2016093A9
+:10327000B3017093B4010C94AA1441E050E060E0F3
+:1032800070E004C0440F551F661F771F8A95D2F760
+:103290008091B1019091B201A091B301B091B401BC
+:1032A000482759276A277B274093B1015093B201E1
+:1032B0006093B3017093B4010C94AA140F931F93FD
+:1032C0000091B1011091B2012091B3013091B4018C
+:1032D000DC01CB01802B912BA22BB32B8093B1016E
+:1032E0009093B201A093B301B093B4011F910F91D9
+:1032F0000C94AA140F931F930091B1011091B20185
+:103300002091B3013091B401DC01CB0180239123E2
+:10331000A223B3238093B1019093B201A093B30190
+:10332000B093B4011F910F910C94AA140F931F93A3
+:103330000091B1011091B2012091B3013091B4011B
+:10334000DC01CB0180279127A227B3278093B1010D
+:103350009093B201A093B301B093B4011F910F9168
+:103360000C94AA140895CF92DF92EF92FF920F93DC
+:103370001F93CF93DF938C01C090B501D090B6011D
+:10338000E090B701F090B8018091B1019091B20145
+:10339000A091B301B091B401C82AD92AEA2AFB2A24
+:1033A000CFE1D0E0D701C6010C2E04C0B695A79599
+:1033B000979587950A94D2F780FF06C0B8018C2FA5
+:1033C0000E948C07019721F4219760F780E001C0EB
+:1033D0008C2FDF91CF911F910F91FF90EF90DF9095
+:1033E000CF900895CF93DF93EC010E94B319BE01F3
+:1033F0000E948C07DF91CF910895CB010E94F219B2
+:10340000089590910C01992321F090910D01911153
+:1034100009C020910E0130910F01F90132969FEF02
+:1034200040E01FC0982F9695969596959F3050F541
+:10343000E0910E01F0910F01E90FF11D877021E07D
+:1034400030E0A90102C0440F551F8A95E2F7CA0176
+:103450009181892B818308959F3F39F04F5F4E30D2
+:1034600041F051915813F8CF0DC05111F7CF942F5F
+:10347000F5CF9F3F39F0F901E90FF11D97FDFA955E
+:1034800082830895089590910C01992321F09091E1
+:103490000D01911109C020910E0130910F01F90128
+:1034A0003296205F3F4F1FC0982F96959695969520
+:1034B0009F30F0F4E0910E01F0910F01E90FF11D42
+:1034C000877021E030E0A90102C0440F551F8A95A2
+:1034D000E2F7CA018095918189238183089531960D
+:1034E000E217F30729F090819813F9CF1082F7CFF4
+:1034F000089581E090E0E0910E01F0910F01E80F56
+:10350000F91F1082019680319105A9F708959091D5
+:10351000CC01892B8093CC01089580959091CC01AA
+:1035200089238093CC0108951092CC010895909145
+:10353000CB01892B8093CB01089580959091CB018D
+:1035400089238093CB0108951092CB010895909127
+:10355000CA01892B8093CA01089580959091CA0170
+:1035600089238093CA0108951092CA010895809317
+:10357000B90108951092B901089580910E019091BA
+:103580000F01FC0131969C01205F3F4F80E091913B
+:1035900091118F5FE217F307D1F70895E0910E01C3
+:1035A000F0910F018091CC018083E0910E01F091A8
+:1035B0000F0190818091CB01892B8083E0910E01D6
+:1035C000F0910F0190818091CA01892B80838091B5
+:1035D000B901882361F0E0910E01F0910F01908113
+:1035E000892B80830E94BD1A81111092B9018091AC
+:1035F0000E0190910F010C943A0FCF92DF92EF924F
+:10360000FF926C01EE24FF24C114D104E104F10403
+:1036100021F0C701B60120E101C020E0C72ED82E5D
+:10362000E92EFF24C114D104E104F10419F0285F4C
+:10363000C701B6016B017C0154E0F694E794D7947E
+:10364000C7945A95D1F7C114D104E104F10419F0DB
+:103650002C5FC701B6016B017C0142E0F694E79450
+:10366000D794C7944A95D1F7C114D104E104F10469
+:1036700019F02E5FC701B601DC01CB01B695A79505
+:1036800097958795892B8A2B8B2B09F02F5F822F9B
+:10369000FF90EF90DF90CF9008958091E401843007
+:1036A00021F11092CE0120E488E190E00FB6F89469
+:1036B000A895809360000FBE2093600080E00E9478
+:1036C000270883B7817F846083BF83B7816083BF0E
+:1036D0007894889583B78E7F83BF88E10FB6F8947E
+:1036E00080936000109260000FBE089508950895C1
+:1036F000CF930E94761B0E9457040E94771BC0E064
+:103700008C2F0E944505811104C0CF5FCE30C1F7D8
+:1037100001C081E0CF9108950E94BE140E942E0F37
+:103720000C94270882E084BD93E095BD9AEF97BD85
+:1037300080936E0008952FB7F8948091CF019091F7
+:10374000D001A091D101B091D2012FBF0895CF92A5
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000CF015091D0016091D1017091D2012FBF52
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091CF019091D001A091D1019F
+:1037C000B091D2010196A11DB11D8093CF019093BC
+:1037D000D001A093D101B093D201BF91AF919F913D
+:1037E0008F910F900FBE0F901F9018950E942B0C79
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093EE01909314
+:10381000EF01A093F001B093F1019CE088E10FB6B5
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FC0E0A7
+:103840008C2F0E94450500E010E0E82EF12CC70106
+:10385000002E02C0959587950A94E2F780FD06C078
+:103860000F5F1F4F0630110591F709C0602F7C2FA5
+:1038700080E00E944D05D813F3CF81E004C0CF5FF4
+:10388000CE30F1F680E0DF91CF911F910F91FF9044
+:10389000EF900895CF93C82F8CE20E94181C8823C4
+:1038A00021F08C2FCF910C94181C80E0CF910895BB
+:1038B000CF930E949F1D811102C00E94851DC5E605
+:1038C000C15049F00E9457048FE39CE90197F1F73A
+:1038D00000C00000F5CF89E20E944A1C811113C18B
+:1038E0008AE20E944A1C81110E94851D85E00E9487
+:1038F0004A1C81110E94F61B0E94AA1D8093CD01D3
+:1039000087E00E944A1C8823A9F18BE10E944A1C8F
+:10391000882351F08091CD0181FB222720F991E08D
+:10392000922790FB81F90EC08EE00E944A1C8823EA
+:1039300061F08091CD0182FB222720F991E092274E
+:1039400090FB82F98093CD0115C080E10E944A1C52
+:103950009091CD01882341F093FB222720F981E04B
+:10396000822780FB93F904C0892F809580FB90F912
+:103970009093CD018091CD010E94AE1D0E94BC1D8F
+:103980008093ED0180EE0E944A1C882341F08091D3
+:10399000ED01982F909590FB80F98093ED0189E3DC
+:1039A0000E944A1C882359F08091ED0181FB222757
+:1039B00020F991E0922790FB81F98093ED0182EE4E
+:1039C0000E944A1C882359F08091ED0182FB222736
+:1039D00020F991E0922790FB82F98093ED0186EE29
+:1039E0000E944A1C882359F08091ED0183FB222715
+:1039F00020F991E0922790FB83F98093ED0183EE0B
+:103A00000E944A1C882359F08091ED0184FB2227F3
+:103A100020F991E0922790FB84F98093ED0185E3F2
+:103A20000E944A1C882359F08091ED0185FB2227D2
+:103A300020F991E0922790FB85F98093ED0181E3D5
+:103A40000E944A1C882359F08091ED0186FB2227B1
+:103A500020F991E0922790FB86F98093ED0181E1B6
+:103A60000E944A1C882359F08091ED0187FB222790
+:103A700020F991E0922790FB87F98093ED018091E6
+:103A8000ED010E94C01D8091ED0187FB882780F920
+:103A900080930D0187E20E944A1CC82F8EE10E948C
+:103AA0004A1C8111C2608FE10E944A1C8111C460CE
+:103AB00080E20E944A1C8111C86081E20E944A1C77
+:103AC0008111C06182E20E944A1C8111C06283E2BE
+:103AD0000E944A1C8111C06484E20E944A1C88230F
+:103AE00011F0C06802C0CC2329F08C2F0E94B71DB2
+:103AF0006C2F03C00E94B31D682F70E080E090E03F
+:103B0000CF910C947A18CF9108956DEE7EEF80E0FE
+:103B100090E00E94F12360E082E090E00E94DF23C9
+:103B200060E083E090E00E94DF2360E084E090E0CA
+:103B30000E94DF2360E085E090E00C94DF2380E0CA
+:103B400090E00E94D92321E08D3E9E4F09F020E0B5
+:103B5000822F089582E090E00C94D123682F82E0B8
+:103B600090E00C94DF2383E090E00C94D123682F45
+:103B700083E090E00C94DF2384E090E00C94D12368
+:103B8000682F84E090E00C94DF238091D50180FFC2
+:103B90000BC06091130185E0689FB00111247595F9
+:103BA0006795759567952BC081FF09C060911301DA
+:103BB00085E0689FB00111247595679520C082FF4C
+:103BC00007C06091130185E0689FB001112417C000
+:103BD0009091D6019923D1F060911201961788F740
+:103BE0002091130185E0289F90011124929FA0014C
+:103BF000939F500D112470E0CA010E94A3236038E6
+:103C0000710540F46115710539F002C065E070E09E
+:103C1000862F08958FE7089581E008958091D5015A
+:103C200080FF08C06091110170E0759567957595EA
+:103C3000679521C081FF06C06091110170E0759504
+:103C4000679519C082FF04C06091110170E010C037
+:103C50009091D6019923C1F0609110019617A0F7B9
+:103C600080911101899FC001112470E00E94A3235B
+:103C70006038710528F46115710521F0862F0895CB
+:103C80008FE7089581E0089561E070E0F4CF803F10
+:103C900021F40E94C51D819504C0813F29F40E9432
+:103CA000C51D8093D9010895823F21F40E94C51D4E
+:103CB000819504C0833F29F40E94C51D8093D801DB
+:103CC0000895893F19F40E940E1E05C08A3F31F401
+:103CD0000E940E1E81958093DA0108958B3F21F496
+:103CE0000E940E1E819504C08C3F29F40E940E1E76
+:103CF0008093DB010895843F21F48091D701816096
+:103D000017C0853F21F48091D701826011C0863FA2
+:103D100021F48091D70184600BC0873F21F480910A
+:103D2000D701886005C0883F31F48091D701806158
+:103D30008093D70108958D3F21F48091D501816052
+:103D40000BC08E3F21F48091D501826005C08F3F6A
+:103D500029F48091D50184608093D5010895803F36
+:103D600039F48091D90187FF6CC01092D90169C0E4
+:103D7000813F29F48091D9011816BCF362C090915B
+:103D8000D801823F29F497FF5CC01092D80159C036
+:103D9000833F19F41916CCF354C0893F41F4809144
+:103DA000DA0118160CF04DC01092DA014AC08A3FB1
+:103DB00029F48091DA0187FF44C0F6CF8B3F39F4B4
+:103DC0008091DB0187FF3DC01092DB013AC08C3F40
+:103DD00029F48091DB011816BCF333C0843F21F431
+:103DE0008091D7018E7F17C0853F21F48091D70144
+:103DF0008D7F11C0863F21F48091D7018B7F0BC04E
+:103E0000873F21F48091D701877F05C0883F31F437
+:103E10008091D7018F7E8093D70113C08D3F21F40D
+:103E20008091D5018E7F0BC08E3F21F48091D5010A
+:103E30008D7F05C08F3F29F48091D5018B7F8093C2
+:103E4000D5018091D80181110EC08091D9018111D5
+:103E50000AC08091DA01811106C08091DB018111D5
+:103E600002C01092D601089587ED91E00E94450F9F
+:103E70000E949B1B9093D4018093D30108951F93BC
+:103E8000CF93DF938091D3019091D4010E94A71B1F
+:103E9000AC019091D601992321F02091140130E0DA
+:103EA00006C0209115018AE0289F90011124421735
+:103EB000530708F486C08091D801C091D901D091F0
+:103EC000DA011091DB01811107C0C11176C0D11157
+:103ED00074C0111172C075C09F3F19F09F5F90931D
+:103EE000D601181624F40E94C51D8093D801809134
+:103EF000D80187FF05C00E94C51D81958093D80118
+:103F00001C1624F40E94C51D8093D9018091D9010B
+:103F100087FF05C00E94C51D81958093D9016091DE
+:103F2000D801662339F1C091D901CC2319F1772743
+:103F300067FD7095872F972F0E94B42223E333E308
+:103F400043E35FE30E9418230E9481226093D8011B
+:103F50006C2F772767FD7095872F972F0E94B422CB
+:103F600023E333E343E35FE30E9418230E948122AB
+:103F70006093D9011D1624F40E940E1E8093DA016D
+:103F80008091DA0187FF05C00E940E1E8195809303
+:103F9000DA01111624F40E940E1E8093DB01809139
+:103FA000DB0187FF05C00E940E1E81958093DB0117
+:103FB000DF91CF911F910C94341F9F3F09F08ECF5A
+:103FC00096CFDF91CF911F910895E7EDF1E085E065
+:103FD000DF011D928A95E9F71092D6011092D50162
+:103FE0000895833081F128F4813059F08230D1F086
+:103FF0000895853009F449C0B8F1863009F456C0F7
+:10400000089580911501262F30E0280F311D2F3F94
+:10401000310524F4680F6093150108958FEF8093A4
+:104020001501089580911401262F30E0280F311DCD
+:104030002F3F310524F4680F6093140108958FEF2A
+:1040400080931401089580911301262F30E0280FEA
+:10405000311D2F3F310524F4680F6093130108953B
+:104060008FEF80931301089580911201262F30E085
+:10407000280F311D2F3F310524F4680F6093120182
+:1040800008958FEF80931201089580911101262FDA
+:1040900030E0280F311D2F3F310524F4680F609365
+:1040A000110108958FEF80931101089580911001FF
+:1040B000262F30E0280F311D2F3F310524F4680FE3
+:1040C0006093100108958FEF80931001089583305D
+:1040D00011F128F4813049F0823091F00895853053
+:1040E00081F120F18630C1F10895809115016817A2
+:1040F00020F4861B809315010895109215010895F0
+:1041000080911401681720F4861B80931401089590
+:1041100010921401089580911301681720F4861BF2
+:104120008093130108951092130108958091120154
+:10413000681720F4861B80931201089510921201D3
+:10414000089580911101681720F4861B8093110156
+:10415000089510921101089580911001681720F4BC
+:10416000861B8093100108951092100108950F93FB
+:104170001F938D3109F46BC008F03FC08E3009F4F5
+:104180007FC0C0F4873009F469C068F4863009F054
+:10419000B1C08091CD01817F8E7F8093CD0181E080
+:1041A0008093DD01A8C0883009F4A2C08B3009F4E7
+:1041B0009FC0A0C0863109F49BC078F4803109F417
+:1041C00072C0813109F096C00E94BE1490910D0119
+:1041D00081E0892780930D018BC0893109F488C063
+:1041E0008B3109F087C08091CD0181FB222720F916
+:1041F00091E0922790FB81F94CC0853309F470C09F
+:1042000048F4873209F46CC008F459C0893209F4C3
+:1042100067C070C0833438F48A3308F04EC08833E6
+:1042200009F466C067C0833409F45AC0883409F0C1
+:1042300061C00E94BE140FEF13ED20E30150104047
+:104240002040E1F700C000000E94F61B51C00E9410
+:104250003B220E942E0F0E9427084AC09091CD0158
+:10426000892F8095817080FB90F929F09660986085
+:104270009093CD0140C0997F977F9093CD0138C036
+:104280008091CD0182FB222720F991E0922790FBBB
+:1042900082F98093CD01992359F18091CD018160FC
+:1042A0008093CD0125C08091CD0183FB222720F989
+:1042B00091E0922790FB83F9ECCF895301C08D5197
+:1042C00041E050E060E070E08A019B0104C0000F13
+:1042D000111F221F331F8A95D2F7C901B80104C0EC
+:1042E00061E070E080E090E00E947A180E94BE14C5
+:1042F00081E001C080E01F910F91089580E0089552
+:1043000080E00895CF93C82F8091DD01813079F04E
+:1043100018F08230E9F187C0E0910E01F0910F01B1
+:104320008081813169F0823209F07FC009C0E0915B
+:104330000E01F0910F018081813111F0823261F420
+:104340008C2F0E947E21811104C08C2F0E94B720E7
+:104350001DC081E090E01AC08C2F0E948021811145
+:1043600014C0C43179F048F4CB3079F0C03109F091
+:1043700060C082E08093DD0108C0C93219F0C83303
+:1043800021F057C01092DD0154C081E0817053C00C
+:10439000C93289F118F5C43171F1A8F4C73009F0B8
+:1043A00046C08AE08093150194E19093140193E054
+:1043B000909313018093120188E08093110188E2A9
+:1043C0008093100134C0CE51C63088F5EC2FF0E058
+:1043D000E65DFE4F80818093DC0129C0CE34E9F098
+:1043E00020F4CB3421F56AE013C0C13579F0C23531
+:1043F000F1F461E00DC08091DC01882319F0109286
+:10440000DC0115C081E08093DD0115C061E006C0CC
+:104410008091DC010E94F11F0AC06AE08091DC01FA
+:104420000E94672004C01092DD0180E004C081E09A
+:1044300002C080E0ABCFCF910895E1E8F0E0808149
+:10444000886080838081816080838FB7F89493E057
+:104450009093890090ED909388008FBF0895EFE6C8
+:10446000F0E08081826080830895EFE6F0E0808153
+:104470008D7F80830895EFE6F0E0908182E08927C8
+:10448000808308951F920F920FB60F9211242F93DD
+:104490003F934F935F936F937F938F939F93AF93CC
+:1044A000BF93EF93FF938091DE019091DF0101961E
+:1044B0009093DF018093DE01811103C082E00E94AE
+:1044C0002708E091DF01E695E695F0E0E456FB4F22
+:1044D000E4918091DE018E1303C080E00E942708E2
+:1044E000FF91EF91BF91AF919F918F917F916F91CC
+:1044F0005F914F913F912F910F900FBE0F901F90A2
+:10450000189504D06894B1118DC0089570D088F0CA
+:104510009F5790F0B92F9927B751A0F0D1F0660FAF
+:10452000771F881F991F1AF0BA95C9F712C0B130CA
+:1045300081F077D0B1E0089574C0672F782F882775
+:10454000B85F39F0B93FCCF3869577956795B39509
+:10455000D9F73EF490958095709561957F4F8F4F78
+:104560009F4F0895E89409C097FB3EF4909580957D
+:10457000709561957F4F8F4F9F4F9923A9F0F92F29
+:1045800096E9BB279395F695879577956795B795A7
+:10459000F111F8CFFAF4BB0F11F460FF1BC06F5F8D
+:1045A0007F4F8F4F9F4F16C0882311F096E911C09F
+:1045B000772321F09EE8872F762F05C0662371F0C0
+:1045C00096E8862F70E060E02AF09A95660F771FD4
+:1045D000881FDAF7880F9695879597F9089557FD04
+:1045E0009058440F551F59F05F3F71F04795880F61
+:1045F00097FB991F61F09F3F79F0879508951216F8
+:1046000013061406551FF2CF4695F1DF08C01616A3
+:1046100017061806991FF1CF869571056105089454
+:104620000895E894BB2766277727CB0197F908956B
+:104630000BD078C069D028F06ED018F0952309F01F
+:104640005AC05FC01124EECFCADFA0F3959FD1F30B
+:10465000950F50E0551F629FF001729FBB27F00D30
+:10466000B11D639FAA27F00DB11DAA1F649F662785
+:10467000B00DA11D661F829F2227B00DA11D621FD4
+:10468000739FB00DA11D621F839FA00D611D221F8E
+:10469000749F3327A00D611D231F849F600D211D72
+:1046A000822F762F6A2F11249F5750408AF0E1F015
+:1046B00088234AF0EE0FFF1FBB1F661F771F881F5E
+:1046C00091505040A9F79E3F510570F014C0AACFF9
+:1046D0005F3FECF3983EDCF3869577956795B79549
+:1046E000F795E7959F5FC1F7FE2B880F911D969573
+:1046F000879597F9089597F99F6780E870E060E0E3
+:1047000008959FEF80EC089500240A94161617066A
+:1047100018060906089500240A94121613061406B2
+:1047200005060895092E0394000C11F4882352F015
+:10473000BB0F40F4BF2B11F460FF04C06F5F7F4FCD
+:104740008F4F9F4F089597FB072E16F4009407D0C4
+:1047500077FD09D00E94BD2307FC05D03EF490955B
+:1047600081959F4F0895709561957F4F0895EE0F45
+:10477000FF1F0590F491E02D0994AA1BBB1B51E18A
+:1047800007C0AA1FBB1FA617B70710F0A61BB70BC1
+:10479000881F991F5A95A9F780959095BC01CD0166
+:1047A0000895F999FECF92BD81BDF89A992780B5F9
+:1047B0000895A8E1B0E042E050E00C94F923262FE0
+:1047C000F999FECF92BD81BDF89A019700B4021607
+:1047D00039F01FBA20BD0FB6F894FA9AF99A0FBEB5
+:1047E00008950196272F0E94E0230C94DF23DC011B
+:1047F000CB01FC01F999FECF06C0F2BDE1BDF89AEC
+:10480000319600B40D9241505040B8F70895F89495
+:02481000FFCFD8
+:1048120020022908B708940860082C080101BA018F
+:1048220028080A03140A3F4D36395D041004DA03DE
+:10483200A10334034D0366037F030102030405064B
+:04484200070809005A
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/plums/plums.png b/keyboard/ergodox_ez/keymaps/plums/plums.png Binary files differnew file mode 100644 index 0000000000..2f127c4cab --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/plums.png diff --git a/keyboard/ergodox_ez/keymaps/plums/readme.md b/keyboard/ergodox_ez/keymaps/plums/readme.md new file mode 100644 index 0000000000..b72329eef7 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/readme.md @@ -0,0 +1,11 @@ +# ErgoDox EZ Plums Configuration + +## Changelog + +* Apr 23, 2016 (v0.1.0): + * Shortcut for iTerm2 quake style dropdown (Ctrl+`) + * Shortcut for screen/tmux (Ctrl+a) + * Shortcut for shush (Hyper+m) + * Combo modifier for LGUI + LALT + +![Plums](plums.png) diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c new file mode 100644 index 0000000000..e23c5a1d6a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c @@ -0,0 +1,45 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { +}; diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md new file mode 100644 index 0000000000..80475ab21e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md @@ -0,0 +1,28 @@ +# Roman's Layout + +There is only one layer based on [Norman layout](https://normanlayout.info/). + +Looking for multiple-layer layouts? + +- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/) +- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) + +[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex new file mode 100644 index 0000000000..1be94c43d1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex @@ -0,0 +1,1092 @@ +:100000000C94BB010C94FF010C94FF010C94FF01B4
+:100010000C94FF010C94FF010C94FF010C94FF0160
+:100020000C94FF010C94FF010C94E20A0C94B40BA5
+:100030000C94FF010C94FF010C94FF010C94FF0140
+:100040000C94FF010C9432200C94FF010C94FF01DE
+:100050000C94FF010C94BD190C94FF010C94FF014A
+:100060000C94FF010C94FF010C94FF010C94FF0110
+:100070000C94FF010C94FF010C94FF010C94FF0100
+:100080000C94FF010C94FF010C94FF010C94FF01F0
+:100090000C94FF010C94FF010C94FF010C94FF01E0
+:1000A0000C94FF010C94FF010C94FF01210C430CF4
+:1000B000310D430C310D880CAB0C310D000D130DBF
+:1000C000FF0FFF0F3C103C107F10BD10D612D61250
+:1000D000D610D612D711D711AA12D612D612C11223
+:1000E00035002B002971E1003A0000001E001400C9
+:1000F00004001D003B00E2001F001A0016001B0058
+:100100003C00297120000700080006003D002A007D
+:100110002100090017001900E300A90022000E00C9
+:100120000A0005000000AA003E00310000002F0078
+:100130000000A8003F000000000030000000AE00FA
+:1001400023000D001C0013000000AB002400180069
+:1001500011001000E700AC00250015000C0036006F
+:1001600050002C0026000F00120037005100340010
+:10017000270033000B0038005200E6002E002D004F
+:100180002800E5004F0000001603450072006700DC
+:100190006F0044006F007800200045005A00000006
+:1001A00016034500720067006F0044006F0078007E
+:1001B000200045005A0000000403090409026D00F4
+:1001C000040100A0FA090400000103010100092153
+:1001D00011010001223F000705810308000A0904FC
+:1001E00001000103010200092111010001224D005B
+:1001F0000705820308000A09040200010300000049
+:100200000921110100012236000705830308000AB5
+:10021000090403000103000000092111010001226B
+:1002200039000705840310000112011001000000CD
+:1002300008EDFE071301000102000105010906A1F6
+:1002400001050719E029E7150025019508750181C9
+:100250000205081901290595057501910295017599
+:100260000391010507190029771500250195787577
+:10027000018102C005010980A10185021601002645
+:10028000B7001A01002AB700751095018100C0055A
+:100290000C0901A1018503160100269C021A010028
+:1002A0002A9C02751095018100C005010902A10177
+:1002B0000901A10005091901290515002501950568
+:1002C000750181029501750381010501093009312C
+:1002D0001581257F95027508810609381581257FCE
+:1002E000950175088106050C0A38021581257F9550
+:1002F0000175088106C0C005010906A1010507199D
+:10030000E029E71500250195087501810295017521
+:1003100008810105081901290595057501910295C6
+:1003200001750391010507190029FF150025FF95A7
+:100330000675088100C000000000000000000000F9
+:1003400000010204060A0F17202C3A4A5D71879DAE
+:10035000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AD
+:100360005D4A3A2C20170F0A060402010000000023
+:1003700000000000000011241FBECFEFDAE0DEBF56
+:10038000CDBF04B603FE24C08091EF019091F0012F
+:10039000A091F101B091F2018730904BA740B04B92
+:1003A000B9F41092EF011092F0011092F101109245
+:1003B000F20114BE84B7877F84BF88E10FB6F8943A
+:1003C00080936000109260000FBEE0E0FFE30995AB
+:1003D00011E0A0E0B1E0E8EEF3E402C005900D9278
+:1003E000A433B107D9F711E0A4E3B1E001C01D9235
+:1003F000AF3EB107E1F70E9426080C94F2210C945D
+:100400000000089556985E9825982D9826982E9865
+:1004100027982F98089508950C940B0256985E988B
+:1004200025982D9826982E9827982F988FEF90E052
+:10043000909389008093880090938B0080938A002A
+:1004400090938D0080938C00259A2D9A2FEF80E752
+:1004500092E0215080409040E1F700C00000269AD1
+:100460002E9A2FEF80E792E0215080409040E1F7F4
+:1004700000C00000279A2F9A2FEF80E792E02150CA
+:1004800080409040E1F700C0000025982D982FEFA4
+:1004900080E792E0215080409040E1F700C00000EA
+:1004A00026982E982FEF80E792E0215080409040D0
+:1004B000E1F700C0000027982F9856985E9825987D
+:1004C0002D9826982E9827982F98089589EA80933A
+:1004D000800089E08093810024982C983F988AB10D
+:1004E0008F748AB96E98479A8BB1806B8BB9769A64
+:1004F0000E940E020C94020280E28093000180911F
+:10050000340181110EC00E94CB0281E0809334013E
+:100510002FEF83ED90E3215080409040E1F700C041
+:10052000000080E40E94D1028093000181112EC05E
+:100530000E94FB0280930001811128C00E94FB02EF
+:1005400080930001811122C08FE30E94FB028093FF
+:10055000000181111BC00E94F30280E40E94D102BD
+:1005600080930001811112C08CE00E94FB028093F5
+:10057000000181110BC00E94FB02809300018111D8
+:1005800005C08FE30E94FB02809300010E94F302EA
+:100590008091000108951092B9008AE08093B8001C
+:1005A000089594EA9093BC009091BC0097FFFCCF13
+:1005B0009091B900987F983021F0903111F081E04E
+:1005C00008958093BB0084E88093BC008091BC00B8
+:1005D00087FFFCCF8091B900887F883111F080348B
+:1005E00071F780E0089584E98093BC008091BC009D
+:1005F00084FDFCCF08958093BB0084E88093BC0009
+:100600008091BC0087FFFCCF9091B900987F81E07A
+:10061000983209F480E0089584E88093BC008091CA
+:10062000BC0087FFFCCF8091BB0008958091000142
+:10063000811115C080E40E94D102809300018111D4
+:100640000CC082E10E94FB0280930001811105C071
+:100650008FEF0E94FB02809300010E94F30284B19D
+:10066000807F84B985B1807F85B98AB1837F8AB95B
+:100670008BB1837F8BB93E98469808950E947C0287
+:10068000809300010E94160380B38C7080BB81B3FD
+:10069000836F81BBA6E3B1E0E4E4F1E08EE08E0F6E
+:1006A00011921D928E13FCCF0C946602BF92CF92D2
+:1006B000DF92EF92FF920F931F93CF93DF9380917E
+:1006C0000001882379F0809135018F5F8093350197
+:1006D000811108C00E947C0280930001811102C038
+:1006E0000E940E0206E311E0C0E0D0E0DD24D394C6
+:1006F00082E0C82EEE24E394F12CC730D10500F53A
+:1007000080910001811164C080E40E94D102809335
+:100710000001811112C082E10E94FB02809300015E
+:1007200081110BC0C7010C2E01C0880F0A94EAF793
+:1007300080950E94FB02809300010E94F30248C052
+:10074000CA30A1F028F4C83059F0C93061F005C0B2
+:10075000CC3089F070F0CD3089F0209A289810C004
+:10076000219A29980DC0229A2A980AC0239A2B9878
+:1007700007C0529A01C0539A5B9802C03E9A4698AD
+:1007800090EA9A95F1F79FB1799902C082E001C091
+:1007900080E091709D25982B7C9902C084E001C077
+:1007A00080E0892B7D9902C038E001C030E0832BC6
+:1007B0007E9902C020E101C020E0822B9FB190957C
+:1007C000991F9927991F9295990F907E892B0FC099
+:1007D00080910001811149C080E40E94D102809380
+:1007E0000001882379F1B12C0E94F3028B2DF801CE
+:1007F0009081981719F08083C09201010E9416031E
+:1008000021960F5F1F4FCE30D10509F076CF809132
+:100810000101882361F1815080930101882339F01F
+:100820008FE99FE00197F1F700C0000020C0A4E429
+:10083000B1E0E6E3F1E0CF01825F91919D938E13E9
+:10084000FCCF15C083E10E94FB028093000181115F
+:10085000CACF81E40E94D102809300018111C3CFED
+:100860000E940C03B82EB094BFCF80E0C0CF0E948E
+:100870000C0281E0DF91CF911F910F91FF90EF90DB
+:10088000DF90CF90BF900895E82FF0E0EC5BFE4F33
+:100890008081089508958B3B910578F4883A9105FD
+:1008A00040F5853A9105D0F48430910508F0B1C047
+:1008B0008130910509F4ADC06BC0803E910508F40C
+:1008C00067C0883E910508F4A4C09C01205F3109EF
+:1008D0002031310508F05CC090650895853A910596
+:1008E00009F459C0863A910509F058C082E890E4AD
+:1008F0000895883A910509F454C0893A910509F49C
+:1009000053C08A3A910509F452C08B3A910509F413
+:1009100051C08C3A910509F450C08D3A910509F403
+:100920004FC0803B910509F44EC08E3A910509F401
+:100930004DC08F3A910509F44CC0813B910509F4F3
+:100940004BC0823B910509F44AC0833B910509F4F1
+:1009500049C0843B910509F448C0853B910509F4E1
+:1009600047C0863B910509F446C0873B910509F4D1
+:1009700045C0883B910509F444C0893B910509F4C1
+:1009800043C08A3B910509F442C080E094E4089595
+:1009900080E090E0089581E890E4089583E890E491
+:1009A000089582EE94E4089589EE94E408958AEE21
+:1009B00094E4089585EB94E4089586EB94E4089517
+:1009C00087EB94E408958CEC94E408958DEC94E422
+:1009D000089583E895E408958AE895E4089582E906
+:1009E00095E4089584E995E4089581E296E40895F4
+:1009F00083E296E4089584E296E4089585E296E41D
+:100A0000089586E296E4089587E296E408958AE2DE
+:100A100096E40895089596E0799FF001112494E5F5
+:100A2000899FE00DF11D1124E60FF11DEE0FFF1F50
+:100A3000E052FF4F859194910895880F991FFC0112
+:100A4000E05AF040859194910895880F991FFC0118
+:100A5000E052FF4F85919491089526E0729FF00136
+:100A6000112444E5849FE00DF11D1124E60FF11DD2
+:100A7000EE0FFF1FE052FF4F859194919C013A9534
+:100A800021154FE1340708F41CC13F5121153041B5
+:100A900020F49F700E94250508959C013053211574
+:100AA000304118F49927906C0895811520E592073C
+:100AB00071F40E94FA124FEF84E39CE041508040B1
+:100AC0009040E1F700C000000E94E219FAC08130B6
+:100AD00020E5920731F48091CD0181608093CD01B2
+:100AE000F0C09C0130552115304108F051C0292F2C
+:100AF00033272F70332721303105D9F4AC014370EF
+:100B0000552702C0220F331F4A95E2F73C68AC011B
+:100B100064E0440F551F6A95E1F744275370242B76
+:100B2000352B73E0880F991F7A95E1F78076992726
+:100B30001DC02230310529F4982F8827816F906AD3
+:100B4000089523303105A9F4AC014370552721E005
+:100B500030E002C0220F331F4A95E2F73C6843E0C1
+:100B6000880F991F4A95E1F7807E9770822B932B0F
+:100B7000089524303105E1F4AC014370552721E09C
+:100B800030E002C0220F331F4A95E2F73A68E7CF00
+:100B90009C0130572115304118F49F7090620895E0
+:100BA0009C0130582115304118F49F70906A0895C7
+:100BB000803E9105E0F4803C910558F58133910524
+:100BC00009F46FC048F48932910509F463C08A3290
+:100BD000910509F46DC072C089339105E9F082383E
+:100BE0009105D1F08533910509F44DC067C0833E6E
+:100BF000910581F138F4803E9105B9F0823E91056E
+:100C0000D9F05CC0863E910561F1873E9105A1F166
+:100C100055C00E941D0508952091E00120FD02C0ED
+:100C200021FF4CC080EE90E049C08091E00180FF40
+:100C3000F9CF89E390E042C08091E00182FF0EC0CD
+:100C40008091E00184FF03C080E090E037C083EE34
+:100C500090E034C08091E00182FFF2CF82EE90E01C
+:100C60002DC08091E00183FF0BC08091E00184FDE5
+:100C7000EBCF87EE90E022C08091E00183FFF5CFBB
+:100C800086EE90E01BC08091E00185FF07C089E2FD
+:100C900090E014C08091E00185FFF9CF85E390E0FA
+:100CA0000DC08091E00186FF07C08AE290E006C097
+:100CB0008091E00186FFF9CF81E390E00E944B0430
+:100CC0000895089508950C94620680916201089534
+:100CD000CF93DF9300D01F92CDB7DEB79C018091F8
+:100CE000E601843019F593E099833B832A8390933E
+:100CF000E9008FEF9091E800815095FD06C095EDD9
+:100D00009A95F1F700008111F5CF8091E80085FFF9
+:100D10000DC040E050E063E070E0CE0101960E941B
+:100D2000D2088091E8008E778093E8000F900F90B2
+:100D30000F90DF91CF910895CF93DF9300D01F9252
+:100D4000CDB7DEB72091E601243021F522E02983DA
+:100D50009B838A8383E08093E9008FEF9091E80082
+:100D6000815095FD06C095ED9A95F1F7000081112F
+:100D7000F5CF8091E80085FF0DC040E050E063E0D2
+:100D800070E0CE0101960E94D2088091E8008E7733
+:100D90008093E8000F900F900F90DF91CF9108950E
+:100DA0002091E6012430F1F422E02093E9002FEFB6
+:100DB0003091E800215035FD06C035ED3A95F1F748
+:100DC00000002111F5CF2091E80025FF0BC040E085
+:100DD00050E065E070E00E94D2088091E8008E77D4
+:100DE0008093E8000895CF93DF93EC019091E601A2
+:100DF000943009F046C080910C018823D9F080918D
+:100E00000D018823B9F09093E9008FEF9091E800ED
+:100E1000815095FD06C095E19A95F1F7000081118A
+:100E2000F5CF8091E80085FF2CC040E050E060E104
+:100E300070E017C081E08093E9008FEF9091E800A7
+:100E4000815095FD06C095ED9A95F1F7000081114E
+:100E5000F5CF8091E80085FF14C040E050E068E0E5
+:100E600070E0CE010E94D2088091E8008E778093D6
+:100E7000E80080E1FE01A2E5B1E001900D928A95C3
+:100E8000E1F7DF91CF9108958091E501811109C0CB
+:100E90000E94670A0E94C40A8091E20084608093E5
+:100EA000E20008951092E501089508950C941F2022
+:100EB0000E9478190E9425200E946A0D0C946306F6
+:100EC00042E061EC81E00E94E10942E061EC82E0F5
+:100ED0000E94E10942E061EC83E00E94E10942E105
+:100EE00061EC84E00C94E1098091E801833009F41D
+:100EF00055C030F4813071F0823009F48EC008950D
+:100F00008A3009F47AC08B3009F460C0893009F066
+:100F10009CC020C08091E701813A09F096C0809181
+:100F2000E800877F8093E8008091EB019091EC01CD
+:100F3000892B21F460E182E591E003C060E080E06C
+:100F400090E070E00E941D098091E8008B7780930B
+:100F5000E80008958091E701813209F076C0809120
+:100F6000EB019091EC01009719F0039709F06DC027
+:100F70008091E800877F8093E8008091E80082FDFF
+:100F800005C08091E6018111F8CF5FC08091F1002A
+:100F9000809362018091E8008B7753C08091E701D4
+:100FA000813A09F052C08091EB019091EC01892BBC
+:100FB00009F04BC08091E800877F8093E800809122
+:100FC000E80080FFFCCF80910C0136C08091E701E2
+:100FD0008132D9F58091EB019091EC01892BA9F533
+:100FE0008091E800877F8093E8000E94160A809134
+:100FF000E90180930C010C94FA128091E70181328F
+:1010000021F58091E800877F8093E8000E94160A0E
+:101010008091EA018093630108958091E701813A0C
+:10102000A1F48091E800877F8093E8008091E80038
+:1010300080FFFCCF809163018093F1008091E800F4
+:101040008E778093E8000C94160A089584B7877F02
+:1010500084BF88E10FB6F89480936000109260001E
+:101060000FBE90E080E80FB6F894809361009093F3
+:1010700061000FBE0E94B90D0E94670A0E94C40A57
+:101080008091E20084608093E20078940E944A0D8F
+:101090000E94BB0D82E091E00E94650D0E940D2030
+:1010A0008091E601853069F40E9439198091E4014C
+:1010B0008823B1F30E946419882391F30E94BC082D
+:1010C000EFCF0E94C10DECCF292F332723303105FC
+:1010D000C9F064F42130310581F02230310509F086
+:1010E00043C08DE690E02CEB31E042C02132310567
+:1010F000F1F02232310541F137C082E190E029E27E
+:1011000032E036C099278130910541F08230910557
+:1011100041F0892B49F5E8EBF1E005C0E0EAF1E0A8
+:1011200002C0E8E8F1E0849190E09F0121C06430C2
+:10113000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081AA
+:10114000318189E090E014C0643070F470E0FB01FC
+:10115000EE0FFF1FE65EFE4F20813181FB01EA5E4C
+:10116000FE4F808190E004C080E090E020E030E01D
+:10117000FA0131832083089580E189BD82E189BD30
+:1011800009B400FEFDCF8091D8008F7D8093D800F8
+:101190008091E00082608093E0008091E00081FD1A
+:1011A000FCCF0895CF92DF92EF92FF920F931F939F
+:1011B000CF93DF93EC018B016A010E94350A811104
+:1011C00033C0C114D10439F0F60180819181081B2C
+:1011D000190BC80FD91FE12CF12C0115110519F1BC
+:1011E0008091E80085FD16C08091E8008E7780939D
+:1011F000E800C114D10449F0F60180819181E80E24
+:10120000F91EF182E08285E00FC00E94350A882332
+:1012100021F30AC089918093F10001501109FFEF79
+:10122000EF1AFF0ADACF80E0DF91CF911F910F9183
+:10123000FF90EF90DF90CF9008952091ED013091D5
+:10124000EE012617370748F06115710539F4209132
+:10125000E8002E772093E80001C0B90140E0611555
+:101260007105A9F12091E601222309F443C025303C
+:1012700009F442C02091E80023FD40C02091E8001D
+:1012800022FD32C02091E80020FFE9CF4091F30019
+:101290002091F20030E0342BFC01CF016115710583
+:1012A00059F02830310540F481918093F10061506C
+:1012B00071092F5F3F4FF1CF41E02830310509F030
+:1012C00040E02091E8002E772093E800C8CF41113C
+:1012D000C9CF0AC08091E601882361F0853061F0B2
+:1012E0008091E80083FD0AC08091E80082FFF2CF80
+:1012F00080E0089582E0089583E0089581E00895F4
+:101300002091ED013091EE012617370748F0611565
+:10131000710539F42091E8002E772093E80001C090
+:10132000B901FC0120E06115710591F18091E601A0
+:10133000882309F440C0853009F43FC08091E8005B
+:1013400083FD3DC08091E80082FD2FC08091E800C0
+:1013500080FFE9CF2091F3008091F20090E0922B82
+:101360006115710559F08830910540F4249120935E
+:10137000F1003196615071090196F2CF21E0089792
+:1013800009F020E08091E8008E778093E800CBCFD1
+:101390002111CCCF0AC08091E601882361F085300D
+:1013A00061F08091E80083FD0AC08091E80082FF2F
+:1013B000F2CF80E0089582E0089583E0089581E00F
+:1013C0000895982F973058F59093E900981739F0C1
+:1013D0007091EC002091ED005091F00003C0242F9B
+:1013E000762F50E021FF19C03091EB003E7F309303
+:1013F000EB003091ED003D7F3093ED003091EB003C
+:1014000031603093EB007093EC002093ED0050932B
+:10141000F0002091EE0027FF07C09F5FD3CF8F70B1
+:101420008093E90081E0089580E008958091E701CC
+:1014300087FF11C08091E80082FD05C08091E60120
+:101440008111F8CF11C08091E8008B770BC080919B
+:10145000E601882349F08091E80080FFF8CF809171
+:10146000E8008E778093E80008952091E4003091A1
+:10147000E50095E64091EC00842F817040FF22C08A
+:101480008091E80080FD1CC08091E601882391F0E6
+:10149000853091F08091EB0085FD10C04091E40013
+:1014A0005091E5004217530729F39A01915011F723
+:1014B00084E0089582E0089583E0089581E008952E
+:1014C00080E008954091E80042FFDECF08950E9439
+:1014D000D50A0E94DD0AE0EEF0E080818160808321
+:1014E000E8EDF0E080818F77808319BCA7EDB0E054
+:1014F0008C918E7F8C9380818F7E80831092E5010A
+:1015000008950F931F93CF93DF930E94D50A0E94F3
+:10151000DD0AC8EDD0E088818F7788838881806874
+:10152000888388818F7D888319BC1092E601109290
+:10153000E2011092E4011092E30100EE10E0F801E4
+:1015400080818B7F808388818160888342E060E036
+:1015500080E00E94E109E1EEF0E080818E7F8083EF
+:10156000E2EEF0E08081816080838081886080830A
+:10157000F80180818E7F8083888180618883DF91FC
+:10158000CF911F910F910895E8EDF0E080818F7E5B
+:101590008083E7EDF0E080818160808384E082BF1A
+:1015A00081E08093E5010C94810AE8EDF0E0808110
+:1015B0008E7F80831092E20008951092DA001092DC
+:1015C000E10008951F920F920FB60F9211242F93EE
+:1015D0003F934F935F936F937F938F939F93AF93BB
+:1015E000BF93EF93FF938091E10082FF0BC0809146
+:1015F000E20082FF07C08091E1008B7F8093E100D1
+:101600000E94490D8091DA0080FF1FC08091D800B0
+:1016100080FF1BC08091DA008E7F8093DA0080917A
+:10162000D90080FF0DC080E189BD82E189BD09B488
+:1016300000FEFDCF81E08093E6010E94440705C0D3
+:1016400019BC1092E6010E9452078091E10080FFD0
+:1016500019C08091E20080FF15C08091E2008E7F6A
+:101660008093E2008091E20080618093E2008091AB
+:10167000D80080628093D80019BC85E08093E60191
+:101680000E9456078091E10084FF30C08091E20003
+:1016900084FF2CC080E189BD82E189BD09B400FED0
+:1016A000FDCF8091D8008F7D8093D8008091E1009C
+:1016B0008F7E8093E1008091E2008F7E8093E20034
+:1016C0008091E20081608093E2008091E2018823B2
+:1016D00011F084E007C08091E30087FD02C081E043
+:1016E00001C083E08093E6010E9458078091E100E9
+:1016F00083FF29C08091E20083FF25C08091E10033
+:10170000877F8093E10082E08093E6011092E201FE
+:101710008091E1008E7F8093E1008091E2008E7FD6
+:101720008093E2008091E20080618093E20042E0D9
+:1017300060E080E00E94E1098091F0008860809381
+:10174000F0000E945507FF91EF91BF91AF919F91DB
+:101750008F917F916F915F914F913F912F910F905A
+:101760000FBE0F901F9018951F920F920FB60F92F9
+:1017700011242F933F934F935F936F937F938F9396
+:101780009F93AF93BF93CF93DF93EF93FF93C0915A
+:10179000E900CF708091EC00D82FD17080FDD0E8A7
+:1017A0001092E9008091F000877F8093F000789498
+:1017B0000E94F80B1092E9008091F00088608093FD
+:1017C000F000CD2BCF70C093E900FF91EF91DF9136
+:1017D000CF91BF91AF919F918F917F916F915F91C9
+:1017E0004F913F912F910F900FBE0F901F90189522
+:1017F0001F93CF93DF93CDB7DEB7AA970FB6F894B8
+:10180000DEBF0FBECDBFE7EEF1E088E08E0F909116
+:10181000F10091938E13FBCF0E9474078091E80032
+:1018200083FF1FC18091E7019091E801492F50E0AB
+:101830004A30510508F015C1FA01EA5AFF4F0C94DD
+:10184000A721803881F0823809F00BC18091EB012B
+:101850008F708093E9008091EB0085FB882780F9E9
+:101860001092E90006C08091E3019091E40191118A
+:1018700082609091E800977F9093E8008093F10058
+:101880001092F100C8C0282F2D7F09F0EAC08823EC
+:1018900019F0823061F0E5C08091E901813009F0F2
+:1018A000E0C0933009F080E08093E4012BC0809188
+:1018B000E901811127C08091EB018F7009F4D1C03B
+:1018C0008093E9002091EB0020FF1CC0933021F4AD
+:1018D0008091EB00806214C09091EB009061909336
+:1018E000EB0021E030E0A90102C0440F551F8A95AA
+:1018F000E2F74093EA001092EA008091EB008860E2
+:101900008093EB001092E9008091E800877F86C009
+:101910008111A7C01091E9011F778091E3008078C1
+:10192000812B8093E3008091E800877F8093E8001B
+:101930000E94160A8091E80080FFFCCF8091E300AE
+:1019400080688093E300111102C082E001C083E04F
+:101950008093E60186C08058823008F082C0809172
+:10196000E9019091EA018C3D53E0950779F583E018
+:101970008A838AE289834FB7F894DE01139620E0C8
+:101980003EE051E2E32FF0E050935700E49120FF56
+:1019900003C0E295EF703F5FEF708E2F90E0EA306A
+:1019A00010F0C79601C0C0968D939D932F5F243190
+:1019B00049F74FBF8091E800877F8093E8006AE293
+:1019C00070E0CE0101960E941D0914C0AE014F5F68
+:1019D0005F4F6091EB010E946408BC01892B09F400
+:1019E00040C09091E800977F9093E80089819A81A8
+:1019F0000E9480098091E8008B778093E80031C0D5
+:101A0000803879F58091E800877F8093E8008091A5
+:101A1000E2018093F1008091E8008E778093E800E6
+:101A20000E94160A1EC081111CC09091E9019230DB
+:101A3000C0F48091E800877F8093E8009093E201F2
+:101A40000E94160A8091E201811106C08091E30094
+:101A500087FD02C081E001C084E08093E6010E941E
+:101A600060078091E80083FF0AC08091E800877FCB
+:101A70008093E8008091EB0080628093EB00AA964F
+:101A80000FB6F894DEBF0FBECDBFDF91CF911F918F
+:101A900008950895CF938091E6018823A1F0C09125
+:101AA000E900CF709091EC00892F817090FD80E863
+:101AB000C82B1092E9008091E80083FD0E94F80B8A
+:101AC000CF70C093E900CF910895909369018093FE
+:101AD00068010895E0916801F0916901309721F063
+:101AE0000190F081E02D099480E00895E091680173
+:101AF000F0916901309721F00280F381E02D099483
+:101B00000895E0916801F0916901309721F0048017
+:101B1000F581E02D099408952091660130916701C7
+:101B20008217930771F09093670180936601E091AB
+:101B30006801F0916901309721F00680F781E02D6E
+:101B400009940895209164013091650182179307EB
+:101B500071F09093650180936401E0916801F091C8
+:101B60006901309721F00084F185E02D09940895F2
+:101B700008950C94B80D0E947E190E943E030C94A7
+:101B8000441ACF92DF92EF92FF920F931F93CF935D
+:101B9000DF93CDB7DEB72B970FB6F894DEBF0FBE3D
+:101BA000CDBF0E9456038BE6C82E81E0D82E00E000
+:101BB00010E0E02E802F0E944404F60141916F0155
+:101BC000F42EF826B1F40F5F1F4F0E30110589F780
+:101BD0008FEF89838A831B820E9487198160782F07
+:101BE0009D838C8349815A816B818D810E94640E13
+:101BF00040C09091CD0191FF04C08B870E944A04A0
+:101C00008B8520E030E04F2D50E0922FBA01022E5C
+:101C100002C0759567950A94E2F760FF24C02E8391
+:101C2000EF8221E030E0690102C0CC0CDD1C9A9506
+:101C3000E2F790E08C219D21892B09F420E0288790
+:101C40000E9487198160782F9A8789874E815F81EA
+:101C500068858A850E94640EF801E559FE4F8081EF
+:101C6000C826C08206C02F5F3F4F2630310569F677
+:101C7000AACF0E942B1D10916A010E946A0D1817AD
+:101C8000A1F00E946A0D80936A012B960FB6F8941A
+:101C9000DEBF0FBECDBFDF91CF911F910F91FF909F
+:101CA000EF90DF90CF900C9463062B960FB6F894CC
+:101CB000DEBF0FBECDBFDF91CF911F910F91FF907F
+:101CC000EF90DF90CF900895CF93DF93CDB7DEB73D
+:101CD0002B970FB6F894DEBF0FBECDBF4F8358874A
+:101CE00069877A878B87DE01119686E0FD01119264
+:101CF0008A95E9F785E0FE01379601900D928A9565
+:101D0000E1F749815A816B817C818D819E810E949E
+:101D100094152B960FB6F894DEBF0FBECDBFDF91A2
+:101D2000CF9108950895CF93882309F4C2C0C82F96
+:101D3000823859F40E946A0D81FDBBC089E30E947C
+:101D40003D180E940A1989E30CC0833879F40E9477
+:101D50006A0D80FDAEC083E50E943D180E940A19FD
+:101D600083E50E947F18CF910C940A19843859F4A6
+:101D70000E946A0D82FD9DC087E40E943D180E946A
+:101D80000A1987E4EECF8CEF8C0F813A48F48C2F40
+:101D90000E94721F81118DC08C2F0E943D18E3CFCD
+:101DA00080E28C0F883048F4C77081E001C0880F52
+:101DB000CA95EAF70E94C318D6CF8BE58C0F833003
+:101DC00078F4C53A29F0C63A31F083E890E005C0CE
+:101DD00081E890E002C082E890E0CF910C948C0DF5
+:101DE00088E58C0F833108F064C0C83A39F1C93AEC
+:101DF00041F1CA3A49F1CB3A51F1CC3A59F1CD3AD5
+:101E000061F1C03B69F1CE3A71F1CF3A79F1C13B52
+:101E100081F1C23B89F1C33B91F1C43B99F1C53BD0
+:101E2000A1F1C63BA9F1C73BB1F1C83BB9F1C93B30
+:101E3000C1F1CA3BC9F180E090E038C082EE90E089
+:101E400035C089EE90E032C08AEE90E02FC085EB7D
+:101E500090E02CC086EB90E029C087EB90E026C094
+:101E60008CEC90E023C08DEC90E020C083E891E002
+:101E70001DC08AE891E01AC082E991E017C084E9A8
+:101E800091E014C081E292E011C083E292E00EC0C2
+:101E900084E292E00BC085E292E008C086E292E024
+:101EA00005C087E292E002C08AE292E0CF910C94F2
+:101EB000A20DCF910895882309F44BC0823859F4BC
+:101EC0000E946A0D81FF45C089E30E943D180E946F
+:101ED0000A1989E30CC0833871F40E946A0D80FFEF
+:101EE00038C083E50E943D180E940A1983E50E94CC
+:101EF0007F180C940A19843859F40E946A0D82FFE5
+:101F000028C087E40E943D180E940A1987E4EFCF99
+:101F10009CEF980F913A58F390E2980F983050F454
+:101F2000877091E001C0990F8A95EAF7892F0E9486
+:101F3000C918DFCF9BE5980F933020F480E090E044
+:101F40000C948C0D885A833120F480E090E00C943E
+:101F5000A20D0895882321F00E94C3180C940A1939
+:101F60000895882321F00E94C9180C940A19089535
+:101F7000BF92CF92DF92EF92FF920F931F93CF9376
+:101F8000DF9300D000D000D0CDB7DEB725E0FC0154
+:101F9000DE01119601900D922A95E1F7FC01D080A7
+:101FA00011810281258122952F7043815481452B17
+:101FB00009F4FCC21F3F21F4FFEFDF1609F4F6C25B
+:101FC0007C012E830E94920ED9821A8369817A81C4
+:101FD000802F0E943918182FB92E0E94EE170E94E8
+:101FE000B5162E81002319F00E94E0182E81EB2DEA
+:101FF000E295EF70F0E0E05AFF4F0C94A7218B2D93
+:10200000807F9B2D9F70F92E882319F0F29480EF2A
+:10201000F822002389F0FF2009F475C280E2810FC5
+:10202000883020F48F2D0E94C31803C08F2D0E948A
+:10203000D3180E940A1967C2812F0E945B0FFF20EC
+:1020400009F4B4C2105E8F2D183018F40E94C9181C
+:1020500002C00E94D91826960FB6F894DEBF0FBEB4
+:10206000CDBFDF91CF911F910F91FF90EF90DF9047
+:10207000CF90BF900C940A193B2D307F8B2D8F7021
+:10208000303211F08295807F112319F0113021F147
+:102090002CC00023B9F0222309F4A0C1213009F09B
+:1020A0009DC126960FB6F894DEBF0FBECDBFDF915F
+:1020B000CF911F910F91FF90EF90DF90CF90BF9045
+:1020C0000C94F318222319F0213009F46FC28E8387
+:1020D0000E94F6188E8196C1002321F0223008F06C
+:1020E00065C27CC1211162C28DC1002321F022236F
+:1020F00009F474C108C2222309F484C119C22B2D2A
+:1021000026952695237030E02115310521F02130E8
+:102110003105D1F04BC2002321F0812F9B2D93700C
+:1021200002C080E090E026960FB6F894DEBF0FBEA6
+:10213000CDBFDF91CF911F910F91FF90EF90DF9076
+:10214000CF90BF900C948C0D002321F0812F9B2DFC
+:10215000937002C080E090E026960FB6F894DEBF40
+:102160000FBECDBFDF91CF911F910F91FF90EF90E8
+:10217000DF90CF90BF900C94A20D812F002319F017
+:102180000E94331C02C00E949B1C26960FB6F89436
+:10219000DEBF0FBECDBFDF91CF911F910F91FF909A
+:1021A000EF90DF90CF90BF900C94201D8B2D83700B
+:1021B00009F07BC00111FAC1812F82958695877045
+:1021C000880F880F912F9F70C92ED12CE12CF12CF4
+:1021D000082E04C0CC0CDD1CEE1CFF1C0A94D2F7A8
+:1021E00014FF12C04FE050E060E070E004C0440F04
+:1021F000551F661F771F8A95D2F7CB01BA016095EC
+:1022000070958095909503C060E070E0CB012B2D18
+:10221000269526952370422F50E042305105D9F083
+:102220004330510569F16C297D298E299F29413060
+:10223000510551F126960FB6F894DEBF0FBECDBF03
+:10224000DF91CF911F910F91FF90EF90DF90CF9092
+:10225000BF900C94DC166C297D298E299F29269627
+:102260000FB6F894DEBF0FBECDBFDF91CF911F91A7
+:102270000F91FF90EF90DF90CF90BF900C94F816E5
+:102280000E94DC16C701B60126960FB6F894DEBF91
+:102290000FBECDBFDF91CF911F910F91FF90EF90B7
+:1022A000DF90CF90BF900C94C016002319F08B2DB7
+:1022B000817001C08695882309F478C1812F8295A9
+:1022C00086958770880F880F912F9F70C92ED12C0B
+:1022D000E12CF12C082E04C0CC0CDD1CEE1CFF1CE4
+:1022E0000A94D2F714FF12C04FE050E060E070E0B3
+:1022F00004C0440F551F661F771F8A95D2F7CB0184
+:10230000BA01609570958095909503C060E070E08B
+:10231000CB012B2D269526952370422F50E042307D
+:102320005105D9F04330510569F16C297D298E2979
+:102330009F294130510551F126960FB6F894DEBF22
+:102340000FBECDBFDF91CF911F910F91FF90EF9006
+:10235000DF90CF90BF900C94B6176C297D298E2901
+:102360009F2926960FB6F894DEBF0FBECDBFDF9132
+:10237000CF911F910F91FF90EF90DF90CF90BF9082
+:102380000C94D2170E94B617C701B60126960FB655
+:10239000F894DEBF0FBECDBFDF91CF911F910F919B
+:1023A000FF90EF90DF90CF90BF900C949A17103F62
+:1023B000D1F118F4103E50F4A1C0123F09F463C0EB
+:1023C00008F44CC0133F09F473C098C01F708B2DE4
+:1023D0008F710023A1F00E943317812F26960FB62C
+:1023E000F894DEBF0FBECDBFDF91CF911F910F914B
+:1023F000FF90EF90DF90CF90BF900C94AA0F0E94B7
+:102400005417812F26960FB6F894DEBF0FBECDBFAE
+:10241000DF91CF911F910F91FF90EF90DF90CF90C0
+:10242000BF900C94B10F0023A9F02111BFC08B2DD8
+:102430008F7126960FB6F894DEBF0FBECDBFDF9129
+:10244000CF911F910F91FF90EF90DF90CF90BF90B1
+:102450000C947917223008F0A9C0E9CF0023A9F025
+:102460008B2D8F7126960FB6F894DEBF0FBECDBFB1
+:10247000DF91CF911F910F91FF90EF90DF90CF9060
+:10248000BF900C943317002359F38B2D8F71269630
+:102490000FB6F894DEBF0FBECDBFDF91CF911F9175
+:1024A0000F91FF90EF90DF90CF90BF900C94541756
+:1024B000002399F08B2D8F7126960FB6F894DEBF0E
+:1024C0000FBECDBFDF91CF911F910F91FF90EF9085
+:1024D000DF90CF90BF900C941E1726960FB6F894FD
+:1024E000DEBF0FBECDBFDF91CF911F910F91FF9047
+:1024F000EF90DF90CF90BF900C9414170023A9F0B9
+:10250000222309F4ADCF812F26960FB6F894DEBFB3
+:102510000FBECDBFDF91CF911F910F91FF90EF9034
+:10252000DF90CF90BF900C94930E222309F4ADCF8F
+:10253000812F26960FB6F894DEBF0FBECDBFDF9178
+:10254000CF911F910F91FF90EF90DF90CF90BF90B0
+:102550000C945B0F4B2D4F70612FC7010E9401023D
+:1025600026960FB6F894DEBF0FBECDBFDF91CF9198
+:102570001F910F91FF90EF90DF90CF90BF900C9440
+:1025800038164B2D4F70612FC70126960FB6F89461
+:10259000DEBF0FBECDBFDF91CF911F910F91FF9096
+:1025A000EF90DF90CF90BF900C940A0526960FB65F
+:1025B000F894DEBF0FBECDBFDF91CF911F910F9179
+:1025C000FF90EF90DF90CF90BF9008950E94E018A9
+:1025D0000E94F0180E94B5180E940A190E94D11D8D
+:1025E0000E94201D80E090E00E948C0D80E090E031
+:1025F0000C94A20D0E94D0180C94E6120E942E1882
+:10260000292F22952F7030E02C3031054CF42A30E0
+:1026100031056CF4225031092230310588F407C0AD
+:102620002C30310549F02F30310531F009C0803EA2
+:1026300048F0803F29F406C093FB882780F908956D
+:1026400080E0089581E00895CF93DF9300D000D01B
+:102650001F92CDB7DEB70F900F900F900F900F9095
+:10266000DF91CF910895CF93DF9300D000D000D0B9
+:10267000CDB7DEB726960FB6F894DEBF0FBECDBF3E
+:10268000DF91CF9108951F93CF93DF93C09179018C
+:1026900016E080917A01C81799F0D0E01C9FF001F4
+:1026A0001D9FF00D1124E558FE4F4081518162813C
+:1026B0007381848195810E9433132196C770E9CF7D
+:1026C000DF91CF911F9108954091AB015091AC01E2
+:1026D0006091AD017091AE018091AF019091B00118
+:1026E0000C9433138091B00182958F7009F054C01F
+:1026F0008091AD01882309F44FC080917901A091A8
+:102700007A016091AB017091AC014091AE015091A2
+:10271000AF01B6E08A1709F43FC090E041155105BA
+:10272000C1F17F3F11F46F3FA1F1B89FF001B99F54
+:10273000F00D1124E558FE4F218172132AC020812B
+:10274000621327C02281211124C0238134812417E0
+:10275000350710F421503109241B350B283C310575
+:10276000C0F42091B0012F7020612093B00126E0C9
+:10277000289FF001299FF00D1124E058FE4F808121
+:102780008F70806180838BEA91E00E94B80F0C9477
+:10279000431301968770BECF0895CF92DF92EF92D8
+:1027A000FF920F931F93CF93DF93CDB7DEB762975E
+:1027B0000FB6F894DEBF0FBECDBF8C0185E0F801E7
+:1027C000DE011D9601900D928A95E1F7D8014C919A
+:1027D00011965C91119712966C9112971396CD9069
+:1027E000DC9014973091AB017091AC018091AE01F7
+:1027F0009091AF01009709F46BC17F3F19F43F3FFF
+:1028000009F466C1E090AD01EE2009F4C0C020914A
+:10281000B001C816D90628F0F601E81BF90BCF0164
+:1028200004C0809590958C0D9D1DFF24F394883CE9
+:10283000910578F0F12C207F09F0C6C07C2DD98A53
+:10284000C88A89890E9424138BEA91E00E94B80FFC
+:10285000B1C0822F807F09F046C0751314C03413B5
+:1028600012C0611110C02F7020612093B0010E942E
+:1028700064138BEA91E00E94B80F8091B001D801F7
+:1028800015968C932EC0CD2819F15F3F11F44F3F60
+:10289000F9F0F62E61111CC08091790120917A0126
+:1028A00036E0821709F45AC090E0389FF001399F52
+:1028B000F00D1124E558FE4F7181571306C0708149
+:1028C000471303C07281711103C001968770E9CF6D
+:1028D000F62E662309F418C18091B00181608093BF
+:1028E000B001F12C11C1751308C0341306C0611179
+:1028F00004C08091B001D801C3C04D875E878D852B
+:102900009E856A8B0E94FE126A898823E1F1662304
+:10291000D1F12091B001822F82958F7090E00297C3
+:1029200074F08091AB019091AC0198878F831986E8
+:10293000DB86CA862C87CE0107960E94B80F86E0F8
+:10294000F801ABEAB1E001900D928A95E1F70E949F
+:1029500072130E946413FF24F394D6C04D875E87E0
+:102960008D859E850E942E18292F22952F7030E08C
+:10297000223031050CF0BCC09F7009F0B6C0805EFB
+:10298000883008F4C1C0C8010E94B80FE4CFC8164F
+:10299000D90608F453C0F601E81BF90BCF01883CB7
+:1029A000910508F450C0F12C7C2DD98AC88A8989F8
+:1029B0000E942413EBEAF1E086E0DF011D928A9584
+:1029C000E9F70E946413A0C0751314C0341312C039
+:1029D000611110C08091B001F8018583C8010E9487
+:1029E000B80F86E0EBEAF1E0DF011D928A95E9F786
+:1029F000FE2C8AC04D875E878D859E856A8B0E94DE
+:102A0000FE126A89882309F4BECF662309F4BBCF7E
+:102A10002091B001822F82958F7090E002970CF484
+:102A20008ECF8091AB019091AC019A8389831B82F8
+:102A3000DD82CC822E83CE0101967FCF809590954A
+:102A40008C0D9D1DACCFF62E662309F49CCF75131B
+:102A50002EC034132CC02091B00120FD1FC0822F46
+:102A600082958F70D9F0D80115962C9315978F30D9
+:102A700049F08F5F982F9295907F822F8F70892BCE
+:102A800015968C93C8010E94B80F86E0F801ABEA56
+:102A9000B1E001900D928A95E1F793CF86E0F801BD
+:102AA000ABEAB1E001900D928A95E1F72DC04D8718
+:102AB0005E878D859E850E94FE12811140CF809198
+:102AC000B00181608093B001C8010E94B80F1CC0A2
+:102AD000662309F458CF4D875E878D859E850E94B9
+:102AE000FE12882309F44FCF2ACF811148CF0CC0A2
+:102AF000243031050CF047CF9F7009F440CFF80126
+:102B00009581907F09F03BCF8F2D62960FB6F89498
+:102B1000DEBF0FBECDBFDF91CF911F910F91FF9010
+:102B2000EF90DF90CF9008951F93CF93DF93CDB7B1
+:102B3000DEB72C970FB6F894DEBF0FBECDBF4F8324
+:102B4000588769877A878B879C87CE0107960E9472
+:102B5000CD13882369F08F8198852A853B85232BA7
+:102B6000F1F19F3F09F063C08F3F09F060C037C0AB
+:102B700086E0FE013796DE01119601900D928A954E
+:102B8000E1F76F817885EA85FB85309741F17F3FDA
+:102B900011F46F3F21F120917A0130E0C9010196D3
+:102BA000877099274091790150E08417950709F4BF
+:102BB00047C069837A83FD83EC8396E0929FD001BE
+:102BC000939FB00D1124A558BE4FFE013196019080
+:102BD0000D929A95E1F780937A010E94431316E0D3
+:102BE0008091790190917A018917C1F1189FC001F4
+:102BF000112485589E4F0E94CD13882379F1E091CE
+:102C000079011E9FF0011124E558FE4F408151814A
+:102C100062817381848195810E943313809179014F
+:102C200090E001968770992780937901D9CF4F81E1
+:102C3000588569857A858B859C850E943313CFCF13
+:102C40000E94FA1210927A0110927901EBEAF1E0F7
+:102C500086E0DF011D928A95E9F7C1CF2C960FB669
+:102C6000F894DEBF0FBECDBFDF91CF911F910895C5
+:102C7000EF92FF920F931F93CF93DF938C01892BD9
+:102C800009F46CC0F12CEE24E394E8012196F801DC
+:102C90008491843740F4843008F051C0813081F051
+:102CA000823019F15BC0853709F444C0A8F19CE774
+:102CB000980F903708F052C08F770E945B0F41C089
+:102CC0000E5F1F4FFE01C49180E28C0F883048F4E4
+:102CD000C7708E2D01C0880FCA95EAF70E94E318CD
+:102CE00014C08C2F0E94930E2DC00E5F1F4FFE014B
+:102CF000C49180E28C0F883058F4C7708E2D01C0CB
+:102D0000880FCA95EAF70E94E9180E940A191AC0AA
+:102D10008C2F0E945B0F16C00E5F1F4FFE01C491E7
+:102D2000CC2381F08FE99FE00197F1F700C000000C
+:102D3000C150F6CF0E5F1F4FFE01F49003C00E94FA
+:102D4000930E8E018F2D882309F49FCFEFE9FFE0CA
+:102D50003197F1F700C000008150F5CFDF91CF919E
+:102D60001F910F91FF90EF90089508956093B50122
+:102D70007093B6018093B7019093B8010C94E6125A
+:102D80000F931F930091B5011091B6012091B701E7
+:102D90003091B801DC01CB01802B912BA22BB32BFE
+:102DA0008093B5019093B601A093B701B093B80199
+:102DB0001F910F910C94E6120F931F930091B50190
+:102DC0001091B6012091B7013091B801DC01CB011F
+:102DD00080239123A223B3238093B5019093B6015E
+:102DE000A093B701B093B8011F910F910C94E61214
+:102DF0000F931F930091B5011091B6012091B70177
+:102E00003091B801DC01CB0180279127A227B3279D
+:102E10008093B5019093B601A093B701B093B80128
+:102E20001F910F910C94E6121092B1011092B20111
+:102E30001092B3011092B4010C94E61241E050E0FC
+:102E400060E070E004C0440F551F661F771F8A952D
+:102E5000D2F74093B1015093B2016093B3017093E4
+:102E6000B4010C94E61241E050E060E070E004C070
+:102E7000440F551F661F771F8A95D2F78091B101C5
+:102E80009091B201A091B301B091B401482B592B9C
+:102E90006A2B7B2B4093B1015093B2016093B30135
+:102EA0007093B4010C94E61241E050E060E070E0F1
+:102EB00004C0440F551F661F771F8A95D2F74095AF
+:102EC0005095609570958091B1019091B201A0915B
+:102ED000B301B091B401482359236A237B23409363
+:102EE000B1015093B2016093B3017093B4010C949B
+:102EF000E61241E050E060E070E004C0440F551F6E
+:102F0000661F771F8A95D2F78091B1019091B20127
+:102F1000A091B301B091B401482759276A277B27B4
+:102F20004093B1015093B2016093B3017093B40127
+:102F30000C94E6120F931F930091B1011091B2010E
+:102F40002091B3013091B401DC01CB01802B912B96
+:102F5000A22BB32B8093B1019093B201A093B30144
+:102F6000B093B4011F910F910C94E6120F931F932D
+:102F70000091B1011091B2012091B3013091B401DF
+:102F8000DC01CB0180239123A223B3238093B101E1
+:102F90009093B201A093B301B093B4011F910F912C
+:102FA0000C94E6120F931F930091B1011091B2019E
+:102FB0002091B3013091B401DC01CB01802791272E
+:102FC000A227B3278093B1019093B201A093B301DC
+:102FD000B093B4011F910F910C94E6120895CF9213
+:102FE000DF92EF92FF920F931F93CF93DF938C01A9
+:102FF000C090B501D090B601E090B701F090B80153
+:103000008091B1019091B201A091B301B091B4014E
+:10301000C82AD92AEA2AFB2ACFE1D0E0D701C60183
+:103020000C2E04C0B695A795979587950A94D2F76C
+:1030300080FF06C0B8018C2F0E942D05019721F456
+:10304000219760F780E001C08C2FDF91CF911F9115
+:103050000F91FF90EF90DF90CF900895CF93DF9383
+:10306000EC010E94EF17BE010E942D05DF91CF9168
+:103070000895CB010E942E18089590910C01992378
+:1030800021F090910D01911109C020910E01309114
+:103090000F01F90132969FEF40E01FC0982F9695DF
+:1030A000969596959F3050F5E0910E01F0910F01A5
+:1030B000E90FF11D877021E030E0A90102C0440F43
+:1030C000551F8A95E2F7CA019181892B8183089562
+:1030D0009F3F39F04F5F4E3041F051915813F8CF78
+:1030E0000DC05111F7CF942FF5CF9F3F39F0F90163
+:1030F000E90FF11D97FDFA95828308950895909147
+:103100000C01992321F090910D01911109C020919A
+:103110000E0130910F01F9013296205F3F4F1FC021
+:10312000982F9695969596959F30F0F4E0910E0124
+:10313000F0910F01E90FF11D877021E030E0A90146
+:1031400002C0440F551F8A95E2F7CA01809591810C
+:103150008923818308953196E217F30729F090813E
+:103160009813F9CF1082F7CF089581E090E0E091B5
+:103170000E01F0910F01E80FF91F108201968031C6
+:103180009105A9F708959091CC01892B8093CC01EA
+:10319000089580959091CC0189238093CC01089566
+:1031A0001092CC0108959091CB01892B8093CB0193
+:1031B000089580959091CB0189238093CB01089548
+:1031C0001092CB0108959091CA01892B8093CA0176
+:1031D000089580959091CA0189238093CA0108952A
+:1031E0001092CA0108958093B90108951092B9010F
+:1031F000089580910E0190910F01FC0131969C0180
+:10320000205F3F4F80E0919191118F5FE217F307AC
+:10321000D1F70895E0910E01F0910F018091CC015A
+:103220008083E0910E01F0910F0190818091CB019C
+:10323000892B8083E0910E01F0910F0190818091A4
+:10324000CA01892B80838091B901882361F0E091C4
+:103250000E01F0910F019081892B80830E94F91853
+:1032600081111092B90180910E0190910F010C947F
+:10327000760D8091E601843021F11092CE0120E498
+:1032800088E190E00FB6F894A895809360000FBE97
+:103290002093600080E00E94630683B7817F846092
+:1032A00083BF83B7816083BF7894889583B78E7F0F
+:1032B00083BF88E10FB6F89480936000109260009D
+:1032C0000FBE089508950895CF930E9462190E9439
+:1032D00056030E946319C0E08C2F0E9444048111A0
+:1032E00004C0CF5FCE30C1F701C081E0CF91089517
+:1032F0000E94FA120E946A0D0C94630682E084BD5B
+:1033000093E095BD9AEF97BD80936E0008952FB717
+:10331000F8948091CF019091D001A091D101B0910A
+:10332000D2012FBF0895CF92DF92EF92FF920F93B9
+:103330001F932FB7F8944091CF015091D001609125
+:10334000D1017091D2012FBF6A017B01EE24FF24CD
+:103350008C0120E030E0C016D106E206F30610F43E
+:10336000415051099A01281B390BC9011F910F9136
+:10337000FF90EF90DF90CF9008951F920F920FB6BD
+:103380000F9211248F939F93AF93BF938091CF019E
+:103390009091D001A091D101B091D2010196A11DCF
+:1033A000B11D8093CF019093D001A093D101B09330
+:1033B000D201BF91AF919F918F910F900FBE0F904F
+:1033C0001F9018950E94670AF8942FEF87EA91E6FC
+:1033D000215080409040E1F700C0000087E090EB72
+:1033E000DC018093EF019093F001A093F101B09381
+:1033F000F2019CE088E10FB6F894A89580936000F4
+:103400000FBE90936000FFCFEF92FF920F931F9338
+:10341000CF93DF93D82FC0E08C2F0E94440400E0AC
+:1034200010E0E82EF12CC701002E02C0959587957B
+:103430000A94E2F780FD06C00F5F1F4F06301105AA
+:1034400091F709C0602F7C2F80E00E940B05D813F4
+:10345000F3CF81E004C0CF5FCE30F1F680E0DF91A2
+:10346000CF911F910F91FF90EF900895CF93C82FA8
+:103470008CE20E94041A882321F08C2FCF910C94A7
+:10348000041A80E0CF910895CF930E948B1B811185
+:1034900002C00E94711BC5E6C15049F00E9456034C
+:1034A0008FE39CE90197F1F700C00000F5CF89E2B6
+:1034B0000E94361A811113C18AE20E94361A8111C4
+:1034C0000E94711B85E00E94361A81110E94E21948
+:1034D0000E94961B8093CD0187E00E94361A8823B4
+:1034E000A9F18BE10E94361A882351F08091CD0119
+:1034F00081FB222720F991E0922790FB81F90EC0F1
+:103500008EE00E94361A882361F08091CD0182FB03
+:10351000222720F991E0922790FB82F98093CD0138
+:1035200015C080E10E94361A9091CD01882341F0A8
+:1035300093FB222720F981E0822780FB93F904C0C6
+:10354000892F809580FB90F99093CD018091CD01DA
+:103550000E949A1B0E94A81B8093E00180EE0E94AB
+:10356000361A882341F08091E001982F909590FBC6
+:1035700080F98093E00189E30E94361A882359F08C
+:103580008091E00181FB222720F991E0922790FBB6
+:1035900081F98093E00182EE0E94361A882359F067
+:1035A0008091E00182FB222720F991E0922790FB95
+:1035B00082F98093E00186EE0E94361A882359F042
+:1035C0008091E00183FB222720F991E0922790FB74
+:1035D00083F98093E00183EE0E94361A882359F024
+:1035E0008091E00184FB222720F991E0922790FB53
+:1035F00084F98093E00185E30E94361A882359F00C
+:103600008091E00185FB222720F991E0922790FB31
+:1036100085F98093E00181E30E94361A882359F0EE
+:103620008091E00186FB222720F991E0922790FB10
+:1036300086F98093E00181E10E94361A882359F0CF
+:103640008091E00187FB222720F991E0922790FBEF
+:1036500087F98093E0018091E0010E94AC1B80918A
+:10366000E00187FB882780F980930D0187E20E94A3
+:10367000361AC82F8EE10E94361A8111C2608FE17E
+:103680000E94361A8111C46080E20E94361A8111AC
+:10369000C86081E20E94361A8111C06182E20E94F4
+:1036A000361A8111C06283E20E94361A8111C06409
+:1036B00084E20E94361A882311F0C06802C0CC232D
+:1036C00029F08C2F0E94A31B6C2F03C00E949F1B0C
+:1036D000682F70E080E090E0CF910C94B616CF9107
+:1036E00008956DEE7EEF80E090E00E94DD2160E0C5
+:1036F00082E090E00E94CF2160E083E090E00E94B1
+:10370000CF2160E084E090E00E94CF2160E085E07E
+:1037100090E00C94CF2180E090E00E94C92121E04C
+:103720008D3E9E4F09F020E0822F089582E090E0C8
+:103730000C94C121682F82E090E00C94CF2183E0AB
+:1037400090E00C94C121682F83E090E00C94CF218D
+:1037500084E090E00C94C121682F84E090E00C9408
+:10376000CF218091D50180FF0BC06091130185E0CE
+:10377000689FB001112475956795759567952BC065
+:1037800081FF09C06091130185E0689FB001112499
+:103790007595679520C082FF07C06091130185E091
+:1037A000689FB001112417C09091D6019923D1F0E0
+:1037B00060911201961788F72091130185E0289FE8
+:1037C00090011124929FA001939F500D112470E04D
+:1037D000CA010E9493216038710540F4611571059A
+:1037E00039F002C065E070E0862F08958FE70895F4
+:1037F00081E008958091D50180FF08C0609111019A
+:1038000070E0759567957595679521C081FF06C035
+:103810006091110170E07595679519C082FF04C031
+:103820006091110170E010C09091D6019923C1F010
+:10383000609110019617A0F780911101899FC00136
+:10384000112470E00E9493216038710528F46115FD
+:10385000710521F0862F08958FE7089581E008957E
+:1038600061E070E0F4CF803F21F40E94B11B8195AC
+:1038700004C0813F29F40E94B11B8093D9010895AF
+:10388000823F21F40E94B11B819504C0833F29F43B
+:103890000E94B11B8093D8010895893F19F40E94BA
+:1038A000FA1B05C08A3F31F40E94FA1B8195809370
+:1038B000DA0108958B3F21F40E94FA1B819504C020
+:1038C0008C3F29F40E94FA1B8093DB010895843F0A
+:1038D00021F48091D701816017C0853F21F4809148
+:1038E000D701826011C0863F21F48091D7018460A6
+:1038F0000BC0873F21F48091D701886005C0883FC5
+:1039000031F48091D70180618093D70108958D3F74
+:1039100021F48091D50181600BC08E3F21F480910C
+:10392000D501826005C08F3F29F48091D501846064
+:103930008093D5010895803F39F48091D90187FFA4
+:103940006CC01092D90169C0813F29F48091D901DE
+:103950001816BCF362C09091D801823F29F497FFFA
+:103960005CC01092D80159C0833F19F41916CCF3EA
+:1039700054C0893F41F48091DA0118160CF04DC013
+:103980001092DA014AC08A3F29F48091DA0187FF58
+:1039900044C0F6CF8B3F39F48091DB0187FF3DC0F7
+:1039A0001092DB013AC08C3F29F48091DB0118169C
+:1039B000BCF333C0843F21F48091D7018E7F17C0C0
+:1039C000853F21F48091D7018D7F11C0863F21F47E
+:1039D0008091D7018B7F0BC0873F21F48091D70165
+:1039E000877F05C0883F31F48091D7018F7E809317
+:1039F000D70113C08D3F21F48091D5018E7F0BC07C
+:103A00008E3F21F48091D5018D7F05C08F3F29F431
+:103A10008091D5018B7F8093D5018091D801811150
+:103A20000EC08091D90181110AC08091DA01811103
+:103A300006C08091DB01811102C01092D601089569
+:103A400087ED91E00E94810D0E9487199093D40127
+:103A50008093D30108951F93CF93DF938091D30177
+:103A60009091D4010E949319AC019091D6019923B1
+:103A700021F02091140130E006C0209115018AE068
+:103A8000289F900111244217530708F486C08091A3
+:103A9000D801C091D901D091DA011091DB018111D7
+:103AA00007C0C11176C0D11174C0111172C075C0A8
+:103AB0009F3F19F09F5F9093D601181624F40E943F
+:103AC000B11B8093D8018091D80187FF05C00E9467
+:103AD000B11B81958093D8011C1624F40E94B11B60
+:103AE0008093D9018091D90187FF05C00E94B11B45
+:103AF00081958093D9016091D801662339F1C091F5
+:103B0000D901CC2319F1772767FD7095872F972F5F
+:103B10000E94A42023E333E343E35FE30E940821F0
+:103B20000E9471206093D8016C2F772767FD7095F4
+:103B3000872F972F0E94A42023E333E343E35FE31F
+:103B40000E9408210E9471206093D9011D1624F45F
+:103B50000E94FA1B8093DA018091DA0187FF05C089
+:103B60000E94FA1B81958093DA01111624F40E94B9
+:103B7000FA1B8093DB018091DB0187FF05C00E9467
+:103B8000FA1B81958093DB01DF91CF911F910C94FB
+:103B9000201D9F3F09F08ECF96CFDF91CF911F91CF
+:103BA0000895E7EDF1E085E0DF011D928A95E9F7E0
+:103BB0001092D6011092D5010895833081F128F436
+:103BC000813059F08230D1F00895853009F449C030
+:103BD000B8F1863009F456C0089580911501262F5A
+:103BE00030E0280F311D2F3F310524F4680F60931A
+:103BF000150108958FEF80931501089580911401A8
+:103C0000262F30E0280F311D2F3F310524F4680F97
+:103C10006093140108958FEF8093140108958091AB
+:103C20001301262F30E0280F311D2F3F310524F4DA
+:103C3000680F6093130108958FEF80931301089527
+:103C400080911201262F30E0280F311D2F3F3105C2
+:103C500024F4680F6093120108958FEF809312018E
+:103C6000089580911101262F30E0280F311D2F3F3C
+:103C7000310524F4680F6093110108958FEF80934C
+:103C80001101089580911001262F30E0280F311D79
+:103C90002F3F310524F4680F6093100108958FEFD2
+:103CA000809310010895833011F128F4813049F098
+:103CB000823091F00895853081F120F18630C1F194
+:103CC000089580911501681720F4861B80931501D3
+:103CD000089510921501089580911401681720F439
+:103CE000861B809314010895109214010895809109
+:103CF0001301681720F4861B809313010895109216
+:103D00001301089580911201681720F4861B809397
+:103D100012010895109212010895809111016817FF
+:103D200020F4861B809311010895109211010895CB
+:103D300080911001681720F4861B8093100108956C
+:103D40001092100108950F931F938D3109F46AC0EA
+:103D500008F03FC08E3009F484C0C0F4873009F405
+:103D60006DC068F4863009F0B5C08091CD01817FC7
+:103D70008E7F8093CD0181E08093DD01ACC08830DF
+:103D800009F457C08B3009F46AC0A4C0863109F425
+:103D900066C078F4803109F477C0813109F09AC0A7
+:103DA0000E94FA1290910D0181E0892780930D0104
+:103DB00056C0893109F453C08B3109F08BC0809112
+:103DC000CD0181FB222720F991E0922790FB81F918
+:103DD00051C0853309F475C048F4873209F471C0C5
+:103DE00008F45EC0893209F46CC074C0833430F4C6
+:103DF0008A3308F053C0883391F16CC0833409F4DE
+:103E000060C0883409F066C00E94FA120FEF13ED0B
+:103E100020E3015010402040E1F700C000000E9464
+:103E2000E2191DC00E942B200E946A0D0E946306A9
+:103E300016C00E94961B0E94A81B11C09091CD0134
+:103E4000892F8095817080FB90F929F096609860A9
+:103E50009093CD0140C0997F977F9093CD0181E0F1
+:103E60003AC08091CD0182FB222720F991E0922770
+:103E700090FB82F98093CD01992389F38091CD0144
+:103E800081608093CD01EBCF8091CD0183FB222710
+:103E900020F991E0922790FB83F9ECCF895301C080
+:103EA0008D5141E050E060E070E08A019B0104C068
+:103EB000000F111F221F331F8A95D2F7C901B801C5
+:103EC00004C061E070E080E090E00E94B6160E94BD
+:103ED000FA12C5CF80E01F910F91089580E00895F8
+:103EE00080E00895CF93C82F8091DD01813079F073
+:103EF00018F08230E9F187C0E0910E01F0910F01D6
+:103F00008081813169F0823209F07FC009C0E0917F
+:103F10000E01F0910F018081813111F0823261F444
+:103F20008C2F0E946E1F811104C08C2F0E94A31E33
+:103F30001DC081E090E01AC08C2F0E94701F81117B
+:103F400014C0C43179F048F4CB3079F0C03109F0B5
+:103F500060C082E08093DD0108C0C93219F0C83327
+:103F600021F057C01092DD0154C081E0817053C030
+:103F7000C93289F118F5C43171F1A8F4C73009F0DC
+:103F800046C08AE08093150194E19093140193E078
+:103F9000909313018093120188E08093110188E2CD
+:103FA0008093100134C0CE51C63088F5EC2FF0E07C
+:103FB000E65DFE4F80818093DC0129C0CE34E9F0BC
+:103FC00020F4CB3421F56AE013C0C13579F0C23555
+:103FD000F1F461E00DC08091DC01882319F01092AA
+:103FE000DC0115C081E08093DD0115C061E006C0F1
+:103FF0008091DC010E94DD1D0AC06AE08091DC0135
+:104000000E94531E04C01092DD0180E004C081E0D4
+:1040100002C080E0ABCFCF910895E1E8F0E080816D
+:10402000886080838081816080838FB7F89493E07B
+:104030009093890090ED909388008FBF0895EFE6EC
+:10404000F0E08081826080830895EFE6F0E0808177
+:104050008D7F80830895EFE6F0E0908182E08927EC
+:10406000808308951F920F920FB60F9211242F9301
+:104070003F934F935F936F937F938F939F93AF93F0
+:10408000BF93EF93FF938091DE019091DF01019642
+:104090009093DF018093DE01811103C082E00E94D2
+:1040A0006306E091DF01E695E695F0E0EA5CFC4FFF
+:1040B000E4918091DE018E1303C080E00E946306CC
+:1040C000FF91EF91BF91AF919F918F917F916F91F0
+:1040D0005F914F913F912F910F900FBE0F901F90C6
+:1040E000189504D06894B1118DC0089570D088F0EF
+:1040F0009F5790F0B92F9927B751A0F0D1F0660FD4
+:10410000771F881F991F1AF0BA95C9F712C0B130EE
+:1041100081F077D0B1E0089574C0672F782F882799
+:10412000B85F39F0B93FCCF3869577956795B3952D
+:10413000D9F73EF490958095709561957F4F8F4F9C
+:104140009F4F0895E89409C097FB3EF490958095A1
+:10415000709561957F4F8F4F9F4F9923A9F0F92F4D
+:1041600096E9BB279395F695879577956795B795CB
+:10417000F111F8CFFAF4BB0F11F460FF1BC06F5FB1
+:104180007F4F8F4F9F4F16C0882311F096E911C0C3
+:10419000772321F09EE8872F762F05C0662371F0E4
+:1041A00096E8862F70E060E02AF09A95660F771FF8
+:1041B000881FDAF7880F9695879597F9089557FD28
+:1041C0009058440F551F59F05F3F71F04795880F85
+:1041D00097FB991F61F09F3F79F08795089512161C
+:1041E00013061406551FF2CF4695F1DF08C01616C8
+:1041F00017061806991FF1CF869571056105089479
+:104200000895E894BB2766277727CB0197F908958F
+:104210000BD078C069D028F06ED018F0952309F043
+:104220005AC05FC01124EECFCADFA0F3959FD1F32F
+:10423000950F50E0551F629FF001729FBB27F00D54
+:10424000B11D639FAA27F00DB11DAA1F649F6627A9
+:10425000B00DA11D661F829F2227B00DA11D621FF8
+:10426000739FB00DA11D621F839FA00D611D221FB2
+:10427000749F3327A00D611D231F849F600D211D96
+:10428000822F762F6A2F11249F5750408AF0E1F039
+:1042900088234AF0EE0FFF1FBB1F661F771F881F82
+:1042A00091505040A9F79E3F510570F014C0AACF1D
+:1042B0005F3FECF3983EDCF3869577956795B7956D
+:1042C000F795E7959F5FC1F7FE2B880F911D969597
+:1042D000879597F9089597F99F6780E870E060E007
+:1042E00008959FEF80EC089500240A94161617068F
+:1042F00018060906089500240A94121613061406D7
+:1043000005060895092E0394000C11F4882352F039
+:10431000BB0F40F4BF2B11F460FF04C06F5F7F4FF1
+:104320008F4F9F4F089597FB072E16F4009407D0E8
+:1043300077FD09D00E94AD2107FC05D03EF4909591
+:1043400081959F4F0895709561957F4F0895EE0F69
+:10435000FF1F0590F491E02D0994AA1BBB1B51E1AE
+:1043600007C0AA1FBB1FA617B70710F0A61BB70BE5
+:10437000881F991F5A95A9F780959095BC01CD018A
+:104380000895F999FECF92BD81BDF89A992780B51D
+:104390000895A8E1B0E042E050E00C94E421262F1B
+:1043A000F999FECF1FBA92BD81BD20BD0FB6F8941A
+:1043B000FA9AF99A0FBE019608950E94CF21272FED
+:1043C0000C94D021DC01CB01FC01F999FECF06C091
+:1043D000F2BDE1BDF89A319600B40D9241505040C3
+:0843E000B8F70895F894FFCF2F
+:1043E80020026506F306D0069C0668060101BA019C
+:1043F80028080A03140A3F4D3639F702AA02740244
+:104408003B02CE01E701000219020102030405067E
+:044418000708090088
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png Binary files differnew file mode 100644 index 0000000000..4b9433be28 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c new file mode 100644 index 0000000000..dd946c1823 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -0,0 +1,73 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define QWRT 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ TG(QWRT), KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ), + [QWRT] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case QWRT: + ergodox_right_led_1_on(); + break; + default: + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md new file mode 100644 index 0000000000..0e78c130b3 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md @@ -0,0 +1,34 @@ +# Roman's Layout + +There are two layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **QWRT** is QWERTY. + +[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) + +## Switching + +- Tap `QWRT` to toggle **QWRT**. + +## LEDs + +- Red: QWRT is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +Both CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex new file mode 100644 index 0000000000..80ae0751b1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex @@ -0,0 +1,1139 @@ +:100000000C940F020C9453020C9453020C94530260
+:100010000C9453020C9453020C9453020C9453020C
+:100020000C9453020C9453020C94070C0C94D90CAE
+:100030000C9453020C9453020C9453020C945302EC
+:100040000C9453020C94A3210C9453020C9453026D
+:100050000C9453020C94321B0C9453020C945302D4
+:100060000C9453020C9453020C9453020C945302BC
+:100070000C9453020C9453020C9453020C945302AC
+:100080000C9453020C9453020C9453020C9453029C
+:100090000C9453020C9453020C9453020C9453028C
+:1000A0000C9453020C9453020C945302460D680DA9
+:1000B000560E680D560EAD0DD00D560E250E380E8F
+:1000C0002411241161116111A411E211FB13FB131E
+:1000D000FB11FB13FC12FC12CF13FB13FB13E613F3
+:1000E00035002B00E000E1003A0000001E00140083
+:1000F00004001D003B00E2001F001A0016001B0058
+:100100003C00297120000700080006003D002A007D
+:100110002100090017001900E300A90022000E00C9
+:100120000A0005000000AA003E00310000002F0078
+:100130000000A8003F000154000030000000AE00A5
+:1001400023000D001C0013000000AB002400180069
+:1001500011001000E700AC00250015000C0036006F
+:1001600050002C0026000F00120037005100340010
+:10017000270033000B0038005200E6002E002D004F
+:100180002800E5004F00000001000100010001000F
+:100190000100000001000100010001000100010058
+:1001A0000100010001000100010001000100080040
+:1001B0000700010001000100010015000900010015
+:1001C0000100010001001700010001000000010012
+:1001D0000100010000000100000001000100010019
+:1001E000000001000000010001001C000B001100D4
+:1001F00000000100010018000D00010001000100D5
+:1002000001000C000E0001000100010001001200BD
+:100210000F00010001000100010013003300010084
+:1002200001000100010001000100010001000000C7
+:1002300016034500720067006F0044006F007800ED
+:10024000200045005A0000001603450072006700B8
+:100250006F0044006F007800200045005A00000045
+:100260000403090409026D00040100A0FA09040056
+:10027000000103010100092111010001223F0007D3
+:1002800005810308000A09040100010301020009B5
+:100290002111010001224D000705820308000A090F
+:1002A00004020001030000000921110100012236AF
+:1002B000000705830308000A090403000103000086
+:1002C00000092111010001223900070584031000F3
+:1002D000011201100100000008EDFE0713010001EA
+:1002E00002000105010906A101050719E029E7152A
+:1002F0000025019508750181020508190129059558
+:1003000005750191029501750391010507190029F1
+:100310007715002501957875018102C005010980D6
+:10032000A101850216010026B7001A01002AB700B4
+:10033000751095018100C0050C0901A10185031606
+:100340000100269C021A01002A9C02751095018169
+:1003500000C005010902A1010901A1000509190157
+:100360002905150025019505750181029501750383
+:1003700081010501093009311581257F9502750834
+:10038000810609381581257F950175088106050CC0
+:100390000A38021581257F950175088106C0C005C0
+:1003A000010906A101050719E029E71500250195B6
+:1003B0000875018102950175088101050819012957
+:1003C00005950575019102950175039101050719C0
+:1003D0000029FF150025FF950675088100C0000063
+:1003E000000000000000000000010204060A0F17D0
+:1003F000202C3A4A5D71879DB3C7DAE9F5FCFFFC12
+:10040000F5E9DAC7B39D87715D4A3A2C20170F0AC8
+:10041000060402010000000000000000000011249A
+:100420001FBECFEFDAE0DEBFCDBF04B603FE24C0AF
+:100430008091EE019091EF01A091F001B091F10156
+:100440008730904BA740B04BB9F41092EE01109258
+:10045000EF011092F0011092F10114BE84B7877F72
+:1004600084BF88E10FB6F89480936000109260001A
+:100470000FBEE0E0FFE3099511E0A0E0B1E0E4ED9C
+:10048000F6E402C005900D92A433B107D9F711E04C
+:10049000A4E3B1E001C01D92AE3EB107E1F70E94B6
+:1004A0004B090C9468230C94000008950895609102
+:1004B000B1017091B2018091B3019091B4010E9499
+:1004C0005E1A56985E9825982D9826982E9827980B
+:1004D0002F98813011F4259A2D9A08950C94570283
+:1004E00056985E9825982D9826982E9827982F989C
+:1004F0008FEF90E0909389008093880090938B0019
+:1005000080938A0090938D0080938C00259A2D9A79
+:100510002FEF80E792E0215080409040E1F700C04B
+:100520000000269A2E9A2FEF80E792E0215080401B
+:100530009040E1F700C00000279A2F9A2FEF80E744
+:1005400092E0215080409040E1F700C000002598E3
+:100550002D982FEF80E792E0215080409040E1F706
+:1005600000C0000026982E982FEF80E792E02150DF
+:1005700080409040E1F700C0000027982F985698DF
+:100580005E9825982D9826982E9827982F9808954C
+:1005900089EA8093800089E08093810024982C98D8
+:1005A0003F988AB18F748AB96E98479A8BB1806BE5
+:1005B0008BB9769A0E9470020C94560280E2809366
+:1005C00000018091340181110EC00E942D0381E051
+:1005D000809334012FEF83ED90E3215080409040D1
+:1005E000E1F700C0000080E40E9433038093000123
+:1005F00081112EC00E945D0380930001811128C0EB
+:100600000E945D0380930001811122C08FE30E944C
+:100610005D038093000181111BC00E94550380E49B
+:100620000E94330380930001811112C08CE00E946C
+:100630005D038093000181110BC00E945D038093D4
+:100640000001811105C08FE30E945D0380930001CA
+:100650000E9455038091000108951092B9008AE02C
+:100660008093B800089594EA9093BC009091BC00E8
+:1006700097FFFCCF9091B900987F983021F090318E
+:1006800011F081E008958093BB0084E88093BC0062
+:100690008091BC0087FFFCCF8091B900887F8831B2
+:1006A00011F0803471F780E0089584E98093BC00F4
+:1006B0008091BC0084FDFCCF08958093BB0084E84A
+:1006C0008093BC008091BC0087FFFCCF9091B90063
+:1006D000987F81E0983209F480E0089584E880935F
+:1006E000BC008091BC0087FFFCCF8091BB000895C7
+:1006F00080910001811115C080E40E943303809332
+:10070000000181110CC082E10E945D038093000111
+:10071000811105C08FEF0E945D03809300010E944C
+:10072000550384B1807F84B985B1807F85B98AB152
+:10073000837F8AB98BB1837F8BB93E9846980895A1
+:100740000E94DE02809300010E94780380B38C70C7
+:1007500080BB81B3836F81BBA6E3B1E0E4E4F1E049
+:100760008EE08E0F11921D928E13FCCF0C94C80256
+:10077000BF92CF92DF92EF92FF920F931F93CF938E
+:10078000DF9380910001882379F0809135018F5F9C
+:1007900080933501811108C00E94DE028093000120
+:1007A000811102C00E94700206E311E0C0E0D0E0B7
+:1007B000DD24D39482E0C82EEE24E394F12CC730DC
+:1007C000D10500F580910001811164C080E40E9490
+:1007D000330380930001811112C082E10E945D0306
+:1007E0008093000181110BC0C7010C2E01C0880F3E
+:1007F0000A94EAF780950E945D03809300010E94AD
+:10080000550348C0CA30A1F028F4C83059F0C930A7
+:1008100061F005C0CC3089F070F0CD3089F0209ABD
+:10082000289810C0219A29980DC0229A2A980AC0A7
+:10083000239A2B9807C0529A01C0539A5B9802C022
+:100840003E9A469890EA9A95F1F79FB1799902C03D
+:1008500082E001C080E091709D25982B7C9902C0B8
+:1008600084E001C080E0892B7D9902C038E001C09E
+:1008700030E0832B7E9902C020E101C020E0822B72
+:100880009FB19095991F9927991F9295990F907EE6
+:10089000892B0FC080910001811149C080E40E9422
+:1008A000330380930001882379F1B12C0E94550312
+:1008B0008B2DF8019081981719F08083C092010167
+:1008C0000E94780321960F5F1F4FCE30D10509F0AB
+:1008D00076CF80910101882361F1815080930101DD
+:1008E000882339F08FE99FE00197F1F700C00000FD
+:1008F00020C0A4E4B1E0E6E3F1E0CF01825F919192
+:100900009D938E13FCCF15C083E10E945D038093FD
+:1009100000018111CACF81E40E943303809300015A
+:100920008111C3CF0E946E03B82EB094BFCF80E078
+:10093000C0CF0E946E0281E0DF91CF911F910F9195
+:10094000FF90EF90DF90CF90BF900895E82FF0E0F8
+:10095000EC5BFE4F808108950895089596E0799F9D
+:10096000F001112494E5899FE00DF11D1124E60F9B
+:10097000F11DEE0FFF1FE052FF4F859194910895F6
+:10098000880F991FFC01E05AF040859194910895D9
+:10099000880F991FFC01E052FF4F859194910895B3
+:1009A0000F931F93CF93DF93EC018115904350F584
+:1009B000C11580E2D80708F0B3C0CB3BD10590F455
+:1009C000C83AD10508F05AC0C53AD10508F04BC065
+:1009D000C430D10508F0BBC1219709F0B5C101E0D1
+:1009E00010E0F5C1CF3FD10511F008F0B0C1C03F14
+:1009F000D10508F092C0CE01805E9109089708F4F5
+:100A0000A6C1A2C1C11591E5D907A8F4C23020E55D
+:100A1000D20708F09EC0C11580E5D80709F485C04B
+:100A200008F091C0C11520E4D20708F08DC1DD2780
+:100A30008E01106CCCC1C11580E8D80758F4C115DF
+:100A400090E7D90708F07CC1C11520E6D20708F469
+:100A500022C17AC1C11580E9D80708F075C1DF70DD
+:100A60008E01106AB4C1C53AD10509F472C1C63A03
+:100A7000D10509F071C102E810E4A9C1C83AD10555
+:100A800009F46DC1C93AD10509F46CC1CA3AD1055E
+:100A900009F46BC1CB3AD10509F46AC1CC3AD1054E
+:100AA00009F469C1CD3AD10509F468C1C03BD1054B
+:100AB00009F467C1CE3AD10509F466C1CF3AD10530
+:100AC00009F465C1C13BD10509F464C1C23BD1053C
+:100AD00009F463C1C33BD10509F462C1C43BD1052C
+:100AE00009F461C1C53BD10509F460C1C63BD1051C
+:100AF00009F45FC1C73BD10509F45EC1C83BD1050C
+:100B000009F45DC1C93BD10509F45CC1CA3BD105FB
+:100B100009F45BC100E014E45AC18E01106557C1AD
+:100B2000CE019F700E94C80453C10E941F149FEF02
+:100B300024E38CE0915020408040E1F700C00000A9
+:100B40000E94571B44C18091CD0181608093CD01EB
+:100B50003EC10E94001D811102C00E94E61C0E943D
+:100B60001D1D90E09093EE018093ED01C23090E561
+:100B7000D90721F48091ED01816086C0C43020E561
+:100B8000D20721F48091ED0182607EC0C63080E5FD
+:100B9000D80721F48091ED01846076C0C83090E5DB
+:100BA000D90719F48091ED0127C0CA3020E5D2079A
+:100BB00021F48091ED01806167C0CC3080E5D807D9
+:100BC00021F48091ED0180625FC0CE3090E5D907BD
+:100BD00021F48091ED01806457C0C03120E5D20737
+:100BE00021F48091ED0180684FC0C23180E5D807C3
+:100BF00029F48091ED018460886046C0C33090E59F
+:100C0000D90721F48091ED018E7F3EC0C53020E5EB
+:100C1000D20721F48091ED018D7F36C0C73080E589
+:100C2000D80721F48091ED018B7F2EC0C93090E56B
+:100C3000D90719F48091ED0126C0CB3020E5D20709
+:100C400021F48091ED018F7E1FC0CD3080E5D80763
+:100C500021F48091ED018F7D17C0CF3090E5D90749
+:100C600021F48091ED018F7B0FC0C13120E5D207C7
+:100C700021F48091ED018F7707C0C331D04531F465
+:100C80008091ED018B7F877F8093ED018091ED0155
+:100C90000E94211D9CC08D2F99278F70992781302C
+:100CA0009105D9F49E012370332702C0880F991F44
+:100CB0002A95E2F79C688E0144E0000F111F4A95C7
+:100CC000E1F700271370802B912B53E0CC0FDD1F31
+:100CD0005A95E1F7C076DD272FC08230910531F4B7
+:100CE000DC2FCC278E01016F106A71C08330910513
+:100CF00069F4CE018370992701E010E002C0000F73
+:100D0000111F8A95E2F7C8019C680FC0049709F08B
+:100D10005EC0CE018370992701E010E002C0000F91
+:100D2000111F8A95E2F7C8019A6823E0CC0FDD1FF6
+:100D30002A95E1F7C07ED7708C010C2B1D2B47C084
+:100D4000DF708E01106243C000E010E040C08E01F1
+:100D50003EC001E810E43BC003E810E438C002EEF6
+:100D600014E435C009EE14E432C00AEE14E42FC0D6
+:100D700005EB14E42CC006EB14E429C007EB14E4E3
+:100D800026C00CEC14E423C00DEC14E420C003E8EE
+:100D900015E41DC00AE815E41AC002E915E417C0FD
+:100DA00004E915E414C001E216E411C003E216E4FC
+:100DB0000EC004E216E40BC005E216E408C006E229
+:100DC00016E405C007E216E402C00AE216E4C80110
+:100DD000DF91CF911F910F91089596E0799FF001D7
+:100DE000112494E5899FE00DF11D1124E60FF11DFA
+:100DF000EE0FFF1FE052FF4F85919491803E9105C9
+:100E0000E0F4803C910558F58133910509F46FC0F9
+:100E100048F48932910509F463C08A32910509F4D6
+:100E20006DC072C089339105E9F082389105D1F027
+:100E30008533910509F44DC067C0833E910581F16A
+:100E400038F4803E9105B9F0823E9105D9F05CC03E
+:100E5000863E910561F1873E9105A1F155C00E9442
+:100E6000C00408952091ED0120FD02C021FF4CC077
+:100E700080EE90E049C08091ED0180FFF9CF89E3D9
+:100E800090E042C08091ED0182FF0EC08091ED01A3
+:100E900084FF03C080E090E037C083EE90E034C070
+:100EA0008091ED0182FFF2CF82EE90E02DC0809123
+:100EB000ED0183FF0BC08091ED0184FDEBCF87EE48
+:100EC00090E022C08091ED0183FFF5CF86EE90E0A7
+:100ED0001BC08091ED0185FF07C089E290E014C03E
+:100EE0008091ED0185FFF9CF85E390E00DC0809101
+:100EF000ED0186FF07C08AE290E006C08091ED0117
+:100F000086FFF9CF81E390E00E94D0040895089510
+:100F10000C948707809162010895CF93DF9300D0EE
+:100F20001F92CDB7DEB79C018091E401843019F5A2
+:100F300093E099833B832A839093E9008FEF90910C
+:100F4000E800815095FD06C095ED9A95F1F70000F7
+:100F50008111F5CF8091E80085FF0DC040E050E0A1
+:100F600063E070E0CE0101960E94F7098091E800ED
+:100F70008E778093E8000F900F900F90DF91CF91C4
+:100F80000895CF93DF9300D01F92CDB7DEB72091A5
+:100F9000E401243021F522E029839B838A8383E0C6
+:100FA0008093E9008FEF9091E800815095FD06C095
+:100FB00095ED9A95F1F700008111F5CF8091E80049
+:100FC00085FF0DC040E050E063E070E0CE01019687
+:100FD0000E94F7098091E8008E778093E8000F90D7
+:100FE0000F900F90DF91CF9108952091E40124306C
+:100FF000F1F422E02093E9002FEF3091E800215036
+:1010000035FD06C035ED3A95F1F700002111F5CF19
+:101010002091E80025FF0BC040E050E065E070E063
+:101020000E94F7098091E8008E778093E800089588
+:10103000CF93DF93EC019091E401943009F046C026
+:1010400080910C018823D9F080910D018823B9F09B
+:101050009093E9008FEF9091E800815095FD06C0D4
+:1010600095E19A95F1F700008111F5CF8091E800A4
+:1010700085FF2CC040E050E060E170E017C081E0E7
+:101080008093E9008FEF9091E800815095FD06C0B4
+:1010900095ED9A95F1F700008111F5CF8091E80068
+:1010A00085FF14C040E050E068E070E0CE010E948F
+:1010B000F7098091E8008E778093E80080E1FE01D7
+:1010C000A2E5B1E001900D928A95E1F7DF91CF9111
+:1010D00008958091E301811109C00E948C0B0E9448
+:1010E000E90B8091E20084608093E2000895109201
+:1010F000E301089508950C9490210E94ED1A0E9436
+:1011000096210E948F0E0C94880742E061EC81E0EA
+:101110000E94060B42E061EC82E00E94060B42E076
+:1011200061EC83E00E94060B42E161EC84E00C94E8
+:10113000060B8091E601833009F455C030F481300C
+:1011400071F0823009F48EC008958A3009F47AC0B3
+:101150008B3009F460C0893009F09CC020C08091B8
+:10116000E501813A09F096C08091E800877F80937D
+:10117000E8008091E9019091EA01892B21F460E176
+:1011800082E591E003C060E080E090E070E00E94C2
+:10119000420A8091E8008B778093E800089580915F
+:1011A000E501813209F076C08091E9019091EA0170
+:1011B000009719F0039709F06DC08091E800877FD0
+:1011C0008093E8008091E80082FD05C08091E401F1
+:1011D0008111F8CF5FC08091F1008093620180910E
+:1011E000E8008B7753C08091E501813A09F052C045
+:1011F0008091E9019091EA01892B09F04BC080911F
+:10120000E800877F8093E8008091E80080FFFCCFB2
+:1012100080910C0136C08091E5018132D9F5809131
+:10122000E9019091EA01892BA9F58091E800877F77
+:101230008093E8000E943B0B8091E70180930C01B2
+:101240000C941F148091E501813221F58091E80012
+:10125000877F8093E8000E943B0B8091E801809398
+:10126000630108958091E501813AA1F48091E8003D
+:10127000877F8093E8008091E80080FFFCCF809119
+:1012800063018093F1008091E8008E778093E800FD
+:101290000C943B0B089584B7877F84BF88E10FB619
+:1012A000F89480936000109260000FBE90E080E898
+:1012B0000FB6F89480936100909361000FBE0E9476
+:1012C000DE0E0E948C0B0E94E90B8091E20084608C
+:1012D0008093E20078940E946F0E0E94E00E82E0FC
+:1012E00091E00E948A0E0E947E218091E401853067
+:1012F00069F40E94AE1A8091E2018823B1F30E9442
+:10130000D91A882391F30E94E109EFCF0E94E60EDB
+:10131000ECCF292F332723303105C9F064F4213075
+:10132000310581F02230310509F043C08DE690E0AF
+:1013300024E632E042C021323105F1F0223231059B
+:1013400041F137C082E190E021ED32E036C09927CB
+:101350008130910541F08230910541F0892B49F5AA
+:10136000E0E6F2E005C0E8E4F2E002C0E0E3F2E02B
+:10137000849190E09F0121C06430D8F4E62FF0E022
+:10138000EE0FFF1FEE5DFE4F2081318189E090E07E
+:1013900014C0643070F470E0FB01EE0FFF1FE65ED6
+:1013A000FE4F20813181FB01EA5EFE4F808190E09B
+:1013B00004C080E090E020E030E0FA013183208337
+:1013C000089580E189BD82E189BD09B400FEFDCFA9
+:1013D0008091D8008F7D8093D8008091E00082605A
+:1013E0008093E0008091E00081FDFCCF0895CF92D2
+:1013F000DF92EF92FF920F931F93CF93DF93EC0155
+:101400008B016A010E945A0B811133C0C114D104AF
+:1014100039F0F60180819181081B190BC80FD91F83
+:10142000E12CF12C0115110519F18091E80085FDE1
+:1014300016C08091E8008E778093E800C114D10433
+:1014400049F0F60180819181E80EF91EF182E08277
+:1014500085E00FC00E945A0B882321F30AC08991AE
+:101460008093F10001501109FFEFEF1AFF0ADACF64
+:1014700080E0DF91CF911F910F91FF90EF90DF906F
+:10148000CF9008952091EB013091EC01261737079A
+:1014900048F06115710539F42091E8002E7720930A
+:1014A000E80001C0B90140E061157105A9F1209182
+:1014B000E401222309F443C0253009F442C02091FD
+:1014C000E80023FD40C02091E80022FD32C02091B9
+:1014D000E80020FFE9CF4091F3002091F20030E0D6
+:1014E000342BFC01CF016115710559F0283031050D
+:1014F00040F481918093F100615071092F5F3F4F5B
+:10150000F1CF41E02830310509F040E02091E800BA
+:101510002E772093E800C8CF4111C9CF0AC080912F
+:10152000E401882361F0853061F08091E80083FD5B
+:101530000AC08091E80082FFF2CF80E0089582E047
+:10154000089583E0089581E008952091EB013091A2
+:10155000EC012617370748F06115710539F4209121
+:10156000E8002E772093E80001C0B901FC0120E0DB
+:101570006115710591F18091E401882309F440C05F
+:10158000853009F43FC08091E80083FD3DC0809123
+:10159000E80082FD2FC08091E80080FFE9CF209114
+:1015A000F3008091F20090E0922B6115710559F0E3
+:1015B0008830910540F424912093F10031966150D8
+:1015C00071090196F2CF21E0089709F020E080919F
+:1015D000E8008E778093E800CBCF2111CCCF0AC0F2
+:1015E0008091E401882361F0853061F08091E8000A
+:1015F00083FD0AC08091E80082FFF2CF80E0089569
+:1016000082E0089583E0089581E00895982F97304F
+:1016100058F59093E900981739F07091EC002091FB
+:10162000ED005091F00003C0242F762F50E021FFF1
+:1016300019C03091EB003E7F3093EB003091ED000C
+:101640003D7F3093ED003091EB0031603093EB0043
+:101650007093EC002093ED005093F0002091EE0089
+:1016600027FF07C09F5FD3CF8F708093E90081E091
+:10167000089580E008958091E50187FF11C0809171
+:10168000E80082FD05C08091E4018111F8CF11C00E
+:101690008091E8008B770BC08091E401882349F0AA
+:1016A0008091E80080FFF8CF8091E8008E778093EA
+:1016B000E80008952091E4003091E50095E640911E
+:1016C000EC00842F817040FF22C08091E80080FDF3
+:1016D0001CC08091E401882391F0853091F08091C5
+:1016E000EB0085FD10C04091E4005091E5004217E9
+:1016F000530729F39A01915011F784E0089582E08D
+:10170000089583E0089581E0089580E00895409170
+:10171000E80042FFDECF08950E94FA0B0E94020CFF
+:10172000E0EEF0E0808181608083E8EDF0E0808190
+:101730008F77808319BCA7EDB0E08C918E7F8C935E
+:1017400080818F7E80831092E30108950F931F9311
+:10175000CF93DF930E94FA0B0E94020CC8EDD0E0F9
+:1017600088818F77888388818068888388818F7D4E
+:10177000888319BC1092E4011092E0011092E201FA
+:101780001092E10100EE10E0F80180818B7F8083F0
+:1017900088818160888342E060E080E00E94060BDF
+:1017A000E1EEF0E080818E7F8083E2EEF0E08081E8
+:1017B00081608083808188608083F80180818E7F52
+:1017C0008083888180618883DF91CF911F910F9101
+:1017D0000895E8EDF0E080818F7E8083E7EDF0E012
+:1017E00080818160808384E082BF81E08093E30117
+:1017F0000C94A60BE8EDF0E080818E7F8083109240
+:10180000E20008951092DA001092E10008951F920C
+:101810000F920FB60F9211242F933F934F935F9324
+:101820006F937F938F939F93AF93BF93EF93FF93A8
+:101830008091E10082FF0BC08091E20082FF07C02F
+:101840008091E1008B7F8093E1000E946E0E809179
+:10185000DA0080FF1FC08091D80080FF1BC08091FC
+:10186000DA008E7F8093DA008091D90080FF0DC06E
+:1018700080E189BD82E189BD09B400FEFDCF81E030
+:101880008093E4010E94690805C019BC1092E4012C
+:101890000E9477088091E10080FF19C08091E200EA
+:1018A00080FF15C08091E2008E7F8093E2008091DE
+:1018B000E20080618093E2008091D8008062809392
+:1018C000D80019BC85E08093E4010E947B088091D8
+:1018D000E10084FF30C08091E20084FF2CC080E1F1
+:1018E00089BD82E189BD09B400FEFDCF8091D80099
+:1018F0008F7D8093D8008091E1008F7E8093E100FE
+:101900008091E2008F7E8093E2008091E20081600E
+:101910008093E2008091E001882311F084E007C009
+:101920008091E30087FD02C081E001C083E08093E5
+:10193000E4010E947D088091E10083FF29C080912D
+:10194000E20083FF25C08091E100877F8093E10062
+:1019500082E08093E4011092E0018091E1008E7FAB
+:101960008093E1008091E2008E7F8093E20080917D
+:10197000E20080618093E20042E060E080E00E944B
+:10198000060B8091F00088608093F0000E947A0836
+:10199000FF91EF91BF91AF919F918F917F916F9147
+:1019A0005F914F913F912F910F900FBE0F901F901D
+:1019B00018951F920F920FB60F9211242F933F93F9
+:1019C0004F935F936F937F938F939F93AF93BF9347
+:1019D000CF93DF93EF93FF93C091E900CF70809195
+:1019E000EC00D82FD17080FDD0E81092E9008091F2
+:1019F000F000877F8093F00078940E941D0D109274
+:101A0000E9008091F00088608093F000CD2BCF70CA
+:101A1000C093E900FF91EF91DF91CF91BF91AF911A
+:101A20009F918F917F916F915F914F913F912F91F6
+:101A30000F900FBE0F901F9018951F93CF93DF93B9
+:101A4000CDB7DEB7AA970FB6F894DEBF0FBECDBFF5
+:101A5000E5EEF1E088E08E0F9091F10091938E1306
+:101A6000FBCF0E9499088091E80083FF1FC18091FD
+:101A7000E5019091E601492F50E04A30510508F008
+:101A800015C1FA01EA5AFF4F0C941823803881F0EF
+:101A9000823809F00BC18091E9018F708093E900D1
+:101AA0008091EB0085FB882780F91092E90006C041
+:101AB0008091E1019091E201911182609091E800A2
+:101AC000977F9093E8008093F1001092F100C8C0D6
+:101AD000282F2D7F09F0EAC0882319F0823061F0A9
+:101AE000E5C08091E701813009F0E0C0933009F052
+:101AF00080E08093E2012BC08091E701811127C033
+:101B00008091E9018F7009F4D1C08093E9002091A0
+:101B1000EB0020FF1CC0933021F48091EB00806229
+:101B200014C09091EB0090619093EB0021E030E0C5
+:101B3000A90102C0440F551F8A95E2F74093EA00BD
+:101B40001092EA008091EB0088608093EB00109285
+:101B5000E9008091E800877F86C08111A7C01091BD
+:101B6000E7011F778091E3008078812B8093E30069
+:101B70008091E800877F8093E8000E943B0B809172
+:101B8000E80080FFFCCF8091E30080688093E30051
+:101B9000111102C082E001C083E08093E40186C09D
+:101BA0008058823008F082C08091E7019091E8016E
+:101BB0008C3D53E0950779F583E08A838AE2898337
+:101BC0004FB7F894DE01139620E03EE051E2E32F98
+:101BD000F0E050935700E49120FF03C0E295EF70CE
+:101BE0003F5FEF708E2F90E0EA3010F0C79601C093
+:101BF000C0968D939D932F5F243149F74FBF8091FD
+:101C0000E800877F8093E8006AE270E0CE010196E9
+:101C10000E94420A14C0AE014F5F5F4F6091E9011C
+:101C20000E948909BC01892B09F440C09091E80009
+:101C3000977F9093E80089819A810E94A50A8091FC
+:101C4000E8008B778093E80031C0803879F5809187
+:101C5000E800877F8093E8008091E0018093F100A5
+:101C60008091E8008E778093E8000E943B0B1EC0B5
+:101C700081111CC09091E7019230C0F48091E8007E
+:101C8000877F8093E8009093E0010E943B0B809156
+:101C9000E001811106C08091E30087FD02C081E070
+:101CA00001C084E08093E4010E9485088091E800EF
+:101CB00083FF0AC08091E800877F8093E8008091CD
+:101CC000EB0080628093EB00AA960FB6F894DEBF1B
+:101CD0000FBECDBFDF91CF911F9108950895CF938F
+:101CE0008091E4018823A1F0C091E900CF70909128
+:101CF000EC00892F817090FD80E8C82B1092E900DC
+:101D00008091E80083FD0E941D0DCF70C093E90013
+:101D1000CF91089590936901809368010895E091AF
+:101D20006801F0916901309721F00190F081E02D78
+:101D3000099480E00895E0916801F091690130977D
+:101D400021F00280F381E02D09940895E09168016B
+:101D5000F0916901309721F00480F581E02D09941C
+:101D6000089520916601309167018217930771F001
+:101D70009093670180936601E0916801F091690199
+:101D8000309721F00680F781E02D09940895209185
+:101D90006401309165018217930771F0909365019A
+:101DA00080936401E0916801F0916901309721F01E
+:101DB0000084F185E02D0994089508950C94DD0EBA
+:101DC0000E94F31A0E94A0030C94B91BCF92DF92D9
+:101DD000EF92FF920F931F93CF93DF93CDB7DEB7B0
+:101DE0002B970FB6F894DEBF0FBECDBF0E94B8038D
+:101DF0008BE6C82E81E0D82E00E010E0E02E802F88
+:101E00000E94A604F60141916F01F42EF826B1F468
+:101E10000F5F1F4F0E30110589F78FEF89838A837B
+:101E20001B820E94FC1A8160782F9D838C834981DC
+:101E30005A816B818D810E94890F40C09091CD01A4
+:101E400091FF04C08B870E94AC048B8520E030E0BA
+:101E50004F2D50E0922FBA01022E02C07595679562
+:101E60000A94E2F760FF24C02E83EF8221E030E085
+:101E7000690102C0CC0CDD1C9A95E2F790E08C2140
+:101E80009D21892B09F420E028870E94FC1A81609B
+:101E9000782F9A8789874E815F8168858A850E941D
+:101EA000890FF801E559FE4F8081C826C08206C01F
+:101EB0002F5F3F4F2630310569F6AACF0E94A01E42
+:101EC00010916A010E948F0E1817A1F00E948F0EC8
+:101ED00080936A012B960FB6F894DEBF0FBECDBF7C
+:101EE000DF91CF911F910F91FF90EF90DF90CF90F6
+:101EF0000C9488072B960FB6F894DEBF0FBECDBFAB
+:101F0000DF91CF911F910F91FF90EF90DF90CF90D5
+:101F10000895CF93DF93CDB7DEB72B970FB6F89424
+:101F2000DEBF0FBECDBF4F83588769877A878B8707
+:101F3000DE01119686E0FD0111928A95E9F785E0B0
+:101F4000FE01379601900D928A95E1F749815A81F9
+:101F50006B817C818D819E810E94B9162B960FB674
+:101F6000F894DEBF0FBECDBFDF91CF9108950895E5
+:101F7000CF93882309F4C2C0C82F823859F40E9435
+:101F80008F0E81FDBBC089E30E9462190E942F1A47
+:101F900089E30CC0833879F40E948F0E80FDAEC0B7
+:101FA00083E50E9462190E942F1A83E50E94A419FA
+:101FB000CF910C942F1A843859F40E948F0E82FD11
+:101FC0009DC087E40E9462190E942F1A87E4EECF19
+:101FD0008CEF8C0F813A48F48C2F0E94E320811102
+:101FE0008DC08C2F0E946219E3CF80E28C0F883065
+:101FF00048F4C77081E001C0880FCA95EAF70E94D3
+:10200000E819D6CF8BE58C0F833078F4C53A29F0E8
+:10201000C63A31F083E890E005C081E890E002C064
+:1020200082E890E0CF910C94B10E88E58C0F83315B
+:1020300008F064C0C83A39F1C93A41F1CA3A49F1E5
+:10204000CB3A51F1CC3A59F1CD3A61F1C03B69F14B
+:10205000CE3A71F1CF3A79F1C13B81F1C23B89F1BE
+:10206000C33B91F1C43B99F1C53BA1F1C63BA9F13A
+:10207000C73BB1F1C83BB9F1C93BC1F1CA3BC9F19A
+:1020800080E090E038C082EE90E035C089EE90E0CC
+:1020900032C08AEE90E02FC085EB90E02CC086EB3A
+:1020A00090E029C087EB90E026C08CEC90E023C044
+:1020B0008DEC90E020C083E891E01DC08AE891E0BB
+:1020C0001AC082E991E017C084E991E014C081E26E
+:1020D00092E011C083E292E00EC084E292E00BC075
+:1020E00085E292E008C086E292E005C087E292E0D5
+:1020F00002C08AE292E0CF910C94C70ECF9108956E
+:10210000882309F44BC0823859F40E948F0E81FF56
+:1021100045C089E30E9462190E942F1A89E30CC00E
+:10212000833871F40E948F0E80FF38C083E50E94CF
+:1021300062190E942F1A83E50E94A4190C942F1A89
+:10214000843859F40E948F0E82FF28C087E40E94D1
+:1021500062190E942F1A87E4EFCF9CEF980F913AF3
+:1021600058F390E2980F983050F4877091E001C0D6
+:10217000990F8A95EAF7892F0E94EE19DFCF9BE528
+:10218000980F933020F480E090E00C94B10E885AC0
+:10219000833120F480E090E00C94C70E08958823EA
+:1021A00021F00E94E8190C942F1A0895882321F039
+:1021B0000E94EE190C942F1A0895BF92CF92DF92CD
+:1021C000EF92FF920F931F93CF93DF9300D000D035
+:1021D00000D0CDB7DEB725E0FC01DE0111960190FD
+:1021E0000D922A95E1F7FC01D080118102812581B1
+:1021F00022952F7043815481452B09F4FCC21F3F67
+:1022000021F4FFEFDF1609F4F6C27C012E830E9451
+:10221000B70FD9821A8369817A81802F0E945E1953
+:10222000182FB92E0E9413190E94DA172E8100234D
+:1022300019F00E94051A2E81EB2DE295EF70F0E067
+:10224000E05AFF4F0C9418238B2D807F9B2D9F709D
+:10225000F92E882319F0F29480EFF822002389F0F8
+:10226000FF2009F475C280E2810F883020F48F2DA1
+:102270000E94E81903C08F2D0E94F8190E942F1A9E
+:1022800067C2812F0E948010FF2009F4B4C2105E43
+:102290008F2D183018F40E94EE1902C00E94FE190A
+:1022A00026960FB6F894DEBF0FBECDBFDF91CF915B
+:1022B0001F910F91FF90EF90DF90CF90BF900C9403
+:1022C0002F1A3B2D307F8B2D8F70303211F082957D
+:1022D000807F112319F0113021F12CC00023B9F0B7
+:1022E000222309F4A0C1213009F09DC126960FB622
+:1022F000F894DEBF0FBECDBFDF91CF911F910F913C
+:10230000FF90EF90DF90CF90BF900C94181A22238B
+:1023100019F0213009F46FC28E830E941B1A8E813E
+:1023200096C1002321F0223008F065C27CC1211142
+:1023300062C28DC1002321F0222309F474C108C2B6
+:10234000222309F484C119C22B2D269526952370CA
+:1023500030E02115310521F021303105D1F04BC29B
+:10236000002321F0812F9B2D937002C080E090E02C
+:1023700026960FB6F894DEBF0FBECDBFDF91CF918A
+:102380001F910F91FF90EF90DF90CF90BF900C9432
+:10239000B10E002321F0812F9B2D937002C080E0AD
+:1023A00090E026960FB6F894DEBF0FBECDBFDF914A
+:1023B000CF911F910F91FF90EF90DF90CF90BF9042
+:1023C0000C94C70E812F002319F00E94A81D02C093
+:1023D0000E94101E26960FB6F894DEBF0FBECDBF2A
+:1023E000DF91CF911F910F91FF90EF90DF90CF90F1
+:1023F000BF900C94951E8B2D837009F07BC001114A
+:10240000FAC1812F829586958770880F880F912F4A
+:102410009F70C92ED12CE12CF12C082E04C0CC0CBD
+:10242000DD1CEE1CFF1C0A94D2F714FF12C04FE013
+:1024300050E060E070E004C0440F551F661F771F36
+:102440008A95D2F7CB01BA016095709580959095E9
+:1024500003C060E070E0CB012B2D269526952370FC
+:10246000422F50E042305105D9F04330510569F117
+:102470006C297D298E299F294130510551F12696DD
+:102480000FB6F894DEBF0FBECDBFDF91CF911F9185
+:102490000F91FF90EF90DF90CF90BF900C940118B8
+:1024A0006C297D298E299F2926960FB6F894DEBFC8
+:1024B0000FBECDBFDF91CF911F910F91FF90EF9095
+:1024C000DF90CF90BF900C941D180E940118C70197
+:1024D000B60126960FB6F894DEBF0FBECDBFDF91D2
+:1024E000CF911F910F91FF90EF90DF90CF90BF9011
+:1024F0000C94E517002319F08B2D817001C086958F
+:10250000882309F478C1812F829586958770880F7A
+:10251000880F912F9F70C92ED12CE12CF12C082E01
+:1025200004C0CC0CDD1CEE1CFF1C0A94D2F714FF77
+:1025300012C04FE050E060E070E004C0440F551F4F
+:10254000661F771F8A95D2F7CB01BA016095709507
+:102550008095909503C060E070E0CB012B2D26950F
+:1025600026952370422F50E042305105D9F0433078
+:10257000510569F16C297D298E299F29413051052A
+:1025800051F126960FB6F894DEBF0FBECDBFDF9196
+:10259000CF911F910F91FF90EF90DF90CF90BF9060
+:1025A0000C94DB186C297D298E299F2926960FB65D
+:1025B000F894DEBF0FBECDBFDF91CF911F910F9179
+:1025C000FF90EF90DF90CF90BF900C94F7180E948F
+:1025D000DB18C701B60126960FB6F894DEBF0FBE12
+:1025E000CDBFDF91CF911F910F91FF90EF90DF90C2
+:1025F000CF90BF900C94BF18103FD1F118F4103E4B
+:1026000050F4A1C0123F09F463C008F44CC0133F5A
+:1026100009F473C098C01F708B2D8F710023A1F037
+:102620000E945818812F26960FB6F894DEBF0FBE71
+:10263000CDBFDF91CF911F910F91FF90EF90DF9071
+:10264000CF90BF900C94CF100E947918812F2696BE
+:102650000FB6F894DEBF0FBECDBFDF91CF911F91B3
+:102660000F91FF90EF90DF90CF90BF900C94D61019
+:102670000023A9F02111BFC08B2D8F7126960FB6B4
+:10268000F894DEBF0FBECDBFDF91CF911F910F91A8
+:10269000FF90EF90DF90CF90BF900C949E18223067
+:1026A00008F0A9C0E9CF0023A9F08B2D8F712696E1
+:1026B0000FB6F894DEBF0FBECDBFDF91CF911F9153
+:1026C0000F91FF90EF90DF90CF90BF900C9458182F
+:1026D000002359F38B2D8F7126960FB6F894DEBF29
+:1026E0000FBECDBFDF91CF911F910F91FF90EF9063
+:1026F000DF90CF90BF900C947918002399F08B2D28
+:102700008F7126960FB6F894DEBF0FBECDBFDF9156
+:10271000CF911F910F91FF90EF90DF90CF90BF90DE
+:102720000C94431826960FB6F894DEBF0FBECDBFAB
+:10273000DF91CF911F910F91FF90EF90DF90CF909D
+:10274000BF900C9439180023A9F0222309F4ADCFCF
+:10275000812F26960FB6F894DEBF0FBECDBFDF9156
+:10276000CF911F910F91FF90EF90DF90CF90BF908E
+:102770000C94B80F222309F4ADCF812F26960FB603
+:10278000F894DEBF0FBECDBFDF91CF911F910F91A7
+:10279000FF90EF90DF90CF90BF900C9480104B2D66
+:1027A0004F70612FC7010E94550226960FB6F8940C
+:1027B000DEBF0FBECDBFDF91CF911F910F91FF9074
+:1027C000EF90DF90CF90BF900C945D174B2D4F7022
+:1027D000612FC70126960FB6F894DEBF0FBECDBF9E
+:1027E000DF91CF911F910F91FF90EF90DF90CF90ED
+:1027F000BF900C94AD0426960FB6F894DEBF0FBEC2
+:10280000CDBFDF91CF911F910F91FF90EF90DF909F
+:10281000CF90BF9008950E94051A0E94151A0E9439
+:10282000DA190E942F1A0E94461F0E94951E80E00E
+:1028300090E00E94B10E80E090E00C94C70E0E94E0
+:10284000F5190C940B140E945319292F22952F70FF
+:1028500030E02C3031054CF42A3031056CF4225034
+:1028600031092230310588F407C02C30310549F098
+:102870002F30310531F009C0803E48F0803F29F407
+:1028800006C093FB882780F9089580E0089581E0D1
+:102890000895CF93DF9300D000D01F92CDB7DEB75D
+:1028A0000F900F900F900F900F90DF91CF910895A0
+:1028B000CF93DF9300D000D000D0CDB7DEB72696FF
+:1028C0000FB6F894DEBF0FBECDBFDF91CF91089554
+:1028D0001F93CF93DF93C091790116E080917A0125
+:1028E000C81799F0D0E01C9FF0011D9FF00D112436
+:1028F000E558FE4F408151816281738184819581C9
+:102900000E9458142196C770E9CFDF91CF911F9193
+:1029100008954091AB015091AC016091AD0170916F
+:10292000AE018091AF019091B0010C945814809148
+:10293000B00182958F7009F054C08091AD01882359
+:1029400009F44FC080917901A0917A016091AB01A7
+:102950007091AC014091AE015091AF01B6E08A1781
+:1029600009F43FC090E041155105C1F17F3F11F4DA
+:102970006F3FA1F1B89FF001B99FF00D1124E55808
+:10298000FE4F218172132AC02081621327C0228149
+:10299000211124C0238134812417350710F42150DC
+:1029A0003109241B350B283C3105C0F42091B001BE
+:1029B0002F7020612093B00126E0289FF001299F0D
+:1029C000F00D1124E058FE4F80818F70806180836C
+:1029D0008BEA91E00E94DD100C94681401968770D8
+:1029E000BECF0895CF92DF92EF92FF920F931F9385
+:1029F000CF93DF93CDB7DEB762970FB6F894DEBF03
+:102A00000FBECDBF8C0185E0F801DE011D9601905F
+:102A10000D928A95E1F7D8014C9111965C9111972E
+:102A200012966C9112971396CD90DC90149730917A
+:102A3000AB017091AC018091AE019091AF01009714
+:102A400009F46BC17F3F19F43F3F09F466C1E09080
+:102A5000AD01EE2009F4C0C02091B001C816D9061E
+:102A600028F0F601E81BF90BCF0104C08095909582
+:102A70008C0D9D1DFF24F394883C910578F0F12C7A
+:102A8000207F09F0C6C07C2DD98AC88A89890E9416
+:102A900049148BEA91E00E94DD10B1C0822F807F43
+:102AA00009F046C0751314C0341312C0611110C070
+:102AB0002F7020612093B0010E9489148BEA91E06D
+:102AC0000E94DD108091B001D80115968C932EC024
+:102AD000CD2819F15F3F11F44F3FF9F0F62E611147
+:102AE0001CC08091790120917A0136E0821709F4A7
+:102AF0005AC090E0389FF001399FF00D1124E5583D
+:102B0000FE4F7181571306C07081471303C0728155
+:102B1000711103C001968770E9CFF62E662309F480
+:102B200018C18091B00181608093B001F12C11C176
+:102B3000751308C0341306C0611104C08091B00140
+:102B4000D801C3C04D875E878D859E856A8B0E94A4
+:102B500023146A898823E1F16623D1F12091B00121
+:102B6000822F82958F7090E0029774F08091AB0174
+:102B70009091AC0198878F831986DB86CA862C8753
+:102B8000CE0107960E94DD1086E0F801ABEAB1E0C5
+:102B900001900D928A95E1F70E9497140E94891482
+:102BA000FF24F394D6C04D875E878D859E850E9455
+:102BB0005319292F22952F7030E0223031050CF067
+:102BC000BCC09F7009F0B6C0805E883008F4C1C0F8
+:102BD000C8010E94DD10E4CFC816D90608F453C01E
+:102BE000F601E81BF90BCF01883C910508F450C0B1
+:102BF000F12C7C2DD98AC88A89890E944914EBEA74
+:102C0000F1E086E0DF011D928A95E9F70E948914C0
+:102C1000A0C0751314C0341312C0611110C080918C
+:102C2000B001F8018583C8010E94DD1086E0EBEA5F
+:102C3000F1E0DF011D928A95E9F7FE2C8AC04D87ED
+:102C40005E878D859E856A8B0E9423146A898823FE
+:102C500009F4BECF662309F4BBCF2091B001822FC7
+:102C600082958F7090E002970CF48ECF8091AB012B
+:102C70009091AC019A8389831B82DD82CC822E8362
+:102C8000CE0101967FCF809590958C0D9D1DACCF88
+:102C9000F62E662309F49CCF75132EC034132CC076
+:102CA0002091B00120FD1FC0822F82958F70D9F036
+:102CB000D80115962C9315978F3049F08F5F982F78
+:102CC0009295907F822F8F70892B15968C93C801D7
+:102CD0000E94DD1086E0F801ABEAB1E001900D92B0
+:102CE0008A95E1F793CF86E0F801ABEAB1E0019075
+:102CF0000D928A95E1F72DC04D875E878D859E8563
+:102D00000E942314811140CF8091B0018160809393
+:102D1000B001C8010E94DD101CC0662309F458CF21
+:102D20004D875E878D859E850E942314882309F434
+:102D30004FCF2ACF811148CF0CC0243031050CF081
+:102D400047CF9F7009F440CFF8019581907F09F03B
+:102D50003BCF8F2D62960FB6F894DEBF0FBECDBF6E
+:102D6000DF91CF911F910F91FF90EF90DF90CF9067
+:102D700008951F93CF93DF93CDB7DEB72C970FB68F
+:102D8000F894DEBF0FBECDBF4F83588769877A871F
+:102D90008B879C87CE0107960E94F214882369F0E6
+:102DA0008F8198852A853B85232BF1F19F3F09F080
+:102DB00063C08F3F09F060C037C086E0FE013796E0
+:102DC000DE01119601900D928A95E1F76F81788569
+:102DD000EA85FB85309741F17F3F11F46F3F21F188
+:102DE00020917A0130E0C9010196877099274091BE
+:102DF000790150E08417950709F447C069837A8305
+:102E0000FD83EC8396E0929FD001939FB00D112437
+:102E1000A558BE4FFE01319601900D929A95E1F7AB
+:102E200080937A010E94681416E080917901909154
+:102E30007A018917C1F1189FC001112485589E4F4E
+:102E40000E94F214882379F1E09179011E9FF0012C
+:102E50001124E558FE4F4081518162817381848144
+:102E600095810E9458148091790190E001968770B5
+:102E7000992780937901D9CF4F81588569857A85C3
+:102E80008B859C850E945814CFCF0E941F141092EE
+:102E90007A0110927901EBEAF1E086E0DF011D9200
+:102EA0008A95E9F7C1CF2C960FB6F894DEBF0FBE16
+:102EB000CDBFDF91CF911F910895EF92FF920F93B5
+:102EC0001F93CF93DF938C01892B09F46CC0F12CF5
+:102ED000EE24E394E8012196F8018491843740F4CC
+:102EE000843008F051C0813081F0823019F15BC02C
+:102EF000853709F444C0A8F19CE7980F903708F093
+:102F000052C08F770E94801041C00E5F1F4FFE019C
+:102F1000C49180E28C0F883048F4C7708E2D01C0B8
+:102F2000880FCA95EAF70E94081A14C08C2F0E94D5
+:102F3000B80F2DC00E5F1F4FFE01C49180E28C0FB1
+:102F4000883058F4C7708E2D01C0880FCA95EAF7F3
+:102F50000E940E1A0E942F1A1AC08C2F0E948010F5
+:102F600016C00E5F1F4FFE01C491CC2381F08FE984
+:102F70009FE00197F1F700C00000C150F6CF0E5F4F
+:102F80001F4FFE01F49003C00E94B80F8E018F2DD9
+:102F9000882309F49FCFEFE9FFE03197F1F700C0F4
+:102FA00000008150F5CFDF91CF911F910F91FF90DD
+:102FB000EF90089508956093B5017093B6018093E2
+:102FC000B7019093B8010C940B140F931F930091C9
+:102FD000B5011091B6012091B7013091B801DC0123
+:102FE000CB01802B912BA22BB32B8093B501909317
+:102FF000B601A093B701B093B8011F910F910C9443
+:103000000B140F931F930091B5011091B6012091FD
+:10301000B7013091B801DC01CB0180239123A223B9
+:10302000B3238093B5019093B601A093B701B093F9
+:10303000B8011F910F910C940B140F931F930091E3
+:10304000B5011091B6012091B7013091B801DC01B2
+:10305000CB0180279127A227B3278093B5019093B6
+:10306000B601A093B701B093B8011F910F910C94D2
+:103070000B141092B1011092B2011092B301109290
+:10308000B4010C940B1441E050E060E070E004C027
+:10309000440F551F661F771F8A95D2F74093B101E1
+:1030A0005093B2016093B3017093B4010C940B146C
+:1030B00041E050E060E070E004C0440F551F661F1F
+:1030C000771F8A95D2F78091B1019091B201A091BA
+:1030D000B301B091B401482B592B6A2B7B2B409341
+:1030E000B1015093B2016093B3017093B4010C9499
+:1030F0000B1441E050E060E070E004C0440F551F45
+:10310000661F771F8A95D2F7409550956095709508
+:103110008091B1019091B201A091B301B091B4013D
+:10312000482359236A237B234093B1015093B20172
+:103130006093B3017093B4010C940B1441E050E020
+:1031400060E070E004C0440F551F661F771F8A952A
+:10315000D2F78091B1019091B201A091B301B091E9
+:10316000B401482759276A277B274093B101509320
+:10317000B2016093B3017093B4010C940B140F93DC
+:103180001F930091B1011091B2012091B3013091D0
+:10319000B401DC01CB01802B912BA22BB32B8093AC
+:1031A000B1019093B201A093B301B093B4011F9108
+:1031B0000F910C940B140F931F930091B101109178
+:1031C000B2012091B3013091B401DC01CB01802325
+:1031D0009123A223B3238093B1019093B201A093D2
+:1031E000B301B093B4011F910F910C940B140F9382
+:1031F0001F930091B1011091B2012091B301309160
+:10320000B401DC01CB0180279127A227B32780934B
+:10321000B1019093B201A093B301B093B4011F9197
+:103220000F910C940B140895CF92DF92EF92FF92BE
+:103230000F931F93CF93DF938C01C090B501D09073
+:10324000B601E090B701F090B8018091B101909182
+:10325000B201A091B301B091B401C82AD92AEA2AD7
+:10326000FB2ACFE1D0E0D701C6010C2E04C0B695F1
+:10327000A795979587950A94D2F780FF06C0B80165
+:103280008C2F0E94ED06019721F4219760F780E0D2
+:1032900001C08C2FDF91CF911F910F91FF90EF9084
+:1032A000DF90CF900895CF93DF93EC010E94141923
+:1032B000BE010E94ED06DF91CF910895CB010E94DF
+:1032C0005319089590910C01992321F090910D01CB
+:1032D000911109C020910E0130910F01F901329630
+:1032E0009FEF40E01FC0982F9695969596959F303A
+:1032F00050F5E0910E01F0910F01E90FF11D87707B
+:1033000021E030E0A90102C0440F551F8A95E2F781
+:10331000CA019181892B818308959F3F39F04F5FC6
+:103320004E3041F051915813F8CF0DC05111F7CFE5
+:10333000942FF5CF9F3F39F0F901E90FF11D97FD6B
+:10334000FA9582830895089590910C01992321F0B4
+:1033500090910D01911109C020910E0130910F0142
+:10336000F9013296205F3F4F1FC0982F9695969592
+:1033700096959F30F0F4E0910E01F0910F01E90F66
+:10338000F11D877021E030E0A90102C0440F551FF4
+:103390008A95E2F7CA0180959181892381830895F6
+:1033A0003196E217F30729F090819813F9CF108234
+:1033B000F7CF089581E090E0E0910E01F0910F01C8
+:1033C000E80FF91F1082019680319105A9F7089541
+:1033D0009091CC01892B8093CC0108958095909198
+:1033E000CC0189238093CC0108951092CC010895DB
+:1033F0009091CB01892B8093CB010895809590917A
+:10340000CB0189238093CB0108951092CB010895BD
+:103410009091CA01892B8093CA010895809590915B
+:10342000CA0189238093CA0108951092CA010895A0
+:103430008093B90108951092B901089580910E0109
+:1034400090910F01FC0131969C01205F3F4F80E07D
+:10345000919191118F5FE217F307D1F70895E091F1
+:103460000E01F0910F018091CC018083E0910E015B
+:10347000F0910F0190818091CB01892B8083E091A5
+:103480000E01F0910F0190818091CA01892B8083F8
+:103490008091B901882361F0E0910E01F0910F0154
+:1034A0009081892B80830E941E1A81111092B9018C
+:1034B00080910E0190910F010C949B0ECF92DF92A0
+:1034C000EF92FF926C01EE24FF24C114D104E104B9
+:1034D000F10421F0C701B60120E101C020E0C72EB0
+:1034E000D82EE92EFF24C114D104E104F10419F00F
+:1034F000285FC701B6016B017C0154E0F694E794A4
+:10350000D794C7945A95D1F7C114D104E104F104BA
+:1035100019F02C5FC701B6016B017C0142E0F69403
+:10352000E794D794C7944A95D1F7C114D104E10424
+:10353000F10419F02E5FC701B601DC01CB01B6958D
+:10354000A79597958795892B8A2B8B2B09F02F5F51
+:10355000822FFF90EF90DF90CF9008958091E4014B
+:10356000843021F11092CE0120E488E190E00FB682
+:10357000F894A895809360000FBE2093600080E0CF
+:103580000E94880783B7817F846083BF83B781608F
+:1035900083BF7894889583B78E7F83BF88E10FB609
+:1035A000F89480936000109260000FBE0895089513
+:1035B0000895CF930E94D71A0E94B8030E94D81A88
+:1035C000C0E08C2F0E94A604811104C0CF5FCE30D2
+:1035D000C1F701C081E0CF9108950E941F140E949D
+:1035E0008F0E0C94880782E084BD93E095BD9AEF1E
+:1035F00097BD80936E0008952FB7F8948091CF0106
+:103600009091D001A091D101B091D2012FBF089526
+:10361000CF92DF92EF92FF920F931F932FB7F89400
+:103620004091CF015091D0016091D1017091D201B0
+:103630002FBF6A017B01EE24FF248C0120E030E0E3
+:10364000C016D106E206F30610F4415051099A0162
+:10365000281B390BC9011F910F91FF90EF90DF904C
+:10366000CF9008951F920F920FB60F9211248F934F
+:103670009F93AF93BF938091CF019091D001A09180
+:10368000D101B091D2010196A11DB11D8093CF014E
+:103690009093D001A093D101B093D201BF91AF918B
+:1036A0009F918F910F900FBE0F901F9018950E94C1
+:1036B0008C0BF8942FEF87EA91E6215080409040E0
+:1036C000E1F700C0000087E090EBDC018093EE01A1
+:1036D0009093EF01A093F001B093F1019CE088E199
+:1036E0000FB6F894A895809360000FBE9093600089
+:1036F000FFCFEF92FF920F931F93CF93DF93D82FBB
+:10370000C0E08C2F0E94A60400E010E0E82EF12C0F
+:10371000C701002E02C0959587950A94E2F780FDB7
+:1037200006C00F5F1F4F0630110591F709C0602FCB
+:103730007C2F80E00E94AE04D813F3CF81E004C058
+:10374000CF5FCE30F1F680E0DF91CF911F910F91E6
+:10375000FF90EF900895CF93C82F8CE20E94791BC1
+:10376000882321F08C2FCF910C94791B80E0CF918E
+:103770000895CF930E94001D811102C00E94E61C93
+:10378000C5E6C15049F00E94B8038FE39CE9019758
+:10379000F1F700C00000F5CF89E20E94AB1B811158
+:1037A00013C18AE20E94AB1B81110E94E61C85E0D6
+:1037B0000E94AB1B81110E94571B0E940B1D80931E
+:1037C000CD0187E00E94AB1B8823A9F18BE10E9409
+:1037D000AB1B882351F08091CD0181FB222720F97A
+:1037E00091E0922790FB81F90EC08EE00E94AB1B06
+:1037F000882361F08091CD0182FB222720F991E09E
+:10380000922790FB82F98093CD0115C080E10E9440
+:10381000AB1B9091CD01882341F093FB222720F927
+:1038200081E0822780FB93F904C0892F809580FB7B
+:1038300090F99093CD018091CD010E940F1D0E94BF
+:103840001D1D8093ED0180EE0E94AB1B882341F08B
+:103850008091ED01982F909590FB80F98093ED0178
+:1038600089E30E94AB1B882359F08091ED0181FB15
+:10387000222720F991E0922790FB81F98093ED01B6
+:1038800082EE0E94AB1B882359F08091ED0182FBF0
+:10389000222720F991E0922790FB82F98093ED0195
+:1038A00086EE0E94AB1B882359F08091ED0183FBCB
+:1038B000222720F991E0922790FB83F98093ED0174
+:1038C00083EE0E94AB1B882359F08091ED0184FBAD
+:1038D000222720F991E0922790FB84F98093ED0153
+:1038E00085E30E94AB1B882359F08091ED0185FB95
+:1038F000222720F991E0922790FB85F98093ED0132
+:1039000081E30E94AB1B882359F08091ED0186FB77
+:10391000222720F991E0922790FB86F98093ED0110
+:1039200081E10E94AB1B882359F08091ED0187FB58
+:10393000222720F991E0922790FB87F98093ED01EF
+:103940008091ED010E94211D8091ED0187FB882768
+:1039500080F980930D0187E20E94AB1BC82F8EE196
+:103960000E94AB1B8111C2608FE10E94AB1B8111D1
+:10397000C46080E20E94AB1B8111C86081E20E949A
+:10398000AB1B8111C06182E20E94AB1B8111C0623E
+:1039900083E20E94AB1B8111C06484E20E94AB1BD6
+:1039A000882311F0C06802C0CC2329F08C2F0E941C
+:1039B000181D6C2F03C00E94141D682F70E080E05A
+:1039C00090E0CF910C94DB17CF9108956DEE7EEFD0
+:1039D00080E090E00E94522360E082E090E00E944C
+:1039E000402360E083E090E00E94402360E084E0B8
+:1039F00090E00E94402360E085E090E00C9440233A
+:103A000080E090E00E943A2321E08D3E9E4F09F035
+:103A100020E0822F089582E090E00C943223682FFA
+:103A200082E090E00C94402383E090E00C943223F9
+:103A3000682F83E090E00C94402384E090E00C94A5
+:103A40003223682F84E090E00C9440238091D501CC
+:103A500080FF0BC06091130185E0689FB0011124C5
+:103A600075956795759567952BC081FF09C0609125
+:103A7000130185E0689FB00111247595679520C0FA
+:103A800082FF07C06091130185E0689FB001112497
+:103A900017C09091D6019923D1F060911201961729
+:103AA00088F72091130185E0289F90011124929FAF
+:103AB000A001939F500D112470E0CA010E940423BD
+:103AC0006038710540F46115710539F002C065E098
+:103AD00070E0862F08958FE7089581E00895809122
+:103AE000D50180FF08C06091110170E07595679560
+:103AF0007595679521C081FF06C06091110170E046
+:103B00007595679519C082FF04C06091110170E03E
+:103B100010C09091D6019923C1F0609110019617C1
+:103B2000A0F780911101899FC001112470E00E94CB
+:103B300004236038710528F46115710521F0862F82
+:103B400008958FE7089581E0089561E070E0F4CF73
+:103B5000803F21F40E94261D819504C0813F29F4F5
+:103B60000E94261D8093D9010895823F21F40E946E
+:103B7000261D819504C0833F29F40E94261D809351
+:103B8000D8010895893F19F40E946F1D05C08A3F2E
+:103B900031F40E946F1D81958093DA0108958B3F67
+:103BA00021F40E946F1D819504C08C3F29F40E946E
+:103BB0006F1D8093DB010895843F21F48091D7012C
+:103BC000816017C0853F21F48091D701826011C0C8
+:103BD000863F21F48091D70184600BC0873F21F498
+:103BE0008091D701886005C0883F31F48091D7016A
+:103BF00080618093D70108958D3F21F48091D50194
+:103C000081600BC08E3F21F48091D501826005C098
+:103C10008F3F29F48091D50184608093D501089568
+:103C2000803F39F48091D90187FF6CC01092D9018F
+:103C300069C0813F29F48091D9011816BCF362C094
+:103C40009091D801823F29F497FF5CC01092D8016F
+:103C500059C0833F19F41916CCF354C0893F41F47D
+:103C60008091DA0118160CF04DC01092DA014AC0AA
+:103C70008A3F29F48091DA0187FF44C0F6CF8B3F59
+:103C800039F48091DB0187FF3DC01092DB013AC01F
+:103C90008C3F29F48091DB011816BCF333C0843FBC
+:103CA00021F48091D7018E7F17C0853F21F4809148
+:103CB000D7018D7F11C0863F21F48091D7018B7F82
+:103CC0000BC0873F21F48091D701877F05C0883FD3
+:103CD00031F48091D7018F7E8093D70113C08D3F3F
+:103CE00021F48091D5018E7F0BC08E3F21F480910D
+:103CF000D5018D7F05C08F3F29F48091D5018B7F41
+:103D00008093D5018091D80181110EC08091D90195
+:103D100081110AC08091DA01811106C08091DB0116
+:103D2000811102C01092D601089587ED91E00E94A2
+:103D3000A60E0E94FC1A9093D4018093D30108959B
+:103D40001F93CF93DF938091D3019091D4010E9470
+:103D5000081BAC019091D601992321F02091140108
+:103D600030E006C0209115018AE0289F90011124BF
+:103D70004217530708F486C08091D801C091D90139
+:103D8000D091DA011091DB01811107C0C11176C019
+:103D9000D11174C0111172C075C09F3F19F09F5F9F
+:103DA0009093D601181624F40E94261D8093D80102
+:103DB0008091D80187FF05C00E94261D81958093C0
+:103DC000D8011C1624F40E94261D8093D9018091ED
+:103DD000D90187FF05C00E94261D81958093D901D6
+:103DE0006091D801662339F1C091D901CC2319F132
+:103DF000772767FD7095872F972F0E94152223E361
+:103E000033E343E35FE30E9479220E94E22160935F
+:103E1000D8016C2F772767FD7095872F972F0E9409
+:103E2000152223E333E343E35FE30E9479220E94F8
+:103E3000E2216093D9011D1624F40E946F1D809326
+:103E4000DA018091DA0187FF05C00E946F1D81951C
+:103E50008093DA01111624F40E946F1D8093DB0118
+:103E60008091DB0187FF05C00E946F1D81958093C3
+:103E7000DB01DF91CF911F910C94951E9F3F09F0BC
+:103E80008ECF96CFDF91CF911F910895E7EDF1E0AE
+:103E900085E0DF011D928A95E9F71092D601109214
+:103EA000D5010895833081F128F4813059F08230B2
+:103EB000D1F00895853009F449C0B8F1863009F48D
+:103EC00056C0089580911501262F30E0280F311D2E
+:103ED0002F3F310524F4680F6093150108958FEF8B
+:103EE00080931501089580911401262F30E0280F4A
+:103EF000311D2F3F310524F4680F6093140108959C
+:103F00008FEF80931401089580911301262F30E0E4
+:103F1000280F311D2F3F310524F4680F60931301E2
+:103F200008958FEF80931301089580911201262F39
+:103F300030E0280F311D2F3F310524F4680F6093C6
+:103F4000120108958FEF809312010895809111015D
+:103F5000262F30E0280F311D2F3F310524F4680F44
+:103F60006093110108958FEF80931101089580915E
+:103F70001001262F30E0280F311D2F3F310524F48A
+:103F8000680F6093100108958FEF809310010895DA
+:103F9000833011F128F4813049F0823091F0089596
+:103FA000853081F120F18630C1F1089580911501AD
+:103FB000681720F4861B809315010895109215014F
+:103FC000089580911401681720F4861B80931401D2
+:103FD000089510921401089580911301681720F438
+:103FE000861B809313010895109213010895809108
+:103FF0001201681720F4861B809312010895109215
+:104000001201089580911101681720F4861B809396
+:1040100011010895109211010895809110016817FF
+:1040200020F4861B809310010895109210010895CA
+:104030000F931F938D3109F46BC008F03FC08E3091
+:1040400009F47FC0C0F4873009F469C068F4863091
+:1040500009F0B1C08091CD01817F8E7F8093CD0129
+:1040600081E08093DD01A8C0883009F4A2C08B30C4
+:1040700009F49FC0A0C0863109F49BC078F4803158
+:1040800009F472C0813109F096C00E941F1490910A
+:104090000D0181E0892780930D018BC0893109F4DE
+:1040A00088C08B3109F087C08091CD0181FB222728
+:1040B00020F991E0922790FB81F94CC0853309F4F7
+:1040C00070C048F4873209F46CC008F459C08932D2
+:1040D00009F467C070C0833438F48A3308F04EC0E6
+:1040E000883309F466C067C0833409F45AC0883441
+:1040F00009F061C00E941F140FEF13ED20E301507F
+:1041000010402040E1F700C000000E94571B51C042
+:104110000E949C210E948F0E0E9488074AC09091A5
+:10412000CD01892F8095817080FB90F929F09660F0
+:1041300098609093CD0140C0997F977F9093CD0177
+:1041400038C08091CD0182FB222720F991E092278F
+:1041500090FB82F98093CD01992359F18091CD0193
+:1041600081608093CD0125C08091CD0183FB222702
+:1041700020F991E0922790FB83F9ECCF895301C09D
+:104180008D5141E050E060E070E08A019B0104C085
+:10419000000F111F221F331F8A95D2F7C901B801E2
+:1041A00004C061E070E080E090E00E94DB170E94B4
+:1041B0001F1481E001C080E01F910F91089580E0FD
+:1041C000089580E00895CF93C82F8091DD0181305C
+:1041D00079F018F08230E9F187C0E0910E01F0919A
+:1041E0000F018081813169F0823209F07FC009C0FE
+:1041F000E0910E01F0910F018081813111F0823246
+:1042000061F48C2F0E94DF20811104C08C2F0E944A
+:1042100018201DC081E090E01AC08C2F0E94E12080
+:10422000811114C0C43179F048F4CB3079F0C03139
+:1042300009F060C082E08093DD0108C0C93219F046
+:10424000C83321F057C01092DD0154C081E0817065
+:1042500053C0C93289F118F5C43171F1A8F4C730DF
+:1042600009F046C08AE08093150194E1909314010F
+:1042700093E0909313018093120188E080931101E1
+:1042800088E28093100134C0CE51C63088F5EC2FFF
+:10429000F0E0E65DFE4F80818093DC0129C0CE34E2
+:1042A000E9F020F4CB3421F56AE013C0C13579F090
+:1042B000C235F1F461E00DC08091DC01882319F072
+:1042C0001092DC0115C081E08093DD0115C061E032
+:1042D00006C08091DC010E94521F0AC06AE08091F2
+:1042E000DC010E94C81F04C01092DD0180E004C000
+:1042F00081E002C080E0ABCFCF910895E1E8F0E02B
+:104300008081886080838081816080838FB7F8940A
+:1043100093E09093890090ED909388008FBF08956B
+:10432000EFE6F0E08081826080830895EFE6F0E0C0
+:1043300080818D7F80830895EFE6F0E0908182E0B8
+:104340008927808308951F920F920FB60F92112430
+:104350002F933F934F935F936F937F938F939F938D
+:10436000AF93BF93EF93FF938091DE019091DF01B4
+:1043700001969093DF018093DE01811103C082E0FA
+:104380000E948807E091DF01E695E695F0E0E252B1
+:10439000FC4FE4918091DE018E1303C080E00E9407
+:1043A0008807FF91EF91BF91AF919F918F917F917E
+:1043B0006F915F914F913F912F910F900FBE0F9092
+:1043C0001F90189504D06894B1118DC0089570D0D5
+:1043D00088F09F5790F0B92F9927B751A0F0D1F0EE
+:1043E000660F771F881F991F1AF0BA95C9F712C078
+:1043F000B13081F077D0B1E0089574C0672F782F85
+:104400008827B85F39F0B93FCCF3869577956795E3
+:10441000B395D9F73EF490958095709561957F4F4F
+:104420008F4F9F4F0895E89409C097FB3EF49095F5
+:104430008095709561957F4F8F4F9F4F9923A9F07D
+:10444000F92F96E9BB279395F6958795779567950C
+:10445000B795F111F8CFFAF4BB0F11F460FF1BC050
+:104460006F5F7F4F8F4F9F4F16C0882311F096E9E3
+:1044700011C0772321F09EE8872F762F05C0662391
+:1044800071F096E8862F70E060E02AF09A95660F4A
+:10449000771F881FDAF7880F9695879597F9089503
+:1044A00057FD9058440F551F59F05F3F71F04795E5
+:1044B000880F97FB991F61F09F3F79F087950895CA
+:1044C000121613061406551FF2CF4695F1DF08C0E9
+:1044D000161617061806991FF1CF86957105610506
+:1044E00008940895E894BB2766277727CB0197F9AE
+:1044F00008950BD078C069D028F06ED018F09523BD
+:1045000009F05AC05FC01124EECFCADFA0F3959F17
+:10451000D1F3950F50E0551F629FF001729FBB27AA
+:10452000F00DB11D639FAA27F00DB11DAA1F649F56
+:104530006627B00DA11D661F829F2227B00DA11D09
+:10454000621F739FB00DA11D621F839FA00D611D8F
+:10455000221F749F3327A00D611D231F849F600DB0
+:10456000211D822F762F6A2F11249F5750408AF0E9
+:10457000E1F088234AF0EE0FFF1FBB1F661F771F75
+:10458000881F91505040A9F79E3F510570F014C00C
+:10459000AACF5F3FECF3983EDCF38695779567955D
+:1045A000B795F795E7959F5FC1F7FE2B880F911D93
+:1045B0009695879597F9089597F99F6780E870E039
+:1045C00060E008959FEF80EC089500240A94161689
+:1045D000170618060906089500240A9412161306F1
+:1045E000140605060895092E0394000C11F488237F
+:1045F00052F0BB0F40F4BF2B11F460FF04C06F5F9B
+:104600007F4F8F4F9F4F089597FB072E16F400940E
+:1046100007D077FD09D00E941E2307FC05D03EF489
+:10462000909581959F4F0895709561957F4F08955E
+:10463000EE0FFF1F0590F491E02D0994AA1BBB1B00
+:1046400051E107C0AA1FBB1FA617B70710F0A61B92
+:10465000B70B881F991F5A95A9F780959095BC01B3
+:10466000CD010895F999FECF92BD81BDF89A9927A1
+:1046700080B50895A8E1B0E042E050E00C945A23E0
+:10468000262FF999FECF92BD81BDF89A019700B40B
+:10469000021639F01FBA20BD0FB6F894FA9AF99AAB
+:1046A0000FBE08950196272F0E9441230C944023AA
+:1046B000DC01CB01FC01F999FECF06C0F2BDE1BDE2
+:1046C000F89A319600B40D9241505040B8F70895D1
+:0446D000F894FFCF8C
+:1046D40020028A071808F507C1078D070101BA01EE
+:1046E40028080A03140A3F4D36399F0352031C035A
+:1046F400E30276028F02A802C10201020304050646
+:044704000708090099
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png Binary files differnew file mode 100644 index 0000000000..34762ecb75 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png diff --git a/keyboard/ergodox_ez/keymaps/sneako/README.md b/keyboard/ergodox_ez/keymaps/sneako/README.md new file mode 100644 index 0000000000..8dd110ee68 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/sneako/README.md @@ -0,0 +1,6 @@ +# ergodox_keymap + +Based on the default Ergodox EZ firmware + +Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. +Removed the Ctrls from the Z and / keys. diff --git a/keyboard/ergodox_ez/keymaps/sneako/keymap.c b/keyboard/ergodox_ez/keymaps/sneako/keymap.c new file mode 100644 index 0000000000..0c68631029 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/sneako/keymap.c @@ -0,0 +1,187 @@ +// Based on `default_osx` +// Replace left Bksp with Ctrl/Esc +// Remove the Ctrl from Z and / +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/sneako/sneako.hex b/keyboard/ergodox_ez/keymaps/sneako/sneako.hex new file mode 100644 index 0000000000..1db1728652 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/sneako/sneako.hex @@ -0,0 +1,1152 @@ +:100000000C9465020C94A9020C94A9020C94A90208
+:100010000C94A9020C94A9020C94A9020C94A902B4
+:100020000C94A9020C94A9020C94720C0C94440D2B
+:100030000C94A9020C94A9020C94A9020C94A90294
+:100040000C94A9020C940E220C94A9020C94A902FF
+:100050000C94A9020C949D1B0C94A9020C94A90267
+:100060000C94A9020C94A9020C94A9020C94A90264
+:100070000C94A9020C94A9020C94A9020C94A90254
+:100080000C94A9020C94A9020C94A9020C94A90244
+:100090000C94A9020C94A9020C94A9020C94A90234
+:1000A0000C94A9020C94A9020C94A902B10DD30DD1
+:1000B000C10ED30DC10E180E3B0EC10E900EA30E35
+:1000C0008F118F11CC11CC110F124D1266146614C2
+:1000D00066126614671367133A1466146614511493
+:1000E0000000F0A12E004C002971E10035810000D4
+:1000F0001E00140004001D0034004D001F001A00F3
+:1001000016001B00E1042A0020000800070006007A
+:1001100050002C0021001500090019004F004A0072
+:10012000220017000A000500000065745000015409
+:100130000000007F0000E3004F0001540000007742
+:100140000000E20023001C000B00110000002971D8
+:10015000240018000D00100052004B0025000C0078
+:100160000E00360051002800260012000F00370054
+:100170002F002B00270013003382380030004E0080
+:100180002D0031003478E500C100000001000100BD
+:1001900001000100010000003A001E0220022202BC
+:1001A000010001003B001F022102230201000100A7
+:1001B0003C002F0226022F00010001003D0030020A
+:1001C00027023000010001003E00310235003502F7
+:1001D000000001000100010000000100000001001A
+:1001E0000100010000000100000001003F0052007A
+:1001F00051002402000001004000240021001E00E4
+:10020000010001004100250022001F00370001000D
+:1002100042002600230020002700010043002502A1
+:100220002E0231002E0001004400450001000100B3
+:1002300001000000010001000100010001000000B8
+:1002400001000100010001000100010001000100A6
+:10025000F2000100010001000100F000F1000100C6
+:10026000F400010001000100F3000100F5000100AD
+:100270000100010001000100000001000100010077
+:100280000000010000000100010001000000010069
+:100290000000010001000100010001000000010058
+:1002A0000100010001000100A9000100010001009E
+:1002B0000100AC00AA00B600010001000100AB0083
+:1002C000A80001000100010001000100010001007F
+:1002D00001000100AE00010001000000160345000E
+:1002E000720067006F0044006F0078002000450036
+:1002F0005A00000016034500720067006F004400BA
+:100300006F007800200045005A0000000403090433
+:1003100009026D00040100A0FA09040000010301B4
+:100320000100092111010001223F00070581030896
+:10033000000A090401000103010200092111010062
+:1003400001224D000705820308000A09040200018A
+:100350000300000009211101000122360007058376
+:100360000308000A09040300010300000009211129
+:100370000100012239000705840310000112011059
+:100380000100000008EDFE07130100010200010555
+:10039000010906A101050719E029E71500250195C6
+:1003A0000875018102050819012905950575019156
+:1003B000029501750391010507190029771500259C
+:1003C00001957875018102C005010980A1018502AE
+:1003D00016010026B7001A01002AB7007510950112
+:1003E0008100C0050C0901A1018503160100269CAE
+:1003F000021A01002A9C02751095018100C00501B6
+:100400000902A1010901A100050919012905150029
+:10041000250195057501810295017503810105018D
+:10042000093009311581257F950275088106093843
+:100430001581257F950175088106050C0A3802157E
+:1004400081257F950175088106C0C005010906A1B7
+:1004500001050719E029E7150025019508750181B7
+:100460000295017508810105081901290595057591
+:100470000191029501750391010507190029FF15E6
+:100480000025FF950675088100C0000000000000EF
+:100490000000000000010204060A0F17202C3A4A4F
+:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
+:1004B000B39D87715D4A3A2C20170F0A060402018A
+:1004C0000000000000000000000011241FBECFEF5C
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A
+:1004E0009091EF01A091F001B091F1018730904B14
+:1004F000A740B04BB9F41092EE011092EF011092A8
+:10050000F0011092F10114BE84B7877F84BF88E1A7
+:100510000FB6F89480936000109260000FBEE0E088
+:10052000FFE3099511E0A0E0B1E0EAEAF7E402C0D8
+:1005300005900D92A433B107D9F711E0A4E3B1E01F
+:1005400001C01D92AE3EB107E1F70E94B6090C94BE
+:10055000D3230C94000061110BC0FC01828188231D
+:1005600021F085EE0E94231003C085EE0E94EB105F
+:1005700080E090E0089508956091B1017091B2011A
+:100580008091B3019091B4010E94C91A56985E9867
+:1005900025982D9826982E9827982F98813019F015
+:1005A000823021F00895259A2D9A0895269A2E9A40
+:1005B00008950C94BC0256985E9825982D9826981C
+:1005C0002E9827982F988FEF90E090938900809332
+:1005D000880090938B0080938A0090938D00809385
+:1005E0008C00259A2D9A2FEF80E792E021508040D1
+:1005F0009040E1F700C00000269A2E9A2FEF80E786
+:1006000092E0215080409040E1F700C00000279A1E
+:100610002F9A2FEF80E792E0215080409040E1F741
+:1006200000C0000025982D982FEF80E792E0215020
+:1006300080409040E1F700C0000026982E982FEFF0
+:1006400080E792E0215080409040E1F700C0000038
+:1006500027982F9856985E9825982D9826982E982A
+:1006600027982F98089589EA8093800089E08093E5
+:10067000810024982C983F988AB18F748AB96E981B
+:10068000479A8BB1806B8BB9769A0E94DB020C94EF
+:10069000BB0280E2809300018091340181110EC081
+:1006A0000E94980381E0809334012FEF83ED90E363
+:1006B000215080409040E1F700C0000080E40E949B
+:1006C0009E038093000181112EC00E94C803809375
+:1006D0000001811128C00E94C8038093000181118C
+:1006E00022C08FE30E94C8038093000181111BC0C8
+:1006F0000E94C00380E40E949E0380930001811148
+:1007000012C08CE00E94C8038093000181110BC0CD
+:100710000E94C80380930001811105C08FE30E94ED
+:10072000C803809300010E94C003809100010895D6
+:100730001092B9008AE08093B800089594EA9093EB
+:10074000BC009091BC0097FFFCCF9091B900987FBE
+:10075000983021F0903111F081E008958093BB0032
+:1007600084E88093BC008091BC0087FFFCCF80911F
+:10077000B900887F883111F0803471F780E00895E6
+:1007800084E98093BC008091BC0084FDFCCF089577
+:100790008093BB0084E88093BC008091BC0087FFFD
+:1007A000FCCF9091B900987F81E0983209F480E005
+:1007B000089584E88093BC008091BC0087FFFCCF43
+:1007C0008091BB00089580910001811115C080E4E3
+:1007D0000E949E038093000181110CC082E10E945F
+:1007E000C80380930001811105C08FEF0E94C803E8
+:1007F000809300010E94C00384B1807F84B985B1D9
+:10080000807F85B98AB1837F8AB98BB1837F8BB9A9
+:100810003E98469808950E944903809300010E94E3
+:10082000E30380B38C7080BB81B3836F81BBA6E38D
+:10083000B1E0E4E4F1E08EE08E0F11921D928E1390
+:10084000FCCF0C943303BF92CF92DF92EF92FF92D2
+:100850000F931F93CF93DF9380910001882379F04A
+:10086000809135018F5F80933501811108C00E940E
+:10087000490380930001811102C00E94DB0206E35C
+:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455
+:10089000E394F12CC730D10500F58091000181115E
+:1008A00064C080E40E949E0380930001811112C005
+:1008B00082E10E94C8038093000181110BC0C7012F
+:1008C0000C2E01C0880F0A94EAF780950E94C80395
+:1008D000809300010E94C00348C0CA30A1F028F4F0
+:1008E000C83059F0C93061F005C0CC3089F070F0E3
+:1008F000CD3089F0209A289810C0219A29980DC0EF
+:10090000229A2A980AC0239A2B9807C0529A01C0AB
+:10091000539A5B9802C03E9A469890EA9A95F1F7EE
+:100920009FB1799902C082E001C080E091709D255D
+:10093000982B7C9902C084E001C080E0892B7D99CE
+:1009400002C038E001C030E0832B7E9902C020E174
+:1009500001C020E0822B9FB19095991F9927991F84
+:100960009295990F907E892B0FC080910001811183
+:1009700049C080E40E949E0380930001882379F19E
+:10098000B12C0E94C0038B2DF8019081981719F0AB
+:100990008083C09201010E94E30321960F5F1F4FE5
+:1009A000CE30D10509F076CF80910101882361F125
+:1009B000815080930101882339F08FE99FE00197EE
+:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC
+:1009D000CF01825F91919D938E13FCCF15C083E16F
+:1009E0000E94C803809300018111CACF81E40E9454
+:1009F0009E03809300018111C3CF0E94D903B82EBA
+:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7
+:100A1000CF911F910F91FF90EF90DF90CF90BF90FB
+:100A20000895E82FF0E0EC5BFE4F80810895089573
+:100A3000089596E0799FF001112494E5899FE00DD7
+:100A4000F11D1124E60FF11DEE0FFF1FEC51FF4FBA
+:100A5000859194910895880F991FFC01E05AF04008
+:100A6000859194910895880F991FFC01E052FF4FE2
+:100A70008591949108950F931F93CF93DF93EC0189
+:100A80008115904350F5C11580E2D80708F0B3C036
+:100A9000CB3BD10590F4C83AD10508F05AC0C53A0D
+:100AA000D10508F04BC0C430D10508F0BBC1219777
+:100AB00009F0B5C101E010E0F5C1CF3FD10511F05B
+:100AC00008F0B0C1C03FD10508F092C0CE01805EF1
+:100AD0009109089708F4A6C1A2C1C11591E5D907EB
+:100AE000A8F4C23020E5D20708F09EC0C11580E509
+:100AF000D80709F485C008F091C0C11520E4D207D9
+:100B000008F08DC1DD278E01106CCCC1C11580E8C5
+:100B1000D80758F4C11590E7D90708F07CC1C11572
+:100B200020E6D20708F422C17AC1C11580E9D807AE
+:100B300008F075C1DF708E01106AB4C1C53AD105E5
+:100B400009F472C1C63AD10509F071C102E810E496
+:100B5000A9C1C83AD10509F46DC1C93AD10509F452
+:100B60006CC1CA3AD10509F46BC1CB3AD10509F47D
+:100B70006AC1CC3AD10509F469C1CD3AD10509F46D
+:100B800068C1C03BD10509F467C1CE3AD10509F46B
+:100B900066C1CF3AD10509F465C1C13BD10509F45D
+:100BA00064C1C23BD10509F463C1C33BD10509F45B
+:100BB00062C1C43BD10509F461C1C53BD10509F44B
+:100BC00060C1C63BD10509F45FC1C73BD10509F43B
+:100BD0005EC1C83BD10509F45DC1C93BD10509F42B
+:100BE0005CC1CA3BD10509F45BC100E014E45AC101
+:100BF0008E01106557C1CE019F700E94330553C10D
+:100C00000E948A149FEF24E38CE0915020408040A2
+:100C1000E1F700C000000E94C21B44C18091CD01D9
+:100C200081608093CD013EC10E946B1D811102C085
+:100C30000E94511D0E94881D90E09093EE018093C8
+:100C4000ED01C23090E5D90721F48091ED0181607A
+:100C500086C0C43020E5D20721F48091ED01826086
+:100C60007EC0C63080E5D80721F48091ED01846014
+:100C700076C0C83090E5D90719F48091ED0127C0FE
+:100C8000CA3020E5D20721F48091ED01806167C070
+:100C9000CC3080E5D80721F48091ED0180625FC0FF
+:100CA000CE3090E5D90721F48091ED01806457C0E2
+:100CB000C03120E5D20721F48091ED0180684FC05A
+:100CC000C23180E5D80729F48091ED018460886005
+:100CD00046C0C33090E5D90721F48091ED018E7FA5
+:100CE0003EC0C53020E5D20721F48091ED018D7F13
+:100CF00036C0C73080E5D80721F48091ED018B7FA5
+:100D00002EC0C93090E5D90719F48091ED0126C0B5
+:100D1000CB3020E5D20721F48091ED018F7E1FC0FA
+:100D2000CD3080E5D80721F48091ED018F7D17C08B
+:100D3000CF3090E5D90721F48091ED018F7B0FC072
+:100D4000C13120E5D20721F48091ED018F7707C0F2
+:100D5000C331D04531F48091ED018B7F877F809343
+:100D6000ED018091ED010E948C1D9CC08D2F992773
+:100D70008F70992781309105D9F49E012370332714
+:100D800002C0880F991F2A95E2F79C688E0144E003
+:100D9000000F111F4A95E1F700271370802B912B4C
+:100DA00053E0CC0FDD1F5A95E1F7C076DD272FC049
+:100DB0008230910531F4DC2FCC278E01016F106A4F
+:100DC00071C08330910569F4CE018370992701E0E9
+:100DD00010E002C0000F111F8A95E2F7C8019C685D
+:100DE0000FC0049709F05EC0CE018370992701E01F
+:100DF00010E002C0000F111F8A95E2F7C8019A683F
+:100E000023E0CC0FDD1F2A95E1F7C07ED7708C015F
+:100E10000C2B1D2B47C0DF708E01106243C000E019
+:100E200010E040C08E013EC001E810E43BC003E882
+:100E300010E438C002EE14E435C009EE14E432C008
+:100E40000AEE14E42FC005EB14E42CC006EB14E406
+:100E500029C007EB14E426C00CEC14E423C00DEC0D
+:100E600014E420C003E815E41DC00AE815E41AC024
+:100E700002E915E417C004E915E414C001E216E420
+:100E800011C003E216E40EC004E216E40BC005E252
+:100E900016E408C006E216E405C007E216E402C044
+:100EA0000AE216E4C801DF91CF911F910F910895D6
+:100EB00096E0799FF001112494E5899FE00DF11DE2
+:100EC0001124E60FF11DEE0FFF1FEC51FF4F85912E
+:100ED0009491803E9105E0F4803C910558F5813372
+:100EE000910509F46FC048F48932910509F463C093
+:100EF0008A32910509F46DC072C089339105E9F019
+:100F000082389105D1F08533910509F44DC067C051
+:100F1000833E910581F138F4803E9105B9F0823E1F
+:100F20009105D9F05CC0863E910561F1873E91053F
+:100F3000A1F155C00E942B0508952091ED0120FDDF
+:100F400002C021FF4CC080EE90E049C08091ED01CD
+:100F500080FFF9CF89E390E042C08091ED0182FFEC
+:100F60000EC08091ED0184FF03C080E090E037C0A7
+:100F700083EE90E034C08091ED0182FFF2CF82EEEB
+:100F800090E02DC08091ED0183FF0BC08091ED01B9
+:100F900084FDEBCF87EE90E022C08091ED0183FFCE
+:100FA000F5CF86EE90E01BC08091ED0185FF07C074
+:100FB00089E290E014C08091ED0185FFF9CF85E3CF
+:100FC00090E00DC08091ED0186FF07C08AE290E0BD
+:100FD00006C08091ED0186FFF9CF81E390E00E9489
+:100FE0003B05089508950C94F207809162010895DD
+:100FF000CF93DF9300D01F92CDB7DEB79C018091D5
+:10100000E401843019F593E099833B832A8390931C
+:10101000E9008FEF9091E800815095FD06C095EDB5
+:101020009A95F1F700008111F5CF8091E80085FFD6
+:101030000DC040E050E063E070E0CE0101960E94F8
+:10104000620A8091E8008E778093E8000F900F90FD
+:101050000F90DF91CF910895CF93DF9300D01F922F
+:10106000CDB7DEB72091E401243021F522E02983B9
+:101070009B838A8383E08093E9008FEF9091E8005F
+:10108000815095FD06C095ED9A95F1F7000081110C
+:10109000F5CF8091E80085FF0DC040E050E063E0AF
+:1010A00070E0CE0101960E94620A8091E8008E777E
+:1010B0008093E8000F900F900F90DF91CF910895EB
+:1010C0002091E4012430F1F422E02093E9002FEF95
+:1010D0003091E800215035FD06C035ED3A95F1F725
+:1010E00000002111F5CF2091E80025FF0BC040E062
+:1010F00050E065E070E00E94620A8091E8008E771F
+:101100008093E8000895CF93DF93EC019091E40180
+:10111000943009F046C080910C018823D9F0809169
+:101120000D018823B9F09093E9008FEF9091E800CA
+:10113000815095FD06C095E19A95F1F70000811167
+:10114000F5CF8091E80085FF2CC040E050E060E1E1
+:1011500070E017C081E08093E9008FEF9091E80084
+:10116000815095FD06C095ED9A95F1F7000081112B
+:10117000F5CF8091E80085FF14C040E050E068E0C2
+:1011800070E0CE010E94620A8091E8008E77809321
+:10119000E80080E1FE01A2E5B1E001900D928A95A0
+:1011A000E1F7DF91CF9108958091E301811109C0AA
+:1011B0000E94F70B0E94540C8091E200846080939F
+:1011C000E20008951092E301089508950C94FB2124
+:1011D0000E94581B0E9401220E94FA0E0C94F307F1
+:1011E00042E061EC81E00E94710B42E061EC82E040
+:1011F0000E94710B42E061EC83E00E94710B42E1BE
+:1012000061EC84E00C94710B8091E601833009F469
+:1012100055C030F4813071F0823009F48EC00895E9
+:101220008A3009F47AC08B3009F460C0893009F043
+:101230009CC020C08091E501813A09F096C0809160
+:10124000E800877F8093E8008091E9019091EA01AE
+:10125000892B21F460E182E591E003C060E080E049
+:1012600090E070E00E94AD0A8091E8008B77809357
+:10127000E80008958091E501813209F076C08091FF
+:10128000E9019091EA01009719F0039709F06DC008
+:101290008091E800877F8093E8008091E80082FDDC
+:1012A00005C08091E4018111F8CF5FC08091F10009
+:1012B000809362018091E8008B7753C08091E501B3
+:1012C000813A09F052C08091E9019091EA01892B9D
+:1012D00009F04BC08091E800877F8093E8008091FF
+:1012E000E80080FFFCCF80910C0136C08091E501C1
+:1012F0008132D9F58091E9019091EA01892BA9F514
+:101300008091E800877F8093E8000E94A60B80917F
+:10131000E70180930C010C948A148091E5018132DD
+:1013200021F58091E800877F8093E8000E94A60B5A
+:101330008091E8018093630108958091E501813AED
+:10134000A1F48091E800877F8093E8008091E80015
+:1013500080FFFCCF809163018093F1008091E800D1
+:101360008E778093E8000C94A60B089584B7877F4E
+:1013700084BF88E10FB6F8948093600010926000FB
+:101380000FBE90E080E80FB6F894809361009093D0
+:1013900061000FBE0E94490F0E94F70B0E94540C7F
+:1013A0008091E20084608093E20078940E94DA0EDB
+:1013B0000E944B0F82E091E00E94F50E0E94E9210D
+:1013C0008091E401853069F40E94191B8091E2014B
+:1013D0008823B1F30E94441B882391F30E944C0A96
+:1013E000EFCF0E94510FECCF292F33272330310547
+:1013F000C9F064F42130310581F02230310509F063
+:1014000043C08DE690E020E133E042C02132310557
+:10141000F1F02232310541F137C082E190E02DE751
+:1014200033E036C099278130910541F08230910533
+:1014300041F0892B49F5ECE0F3E005C0E4EFF2E080
+:1014400002C0ECEDF2E0849190E09F0121C0643095
+:10145000D8F4E62FF0E0EE0FFF1FEE5DFE4F208187
+:10146000318189E090E014C0643070F470E0FB01D9
+:10147000EE0FFF1FE65EFE4F20813181FB01EA5E29
+:10148000FE4F808190E004C080E090E020E030E0FA
+:10149000FA0131832083089580E189BD82E189BD0D
+:1014A00009B400FEFDCF8091D8008F7D8093D800D5
+:1014B0008091E00082608093E0008091E00081FDF7
+:1014C000FCCF0895CF92DF92EF92FF920F931F937C
+:1014D000CF93DF93EC018B016A010E94C50B811150
+:1014E00033C0C114D10439F0F60180819181081B09
+:1014F000190BC80FD91FE12CF12C0115110519F199
+:101500008091E80085FD16C08091E8008E77809379
+:10151000E800C114D10449F0F60180819181E80E00
+:10152000F91EF182E08285E00FC00E94C50B88237E
+:1015300021F30AC089918093F10001501109FFEF56
+:10154000EF1AFF0ADACF80E0DF91CF911F910F9160
+:10155000FF90EF90DF90CF9008952091EB013091B4
+:10156000EC012617370748F06115710539F4209111
+:10157000E8002E772093E80001C0B90140E0611532
+:101580007105A9F12091E401222309F443C025301B
+:1015900009F442C02091E80023FD40C02091E800FA
+:1015A00022FD32C02091E80020FFE9CF4091F300F6
+:1015B0002091F20030E0342BFC01CF016115710560
+:1015C00059F02830310540F481918093F100615049
+:1015D00071092F5F3F4FF1CF41E02830310509F00D
+:1015E00040E02091E8002E772093E800C8CF411119
+:1015F000C9CF0AC08091E401882361F0853061F091
+:101600008091E80083FD0AC08091E80082FFF2CF5C
+:1016100080E0089582E0089583E0089581E00895D0
+:101620002091EB013091EC012617370748F0611546
+:10163000710539F42091E8002E772093E80001C06D
+:10164000B901FC0120E06115710591F18091E4017F
+:10165000882309F440C0853009F43FC08091E80038
+:1016600083FD3DC08091E80082FD2FC08091E8009D
+:1016700080FFE9CF2091F3008091F20090E0922B5F
+:101680006115710559F08830910540F4249120933B
+:10169000F1003196615071090196F2CF21E008976F
+:1016A00009F020E08091E8008E778093E800CBCFAE
+:1016B0002111CCCF0AC08091E401882361F08530EC
+:1016C00061F08091E80083FD0AC08091E80082FF0C
+:1016D000F2CF80E0089582E0089583E0089581E0EC
+:1016E0000895982F973058F59093E900981739F09E
+:1016F0007091EC002091ED005091F00003C0242F78
+:10170000762F50E021FF19C03091EB003E7F3093DF
+:10171000EB003091ED003D7F3093ED003091EB0018
+:1017200031603093EB007093EC002093ED00509308
+:10173000F0002091EE0027FF07C09F5FD3CF8F708E
+:101740008093E90081E0089580E008958091E501AB
+:1017500087FF11C08091E80082FD05C08091E401FF
+:101760008111F8CF11C08091E8008B770BC0809178
+:10177000E401882349F08091E80080FFF8CF809150
+:10178000E8008E778093E80008952091E40030917E
+:10179000E50095E64091EC00842F817040FF22C067
+:1017A0008091E80080FD1CC08091E401882391F0C5
+:1017B000853091F08091EB0085FD10C04091E400F0
+:1017C0005091E5004217530729F39A01915011F700
+:1017D00084E0089582E0089583E0089581E008950B
+:1017E00080E008954091E80042FFDECF08950E9416
+:1017F000650C0E946D0CE0EEF0E0808181608083DA
+:10180000E8EDF0E080818F77808319BCA7EDB0E030
+:101810008C918E7F8C9380818F7E80831092E301E8
+:1018200008950F931F93CF93DF930E94650C0E943E
+:101830006D0CC8EDD0E088818F77888388818068BF
+:10184000888388818F7D888319BC1092E40110926F
+:10185000E0011092E2011092E10100EE10E0F801C7
+:1018600080818B7F808388818160888342E060E013
+:1018700080E00E94710BE1EEF0E080818E7F80833A
+:10188000E2EEF0E0808181608083808188608083E7
+:10189000F80180818E7F8083888180618883DF91D9
+:1018A000CF911F910F910895E8EDF0E080818F7E38
+:1018B0008083E7EDF0E080818160808384E082BFF7
+:1018C00081E08093E3010C94110CE8EDF0E080815D
+:1018D0008E7F80831092E20008951092DA001092B9
+:1018E000E10008951F920F920FB60F9211242F93CB
+:1018F0003F934F935F936F937F938F939F93AF9398
+:10190000BF93EF93FF938091E10082FF0BC0809122
+:10191000E20082FF07C08091E1008B7F8093E100AD
+:101920000E94D90E8091DA0080FF1FC08091D800FC
+:1019300080FF1BC08091DA008E7F8093DA00809157
+:10194000D90080FF0DC080E189BD82E189BD09B465
+:1019500000FEFDCF81E08093E4010E94D40805C021
+:1019600019BC1092E4010E94E2088091E10080FF1E
+:1019700019C08091E20080FF15C08091E2008E7F47
+:101980008093E2008091E20080618093E200809188
+:10199000D80080628093D80019BC85E08093E40170
+:1019A0000E94E6088091E10084FF30C08091E2004F
+:1019B00084FF2CC080E189BD82E189BD09B400FEAD
+:1019C000FDCF8091D8008F7D8093D8008091E10079
+:1019D0008F7E8093E1008091E2008F7E8093E20011
+:1019E0008091E20081608093E2008091E001882391
+:1019F00011F084E007C08091E30087FD02C081E020
+:101A000001C083E08093E4010E94E8088091E10036
+:101A100083FF29C08091E20083FF25C08091E1000F
+:101A2000877F8093E10082E08093E4011092E001DF
+:101A30008091E1008E7F8093E1008091E2008E7FB3
+:101A40008093E2008091E20080618093E20042E0B6
+:101A500060E080E00E94710B8091F00088608093CC
+:101A6000F0000E94E508FF91EF91BF91AF919F9127
+:101A70008F917F916F915F914F913F912F910F9037
+:101A80000FBE0F901F9018951F920F920FB60F92D6
+:101A900011242F933F934F935F936F937F938F9373
+:101AA0009F93AF93BF93CF93DF93EF93FF93C09137
+:101AB000E900CF708091EC00D82FD17080FDD0E884
+:101AC0001092E9008091F000877F8093F000789475
+:101AD0000E94880D1092E9008091F0008860809348
+:101AE000F000CD2BCF70C093E900FF91EF91DF9113
+:101AF000CF91BF91AF919F918F917F916F915F91A6
+:101B00004F913F912F910F900FBE0F901F901895FE
+:101B10001F93CF93DF93CDB7DEB7AA970FB6F89494
+:101B2000DEBF0FBECDBFE5EEF1E088E08E0F9091F5
+:101B3000F10091938E13FBCF0E9404098091E8007D
+:101B400083FF1FC18091E5019091E601492F50E08C
+:101B50004A30510508F015C1FA01EA5AFF4F0C94BA
+:101B60008323803881F0823809F00BC18091E9012C
+:101B70008F708093E9008091EB0085FB882780F9C6
+:101B80001092E90006C08091E1019091E20191116B
+:101B900082609091E800977F9093E8008093F10035
+:101BA0001092F100C8C0282F2D7F09F0EAC08823C9
+:101BB00019F0823061F0E5C08091E701813009F0D1
+:101BC000E0C0933009F080E08093E2012BC0809167
+:101BD000E701811127C08091E9018F7009F4D1C01C
+:101BE0008093E9002091EB0020FF1CC0933021F48A
+:101BF0008091EB00806214C09091EB009061909313
+:101C0000EB0021E030E0A90102C0440F551F8A9586
+:101C1000E2F74093EA001092EA008091EB008860BE
+:101C20008093EB001092E9008091E800877F86C0E6
+:101C30008111A7C01091E7011F778091E3008078A0
+:101C4000812B8093E3008091E800877F8093E800F8
+:101C50000E94A60B8091E80080FFFCCF8091E300FA
+:101C600080688093E300111102C082E001C083E02C
+:101C70008093E40186C08058823008F082C0809151
+:101C8000E7019091E8018C3D53E0950779F583E0F9
+:101C90008A838AE289834FB7F894DE01139620E0A5
+:101CA0003EE051E2E32FF0E050935700E49120FF33
+:101CB00003C0E295EF703F5FEF708E2F90E0EA3047
+:101CC00010F0C79601C0C0968D939D932F5F24316D
+:101CD00049F74FBF8091E800877F8093E8006AE270
+:101CE00070E0CE0101960E94AD0A14C0AE014F5FB4
+:101CF0005F4F6091E9010E94F409BC01892B09F44E
+:101D000040C09091E800977F9093E80089819A8184
+:101D10000E94100B8091E8008B778093E80031C01F
+:101D2000803879F58091E800877F8093E800809182
+:101D3000E0018093F1008091E8008E778093E800C5
+:101D40000E94A60B1EC081111CC09091E701923029
+:101D5000C0F48091E800877F8093E8009093E001D1
+:101D60000E94A60B8091E001811106C08091E300E2
+:101D700087FD02C081E001C084E08093E4010E94FD
+:101D8000F0088091E80083FF0AC08091E800877F17
+:101D90008093E8008091EB0080628093EB00AA962C
+:101DA0000FB6F894DEBF0FBECDBFDF91CF911F916C
+:101DB00008950895CF938091E4018823A1F0C09104
+:101DC000E900CF709091EC00892F817090FD80E840
+:101DD000C82B1092E9008091E80083FD0E94880DD5
+:101DE000CF70C093E900CF910895909369018093DB
+:101DF00068010895E0916801F0916901309721F040
+:101E00000190F081E02D099480E00895E09168014F
+:101E1000F0916901309721F00280F381E02D09945F
+:101E20000895E0916801F0916901309721F00480F4
+:101E3000F581E02D099408952091660130916701A4
+:101E40008217930771F09093670180936601E09188
+:101E50006801F0916901309721F00680F781E02D4B
+:101E600009940895209164013091650182179307C8
+:101E700071F09093650180936401E0916801F091A5
+:101E80006901309721F00084F185E02D09940895CF
+:101E900008950C94480F0E945E1B0E940B040C9442
+:101EA000241CCF92DF92EF92FF920F931F93CF9358
+:101EB000DF93CDB7DEB72B970FB6F894DEBF0FBE1A
+:101EC000CDBF0E9423048BE6C82E81E0D82E00E00F
+:101ED00010E0E02E802F0E941105F60141916F0164
+:101EE000F42EF826B1F40F5F1F4F0E30110589F75D
+:101EF0008FEF89838A831B820E94671B8160782F02
+:101F00009D838C8349815A816B818D810E94F40F5E
+:101F100040C09091CD0191FF04C08B870E941705AE
+:101F20008B8520E030E04F2D50E0922FBA01022E39
+:101F300002C0759567950A94E2F760FF24C02E836E
+:101F4000EF8221E030E0690102C0CC0CDD1C9A95E3
+:101F5000E2F790E08C219D21892B09F420E028876D
+:101F60000E94671B8160782F9A8789874E815F81E5
+:101F700068858A850E94F40FF801E559FE4F80813B
+:101F8000C826C08206C02F5F3F4F2630310569F654
+:101F9000AACF0E940B1F10916A010E94FA0E181717
+:101FA000A1F00E94FA0E80936A012B960FB6F89466
+:101FB000DEBF0FBECDBFDF91CF911F910F91FF907C
+:101FC000EF90DF90CF900C94F3072B960FB6F89418
+:101FD000DEBF0FBECDBFDF91CF911F910F91FF905C
+:101FE000EF90DF90CF900895CF93DF93CDB7DEB71A
+:101FF0002B970FB6F894DEBF0FBECDBF4F83588727
+:1020000069877A878B87DE01119686E0FD01119240
+:102010008A95E9F785E0FE01379601900D928A9541
+:10202000E1F749815A816B817C818D819E810E947B
+:1020300024172B960FB6F894DEBF0FBECDBFDF91ED
+:10204000CF9108950895CF93882309F4C2C0C82F73
+:10205000823859F40E94FA0E81FDBBC089E30E94C8
+:10206000CD190E949A1A89E30CC0833879F40E9432
+:10207000FA0E80FDAEC083E50E94CD190E949A1A27
+:1020800083E50E940F1ACF910C949A1A843859F460
+:102090000E94FA0E82FD9DC087E40E94CD190E9425
+:1020A0009A1A87E4EECF8CEF8C0F813A48F48C2F8C
+:1020B0000E944E2181118DC08C2F0E94CD19E3CF3B
+:1020C00080E28C0F883048F4C77081E001C0880F2F
+:1020D000CA95EAF70E94531AD6CF8BE58C0F83304E
+:1020E00078F4C53A29F0C63A31F083E890E005C0AB
+:1020F00081E890E002C082E890E0CF910C941C0F40
+:1021000088E58C0F833108F064C0C83A39F1C93AC8
+:1021100041F1CA3A49F1CB3A51F1CC3A59F1CD3AB1
+:1021200061F1C03B69F1CE3A71F1CF3A79F1C13B2F
+:1021300081F1C23B89F1C33B91F1C43B99F1C53BAD
+:10214000A1F1C63BA9F1C73BB1F1C83BB9F1C93B0D
+:10215000C1F1CA3BC9F180E090E038C082EE90E066
+:1021600035C089EE90E032C08AEE90E02FC085EB5A
+:1021700090E02CC086EB90E029C087EB90E026C071
+:102180008CEC90E023C08DEC90E020C083E891E0DF
+:102190001DC08AE891E01AC082E991E017C084E985
+:1021A00091E014C081E292E011C083E292E00EC09F
+:1021B00084E292E00BC085E292E008C086E292E001
+:1021C00005C087E292E002C08AE292E0CF910C94CF
+:1021D000320FCF910895882309F44BC0823859F407
+:1021E0000E94FA0E81FF45C089E30E94CD190E942A
+:1021F0009A1A89E30CC0833871F40E94FA0E80FFAA
+:1022000038C083E50E94CD190E949A1A83E50E9486
+:102210000F1A0C949A1A843859F40E94FA0E82FF0D
+:1022200028C087E40E94CD190E949A1A87E4EFCF54
+:102230009CEF980F913A58F390E2980F983050F431
+:10224000877091E001C0990F8A95EAF7892F0E9463
+:10225000591ADFCF9BE5980F933020F480E090E08F
+:102260000C941C0F885A833120F480E090E00C9489
+:10227000320F0895882321F00E94531A0C949A1A61
+:102280000895882321F00E94591A0C949A1A0895EF
+:10229000BF92CF92DF92EF92FF920F931F93CF9353
+:1022A000DF9300D000D000D0CDB7DEB725E0FC0131
+:1022B000DE01119601900D922A95E1F7FC01D08084
+:1022C00011810281258122952F7043815481452BF4
+:1022D00009F4FCC21F3F21F4FFEFDF1609F4F6C238
+:1022E0007C012E830E942210D9821A8369817A810F
+:1022F000802F0E94C919182FB92E0E947E190E94A2
+:1023000045182E81002319F00E94701A2E81EB2DA2
+:10231000E295EF70F0E0E05AFF4F0C9483238B2D91
+:10232000807F9B2D9F70F92E882319F0F29480EF07
+:10233000F822002389F0FF2009F475C280E2810FA2
+:10234000883020F48F2D0E94531A03C08F2D0E94D5
+:10235000631A0E949A1A67C2812F0E94EB10FF2015
+:1023600009F4B4C2105E8F2D183018F40E94591A67
+:1023700002C00E94691A26960FB6F894DEBF0FBEFF
+:10238000CDBFDF91CF911F910F91FF90EF90DF9024
+:10239000CF90BF900C949A1A3B2D307F8B2D8F706D
+:1023A000303211F08295807F112319F0113021F124
+:1023B0002CC00023B9F0222309F4A0C1213009F078
+:1023C0009DC126960FB6F894DEBF0FBECDBFDF913C
+:1023D000CF911F910F91FF90EF90DF90CF90BF9022
+:1023E0000C94831A222319F0213009F46FC28E83D2
+:1023F0000E94861A8E8196C1002321F0223008F0B7
+:1024000065C27CC1211162C28DC1002321F022234B
+:1024100009F474C108C2222309F484C119C22B2D06
+:1024200026952695237030E02115310521F02130C5
+:102430003105D1F04BC2002321F0812F9B2D9370E9
+:1024400002C080E090E026960FB6F894DEBF0FBE83
+:10245000CDBFDF91CF911F910F91FF90EF90DF9053
+:10246000CF90BF900C941C0F002321F0812F9B2D47
+:10247000937002C080E090E026960FB6F894DEBF1D
+:102480000FBECDBFDF91CF911F910F91FF90EF90C5
+:10249000DF90CF90BF900C94320F812F002319F062
+:1024A0000E94131E02C00E947B1E26960FB6F8944F
+:1024B000DEBF0FBECDBFDF91CF911F910F91FF9077
+:1024C000EF90DF90CF90BF900C94001F8B2D837006
+:1024D00009F07BC00111FAC1812F82958695877022
+:1024E000880F880F912F9F70C92ED12CE12CF12CD1
+:1024F000082E04C0CC0CDD1CEE1CFF1C0A94D2F785
+:1025000014FF12C04FE050E060E070E004C0440FE0
+:10251000551F661F771F8A95D2F7CB01BA016095C8
+:1025200070958095909503C060E070E0CB012B2DF5
+:10253000269526952370422F50E042305105D9F060
+:102540004330510569F16C297D298E299F2941303D
+:10255000510551F126960FB6F894DEBF0FBECDBFE0
+:10256000DF91CF911F910F91FF90EF90DF90CF906F
+:10257000BF900C946C186C297D298E299F29269672
+:102580000FB6F894DEBF0FBECDBFDF91CF911F9184
+:102590000F91FF90EF90DF90CF90BF900C94881830
+:1025A0000E946C18C701B60126960FB6F894DEBFDC
+:1025B0000FBECDBFDF91CF911F910F91FF90EF9094
+:1025C000DF90CF90BF900C945018002319F08B2D02
+:1025D000817001C08695882309F478C1812F829586
+:1025E00086958770880F880F912F9F70C92ED12CE8
+:1025F000E12CF12C082E04C0CC0CDD1CEE1CFF1CC1
+:102600000A94D2F714FF12C04FE050E060E070E08F
+:1026100004C0440F551F661F771F8A95D2F7CB0160
+:10262000BA01609570958095909503C060E070E068
+:10263000CB012B2D269526952370422F50E042305A
+:102640005105D9F04330510569F16C297D298E2956
+:102650009F294130510551F126960FB6F894DEBFFF
+:102660000FBECDBFDF91CF911F910F91FF90EF90E3
+:10267000DF90CF90BF900C9446196C297D298E294C
+:102680009F2926960FB6F894DEBF0FBECDBFDF910F
+:10269000CF911F910F91FF90EF90DF90CF90BF905F
+:1026A0000C9462190E944619C701B60126960FB60E
+:1026B000F894DEBF0FBECDBFDF91CF911F910F9178
+:1026C000FF90EF90DF90CF90BF900C942A19103FAD
+:1026D000D1F118F4103E50F4A1C0123F09F463C0C8
+:1026E00008F44CC0133F09F473C098C01F708B2DC1
+:1026F0008F710023A1F00E94C318812F26960FB678
+:10270000F894DEBF0FBECDBFDF91CF911F910F9127
+:10271000FF90EF90DF90CF90BF900C943A110E9401
+:10272000E418812F26960FB6F894DEBF0FBECDBFFA
+:10273000DF91CF911F910F91FF90EF90DF90CF909D
+:10274000BF900C9441110023A9F02111BFC08B2D23
+:102750008F7126960FB6F894DEBF0FBECDBFDF9106
+:10276000CF911F910F91FF90EF90DF90CF90BF908E
+:102770000C940919223008F0A9C0E9CF0023A9F070
+:102780008B2D8F7126960FB6F894DEBF0FBECDBF8E
+:10279000DF91CF911F910F91FF90EF90DF90CF903D
+:1027A000BF900C94C318002359F38B2D8F7126967C
+:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152
+:1027C0000F91FF90EF90DF90CF90BF900C94E418A2
+:1027D000002399F08B2D8F7126960FB6F894DEBFEB
+:1027E0000FBECDBFDF91CF911F910F91FF90EF9062
+:1027F000DF90CF90BF900C94AE1826960FB6F89449
+:10280000DEBF0FBECDBFDF91CF911F910F91FF9023
+:10281000EF90DF90CF90BF900C94A4180023A9F004
+:10282000222309F4ADCF812F26960FB6F894DEBF90
+:102830000FBECDBFDF91CF911F910F91FF90EF9011
+:10284000DF90CF90BF900C942310222309F4ADCFDA
+:10285000812F26960FB6F894DEBF0FBECDBFDF9155
+:10286000CF911F910F91FF90EF90DF90CF90BF908D
+:102870000C94EB104B2D4F70612FC7010E94AB02DF
+:1028800026960FB6F894DEBF0FBECDBFDF91CF9175
+:102890001F910F91FF90EF90DF90CF90BF900C941D
+:1028A000C8174B2D4F70612FC70126960FB6F894AD
+:1028B000DEBF0FBECDBFDF91CF911F910F91FF9073
+:1028C000EF90DF90CF90BF900C94180526960FB62E
+:1028D000F894DEBF0FBECDBFDF91CF911F910F9156
+:1028E000FF90EF90DF90CF90BF9008950E94701AF4
+:1028F0000E94801A0E94451A0E949A1A0E94B11FD3
+:102900000E94001F80E090E00E941C0F80E090E099
+:102910000C94320F0E94601A0C9476140E94BE1917
+:10292000292F22952F7030E02C3031054CF42A30BD
+:1029300031056CF4225031092230310588F407C08A
+:102940002C30310549F02F30310531F009C0803E7F
+:1029500048F0803F29F406C093FB882780F908954A
+:1029600080E0089581E00895CF93DF9300D000D0F8
+:102970001F92CDB7DEB70F900F900F900F900F9072
+:10298000DF91CF910895CF93DF9300D000D000D096
+:10299000CDB7DEB726960FB6F894DEBF0FBECDBF1B
+:1029A000DF91CF9108951F93CF93DF93C091790169
+:1029B00016E080917A01C81799F0D0E01C9FF001D1
+:1029C0001D9FF00D1124E558FE4F40815181628119
+:1029D0007381848195810E94C3142196C770E9CFC9
+:1029E000DF91CF911F9108954091AB015091AC01BF
+:1029F0006091AD017091AE018091AF019091B001F5
+:102A00000C94C3148091B00182958F7009F054C06A
+:102A10008091AD01882309F44FC080917901A09184
+:102A20007A016091AB017091AC014091AE0150917F
+:102A3000AF01B6E08A1709F43FC090E04115510597
+:102A4000C1F17F3F11F46F3FA1F1B89FF001B99F31
+:102A5000F00D1124E558FE4F218172132AC0208108
+:102A6000621327C02281211124C0238134812417BD
+:102A7000350710F421503109241B350B283C310552
+:102A8000C0F42091B0012F7020612093B00126E0A6
+:102A9000289FF001299FF00D1124E058FE4F8081FE
+:102AA0008F70806180838BEA91E00E9448110C94C2
+:102AB000D31401968770BECF0895CF92DF92EF9224
+:102AC000FF920F931F93CF93DF93CDB7DEB762973B
+:102AD0000FB6F894DEBF0FBECDBF8C0185E0F801C4
+:102AE000DE011D9601900D928A95E1F7D8014C9177
+:102AF00011965C91119712966C9112971396CD9046
+:102B0000DC9014973091AB017091AC018091AE01D3
+:102B10009091AF01009709F46BC17F3F19F43F3FDB
+:102B200009F466C1E090AD01EE2009F4C0C0209127
+:102B3000B001C816D90628F0F601E81BF90BCF0141
+:102B400004C0809590958C0D9D1DFF24F394883CC6
+:102B5000910578F0F12C207F09F0C6C07C2DD98A30
+:102B6000C88A89890E94B4148BEA91E00E944811B6
+:102B7000B1C0822F807F09F046C0751314C0341392
+:102B800012C0611110C02F7020612093B0010E940B
+:102B9000F4148BEA91E00E9448118091B001D801B1
+:102BA00015968C932EC0CD2819F15F3F11F44F3F3D
+:102BB000F9F0F62E61111CC08091790120917A0103
+:102BC00036E0821709F45AC090E0389FF001399F2F
+:102BD000F00D1124E558FE4F7181571306C0708126
+:102BE000471303C07281711103C001968770E9CF4A
+:102BF000F62E662309F418C18091B001816080939C
+:102C0000B001F12C11C1751308C0341306C0611155
+:102C100004C08091B001D801C3C04D875E878D8507
+:102C20009E856A8B0E948E146A898823E1F166234F
+:102C3000D1F12091B001822F82958F7090E00297A0
+:102C400074F08091AB019091AC0198878F831986C5
+:102C5000DB86CA862C87CE0107960E94481186E043
+:102C6000F801ABEAB1E001900D928A95E1F70E947C
+:102C700002150E94F414FF24F394D6C04D875E879A
+:102C80008D859E850E94BE19292F22952F7030E0D8
+:102C9000223031050CF0BCC09F7009F0B6C0805ED8
+:102CA000883008F4C1C0C8010E944811E4CFC8169A
+:102CB000D90608F453C0F601E81BF90BCF01883C94
+:102CC000910508F450C0F12C7C2DD98AC88A8989D5
+:102CD0000E94B414EBEAF1E086E0DF011D928A95D0
+:102CE000E9F70E94F414A0C0751314C0341312C085
+:102CF000611110C08091B001F8018583C8010E9464
+:102D0000481186E0EBEAF1E0DF011D928A95E9F7D0
+:102D1000FE2C8AC04D875E878D859E856A8B0E94BA
+:102D20008E146A89882309F4BECF662309F4BBCFC9
+:102D30002091B001822F82958F7090E002970CF461
+:102D40008ECF8091AB019091AC019A8389831B82D5
+:102D5000DD82CC822E83CE0101967FCF8095909527
+:102D60008C0D9D1DACCFF62E662309F49CCF7513F8
+:102D70002EC034132CC02091B00120FD1FC0822F23
+:102D800082958F70D9F0D80115962C9315978F30B6
+:102D900049F08F5F982F9295907F822F8F70892BAB
+:102DA00015968C93C8010E94481186E0F801ABEAA1
+:102DB000B1E001900D928A95E1F793CF86E0F8019A
+:102DC000ABEAB1E001900D928A95E1F72DC04D87F5
+:102DD0005E878D859E850E948E14811140CF8091E3
+:102DE000B00181608093B001C8010E9448111CC0ED
+:102DF000662309F458CF4D875E878D859E850E9496
+:102E00008E14882309F44FCF2ACF811148CF0CC0EC
+:102E1000243031050CF047CF9F7009F440CFF80102
+:102E20009581907F09F03BCF8F2D62960FB6F89475
+:102E3000DEBF0FBECDBFDF91CF911F910F91FF90ED
+:102E4000EF90DF90CF9008951F93CF93DF93CDB78E
+:102E5000DEB72C970FB6F894DEBF0FBECDBF4F8301
+:102E6000588769877A878B879C87CE0107960E944F
+:102E70005D15882369F08F8198852A853B85232BF2
+:102E8000F1F19F3F09F063C08F3F09F060C037C088
+:102E900086E0FE013796DE01119601900D928A952B
+:102EA000E1F76F817885EA85FB85309741F17F3FB7
+:102EB00011F46F3F21F120917A0130E0C9010196B0
+:102EC000877099274091790150E08417950709F49C
+:102ED00047C069837A83FD83EC8396E0929FD0019B
+:102EE000939FB00D1124A558BE4FFE01319601905D
+:102EF0000D929A95E1F780937A010E94D31416E01F
+:102F00008091790190917A018917C1F1189FC001D0
+:102F1000112485589E4F0E945D15882379F1E09118
+:102F200079011E9FF0011124E558FE4F4081518127
+:102F300062817381848195810E94C314809179019B
+:102F400090E001968770992780937901D9CF4F81BE
+:102F5000588569857A858B859C850E94C314CFCF5F
+:102F60000E948A1410927A0110927901EBEAF1E042
+:102F700086E0DF011D928A95E9F7C1CF2C960FB646
+:102F8000F894DEBF0FBECDBFDF91CF911F910895A2
+:102F9000EF92FF920F931F93CF93DF938C01892BB6
+:102FA00009F46CC0F12CEE24E394E8012196F801B9
+:102FB0008491843740F4843008F051C0813081F02E
+:102FC000823019F15BC0853709F444C0A8F19CE751
+:102FD000980F903708F052C08F770E94EB1041C0D5
+:102FE0000E5F1F4FFE01C49180E28C0F883048F4C1
+:102FF000C7708E2D01C0880FCA95EAF70E94731A18
+:1030000014C08C2F0E9423102DC00E5F1F4FFE0195
+:10301000C49180E28C0F883058F4C7708E2D01C0A7
+:10302000880FCA95EAF70E94791A0E949A1A1AC064
+:103030008C2F0E94EB1016C00E5F1F4FFE01C49133
+:10304000CC2381F08FE99FE00197F1F700C00000E9
+:10305000C150F6CF0E5F1F4FFE01F49003C00E94D7
+:1030600023108E018F2D882309F49FCFEFE9FFE015
+:103070003197F1F700C000008150F5CFDF91CF917B
+:103080001F910F91FF90EF90089508956093B501FF
+:103090007093B6018093B7019093B8010C947614A5
+:1030A0000F931F930091B5011091B6012091B701C4
+:1030B0003091B801DC01CB01802B912BA22BB32BDB
+:1030C0008093B5019093B601A093B701B093B80176
+:1030D0001F910F910C9476140F931F930091B501DB
+:1030E0001091B6012091B7013091B801DC01CB01FC
+:1030F00080239123A223B3238093B5019093B6013B
+:10310000A093B701B093B8011F910F910C9476145E
+:103110000F931F930091B5011091B6012091B70153
+:103120003091B801DC01CB0180279127A227B3277A
+:103130008093B5019093B601A093B701B093B80105
+:103140001F910F910C9476141092B1011092B2015C
+:103150001092B3011092B4010C94761441E050E047
+:1031600060E070E004C0440F551F661F771F8A950A
+:10317000D2F74093B1015093B2016093B3017093C1
+:10318000B4010C94761441E050E060E070E004C0BB
+:10319000440F551F661F771F8A95D2F78091B101A2
+:1031A0009091B201A091B301B091B401482B592B79
+:1031B0006A2B7B2B4093B1015093B2016093B30112
+:1031C0007093B4010C94761441E050E060E070E03C
+:1031D00004C0440F551F661F771F8A95D2F740958C
+:1031E0005095609570958091B1019091B201A09138
+:1031F000B301B091B401482359236A237B23409340
+:10320000B1015093B2016093B3017093B4010C9477
+:10321000761441E050E060E070E004C0440F551FB8
+:10322000661F771F8A95D2F78091B1019091B20104
+:10323000A091B301B091B401482759276A277B2791
+:103240004093B1015093B2016093B3017093B40104
+:103250000C9476140F931F930091B1011091B20159
+:103260002091B3013091B401DC01CB01802B912B73
+:10327000A22BB32B8093B1019093B201A093B30121
+:10328000B093B4011F910F910C9476140F931F9378
+:103290000091B1011091B2012091B3013091B401BC
+:1032A000DC01CB0180239123A223B3238093B101BE
+:1032B0009093B201A093B301B093B4011F910F9109
+:1032C0000C9476140F931F930091B1011091B201E9
+:1032D0002091B3013091B401DC01CB01802791270B
+:1032E000A227B3278093B1019093B201A093B301B9
+:1032F000B093B4011F910F910C9476140895CF925E
+:10330000DF92EF92FF920F931F93CF93DF938C0185
+:10331000C090B501D090B601E090B701F090B8012F
+:103320008091B1019091B201A091B301B091B4012B
+:10333000C82AD92AEA2AFB2ACFE1D0E0D701C60160
+:103340000C2E04C0B695A795979587950A94D2F749
+:1033500080FF06C0B8018C2F0E945807019721F406
+:10336000219760F780E001C08C2FDF91CF911F91F2
+:103370000F91FF90EF90DF90CF900895CF93DF9360
+:10338000EC010E947F19BE010E945807DF91CF9186
+:103390000895CB010E94BE19089590910C019923C4
+:1033A00021F090910D01911109C020910E013091F1
+:1033B0000F01F90132969FEF40E01FC0982F9695BC
+:1033C000969596959F3050F5E0910E01F0910F0182
+:1033D000E90FF11D877021E030E0A90102C0440F20
+:1033E000551F8A95E2F7CA019181892B818308953F
+:1033F0009F3F39F04F5F4E3041F051915813F8CF55
+:103400000DC05111F7CF942FF5CF9F3F39F0F9013F
+:10341000E90FF11D97FDFA95828308950895909123
+:103420000C01992321F090910D01911109C0209177
+:103430000E0130910F01F9013296205F3F4F1FC0FE
+:10344000982F9695969596959F30F0F4E0910E0101
+:10345000F0910F01E90FF11D877021E030E0A90123
+:1034600002C0440F551F8A95E2F7CA0180959181E9
+:103470008923818308953196E217F30729F090811B
+:103480009813F9CF1082F7CF089581E090E0E09192
+:103490000E01F0910F01E80FF91F108201968031A3
+:1034A0009105A9F708959091CC01892B8093CC01C7
+:1034B000089580959091CC0189238093CC01089543
+:1034C0001092CC0108959091CB01892B8093CB0170
+:1034D000089580959091CB0189238093CB01089525
+:1034E0001092CB0108959091CA01892B8093CA0153
+:1034F000089580959091CA0189238093CA01089507
+:103500001092CA0108958093B90108951092B901EB
+:10351000089580910E0190910F01FC0131969C015C
+:10352000205F3F4F80E0919191118F5FE217F30789
+:10353000D1F70895E0910E01F0910F018091CC0137
+:103540008083E0910E01F0910F0190818091CB0179
+:10355000892B8083E0910E01F0910F019081809181
+:10356000CA01892B80838091B901882361F0E091A1
+:103570000E01F0910F019081892B80830E94891A9E
+:1035800081111092B90180910E0190910F010C945C
+:10359000060FCF92DF92EF92FF926C01EE24FF2490
+:1035A000C114D104E104F10421F0C701B60120E106
+:1035B00001C020E0C72ED82EE92EFF24C114D1046B
+:1035C000E104F10419F0285FC701B6016B017C0129
+:1035D00054E0F694E794D794C7945A95D1F7C11460
+:1035E000D104E104F10419F02C5FC701B6016B01AD
+:1035F0007C0142E0F694E794D794C7944A95D1F7BA
+:10360000C114D104E104F10419F02E5FC701B60121
+:10361000DC01CB01B695A79597958795892B8A2BC9
+:103620008B2B09F02F5F822FFF90EF90DF90CF90D0
+:1036300008958091E401843021F11092CE0120E4BC
+:1036400088E190E00FB6F894A895809360000FBED3
+:103650002093600080E00E94F30783B7817F84603D
+:1036600083BF83B7816083BF7894889583B78E7F4B
+:1036700083BF88E10FB6F8948093600010926000D9
+:103680000FBE089508950895CF930E94421B0E9493
+:1036900023040E94431BC0E08C2F0E94110581115E
+:1036A00004C0CF5FCE30C1F701C081E0CF91089553
+:1036B0000E948A140E94FA0E0C94F30782E084BDE3
+:1036C00093E095BD9AEF97BD80936E0008952FB754
+:1036D000F8948091CF019091D001A091D101B09147
+:1036E000D2012FBF0895CF92DF92EF92FF920F93F6
+:1036F0001F932FB7F8944091CF015091D001609162
+:10370000D1017091D2012FBF6A017B01EE24FF2409
+:103710008C0120E030E0C016D106E206F30610F47A
+:10372000415051099A01281B390BC9011F910F9172
+:10373000FF90EF90DF90CF9008951F920F920FB6F9
+:103740000F9211248F939F93AF93BF938091CF01DA
+:103750009091D001A091D101B091D2010196A11D0B
+:10376000B11D8093CF019093D001A093D101B0936C
+:10377000D201BF91AF919F918F910F900FBE0F908B
+:103780001F9018950E94F70BF8942FEF87EA91E6A7
+:10379000215080409040E1F700C0000087E090EBAE
+:1037A000DC018093EE019093EF01A093F001B093C0
+:1037B000F1019CE088E10FB6F894A8958093600031
+:1037C0000FBE90936000FFCFEF92FF920F931F9375
+:1037D000CF93DF93D82FC0E08C2F0E94110500E01B
+:1037E00010E0E82EF12CC701002E02C095958795B8
+:1037F0000A94E2F780FD06C00F5F1F4F06301105E7
+:1038000091F709C0602F7C2F80E00E941905D81322
+:10381000F3CF81E004C0CF5FCE30F1F680E0DF91DE
+:10382000CF911F910F91FF90EF900895CF93C82FE4
+:103830008CE20E94E41B882321F08C2FCF910C9402
+:10384000E41B80E0CF910895CF930E946B1D8111FE
+:1038500002C00E94511DC5E6C15049F00E942304D8
+:103860008FE39CE90197F1F700C00000F5CF89E2F2
+:103870000E94161C811113C18AE20E94161C81113C
+:103880000E94511D85E00E94161C81110E94C21BDE
+:103890000E94761D8093CD0187E00E94161C88232C
+:1038A000A9F18BE10E94161C882351F08091CD0173
+:1038B00081FB222720F991E0922790FB81F90EC02D
+:1038C0008EE00E94161C882361F08091CD0182FB5E
+:1038D000222720F991E0922790FB82F98093CD0175
+:1038E00015C080E10E94161C9091CD01882341F003
+:1038F00093FB222720F981E0822780FB93F904C003
+:10390000892F809580FB90F99093CD018091CD0116
+:103910000E947A1D0E94881D8093ED0180EE0E9416
+:10392000161C882341F08091ED01982F909590FB13
+:1039300080F98093ED0189E30E94161C882359F0D9
+:103940008091ED0181FB222720F991E0922790FBE5
+:1039500081F98093ED0182EE0E94161C882359F0B4
+:103960008091ED0182FB222720F991E0922790FBC4
+:1039700082F98093ED0186EE0E94161C882359F08F
+:103980008091ED0183FB222720F991E0922790FBA3
+:1039900083F98093ED0183EE0E94161C882359F071
+:1039A0008091ED0184FB222720F991E0922790FB82
+:1039B00084F98093ED0185E30E94161C882359F059
+:1039C0008091ED0185FB222720F991E0922790FB61
+:1039D00085F98093ED0181E30E94161C882359F03C
+:1039E0008091ED0186FB222720F991E0922790FB40
+:1039F00086F98093ED0181E10E94161C882359F01D
+:103A00008091ED0187FB222720F991E0922790FB1E
+:103A100087F98093ED018091ED010E948C1D8091CA
+:103A2000ED0187FB882780F980930D0187E20E94D2
+:103A3000161CC82F8EE10E94161C8111C2608FE1F6
+:103A40000E94161C8111C46080E20E94161C811124
+:103A5000C86081E20E94161C8111C06182E20E944E
+:103A6000161C8111C06283E20E94161C8111C06481
+:103A700084E20E94161C882311F0C06802C0CC2387
+:103A800029F08C2F0E94831D6C2F03C00E947F1D84
+:103A9000682F70E080E090E0CF910C944618CF91B1
+:103AA00008956DEE7EEF80E090E00E94BD2360E01F
+:103AB00082E090E00E94AB2360E083E090E00E940F
+:103AC000AB2360E084E090E00E94AB2360E085E0FF
+:103AD00090E00C94AB2380E090E00E94A52321E0CD
+:103AE0008D3E9E4F09F020E0822F089582E090E005
+:103AF0000C949D23682F82E090E00C94AB2383E02C
+:103B000090E00C949D23682F83E090E00C94AB230D
+:103B100084E090E00C949D23682F84E090E00C9466
+:103B2000AB238091D50180FF0BC06091130185E02C
+:103B3000689FB001112475956795759567952BC0A1
+:103B400081FF09C06091130185E0689FB0011124D5
+:103B50007595679520C082FF07C06091130185E0CD
+:103B6000689FB001112417C09091D6019923D1F01C
+:103B700060911201961788F72091130185E0289F24
+:103B800090011124929FA001939F500D112470E089
+:103B9000CA010E946F236038710540F461157105F8
+:103BA00039F002C065E070E0862F08958FE7089530
+:103BB00081E008958091D50180FF08C060911101D6
+:103BC00070E0759567957595679521C081FF06C072
+:103BD0006091110170E07595679519C082FF04C06E
+:103BE0006091110170E010C09091D6019923C1F04D
+:103BF000609110019617A0F780911101899FC00173
+:103C0000112470E00E946F236038710528F461155B
+:103C1000710521F0862F08958FE7089581E00895BA
+:103C200061E070E0F4CF803F21F40E94911D819506
+:103C300004C0813F29F40E94911D8093D901089509
+:103C4000823F21F40E94911D819504C0833F29F495
+:103C50000E94911D8093D8010895893F19F40E9414
+:103C6000DA1D05C08A3F31F40E94DA1D81958093E8
+:103C7000DA0108958B3F21F40E94DA1D819504C07A
+:103C80008C3F29F40E94DA1D8093DB010895843F64
+:103C900021F48091D701816017C0853F21F4809184
+:103CA000D701826011C0863F21F48091D7018460E2
+:103CB0000BC0873F21F48091D701886005C0883F01
+:103CC00031F48091D70180618093D70108958D3FB1
+:103CD00021F48091D50181600BC08E3F21F4809149
+:103CE000D501826005C08F3F29F48091D5018460A1
+:103CF0008093D5010895803F39F48091D90187FFE1
+:103D00006CC01092D90169C0813F29F48091D9011A
+:103D10001816BCF362C09091D801823F29F497FF36
+:103D20005CC01092D80159C0833F19F41916CCF326
+:103D300054C0893F41F48091DA0118160CF04DC04F
+:103D40001092DA014AC08A3F29F48091DA0187FF94
+:103D500044C0F6CF8B3F39F48091DB0187FF3DC033
+:103D60001092DB013AC08C3F29F48091DB011816D8
+:103D7000BCF333C0843F21F48091D7018E7F17C0FC
+:103D8000853F21F48091D7018D7F11C0863F21F4BA
+:103D90008091D7018B7F0BC0873F21F48091D701A1
+:103DA000877F05C0883F31F48091D7018F7E809353
+:103DB000D70113C08D3F21F48091D5018E7F0BC0B8
+:103DC0008E3F21F48091D5018D7F05C08F3F29F46E
+:103DD0008091D5018B7F8093D5018091D80181118D
+:103DE0000EC08091D90181110AC08091DA01811140
+:103DF00006C08091DB01811102C01092D6010895A6
+:103E000087ED91E00E94110F0E94671B9093D401EF
+:103E10008093D30108951F93CF93DF938091D301B3
+:103E20009091D4010E94731BAC019091D60199230B
+:103E300021F02091140130E006C0209115018AE0A4
+:103E4000289F900111244217530708F486C08091DF
+:103E5000D801C091D901D091DA011091DB01811113
+:103E600007C0C11176C0D11174C0111172C075C0E4
+:103E70009F3F19F09F5F9093D601181624F40E947B
+:103E8000911D8093D8018091D80187FF05C00E94C1
+:103E9000911D81958093D8011C1624F40E94911DD8
+:103EA0008093D9018091D90187FF05C00E94911D9F
+:103EB00081958093D9016091D801662339F1C09131
+:103EC000D901CC2319F1772767FD7095872F972F9C
+:103ED0000E94802223E333E343E35FE30E94E42272
+:103EE0000E944D226093D8016C2F772767FD709553
+:103EF000872F972F0E94802223E333E343E35FE37E
+:103F00000E94E4220E944D226093D9011D1624F4E0
+:103F10000E94DA1D8093DA018091DA0187FF05C0E3
+:103F20000E94DA1D81958093DA01111624F40E9413
+:103F3000DA1D8093DB018091DB0187FF05C00E94C1
+:103F4000DA1D81958093DB01DF91CF911F910C9455
+:103F5000001F9F3F09F08ECF96CFDF91CF911F9129
+:103F60000895E7EDF1E085E0DF011D928A95E9F71C
+:103F70001092D6011092D5010895833081F128F472
+:103F8000813059F08230D1F00895853009F449C06C
+:103F9000B8F1863009F456C0089580911501262F96
+:103FA00030E0280F311D2F3F310524F4680F609356
+:103FB000150108958FEF80931501089580911401E4
+:103FC000262F30E0280F311D2F3F310524F4680FD4
+:103FD0006093140108958FEF8093140108958091E8
+:103FE0001301262F30E0280F311D2F3F310524F417
+:103FF000680F6093130108958FEF80931301089564
+:1040000080911201262F30E0280F311D2F3F3105FE
+:1040100024F4680F6093120108958FEF80931201CA
+:10402000089580911101262F30E0280F311D2F3F78
+:10403000310524F4680F6093110108958FEF809388
+:104040001101089580911001262F30E0280F311DB5
+:104050002F3F310524F4680F6093100108958FEF0E
+:10406000809310010895833011F128F4813049F0D4
+:10407000823091F00895853081F120F18630C1F1D0
+:10408000089580911501681720F4861B809315010F
+:10409000089510921501089580911401681720F475
+:1040A000861B809314010895109214010895809145
+:1040B0001301681720F4861B809313010895109252
+:1040C0001301089580911201681720F4861B8093D4
+:1040D000120108951092120108958091110168173C
+:1040E00020F4861B80931101089510921101089508
+:1040F00080911001681720F4861B809310010895A9
+:104100001092100108950F931F938D3109F46BC025
+:1041100008F03FC08E3009F47FC0C0F4873009F446
+:1041200069C068F4863009F0B1C08091CD01817F0B
+:104130008E7F8093CD0181E08093DD01A8C088301F
+:1041400009F4A2C08B3009F49FC0A0C0863109F4E5
+:104150009BC078F4803109F472C0813109F096C0B7
+:104160000E948A1490910D0181E0892780930D01AE
+:104170008BC0893109F488C08B3109F087C08091E8
+:10418000CD0181FB222720F991E0922790FB81F954
+:104190004CC0853309F470C048F4873209F46CC010
+:1041A00008F459C0893209F467C070C0833438F408
+:1041B0008A3308F04EC0883309F466C067C0833480
+:1041C00009F45AC0883409F061C00E948A140FEFC4
+:1041D00013ED20E3015010402040E1F700C0000043
+:1041E0000E94C21B51C00E9407220E94FA0E0E9428
+:1041F000F3074AC09091CD01892F8095817080FB93
+:1042000090F929F0966098609093CD0140C0997F15
+:10421000977F9093CD0138C08091CD0182FB2227FA
+:1042200020F991E0922790FB82F98093CD019923A8
+:1042300059F18091CD0181608093CD0125C080919D
+:10424000CD0183FB222720F991E0922790FB83F98F
+:10425000ECCF895301C08D5141E050E060E070E047
+:104260008A019B0104C0000F111F221F331F8A9572
+:10427000D2F7C901B80104C061E070E080E090E0CD
+:104280000E9446180E948A1481E001C080E01F91BC
+:104290000F91089580E0089580E00895CF93C82F8E
+:1042A0008091DD01813079F018F08230E9F187C02A
+:1042B000E0910E01F0910F018081813169F082322D
+:1042C00009F07FC009C0E0910E01F0910F018081DB
+:1042D000813111F0823261F48C2F0E944A218111C8
+:1042E00004C08C2F0E9483201DC081E090E01AC082
+:1042F0008C2F0E944C21811114C0C43179F048F4F4
+:10430000CB3079F0C03109F060C082E08093DD01EC
+:1043100008C0C93219F0C83321F057C01092DD012E
+:1043200054C081E0817053C0C93289F118F5C4319D
+:1043300071F1A8F4C73009F046C08AE080931501F6
+:1043400094E19093140193E09093130180931201F0
+:1043500088E08093110188E28093100134C0CE512F
+:10436000C63088F5EC2FF0E0E65DFE4F808180934B
+:10437000DC0129C0CE34E9F020F4CB3421F56AE029
+:1043800013C0C13579F0C235F1F461E00DC0809100
+:10439000DC01882319F01092DC0115C081E08093C4
+:1043A000DD0115C061E006C08091DC010E94BD1FE7
+:1043B0000AC06AE08091DC010E94332004C01092A0
+:1043C000DD0180E004C081E002C080E0ABCFCF918E
+:1043D0000895E1E8F0E080818860808380818160D9
+:1043E00080838FB7F89493E09093890090ED909339
+:1043F00088008FBF0895EFE6F0E0808182608083BF
+:104400000895EFE6F0E080818D7F80830895EFE6E8
+:10441000F0E0908182E08927808308951F920F92B7
+:104420000FB60F9211242F933F934F935F936F9387
+:104430007F938F939F93AF93BF93EF93FF9380915D
+:10444000DE019091DF0101969093DF018093DE0100
+:10445000811103C082E00E94F307E091DF01E6953D
+:10446000E695F0E0E657FB4FE4918091DE018E1374
+:1044700003C080E00E94F307FF91EF91BF91AF91DD
+:104480009F918F917F916F915F914F913F912F916C
+:104490000F900FBE0F901F90189504D06894B11123
+:1044A0008DC0089570D088F09F5790F0B92F99274C
+:1044B000B751A0F0D1F0660F771F881F991F1AF02F
+:1044C000BA95C9F712C0B13081F077D0B1E0089544
+:1044D00074C0672F782F8827B85F39F0B93FCCF3C5
+:1044E000869577956795B395D9F73EF49095809525
+:1044F000709561957F4F8F4F9F4F0895E89409C045
+:1045000097FB3EF490958095709561957F4F8F4F06
+:104510009F4F9923A9F0F92F96E9BB279395F6951C
+:10452000879577956795B795F111F8CFFAF4BB0F9A
+:1045300011F460FF1BC06F5F7F4F8F4F9F4F16C0FE
+:10454000882311F096E911C0772321F09EE8872F88
+:10455000762F05C0662371F096E8862F70E060E044
+:104560002AF09A95660F771F881FDAF7880F9695BD
+:10457000879597F9089557FD9058440F551F59F0A6
+:104580005F3F71F04795880F97FB991F61F09F3F40
+:1045900079F087950895121613061406551FF2CF69
+:1045A0004695F1DF08C0161617061806991FF1CFB9
+:1045B00086957105610508940895E894BB276627E0
+:1045C0007727CB0197F908950BD078C069D028F0F0
+:1045D0006ED018F0952309F05AC05FC01124EECFB9
+:1045E000CADFA0F3959FD1F3950F50E0551F629F4E
+:1045F000F001729FBB27F00DB11D639FAA27F00D3C
+:10460000B11DAA1F649F6627B00DA11D661F829F62
+:104610002227B00DA11D621F739FB00DA11D621F47
+:10462000839FA00D611D221F749F3327A00D611D64
+:10463000231F849F600D211D822F762F6A2F112446
+:104640009F5750408AF0E1F088234AF0EE0FFF1F99
+:10465000BB1F661F771F881F91505040A9F79E3FD0
+:10466000510570F014C0AACF5F3FECF3983EDCF325
+:10467000869577956795B795F795E7959F5FC1F70D
+:10468000FE2B880F911D9695879597F9089597F9B8
+:104690009F6780E870E060E008959FEF80EC0895E8
+:1046A00000240A9416161706180609060895002411
+:1046B0000A9412161306140605060895092E03948B
+:1046C000000C11F4882352F0BB0F40F4BF2B11F4FF
+:1046D00060FF04C06F5F7F4F8F4F9F4F089597FB20
+:1046E000072E16F4009407D077FD09D00E94892385
+:1046F00007FC05D03EF4909581959F4F08957095E5
+:1047000061957F4F0895EE0FFF1F0590F491E02D06
+:104710000994AA1BBB1B51E107C0AA1FBB1FA61708
+:10472000B70710F0A61BB70B881F991F5A95A9F75A
+:1047300080959095BC01CD010895F999FECF92BD69
+:1047400081BDF89A992780B50895A8E1B0E042E0CC
+:1047500050E00C94C523262FF999FECF92BD81BD60
+:10476000F89A019700B4021639F01FBA20BD0FB6AF
+:10477000F894FA9AF99A0FBE08950196272F0E948D
+:10478000AC230C94AB23DC01CB01FC01F999FECFE7
+:1047900006C0F2BDE1BDF89A319600B40D924150C9
+:0A47A0005040B8F70895F894FFCFD9
+:1047AA002002F507830860082C08F8070101BA01FE
+:1047BA0028080A03140A3F4D36394B04FE03C8037E
+:1047CA008F0322033B0354036D030102030405060E
+:0447DA0007080900C3
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/techtomas/keymap.c b/keyboard/ergodox_ez/keymaps/techtomas/keymap.c new file mode 100644 index 0000000000..b7d3b9a116 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/techtomas/keymap.c @@ -0,0 +1,231 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media +#define CNTL 3 // control layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | L1/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |Meh/Tab | Q | W | E | R | T | STab | | L3 | Y | U | I | O | P | Meh/\ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Hyp/Esc | L3/A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | + * |--------+------+------+------+------+------| Tab | |AltGui|------+------+------+------+------+--------| + * | LShift | L3/Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | LAlt | LGui |Left |Right | | UP | Down | [ | ] | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtl | LGui | | LAlt |ShfGui| + * ,-------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Backsp|Delete|------| |------| Enter | Space | + * | | | End | | PgDn | | | + * `--------------------' `-----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + LT(SYMB,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, S(KC_TAB), + ALL_T(KC_ESC), LT(CNTL,KC_A), KC_S, KC_D, KC_F, KC_G, + KC_LSFT, LT(CNTL,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TAB, + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RIGHT, + KC_LCTL, KC_LGUI, + KC_HOME, + KC_BSPC, KC_DELETE, KC_END, + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_FN3, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), + KC_H, KC_J, KC_K, KC_L, LT(MDIA,KC_SCLN), ALL_T(KC_QUOT), + LALT(KC_LGUI), KC_N, KC_M, KC_COMM, KC_DOT, LT(MDIA,KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, S(KC_LGUI), + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | Prnt | + * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | . | = | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,S(KC_COMM), + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_F14, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12, + KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_PSCR, + KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT, + KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Prev | Next | | Prev | Next | + * ,------|------|------| |------+------+------. + * | | | VolUp| | VolUp| | | + * | Play | Mute |------| |------| Mute | Play | + * | | | VolDn| | VolDn| | | + * `--------------------' `--------------------' + */ +// Control +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_MPLY, KC_MUTE, KC_VOLD, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_MPLY +), +/* Keymap 3: Control Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Sleep | | | | | | Pwr | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | Rclk | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[CNTL] = KEYMAP( + KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PWR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), + [3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/techtomas/readme.md b/keyboard/ergodox_ez/keymaps/techtomas/readme.md new file mode 100644 index 0000000000..1ed80fc20c --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/techtomas/readme.md @@ -0,0 +1,36 @@ +# Techtomas Configuration + +## Base Layer + +The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac. + +* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) +* The Tab key toggles MEH. +* The two vertical mods on the left board are Shift+Tab and Tab. +* The two vertical mods on the right board are Control Layer tap/toggle and Alt+Cmd. +* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy. + +## Symbol Layer +The symbol layer can be tap/toggled through the bottom right key and also toggled holding the tilde/grave key in the upper left corner. I haven't used the symbol layer enough to tell if this was a good place or not but it made sense in my head + +The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac + +## Media Layer +/ & ; will toggle the media layer which has play and volume controls assigned to the thumb cluster. I found this an easy way to quickly play/pause + +## Control Layer +The a and z keys toggle the control layer. + +On the left board you have mouse control with left & right click in the location of the G and B keys. +On the right board you have vim-style arrow keys using hjkl + +The thumb cluster and mods all pass down to this layer. + +## Changelog + +* Apr 29, 2016 (V1.1): + * Added F14 and F15 to symbol layer + * Added control layer toggle to A key. + +* Apr 28, 2016 (V1.0): + * Modified config based on the default layout plus inspiration from the ordinary layout diff --git a/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex new file mode 100644 index 0000000000..8aa849208f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex @@ -0,0 +1,1166 @@ +:100000000C94BB020C9402030C9402030C940203A4 +:100010000C9402030C9402030C9402030C9402034C +:100020000C9402030C9402030C94D20C0C94A40DB7 +:100030000C9402030C9402030C9402030C9402032C +:100040000C9402030C9470220C9402030C9402038F +:100050000C9402030C94001C0C9402030C940203F5 +:100060000C9402030C9402030C9402030C940203FC +:100070000C9402030C9402030C9402030C940203EC +:100080000C9402030C9402030C9402030C940203DC +:100090000C9402030C9402030C9402030C940203CC +:1000A0000C9402030C9402030C940203110E330E01 +:1000B000210F330E210F780E9B0E210FF00E030F30 +:1000C000EF11EF112C122C126F12AD12C614C614C0 +:1000D000C612C614C713C7139A14C614C614B11493 +:1000E0000000F0A1F0A2F0A335812B77297FE10079 +:1000F000E00000001E00140004831D83E2004D0098 +:100100001F001A0016001B00E3004C00200008002E +:100110000700060050002A00210015000900190000 +:100120004F004A00220017000A0005000000E0000E +:100130002C082B0200002B000000E3002D00C30060 +:100140000000E3040000E20023001C000B0011008B +:100150000000E302240018000D00100052004B00C4 +:1001600025000C000E00360051002C002600120065 +:100170000F0037002F002800270013003382388239 +:1001800030004E002E003177347FE500C1000000C2 +:100190000100010001000100010000003A001E0200 +:1001A00020022202010001003B001F022102230263 +:1001B000010001003C002F0226022F000100010077 +:1001C0003D00300227023000010001003E003102F4 +:1001D0003500350200000100010036020000690010 +:1001E000000001000100370200006A000000010069 +:1001F0003F003302330024020000010040002400CD +:1002000021001E00270001004100250022001F00E0 +:100210003700010042002600230020002E000100CC +:100220004300310025022D002E020100440045004C +:10023000460028000100000001000100010001004B +:100240000100000001000100010001000100AA00FE +:1002500001000100010001000100A80001000100EF +:10026000010001000100AE000100010001000100D9 +:100270000100A90001000100010001000000AC0024 +:1002800001000100000001000000AB0001000100BE +:10029000000001000000AC000100010001000100AD +:1002A0000000AB0001000100010001000100A900F5 +:1002B00001000100010001000100AE000100010089 +:1002C000010001000100A80001000100010001007F +:1002D0000100AA000100010001000100010000006E +:1002E000A600010001000100010000000100010062 +:1002F000010001000100010001000100F200010005 +:10030000010001000100F000F10001000100010006 +:1003100001000100F30001000100010001000100E3 +:10032000F400F50000000100A5000100000001003C +:1003300000000100010001000000010000000100B8 +:100340000100010050000100000001000100010057 +:1003500051000100010001000100010052000100F4 +:1003600001000100010001004F0001000100010037 +:100370000100010001000100010001000100010075 +:100380000100010001000000160345007200670033 +:100390006F0044006F007800200045005A00000004 +:1003A00016034500720067006F0044006F0078007C +:1003B000200045005A0000000403090409026D00F2 +:1003C000040100A0FA090400000103010100092151 +:1003D00011010001223F000705810308000A0904FA +:1003E00001000103010200092111010001224D0059 +:1003F0000705820308000A09040200010300000047 +:100400000921110100012236000705830308000AB3 +:100410000904030001030000000921110100012269 +:1004200039000705840310000112011001000000CB +:1004300008EDFE071301000102000105010906A1F4 +:1004400001050719E029E7150025019508750181C7 +:100450000205081901290595057501910295017597 +:100460000391010507190029771500250195787575 +:10047000018102C005010980A10185021601002643 +:10048000B7001A01002AB700751095018100C00558 +:100490000C0901A1018503160100269C021A010026 +:1004A0002A9C02751095018100C005010902A10175 +:1004B0000901A10005091901290515002501950566 +:1004C000750181029501750381010501093009312A +:1004D0001581257F95027508810609381581257FCC +:1004E000950175088106050C0A38021581257F954E +:1004F0000175088106C0C005010906A1010507199B +:10050000E029E7150025019508750181029501751F +:1005100008810105081901290595057501910295C4 +:1005200001750391010507190029FF150025FF95A5 +:100530000675088100C000000000000000000000F7 +:1005400000010204060A0F17202C3A4A5D71879DAC +:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB +:100560005D4A3A2C20170F0A060402010000000021 +:1005700000000000000011241FBECFEFDAE0DEBF54 +:10058000CDBF04B603FE27C08091EE019091EF012C +:10059000A091F001B091F1018730904BA740B04B92 +:1005A000D1F41092EE011092EF011092F00110922E +:1005B000F10114BE84B7877F84BF0FB6F894A89565 +:1005C00080916000886180936000109260000FBE8F +:1005D000E0E0FFE3099511E0A0E0B1E0ECE8F8E429 +:1005E00002C005900D92A433B107D9F721E0A4E32E +:1005F000B1E001C01D92AE3EB207E1F70E94130ABE +:100600000C9444240C94000061110BC0FC01828105 +:10061000882321F085EE0E94831003C085EE0E949E +:100620004B1180E090E0089508956091B1017091C0 +:10063000B2018091B3019091B4010E94291B569898 +:100640005E9825982D9826982E9827982F98823076 +:1006500039F0833041F0813041F4259A2D9A089584 +:10066000269A2E9A0895279A2F9A08950C94150386 +:1006700056985E9825982D9826982E9827982F980A +:100680008FEF90E0909389008093880090938B0087 +:1006900080938A0090938D0080938C00259A2D9AE8 +:1006A0002FEF80E792E0215080409040E1F700C0BA +:1006B0000000269A2E9A2FEF80E792E0215080408A +:1006C0009040E1F700C00000279A2F9A2FEF80E7B3 +:1006D00092E0215080409040E1F700C00000259852 +:1006E0002D982FEF80E792E0215080409040E1F775 +:1006F00000C0000026982E982FEF80E792E021504E +:1007000080409040E1F700C0000027982F9856984D +:100710005E9825982D9826982E9827982F980895BA +:1007200089EA8093800089E08093810024982C9846 +:100730003F988AB18F748AB96E98479A8BB1806B53 +:100740008BB9769A0E9438030C94140380E280934C +:1007500000018091340181110EC00E94F50381E0F7 +:10076000809334012FEF83ED90E32150804090403F +:10077000E1F700C0000080E40E94FB0380930001C9 +:1007800081112EC00E94250480930001811128C090 +:100790000E94250480930001811122C08FE30E94F2 +:1007A00025048093000181111BC00E941D0480E478 +:1007B0000E94FB0380930001811112C08CE00E9413 +:1007C00025048093000181110BC00E9425048093B1 +:1007D0000001811105C08FE30E9425048093000170 +:1007E0000E941D048091000108951092B9008AE0D2 +:1007F0008093B800089594EA9093BC009091BC0057 +:1008000097FFFCCF9091B900987F983021F09031FC +:1008100011F081E008958093BB0084E88093BC00D0 +:100820008091BC0087FFFCCF8091B900887F883120 +:1008300011F0803471F780E0089584E98093BC0062 +:100840008091BC0084FDFCCF08958093BB0084E8B8 +:100850008093BC008091BC0087FFFCCF9091B900D1 +:10086000987F81E0983209F480E0089584E88093CD +:10087000BC008091BC0087FFFCCF8091BB00089535 +:1008800080910001811115C080E40E94FB038093D8 +:10089000000181110CC082E10E94250480930001B7 +:1008A000811105C08FEF0E942504809300010E94F2 +:1008B0001D0484B1807F84B985B1807F85B98AB1F8 +:1008C000837F8AB98BB1837F8BB93E984698089510 +:1008D0000E94A603809300010E94400480B38C70A4 +:1008E00080BB81B3836F81BBA6E3B1E0E4E4F1E0B8 +:1008F0008EE08E0F11921D928E13FCCF0C949003FC +:10090000BF92CF92DF92EF92FF920F931F93CF93FC +:10091000DF9380910001882379F0809135018F5F0A +:1009200080933501811108C00E94A60380930001C5 +:10093000811102C00E94380306E311E0C0E0D0E05C +:10094000DD24D39482E0C82EEE24E394F12CC7304A +:10095000D10500F580910001811164C080E40E94FE +:10096000FB0380930001811112C082E10E942504E3 +:100970008093000181110BC0C7010C2E01C0880FAC +:100980000A94EAF780950E942504809300010E9452 +:100990001D0448C0CA30A1F028F4C83059F0C9304D +:1009A00061F005C0CC3089F070F0CD3089F0209A2C +:1009B000289810C0219A29980DC0229A2A980AC016 +:1009C000239A2B9807C0529A01C0539A5B9802C091 +:1009D0003E9A469890EA9A95F1F79FB1799902C0AC +:1009E00082E001C080E091709D25982B7C9902C027 +:1009F00084E001C080E0892B7D9902C038E001C00D +:100A000030E0832B7E9902C020E101C020E0822BE0 +:100A10009FB19095991F9927991F9295990F907E54 +:100A2000892B0FC080910001811149C080E40E9490 +:100A3000FB0380930001882379F1B12C0E941D04EF +:100A40008B2DF8019081981719F08083C0920101D5 +:100A50000E94400421960F5F1F4FCE30D10509F050 +:100A600076CF80910101882361F18150809301014B +:100A7000882339F08FE99FE00197F1F700C000006B +:100A800020C0A4E4B1E0E6E3F1E0CF01825F919100 +:100A90009D938E13FCCF15C083E10E9425048093A3 +:100AA00000018111CACF81E40E94FB038093000101 +:100AB0008111C3CF0E943604B82EB094BFCF80E01E +:100AC000C0CF0E94360381E0DF91CF911F910F913B +:100AD000FF90EF90DF90CF90BF900895E82FF0E067 +:100AE000EC5BFE4F808108950895089596E0799F0C +:100AF000F001112494E5899FE00DF11D1124E60F0A +:100B0000F11DEE0FFF1FE851FF4F8591949108955D +:100B1000880F991FFC01E05AF04085919491089547 +:100B2000880F991FFC01E052FF4F85919491089521 +:100B30000F931F93CF93DF93EC018115904350F5F2 +:100B4000C11580E2D80708F0B3C0CB3BD10590F4C3 +:100B5000C83AD10508F05AC0C53AD10508F04BC0D3 +:100B6000C430D10508F0BBC1219709F0B5C101E03F +:100B700010E0F5C1CF3FD10511F008F0B0C1C03F82 +:100B8000D10508F092C0CE01805E9109089708F463 +:100B9000A6C1A2C1C11591E5D907A8F4C23020E5CC +:100BA000D20708F09EC0C11580E5D80709F485C0BA +:100BB00008F091C0C11520E4D20708F08DC1DD27EF +:100BC0008E01106CCCC1C11580E8D80758F4C1154E +:100BD00090E7D90708F07CC1C11520E6D20708F4D8 +:100BE00022C17AC1C11580E9D80708F075C1DF704C +:100BF0008E01106AB4C1C53AD10509F472C1C63A72 +:100C0000D10509F071C102E810E4A9C1C83AD105C3 +:100C100009F46DC1C93AD10509F46CC1CA3AD105CC +:100C200009F46BC1CB3AD10509F46AC1CC3AD105BC +:100C300009F469C1CD3AD10509F468C1C03BD105B9 +:100C400009F467C1CE3AD10509F466C1CF3AD1059E +:100C500009F465C1C13BD10509F464C1C23BD105AA +:100C600009F463C1C33BD10509F462C1C43BD1059A +:100C700009F461C1C53BD10509F460C1C63BD1058A +:100C800009F45FC1C73BD10509F45EC1C83BD1057A +:100C900009F45DC1C93BD10509F45CC1CA3BD1056A +:100CA00009F45BC100E014E45AC18E01106557C11C +:100CB000CE019F700E94900553C10E94EA149FEFDD +:100CC00024E38CE0915020408040E1F700C0000018 +:100CD0000E94251C44C18091CD0181608093CD018B +:100CE0003EC10E94CE1D811102C00E94B41D0E940F +:100CF000EB1D90E09093EE018093ED01C23090E502 +:100D0000D90721F48091ED01816086C0C43020E5CF +:100D1000D20721F48091ED0182607EC0C63080E56B +:100D2000D80721F48091ED01846076C0C83090E549 +:100D3000D90719F48091ED0127C0CA3020E5D20708 +:100D400021F48091ED01806167C0CC3080E5D80747 +:100D500021F48091ED0180625FC0CE3090E5D9072B +:100D600021F48091ED01806457C0C03120E5D207A5 +:100D700021F48091ED0180684FC0C23180E5D80731 +:100D800029F48091ED018460886046C0C33090E50D +:100D9000D90721F48091ED018E7F3EC0C53020E55A +:100DA000D20721F48091ED018D7F36C0C73080E5F8 +:100DB000D80721F48091ED018B7F2EC0C93090E5DA +:100DC000D90719F48091ED0126C0CB3020E5D20778 +:100DD00021F48091ED018F7E1FC0CD3080E5D807D2 +:100DE00021F48091ED018F7D17C0CF3090E5D907B8 +:100DF00021F48091ED018F7B0FC0C13120E5D20736 +:100E000021F48091ED018F7707C0C331D04531F4D3 +:100E10008091ED018B7F877F8093ED018091ED01C3 +:100E20000E94EF1D9CC08D2F99278F7099278130CC +:100E30009105D9F49E012370332702C0880F991FB2 +:100E40002A95E2F79C688E0144E0000F111F4A9535 +:100E5000E1F700271370802B912B53E0CC0FDD1F9F +:100E60005A95E1F7C076DD272FC08230910531F425 +:100E7000DC2FCC278E01016F106A71C08330910581 +:100E800069F4CE018370992701E010E002C0000FE1 +:100E9000111F8A95E2F7C8019C680FC0049709F0FA +:100EA0005EC0CE018370992701E010E002C0000F00 +:100EB000111F8A95E2F7C8019A6823E0CC0FDD1F65 +:100EC0002A95E1F7C07ED7708C010C2B1D2B47C0F3 +:100ED000DF708E01106243C000E010E040C08E0160 +:100EE0003EC001E810E43BC003E810E438C002EE65 +:100EF00014E435C009EE14E432C00AEE14E42FC045 +:100F000005EB14E42CC006EB14E429C007EB14E451 +:100F100026C00CEC14E423C00DEC14E420C003E85C +:100F200015E41DC00AE815E41AC002E915E417C06B +:100F300004E915E414C001E216E411C003E216E46A +:100F40000EC004E216E40BC005E216E408C006E297 +:100F500016E405C007E216E402C00AE216E4C8017E +:100F6000DF91CF911F910F91089596E0799FF00145 +:100F7000112494E5899FE00DF11D1124E60FF11D68 +:100F8000EE0FFF1FE851FF4F85919491803E910530 +:100F9000E0F4803C910558F58133910509F46FC068 +:100FA00048F48932910509F463C08A32910509F445 +:100FB0006DC072C089339105E9F082389105D1F096 +:100FC0008533910509F44DC067C0833E910581F1D9 +:100FD00038F4803E9105B9F0823E9105D9F05CC0AD +:100FE000863E910561F1873E9105A1F155C00E94B1 +:100FF000880508952091ED0120FD02C021FF4CC01D +:1010000080EE90E049C08091ED0180FFF9CF89E347 +:1010100090E042C08091ED0182FF0EC08091ED0111 +:1010200084FF03C080E090E037C083EE90E034C0DE +:101030008091ED0182FFF2CF82EE90E02DC0809191 +:10104000ED0183FF0BC08091ED0184FDEBCF87EEB6 +:1010500090E022C08091ED0183FFF5CF86EE90E015 +:101060001BC08091ED0185FF07C089E290E014C0AC +:101070008091ED0185FFF9CF85E390E00DC080916F +:10108000ED0186FF07C08AE290E006C08091ED0185 +:1010900086FFF9CF81E390E00E94980508950895B6 +:1010A0000C944F08809162010895CF93DF9300D094 +:1010B0001F92CDB7DEB79C018091E401843019F511 +:1010C00093E099833B832A839093E9008FEF90917B +:1010D000E800815095FD06C095ED9A95F1F7000066 +:1010E0008111F5CF8091E80085FF0DC040E050E010 +:1010F00063E070E0CE0101960E94C20A8091E80090 +:101100008E778093E8000F900F900F90DF91CF9132 +:101110000895CF93DF9300D01F92CDB7DEB7209113 +:10112000E401243021F522E029839B838A8383E034 +:101130008093E9008FEF9091E800815095FD06C003 +:1011400095ED9A95F1F700008111F5CF8091E800B7 +:1011500085FF0DC040E050E063E070E0CE010196F5 +:101160000E94C20A8091E8008E778093E8000F9079 +:101170000F900F90DF91CF9108952091E4012430DA +:10118000F1F422E02093E9002FEF3091E8002150A4 +:1011900035FD06C035ED3A95F1F700002111F5CF88 +:1011A0002091E80025FF0BC040E050E065E070E0D2 +:1011B0000E94C20A8091E8008E778093E80008952B +:1011C000CF93DF93EC019091E401943009F046C095 +:1011D00080910C018823D9F080910D018823B9F00A +:1011E0009093E9008FEF9091E800815095FD06C043 +:1011F00095E19A95F1F700008111F5CF8091E80013 +:1012000085FF2CC040E050E060E170E017C081E055 +:101210008093E9008FEF9091E800815095FD06C022 +:1012200095ED9A95F1F700008111F5CF8091E800D6 +:1012300085FF14C040E050E068E070E0CE010E94FD +:10124000C20A8091E8008E778093E80080E1FE0179 +:10125000A2E5B1E001900D928A95E1F7DF91CF917F +:1012600008958091E301811109C00E94570C0E94EA +:10127000B40C8091E20084608093E20008951092A3 +:10128000E301089508950C945D220E94BB1B0E9407 +:1012900063220E945A0F0C94500842E061EC81E0F6 +:1012A0000E94D10B42E061EC82E00E94D10B42E04F +:1012B00061EC83E00E94D10B42E161EC84E00C948C +:1012C000D10B8091E601833009F455C030F48130B0 +:1012D00071F0823009F48EC008958A3009F47AC022 +:1012E0008B3009F460C0893009F09CC020C0809127 +:1012F000E501813A09F096C08091E800877F8093EC +:10130000E8008091E9019091EA01892B21F460E1E4 +:1013100082E591E003C060E080E090E070E00E9430 +:101320000D0B8091E8008B778093E8000895809101 +:10133000E501813209F076C08091E9019091EA01DE +:10134000009719F0039709F06DC08091E800877F3E +:101350008093E8008091E80082FD05C08091E4015F +:101360008111F8CF5FC08091F1008093620180917C +:10137000E8008B7753C08091E501813A09F052C0B3 +:101380008091E9019091EA01892B09F04BC080918D +:10139000E800877F8093E8008091E80080FFFCCF21 +:1013A00080910C0136C08091E5018132D9F58091A0 +:1013B000E9019091EA01892BA9F58091E800877FE6 +:1013C0008093E8000E94060C8091E70180930C0155 +:1013D0000C94EA148091E501813221F58091E800B6 +:1013E000877F8093E8000E94060C8091E80180933B +:1013F000630108958091E501813AA1F48091E800AC +:10140000877F8093E8008091E80080FFFCCF809187 +:1014100063018093F1008091E8008E778093E8006B +:101420000C94060C089584B7877F84BF0FB6F89498 +:10143000A8958091600088618093600010926000A0 +:101440000FBE90E080E80FB6F8948093610090930F +:1014500061000FBE0E94A90F0E94570C0E94B40C9D +:101460008091E20084608093E20078940E943A0FB9 +:101470000E94AB0F82E091E00E94550F0E944B2228 +:101480008091E401853069F40E94791B8091E2012A +:101490008823B1F30E94A71B882391F30E94AC0A12 +:1014A000EFCF0E94B10FECCF292F33272330310526 +:1014B000C9F064F42130310581F02230310509F0A2 +:1014C00043C08DE690E02CEB33E042C02132310581 +:1014D000F1F02232310541F137C082E190E029E29A +:1014E00034E036C099278130910541F08230910572 +:1014F00041F0892B49F5E8EBF3E005C0E0EAF3E0C1 +:1015000002C0E8E8F3E0849190E09F0121C06430DC +:10151000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081C6 +:10152000318189E090E014C0643070F470E0FB0118 +:10153000EE0FFF1FE65EFE4F20813181FB01EA5E68 +:10154000FE4F808190E004C080E090E020E030E039 +:10155000FA0131832083089580E189BD82E189BD4C +:1015600009B400FEFDCF8091D8008F7D8093D80014 +:101570008091E00082608093E0008091E00081FD36 +:10158000FCCF0895CF92DF92EF92FF920F931F93BB +:10159000CF93DF93EC018B016A010E94250C81112E +:1015A00033C0C114D10439F0F60180819181081B48 +:1015B000190BC80FD91FE12CF12C0115110519F1D8 +:1015C0008091E80085FD16C08091E8008E778093B9 +:1015D000E800C114D10449F0F60180819181E80E40 +:1015E000F91EF182E08285E00FC00E94250C88235D +:1015F00021F30AC089918093F10001501109FFEF96 +:10160000EF1AFF0ADACF80E0DF91CF911F910F919F +:10161000FF90EF90DF90CF9008952091EB013091F3 +:10162000EC012617370748F06115710539F4209150 +:10163000E8002E772093E80001C0B90140E0611571 +:101640007105A9F12091E401222309F443C025305A +:1016500009F442C02091E80023FD40C02091E80039 +:1016600022FD32C02091E80020FFE9CF4091F30035 +:101670002091F20030E0342BFC01CF01611571059F +:1016800059F02830310540F481918093F100615088 +:1016900071092F5F3F4FF1CF41E02830310509F04C +:1016A00040E02091E8002E772093E800C8CF411158 +:1016B000C9CF0AC08091E401882361F0853061F0D0 +:1016C0008091E80083FD0AC08091E80082FFF2CF9C +:1016D00080E0089582E0089583E0089581E0089510 +:1016E0002091EB013091EC012617370748F0611586 +:1016F000710539F42091E8002E772093E80001C0AD +:10170000B901FC0120E06115710591F18091E401BE +:10171000882309F440C0853009F43FC08091E80077 +:1017200083FD3DC08091E80082FD2FC08091E800DC +:1017300080FFE9CF2091F3008091F20090E0922B9E +:101740006115710559F08830910540F4249120937A +:10175000F1003196615071090196F2CF21E00897AE +:1017600009F020E08091E8008E778093E800CBCFED +:101770002111CCCF0AC08091E401882361F085302B +:1017800061F08091E80083FD0AC08091E80082FF4B +:10179000F2CF80E0089582E0089583E0089581E02B +:1017A0000895982F973058F59093E900981739F0DD +:1017B0007091EC002091ED005091F00003C0242FB7 +:1017C000762F50E021FF19C03091EB003E7F30931F +:1017D000EB003091ED003D7F3093ED003091EB0058 +:1017E00031603093EB007093EC002093ED00509348 +:1017F000F0002091EE0027FF07C09F5FD3CF8F70CE +:101800008093E90081E0089580E008958091E501EA +:1018100087FF11C08091E80082FD05C08091E4013E +:101820008111F8CF11C08091E8008B770BC08091B7 +:10183000E401882349F08091E80080FFF8CF80918F +:10184000E8008E778093E80008952091E4003091BD +:10185000E50095E64091EC00842F817040FF22C0A6 +:101860008091E80080FD1CC08091E401882391F004 +:10187000853091F08091EB0085FD10C04091E4002F +:101880005091E5004217530729F39A01915011F73F +:1018900084E0089582E0089583E0089581E008954A +:1018A00080E008954091E80042FFDECF08950E9455 +:1018B000C50C0E94CD0CE0EEF0E080818160808359 +:1018C000E8EDF0E080818F77808319BCA7EDB0E070 +:1018D0008C918E7F8C9380818F7E80831092E30128 +:1018E00008950F931F93CF93DF930E94C50C0E941E +:1018F000CD0CC8EDD0E088818F778883888180689F +:10190000888388818F7D888319BC1092E4011092AE +:10191000E0011092E2011092E10100EE10E0F80106 +:1019200080818B7F808388818160888342E060E052 +:1019300080E00E94D10BE1EEF0E080818E7F808319 +:10194000E2EEF0E080818160808380818860808326 +:10195000F80180818E7F8083888180618883DF9118 +:10196000CF911F910F910895E8EDF0E080818F7E77 +:101970008083E7EDF0E080818160808384E082BF36 +:1019800081E08093E3010C94710CE8EDF0E080813C +:101990008E7F80831092E20008951092DA001092F8 +:1019A000E10008951F920F920FB60F9211242F930A +:1019B0003F934F935F936F937F938F939F93AF93D7 +:1019C000BF93EF93FF938091E10082FF0BC0809162 +:1019D000E20082FF07C08091E1008B7F8093E100ED +:1019E0000E94390F8091DA0080FF1FC08091D800DB +:1019F00080FF1BC08091DA008E7F8093DA00809197 +:101A0000D90080FF0DC080E189BD82E189BD09B4A4 +:101A100000FEFDCF81E08093E4010E94310905C002 +:101A200019BC1092E4010E943F098091E10080FFFF +:101A300019C08091E20080FF15C08091E2008E7F86 +:101A40008093E2008091E20080618093E2008091C7 +:101A5000D80080628093D80019BC85E08093E401AF +:101A60000E9443098091E10084FF30C08091E20030 +:101A700084FF2CC080E189BD82E189BD09B400FEEC +:101A8000FDCF8091D8008F7D8093D8008091E100B8 +:101A90008F7E8093E1008091E2008F7E8093E20050 +:101AA0008091E20081608093E2008091E0018823D0 +:101AB00011F084E007C08091E30087FD02C081E05F +:101AC00001C083E08093E4010E9445098091E10018 +:101AD00083FF29C08091E20083FF25C08091E1004F +:101AE000877F8093E10082E08093E4011092E0011F +:101AF0008091E1008E7F8093E1008091E2008E7FF3 +:101B00008093E2008091E20080618093E20042E0F5 +:101B100060E080E00E94D10B8091F00088608093AB +:101B2000F0000E944209FF91EF91BF91AF919F9108 +:101B30008F917F916F915F914F913F912F910F9076 +:101B40000FBE0F901F9018951F920F920FB60F9215 +:101B500011242F933F934F935F936F937F938F93B2 +:101B60009F93AF93BF93CF93DF93EF93FF93C09176 +:101B7000E900CF708091EC00D82FD17080FDD0E8C3 +:101B80001092E9008091F000877F8093F0007894B4 +:101B90000E94E80D1092E9008091F0008860809327 +:101BA000F000CD2BCF70C093E900FF91EF91DF9152 +:101BB000CF91BF91AF919F918F917F916F915F91E5 +:101BC0004F913F912F910F900FBE0F901F9018953E +:101BD0001F93CF93DF93CDB7DEB7AA970FB6F894D4 +:101BE000DEBF0FBECDBFE5EEF1E088E08E0F909135 +:101BF000F10091938E13FBCF0E9461098091E80060 +:101C000083FF1FC18091E5019091E601492F50E0CB +:101C10004A30510508F015C1FA01EA5AFF4F0C94F9 +:101C2000F423803881F0823809F00BC18091E901FA +:101C30008F708093E9008091EB0085FB882780F905 +:101C40001092E90006C08091E1019091E2019111AA +:101C500082609091E800977F9093E8008093F10074 +:101C60001092F100C8C0282F2D7F09F0EAC0882308 +:101C700019F0823061F0E5C08091E701813009F010 +:101C8000E0C0933009F080E08093E2012BC08091A6 +:101C9000E701811127C08091E9018F7009F4D1C05B +:101CA0008093E9002091EB0020FF1CC0933021F4C9 +:101CB0008091EB00806214C09091EB009061909352 +:101CC000EB0021E030E0A90102C0440F551F8A95C6 +:101CD000E2F74093EA001092EA008091EB008860FE +:101CE0008093EB001092E9008091E800877F86C026 +:101CF0008111A7C01091E7011F778091E3008078E0 +:101D0000812B8093E3008091E800877F8093E80037 +:101D10000E94060C8091E80080FFFCCF8091E300D8 +:101D200080688093E300111102C082E001C083E06B +:101D30008093E40186C08058823008F082C0809190 +:101D4000E7019091E8018C3D53E0950779F583E038 +:101D50008A838AE289834FB7F894DE01139620E0E4 +:101D60003EE051E2E32FF0E050935700E49120FF72 +:101D700003C0E295EF703F5FEF708E2F90E0EA3086 +:101D800010F0C79601C0C0968D939D932F5F2431AC +:101D900049F74FBF8091E800877F8093E8006AE2AF +:101DA00070E0CE0101960E940D0B14C0AE014F5F92 +:101DB0005F4F6091E9010E94540ABC01892B09F42C +:101DC00040C09091E800977F9093E80089819A81C4 +:101DD0000E94700B8091E8008B778093E80031C0FF +:101DE000803879F58091E800877F8093E8008091C2 +:101DF000E0018093F1008091E8008E778093E80005 +:101E00000E94060C1EC081111CC09091E701923007 +:101E1000C0F48091E800877F8093E8009093E00110 +:101E20000E94060C8091E001811106C08091E300C0 +:101E300087FD02C081E001C084E08093E4010E943C +:101E40004D098091E80083FF0AC08091E800877FF8 +:101E50008093E8008091EB0080628093EB00AA966B +:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB +:101E700008950895CF938091E4018823A1F0C09143 +:101E8000E900CF709091EC00892F817090FD80E87F +:101E9000C82B1092E9008091E80083FD0E94E80DB4 +:101EA000CF70C093E900CF9108959093690180931A +:101EB00068010895E0916801F0916901309721F07F +:101EC0000190F081E02D099480E00895E09168018F +:101ED000F0916901309721F00280F381E02D09949F +:101EE0000895E0916801F0916901309721F0048034 +:101EF000F581E02D099408952091660130916701E4 +:101F00008217930771F09093670180936601E091C7 +:101F10006801F0916901309721F00680F781E02D8A +:101F20000994089520916401309165018217930707 +:101F300071F09093650180936401E0916801F091E4 +:101F40006901309721F00084F185E02D099408950E +:101F500008950C94A80F0E94C11B0E9468040C9461 +:101F6000871CCF92DF92EF92FF920F931F93CF9334 +:101F7000DF93CDB7DEB72B970FB6F894DEBF0FBE59 +:101F8000CDBF0E9480048BE6C82E81E0D82E00E0F1 +:101F900010E0E02E802F0E946E05F60141916F0146 +:101FA000F42EF826B1F40F5F1F4F0E30110589F79C +:101FB0008FEF89838A831B820E94CA1B8160782FDE +:101FC0009D838C8349815A816B818D810E9454103D +:101FD00040C09091CD0191FF04C08B870E94740591 +:101FE0008B8520E030E04F2D50E0922FBA01022E79 +:101FF00002C0759567950A94E2F760FF24C02E83AE +:10200000EF8221E030E0690102C0CC0CDD1C9A9522 +:10201000E2F790E08C219D21892B09F420E02887AC +:102020000E94CA1B8160782F9A8789874E815F81C1 +:1020300068858A850E945410F801E559FE4F808119 +:10204000C826C08206C02F5F3F4F2630310569F693 +:10205000AACF0E946E1F10916A010E945A0F181792 +:10206000A1F00E945A0F80936A012B960FB6F89444 +:10207000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10208000EF90DF90CF900C9450082B960FB6F894F9 +:10209000DEBF0FBECDBFDF91CF911F910F91FF909B +:1020A000EF90DF90CF900895CF93DF93CDB7DEB759 +:1020B0002B970FB6F894DEBF0FBECDBF4F83588766 +:1020C00069877A878B87DE01119686E0FD01119280 +:1020D0008A95E9F785E0FE01379601900D928A9581 +:1020E000E1F749815A816B817C818D819E810E94BB +:1020F00084172B960FB6F894DEBF0FBECDBFDF91CD +:10210000CF9108950895CF93882309F4C2C0C82FB2 +:10211000823859F40E945A0F81FDBBC089E30E94A6 +:102120002D1A0E94FA1A89E30CC0833879F40E94B0 +:102130005A0F80FDAEC083E50E942D1A0E94FA1A44 +:1021400083E50E946F1ACF910C94FA1A843859F4DF +:102150000E945A0F82FD9DC087E40E942D1A0E94A2 +:10216000FA1A87E4EECF8CEF8C0F813A48F48C2F6B +:102170000E94B02181118DC08C2F0E942D1AE3CFB7 +:1021800080E28C0F883048F4C77081E001C0880F6E +:10219000CA95EAF70E94B31AD6CF8BE58C0F83302D +:1021A00078F4C53A29F0C63A31F083E890E005C0EA +:1021B00081E890E002C082E890E0CF910C947C0F1F +:1021C00088E58C0F833108F064C0C83A39F1C93A08 +:1021D00041F1CA3A49F1CB3A51F1CC3A59F1CD3AF1 +:1021E00061F1C03B69F1CE3A71F1CF3A79F1C13B6F +:1021F00081F1C23B89F1C33B91F1C43B99F1C53BED +:10220000A1F1C63BA9F1C73BB1F1C83BB9F1C93B4C +:10221000C1F1CA3BC9F180E090E038C082EE90E0A5 +:1022200035C089EE90E032C08AEE90E02FC085EB99 +:1022300090E02CC086EB90E029C087EB90E026C0B0 +:102240008CEC90E023C08DEC90E020C083E891E01E +:102250001DC08AE891E01AC082E991E017C084E9C4 +:1022600091E014C081E292E011C083E292E00EC0DE +:1022700084E292E00BC085E292E008C086E292E040 +:1022800005C087E292E002C08AE292E0CF910C940E +:10229000920FCF910895882309F44BC0823859F4E6 +:1022A0000E945A0F81FF45C089E30E942D1A0E94A7 +:1022B000FA1A89E30CC0833871F40E945A0F80FF28 +:1022C00038C083E50E942D1A0E94FA1A83E50E9405 +:1022D0006F1A0C94FA1A843859F40E945A0F82FF2C +:1022E00028C087E40E942D1A0E94FA1A87E4EFCFD3 +:1022F0009CEF980F913A58F390E2980F983050F471 +:10230000877091E001C0990F8A95EAF7892F0E94A2 +:10231000B91ADFCF9BE5980F933020F480E090E06E +:102320000C947C0F885A833120F480E090E00C9468 +:10233000920F0895882321F00E94B31A0C94FA1A80 +:102340000895882321F00E94B91A0C94FA1A08956E +:10235000BF92CF92DF92EF92FF920F931F93CF9392 +:10236000DF9300D000D000D0CDB7DEB725E0FC0170 +:10237000DE01119601900D922A95E1F7FC01D080C3 +:1023800011810281258122952F7043815481452B33 +:1023900009F4FCC21F3F21F4FFEFDF1609F4F6C277 +:1023A0007C012E830E948210D9821A8369817A81EE +:1023B000802F0E94291A182FB92E0E94DE190E9420 +:1023C000A5182E81002319F00E94D01A2E81EB2D22 +:1023D000E295EF70F0E0E05AFF4F0C94F4238B2D60 +:1023E000807F9B2D9F70F92E882319F0F29480EF47 +:1023F000F822002389F0FF2009F475C280E2810FE2 +:10240000883020F48F2D0E94B31A03C08F2D0E94B4 +:10241000C31A0E94FA1A67C2812F0E944B11FF2033 +:1024200009F4B4C2105E8F2D183018F40E94B91A46 +:1024300002C00E94C91A26960FB6F894DEBF0FBEDE +:10244000CDBFDF91CF911F910F91FF90EF90DF9063 +:10245000CF90BF900C94FA1A3B2D307F8B2D8F704C +:10246000303211F08295807F112319F0113021F163 +:102470002CC00023B9F0222309F4A0C1213009F0B7 +:102480009DC126960FB6F894DEBF0FBECDBFDF917B +:10249000CF911F910F91FF90EF90DF90CF90BF9061 +:1024A0000C94E31A222319F0213009F46FC28E83B1 +:1024B0000E94E61A8E8196C1002321F0223008F096 +:1024C00065C27CC1211162C28DC1002321F022238B +:1024D00009F474C108C2222309F484C119C22B2D46 +:1024E00026952695237030E02115310521F0213005 +:1024F0003105D1F04BC2002321F0812F9B2D937029 +:1025000002C080E090E026960FB6F894DEBF0FBEC2 +:10251000CDBFDF91CF911F910F91FF90EF90DF9092 +:10252000CF90BF900C947C0F002321F0812F9B2D26 +:10253000937002C080E090E026960FB6F894DEBF5C +:102540000FBECDBFDF91CF911F910F91FF90EF9004 +:10255000DF90CF90BF900C94920F812F002319F041 +:102560000E94761E02C00E94DE1E26960FB6F894C8 +:10257000DEBF0FBECDBFDF91CF911F910F91FF90B6 +:10258000EF90DF90CF90BF900C94631F8B2D8370E2 +:1025900009F07BC00111FAC1812F82958695877061 +:1025A000880F880F912F9F70C92ED12CE12CF12C10 +:1025B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C4 +:1025C00014FF12C04FE050E060E070E004C0440F20 +:1025D000551F661F771F8A95D2F7CB01BA01609508 +:1025E00070958095909503C060E070E0CB012B2D35 +:1025F000269526952370422F50E042305105D9F0A0 +:102600004330510569F16C297D298E299F2941307C +:10261000510551F126960FB6F894DEBF0FBECDBF1F +:10262000DF91CF911F910F91FF90EF90DF90CF90AE +:10263000BF900C94CC186C297D298E299F29269651 +:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:102650000F91FF90EF90DF90CF90BF900C94E8180F +:102660000E94CC18C701B60126960FB6F894DEBFBB +:102670000FBECDBFDF91CF911F910F91FF90EF90D3 +:10268000DF90CF90BF900C94B018002319F08B2DE1 +:10269000817001C08695882309F478C1812F8295C5 +:1026A00086958770880F880F912F9F70C92ED12C27 +:1026B000E12CF12C082E04C0CC0CDD1CEE1CFF1C00 +:1026C0000A94D2F714FF12C04FE050E060E070E0CF +:1026D00004C0440F551F661F771F8A95D2F7CB01A0 +:1026E000BA01609570958095909503C060E070E0A8 +:1026F000CB012B2D269526952370422F50E042309A +:102700005105D9F04330510569F16C297D298E2995 +:102710009F294130510551F126960FB6F894DEBF3E +:102720000FBECDBFDF91CF911F910F91FF90EF9022 +:10273000DF90CF90BF900C94A6196C297D298E292B +:102740009F2926960FB6F894DEBF0FBECDBFDF914E +:10275000CF911F910F91FF90EF90DF90CF90BF909E +:102760000C94C2190E94A619C701B60126960FB68D +:10277000F894DEBF0FBECDBFDF91CF911F910F91B7 +:10278000FF90EF90DF90CF90BF900C948A19103F8C +:10279000D1F118F4103E50F4A1C0123F09F463C007 +:1027A00008F44CC0133F09F473C098C01F708B2D00 +:1027B0008F710023A1F00E942319812F26960FB656 +:1027C000F894DEBF0FBECDBFDF91CF911F910F9167 +:1027D000FF90EF90DF90CF90BF900C949A110E94E1 +:1027E0004419812F26960FB6F894DEBF0FBECDBFD9 +:1027F000DF91CF911F910F91FF90EF90DF90CF90DD +:10280000BF900C94A1110023A9F02111BFC08B2D02 +:102810008F7126960FB6F894DEBF0FBECDBFDF9145 +:10282000CF911F910F91FF90EF90DF90CF90BF90CD +:102830000C946919223008F0A9C0E9CF0023A9F04F +:102840008B2D8F7126960FB6F894DEBF0FBECDBFCD +:10285000DF91CF911F910F91FF90EF90DF90CF907C +:10286000BF900C942319002359F38B2D8F7126965A +:102870000FB6F894DEBF0FBECDBFDF91CF911F9191 +:102880000F91FF90EF90DF90CF90BF900C94441980 +:10289000002399F08B2D8F7126960FB6F894DEBF2A +:1028A0000FBECDBFDF91CF911F910F91FF90EF90A1 +:1028B000DF90CF90BF900C940E1926960FB6F89427 +:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1028D000EF90DF90CF90BF900C9404190023A9F0E3 +:1028E000222309F4ADCF812F26960FB6F894DEBFD0 +:1028F0000FBECDBFDF91CF911F910F91FF90EF9051 +:10290000DF90CF90BF900C948310222309F4ADCFB9 +:10291000812F26960FB6F894DEBF0FBECDBFDF9194 +:10292000CF911F910F91FF90EF90DF90CF90BF90CC +:102930000C944B114B2D4F70612FC7010E94040363 +:1029400026960FB6F894DEBF0FBECDBFDF91CF91B4 +:102950001F910F91FF90EF90DF90CF90BF900C945C +:1029600028184B2D4F70612FC70126960FB6F8948B +:10297000DEBF0FBECDBFDF91CF911F910F91FF90B2 +:10298000EF90DF90CF90BF900C94750526960FB610 +:10299000F894DEBF0FBECDBFDF91CF911F910F9195 +:1029A000FF90EF90DF90CF90BF9008950E94D01AD3 +:1029B0000E94E01A0E94A51A0E94FA1A0E9413208F +:1029C0000E94631F80E090E00E947C0F80E090E016 +:1029D0000C94920F0E94C01A0C94D6140E941E1AD6 +:1029E000292F22952F7030E02C3031054CF42A30FD +:1029F00031056CF4225031092230310588F407C0CA +:102A00002C30310549F02F30310531F009C0803EBE +:102A100048F0803F29F406C093FB882780F9089589 +:102A200080E0089581E00895CF93DF9300D000D037 +:102A30001F92CDB7DEB70F900F900F900F900F90B1 +:102A4000DF91CF910895CF93DF9300D000D000D0D5 +:102A5000CDB7DEB726960FB6F894DEBF0FBECDBF5A +:102A6000DF91CF9108951F93CF93DF93C0917901A8 +:102A700016E080917A01C81799F0D0E01C9FF00110 +:102A80001D9FF00D1124E558FE4F40815181628158 +:102A90007381848195810E9423152196C770E9CFA7 +:102AA000DF91CF911F9108954091AB015091AC01FE +:102AB0006091AD017091AE018091AF019091B00134 +:102AC0000C9423158091B00182958F7009F054C049 +:102AD0008091AD01882309F44FC080917901A091C4 +:102AE0007A016091AB017091AC014091AE015091BF +:102AF000AF01B6E08A1709F43FC090E041155105D7 +:102B0000C1F17F3F11F46F3FA1F1B89FF001B99F70 +:102B1000F00D1124E558FE4F218172132AC0208147 +:102B2000621327C02281211124C0238134812417FC +:102B3000350710F421503109241B350B283C310591 +:102B4000C0F42091B0012F7020612093B00126E0E5 +:102B5000289FF001299FF00D1124E058FE4F80813D +:102B60008F70806180838BEA91E00E94A8110C94A1 +:102B7000331501968770BECF0895CF92DF92EF9202 +:102B8000FF920F931F93CF93DF93CDB7DEB762977A +:102B90000FB6F894DEBF0FBECDBF8C0185E0F80103 +:102BA000DE011D9601900D928A95E1F7D8014C91B6 +:102BB00011965C91119712966C9112971396CD9085 +:102BC000DC9014973091AB017091AC018091AE0113 +:102BD0009091AF01009709F46BC17F3F19F43F3F1B +:102BE00009F466C1E090AD01EE2009F4C0C0209167 +:102BF000B001C816D90628F0F601E81BF90BCF0181 +:102C000004C0809590958C0D9D1DFF24F394883C05 +:102C1000910578F0F12C207F09F0C6C07C2DD98A6F +:102C2000C88A89890E9414158BEA91E00E94A81134 +:102C3000B1C0822F807F09F046C0751314C03413D1 +:102C400012C0611110C02F7020612093B0010E944A +:102C500054158BEA91E00E94A8118091B001D8012F +:102C600015968C932EC0CD2819F15F3F11F44F3F7C +:102C7000F9F0F62E61111CC08091790120917A0142 +:102C800036E0821709F45AC090E0389FF001399F6E +:102C9000F00D1124E558FE4F7181571306C0708165 +:102CA000471303C07281711103C001968770E9CF89 +:102CB000F62E662309F418C18091B00181608093DB +:102CC000B001F12C11C1751308C0341306C0611195 +:102CD00004C08091B001D801C3C04D875E878D8547 +:102CE0009E856A8B0E94EE146A898823E1F166232F +:102CF000D1F12091B001822F82958F7090E00297E0 +:102D000074F08091AB019091AC0198878F83198604 +:102D1000DB86CA862C87CE0107960E94A81186E022 +:102D2000F801ABEAB1E001900D928A95E1F70E94BB +:102D300062150E945415FF24F394D6C04D875E8718 +:102D40008D859E850E941E1A292F22952F7030E0B6 +:102D5000223031050CF0BCC09F7009F0B6C0805E17 +:102D6000883008F4C1C0C8010E94A811E4CFC81679 +:102D7000D90608F453C0F601E81BF90BCF01883CD3 +:102D8000910508F450C0F12C7C2DD98AC88A898914 +:102D90000E941415EBEAF1E086E0DF011D928A95AE +:102DA000E9F70E945415A0C0751314C0341312C063 +:102DB000611110C08091B001F8018583C8010E94A3 +:102DC000A81186E0EBEAF1E0DF011D928A95E9F7B0 +:102DD000FE2C8AC04D875E878D859E856A8B0E94FA +:102DE000EE146A89882309F4BECF662309F4BBCFA9 +:102DF0002091B001822F82958F7090E002970CF4A1 +:102E00008ECF8091AB019091AC019A8389831B8214 +:102E1000DD82CC822E83CE0101967FCF8095909566 +:102E20008C0D9D1DACCFF62E662309F49CCF751337 +:102E30002EC034132CC02091B00120FD1FC0822F62 +:102E400082958F70D9F0D80115962C9315978F30F5 +:102E500049F08F5F982F9295907F822F8F70892BEA +:102E600015968C93C8010E94A81186E0F801ABEA80 +:102E7000B1E001900D928A95E1F793CF86E0F801D9 +:102E8000ABEAB1E001900D928A95E1F72DC04D8734 +:102E90005E878D859E850E94EE14811140CF8091C2 +:102EA000B00181608093B001C8010E94A8111CC0CC +:102EB000662309F458CF4D875E878D859E850E94D5 +:102EC000EE14882309F44FCF2ACF811148CF0CC0CC +:102ED000243031050CF047CF9F7009F440CFF80142 +:102EE0009581907F09F03BCF8F2D62960FB6F894B5 +:102EF000DEBF0FBECDBFDF91CF911F910F91FF902D +:102F0000EF90DF90CF9008951F93CF93DF93CDB7CD +:102F1000DEB72C970FB6F894DEBF0FBECDBF4F8340 +:102F2000588769877A878B879C87CE0107960E948E +:102F3000BD15882369F08F8198852A853B85232BD1 +:102F4000F1F19F3F09F063C08F3F09F060C037C0C7 +:102F500086E0FE013796DE01119601900D928A956A +:102F6000E1F76F817885EA85FB85309741F17F3FF6 +:102F700011F46F3F21F120917A0130E0C9010196EF +:102F8000877099274091790150E08417950709F4DB +:102F900047C069837A83FD83EC8396E0929FD001DA +:102FA000939FB00D1124A558BE4FFE01319601909C +:102FB0000D929A95E1F780937A010E94331516E0FD +:102FC0008091790190917A018917C1F1189FC00110 +:102FD000112485589E4F0E94BD15882379F1E091F8 +:102FE00079011E9FF0011124E558FE4F4081518167 +:102FF00062817381848195810E942315809179017A +:1030000090E001968770992780937901D9CF4F81FD +:10301000588569857A858B859C850E942315CFCF3D +:103020000E94EA1410927A0110927901EBEAF1E021 +:1030300086E0DF011D928A95E9F7C1CF2C960FB685 +:10304000F894DEBF0FBECDBFDF91CF911F910895E1 +:10305000EF92FF920F931F93CF93DF938C01892BF5 +:1030600009F46CC0F12CEE24E394E8012196F801F8 +:103070008491843740F4843008F051C0813081F06D +:10308000823019F15BC0853709F444C0A8F19CE790 +:10309000980F903708F052C08F770E944B1141C0B3 +:1030A0000E5F1F4FFE01C49180E28C0F883048F400 +:1030B000C7708E2D01C0880FCA95EAF70E94D31AF7 +:1030C00014C08C2F0E9483102DC00E5F1F4FFE0175 +:1030D000C49180E28C0F883058F4C7708E2D01C0E7 +:1030E000880FCA95EAF70E94D91A0E94FA1A1AC0E4 +:1030F0008C2F0E944B1116C00E5F1F4FFE01C49112 +:10310000CC2381F08FE99FE00197F1F700C0000028 +:10311000C150F6CF0E5F1F4FFE01F49003C00E9416 +:1031200083108E018F2D882309F49FCFEFE9FFE0F4 +:103130003197F1F700C000008150F5CFDF91CF91BA +:103140001F910F91FF90EF90089508956093B5013E +:103150007093B6018093B7019093B8010C94D61484 +:103160000F931F930091B5011091B6012091B70103 +:103170003091B801DC01CB01802B912BA22BB32B1A +:103180008093B5019093B601A093B701B093B801B5 +:103190001F910F910C94D6140F931F930091B501BA +:1031A0001091B6012091B7013091B801DC01CB013B +:1031B00080239123A223B3238093B5019093B6017A +:1031C000A093B701B093B8011F910F910C94D6143E +:1031D0000F931F930091B5011091B6012091B70193 +:1031E0003091B801DC01CB0180279127A227B327BA +:1031F0008093B5019093B601A093B701B093B80145 +:103200001F910F910C94D6141092B1011092B2013B +:103210001092B3011092B4010C94D61441E050E026 +:1032200060E070E004C0440F551F661F771F8A9549 +:10323000D2F74093B1015093B2016093B301709300 +:10324000B4010C94D61441E050E060E070E004C09A +:10325000440F551F661F771F8A95D2F78091B101E1 +:103260009091B201A091B301B091B401482B592BB8 +:103270006A2B7B2B4093B1015093B2016093B30151 +:103280007093B4010C94D61441E050E060E070E01B +:1032900004C0440F551F661F771F8A95D2F74095CB +:1032A0005095609570958091B1019091B201A09177 +:1032B000B301B091B401482359236A237B2340937F +:1032C000B1015093B2016093B3017093B4010C94B7 +:1032D000D61441E050E060E070E004C0440F551F98 +:1032E000661F771F8A95D2F78091B1019091B20144 +:1032F000A091B301B091B401482759276A277B27D1 +:103300004093B1015093B2016093B3017093B40143 +:103310000C94D6140F931F930091B1011091B20138 +:103320002091B3013091B401DC01CB01802B912BB2 +:10333000A22BB32B8093B1019093B201A093B30160 +:10334000B093B4011F910F910C94D6140F931F9357 +:103350000091B1011091B2012091B3013091B401FB +:10336000DC01CB0180239123A223B3238093B101FD +:103370009093B201A093B301B093B4011F910F9148 +:103380000C94D6140F931F930091B1011091B201C8 +:103390002091B3013091B401DC01CB01802791274A +:1033A000A227B3278093B1019093B201A093B301F8 +:1033B000B093B4011F910F910C94D6140895CF923D +:1033C000DF92EF92FF920F931F93CF93DF938C01C5 +:1033D000C090B501D090B601E090B701F090B8016F +:1033E0008091B1019091B201A091B301B091B4016B +:1033F000C82AD92AEA2AFB2ACFE1D0E0D701C601A0 +:103400000C2E04C0B695A795979587950A94D2F788 +:1034100080FF06C0B8018C2F0E94B507019721F4E8 +:10342000219760F780E001C08C2FDF91CF911F9131 +:103430000F91FF90EF90DF90CF900895CF93DF939F +:10344000EC010E94DF19BE010E94B507DF91CF9108 +:103450000895CB010E941E1A089590910C019923A2 +:1034600021F090910D01911109C020910E01309130 +:103470000F01F90132969FEF40E01FC0982F9695FB +:10348000969596959F3050F5E0910E01F0910F01C1 +:10349000E90FF11D877021E030E0A90102C0440F5F +:1034A000551F8A95E2F7CA019181892B818308957E +:1034B0009F3F39F04F5F4E3041F051915813F8CF94 +:1034C0000DC05111F7CF942FF5CF9F3F39F0F9017F +:1034D000E90FF11D97FDFA95828308950895909163 +:1034E0000C01992321F090910D01911109C02091B7 +:1034F0000E0130910F01F9013296205F3F4F1FC03E +:10350000982F9695969596959F30F0F4E0910E0140 +:10351000F0910F01E90FF11D877021E030E0A90162 +:1035200002C0440F551F8A95E2F7CA018095918128 +:103530008923818308953196E217F30729F090815A +:103540009813F9CF1082F7CF089581E090E0E091D1 +:103550000E01F0910F01E80FF91F108201968031E2 +:103560009105A9F708959091CC01892B8093CC0106 +:10357000089580959091CC0189238093CC01089582 +:103580001092CC0108959091CB01892B8093CB01AF +:10359000089580959091CB0189238093CB01089564 +:1035A0001092CB0108959091CA01892B8093CA0192 +:1035B000089580959091CA0189238093CA01089546 +:1035C0001092CA0108958093B90108951092B9012B +:1035D000089580910E0190910F01FC0131969C019C +:1035E000205F3F4F80E0919191118F5FE217F307C9 +:1035F000D1F70895E0910E01F0910F018091CC0177 +:103600008083E0910E01F0910F0190818091CB01B8 +:10361000892B8083E0910E01F0910F0190818091C0 +:10362000CA01892B80838091B901882361F0E091E0 +:103630000E01F0910F019081892B80830E94E91A7D +:1036400081111092B90180910E0190910F010C949B +:10365000660FCF92DF92EF92FF926C01EE24FF246F +:10366000C114D104E104F10421F0C701B60120E145 +:1036700001C020E0C72ED82EE92EFF24C114D104AA +:10368000E104F10419F0285FC701B6016B017C0168 +:1036900054E0F694E794D794C7945A95D1F7C1149F +:1036A000D104E104F10419F02C5FC701B6016B01EC +:1036B0007C0142E0F694E794D794C7944A95D1F7F9 +:1036C000C114D104E104F10419F02E5FC701B60161 +:1036D000DC01CB01B695A79597958795892B8A2B09 +:1036E0008B2B09F02F5F822FFF90EF90DF90CF9010 +:1036F00008958091E401843039F11092CE0120E4E4 +:1037000088E190E00FB6F894A895809360000FBE12 +:103710002093600080E00E94500883B7817F84601E +:1037200083BF83B7816083BF7894889583B78E7F8A +:1037300083BF0FB6F894A89580916000886180934C +:103740006000109260000FBE089508950895CF9311 +:103750000E94A51B0E9480040E94A61BC0E08C2F23 +:103760000E946E05811104C0CF5FCE30C1F701C049 +:1037700081E0CF9108950E94EA140E945A0F0C94A0 +:10378000500882E084BD93E095BD9AEF97BD809389 +:103790006E0008952FB7F8948091CF019091D001D9 +:1037A000A091D101B091D2012FBF0895CF92DF92A5 +:1037B000EF92FF920F931F932FB7F8944091CF0190 +:1037C0005091D0016091D1017091D2012FBF6A0157 +:1037D0007B01EE24FF248C0120E030E0C016D106EE +:1037E000E206F30610F4415051099A01281B390BE7 +:1037F000C9011F910F91FF90EF90DF90CF90089536 +:103800001F920F920FB60F9211248F939F93AF9335 +:10381000BF938091CF019091D001A091D101B0913F +:10382000D2010196A11DB11D8093CF019093D001CB +:10383000A093D101B093D201BF91AF919F918F918D +:103840000F900FBE0F901F9018950E94570CF89480 +:103850002FEF87EA91E6215080409040E1F700C0C9 +:10386000000087E090EBDC018093EE019093EF0184 +:10387000A093F001B093F1019CE088E10FB6F894B9 +:10388000A895809360000FBE90936000FFCFEF92E9 +:10389000FF920F931F93CF93DF93D82FC0E08C2F0D +:1038A0000E946E0500E010E0E82EF12CC701002E0A +:1038B00002C0959587950A94E2F780FD06C00F5FD8 +:1038C0001F4F0630110591F709C0602F7C2F80E053 +:1038D0000E947605D813F3CF81E004C0CF5FCE30CD +:1038E000F1F680E0DF91CF911F910F91FF90EF9063 +:1038F0000895CF93C82F8CE20E94471C882321F0A3 +:103900008C2FCF910C94471C80E0CF910895CF93DA +:103910000E94CE1D811102C00E94B41DC5E6C15097 +:1039200049F00E9480048FE39CE90197F1F700C001 +:103930000000F5CF89E20E94791C811113C18AE24F +:103940000E94791C81110E94B41D85E00E94791C9F +:1039500081110E94251C0E94D91D8093CD0187E012 +:103960000E94791C8823A9F18BE10E94791C88238D +:1039700051F08091CD0181FB222720F991E092271F +:1039800090FB81F90EC08EE00E94791C882361F0C3 +:103990008091CD0182FB222720F991E0922790FBB4 +:1039A00082F98093CD0115C080E10E94791C90912D +:1039B000CD01882341F093FB222720F981E0822763 +:1039C00080FB93F904C0892F809580FB90F9909338 +:1039D000CD018091CD010E94DD1D0E94EB1D8093E1 +:1039E000ED0180EE0E94791C882341F08091ED0169 +:1039F000982F909590FB80F98093ED0189E30E94C8 +:103A0000791C882359F08091ED0181FB222720F950 +:103A100091E0922790FB81F98093ED0182EE0E9464 +:103A2000791C882359F08091ED0182FB222720F92F +:103A300091E0922790FB82F98093ED0186EE0E943F +:103A4000791C882359F08091ED0183FB222720F90E +:103A500091E0922790FB83F98093ED0183EE0E9421 +:103A6000791C882359F08091ED0184FB222720F9ED +:103A700091E0922790FB84F98093ED0185E30E9409 +:103A8000791C882359F08091ED0185FB222720F9CC +:103A900091E0922790FB85F98093ED0181E30E94EC +:103AA000791C882359F08091ED0186FB222720F9AB +:103AB00091E0922790FB86F98093ED0181E10E94CD +:103AC000791C882359F08091ED0187FB222720F98A +:103AD00091E0922790FB87F98093ED018091ED01B1 +:103AE0000E94EF1D8091ED0187FB882780F980936C +:103AF0000D0187E20E94791CC82F8EE10E94791C7B +:103B00008111C2608FE10E94791C8111C46080E242 +:103B10000E94791C8111C86081E20E94791C811188 +:103B2000C06182E20E94791C8111C06283E20E941E +:103B3000791C8111C06484E20E94791C882311F0F1 +:103B4000C06802C0CC2329F08C2F0E94E61D6C2F88 +:103B500003C00E94E21D682F70E080E090E0CF91EA +:103B60000C94A618CF9108956DEE7EEF80E090E062 +:103B70000E942E2460E082E090E00E941C2460E01D +:103B800083E090E00E941C2460E084E090E00E94CA +:103B90001C2460E085E090E00C941C2480E090E020 +:103BA0000E94162421E08D3E9E4F09F020E0822FD6 +:103BB000089582E090E00C940E24682F82E090E05B +:103BC0000C941C2483E090E00C940E24682F83E076 +:103BD00090E00C941C2484E090E00C940E24682F58 +:103BE00084E090E00C941C248091D50180FF0BC0F0 +:103BF0006091130185E0689FB00111247595679568 +:103C0000759567952BC081FF09C06091130185E010 +:103C1000689FB00111247595679520C082FF07C089 +:103C20006091130185E0689FB001112417C0909145 +:103C3000D6019923D1F060911201961788F720914F +:103C4000130185E0289F90011124929FA001939F6A +:103C5000500D112470E0CA010E94E0236038710504 +:103C600040F46115710539F002C065E070E0862FFF +:103C700008958FE7089581E008958091D50180FF30 +:103C800008C06091110170E075956795759567950D +:103C900021C081FF06C06091110170E075956795A4 +:103CA00019C082FF04C06091110170E010C09091B2 +:103CB000D6019923C1F0609110019617A0F7809169 +:103CC0001101899FC001112470E00E94E023603837 +:103CD000710528F46115710521F0862F08958FE78D +:103CE000089581E0089561E070E0F4CF803F21F411 +:103CF0000E94F41D819504C0813F29F40E94F41DA7 +:103D00008093D9010895823F21F40E94F41D81958A +:103D100004C0833F29F40E94F41D8093D8010895C4 +:103D2000893F19F40E943D1E05C08A3F31F40E946C +:103D30003D1E81958093DA0108958B3F21F40E9406 +:103D40003D1E819504C08C3F29F40E943D1E809346 +:103D5000DB010895843F21F48091D701816017C071 +:103D6000853F21F48091D701826011C0863F21F404 +:103D70008091D70184600BC0873F21F48091D701E7 +:103D8000886005C0883F31F48091D70180618093BD +:103D9000D70108958D3F21F48091D50181600BC03A +:103DA0008E3F21F48091D501826005C08F3F29F4B8 +:103DB0008091D50184608093D5010895803F39F4C6 +:103DC0008091D90187FF6CC01092D90169C0813FF1 +:103DD00029F48091D9011816BCF362C09091D801E2 +:103DE000823F29F497FF5CC01092D80159C0833FED +:103DF00019F41916CCF354C0893F41F48091DA01CB +:103E000018160CF04DC01092DA014AC08A3F29F40E +:103E10008091DA0187FF44C0F6CF8B3F39F480915F +:103E2000DB0187FF3DC01092DB013AC08C3F29F4D3 +:103E30008091DB011816BCF333C0843F21F48091DC +:103E4000D7018E7F17C0853F21F48091D7018D7FE8 +:103E500011C0863F21F48091D7018B7F0BC0873F33 +:103E600021F48091D701877F05C0883F31F480918C +:103E7000D7018F7E8093D70113C08D3F21F48091AD +:103E8000D5018E7F0BC08E3F21F48091D5018D7FAF +:103E900005C08F3F29F48091D5018B7F8093D50198 +:103EA0008091D80181110EC08091D90181110AC081 +:103EB0008091DA01811106C08091DB01811102C07D +:103EC0001092D601089587ED91E00E94710F0E9433 +:103ED000CA1B9093D4018093D30108951F93CF936D +:103EE000DF938091D3019091D4010E94D61BAC0145 +:103EF0009091D601992321F02091140130E006C061 +:103F0000209115018AE0289F900111244217530740 +:103F100008F485C08091D801C091D901D091DA010F +:103F20001091DB01811107C0C11175C0D11173C09F +:103F3000111171C074C09F3F19F09F5F9093D6011B +:103F4000181624F40E94F41D8093D8018091D801A2 +:103F500087FF05C00E94F41D81958093D8011C162F +:103F600024F40E94F41D8093D9018091D90187FF28 +:103F700005C00E94F41D81958093D9016091D801FC +:103F8000662331F1C091D901CC2311F1062E000C2A +:103F9000770B880B990B0E94E72223E333E343E37B +:103FA0005FE30E944B230E94AF226093D8016C2FE5 +:103FB000CC0F770B880B990B0E94E72223E333E3A6 +:103FC00043E35FE30E944B230E94AF226093D90139 +:103FD0001D1624F40E943D1E8093DA018091DA01BF +:103FE00087FF05C00E943D1E81958093DA0111165E +:103FF00024F40E943D1E8093DB018091DB0187FF4A +:1040000005C00E943D1E81958093DB01DF91CF9119 +:104010001F910C94631F9F3F09F08FCF97CFDF91C3 +:10402000CF911F910895E7EDF1E085E0DF011D924A +:104030008A95E9F71092D6011092D5010895833040 +:1040400081F128F4813059F08230D1F00895853023 +:1040500009F449C0B8F1863009F456C0089580913A +:104060001501262F30E0280F311D2F3F310524F494 +:10407000680F6093150108958FEF809315010895DF +:1040800080911401262F30E0280F311D2F3F31057C +:1040900024F4680F6093140108958FEF8093140146 +:1040A000089580911301262F30E0280F311D2F3FF6 +:1040B000310524F4680F6093130108958FEF809306 +:1040C0001301089580911201262F30E0280F311D31 +:1040D0002F3F310524F4680F6093120108958FEF8C +:1040E00080931201089580911101262F30E0280F4E +:1040F000311D2F3F310524F4680F6093110108959D +:104100008FEF80931101089580911001262F30E0E8 +:10411000280F311D2F3F310524F4680F60931001E3 +:1041200008958FEF809310010895833011F128F4E2 +:10413000813049F0823091F00895853081F120F18D +:104140008630C1F1089580911501681720F4861B0F +:10415000809315010895109215010895809114011E +:10416000681720F4861B809314010895109214019F +:10417000089580911301681720F4861B8093130122 +:10418000089510921301089580911201681720F488 +:10419000861B809312010895109212010895809158 +:1041A0001101681720F4861B809311010895109265 +:1041B0001101089580911001681720F4861B8093E7 +:1041C000100108951092100108950F931F938D31DF +:1041D00009F46BC008F03FC08E3009F47FC0C0F412 +:1041E000873009F469C068F4863009F0B1C0809165 +:1041F000CD01817F8E7F8093CD0181E08093DD01B1 +:10420000A8C0883009F4A2C08B3009F49FC0A0C0B8 +:10421000863109F49BC078F4803109F472C0813191 +:1042200009F096C00E94EA1490910D0181E089275F +:1042300080930D018BC0893109F488C08B3109F05E +:1042400087C08091CD0181FB222720F991E0922740 +:1042500090FB81F94CC0853309F470C048F4873273 +:1042600009F46CC008F459C0893209F467C070C001 +:10427000833438F48A3308F04EC0883309F466C0BA +:1042800067C0833409F45AC0883409F061C00E94C1 +:10429000EA140FEF13ED20E3015010402040E1F746 +:1042A00000C000000E94251C51C00E9469220E948B +:1042B0005A0F0E9450084AC09091CD01892F8095D5 +:1042C000817080FB90F929F0966098609093CD0101 +:1042D00040C0997F977F9093CD0138C08091CD01E8 +:1042E00082FB222720F991E0922790FB82F98093AC +:1042F000CD01992359F18091CD0181608093CD0149 +:1043000025C08091CD0183FB222720F991E09227DF +:1043100090FB83F9ECCF895301C08D5141E050E00F +:1043200060E070E08A019B0104C0000F111F221F92 +:10433000331F8A95D2F7C901B80104C061E070E06B +:1043400080E090E00E94A6180E94EA1481E001C07B +:1043500080E01F910F91089580E0089580E0089516 +:10436000CF93C82F8091DD01813079F018F0823031 +:10437000E9F187C0E0910E01F0910F018081813158 +:1043800069F0823209F07FC009C0E0910E01F0911E +:104390000F018081813111F0823261F48C2F0E94F3 +:1043A000AC21811104C08C2F0E94E5201DC081E04A +:1043B00090E01AC08C2F0E94AE21811114C0C4312C +:1043C00079F048F4CB3079F0C03109F060C082E078 +:1043D0008093DD0108C0C93219F0C83321F057C0FD +:1043E0001092DD0154C081E0817053C0C93289F15F +:1043F00018F5C43171F1A8F4C73009F046C08AE05D +:104400008093150194E19093140193E0909313012C +:104410008093120188E08093110188E2809310015B +:1044200034C0CE51C63088F5EC2FF0E0E65DFE4F8B +:1044300080818093DC0129C0CE34E9F020F4CB34B4 +:1044400021F56AE013C0C13579F0C235F1F461E0BD +:104450000DC08091DC01882319F01092DC0115C099 +:1044600081E08093DD0115C061E006C08091DC0130 +:104470000E941F200AC06AE08091DC010E94952002 +:1044800004C01092DD0180E004C081E002C080E041 +:10449000ABCFCF910895E1E8F0E080818860808320 +:1044A0008081816080838FB7F89493E09093890036 +:1044B00090ED909388008FBF0895EFE6F0E0808143 +:1044C000826080830895EFE6F0E080818D7F8083B5 +:1044D0000895EFE6F0E0908182E0892780830895D7 +:1044E0001F920F920FB60F9211242F933F934F9369 +:1044F0005F936F937F938F939F93AF93BF93EF934C +:10450000FF938091DE019091DF0101969093DF018E +:104510008093DE01811103C082E00E945008E09187 +:10452000DF01E695E695F0E0EA5CFA4FE4918091D0 +:10453000DE018E1303C080E00E945008FF91EF91CE +:10454000BF91AF919F918F917F916F915F914F91AB +:104550003F912F910F900FBE0F901F9018950E94C2 +:10456000B6226894B1110C94452308950E942A2321 +:1045700088F09F5798F0B92F9927B751B0F0E1F024 +:10458000660F771F881F991F1AF0BA95C9F714C0D4 +:10459000B13091F00E944423B1E008950C9444237B +:1045A000672F782F8827B85F39F0B93FCCF386950D +:1045B00077956795B395D9F73EF49095809570956A +:1045C00061957F4F8F4F9F4F0895E89409C097FBE7 +:1045D0003EF490958095709561957F4F8F4F9F4FDA +:1045E0009923A9F0F92F96E9BB279395F69587951E +:1045F00077956795B795F111F8CFFAF4BB0F11F4E1 +:1046000060FF1BC06F5F7F4F8F4F9F4F16C0882387 +:1046100011F096E911C0772321F09EE8872F762FBD +:1046200005C0662371F096E8862F70E060E02AF0FE +:104630009A95660F771F881FDAF7880F96958795EA +:1046400097F9089557FD9058440F551F59F05F3F53 +:1046500071F04795880F97FB991F61F09F3F79F0A4 +:1046600087950895121613061406551FF2CF469526 +:10467000F1DF08C0161617061806991FF1CF8695A8 +:104680007105610508940895E894BB27662777278C +:10469000CB0197F908950E945E230C94CF230E94CA +:1046A000C12338F00E94C82320F0952311F00C9408 +:1046B000B8230C94BE2311240C9445230E9422237A +:1046C00070F3959FC1F3950F50E0551F629FF00165 +:1046D000729FBB27F00DB11D639FAA27F00DB11D7E +:1046E000AA1F649F6627B00DA11D661F829F222707 +:1046F000B00DA11D621F739FB00DA11D621F839F8E +:10470000A00D611D221F749F3327A00D611D231F63 +:10471000849F600D211D822F762F6A2F11249F57B1 +:1047200050409AF0F1F088234AF0EE0FFF1FBB1FB4 +:10473000661F771F881F91505040A9F79E3F510573 +:1047400080F00C94B8230C9445235F3FE4F3983E2B +:10475000D4F3869577956795B795F795E7959F5F1D +:10476000C1F7FE2B880F911D9695879597F90895AF +:1047700097F99F6780E870E060E008959FEF80EC14 +:10478000089500240A9416161706180609060895B7 +:1047900000240A9412161306140605060895092E1D +:1047A0000394000C11F4882352F0BB0F40F4BF2B8C +:1047B00011F460FF04C06F5F7F4F8F4F9F4F0895CC +:1047C00097FB072E16F4009407D077FD09D00E94BE +:1047D000FA2307FC05D03EF4909581959F4F0895EC +:1047E000709561957F4F0895EE0FFF1F0590F4912E +:1047F000E02D0994AA1BBB1B51E107C0AA1FBB1FD8 +:10480000A617B70710F0A61BB70B881F991F5A955C +:10481000A9F780959095BC01CD010895F999FECF37 +:1048200092BD81BDF89A992780B50895A8E1B0E0BE +:1048300042E050E00C943624262FF999FECF92BD29 +:1048400081BDF89A019700B4021639F01FBA20BD55 +:104850000FB6F894FA9AF99A0FBE08950196272F89 +:104860000E941D240C941C24DC01CB01FC01F9994D +:10487000FECF06C0F2BDE1BDF89A319600B40D92AC +:0C48800041505040B8F70895F894FFCF65 +:10488C0020025208E008BD08890855080101BA0148 +:10489C0028080A03140A3F4D3639F704AA04740495 +:1048AC003B04CE03E70300041904010203040506CC +:0448BC0007080900E0 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/twey/keymap.c b/keyboard/ergodox_ez/keymaps/twey/keymap.c new file mode 100644 index 0000000000..dec9f92f14 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/keymap.c @@ -0,0 +1,217 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_plover.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define STEN 2 // steno +#define MDIA 3 // media keys + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,---------------------------------------------------. ,---------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | STEN | | NONE | 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | + * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | + * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | + * `-----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | PgUp | PgDn | | Home | End | + * ,------|-------|------| |-------+-------+------. + * | | | NONE | | AltGr | | | + * | Alt | Enter |------| |-------| Space | Ctrl | + * | | | Supr | | ~MDIA | | | + * `---------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, M(0), + KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, + MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, + KC_PGUP,KC_PGDN, + KC_NO, + KC_LALT,KC_ENT ,KC_LGUI, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), + KC_HOME,KC_END, + KC_RALT, + KC_FN1,KC_SPC,KC_RCTL + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +[STEN] = KEYMAP( // layout: layer 2: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, + KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, + KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_FN1, PV_E, PV_U +), + +/* Keymap 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 3 (Media) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != STEN) layer_on(STEN); else layer_off(STEN); + + register_code(PV_LS); + register_code(PV_LH); + register_code(PV_RF); + register_code(PV_RT); + } else { + unregister_code(PV_LS); + unregister_code(PV_LH); + unregister_code(PV_RF); + unregister_code(PV_RT); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + toggle_steno(record->event.pressed); + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint32_t layer0 = layer_state & (1UL << 0), + layer1 = layer_state & (1UL << 1), + layer2 = layer_state & (1UL << 2), + layer3 = layer_state & (1UL << 3); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + if (layer1) ergodox_right_led_1_on(); + if (layer2) ergodox_right_led_2_on(); + if (layer3) ergodox_right_led_3_on(); +}; diff --git a/keyboard/ergodox_ez/keymaps/twey/readme.md b/keyboard/ergodox_ez/keymaps/twey/readme.md new file mode 100644 index 0000000000..d44c0a2382 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/readme.md @@ -0,0 +1,19 @@ +# Twey's Home Configuration +## Layers +- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all + modifiers on thumb keys, as well as return and space. +- Layer 1: Default symbol layout. +- Layer 2: Default media/mouse layout. +- Layer 3: Plover-oriented stenography layer. + +## Unusual features +The Plover key (top right key on the left half) also sends my Plover +‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno +layer, so you can toggle between steno and typing modes with a single +keypress. + +If you want to use this feature, you'll need to add: + + "SH-FT": "{PLOVER:TOGGLE}" + +to your Plover dictionary. diff --git a/keyboard/ergodox_ez/keymaps/twey/twey.hex b/keyboard/ergodox_ez/keymaps/twey/twey.hex new file mode 100644 index 0000000000..14f5b7c798 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/twey.hex @@ -0,0 +1,1122 @@ +:100000000C9465020C94A9020C94A9020C94A90208
+:100010000C94A9020C94A9020C94A9020C94A902B4
+:100020000C94A9020C94A9020C94C50B0C94970C87
+:100030000C94A9020C94A9020C94A9020C94A90294
+:100040000C94A9020C9422210C94A9020C94A902EC
+:100050000C94A9020C94C41A0C94A9020C94A90241
+:100060000C94A9020C94A9020C94A9020C94A90264
+:100070000C94A9020C94A9020C94A9020C94A90254
+:100080000C94A9020C94A9020C94A9020C94A90244
+:100090000C94A9020C94A9020C94A9020C94A90234
+:1000A0000C94A9020C94A9020C94A902FC0C1E0D3C
+:1000B000090E1E0D090E600D830D090ED80DEB0DF6
+:1000C000D810D81006110611481184118413841316
+:1000D0009C118413931293125E138413841372136E
+:1000E0000000F0A12E004C002A00E1003581000044
+:1000F0001E00140004001D7134004D001F001A0082
+:1001000016001B00E1042A0020000800070006007A
+:1001100050002C0021001500090019004F004A0072
+:10012000220017000A000500000065745000015409
+:100130000000007F0000E3004F0001540000007742
+:100140000000E20023001C000B00110000002971D8
+:10015000240018000D00100052004B0025000C0078
+:100160000E00360051002800260012000F00370054
+:100170002F002B00270013003382387130004E000F
+:100180002D0031003478E500C100000001000100BD
+:1001900001000100010000003A001E0220022202BC
+:1001A000010001003B001F022102230201000100A7
+:1001B0003C002F0226022F00010001003D0030020A
+:1001C00027023000010001003E00310235003502F7
+:1001D000000001000100010000000100000001001A
+:1001E0000100010000000100000001003F0052007A
+:1001F00051002402000001004000240021001E00E4
+:10020000010001004100250022001F00370001000D
+:1002100042002600230020002700010043002502A1
+:100220002E0231002E0001004400450001000100B3
+:1002300001000000010001000100010001000000B8
+:1002400001000100010001000100010001000100A6
+:10025000F2000100010001000100F000F1000100C6
+:10026000F400010001000100F3000100F5000100AD
+:100270000100010001000100000001000100010077
+:100280000000010000000100010001000000010069
+:100290000000010001000100010001000000010058
+:1002A0000100010001000100A9000100010001009E
+:1002B0000100AC00AA00B600010001000100AB0083
+:1002C000A80001000100010001000100010001007F
+:1002D00001000100AE00010001000000160345000E
+:1002E000720067006F0044006F0078002000450036
+:1002F0005A00000016034500720067006F004400BA
+:100300006F007800200045005A0000000403090433
+:1003100009026D00040100A0FA09040000010301B4
+:100320000100092111010001223F00070581030896
+:10033000000A090401000103010200092111010062
+:1003400001224D000705820308000A09040200018A
+:100350000300000009211101000122360007058376
+:100360000308000A09040300010300000009211129
+:100370000100012239000705840310000112011059
+:100380000100000008EDFE07130100010200010555
+:10039000010906A101050719E029E71500250195C6
+:1003A0000875018102050819012905950575019156
+:1003B000029501750391010507190029771500259C
+:1003C00001957875018102C005010980A1018502AE
+:1003D00016010026B7001A01002AB7007510950112
+:1003E0008100C0050C0901A1018503160100269CAE
+:1003F000021A01002A9C02751095018100C00501B6
+:100400000902A1010901A100050919012905150029
+:10041000250195057501810295017503810105018D
+:10042000093009311581257F950275088106093843
+:100430001581257F950175088106050C0A3802157E
+:1004400081257F950175088106C0C005010906A1B7
+:1004500001050719E029E7150025019508750181B7
+:100460000295017508810105081901290595057591
+:100470000191029501750391010507190029FF15E6
+:100480000025FF950675088100C0000000000000EF
+:100490000000000000010204060A0F17202C3A4A4F
+:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
+:1004B000B39D87715D4A3A2C20170F0A060402018A
+:1004C0000000000000000000000011241FBECFEF5C
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A
+:1004E0009091EF01A091F001B091F1018730904B14
+:1004F000A740B04BB9F41092EE011092EF011092A8
+:10050000F0011092F10114BE84B7877F84BF88E1A7
+:100510000FB6F89480936000109260000FBEE0E088
+:10052000FFE3099511E0A0E0B1E0E8ECF5E402C0DA
+:1005300005900D92A433B107D9F711E0A4E3B1E01F
+:1005400001C01D92AE3EB107E1F70E940B090C9469
+:10055000E2220C94000061110BC0FC01828188230F
+:1005600021F085EE0E946C0F03C085EE0E943410CE
+:1005700080E090E0089508956091B1017091B2011A
+:100580008091B3019091B4010E94F01956985E9841
+:1005900025982D9826982E9827982F98813019F015
+:1005A000823021F00895259A2D9A0895269A2E9A40
+:1005B00008958CEB92E0892B11F00E94BC0280E040
+:1005C00090E0089556985E9825982D9826982E9834
+:1005D00027982F988FEF90E0909389008093880060
+:1005E00090938B0080938A0090938D0080938C0071
+:1005F000259A2D9A2FEF80E792E02150804090407D
+:10060000E1F700C00000269A2E9A2FEF80E792E0D3
+:10061000215080409040E1F700C00000279A2F9AB7
+:100620002FEF80E792E0215080409040E1F700C03A
+:10063000000025982D982FEF80E792E02150804010
+:100640009040E1F700C0000026982E982FEF80E739
+:1006500092E0215080409040E1F700C000002798D0
+:100660002F9856985E9825982D9826982E9827981A
+:100670002F98089589EA8093800089E08093810013
+:1006800024982C983F988AB18F748AB96E98479AAB
+:100690008BB1806B8BB9769A0E94E2028BEB92E071
+:1006A000892B11F00E94BB0280E090E0089580E267
+:1006B000809300018091340181110EC00E94A60335
+:1006C00081E0809334012FEF83ED90E3215080404F
+:1006D0009040E1F700C0000080E40E94AC038093EA
+:1006E000000181112EC00E94D60380930001811168
+:1006F00028C00E94D60380930001811122C08FE39D
+:100700000E94D6038093000181111BC00E94CE037A
+:1007100080E40E94AC0380930001811112C08CE040
+:100720000E94D6038093000181110BC00E94D60362
+:1007300080930001811105C08FE30E94D60380934E
+:1007400000010E94CE038091000108951092B9002B
+:100750008AE08093B800089594EA9093BC00909149
+:10076000BC0097FFFCCF9091B900987F983021F0A2
+:10077000903111F081E008958093BB0084E880936C
+:10078000BC008091BC0087FFFCCF8091B900887FBE
+:10079000883111F0803471F780E0089584E9809306
+:1007A000BC008091BC0084FDFCCF08958093BB0009
+:1007B00084E88093BC008091BC0087FFFCCF9091BF
+:1007C000B900987F81E0983209F480E0089584E8C8
+:1007D0008093BC008091BC0087FFFCCF8091BB0060
+:1007E000089580910001811115C080E40E94AC033E
+:1007F0008093000181110CC082E10E94D603809396
+:100800000001811105C08FEF0E94D6038093000183
+:100810000E94CE0384B1807F84B985B1807F85B981
+:100820008AB1837F8AB98BB1837F8BB93E98469812
+:1008300008950E945703809300010E94F10380B342
+:100840008C7080BB81B3836F81BBE4E4F1E0A6E3ED
+:10085000B1E011921D9281E0E235F807D1F78AE309
+:1008600093E0892B11F00C943A030895BF92CF9234
+:10087000DF92EF92FF920F931F93CF93DF938091BC
+:100880000001882379F0809135018F5F80933501D5
+:10089000811108C00E94570380930001811102C09A
+:1008A0000E94E20206E311E0C0E0D0E0DD24D39430
+:1008B00082E0C82EEE24E394F12CC73000F580913D
+:1008C0000001811162C080E40E94AC0380930001AA
+:1008D000811112C082E10E94D60380930001811130
+:1008E0000BC0C7010C2E01C0880F0A94EAF780954F
+:1008F0000E94D603809300010E94CE0346C0CA30F6
+:10090000A1F028F4C83059F0C93061F005C0CC30EE
+:1009100089F070F0CD3089F0209A289810C0219A83
+:1009200029980DC0229A2A980AC0239A2B9807C0AA
+:10093000529A01C0539A5B9802C03E9A4698E0EAE8
+:10094000EA95F1F78FB1799960C092E081708D25B9
+:10095000892B7C9B02C090E001C094E0892B7D9B99
+:1009600002C090E001C098E0892B7E9B02C090E01D
+:1009700001C090E1892B9FB19095991F9927991FEC
+:100980009295990F907E892B0FC080910001811163
+:1009900051C080E40E94AC03809300018823B9F128
+:1009A000B12C0E94CE038B2DF8019081981719F07D
+:1009B0008083C09201010E94F10321960F5F1F4FB7
+:1009C000CE30D10509F079CF809101018823B1F0B3
+:1009D000815080930101882339F08FE99FE00197CE
+:1009E000F1F700C000000AC0A4E4B1E0E6E3F1E0E2
+:1009F00081918D9391E0E434F907D1F789ED92E08C
+:100A0000892BD1F00E94D90217C090E09FCF83E1DB
+:100A10000E94D603809300018111C2CF81E40E941D
+:100A2000AC03809300018111BBCF0E94E703B82E75
+:100A3000B094B7CF80E0B8CF81E0DF91CF911F9124
+:100A40000F91FF90EF90DF90CF90BF900895E82F27
+:100A5000F0E0EC5BFE4F8081089508958B3B91059B
+:100A600078F4883A910540F5853A9105D0F48430C0
+:100A7000910508F0B1C08130910509F4ADC06BC09B
+:100A8000803E910508F467C0883E910508F4A4C033
+:100A90009C01205F31092031310508F05CC0906570
+:100AA0000895853A910509F459C0863A910509F4EB
+:100AB00058C083E890E40895883A910509F454C039
+:100AC000893A910509F453C08A3A910509F452C054
+:100AD0008B3A910509F451C08C3A910509F450C044
+:100AE0008D3A910509F44FC0803B910509F44EC041
+:100AF0008E3A910509F44DC08F3A910509F44CC026
+:100B0000813B910509F44BC0823B910509F44AC031
+:100B1000833B910509F449C0843B910509F448C021
+:100B2000853B910509F447C0863B910509F446C011
+:100B3000873B910509F445C0883B910509F444C001
+:100B4000893B910509F443C08A3B910509F042C0F5
+:100B50008AE296E4089580E090E0089581E890E4C8
+:100B6000089582E890E4089582EE94E4089589EE71
+:100B700094E408958AEE94E4089585EB94E408954E
+:100B800086EB94E4089587EB94E408958CEC94E468
+:100B900008958DEC94E4089583E895E408958AE837
+:100BA00095E4089582E995E4089584E995E408952B
+:100BB00081E296E4089583E296E4089584E296E45F
+:100BC000089585E296E4089586E296E4089587E222
+:100BD00096E4089580E094E40895089596E0799F5E
+:100BE000F001112494E5899FE00DF11D1124E60F19
+:100BF000F11DEE0FFF1FEC51FF4F85919491089569
+:100C0000880F991F805A9040FC0185919491089516
+:100C1000880F991F80529F4FFC01859194910895F0
+:100C200026E0729FF001112444E5849FE00DF11D40
+:100C30001124E60FF11DEE0FFF1FEC51FF4F259120
+:100C40003491C9019A9581159F4110F4C901089505
+:100C5000C90190528115904128F4C9019F700E94EA
+:100C600008060895C90190538115904120F4C901E7
+:100C70009927906C0895211580E5380769F40E9442
+:100C8000A5139FEF24E34CE0915020404040E1F752
+:100C900000C000000C94E91A213080E5380731F4D7
+:100CA0008091CC0181608093CC010895C901905559
+:100CB0008115904108F050C0832F99278F70992794
+:100CC00081309105D9F4A9014370552702C0880FDE
+:100CD000991F4A95E2F79C68A90164E0440F551FEB
+:100CE0006A95E1F744275370842B952B73E0220F0C
+:100CF000331F7A95E1F7207633271DC082309105A6
+:100D000029F4922F8827816F906A08958330910586
+:100D1000A9F4A9014370552781E090E002C0880F33
+:100D2000991F4A95E2F79C6843E0220F331F4A95CA
+:100D3000E1F7207E3770822B932B08950497F1F40E
+:100D4000A9014370552781E090E002C0880F991FE8
+:100D50004A95E2F79A68E8CFC9019057811590410A
+:100D600020F4C9019F7090620895C90190588115BF
+:100D7000904120F4C9019F70906A0895203E31058A
+:100D8000E0F4203C310558F52133310509F470C0F9
+:100D900048F42932310509F464C02A32310509F4D6
+:100DA0006EC074C029333105F1F022383105D9F015
+:100DB0002533310509F44EC069C0233E310589F160
+:100DC00038F4203E3105C1F0223E3105E1F05EC02D
+:100DD000263E310569F1273E3105A9F157C0C90109
+:100DE0000E94000608958091DF0180FD02C081FF0E
+:100DF0004DC080EE90E04BC08091DF0180FFF9CFC5
+:100E000089E390E044C08091DF0182FF0EC08091B1
+:100E1000DF0184FF03C080E090E039C083EE90E002
+:100E200036C08091DF0182FFF2CF82EE90E02FC0CA
+:100E30008091DF0183FF0BC08091DF0184FDEBCF48
+:100E400087EE90E024C08091DF0183FFF5CF86EE2E
+:100E500090E01DC08091DF0185FF07C089E290E02E
+:100E600016C08091DF0185FFF9CF85E390E00FC0C8
+:100E70008091DF0186FF07C08AE290E008C0809180
+:100E8000DF0186FFF9CF81E390E001C0C9010E9434
+:100E90002E0508950895809162010895CF93DF9300
+:100EA00000D01F92CDB7DEB72091E501243019F5AF
+:100EB00023E029839B838A832093E9008FEF90911D
+:100EC000E800815095FD06C095ED9A95F1F7000078
+:100ED0008111F5CF8091E80085FF0DC040E050E022
+:100EE00063E070E0CE0101960E94B8098091E800AD
+:100EF0008E778093E8000F900F900F90DF91CF9145
+:100F00000895CF93DF9300D01F92CDB7DEB7209125
+:100F1000E501243021F522E029839B838A8383E045
+:100F20008093E9008FEF9091E800815095FD06C015
+:100F300095ED9A95F1F700008111F5CF8091E800C9
+:100F400085FF0DC040E050E063E070E0CE01019607
+:100F50000E94B8098091E8008E778093E8000F9096
+:100F60000F900F90DF91CF9108952091E5012430EB
+:100F7000F1F422E02093E9002FEF3091E8002150B6
+:100F800035FD06C035ED3A95F1F700002111F5CF9A
+:100F90002091E80025FF0BC040E050E065E070E0E4
+:100FA0000E94B8098091E8008E778093E800089548
+:100FB000CF93DF93EC018091E501843009F046C0C6
+:100FC00090910C019923D9F090910D019923B9F0DA
+:100FD0008093E9008FEF9091E800815095FD06C065
+:100FE00095E19A95F1F700008111F5CF8091E80025
+:100FF00085FF2CC040E050E060E170E017C081E068
+:101000008093E9008FEF9091E800815095FD06C034
+:1010100095ED9A95F1F700008111F5CF8091E800E8
+:1010200085FF14C040E050E068E070E0CE010E940F
+:10103000B8098091E8008E778093E80080E1FE0196
+:10104000A2E5B1E001900D928A95E1F7DF91CF9191
+:1010500008958091E401811109C00E944A0B0E9409
+:10106000A70B8091E20084608093E20008951092C3
+:10107000E401089508950C940F210E94801A0E94A3
+:1010800015210E94440E0C944A0742E061EC81E075
+:101090000E94C40A42E061EC82E00E94C40A42E07D
+:1010A00061EC83E00E94C40A42E161EC84E00C94AC
+:1010B000C40A8091E701833009F455C030F48130CF
+:1010C00071F0823009F48EC008958A3009F47AC034
+:1010D0008B3009F460C0893009F09CC020C0809139
+:1010E000E601813A09F096C08091E800877F8093FD
+:1010F000E8008091EA019091EB01892B21F060E0FA
+:1011000080E090E003C060E182E591E070E00E9441
+:10111000010A8091E8008B778093E8000895809120
+:10112000E601813209F076C08091EA019091EB01ED
+:10113000009719F0039709F06DC08091E800877F50
+:101140008093E8008091E80082FD05C08091E50170
+:101150008111F8CF5FC08091F1008093620180918E
+:10116000E8008B7753C08091E601813A09F052C0C4
+:101170008091EA019091EB01892B09F04BC080919D
+:10118000E800877F8093E8008091E80080FFFCCF33
+:1011900080910C0136C08091E6018132D9F58091B1
+:1011A000EA019091EB01892BA9F58091E800877FF6
+:1011B0008093E8000E94F90A8091E80180930C0175
+:1011C0000C94A5138091E601813221F58091E8000D
+:1011D000877F8093E8000E94F90A8091E90180935B
+:1011E000630108958091E601813AA1F48091E800BD
+:1011F000877F8093E8008091E80080FFFCCF80919A
+:1012000063018093F1008091E8008E778093E8007D
+:101210000C94F90A089584B7877F84BF88E10FB6DC
+:10122000F89480936000109260000FBE90E080E818
+:101230000FB6F89480936100909361000FBE0E94F6
+:10124000930E0E944A0B0E94A70B8091E2008460DB
+:101250008093E20078940E94220E0E94950E82E014
+:1012600091E00E943F0E0E94FD208091E5018530B3
+:1012700069F40E94431A8091E3018823B1F30E942C
+:101280006B1A882391F30E94A209EFCF0E949B0E54
+:10129000ECCF292F332723303105A9F06CF421300E
+:1012A000310509F442C02230310509F043C08DE612
+:1012B00090E020E133E042C021323105C9F0223212
+:1012C000310519F137C099278130910541F08230FD
+:1012D000910541F0892B71F5ECE0F3E005C0E4EFF6
+:1012E000F2E002C0ECEDF2E0849190E09F0126C0B4
+:1012F000643000F5E62FF0E0EE0FFF1FEE5DFE4FCD
+:101300002081318189E090E019C0643098F4E62FA3
+:10131000F0E0DF01AA0FBB1FA65EBE4F2D913C91EE
+:10132000EA5EFE4F808190E009C082E190E02DE707
+:1013300033E004C080E090E020E030E0FA01318347
+:101340002083089580E189BD82E189BD09B400FE52
+:10135000FDCF8091D8008F7D8093D8008091E000F0
+:1013600082608093E0008091E00081FDFCCF0895D1
+:10137000CF92DF92EF92FF920F931F93CF93DF9361
+:101380007C018B01EA010E941A0B811131C0209768
+:1013900031F088819981081B190BE80EF91EC12CC8
+:1013A000D12C0115110519F18091E80085FD14C0BB
+:1013B0008091E8008E778093E800209741F0888143
+:1013C00099818C0D9D1D9983888385E011C00E94B1
+:1013D0001A0B882331F30CC0F70181917F018093B0
+:1013E000F10001501109FFEFCF1ADF0ADACF80E0D8
+:1013F000DF91CF911F910F91FF90EF90DF90CF90F1
+:1014000008952091EC013091ED012617370748F03F
+:101410006115710539F42091E8002E772093E800DA
+:1014200001C0B901FC0120E061157105B9F180919D
+:10143000E501882309F440C0853009F43FC080915C
+:10144000E80083FD3DC08091E80082FF06C08091E6
+:10145000E80082FF26C080E008958091E80080FFC8
+:10146000E3CF2091F3008091F20090E0922B611580
+:10147000710551F08830910538F421912093F100E5
+:10148000615071090196F3CF21E0089709F020E03F
+:101490008091E8008E778093E800C6CF2111C7CFF6
+:1014A000D6CF8091E501882339F0853039F08091DD
+:1014B000E80083FFCCCF04C082E0089583E0089564
+:1014C00081E008952091EC013091ED012617370756
+:1014D00048F06115710539F42091E8002E772093CA
+:1014E000E80001C0B901FC0120E061157105C1F1FE
+:1014F0008091E501882309F441C0853009F440C09A
+:101500008091E80083FD3EC08091E80082FF06C024
+:101510008091E80082FF27C080E008958091E80074
+:1015200080FFE3CF2091F3008091F20090E0922BB6
+:101530006115710559F08830910540F4249120938C
+:10154000F1003196615071090196F2CF21E00897C0
+:1015500009F020E08091E8008E778093E800C5CF05
+:101560002111C6CFD5CF8091E501882339F0853090
+:1015700039F08091E80083FFCBCF04C082E008956A
+:1015800083E0089581E00895982F973058F590935F
+:10159000E900981739F07091EC002091ED0050911E
+:1015A000F00003C0242F762F50E021FF19C03091A6
+:1015B000EB003E7F3093EB003091ED003D7F3093A8
+:1015C000ED003091EB0031603093EB007093EC0054
+:1015D0002093ED005093F0002091EE0027FF07C00C
+:1015E0009F5FD3CF8F708093E90081E0089580E002
+:1015F00008958091E60187FD05C08091E80080FF95
+:101600000EC012C08091E80082FD05C08091E50106
+:101610008111F8CF08958091E8008B7708C0809100
+:10162000E5018111EACF08958091E8008E778093DB
+:10163000E80008958091E4009091E50045E620914E
+:10164000EC0020FF21C02091E80020FD21C0209166
+:10165000E501222389F0253089F02091EB0025FD5A
+:101660000FC02091E4003091E5002817390739F3C5
+:10167000415041F0C901E3CF82E0089583E008952D
+:1016800081E0089584E008952091E80022FFDFCFF3
+:1016900080E008950E94B80B0E94C00BE0EEF0E0DD
+:1016A000808181608083E8EDF0E080818F778083A6
+:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA
+:1016C00080831092E40108950F931F93CF93DF93CB
+:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4
+:1016E000888388818068888388818F7D888319BCFE
+:1016F0001092E5011092E1011092E3011092E201D3
+:1017000000EE10E0F80180818B7F8083888181600A
+:10171000888342E060E080E00E94C40AE1EEF0E0ED
+:1017200080818E7F8083E2EEF0E080818160808323
+:10173000808188608083F80180818E7F80838881AA
+:1017400080618883DF91CF911F910F910895E8ED1B
+:10175000F0E080818F7E8083E7EDF0E08081816022
+:10176000808384E082BF81E08093E4010C94640B69
+:10177000E8EDF0E080818E7F80831092E200089592
+:101780001092DA001092E10008951F920F920FB6A6
+:101790000F9211242F933F934F935F936F937F93F7
+:1017A0008F939F93AF93BF93EF93FF938091E1004B
+:1017B00082FF0BC08091E20082FF07C08091E100B0
+:1017C0008B7F8093E1000E94210E8091DA0080FFE0
+:1017D0001FC08091D80080FF1BC08091DA008E7FEF
+:1017E0008093DA008091D90080FF0DC080E189BD2F
+:1017F00082E189BD09B400FEFDCF81E08093E5015F
+:101800000E94290805C019BC1092E5010E94370802
+:101810008091E10080FF19C08091E20080FF15C037
+:101820008091E2008E7F8093E2008091E2008061EF
+:101830008093E2008091D80080628093D80019BC28
+:1018400085E08093E5010E943B088091E10084FFE0
+:1018500030C08091E20084FF2CC080E189BD82E12C
+:1018600089BD09B400FEFDCF8091D8008F7D8093A3
+:10187000D8008091E1008F7E8093E1008091E200AA
+:101880008F7E8093E2008091E20081608093E2008D
+:101890008091E101882311F084E007C08091E3008A
+:1018A00087FF02C083E001C081E08093E5010E94D0
+:1018B0003D088091E10083FF29C08091E20083FF11
+:1018C00025C08091E100877F8093E10082E08093D2
+:1018D000E5011092E1018091E1008E7F8093E100AB
+:1018E0008091E2008E7F8093E2008091E20080612F
+:1018F0008093E20042E060E080E00E94C40A8091B0
+:10190000F00088608093F0000E943A08FF91EF9108
+:10191000BF91AF919F918F917F916F915F914F9107
+:101920003F912F910F900FBE0F901F9018951F920F
+:101930000F920FB60F9211242F933F934F935F9303
+:101940006F937F938F939F93AF93BF93CF93EF93B7
+:10195000FF93C091E900CF708091EC001092E900F4
+:101960008091F000877F8093F00078940E94D30CE0
+:101970001092E9008091F00088608093F000C0939D
+:10198000E900FF91EF91CF91BF91AF919F918F911E
+:101990007F916F915F914F913F912F910F900FBE6B
+:1019A0000F901F9018951F93CF93DF93CDB7DEB79D
+:1019B000AA970FB6F894DEBF0FBECDBFE6EEF1E0FA
+:1019C0008091F100819321E0EE3EF207C9F70E9479
+:1019D00059088091E80083FF1CC12091E6013091F5
+:1019E000E701832F90E08A30910508F012C1FC01D5
+:1019F000EA5AFF4F0C949722203881F0223809F0E0
+:101A000008C18091EA018F708093E9008091EB001A
+:101A100085FB882780F91092E90006C08091E201D9
+:101A20009091E301911182609091E800977F9093EB
+:101A3000E8008093F1001092F100C5C0822F8D7FE5
+:101A400009F0E7C0222319F0223061F0E2C0809152
+:101A5000E801813009F0DDC0333009F080E0809387
+:101A6000E30128C08091E801811124C02091EA019E
+:101A70002F7009F4CEC02093E9008091EB0080FF25
+:101A800019C08091EB00333011F4806211C0806185
+:101A90008093EB0081E090E0022E01C0880F0A9451
+:101AA000EAF78093EA001092EA008091EB008860E8
+:101AB0008093EB001092E9008091E800877F86C058
+:101AC0002111A7C01091E8011F778091E300807871
+:101AD000812B8093E3008091E800877F8093E8006A
+:101AE0000E94F90A8091E80080FFFCCF8091E3001A
+:101AF00080688093E300112311F083E001C082E04D
+:101B00008093E50186C02058223008F082C0809181
+:101B1000E8019091E9018C3D23E0920779F583E09B
+:101B20008A838AE289834FB7F894DE01139620E016
+:101B30003EE051E2E32FF0E050935700E49120FFA4
+:101B400003C0E295EF703F5FEF708E2F90E0EA30B8
+:101B500010F0C79601C0C0968D939D932F5F2431DE
+:101B600049F74FBF8091E800877F8093E8006AE2E1
+:101B700070E0CE0101960E94010A14C0AE014F5FD1
+:101B80005F4F6091EA010E944909009709F441C042
+:101B90002091E800277F2093E800BC0189819A8189
+:101BA0000E94620A8091E8008B778093E80031C040
+:101BB000203879F58091E800877F8093E800809154
+:101BC000E1018093F1008091E8008E778093E80036
+:101BD0000E94F90A1EC021111CC09091E8019230A8
+:101BE000C0F48091E800877F8093E8009093E10142
+:101BF0000E94F90A8091E101811104C08091E30003
+:101C000087FF02C084E001C081E08093E5010E946B
+:101C100045088091E80083FF0AC08091E800877F33
+:101C20008093E8008091EB0080628093EB00AA969D
+:101C30000FB6F894DEBF0FBECDBFDF91CF911F91DD
+:101C400008950895CF938091E5018823B1F08091A4
+:101C5000E9008F709091EC0090FF02C090E801C005
+:101C600090E0C92FC82B1092E9008091E80083FD15
+:101C70000E94D30CCF70C093E900CF910895909348
+:101C80006901809368010895E0916801F09169010C
+:101C9000309721F00190F081E02D099480E00895C3
+:101CA000E0916801F0916901309721F00280F381A1
+:101CB000E02D09940895E0916801F0916901309751
+:101CC00021F00480F581E02D0994089520916601AA
+:101CD000309167018217930771F0909367018093A9
+:101CE0006601E0916801F0916901309721F006806A
+:101CF000F781E02D099408952091640130916501E8
+:101D00008217930771F09093650180936401E091CD
+:101D10006801F0916901309721F00084F185E02D90
+:101D20000994089508950C94920E0E94861A0E94B8
+:101D300019040C944C1BCF92DF92EF92FF920F93F9
+:101D40001F93CF93DF93CDB7DEB72B970FB6F894E1
+:101D5000DEBF0FBECDBF0E9436043BE6E32E31E06E
+:101D6000F32E00E010E0C02E802F0E942705F7011F
+:101D7000D1907F01D826B1F40F5F1F4F0E301105AF
+:101D800091F78FEF89838A831B820E948F1A81606B
+:101D9000782F9D838C8349815A816B818D810E942C
+:101DA0003E0F41C09091CC0191FF04C08B870E94EF
+:101DB0002D058B8520E030E04D2D50E0922FBA01AB
+:101DC000022E02C0759567950A94E2F760FF25C060
+:101DD0002E83CF82EE24E394F12C02C0EE0CFF1C84
+:101DE0009A95E2F790E08E219F2121E0892B09F45A
+:101DF00020E028870E948F1A8160782F9A87898730
+:101E00004E815F8168858A850E943E0FF801E55901
+:101E1000FE4F80818E25808306C02F5F3F4F263086
+:101E2000310561F6A9CF0E94301E10916A010E940F
+:101E3000440E1817A1F00E94440E80936A012B965D
+:101E40000FB6F894DEBF0FBECDBFDF91CF911F91CB
+:101E50000F91FF90EF90DF90CF900C944A072B9654
+:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB
+:101E70000F91FF90EF90DF90CF900895CF93DF9375
+:101E8000CDB7DEB72B970FB6F894DEBF0FBECDBF30
+:101E90004F83588769877A878B87DE01119686E0A2
+:101EA000FD0111928A95E9F785E0FE0137960190D0
+:101EB0000D928A95E1F749815A816B817C818D81F0
+:101EC0009E810E9471162B960FB6F894DEBF0FBE4E
+:101ED000CDBFDF91CF910895CF93C82F882309F408
+:101EE000C1C0823859F40E94440E81FDBBC089E311
+:101EF0000E9410190E94CA1989E30CC0833879F432
+:101F00000E94440E80FDAEC083E50E9410190E941D
+:101F1000CA1983E50E945019CF910C94CA198438CC
+:101F200059F40E94440E82FD9DC087E40E9410195E
+:101F30000E94CA1987E4EECF8CEF8C0F813A48F4E7
+:101F40008C2F0E94652081118DC08C2F0E9410194A
+:101F5000E3CF80E28C0F883048F4C77081E001C085
+:101F6000880FCA95EAF70E949119D6CF8BE58C0F9E
+:101F7000833078F4C53A29F0C63A31F482E890E02B
+:101F800005C081E890E002C083E890E0CF910C9416
+:101F9000660E88E58C0F833108F064C0C83A39F1C9
+:101FA000C93A41F1CA3A49F1CB3A51F1CC3A59F127
+:101FB000CD3A61F1C03B69F1CE3A71F1CF3A79F196
+:101FC000C13B81F1C23B89F1C33B91F1C43B99F123
+:101FD000C53BA1F1C63BA9F1C73BB1F1C83BB9F183
+:101FE000C93BC1F1CA3BC9F58AE292E038C082EE32
+:101FF00090E035C089EE90E032C08AEE90E02FC0CC
+:1020000085EB90E02CC086EB90E029C087EB90E058
+:1020100026C08CEC90E023C08DEC90E020C083E8DB
+:1020200091E01DC08AE891E01AC082E991E017C0F2
+:1020300084E991E014C081E292E011C083E292E071
+:102040000EC084E292E00BC085E292E008C086E216
+:1020500092E005C087E292E002C080E090E0CF917C
+:102060000C947C0ECF910895882309F44BC08238DC
+:1020700059F40E94440E81FF45C089E30E94101963
+:102080000E94CA1989E30CC0833871F40E94440E7F
+:1020900080FF38C083E50E9410190E94CA1983E5A9
+:1020A0000E9450190C94CA19843859F40E94440EA5
+:1020B00082FF28C087E40E9410190E94CA1987E491
+:1020C000EFCF9CEF980F913A58F390E2980F983029
+:1020D00050F4877091E001C0990F8A95EAF7892F33
+:1020E0000E949719DFCF9BE5980F933020F480E092
+:1020F00090E00C94660E885A833120F480E090E0E2
+:102100000C947C0E0895882321F00E9491190C9460
+:10211000CA190895882321F00E9497190C94CA19AE
+:102120000895CF92DF92EF92FF920F931F93CF9378
+:10213000DF93CDB7DEB728970FB6F894DEBF0FBE9A
+:10214000CDBF8C0185E0F801DE01119601900D9262
+:102150008A95E1F7F80140813181F280258122954D
+:102160002F7083819481892B31F03F3F31F481E0DE
+:102170004F3F19F403C081E001C080E080FDC4C27C
+:1021800049833A8389819A812F830E94CE189E8346
+:1021900088870E94CD180E94A0174E81E42FE295F7
+:1021A000EF70F0E0E05AFF4F2F8168850C94972282
+:1021B000842F807F142F1F70882311F01295107FB9
+:1021C000FF2059F0112309F454C2812F68870E941F
+:1021D000A1190E94CA1968854CC2862F0E9434102A
+:1021E000112309F491C2812F0E94A71928960FB6D6
+:1021F000F894DEBF0FBECDBFDF91CF911F910F913D
+:10220000FF90EF90DF90CF900C94CA19342F307F5D
+:10221000842F8F70303211F08295807F662319F001
+:10222000613019F12BC0FF20B1F0222309F493C1D2
+:10223000213009F090C128960FB6F894DEBF0FBE8A
+:10224000CDBFDF91CF911F910F91FF90EF90DF9065
+:10225000CF900C94B119222319F0213009F454C203
+:102260008E830E94B4198E8189C1FF2021F0223013
+:1022700008F04AC270C1211147C280C1FF2021F07D
+:10228000222309F468C1F5C1222309F477C105C2EC
+:10229000242F26952695237030E02115310521F055
+:1022A00021303105C9F030C2FF2021F0862F942F54
+:1022B000937002C080E090E028960FB6F894DEBFDD
+:1022C0000FBECDBFDF91CF911F910F91FF90EF9087
+:1022D000DF90CF900C94660EFF2021F0862F942F74
+:1022E000937002C080E090E028960FB6F894DEBFAD
+:1022F0000FBECDBFDF91CF911F910F91FF90EF9057
+:10230000DF90CF900C947C0E862FFF2019F00E9456
+:10231000381D02C00E94A01D28960FB6F894DEBF9B
+:102320000FBECDBFDF91CF911F910F91FF90EF9026
+:10233000DF90CF900C94251E842F837009F076C017
+:10234000F110E2C1262F229526952770220F220F29
+:10235000862F8F70C82ED12CE12CF12C022E04C0B8
+:10236000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DD
+:102370006FE070E080E090E004C0660F771F881F78
+:10238000991F2A95D2F7609570958095909503C016
+:1023900060E070E0CB01242F269526952370422F14
+:1023A00050E042305105D1F04330510559F16C29CC
+:1023B0007D298E299F294130510541F128960FB67C
+:1023C000F894DEBF0FBECDBFDF91CF911F910F916B
+:1023D000FF90EF90DF90CF900C94C5176C297D296A
+:1023E0008E299F2928960FB6F894DEBF0FBECDBF69
+:1023F000DF91CF911F910F91FF90EF90DF90CF90E1
+:102400000C94DF170E94C517C701B60128960FB6B6
+:10241000F894DEBF0FBECDBFDF91CF911F910F911A
+:10242000FF90EF90DF90CF900C94AB17FF2019F046
+:10243000842F817001C08695882309F465C1262FF9
+:10244000229526952770220F220F862F8F70C82E77
+:10245000D12CE12CF12C022E04C0CC0CDD1CEE1C86
+:10246000FF1C0A94D2F764FF10C06FE070E080E0B8
+:1024700090E004C0660F771F881F991F2A95D2F736
+:10248000609570958095909503C060E070E0CB01F9
+:10249000242F269526952370422F50E04230510577
+:1024A000D1F04330510559F16C297D298E299F299E
+:1024B0004130510541F128960FB6F894DEBF0FBEAA
+:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3
+:1024D000CF900C9499186C297D298E299F292896D4
+:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125
+:1024F0000F91FF90EF90DF90CF900C94B3180E9453
+:102500009918C701B60128960FB6F894DEBF0FBE22
+:10251000CDBFDF91CF911F910F91FF90EF90DF9092
+:10252000CF900C947F18603FC9F118F4603E50F4CE
+:102530009BC0623F09F460C008F44AC0633F09F4DD
+:102540006FC092C0162F1F70842F8F71FF2099F0DB
+:102550000E941818812F28960FB6F894DEBF0FBE80
+:10256000CDBFDF91CF911F910F91FF90EF90DF9042
+:10257000CF900C9483100E943918812F28960FB6A3
+:10258000F894DEBF0FBECDBFDF91CF911F910F91A9
+:10259000FF90EF90DF90CF900C948A10FF20A1F075
+:1025A0002111B2C0842F8F7128960FB6F894DEBF28
+:1025B0000FBECDBFDF91CF911F910F91FF90EF9094
+:1025C000DF90CF900C945E18223008F09DC0EACFC7
+:1025D000FF20A1F0842F8F7128960FB6F894DEBFEC
+:1025E0000FBECDBFDF91CF911F910F91FF90EF9064
+:1025F000DF90CF900C941818FF2061F3842F8F7117
+:1026000028960FB6F894DEBF0FBECDBFDF91CF91F5
+:102610001F910F91FF90EF90DF90CF900C9439189D
+:10262000FF2091F0842F8F7128960FB6F894DEBFAB
+:102630000FBECDBFDF91CF911F910F91FF90EF9013
+:10264000DF90CF900C94031828960FB6F894DEBF55
+:102650000FBECDBFDF91CF911F910F91FF90EF90F3
+:10266000DF90CF900C94F917FF20A1F0222309F4FA
+:10267000B1CF862F28960FB6F894DEBF0FBECDBF20
+:10268000DF91CF911F910F91FF90EF90DF90CF904E
+:102690000C946C0F222309F4B1CF862F28960FB625
+:1026A000F894DEBF0FBECDBFDF91CF911F910F9188
+:1026B000FF90EF90DF90CF900C9434104F70C801D2
+:1026C0000E94AB0228960FB6F894DEBF0FBECDBFB6
+:1026D000DF91CF911F910F91FF90EF90DF90CF90FE
+:1026E0000C941E174F70C80128960FB6F894DEBFE1
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053
+:10270000DF90CF900C94ED0528960FB6F894DEBFBD
+:102710000FBECDBFDF91CF911F910F91FF90EF9032
+:10272000DF90CF9008950E94AE190E9483190E94F5
+:10273000CA190E94D11E0E94251E80E090E00E94CE
+:10274000660E80E090E00C947C0E0E949E190C9422
+:1027500093130E94CE18292F22952F7030E02C3031
+:1027600031054CF42A3031056CF422503109223005
+:10277000310590F407C02C30310551F02F30310570
+:1027800039F00AC0803E10F0803F31F481E00895B6
+:1027900093FB882780F9089580E00895CF93DF9315
+:1027A00000D000D01F92CDB7DEB70F900F900F90E2
+:1027B0000F900F90DF91CF910895CF93DF9300D0CA
+:1027C00000D000D0CDB7DEB726960FB6F894DEBFA6
+:1027D0000FBECDBFDF91CF9108951F93CF93DF93AD
+:1027E000C091790116E080917A01C81799F0D0E084
+:1027F0001C9FF0011D9FF00D1124E558FE4F4081F4
+:10280000518162817381848195810E94DD132196BB
+:10281000C770E9CFDF91CF911F9108954091AB012F
+:102820005091AC016091AD017091AE018091AF010A
+:102830009091B0010C94DD13CF938091B0018295FB
+:102840008F7009F05FC08091AD01882309F45AC0F0
+:1028500020917901A0917A016091AB017091AC0156
+:102860008091AE019091AF0131E06F3F09F030E00F
+:10287000B32FC6E02A1709F445C0009721F07F3F27
+:1028800021F44B2F03C041E001C040E030E040FDA7
+:1028900035C0C29FF001C39FF00D1124E558FE4FD3
+:1028A000418174132BC04081641328C042814111BF
+:1028B00025C0438154814817590710F441505109EC
+:1028C000481B590B483C5105C8F48091B0018F70EA
+:1028D00080618093B00186E0829FF001839FF00DBC
+:1028E0001124E058FE4F80818F70806180838BEAD5
+:1028F00091E00E949110CF910C94ED132F5F3F4F08
+:102900002770B8CFCF910895CF92DF92EF92FF92C8
+:102910000F931F93CF93DF93CDB7DEB762970FB6B8
+:10292000F894DEBF0FBECDBF8C0185E0F801DE015B
+:102930001D9601900D928A95E1F7D8014C91119660
+:102940005C91119712966C9112971396ED90FC90F2
+:1029500014977091AB01E091AC012091AE013091E0
+:10296000AF012115310531F0EF3F31F481E07F3FB8
+:1029700019F403C081E001C080E0B82FB170CB2E04
+:1029800080FD6CC1D090AD01DD2009F4F5C0F0915F
+:10299000B001E216F30638F0C701821B930B883CA6
+:1029A000910548F09BC0209530952E0D3F1D283C89
+:1029B000310508F093C08F2F807F09F052C0E513D6
+:1029C00014C0741312C0D62E61110FC0FF70F061D5
+:1029D000F093B0010E940E148BEA91E00E949110D6
+:1029E0008091B001F80185836CC1EF2831F05F3F21
+:1029F00031F481E04F3F19F403C081E001C080E071
+:102A000080FD03C081E0862701C080E0F82FF170CF
+:102A1000FF2E80FF1CC08091790120917A0136E061
+:102A2000821709F428C190E0389FF001399FF00D1A
+:102A30001124E558FE4F7181571306C0708147136A
+:102A400003C07281671303C001968770E9CFD62E49
+:102A5000662309F436C18091B00181608093B00192
+:102A600053C0E51308C0741306C0611104C0D80137
+:102A70001596FC93AEC04D875E878D859E856A8BCB
+:102A80000E94A9136A89882329F1D62E662311F1A1
+:102A90002091B001822F82958F7090E002970CF404
+:102AA00060C08091AB019091AC0198878F831986AB
+:102AB000FB86EA862C87CE01079651C0E51731F1D7
+:102AC0004D875E878D859E856A8B0E94A9136A89D2
+:102AD00081112EC0C8010E949110A4C08F2F807F49
+:102AE00069F77E2DF98AE88A89890E94CE138BEADC
+:102AF00091E00E949110EBEAF1E086E0DF011D9287
+:102B00008A95E9F70E940E14D12CDBC07413D8CF3C
+:102B10006111D6CFD8011596FC93C8010E9491107F
+:102B2000EBEAF1E086E0DF011D928A95E9F7C9C082
+:102B3000D62E662379F22091B001822F82958F7074
+:102B400090E0029774F08091AB019091AC019A8370
+:102B500089831B82FD82EC822E83CE0101960E9426
+:102B6000911086E0F801ABEAB1E001900D928A95F0
+:102B7000E1F70E941C146FC0E216F30628F0C701AB
+:102B8000821B930B9C0104C0209530952E0D3F1D98
+:102B9000283C310508F052C0D62E662309F49ACF9E
+:102BA000E5132CC074132AC08091B00180FD1DC0B4
+:102BB000982F92959F70C9F0D80115968C93159710
+:102BC0009F3039F09F5F9295907F8F70892B15967B
+:102BD0008C93C8010E94911086E0F801ABEAB1E045
+:102BE00001900D928A95E1F736C086E0F801ABEAD4
+:102BF000B1E001900D928A95E1F763C04D875E8741
+:102C00008D859E850E94A913882379F086E0F801BE
+:102C1000ABEAB1E001900D928A95E1F70E941C1495
+:102C20000E940E14DD24D3944CC08091B0018160C9
+:102C30008093B001C8010E94911043C07E2DF98A93
+:102C4000E88A89890E94CE13EBEAF1E086E0DF0191
+:102C50001D928A95E9F70E940E1433C0662309F489
+:102C600039CF4D875E878D859E850E94A913882365
+:102C700009F430CFCBCF4D875E878D859E850E942E
+:102C8000CE18292F22952F7030E0223031052CF4F8
+:102C90009F7041F0811106C00CC0243031052CF426
+:102CA0009F7049F4805E883020F0C8010E94911026
+:102CB000CF2CDC2C06C0D80115969C91907F91F703
+:102CC000F8CF8D2D62960FB6F894DEBF0FBECDBF44
+:102CD000DF91CF911F910F91FF90EF90DF90CF90F8
+:102CE00008951F93CF93DF93CDB7DEB72C970FB620
+:102CF000F894DEBF0FBECDBF4F83588769877A87B0
+:102D00008B879C87CE0107960E9484148823C1F08C
+:102D10002F8138858A859B85892B31F03F3F11F0C3
+:102D200080E003C02F3FE1F781E0811147C04F8170
+:102D3000588569857A858B859C850E94DD133EC008
+:102D400086E0FE013796DE01119601900D928A957C
+:102D5000E1F7FF81E8854A855B854115510531F032
+:102D6000EF3F31F481E0FF3F19F403C081E001C07F
+:102D700080E080FD23C020917A0130E0C9010196F6
+:102D8000877099276091790170E086179707F1F1B4
+:102D9000F983EA835D834C8396E0929FD001939FF1
+:102DA000B00D1124A558BE4FFE01319601900D9231
+:102DB0009A95E1F780937A010E94ED1316E08091D5
+:102DC000790190917A01891779F1189FC001112436
+:102DD00085589E4F0E948414882331F1E091790137
+:102DE0001E9FF0011124E558FE4F40815181628100
+:102DF0007381848195810E94DD138091790190E037
+:102E000001968770992780937901D9CF0E94A513E5
+:102E100010927A0110927901EBEAF1E086E0DF018D
+:102E20001D928A95E9F7CACF2C960FB6F894DEBFAB
+:102E30000FBECDBFDF91CF911F910895EF92FF920A
+:102E40000F931F93CF93DF939C01009709F471C0F8
+:102E5000F12CEE24E394E9012196F9018491843761
+:102E600040F4843008F056C0813081F0823021F186
+:102E700060C0853709F449C0C0F19CE7980F9037CE
+:102E800008F057C08F770E94341046C089010E5F4A
+:102E90001F4FFE01849190E2980F983050F4877094
+:102EA000FE2D01C0FF0F8A95EAF78F2F0E94A1190E
+:102EB00015C00E946C0F14C089010E5F1F4FFE01E8
+:102EC000849190E2980F983068F48770FE2D01C0CD
+:102ED000FF0F8A95EAF78F2F0E94A7190E94CA193F
+:102EE000E8011AC00E943410FBCF2E5F3F4FFE0155
+:102EF000C491CC2341F08FE99FE00197F1F700C026
+:102F00000000C150F6CFE90107C0FE01F490E901CD
+:102F1000229602C00E946C0F8F2D882341F0EFE9AA
+:102F2000FFE03197F1F700C000008150F6CF9E011D
+:102F300092CFDF91CF911F910F91FF90EF90089565
+:102F400008956093B5017093B6018093B701909393
+:102F5000B8010C9493130F931F930091B501109136
+:102F6000B6012091B7013091B801062B172B282B01
+:102F7000392B0093B5011093B6012093B70130931C
+:102F8000B8011F910F910C9493130F931F9300910D
+:102F9000B5011091B6012091B7013091B801062317
+:102FA0001723282339230093B5011093B6012093EA
+:102FB000B7013093B8011F910F910C9493130F93A5
+:102FC0001F930091B5011091B6012091B701309186
+:102FD000B80106271727282739270093B501109332
+:102FE000B6012093B7013093B8011F910F910C9453
+:102FF00093131092B1011092B2011092B30110928A
+:10300000B4010C94931341E050E060E070E004C020
+:10301000440F551F661F771F8A95D2F74093B10161
+:103020005093B2016093B3017093B4010C94931365
+:1030300041E050E060E070E004C0440F551F661F9F
+:10304000771F8A95D2F78091B1019091B201A0913A
+:10305000B301B091B401842B952BA62BB72B809391
+:10306000B1019093B201A093B301B093B4010C9459
+:10307000931341E050E060E070E004C0440F551F3E
+:10308000661F771F8A95D2F7409550956095709589
+:103090008091B1019091B201A091B301B091B401BE
+:1030A00084239523A623B7238093B1019093B20183
+:1030B000A093B301B093B4010C94931341E050E09A
+:1030C00060E070E004C0440F551F661F771F8A95AB
+:1030D000D2F78091B1019091B201A091B301B0916A
+:1030E000B40184279527A627B7278093B101909331
+:1030F000B201A093B301B093B4010C9493130F9356
+:103100001F930091B1011091B2012091B301309150
+:10311000B401062B172B282B392B0093B1011093E8
+:10312000B2012093B3013093B4011F910F910C941D
+:1031300093130F931F930091B1011091B20120914D
+:10314000B3013091B40106231723282339230093B8
+:10315000B1011093B2012093B3013093B4011F91D8
+:103160000F910C9493130F931F930091B101109141
+:10317000B2012091B3013091B40106271727282707
+:1031800039270093B1011093B2012093B30130931A
+:10319000B4011F910F910C9493130895CF92DF9275
+:1031A000EF92FF920F931F93CF93DF93EC01C090A8
+:1031B000B501D090B601E090B701F090B8018091D0
+:1031C000B1019091B201A091B301B091B401C82AAC
+:1031D000D92AEA2AFB2A0FE110E0B701A601002E46
+:1031E00004C076956795579547950A94D2F740FFA6
+:1031F00007C0BE01802F0E9410068130910539F46E
+:103200000150110950F7BE0180E00E941006DF91C5
+:10321000CF911F910F91FF90EF90DF90CF90089585
+:1032200090910C019923D9F090910D019923B9F057
+:10323000982F9695969596959F3088F5E0910E017A
+:10324000F0910F01E90FF11D877021E030E001C01E
+:10325000220F8A95EAF78181822B8183089540911C
+:103260000E0150910F0120E030E09FEFFA01E20FD4
+:10327000F31F6281681799F09F3F19F4611101C033
+:10328000922F2F5F3F4F2E30310581F79F3F39F04E
+:10329000FA01E90FF11D97FDFA95828308950895CB
+:1032A00090910C019923E1F090910D019923C1F0C7
+:1032B000982F9695969596959F3020F5E0910E0162
+:1032C000F0910F01E90FF11D877021E030E001C09E
+:1032D000220F8A95EAF7209581812823218308957A
+:1032E00040910E0150910F0120E030E0FA01E20F11
+:1032F000F31F9281981301C012822F5F3F4F2E302F
+:103300003105A1F7089581E090E0E0910E01F09180
+:103310000F01E80FF91F1082019680319105A9F77E
+:1033200008959091CB01982B9093CB0108958095AF
+:103330009091CB0198239093CB0108951092CB01EB
+:1033400008959091CA01982B9093CA010895809591
+:103350009091CA0198239093CA0108951092CA01CE
+:1033600008958093B90108951092B901089540918C
+:103370000E0150910F0120E030E080E0FA01E20FF1
+:10338000F31F918191118F5F2F5F3F4F2F303105D8
+:10339000A9F70895E0910E01F0910F018091CB0102
+:1033A0008083E0910E01F0910F0180819091CA011C
+:1033B000892B80839091B901992361F0E0910E01EE
+:1033C000F0910F018081892B80830E94B7198111B0
+:1033D0001092B90180910E0190910F010C94500E42
+:1033E000CF92DF92EF92FF920F931F936C01EE2426
+:1033F000FF24C114D104E104F10421F46B017C0128
+:1034000080E001C080E133272F2D1E2D0D2D0115E9
+:1034100011052105310519F0885F680179019701CF
+:103420008601A4E03695279517950795AA95D1F7BB
+:10343000011511052105310519F08C5F680179012D
+:1034400097018601F2E03695279517950795FA952D
+:10345000D1F7011511052105310519F08E5F6801BD
+:103460007901B701A6017695679557954795452B44
+:10347000462B472B09F08F5F1F910F91FF90EF9024
+:10348000DF90CF9008958091E501843009F110928A
+:10349000CD0120E488E190E00FB6F894A8958093E0
+:1034A00060000FBE2093600083B7817F846083BF7C
+:1034B00083B7816083BF7894889583B78E7F83BFFD
+:1034C00088E10FB6F89480936000109260000FBE00
+:1034D000089508950895CF930E94691A0E943604B2
+:1034E0000E946A1AC0E08C2F0E942705811105C036
+:1034F000CF5FCE30C1F780E001C081E0CF91089569
+:103500000E94A5130E94440E0C944A0782E084BDD9
+:1035100093E095BD9AEF97BD80936E0008952FB705
+:10352000F8948091CE019091CF01A091D001B091FB
+:10353000D1012FBF0895CF92DF92EF92FF920F93A8
+:103540001F932FB7F8944091CE015091CF01609115
+:10355000D0017091D1012FBF6A017B01EE24FF24BD
+:103560008C0120E030E0C016D106E206F30610F42C
+:1035700041505109481B590BCA011F910F91FF90EF
+:10358000EF90DF90CF9008951F920F920FB60F9299
+:1035900011248F939F93AF93BF938091CE0190910D
+:1035A000CF01A091D001B091D1010196A11DB11D13
+:1035B0008093CE019093CF01A093D001B093D1011D
+:1035C000BF91AF919F918F910F900FBE0F901F9061
+:1035D00018950E944A0BF8942FEF87EA91E6215044
+:1035E00080409040E1F700C0000087E090EBDC01F4
+:1035F0008093EE019093EF01A093F001B093F1015D
+:103600002CE088E190E00FB6F894A89580936000D4
+:103610000FBE20936000FFCFEF92FF920F931F9396
+:10362000CF93DF93E82EF12C8F2D0E942705C0E069
+:10363000D0E0082F10E098010C2E02C03595279598
+:103640000A94E2F720FD05C02196C630D10599F70E
+:1036500009C06C2F7F2D80E00E94EE05E812F4CFA8
+:1036600081E005C0F3948EE0F812DECF80E0DF91B8
+:10367000CF911F910F91FF90EF900895CF93C82F96
+:103680008CE20E940C1B882321F08C2FCF910C948C
+:103690000C1B80E0CF910895CF930E94911C811163
+:1036A00002C00E94771CC5E6C15049F00E94360452
+:1036B0008FE39CE90197F1F700C00000F5CF89E2A4
+:1036C0000E943E1B811111C18AE20E943E1B8111A2
+:1036D0000E94771C85E00E943E1B81110E94E91A1E
+:1036E0000E949C1C8093CC0187E00E943E1B882393
+:1036F00099F18BE10E943E1B882351F09091CC01FF
+:1037000091FB882780F921E0822780FB91F922C074
+:103710008EE00E943E1B882351F09091CC0192FBD9
+:10372000882780F921E0822780FB92F913C080E18D
+:103730000E943E1B9091CC01882341F093FB882787
+:1037400080F921E0822780FB93F904C0892F8095BE
+:1037500080FB90F99093CC018091CC010E94A01C39
+:103760000E94AE1C8093DF0180EE0E943E1B8823E6
+:1037700041F08091DF01982F909590FB80F9809324
+:10378000DF0189E30E943E1B882359F09091DF01FD
+:1037900091FB882780F921E0822780FB91F99093A3
+:1037A000DF0182EE0E943E1B882359F09091DF01D9
+:1037B00092FB882780F921E0822780FB92F9909381
+:1037C000DF0186EE0E943E1B882359F09091DF01B5
+:1037D00093FB882780F921E0822780FB93F990935F
+:1037E000DF0183EE0E943E1B882359F09091DF0198
+:1037F00094FB882780F921E0822780FB94F990933D
+:10380000DF0185E30E943E1B882359F09091DF0180
+:1038100095FB882780F921E0822780FB95F990931A
+:10382000DF0181E30E943E1B882359F09091DF0164
+:1038300096FB882780F921E0822780FB96F99093F8
+:10384000DF0181E10E943E1B882359F09091DF0146
+:1038500097FB882780F921E0822780FB97F99093D6
+:10386000DF018091DF010E94B21C8091DF0187FBA4
+:10387000882780F980930D0187E20E943E1BC82FA4
+:103880008EE10E943E1B8111C2608FE10E943E1BAF
+:103890008111C46080E20E943E1B8111C86081E2F8
+:1038A0000E943E1B8111C06182E20E943E1B811179
+:1038B000C06283E20E943E1B8111C06484E20E94C8
+:1038C0003E1B882311F0C06802C0CC2329F08C2F46
+:1038D0000E94A91C6C2F03C00E94A51C682F70E0D9
+:1038E00080E090E0CF910C94A117CF9108956DEEF8
+:1038F0007EEF80E090E00E94CD2260E082E090E0E8
+:103900000E94BF2260E083E090E00E94BF2260E05E
+:1039100084E090E00E94BF2260E085E090E00C949B
+:10392000BF2280E090E00E94B92221E08D3E9E4FB0
+:1039300009F020E0822F089582E090E00C94B122FB
+:10394000682F82E090E00C94BF2283E090E00C941A
+:10395000B122682F83E090E00C94BF2284E090E0D5
+:103960000C94B122682F84E090E00C94BF228091E7
+:10397000D40180FF0BC06091130185E0689FB00106
+:10398000112475956795759567952AC081FF09C0C3
+:103990006091130185E0689FB001112475956795CA
+:1039A0001FC082FF07C06091130185E0689FB001CE
+:1039B000112416C04091D5014423C9F06091120131
+:1039C000461788F72091130185E0289F9001112464
+:1039D000429FC001439F900D112470E00E948322FA
+:1039E0006038710540F46115710539F002C065E079
+:1039F00070E0862F08958FE7089581E00895809103
+:103A0000D40180FF08C06091110170E07595679541
+:103A10007595679521C081FF06C06091110170E026
+:103A20007595679519C082FF04C06091110170E01F
+:103A300010C08091D5018823C1F0609110018617D4
+:103A4000A0F790911101989FC001112470E00E948D
+:103A500083226038710528F46115710521F0862FE5
+:103A600008958FE7089581E0089561E070E0F4CF54
+:103A7000803F21F40E94B71C819504C0813F29F446
+:103A80000E94B71C8093D8010895823F21F40E94C0
+:103A9000B71C819504C0833F29F40E94B71C809312
+:103AA000D7010895893F19F40E94FF1C05C08A3F81
+:103AB00031F40E94FF1C81958093D90108958B3FBA
+:103AC00021F40E94FF1C819504C08C3F29F40E94C0
+:103AD000FF1C8093DA010895843F21F48091D60180
+:103AE000816017C0853F21F48091D601826011C0AA
+:103AF000863F21F48091D60184600BC0873F21F47A
+:103B00008091D601886005C0883F31F48091D6014C
+:103B100080618093D60108958D3F21F48091D40176
+:103B200081600BC08E3F21F48091D401826005C07A
+:103B30008F3F29F48091D40184608093D40108954B
+:103B4000803F39F48091D80187FF6CC01092D80172
+:103B500069C0813F29F48091D8011816BCF362C076
+:103B60009091D701823F29F497FF5CC01092D70152
+:103B700059C0833F19F41916CCF354C0893F41F45E
+:103B80008091D90118160CF04DC01092D9014AC08D
+:103B90008A3F29F48091D90187FF44C0F6CF8B3F3B
+:103BA00039F48091DA0187FF3DC01092DA013AC002
+:103BB0008C3F29F48091DA011816BCF333C0843F9E
+:103BC00021F48091D6018E7F17C0853F21F480912A
+:103BD000D6018D7F11C0863F21F48091D6018B7F65
+:103BE0000BC0873F21F48091D601877F05C0883FB5
+:103BF00031F48091D6018F7E8093D60113C08D3F22
+:103C000021F48091D4018E7F0BC08E3F21F48091EE
+:103C1000D4018D7F05C08F3F29F48091D4018B7F23
+:103C20008093D4018091D70181110EC08091D80179
+:103C300081110AC08091D901811106C08091DA01F9
+:103C4000811102C01092D501089586ED91E00E9485
+:103C50005B0E0E948F1A9093D3018093D201089536
+:103C60001F93CF93DF938091D2019091D3010E9453
+:103C70009B1A4091D501442321F02091140130E09A
+:103C800006C0209115015AE0259F9001112482174A
+:103C9000930708F482C08091D7011091D801D09188
+:103CA000D901C091DA01811107C0111105C0D111EC
+:103CB00003C0CC2309F471C04F3F19F04F5F40930C
+:103CC000D501181624F40E94B71C8093D701809167
+:103CD000D70187FF05C00E94B71C81958093D7014B
+:103CE000111624F40E94B71C8093D8018091D8014A
+:103CF00087FF05C00E94B71C81958093D801609111
+:103D0000D701662339F11091D801112319F17727D2
+:103D100067FD7095872F972F0E94942123E333E34B
+:103D200043E35FE30E94F8210E9461216093D70181
+:103D3000612F772767FD7095872F972F0E94942119
+:103D400023E333E343E35FE30E94F8210E94612110
+:103D50006093D8011D1624F40E94FF1C8093D901A2
+:103D60008091D90187FF05C00E94FF1C8195809337
+:103D7000D9011C1624F40E94FF1C8093DA01809163
+:103D8000DA0187FF05C00E94FF1C81958093DA014C
+:103D9000DF91CF911F910C94251EDF91CF911F9140
+:103DA0000895E6EDF1E085E0DF011D928A95E9F7DF
+:103DB0001092D5011092D4010895833081F128F436
+:103DC000813059F08230D1F00895853009F449C02E
+:103DD000B8F1863009F456C0089520911501862F58
+:103DE00090E0820F911D8F3F910520F4620F609348
+:103DF000150108958FEF8093150108952091140106
+:103E0000862F90E0820F911D8F3F910520F4620F65
+:103E10006093140108958FEF809314010895209109
+:103E20001301862F90E0820F911D8F3F910520F4A2
+:103E3000620F6093130108958FEF8093130108952B
+:103E400020911201862F90E0820F911D8F3F9105E6
+:103E500020F4620F6093120108958FEF8093120196
+:103E6000089520911101862F90E0820F911D8F3FC0
+:103E7000910520F4620F6093110108958FEF8093F4
+:103E80001101089520911001862F90E0820F911D5D
+:103E90008F3F910520F4620F6093100108958FEF1A
+:103EA000809310010895833011F128F4813049F096
+:103EB000823091F00895853081F120F18630C1F192
+:103EC000089580911501681720F4861B80931501D1
+:103ED000089510921501089580911401681720F437
+:103EE000861B809314010895109214010895809107
+:103EF0001301681720F4861B809313010895109214
+:103F00001301089580911201681720F4861B809395
+:103F100012010895109212010895809111016817FD
+:103F200020F4861B809311010895109211010895C9
+:103F300080911001681720F4861B8093100108956A
+:103F40001092100108958D3109F442C020F58E3091
+:103F500009F479C070F4873009F45EC020F486302B
+:103F600009F442C033C08830D1F18B3009F4A7C0C6
+:103F70002DC0863109F4A3C038F4803109F46DC036
+:103F8000813109F47BC022C0893109F498C08B319A
+:103F900009F44FC01BC0853309F479C048F4873257
+:103FA00009F475C008F478C0893209F470C00EC0F5
+:103FB000833438F48A3308F071C0883309F47FC041
+:103FC00005C0833409F463C08834C1F080E00895EB
+:103FD0000E941B210E94440E0E944A0770C00E944A
+:103FE0009C1C0E94AE1C6BC08091CC01817F8E7F97
+:103FF0008093CC0181E08093DC0108950E94A51399
+:104000002FEF83ED90E3215080409040E1F700C016
+:1040100000000E94E91A53C09091CC01892F817051
+:1040200090FF03C0917F9E7F26C091609093CC014A
+:1040300046C09091CC0191FB882780F921E082272E
+:1040400080FB91F913C09091CC0192FB882780F9F5
+:1040500021E0822780FB92F909C09091CC0193FB6B
+:10406000882780F921E0822780FB93F99093CC0187
+:10407000882329F191609093CC0108950E94A513A3
+:1040800080910D0191E0892780930D0118C061E0B6
+:1040900070E080E090E00FC023EE01C027EC280F15
+:1040A00061E070E080E090E004C0660F771F881F39
+:1040B000991F2A95D2F70E94A1170E94A51381E0AB
+:1040C000089580E0089580E00895CF93C82F8091EF
+:1040D000DC01813079F018F08230D1F184C0A091F8
+:1040E0000E01B0910F018C91813169F0823209F09B
+:1040F0007CC009C0A0910E01B0910F018C9181315B
+:1041000011F0823249F48C2F0E94612081111DC070
+:104110008C2F0E94A31F1AC08C2F0E946320811134
+:1041200014C0C43179F048F4CB3079F0C03109F0D3
+:1041300060C082E08093DC0108C0C93219F0C83346
+:1041400021F057C01092DC0154C081E0817053C04F
+:10415000C93289F118F5C43171F1A8F4C73009F0FA
+:1041600046C08AE08093150194E19093140193E096
+:10417000909313018093120188E08093110188E2EB
+:104180008093100134C0CE51C63088F5EC2FF0E09A
+:10419000E65DFE4F80818093DB0129C0CE34E9F0DB
+:1041A00020F4CB3421F56AE013C0C13579F0C23573
+:1041B000F1F461E00DC08091DB01882319F01092C9
+:1041C000DB0115C081E08093DC0115C061E006C011
+:1041D0008091DB010E94DD1E0AC06AE08091DB0154
+:1041E0000E94531F04C01092DC0180E004C081E0F3
+:1041F00002C080E0ABCFCF910895E1E8F0E080818C
+:10420000886080838081816080838FB7F89493E099
+:104210009093890090ED909388008FBF0895EFE60A
+:10422000F0E08081826080830895EFE6F0E0808195
+:104230008D7F80830895EFE6F0E0808192E089270A
+:10424000808308951F920F920FB60F9211242F931F
+:104250003F934F935F936F937F938F939F93AF930E
+:10426000BF93EF93FF938091DD019091DE01019662
+:104270009093DE018093DD01811103C082E00E94F2
+:104280004A07E091DE01E695E695F0E0E657FB4F40
+:10429000E4918091DD018E1303C080E00E944A0703
+:1042A000FF91EF91BF91AF919F918F917F916F910E
+:1042B0005F914F913F912F910F900FBE0F901F90E4
+:1042C000189504D06894B1118DC0089570D088F00D
+:1042D0009F5790F0B92F9927B751A0F0D1F0660FF2
+:1042E000771F881F991F1AF0BA95C9F712C0B1300D
+:1042F00081F077D0B1E0089574C0672F782F8827B8
+:10430000B85F39F0B93FCCF3869577956795B3954B
+:10431000D9F73EF490958095709561957F4F8F4FBA
+:104320009F4F0895E89409C097FB3EF490958095BF
+:10433000709561957F4F8F4F9F4F9923A9F0F92F6B
+:1043400096E9BB279395F695879577956795B795E9
+:10435000F111F8CFFAF4BB0F11F460FF1BC06F5FCF
+:104360007F4F8F4F9F4F16C0882311F096E911C0E1
+:10437000772321F09EE8872F762F05C0662371F002
+:1043800096E8862F70E060E02AF09A95660F771F16
+:10439000881FDAF7880F9695879597F9089557FD46
+:1043A0009058440F551F59F05F3F71F04795880FA3
+:1043B00097FB991F61F09F3F79F08795089512163A
+:1043C00013061406551FF2CF4695F1DF08C01616E6
+:1043D00017061806991FF1CF869571056105089497
+:1043E0000895E894BB2766277727CB0197F90895AE
+:1043F0000BD078C069D028F06ED018F0952309F062
+:104400005AC05FC01124EECFCADFA0F3959FD1F34D
+:10441000950F50E0551F629FF001729FBB27F00D72
+:10442000B11D639FAA27F00DB11DAA1F649F6627C7
+:10443000B00DA11D661F829F2227B00DA11D621F16
+:10444000739FB00DA11D621F839FA00D611D221FD0
+:10445000749F3327A00D611D231F849F600D211DB4
+:10446000822F762F6A2F11249F5750408AF0E1F057
+:1044700088234AF0EE0FFF1FBB1F661F771F881FA0
+:1044800091505040A9F79E3F510570F014C0AACF3B
+:104490005F3FECF3983EDCF3869577956795B7958B
+:1044A000F795E7959F5FC1F7FE2B880F911D9695B5
+:1044B000879597F9089597F99F6780E870E060E025
+:1044C00008959FEF80EC089500240A9416161706AD
+:1044D00018060906089500240A94121613061406F5
+:1044E00005060895092E0394000C11F4882352F058
+:1044F000BB0F40F4BF2B11F460FF04C06F5F7F4F10
+:104500008F4F9F4F089597FB072E16F4009407D006
+:1045100077FD09D00E949D2207FC05D03EF49095BE
+:1045200081959F4F0895709561957F4F0895EE0F87
+:10453000FF1F0590F491E02D0994AA1BBB1B51E1CC
+:1045400007C0AA1FBB1FA617B70710F0A61BB70B03
+:10455000881F991F5A95A9F780959095BC01CD01A8
+:104560000895F999FECF92BD81BDF89A992780B53B
+:104570000895A8E1B0E042E050E00C94D422262F48
+:10458000F999FECF1FBA92BD81BD20BD0FB6F89438
+:10459000FA9AF99A0FBE019608950E94BF22272F1A
+:1045A0000C94C022DC01CB01FC01F999FECF06C0BE
+:1045B000F2BDE1BDF89A319600B40D9241505040E1
+:0845C000B8F70895F894FFCF4D
+:1045C80020024B07D807B50781074E070101BA013A
+:1045D80028080A03140A3F4D36394B04FE03C80362
+:1045E8008F0322033B0354036D03010203040506F2
+:0445F80007080900A7
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c new file mode 100644 index 0000000000..d019b731f2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ← | | → | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ⌦ | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / L⌘ | + * |--------+------+------+------+------+------| L⌘ | | L⌘ |------+------+------+------+------+--------| + * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / / ⌃| R⇧ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | `~ | '" | | ⎋ | ⌫ | + * ,------|------|------| |------+--------+------. + * | | | PgUp | | PgDn | | | + * | | ⌫ |------| |------| ⇥ |Enter | + * | | | L⌥ | | L⌃ | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, + KC_GRV, KC_QUOT, + KC_PGUP, + KC_SPC,KC_BSPC,KC_LALT, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_ESC, KC_BSPC, + KC_PGDN, + KC_LCTL, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | / | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | = | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | . | ← | → | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Home | | | + * | | |------| |------| | | + * | | | | | End | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS, + KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_END , KC_TRNS, KC_TRNS +), +/* Keymap 2: Media keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | ⌥⇧⇥ | ⌥⇥ | Power | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Home | PgDn | End | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), LALT(LSFT(KC_TAB)), LALT(KC_TAB), KC_PWR, + KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, + LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY, + KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown new file mode 100644 index 0000000000..7bce7c6909 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown @@ -0,0 +1,45 @@ +# The Zweihander Layout + +NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”. + +This layout is tuned for people who… + + +## use OS X + +This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts. + + +## mouse left-handed while doing other things with the right hand + +I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder: + +- Close Window (⌘W) +- Back (⌘[) +- Forward (⌘]) +- Open and Close Parent Folder (⌥⌘↓) +- Go Up and Close Just-Left Folder (⌥⌘↑) +- Cycle through open windows in current application (⌘\` and ⌘⇧\`) +- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥) +- Space (page down in browsers; Quick Look in the Finder) +- Shift-Space (page up in web browsers) + +Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word. + + +## use lots of modifier keys in OS X menu-item shortcuts + +I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include: + +- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫) +- Shut Down Without Asking for Confirmation (⇧⌥⌘ power) + + +## use Emacs-style shortcuts + +I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key. + + +## use spreadsheets + +All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex new file mode 100644 index 0000000000..b76c3ec8e8 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex @@ -0,0 +1,1152 @@ +:100000000C9465020C94A9020C94A9020C94A90208
+:100010000C94A9020C94A9020C94A9020C94A902B4
+:100020000C94A9020C94A9020C94720C0C94440D2B
+:100030000C94A9020C94A9020C94A9020C94A90294
+:100040000C94A9020C940E220C94A9020C94A902FF
+:100050000C94A9020C949D1B0C94A9020C94A90267
+:100060000C94A9020C94A9020C94A9020C94A90264
+:100070000C94A9020C94A9020C94A9020C94A90254
+:100080000C94A9020C94A9020C94A9020C94A90244
+:100090000C94A9020C94A9020C94A9020C94A90234
+:1000A0000C94A9020C94A9020C94A902B10DD30DD1
+:1000B000C10ED30DC10E180E3B0EC10E900EA30E35
+:1000C0008F118F11CC11CC110F124D1266146614C2
+:1000D00066126614671367133A1466146614511493
+:1000E0000000F0A12E004C002A00E100E00000001A
+:1000F0001E00140004001D00E200E2001F001A00B0
+:1001000016001B00E3002A0020000800070006007C
+:1001100050002C0021001500090019004F004B0071
+:10012000220017000A0005000000350050000154AD
+:100130000000E300000034004F0001540000E30021
+:100140000000290023001C000B00110000002A0001
+:10015000240018000D00100052004E0025000C0075
+:100160000E00360051002800260012000F00370054
+:100170002F002B0027001300338238713000E0007D
+:100180002D0031003478E500C100000001000100BD
+:1001900001000100010000003A001E0220022202BC
+:1001A000010001003B001F022102230201000100A7
+:1001B0003C002F0226022F00010001003D0030020A
+:1001C00027023000010001003E00310235003502F7
+:1001D000000001000100010000000100000001001A
+:1001E0000100010000000100000001003F00380094
+:1001F0002D002402000001004000240021001E0008
+:1002000027004A004100250022001F00370001009E
+:100210004200260023002000500001004300250278
+:100220002E022E004F004D00440045000100010049
+:1002300001000000010001000100010001000000B8
+:100240006900010001000100010001006A000100D5
+:100250004A0001000100010001004B004E000100B6
+:1002600001000100010001004D000100010001003A
+:100270000100010001000100000001000100010077
+:10028000000001000000010014080100000001004E
+:10029000000001001A0830082F082C02000001009D
+:1002A000350A520C50002C00A900010035085200FC
+:1002B0005100AC00AA0001002B06510C4F00AB000E
+:1002C000A80001002B040100010001000100010051
+:1002D000A5000100AE00010001000000160345006A
+:1002E000720067006F0044006F0078002000450036
+:1002F0005A00000016034500720067006F004400BA
+:100300006F007800200045005A0000000403090433
+:1003100009026D00040100A0FA09040000010301B4
+:100320000100092111010001223F00070581030896
+:10033000000A090401000103010200092111010062
+:1003400001224D000705820308000A09040200018A
+:100350000300000009211101000122360007058376
+:100360000308000A09040300010300000009211129
+:100370000100012239000705840310000112011059
+:100380000100000008EDFE07130100010200010555
+:10039000010906A101050719E029E71500250195C6
+:1003A0000875018102050819012905950575019156
+:1003B000029501750391010507190029771500259C
+:1003C00001957875018102C005010980A1018502AE
+:1003D00016010026B7001A01002AB7007510950112
+:1003E0008100C0050C0901A1018503160100269CAE
+:1003F000021A01002A9C02751095018100C00501B6
+:100400000902A1010901A100050919012905150029
+:10041000250195057501810295017503810105018D
+:10042000093009311581257F950275088106093843
+:100430001581257F950175088106050C0A3802157E
+:1004400081257F950175088106C0C005010906A1B7
+:1004500001050719E029E7150025019508750181B7
+:100460000295017508810105081901290595057591
+:100470000191029501750391010507190029FF15E6
+:100480000025FF950675088100C0000000000000EF
+:100490000000000000010204060A0F17202C3A4A4F
+:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
+:1004B000B39D87715D4A3A2C20170F0A060402018A
+:1004C0000000000000000000000011241FBECFEF5C
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A
+:1004E0009091EF01A091F001B091F1018730904B14
+:1004F000A740B04BB9F41092EE011092EF011092A8
+:10050000F0011092F10114BE84B7877F84BF88E1A7
+:100510000FB6F89480936000109260000FBEE0E088
+:10052000FFE3099511E0A0E0B1E0EAEAF7E402C0D8
+:1005300005900D92A433B107D9F711E0A4E3B1E01F
+:1005400001C01D92AE3EB107E1F70E94B6090C94BE
+:10055000D3230C94000061110BC0FC01828188231D
+:1005600021F085EE0E94231003C085EE0E94EB105F
+:1005700080E090E0089508956091B1017091B2011A
+:100580008091B3019091B4010E94C91A56985E9867
+:1005900025982D9826982E9827982F98813019F015
+:1005A000823021F00895259A2D9A0895269A2E9A40
+:1005B00008950C94BC0256985E9825982D9826981C
+:1005C0002E9827982F988FEF90E090938900809332
+:1005D000880090938B0080938A0090938D00809385
+:1005E0008C00259A2D9A2FEF80E792E021508040D1
+:1005F0009040E1F700C00000269A2E9A2FEF80E786
+:1006000092E0215080409040E1F700C00000279A1E
+:100610002F9A2FEF80E792E0215080409040E1F741
+:1006200000C0000025982D982FEF80E792E0215020
+:1006300080409040E1F700C0000026982E982FEFF0
+:1006400080E792E0215080409040E1F700C0000038
+:1006500027982F9856985E9825982D9826982E982A
+:1006600027982F98089589EA8093800089E08093E5
+:10067000810024982C983F988AB18F748AB96E981B
+:10068000479A8BB1806B8BB9769A0E94DB020C94EF
+:10069000BB0280E2809300018091340181110EC081
+:1006A0000E94980381E0809334012FEF83ED90E363
+:1006B000215080409040E1F700C0000080E40E949B
+:1006C0009E038093000181112EC00E94C803809375
+:1006D0000001811128C00E94C8038093000181118C
+:1006E00022C08FE30E94C8038093000181111BC0C8
+:1006F0000E94C00380E40E949E0380930001811148
+:1007000012C08CE00E94C8038093000181110BC0CD
+:100710000E94C80380930001811105C08FE30E94ED
+:10072000C803809300010E94C003809100010895D6
+:100730001092B9008AE08093B800089594EA9093EB
+:10074000BC009091BC0097FFFCCF9091B900987FBE
+:10075000983021F0903111F081E008958093BB0032
+:1007600084E88093BC008091BC0087FFFCCF80911F
+:10077000B900887F883111F0803471F780E00895E6
+:1007800084E98093BC008091BC0084FDFCCF089577
+:100790008093BB0084E88093BC008091BC0087FFFD
+:1007A000FCCF9091B900987F81E0983209F480E005
+:1007B000089584E88093BC008091BC0087FFFCCF43
+:1007C0008091BB00089580910001811115C080E4E3
+:1007D0000E949E038093000181110CC082E10E945F
+:1007E000C80380930001811105C08FEF0E94C803E8
+:1007F000809300010E94C00384B1807F84B985B1D9
+:10080000807F85B98AB1837F8AB98BB1837F8BB9A9
+:100810003E98469808950E944903809300010E94E3
+:10082000E30380B38C7080BB81B3836F81BBA6E38D
+:10083000B1E0E4E4F1E08EE08E0F11921D928E1390
+:10084000FCCF0C943303BF92CF92DF92EF92FF92D2
+:100850000F931F93CF93DF9380910001882379F04A
+:10086000809135018F5F80933501811108C00E940E
+:10087000490380930001811102C00E94DB0206E35C
+:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455
+:10089000E394F12CC730D10500F58091000181115E
+:1008A00064C080E40E949E0380930001811112C005
+:1008B00082E10E94C8038093000181110BC0C7012F
+:1008C0000C2E01C0880F0A94EAF780950E94C80395
+:1008D000809300010E94C00348C0CA30A1F028F4F0
+:1008E000C83059F0C93061F005C0CC3089F070F0E3
+:1008F000CD3089F0209A289810C0219A29980DC0EF
+:10090000229A2A980AC0239A2B9807C0529A01C0AB
+:10091000539A5B9802C03E9A469890EA9A95F1F7EE
+:100920009FB1799902C082E001C080E091709D255D
+:10093000982B7C9902C084E001C080E0892B7D99CE
+:1009400002C038E001C030E0832B7E9902C020E174
+:1009500001C020E0822B9FB19095991F9927991F84
+:100960009295990F907E892B0FC080910001811183
+:1009700049C080E40E949E0380930001882379F19E
+:10098000B12C0E94C0038B2DF8019081981719F0AB
+:100990008083C09201010E94E30321960F5F1F4FE5
+:1009A000CE30D10509F076CF80910101882361F125
+:1009B000815080930101882339F08FE99FE00197EE
+:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC
+:1009D000CF01825F91919D938E13FCCF15C083E16F
+:1009E0000E94C803809300018111CACF81E40E9454
+:1009F0009E03809300018111C3CF0E94D903B82EBA
+:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7
+:100A1000CF911F910F91FF90EF90DF90CF90BF90FB
+:100A20000895E82FF0E0EC5BFE4F80810895089573
+:100A3000089596E0799FF001112494E5899FE00DD7
+:100A4000F11D1124E60FF11DEE0FFF1FEC51FF4FBA
+:100A5000859194910895880F991FFC01E05AF04008
+:100A6000859194910895880F991FFC01E052FF4FE2
+:100A70008591949108950F931F93CF93DF93EC0189
+:100A80008115904350F5C11580E2D80708F0B3C036
+:100A9000CB3BD10590F4C83AD10508F05AC0C53A0D
+:100AA000D10508F04BC0C430D10508F0BBC1219777
+:100AB00009F0B5C101E010E0F5C1CF3FD10511F05B
+:100AC00008F0B0C1C03FD10508F092C0CE01805EF1
+:100AD0009109089708F4A6C1A2C1C11591E5D907EB
+:100AE000A8F4C23020E5D20708F09EC0C11580E509
+:100AF000D80709F485C008F091C0C11520E4D207D9
+:100B000008F08DC1DD278E01106CCCC1C11580E8C5
+:100B1000D80758F4C11590E7D90708F07CC1C11572
+:100B200020E6D20708F422C17AC1C11580E9D807AE
+:100B300008F075C1DF708E01106AB4C1C53AD105E5
+:100B400009F472C1C63AD10509F071C102E810E496
+:100B5000A9C1C83AD10509F46DC1C93AD10509F452
+:100B60006CC1CA3AD10509F46BC1CB3AD10509F47D
+:100B70006AC1CC3AD10509F469C1CD3AD10509F46D
+:100B800068C1C03BD10509F467C1CE3AD10509F46B
+:100B900066C1CF3AD10509F465C1C13BD10509F45D
+:100BA00064C1C23BD10509F463C1C33BD10509F45B
+:100BB00062C1C43BD10509F461C1C53BD10509F44B
+:100BC00060C1C63BD10509F45FC1C73BD10509F43B
+:100BD0005EC1C83BD10509F45DC1C93BD10509F42B
+:100BE0005CC1CA3BD10509F45BC100E014E45AC101
+:100BF0008E01106557C1CE019F700E94330553C10D
+:100C00000E948A149FEF24E38CE0915020408040A2
+:100C1000E1F700C000000E94C21B44C18091CD01D9
+:100C200081608093CD013EC10E946B1D811102C085
+:100C30000E94511D0E94881D90E09093EE018093C8
+:100C4000ED01C23090E5D90721F48091ED0181607A
+:100C500086C0C43020E5D20721F48091ED01826086
+:100C60007EC0C63080E5D80721F48091ED01846014
+:100C700076C0C83090E5D90719F48091ED0127C0FE
+:100C8000CA3020E5D20721F48091ED01806167C070
+:100C9000CC3080E5D80721F48091ED0180625FC0FF
+:100CA000CE3090E5D90721F48091ED01806457C0E2
+:100CB000C03120E5D20721F48091ED0180684FC05A
+:100CC000C23180E5D80729F48091ED018460886005
+:100CD00046C0C33090E5D90721F48091ED018E7FA5
+:100CE0003EC0C53020E5D20721F48091ED018D7F13
+:100CF00036C0C73080E5D80721F48091ED018B7FA5
+:100D00002EC0C93090E5D90719F48091ED0126C0B5
+:100D1000CB3020E5D20721F48091ED018F7E1FC0FA
+:100D2000CD3080E5D80721F48091ED018F7D17C08B
+:100D3000CF3090E5D90721F48091ED018F7B0FC072
+:100D4000C13120E5D20721F48091ED018F7707C0F2
+:100D5000C331D04531F48091ED018B7F877F809343
+:100D6000ED018091ED010E948C1D9CC08D2F992773
+:100D70008F70992781309105D9F49E012370332714
+:100D800002C0880F991F2A95E2F79C688E0144E003
+:100D9000000F111F4A95E1F700271370802B912B4C
+:100DA00053E0CC0FDD1F5A95E1F7C076DD272FC049
+:100DB0008230910531F4DC2FCC278E01016F106A4F
+:100DC00071C08330910569F4CE018370992701E0E9
+:100DD00010E002C0000F111F8A95E2F7C8019C685D
+:100DE0000FC0049709F05EC0CE018370992701E01F
+:100DF00010E002C0000F111F8A95E2F7C8019A683F
+:100E000023E0CC0FDD1F2A95E1F7C07ED7708C015F
+:100E10000C2B1D2B47C0DF708E01106243C000E019
+:100E200010E040C08E013EC001E810E43BC003E882
+:100E300010E438C002EE14E435C009EE14E432C008
+:100E40000AEE14E42FC005EB14E42CC006EB14E406
+:100E500029C007EB14E426C00CEC14E423C00DEC0D
+:100E600014E420C003E815E41DC00AE815E41AC024
+:100E700002E915E417C004E915E414C001E216E420
+:100E800011C003E216E40EC004E216E40BC005E252
+:100E900016E408C006E216E405C007E216E402C044
+:100EA0000AE216E4C801DF91CF911F910F910895D6
+:100EB00096E0799FF001112494E5899FE00DF11DE2
+:100EC0001124E60FF11DEE0FFF1FEC51FF4F85912E
+:100ED0009491803E9105E0F4803C910558F5813372
+:100EE000910509F46FC048F48932910509F463C093
+:100EF0008A32910509F46DC072C089339105E9F019
+:100F000082389105D1F08533910509F44DC067C051
+:100F1000833E910581F138F4803E9105B9F0823E1F
+:100F20009105D9F05CC0863E910561F1873E91053F
+:100F3000A1F155C00E942B0508952091ED0120FDDF
+:100F400002C021FF4CC080EE90E049C08091ED01CD
+:100F500080FFF9CF89E390E042C08091ED0182FFEC
+:100F60000EC08091ED0184FF03C080E090E037C0A7
+:100F700083EE90E034C08091ED0182FFF2CF82EEEB
+:100F800090E02DC08091ED0183FF0BC08091ED01B9
+:100F900084FDEBCF87EE90E022C08091ED0183FFCE
+:100FA000F5CF86EE90E01BC08091ED0185FF07C074
+:100FB00089E290E014C08091ED0185FFF9CF85E3CF
+:100FC00090E00DC08091ED0186FF07C08AE290E0BD
+:100FD00006C08091ED0186FFF9CF81E390E00E9489
+:100FE0003B05089508950C94F207809162010895DD
+:100FF000CF93DF9300D01F92CDB7DEB79C018091D5
+:10100000E401843019F593E099833B832A8390931C
+:10101000E9008FEF9091E800815095FD06C095EDB5
+:101020009A95F1F700008111F5CF8091E80085FFD6
+:101030000DC040E050E063E070E0CE0101960E94F8
+:10104000620A8091E8008E778093E8000F900F90FD
+:101050000F90DF91CF910895CF93DF9300D01F922F
+:10106000CDB7DEB72091E401243021F522E02983B9
+:101070009B838A8383E08093E9008FEF9091E8005F
+:10108000815095FD06C095ED9A95F1F7000081110C
+:10109000F5CF8091E80085FF0DC040E050E063E0AF
+:1010A00070E0CE0101960E94620A8091E8008E777E
+:1010B0008093E8000F900F900F90DF91CF910895EB
+:1010C0002091E4012430F1F422E02093E9002FEF95
+:1010D0003091E800215035FD06C035ED3A95F1F725
+:1010E00000002111F5CF2091E80025FF0BC040E062
+:1010F00050E065E070E00E94620A8091E8008E771F
+:101100008093E8000895CF93DF93EC019091E40180
+:10111000943009F046C080910C018823D9F0809169
+:101120000D018823B9F09093E9008FEF9091E800CA
+:10113000815095FD06C095E19A95F1F70000811167
+:10114000F5CF8091E80085FF2CC040E050E060E1E1
+:1011500070E017C081E08093E9008FEF9091E80084
+:10116000815095FD06C095ED9A95F1F7000081112B
+:10117000F5CF8091E80085FF14C040E050E068E0C2
+:1011800070E0CE010E94620A8091E8008E77809321
+:10119000E80080E1FE01A2E5B1E001900D928A95A0
+:1011A000E1F7DF91CF9108958091E301811109C0AA
+:1011B0000E94F70B0E94540C8091E200846080939F
+:1011C000E20008951092E301089508950C94FB2124
+:1011D0000E94581B0E9401220E94FA0E0C94F307F1
+:1011E00042E061EC81E00E94710B42E061EC82E040
+:1011F0000E94710B42E061EC83E00E94710B42E1BE
+:1012000061EC84E00C94710B8091E601833009F469
+:1012100055C030F4813071F0823009F48EC00895E9
+:101220008A3009F47AC08B3009F460C0893009F043
+:101230009CC020C08091E501813A09F096C0809160
+:10124000E800877F8093E8008091E9019091EA01AE
+:10125000892B21F460E182E591E003C060E080E049
+:1012600090E070E00E94AD0A8091E8008B77809357
+:10127000E80008958091E501813209F076C08091FF
+:10128000E9019091EA01009719F0039709F06DC008
+:101290008091E800877F8093E8008091E80082FDDC
+:1012A00005C08091E4018111F8CF5FC08091F10009
+:1012B000809362018091E8008B7753C08091E501B3
+:1012C000813A09F052C08091E9019091EA01892B9D
+:1012D00009F04BC08091E800877F8093E8008091FF
+:1012E000E80080FFFCCF80910C0136C08091E501C1
+:1012F0008132D9F58091E9019091EA01892BA9F514
+:101300008091E800877F8093E8000E94A60B80917F
+:10131000E70180930C010C948A148091E5018132DD
+:1013200021F58091E800877F8093E8000E94A60B5A
+:101330008091E8018093630108958091E501813AED
+:10134000A1F48091E800877F8093E8008091E80015
+:1013500080FFFCCF809163018093F1008091E800D1
+:101360008E778093E8000C94A60B089584B7877F4E
+:1013700084BF88E10FB6F8948093600010926000FB
+:101380000FBE90E080E80FB6F894809361009093D0
+:1013900061000FBE0E94490F0E94F70B0E94540C7F
+:1013A0008091E20084608093E20078940E94DA0EDB
+:1013B0000E944B0F82E091E00E94F50E0E94E9210D
+:1013C0008091E401853069F40E94191B8091E2014B
+:1013D0008823B1F30E94441B882391F30E944C0A96
+:1013E000EFCF0E94510FECCF292F33272330310547
+:1013F000C9F064F42130310581F02230310509F063
+:1014000043C08DE690E020E133E042C02132310557
+:10141000F1F02232310541F137C082E190E02DE751
+:1014200033E036C099278130910541F08230910533
+:1014300041F0892B49F5ECE0F3E005C0E4EFF2E080
+:1014400002C0ECEDF2E0849190E09F0121C0643095
+:10145000D8F4E62FF0E0EE0FFF1FEE5DFE4F208187
+:10146000318189E090E014C0643070F470E0FB01D9
+:10147000EE0FFF1FE65EFE4F20813181FB01EA5E29
+:10148000FE4F808190E004C080E090E020E030E0FA
+:10149000FA0131832083089580E189BD82E189BD0D
+:1014A00009B400FEFDCF8091D8008F7D8093D800D5
+:1014B0008091E00082608093E0008091E00081FDF7
+:1014C000FCCF0895CF92DF92EF92FF920F931F937C
+:1014D000CF93DF93EC018B016A010E94C50B811150
+:1014E00033C0C114D10439F0F60180819181081B09
+:1014F000190BC80FD91FE12CF12C0115110519F199
+:101500008091E80085FD16C08091E8008E77809379
+:10151000E800C114D10449F0F60180819181E80E00
+:10152000F91EF182E08285E00FC00E94C50B88237E
+:1015300021F30AC089918093F10001501109FFEF56
+:10154000EF1AFF0ADACF80E0DF91CF911F910F9160
+:10155000FF90EF90DF90CF9008952091EB013091B4
+:10156000EC012617370748F06115710539F4209111
+:10157000E8002E772093E80001C0B90140E0611532
+:101580007105A9F12091E401222309F443C025301B
+:1015900009F442C02091E80023FD40C02091E800FA
+:1015A00022FD32C02091E80020FFE9CF4091F300F6
+:1015B0002091F20030E0342BFC01CF016115710560
+:1015C00059F02830310540F481918093F100615049
+:1015D00071092F5F3F4FF1CF41E02830310509F00D
+:1015E00040E02091E8002E772093E800C8CF411119
+:1015F000C9CF0AC08091E401882361F0853061F091
+:101600008091E80083FD0AC08091E80082FFF2CF5C
+:1016100080E0089582E0089583E0089581E00895D0
+:101620002091EB013091EC012617370748F0611546
+:10163000710539F42091E8002E772093E80001C06D
+:10164000B901FC0120E06115710591F18091E4017F
+:10165000882309F440C0853009F43FC08091E80038
+:1016600083FD3DC08091E80082FD2FC08091E8009D
+:1016700080FFE9CF2091F3008091F20090E0922B5F
+:101680006115710559F08830910540F4249120933B
+:10169000F1003196615071090196F2CF21E008976F
+:1016A00009F020E08091E8008E778093E800CBCFAE
+:1016B0002111CCCF0AC08091E401882361F08530EC
+:1016C00061F08091E80083FD0AC08091E80082FF0C
+:1016D000F2CF80E0089582E0089583E0089581E0EC
+:1016E0000895982F973058F59093E900981739F09E
+:1016F0007091EC002091ED005091F00003C0242F78
+:10170000762F50E021FF19C03091EB003E7F3093DF
+:10171000EB003091ED003D7F3093ED003091EB0018
+:1017200031603093EB007093EC002093ED00509308
+:10173000F0002091EE0027FF07C09F5FD3CF8F708E
+:101740008093E90081E0089580E008958091E501AB
+:1017500087FF11C08091E80082FD05C08091E401FF
+:101760008111F8CF11C08091E8008B770BC0809178
+:10177000E401882349F08091E80080FFF8CF809150
+:10178000E8008E778093E80008952091E40030917E
+:10179000E50095E64091EC00842F817040FF22C067
+:1017A0008091E80080FD1CC08091E401882391F0C5
+:1017B000853091F08091EB0085FD10C04091E400F0
+:1017C0005091E5004217530729F39A01915011F700
+:1017D00084E0089582E0089583E0089581E008950B
+:1017E00080E008954091E80042FFDECF08950E9416
+:1017F000650C0E946D0CE0EEF0E0808181608083DA
+:10180000E8EDF0E080818F77808319BCA7EDB0E030
+:101810008C918E7F8C9380818F7E80831092E301E8
+:1018200008950F931F93CF93DF930E94650C0E943E
+:101830006D0CC8EDD0E088818F77888388818068BF
+:10184000888388818F7D888319BC1092E40110926F
+:10185000E0011092E2011092E10100EE10E0F801C7
+:1018600080818B7F808388818160888342E060E013
+:1018700080E00E94710BE1EEF0E080818E7F80833A
+:10188000E2EEF0E0808181608083808188608083E7
+:10189000F80180818E7F8083888180618883DF91D9
+:1018A000CF911F910F910895E8EDF0E080818F7E38
+:1018B0008083E7EDF0E080818160808384E082BFF7
+:1018C00081E08093E3010C94110CE8EDF0E080815D
+:1018D0008E7F80831092E20008951092DA001092B9
+:1018E000E10008951F920F920FB60F9211242F93CB
+:1018F0003F934F935F936F937F938F939F93AF9398
+:10190000BF93EF93FF938091E10082FF0BC0809122
+:10191000E20082FF07C08091E1008B7F8093E100AD
+:101920000E94D90E8091DA0080FF1FC08091D800FC
+:1019300080FF1BC08091DA008E7F8093DA00809157
+:10194000D90080FF0DC080E189BD82E189BD09B465
+:1019500000FEFDCF81E08093E4010E94D40805C021
+:1019600019BC1092E4010E94E2088091E10080FF1E
+:1019700019C08091E20080FF15C08091E2008E7F47
+:101980008093E2008091E20080618093E200809188
+:10199000D80080628093D80019BC85E08093E40170
+:1019A0000E94E6088091E10084FF30C08091E2004F
+:1019B00084FF2CC080E189BD82E189BD09B400FEAD
+:1019C000FDCF8091D8008F7D8093D8008091E10079
+:1019D0008F7E8093E1008091E2008F7E8093E20011
+:1019E0008091E20081608093E2008091E001882391
+:1019F00011F084E007C08091E30087FD02C081E020
+:101A000001C083E08093E4010E94E8088091E10036
+:101A100083FF29C08091E20083FF25C08091E1000F
+:101A2000877F8093E10082E08093E4011092E001DF
+:101A30008091E1008E7F8093E1008091E2008E7FB3
+:101A40008093E2008091E20080618093E20042E0B6
+:101A500060E080E00E94710B8091F00088608093CC
+:101A6000F0000E94E508FF91EF91BF91AF919F9127
+:101A70008F917F916F915F914F913F912F910F9037
+:101A80000FBE0F901F9018951F920F920FB60F92D6
+:101A900011242F933F934F935F936F937F938F9373
+:101AA0009F93AF93BF93CF93DF93EF93FF93C09137
+:101AB000E900CF708091EC00D82FD17080FDD0E884
+:101AC0001092E9008091F000877F8093F000789475
+:101AD0000E94880D1092E9008091F0008860809348
+:101AE000F000CD2BCF70C093E900FF91EF91DF9113
+:101AF000CF91BF91AF919F918F917F916F915F91A6
+:101B00004F913F912F910F900FBE0F901F901895FE
+:101B10001F93CF93DF93CDB7DEB7AA970FB6F89494
+:101B2000DEBF0FBECDBFE5EEF1E088E08E0F9091F5
+:101B3000F10091938E13FBCF0E9404098091E8007D
+:101B400083FF1FC18091E5019091E601492F50E08C
+:101B50004A30510508F015C1FA01EA5AFF4F0C94BA
+:101B60008323803881F0823809F00BC18091E9012C
+:101B70008F708093E9008091EB0085FB882780F9C6
+:101B80001092E90006C08091E1019091E20191116B
+:101B900082609091E800977F9093E8008093F10035
+:101BA0001092F100C8C0282F2D7F09F0EAC08823C9
+:101BB00019F0823061F0E5C08091E701813009F0D1
+:101BC000E0C0933009F080E08093E2012BC0809167
+:101BD000E701811127C08091E9018F7009F4D1C01C
+:101BE0008093E9002091EB0020FF1CC0933021F48A
+:101BF0008091EB00806214C09091EB009061909313
+:101C0000EB0021E030E0A90102C0440F551F8A9586
+:101C1000E2F74093EA001092EA008091EB008860BE
+:101C20008093EB001092E9008091E800877F86C0E6
+:101C30008111A7C01091E7011F778091E3008078A0
+:101C4000812B8093E3008091E800877F8093E800F8
+:101C50000E94A60B8091E80080FFFCCF8091E300FA
+:101C600080688093E300111102C082E001C083E02C
+:101C70008093E40186C08058823008F082C0809151
+:101C8000E7019091E8018C3D53E0950779F583E0F9
+:101C90008A838AE289834FB7F894DE01139620E0A5
+:101CA0003EE051E2E32FF0E050935700E49120FF33
+:101CB00003C0E295EF703F5FEF708E2F90E0EA3047
+:101CC00010F0C79601C0C0968D939D932F5F24316D
+:101CD00049F74FBF8091E800877F8093E8006AE270
+:101CE00070E0CE0101960E94AD0A14C0AE014F5FB4
+:101CF0005F4F6091E9010E94F409BC01892B09F44E
+:101D000040C09091E800977F9093E80089819A8184
+:101D10000E94100B8091E8008B778093E80031C01F
+:101D2000803879F58091E800877F8093E800809182
+:101D3000E0018093F1008091E8008E778093E800C5
+:101D40000E94A60B1EC081111CC09091E701923029
+:101D5000C0F48091E800877F8093E8009093E001D1
+:101D60000E94A60B8091E001811106C08091E300E2
+:101D700087FD02C081E001C084E08093E4010E94FD
+:101D8000F0088091E80083FF0AC08091E800877F17
+:101D90008093E8008091EB0080628093EB00AA962C
+:101DA0000FB6F894DEBF0FBECDBFDF91CF911F916C
+:101DB00008950895CF938091E4018823A1F0C09104
+:101DC000E900CF709091EC00892F817090FD80E840
+:101DD000C82B1092E9008091E80083FD0E94880DD5
+:101DE000CF70C093E900CF910895909369018093DB
+:101DF00068010895E0916801F0916901309721F040
+:101E00000190F081E02D099480E00895E09168014F
+:101E1000F0916901309721F00280F381E02D09945F
+:101E20000895E0916801F0916901309721F00480F4
+:101E3000F581E02D099408952091660130916701A4
+:101E40008217930771F09093670180936601E09188
+:101E50006801F0916901309721F00680F781E02D4B
+:101E600009940895209164013091650182179307C8
+:101E700071F09093650180936401E0916801F091A5
+:101E80006901309721F00084F185E02D09940895CF
+:101E900008950C94480F0E945E1B0E940B040C9442
+:101EA000241CCF92DF92EF92FF920F931F93CF9358
+:101EB000DF93CDB7DEB72B970FB6F894DEBF0FBE1A
+:101EC000CDBF0E9423048BE6C82E81E0D82E00E00F
+:101ED00010E0E02E802F0E941105F60141916F0164
+:101EE000F42EF826B1F40F5F1F4F0E30110589F75D
+:101EF0008FEF89838A831B820E94671B8160782F02
+:101F00009D838C8349815A816B818D810E94F40F5E
+:101F100040C09091CD0191FF04C08B870E941705AE
+:101F20008B8520E030E04F2D50E0922FBA01022E39
+:101F300002C0759567950A94E2F760FF24C02E836E
+:101F4000EF8221E030E0690102C0CC0CDD1C9A95E3
+:101F5000E2F790E08C219D21892B09F420E028876D
+:101F60000E94671B8160782F9A8789874E815F81E5
+:101F700068858A850E94F40FF801E559FE4F80813B
+:101F8000C826C08206C02F5F3F4F2630310569F654
+:101F9000AACF0E940B1F10916A010E94FA0E181717
+:101FA000A1F00E94FA0E80936A012B960FB6F89466
+:101FB000DEBF0FBECDBFDF91CF911F910F91FF907C
+:101FC000EF90DF90CF900C94F3072B960FB6F89418
+:101FD000DEBF0FBECDBFDF91CF911F910F91FF905C
+:101FE000EF90DF90CF900895CF93DF93CDB7DEB71A
+:101FF0002B970FB6F894DEBF0FBECDBF4F83588727
+:1020000069877A878B87DE01119686E0FD01119240
+:102010008A95E9F785E0FE01379601900D928A9541
+:10202000E1F749815A816B817C818D819E810E947B
+:1020300024172B960FB6F894DEBF0FBECDBFDF91ED
+:10204000CF9108950895CF93882309F4C2C0C82F73
+:10205000823859F40E94FA0E81FDBBC089E30E94C8
+:10206000CD190E949A1A89E30CC0833879F40E9432
+:10207000FA0E80FDAEC083E50E94CD190E949A1A27
+:1020800083E50E940F1ACF910C949A1A843859F460
+:102090000E94FA0E82FD9DC087E40E94CD190E9425
+:1020A0009A1A87E4EECF8CEF8C0F813A48F48C2F8C
+:1020B0000E944E2181118DC08C2F0E94CD19E3CF3B
+:1020C00080E28C0F883048F4C77081E001C0880F2F
+:1020D000CA95EAF70E94531AD6CF8BE58C0F83304E
+:1020E00078F4C53A29F0C63A31F083E890E005C0AB
+:1020F00081E890E002C082E890E0CF910C941C0F40
+:1021000088E58C0F833108F064C0C83A39F1C93AC8
+:1021100041F1CA3A49F1CB3A51F1CC3A59F1CD3AB1
+:1021200061F1C03B69F1CE3A71F1CF3A79F1C13B2F
+:1021300081F1C23B89F1C33B91F1C43B99F1C53BAD
+:10214000A1F1C63BA9F1C73BB1F1C83BB9F1C93B0D
+:10215000C1F1CA3BC9F180E090E038C082EE90E066
+:1021600035C089EE90E032C08AEE90E02FC085EB5A
+:1021700090E02CC086EB90E029C087EB90E026C071
+:102180008CEC90E023C08DEC90E020C083E891E0DF
+:102190001DC08AE891E01AC082E991E017C084E985
+:1021A00091E014C081E292E011C083E292E00EC09F
+:1021B00084E292E00BC085E292E008C086E292E001
+:1021C00005C087E292E002C08AE292E0CF910C94CF
+:1021D000320FCF910895882309F44BC0823859F407
+:1021E0000E94FA0E81FF45C089E30E94CD190E942A
+:1021F0009A1A89E30CC0833871F40E94FA0E80FFAA
+:1022000038C083E50E94CD190E949A1A83E50E9486
+:102210000F1A0C949A1A843859F40E94FA0E82FF0D
+:1022200028C087E40E94CD190E949A1A87E4EFCF54
+:102230009CEF980F913A58F390E2980F983050F431
+:10224000877091E001C0990F8A95EAF7892F0E9463
+:10225000591ADFCF9BE5980F933020F480E090E08F
+:102260000C941C0F885A833120F480E090E00C9489
+:10227000320F0895882321F00E94531A0C949A1A61
+:102280000895882321F00E94591A0C949A1A0895EF
+:10229000BF92CF92DF92EF92FF920F931F93CF9353
+:1022A000DF9300D000D000D0CDB7DEB725E0FC0131
+:1022B000DE01119601900D922A95E1F7FC01D08084
+:1022C00011810281258122952F7043815481452BF4
+:1022D00009F4FCC21F3F21F4FFEFDF1609F4F6C238
+:1022E0007C012E830E942210D9821A8369817A810F
+:1022F000802F0E94C919182FB92E0E947E190E94A2
+:1023000045182E81002319F00E94701A2E81EB2DA2
+:10231000E295EF70F0E0E05AFF4F0C9483238B2D91
+:10232000807F9B2D9F70F92E882319F0F29480EF07
+:10233000F822002389F0FF2009F475C280E2810FA2
+:10234000883020F48F2D0E94531A03C08F2D0E94D5
+:10235000631A0E949A1A67C2812F0E94EB10FF2015
+:1023600009F4B4C2105E8F2D183018F40E94591A67
+:1023700002C00E94691A26960FB6F894DEBF0FBEFF
+:10238000CDBFDF91CF911F910F91FF90EF90DF9024
+:10239000CF90BF900C949A1A3B2D307F8B2D8F706D
+:1023A000303211F08295807F112319F0113021F124
+:1023B0002CC00023B9F0222309F4A0C1213009F078
+:1023C0009DC126960FB6F894DEBF0FBECDBFDF913C
+:1023D000CF911F910F91FF90EF90DF90CF90BF9022
+:1023E0000C94831A222319F0213009F46FC28E83D2
+:1023F0000E94861A8E8196C1002321F0223008F0B7
+:1024000065C27CC1211162C28DC1002321F022234B
+:1024100009F474C108C2222309F484C119C22B2D06
+:1024200026952695237030E02115310521F02130C5
+:102430003105D1F04BC2002321F0812F9B2D9370E9
+:1024400002C080E090E026960FB6F894DEBF0FBE83
+:10245000CDBFDF91CF911F910F91FF90EF90DF9053
+:10246000CF90BF900C941C0F002321F0812F9B2D47
+:10247000937002C080E090E026960FB6F894DEBF1D
+:102480000FBECDBFDF91CF911F910F91FF90EF90C5
+:10249000DF90CF90BF900C94320F812F002319F062
+:1024A0000E94131E02C00E947B1E26960FB6F8944F
+:1024B000DEBF0FBECDBFDF91CF911F910F91FF9077
+:1024C000EF90DF90CF90BF900C94001F8B2D837006
+:1024D00009F07BC00111FAC1812F82958695877022
+:1024E000880F880F912F9F70C92ED12CE12CF12CD1
+:1024F000082E04C0CC0CDD1CEE1CFF1C0A94D2F785
+:1025000014FF12C04FE050E060E070E004C0440FE0
+:10251000551F661F771F8A95D2F7CB01BA016095C8
+:1025200070958095909503C060E070E0CB012B2DF5
+:10253000269526952370422F50E042305105D9F060
+:102540004330510569F16C297D298E299F2941303D
+:10255000510551F126960FB6F894DEBF0FBECDBFE0
+:10256000DF91CF911F910F91FF90EF90DF90CF906F
+:10257000BF900C946C186C297D298E299F29269672
+:102580000FB6F894DEBF0FBECDBFDF91CF911F9184
+:102590000F91FF90EF90DF90CF90BF900C94881830
+:1025A0000E946C18C701B60126960FB6F894DEBFDC
+:1025B0000FBECDBFDF91CF911F910F91FF90EF9094
+:1025C000DF90CF90BF900C945018002319F08B2D02
+:1025D000817001C08695882309F478C1812F829586
+:1025E00086958770880F880F912F9F70C92ED12CE8
+:1025F000E12CF12C082E04C0CC0CDD1CEE1CFF1CC1
+:102600000A94D2F714FF12C04FE050E060E070E08F
+:1026100004C0440F551F661F771F8A95D2F7CB0160
+:10262000BA01609570958095909503C060E070E068
+:10263000CB012B2D269526952370422F50E042305A
+:102640005105D9F04330510569F16C297D298E2956
+:102650009F294130510551F126960FB6F894DEBFFF
+:102660000FBECDBFDF91CF911F910F91FF90EF90E3
+:10267000DF90CF90BF900C9446196C297D298E294C
+:102680009F2926960FB6F894DEBF0FBECDBFDF910F
+:10269000CF911F910F91FF90EF90DF90CF90BF905F
+:1026A0000C9462190E944619C701B60126960FB60E
+:1026B000F894DEBF0FBECDBFDF91CF911F910F9178
+:1026C000FF90EF90DF90CF90BF900C942A19103FAD
+:1026D000D1F118F4103E50F4A1C0123F09F463C0C8
+:1026E00008F44CC0133F09F473C098C01F708B2DC1
+:1026F0008F710023A1F00E94C318812F26960FB678
+:10270000F894DEBF0FBECDBFDF91CF911F910F9127
+:10271000FF90EF90DF90CF90BF900C943A110E9401
+:10272000E418812F26960FB6F894DEBF0FBECDBFFA
+:10273000DF91CF911F910F91FF90EF90DF90CF909D
+:10274000BF900C9441110023A9F02111BFC08B2D23
+:102750008F7126960FB6F894DEBF0FBECDBFDF9106
+:10276000CF911F910F91FF90EF90DF90CF90BF908E
+:102770000C940919223008F0A9C0E9CF0023A9F070
+:102780008B2D8F7126960FB6F894DEBF0FBECDBF8E
+:10279000DF91CF911F910F91FF90EF90DF90CF903D
+:1027A000BF900C94C318002359F38B2D8F7126967C
+:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152
+:1027C0000F91FF90EF90DF90CF90BF900C94E418A2
+:1027D000002399F08B2D8F7126960FB6F894DEBFEB
+:1027E0000FBECDBFDF91CF911F910F91FF90EF9062
+:1027F000DF90CF90BF900C94AE1826960FB6F89449
+:10280000DEBF0FBECDBFDF91CF911F910F91FF9023
+:10281000EF90DF90CF90BF900C94A4180023A9F004
+:10282000222309F4ADCF812F26960FB6F894DEBF90
+:102830000FBECDBFDF91CF911F910F91FF90EF9011
+:10284000DF90CF90BF900C942310222309F4ADCFDA
+:10285000812F26960FB6F894DEBF0FBECDBFDF9155
+:10286000CF911F910F91FF90EF90DF90CF90BF908D
+:102870000C94EB104B2D4F70612FC7010E94AB02DF
+:1028800026960FB6F894DEBF0FBECDBFDF91CF9175
+:102890001F910F91FF90EF90DF90CF90BF900C941D
+:1028A000C8174B2D4F70612FC70126960FB6F894AD
+:1028B000DEBF0FBECDBFDF91CF911F910F91FF9073
+:1028C000EF90DF90CF90BF900C94180526960FB62E
+:1028D000F894DEBF0FBECDBFDF91CF911F910F9156
+:1028E000FF90EF90DF90CF90BF9008950E94701AF4
+:1028F0000E94801A0E94451A0E949A1A0E94B11FD3
+:102900000E94001F80E090E00E941C0F80E090E099
+:102910000C94320F0E94601A0C9476140E94BE1917
+:10292000292F22952F7030E02C3031054CF42A30BD
+:1029300031056CF4225031092230310588F407C08A
+:102940002C30310549F02F30310531F009C0803E7F
+:1029500048F0803F29F406C093FB882780F908954A
+:1029600080E0089581E00895CF93DF9300D000D0F8
+:102970001F92CDB7DEB70F900F900F900F900F9072
+:10298000DF91CF910895CF93DF9300D000D000D096
+:10299000CDB7DEB726960FB6F894DEBF0FBECDBF1B
+:1029A000DF91CF9108951F93CF93DF93C091790169
+:1029B00016E080917A01C81799F0D0E01C9FF001D1
+:1029C0001D9FF00D1124E558FE4F40815181628119
+:1029D0007381848195810E94C3142196C770E9CFC9
+:1029E000DF91CF911F9108954091AB015091AC01BF
+:1029F0006091AD017091AE018091AF019091B001F5
+:102A00000C94C3148091B00182958F7009F054C06A
+:102A10008091AD01882309F44FC080917901A09184
+:102A20007A016091AB017091AC014091AE0150917F
+:102A3000AF01B6E08A1709F43FC090E04115510597
+:102A4000C1F17F3F11F46F3FA1F1B89FF001B99F31
+:102A5000F00D1124E558FE4F218172132AC0208108
+:102A6000621327C02281211124C0238134812417BD
+:102A7000350710F421503109241B350B283C310552
+:102A8000C0F42091B0012F7020612093B00126E0A6
+:102A9000289FF001299FF00D1124E058FE4F8081FE
+:102AA0008F70806180838BEA91E00E9448110C94C2
+:102AB000D31401968770BECF0895CF92DF92EF9224
+:102AC000FF920F931F93CF93DF93CDB7DEB762973B
+:102AD0000FB6F894DEBF0FBECDBF8C0185E0F801C4
+:102AE000DE011D9601900D928A95E1F7D8014C9177
+:102AF00011965C91119712966C9112971396CD9046
+:102B0000DC9014973091AB017091AC018091AE01D3
+:102B10009091AF01009709F46BC17F3F19F43F3FDB
+:102B200009F466C1E090AD01EE2009F4C0C0209127
+:102B3000B001C816D90628F0F601E81BF90BCF0141
+:102B400004C0809590958C0D9D1DFF24F394883CC6
+:102B5000910578F0F12C207F09F0C6C07C2DD98A30
+:102B6000C88A89890E94B4148BEA91E00E944811B6
+:102B7000B1C0822F807F09F046C0751314C0341392
+:102B800012C0611110C02F7020612093B0010E940B
+:102B9000F4148BEA91E00E9448118091B001D801B1
+:102BA00015968C932EC0CD2819F15F3F11F44F3F3D
+:102BB000F9F0F62E61111CC08091790120917A0103
+:102BC00036E0821709F45AC090E0389FF001399F2F
+:102BD000F00D1124E558FE4F7181571306C0708126
+:102BE000471303C07281711103C001968770E9CF4A
+:102BF000F62E662309F418C18091B001816080939C
+:102C0000B001F12C11C1751308C0341306C0611155
+:102C100004C08091B001D801C3C04D875E878D8507
+:102C20009E856A8B0E948E146A898823E1F166234F
+:102C3000D1F12091B001822F82958F7090E00297A0
+:102C400074F08091AB019091AC0198878F831986C5
+:102C5000DB86CA862C87CE0107960E94481186E043
+:102C6000F801ABEAB1E001900D928A95E1F70E947C
+:102C700002150E94F414FF24F394D6C04D875E879A
+:102C80008D859E850E94BE19292F22952F7030E0D8
+:102C9000223031050CF0BCC09F7009F0B6C0805ED8
+:102CA000883008F4C1C0C8010E944811E4CFC8169A
+:102CB000D90608F453C0F601E81BF90BCF01883C94
+:102CC000910508F450C0F12C7C2DD98AC88A8989D5
+:102CD0000E94B414EBEAF1E086E0DF011D928A95D0
+:102CE000E9F70E94F414A0C0751314C0341312C085
+:102CF000611110C08091B001F8018583C8010E9464
+:102D0000481186E0EBEAF1E0DF011D928A95E9F7D0
+:102D1000FE2C8AC04D875E878D859E856A8B0E94BA
+:102D20008E146A89882309F4BECF662309F4BBCFC9
+:102D30002091B001822F82958F7090E002970CF461
+:102D40008ECF8091AB019091AC019A8389831B82D5
+:102D5000DD82CC822E83CE0101967FCF8095909527
+:102D60008C0D9D1DACCFF62E662309F49CCF7513F8
+:102D70002EC034132CC02091B00120FD1FC0822F23
+:102D800082958F70D9F0D80115962C9315978F30B6
+:102D900049F08F5F982F9295907F822F8F70892BAB
+:102DA00015968C93C8010E94481186E0F801ABEAA1
+:102DB000B1E001900D928A95E1F793CF86E0F8019A
+:102DC000ABEAB1E001900D928A95E1F72DC04D87F5
+:102DD0005E878D859E850E948E14811140CF8091E3
+:102DE000B00181608093B001C8010E9448111CC0ED
+:102DF000662309F458CF4D875E878D859E850E9496
+:102E00008E14882309F44FCF2ACF811148CF0CC0EC
+:102E1000243031050CF047CF9F7009F440CFF80102
+:102E20009581907F09F03BCF8F2D62960FB6F89475
+:102E3000DEBF0FBECDBFDF91CF911F910F91FF90ED
+:102E4000EF90DF90CF9008951F93CF93DF93CDB78E
+:102E5000DEB72C970FB6F894DEBF0FBECDBF4F8301
+:102E6000588769877A878B879C87CE0107960E944F
+:102E70005D15882369F08F8198852A853B85232BF2
+:102E8000F1F19F3F09F063C08F3F09F060C037C088
+:102E900086E0FE013796DE01119601900D928A952B
+:102EA000E1F76F817885EA85FB85309741F17F3FB7
+:102EB00011F46F3F21F120917A0130E0C9010196B0
+:102EC000877099274091790150E08417950709F49C
+:102ED00047C069837A83FD83EC8396E0929FD0019B
+:102EE000939FB00D1124A558BE4FFE01319601905D
+:102EF0000D929A95E1F780937A010E94D31416E01F
+:102F00008091790190917A018917C1F1189FC001D0
+:102F1000112485589E4F0E945D15882379F1E09118
+:102F200079011E9FF0011124E558FE4F4081518127
+:102F300062817381848195810E94C314809179019B
+:102F400090E001968770992780937901D9CF4F81BE
+:102F5000588569857A858B859C850E94C314CFCF5F
+:102F60000E948A1410927A0110927901EBEAF1E042
+:102F700086E0DF011D928A95E9F7C1CF2C960FB646
+:102F8000F894DEBF0FBECDBFDF91CF911F910895A2
+:102F9000EF92FF920F931F93CF93DF938C01892BB6
+:102FA00009F46CC0F12CEE24E394E8012196F801B9
+:102FB0008491843740F4843008F051C0813081F02E
+:102FC000823019F15BC0853709F444C0A8F19CE751
+:102FD000980F903708F052C08F770E94EB1041C0D5
+:102FE0000E5F1F4FFE01C49180E28C0F883048F4C1
+:102FF000C7708E2D01C0880FCA95EAF70E94731A18
+:1030000014C08C2F0E9423102DC00E5F1F4FFE0195
+:10301000C49180E28C0F883058F4C7708E2D01C0A7
+:10302000880FCA95EAF70E94791A0E949A1A1AC064
+:103030008C2F0E94EB1016C00E5F1F4FFE01C49133
+:10304000CC2381F08FE99FE00197F1F700C00000E9
+:10305000C150F6CF0E5F1F4FFE01F49003C00E94D7
+:1030600023108E018F2D882309F49FCFEFE9FFE015
+:103070003197F1F700C000008150F5CFDF91CF917B
+:103080001F910F91FF90EF90089508956093B501FF
+:103090007093B6018093B7019093B8010C947614A5
+:1030A0000F931F930091B5011091B6012091B701C4
+:1030B0003091B801DC01CB01802B912BA22BB32BDB
+:1030C0008093B5019093B601A093B701B093B80176
+:1030D0001F910F910C9476140F931F930091B501DB
+:1030E0001091B6012091B7013091B801DC01CB01FC
+:1030F00080239123A223B3238093B5019093B6013B
+:10310000A093B701B093B8011F910F910C9476145E
+:103110000F931F930091B5011091B6012091B70153
+:103120003091B801DC01CB0180279127A227B3277A
+:103130008093B5019093B601A093B701B093B80105
+:103140001F910F910C9476141092B1011092B2015C
+:103150001092B3011092B4010C94761441E050E047
+:1031600060E070E004C0440F551F661F771F8A950A
+:10317000D2F74093B1015093B2016093B3017093C1
+:10318000B4010C94761441E050E060E070E004C0BB
+:10319000440F551F661F771F8A95D2F78091B101A2
+:1031A0009091B201A091B301B091B401482B592B79
+:1031B0006A2B7B2B4093B1015093B2016093B30112
+:1031C0007093B4010C94761441E050E060E070E03C
+:1031D00004C0440F551F661F771F8A95D2F740958C
+:1031E0005095609570958091B1019091B201A09138
+:1031F000B301B091B401482359236A237B23409340
+:10320000B1015093B2016093B3017093B4010C9477
+:10321000761441E050E060E070E004C0440F551FB8
+:10322000661F771F8A95D2F78091B1019091B20104
+:10323000A091B301B091B401482759276A277B2791
+:103240004093B1015093B2016093B3017093B40104
+:103250000C9476140F931F930091B1011091B20159
+:103260002091B3013091B401DC01CB01802B912B73
+:10327000A22BB32B8093B1019093B201A093B30121
+:10328000B093B4011F910F910C9476140F931F9378
+:103290000091B1011091B2012091B3013091B401BC
+:1032A000DC01CB0180239123A223B3238093B101BE
+:1032B0009093B201A093B301B093B4011F910F9109
+:1032C0000C9476140F931F930091B1011091B201E9
+:1032D0002091B3013091B401DC01CB01802791270B
+:1032E000A227B3278093B1019093B201A093B301B9
+:1032F000B093B4011F910F910C9476140895CF925E
+:10330000DF92EF92FF920F931F93CF93DF938C0185
+:10331000C090B501D090B601E090B701F090B8012F
+:103320008091B1019091B201A091B301B091B4012B
+:10333000C82AD92AEA2AFB2ACFE1D0E0D701C60160
+:103340000C2E04C0B695A795979587950A94D2F749
+:1033500080FF06C0B8018C2F0E945807019721F406
+:10336000219760F780E001C08C2FDF91CF911F91F2
+:103370000F91FF90EF90DF90CF900895CF93DF9360
+:10338000EC010E947F19BE010E945807DF91CF9186
+:103390000895CB010E94BE19089590910C019923C4
+:1033A00021F090910D01911109C020910E013091F1
+:1033B0000F01F90132969FEF40E01FC0982F9695BC
+:1033C000969596959F3050F5E0910E01F0910F0182
+:1033D000E90FF11D877021E030E0A90102C0440F20
+:1033E000551F8A95E2F7CA019181892B818308953F
+:1033F0009F3F39F04F5F4E3041F051915813F8CF55
+:103400000DC05111F7CF942FF5CF9F3F39F0F9013F
+:10341000E90FF11D97FDFA95828308950895909123
+:103420000C01992321F090910D01911109C0209177
+:103430000E0130910F01F9013296205F3F4F1FC0FE
+:10344000982F9695969596959F30F0F4E0910E0101
+:10345000F0910F01E90FF11D877021E030E0A90123
+:1034600002C0440F551F8A95E2F7CA0180959181E9
+:103470008923818308953196E217F30729F090811B
+:103480009813F9CF1082F7CF089581E090E0E09192
+:103490000E01F0910F01E80FF91F108201968031A3
+:1034A0009105A9F708959091CC01892B8093CC01C7
+:1034B000089580959091CC0189238093CC01089543
+:1034C0001092CC0108959091CB01892B8093CB0170
+:1034D000089580959091CB0189238093CB01089525
+:1034E0001092CB0108959091CA01892B8093CA0153
+:1034F000089580959091CA0189238093CA01089507
+:103500001092CA0108958093B90108951092B901EB
+:10351000089580910E0190910F01FC0131969C015C
+:10352000205F3F4F80E0919191118F5FE217F30789
+:10353000D1F70895E0910E01F0910F018091CC0137
+:103540008083E0910E01F0910F0190818091CB0179
+:10355000892B8083E0910E01F0910F019081809181
+:10356000CA01892B80838091B901882361F0E091A1
+:103570000E01F0910F019081892B80830E94891A9E
+:1035800081111092B90180910E0190910F010C945C
+:10359000060FCF92DF92EF92FF926C01EE24FF2490
+:1035A000C114D104E104F10421F0C701B60120E106
+:1035B00001C020E0C72ED82EE92EFF24C114D1046B
+:1035C000E104F10419F0285FC701B6016B017C0129
+:1035D00054E0F694E794D794C7945A95D1F7C11460
+:1035E000D104E104F10419F02C5FC701B6016B01AD
+:1035F0007C0142E0F694E794D794C7944A95D1F7BA
+:10360000C114D104E104F10419F02E5FC701B60121
+:10361000DC01CB01B695A79597958795892B8A2BC9
+:103620008B2B09F02F5F822FFF90EF90DF90CF90D0
+:1036300008958091E401843021F11092CE0120E4BC
+:1036400088E190E00FB6F894A895809360000FBED3
+:103650002093600080E00E94F30783B7817F84603D
+:1036600083BF83B7816083BF7894889583B78E7F4B
+:1036700083BF88E10FB6F8948093600010926000D9
+:103680000FBE089508950895CF930E94421B0E9493
+:1036900023040E94431BC0E08C2F0E94110581115E
+:1036A00004C0CF5FCE30C1F701C081E0CF91089553
+:1036B0000E948A140E94FA0E0C94F30782E084BDE3
+:1036C00093E095BD9AEF97BD80936E0008952FB754
+:1036D000F8948091CF019091D001A091D101B09147
+:1036E000D2012FBF0895CF92DF92EF92FF920F93F6
+:1036F0001F932FB7F8944091CF015091D001609162
+:10370000D1017091D2012FBF6A017B01EE24FF2409
+:103710008C0120E030E0C016D106E206F30610F47A
+:10372000415051099A01281B390BC9011F910F9172
+:10373000FF90EF90DF90CF9008951F920F920FB6F9
+:103740000F9211248F939F93AF93BF938091CF01DA
+:103750009091D001A091D101B091D2010196A11D0B
+:10376000B11D8093CF019093D001A093D101B0936C
+:10377000D201BF91AF919F918F910F900FBE0F908B
+:103780001F9018950E94F70BF8942FEF87EA91E6A7
+:10379000215080409040E1F700C0000087E090EBAE
+:1037A000DC018093EE019093EF01A093F001B093C0
+:1037B000F1019CE088E10FB6F894A8958093600031
+:1037C0000FBE90936000FFCFEF92FF920F931F9375
+:1037D000CF93DF93D82FC0E08C2F0E94110500E01B
+:1037E00010E0E82EF12CC701002E02C095958795B8
+:1037F0000A94E2F780FD06C00F5F1F4F06301105E7
+:1038000091F709C0602F7C2F80E00E941905D81322
+:10381000F3CF81E004C0CF5FCE30F1F680E0DF91DE
+:10382000CF911F910F91FF90EF900895CF93C82FE4
+:103830008CE20E94E41B882321F08C2FCF910C9402
+:10384000E41B80E0CF910895CF930E946B1D8111FE
+:1038500002C00E94511DC5E6C15049F00E942304D8
+:103860008FE39CE90197F1F700C00000F5CF89E2F2
+:103870000E94161C811113C18AE20E94161C81113C
+:103880000E94511D85E00E94161C81110E94C21BDE
+:103890000E94761D8093CD0187E00E94161C88232C
+:1038A000A9F18BE10E94161C882351F08091CD0173
+:1038B00081FB222720F991E0922790FB81F90EC02D
+:1038C0008EE00E94161C882361F08091CD0182FB5E
+:1038D000222720F991E0922790FB82F98093CD0175
+:1038E00015C080E10E94161C9091CD01882341F003
+:1038F00093FB222720F981E0822780FB93F904C003
+:10390000892F809580FB90F99093CD018091CD0116
+:103910000E947A1D0E94881D8093ED0180EE0E9416
+:10392000161C882341F08091ED01982F909590FB13
+:1039300080F98093ED0189E30E94161C882359F0D9
+:103940008091ED0181FB222720F991E0922790FBE5
+:1039500081F98093ED0182EE0E94161C882359F0B4
+:103960008091ED0182FB222720F991E0922790FBC4
+:1039700082F98093ED0186EE0E94161C882359F08F
+:103980008091ED0183FB222720F991E0922790FBA3
+:1039900083F98093ED0183EE0E94161C882359F071
+:1039A0008091ED0184FB222720F991E0922790FB82
+:1039B00084F98093ED0185E30E94161C882359F059
+:1039C0008091ED0185FB222720F991E0922790FB61
+:1039D00085F98093ED0181E30E94161C882359F03C
+:1039E0008091ED0186FB222720F991E0922790FB40
+:1039F00086F98093ED0181E10E94161C882359F01D
+:103A00008091ED0187FB222720F991E0922790FB1E
+:103A100087F98093ED018091ED010E948C1D8091CA
+:103A2000ED0187FB882780F980930D0187E20E94D2
+:103A3000161CC82F8EE10E94161C8111C2608FE1F6
+:103A40000E94161C8111C46080E20E94161C811124
+:103A5000C86081E20E94161C8111C06182E20E944E
+:103A6000161C8111C06283E20E94161C8111C06481
+:103A700084E20E94161C882311F0C06802C0CC2387
+:103A800029F08C2F0E94831D6C2F03C00E947F1D84
+:103A9000682F70E080E090E0CF910C944618CF91B1
+:103AA00008956DEE7EEF80E090E00E94BD2360E01F
+:103AB00082E090E00E94AB2360E083E090E00E940F
+:103AC000AB2360E084E090E00E94AB2360E085E0FF
+:103AD00090E00C94AB2380E090E00E94A52321E0CD
+:103AE0008D3E9E4F09F020E0822F089582E090E005
+:103AF0000C949D23682F82E090E00C94AB2383E02C
+:103B000090E00C949D23682F83E090E00C94AB230D
+:103B100084E090E00C949D23682F84E090E00C9466
+:103B2000AB238091D50180FF0BC06091130185E02C
+:103B3000689FB001112475956795759567952BC0A1
+:103B400081FF09C06091130185E0689FB0011124D5
+:103B50007595679520C082FF07C06091130185E0CD
+:103B6000689FB001112417C09091D6019923D1F01C
+:103B700060911201961788F72091130185E0289F24
+:103B800090011124929FA001939F500D112470E089
+:103B9000CA010E946F236038710540F461157105F8
+:103BA00039F002C065E070E0862F08958FE7089530
+:103BB00081E008958091D50180FF08C060911101D6
+:103BC00070E0759567957595679521C081FF06C072
+:103BD0006091110170E07595679519C082FF04C06E
+:103BE0006091110170E010C09091D6019923C1F04D
+:103BF000609110019617A0F780911101899FC00173
+:103C0000112470E00E946F236038710528F461155B
+:103C1000710521F0862F08958FE7089581E00895BA
+:103C200061E070E0F4CF803F21F40E94911D819506
+:103C300004C0813F29F40E94911D8093D901089509
+:103C4000823F21F40E94911D819504C0833F29F495
+:103C50000E94911D8093D8010895893F19F40E9414
+:103C6000DA1D05C08A3F31F40E94DA1D81958093E8
+:103C7000DA0108958B3F21F40E94DA1D819504C07A
+:103C80008C3F29F40E94DA1D8093DB010895843F64
+:103C900021F48091D701816017C0853F21F4809184
+:103CA000D701826011C0863F21F48091D7018460E2
+:103CB0000BC0873F21F48091D701886005C0883F01
+:103CC00031F48091D70180618093D70108958D3FB1
+:103CD00021F48091D50181600BC08E3F21F4809149
+:103CE000D501826005C08F3F29F48091D5018460A1
+:103CF0008093D5010895803F39F48091D90187FFE1
+:103D00006CC01092D90169C0813F29F48091D9011A
+:103D10001816BCF362C09091D801823F29F497FF36
+:103D20005CC01092D80159C0833F19F41916CCF326
+:103D300054C0893F41F48091DA0118160CF04DC04F
+:103D40001092DA014AC08A3F29F48091DA0187FF94
+:103D500044C0F6CF8B3F39F48091DB0187FF3DC033
+:103D60001092DB013AC08C3F29F48091DB011816D8
+:103D7000BCF333C0843F21F48091D7018E7F17C0FC
+:103D8000853F21F48091D7018D7F11C0863F21F4BA
+:103D90008091D7018B7F0BC0873F21F48091D701A1
+:103DA000877F05C0883F31F48091D7018F7E809353
+:103DB000D70113C08D3F21F48091D5018E7F0BC0B8
+:103DC0008E3F21F48091D5018D7F05C08F3F29F46E
+:103DD0008091D5018B7F8093D5018091D80181118D
+:103DE0000EC08091D90181110AC08091DA01811140
+:103DF00006C08091DB01811102C01092D6010895A6
+:103E000087ED91E00E94110F0E94671B9093D401EF
+:103E10008093D30108951F93CF93DF938091D301B3
+:103E20009091D4010E94731BAC019091D60199230B
+:103E300021F02091140130E006C0209115018AE0A4
+:103E4000289F900111244217530708F486C08091DF
+:103E5000D801C091D901D091DA011091DB01811113
+:103E600007C0C11176C0D11174C0111172C075C0E4
+:103E70009F3F19F09F5F9093D601181624F40E947B
+:103E8000911D8093D8018091D80187FF05C00E94C1
+:103E9000911D81958093D8011C1624F40E94911DD8
+:103EA0008093D9018091D90187FF05C00E94911D9F
+:103EB00081958093D9016091D801662339F1C09131
+:103EC000D901CC2319F1772767FD7095872F972F9C
+:103ED0000E94802223E333E343E35FE30E94E42272
+:103EE0000E944D226093D8016C2F772767FD709553
+:103EF000872F972F0E94802223E333E343E35FE37E
+:103F00000E94E4220E944D226093D9011D1624F4E0
+:103F10000E94DA1D8093DA018091DA0187FF05C0E3
+:103F20000E94DA1D81958093DA01111624F40E9413
+:103F3000DA1D8093DB018091DB0187FF05C00E94C1
+:103F4000DA1D81958093DB01DF91CF911F910C9455
+:103F5000001F9F3F09F08ECF96CFDF91CF911F9129
+:103F60000895E7EDF1E085E0DF011D928A95E9F71C
+:103F70001092D6011092D5010895833081F128F472
+:103F8000813059F08230D1F00895853009F449C06C
+:103F9000B8F1863009F456C0089580911501262F96
+:103FA00030E0280F311D2F3F310524F4680F609356
+:103FB000150108958FEF80931501089580911401E4
+:103FC000262F30E0280F311D2F3F310524F4680FD4
+:103FD0006093140108958FEF8093140108958091E8
+:103FE0001301262F30E0280F311D2F3F310524F417
+:103FF000680F6093130108958FEF80931301089564
+:1040000080911201262F30E0280F311D2F3F3105FE
+:1040100024F4680F6093120108958FEF80931201CA
+:10402000089580911101262F30E0280F311D2F3F78
+:10403000310524F4680F6093110108958FEF809388
+:104040001101089580911001262F30E0280F311DB5
+:104050002F3F310524F4680F6093100108958FEF0E
+:10406000809310010895833011F128F4813049F0D4
+:10407000823091F00895853081F120F18630C1F1D0
+:10408000089580911501681720F4861B809315010F
+:10409000089510921501089580911401681720F475
+:1040A000861B809314010895109214010895809145
+:1040B0001301681720F4861B809313010895109252
+:1040C0001301089580911201681720F4861B8093D4
+:1040D000120108951092120108958091110168173C
+:1040E00020F4861B80931101089510921101089508
+:1040F00080911001681720F4861B809310010895A9
+:104100001092100108950F931F938D3109F46BC025
+:1041100008F03FC08E3009F47FC0C0F4873009F446
+:1041200069C068F4863009F0B1C08091CD01817F0B
+:104130008E7F8093CD0181E08093DD01A8C088301F
+:1041400009F4A2C08B3009F49FC0A0C0863109F4E5
+:104150009BC078F4803109F472C0813109F096C0B7
+:104160000E948A1490910D0181E0892780930D01AE
+:104170008BC0893109F488C08B3109F087C08091E8
+:10418000CD0181FB222720F991E0922790FB81F954
+:104190004CC0853309F470C048F4873209F46CC010
+:1041A00008F459C0893209F467C070C0833438F408
+:1041B0008A3308F04EC0883309F466C067C0833480
+:1041C00009F45AC0883409F061C00E948A140FEFC4
+:1041D00013ED20E3015010402040E1F700C0000043
+:1041E0000E94C21B51C00E9407220E94FA0E0E9428
+:1041F000F3074AC09091CD01892F8095817080FB93
+:1042000090F929F0966098609093CD0140C0997F15
+:10421000977F9093CD0138C08091CD0182FB2227FA
+:1042200020F991E0922790FB82F98093CD019923A8
+:1042300059F18091CD0181608093CD0125C080919D
+:10424000CD0183FB222720F991E0922790FB83F98F
+:10425000ECCF895301C08D5141E050E060E070E047
+:104260008A019B0104C0000F111F221F331F8A9572
+:10427000D2F7C901B80104C061E070E080E090E0CD
+:104280000E9446180E948A1481E001C080E01F91BC
+:104290000F91089580E0089580E00895CF93C82F8E
+:1042A0008091DD01813079F018F08230E9F187C02A
+:1042B000E0910E01F0910F018081813169F082322D
+:1042C00009F07FC009C0E0910E01F0910F018081DB
+:1042D000813111F0823261F48C2F0E944A218111C8
+:1042E00004C08C2F0E9483201DC081E090E01AC082
+:1042F0008C2F0E944C21811114C0C43179F048F4F4
+:10430000CB3079F0C03109F060C082E08093DD01EC
+:1043100008C0C93219F0C83321F057C01092DD012E
+:1043200054C081E0817053C0C93289F118F5C4319D
+:1043300071F1A8F4C73009F046C08AE080931501F6
+:1043400094E19093140193E09093130180931201F0
+:1043500088E08093110188E28093100134C0CE512F
+:10436000C63088F5EC2FF0E0E65DFE4F808180934B
+:10437000DC0129C0CE34E9F020F4CB3421F56AE029
+:1043800013C0C13579F0C235F1F461E00DC0809100
+:10439000DC01882319F01092DC0115C081E08093C4
+:1043A000DD0115C061E006C08091DC010E94BD1FE7
+:1043B0000AC06AE08091DC010E94332004C01092A0
+:1043C000DD0180E004C081E002C080E0ABCFCF918E
+:1043D0000895E1E8F0E080818860808380818160D9
+:1043E00080838FB7F89493E09093890090ED909339
+:1043F00088008FBF0895EFE6F0E0808182608083BF
+:104400000895EFE6F0E080818D7F80830895EFE6E8
+:10441000F0E0908182E08927808308951F920F92B7
+:104420000FB60F9211242F933F934F935F936F9387
+:104430007F938F939F93AF93BF93EF93FF9380915D
+:10444000DE019091DF0101969093DF018093DE0100
+:10445000811103C082E00E94F307E091DF01E6953D
+:10446000E695F0E0E657FB4FE4918091DE018E1374
+:1044700003C080E00E94F307FF91EF91BF91AF91DD
+:104480009F918F917F916F915F914F913F912F916C
+:104490000F900FBE0F901F90189504D06894B11123
+:1044A0008DC0089570D088F09F5790F0B92F99274C
+:1044B000B751A0F0D1F0660F771F881F991F1AF02F
+:1044C000BA95C9F712C0B13081F077D0B1E0089544
+:1044D00074C0672F782F8827B85F39F0B93FCCF3C5
+:1044E000869577956795B395D9F73EF49095809525
+:1044F000709561957F4F8F4F9F4F0895E89409C045
+:1045000097FB3EF490958095709561957F4F8F4F06
+:104510009F4F9923A9F0F92F96E9BB279395F6951C
+:10452000879577956795B795F111F8CFFAF4BB0F9A
+:1045300011F460FF1BC06F5F7F4F8F4F9F4F16C0FE
+:10454000882311F096E911C0772321F09EE8872F88
+:10455000762F05C0662371F096E8862F70E060E044
+:104560002AF09A95660F771F881FDAF7880F9695BD
+:10457000879597F9089557FD9058440F551F59F0A6
+:104580005F3F71F04795880F97FB991F61F09F3F40
+:1045900079F087950895121613061406551FF2CF69
+:1045A0004695F1DF08C0161617061806991FF1CFB9
+:1045B00086957105610508940895E894BB276627E0
+:1045C0007727CB0197F908950BD078C069D028F0F0
+:1045D0006ED018F0952309F05AC05FC01124EECFB9
+:1045E000CADFA0F3959FD1F3950F50E0551F629F4E
+:1045F000F001729FBB27F00DB11D639FAA27F00D3C
+:10460000B11DAA1F649F6627B00DA11D661F829F62
+:104610002227B00DA11D621F739FB00DA11D621F47
+:10462000839FA00D611D221F749F3327A00D611D64
+:10463000231F849F600D211D822F762F6A2F112446
+:104640009F5750408AF0E1F088234AF0EE0FFF1F99
+:10465000BB1F661F771F881F91505040A9F79E3FD0
+:10466000510570F014C0AACF5F3FECF3983EDCF325
+:10467000869577956795B795F795E7959F5FC1F70D
+:10468000FE2B880F911D9695879597F9089597F9B8
+:104690009F6780E870E060E008959FEF80EC0895E8
+:1046A00000240A9416161706180609060895002411
+:1046B0000A9412161306140605060895092E03948B
+:1046C000000C11F4882352F0BB0F40F4BF2B11F4FF
+:1046D00060FF04C06F5F7F4F8F4F9F4F089597FB20
+:1046E000072E16F4009407D077FD09D00E94892385
+:1046F00007FC05D03EF4909581959F4F08957095E5
+:1047000061957F4F0895EE0FFF1F0590F491E02D06
+:104710000994AA1BBB1B51E107C0AA1FBB1FA61708
+:10472000B70710F0A61BB70B881F991F5A95A9F75A
+:1047300080959095BC01CD010895F999FECF92BD69
+:1047400081BDF89A992780B50895A8E1B0E042E0CC
+:1047500050E00C94C523262FF999FECF92BD81BD60
+:10476000F89A019700B4021639F01FBA20BD0FB6AF
+:10477000F894FA9AF99A0FBE08950196272F0E948D
+:10478000AC230C94AB23DC01CB01FC01F999FECFE7
+:1047900006C0F2BDE1BDF89A319600B40D924150C9
+:0A47A0005040B8F70895F894FFCFD9
+:1047AA002002F507830860082C08F8070101BA01FE
+:1047BA0028080A03140A3F4D36394B04FE03C8037E
+:1047CA008F0322033B0354036D030102030405060E
+:0447DA0007080900C3
+:00000001FF
diff --git a/keyboard/ergodox_ez/readme.md b/keyboard/ergodox_ez/readme.md index 4afb42c8fd..97a10ff4d8 100644 --- a/keyboard/ergodox_ez/readme.md +++ b/keyboard/ergodox_ez/readme.md @@ -17,7 +17,7 @@ This requires a little bit of familiarity with coding. 2. Clone the repository (download it) 3. Set up a build environment as per [the build guide](/BUILD_GUIDE.md) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) +4. Copy `keyboard/ergodox_ez/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) 5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. See below for more tips on sharing your work. 6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. For example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name. 6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. diff --git a/keyboard/gh60_rev_c/Makefile b/keyboard/gh60_rev_c/Makefile new file mode 100644 index 0000000000..09843dd83d --- /dev/null +++ b/keyboard/gh60_rev_c/Makefile @@ -0,0 +1,140 @@ +#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Target file name (without extension).
+TARGET = gh60
+
+
+# Directory common source filess exist
+TOP_DIR = ../..
+TMK_DIR = ../../tmk_core
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# # project specific files
+SRC = gh60.c
+
+ifdef KEYMAP
+ SRC := keymaps/$(KEYMAP).c $(SRC)
+else
+ SRC := keymaps/default.c $(SRC)
+endif
+
+CONFIG_H = config.h
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+# CONSOLE_ENABLE = yes # Console for debug(+400)
+# COMMAND_ENABLE = yes # Commands for debug and configuration
+KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+# MIDI_ENABLE = YES # MIDI controls
+# UNICODE_ENABLE = YES # Unicode
+# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+
+# Optimize size but this may cause error "relocation truncated to fit"
+#EXTRALDFLAGS = -Wl,--relax
+
+# Search Path
+VPATH += $(TARGET_DIR)
+VPATH += $(TOP_DIR)
+VPATH += $(TMK_DIR)
+
+include $(TOP_DIR)/quantum/quantum.mk
+
diff --git a/keyboard/gh60_rev_c/README.md b/keyboard/gh60_rev_c/README.md new file mode 100644 index 0000000000..bf209be8c6 --- /dev/null +++ b/keyboard/gh60_rev_c/README.md @@ -0,0 +1,60 @@ +## gh60 Rev C keyboard firmware
+
+![gh60 Rev C PCB](gh60revc.jpg)
+
+ /* Column pin configuration
+ * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+ * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
+ */
+
+ /* Row pin configuration
+ * row: 0 1 2 3 4
+ * pin: D0 D1 D2 D3 D5
+ */
+
+ GPIO pads
+ 0 F7 WASD LEDs
+ 1 F6 ESC LED
+ 2 F5 FN LED
+ 3 F4 POKER Arrow LEDs
+
+ B2 Capslock LED
+ B0 not connected
+
+Functions to controls LED clusters
+
+ gh60_caps_led_on()
+ gh60_poker_leds_on()
+ gh60_fn_led_on()
+ gh60_esc_led_on()
+ gh60_wasd_leds_on()
+
+ gh60_caps_led_off()
+ gh60_poker_leds_off()
+ gh60_fn_led_off()
+ gh60_esc_led_off()
+ gh60_wasd_leds_off()
+
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboard/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+```
+$ make KEYMAP=[default|jack|<name>]
+```
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/gh60_rev_c/config.h b/keyboard/gh60_rev_c/config.h new file mode 100644 index 0000000000..2fd8f57439 --- /dev/null +++ b/keyboard/gh60_rev_c/config.h @@ -0,0 +1,157 @@ +/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER You
+#define PRODUCT gh60
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define COLS (int []){ F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
+#define ROWS (int []){ D0, D1, D2, D3, D5 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboard/gh60_rev_c/gh60.c b/keyboard/gh60_rev_c/gh60.c new file mode 100644 index 0000000000..8e7219bfe8 --- /dev/null +++ b/keyboard/gh60_rev_c/gh60.c @@ -0,0 +1,67 @@ +#include "gh60.h"
+#include "led.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+__attribute__ ((weak))
+void process_action_user(keyrecord_t *record) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+ // leave this function blank - it can be defined in a keymap file
+}
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+void process_action_kb(keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ process_action_user(record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ gh60_caps_led_on();
+ } else {
+ gh60_caps_led_off();
+ }
+
+ // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // gh60_esc_led_on();
+ // } else {
+ // gh60_esc_led_off();
+ // }
+
+ // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // gh60_fn_led_on();
+ // } else {
+ // gh60_fn_led_off();
+ // }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboard/gh60_rev_c/gh60.h b/keyboard/gh60_rev_c/gh60.h new file mode 100644 index 0000000000..2373ad333c --- /dev/null +++ b/keyboard/gh60_rev_c/gh60.h @@ -0,0 +1,81 @@ +#ifndef GH60_H
+#define GH60_H
+
+#include "matrix.h"
+#include "keymap_common.h"
+#include "backlight.h"
+#include <stddef.h>
+
+/* GH60 LEDs
+ * GPIO pads
+ * 0 F7 WASD LEDs
+ * 1 F6 ESC LED
+ * 2 F5 FN LED
+ * 3 F4 POKER Arrow LEDs
+ * B2 Capslock LED
+ * B0 not connected
+ */
+inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
+
+inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
+inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
+inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
+inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
+inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
+
+/* GH60 keymap definition macro
+ * K2C, K31 and K3C are extra keys for ISO
+ */
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
+) { \
+ { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
+ { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
+ { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
+ { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
+ { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
+}
+
+/* ANSI valiant. No extra keys for ISO */
+#define KEYMAP_ANSI( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+) KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
+ K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
+ K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
+)
+
+#define KEYMAP_HHKB( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
+ K40, K41, K42, K45, K4A, K4B, K4C, K4D \
+) KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
+ K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
+)
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+void process_action_user(keyrecord_t *record);
+void led_set_user(uint8_t usb_led);
+
+#endif
diff --git a/keyboard/gh60_rev_c/gh60revc.jpg b/keyboard/gh60_rev_c/gh60revc.jpg Binary files differnew file mode 100644 index 0000000000..6c88ad2442 --- /dev/null +++ b/keyboard/gh60_rev_c/gh60revc.jpg diff --git a/keyboard/gh60_rev_c/keymaps/default.c b/keyboard/gh60_rev_c/keymaps/default.c new file mode 100644 index 0000000000..3622be41b8 --- /dev/null +++ b/keyboard/gh60_rev_c/keymaps/default.c @@ -0,0 +1,69 @@ +#include "gh60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ + LSFT,FN1, Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, RSFT, \ + LCTL,LGUI,LALT, SPC, BSLS,RALT,RGUI,APP, RCTL), + /* 1: fn */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + /* 2: arrows */ + KEYMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,LEFT,DOWN,RGHT), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + [1] = ACTION_LAYER_TOGGLE(2), // toggle arrow overlay +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + +//Layer LED indicators + uint32_t layer = layer_state; + + if (layer & (1<<1)) { + gh60_wasd_leds_on(); + gh60_fn_led_on(); + } else { + gh60_wasd_leds_off(); + gh60_fn_led_off(); + } + + if (layer & (1<<2)) { + gh60_poker_leds_on(); + gh60_esc_led_on(); + } else { + gh60_poker_leds_off(); + gh60_esc_led_off(); + } + +}; diff --git a/keyboard/gh60_rev_c/pinout.txt b/keyboard/gh60_rev_c/pinout.txt new file mode 100644 index 0000000000..3787f938e7 --- /dev/null +++ b/keyboard/gh60_rev_c/pinout.txt @@ -0,0 +1,18 @@ + /* Column pin configuration
+ * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+ * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
+ */
+
+ /* Row pin configuration
+ * row: 0 1 2 3 4
+ * pin: D0 D1 D2 D3 D5
+ */
+
+ GPIO pads
+ 0 F7 WASD LEDs
+ 1 F6 ESC LED
+ 2 F5 FN LED
+ 3 F4 POKER Arrow LEDs
+
+ B2 Capslock LED
+ B0 not connected
\ No newline at end of file diff --git a/keyboard/hhkb/rn42/rn42_task.c b/keyboard/hhkb/rn42/rn42_task.c index 5107fef483..84001b3f1a 100644 --- a/keyboard/hhkb/rn42/rn42_task.c +++ b/keyboard/hhkb/rn42/rn42_task.c @@ -219,7 +219,7 @@ static void store_link(uint8_t *eeaddr) xprintf("%s(%d)\r\n", s, strlen(s)); if (strlen(s) == 12) { for (int i = 0; i < 12; i++) { - eeprom_write_byte(eeaddr+i, *(s+i)); + eeprom_update_byte(eeaddr+i, *(s+i)); dprintf("%c ", *(s+i)); } dprint("\r\n"); diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 01d9e3ce9a..c0c6201cba 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/backlight.c b/keyboard/planck/backlight.c deleted file mode 100644 index f69364b2af..0000000000 --- a/keyboard/planck/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include <avr/io.h> -#include "backlight.h" - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -}
\ No newline at end of file diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index aecddec4a1..ac4937b69e 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -6,6 +6,9 @@ #ifdef AUDIO_ENABLE #include "audio.h" #endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -16,8 +19,9 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 5 -#define _MUSIC 6 +#define _MUSIC 5 +#define _PLOVER 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -26,12 +30,14 @@ #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#define AUD_OFF M(6) +#define AUD_ON M(7) #define MUS_OFF M(8) #define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) // Fillers to make layering more clear #define _______ KC_TRNS @@ -129,33 +135,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } + + }; const uint16_t PROGMEM fn_actions[] = { @@ -171,48 +198,19 @@ float tone_startup[][2] = { {440.0*pow(2.0,(28)/12.0), 20} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; - -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } @@ -297,17 +295,75 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_off(_MUSIC); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + } return MACRO_NONE; }; +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { @@ -320,10 +376,4 @@ void process_action_user(keyrecord_t *record) { } } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} +#endif diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index 8cbec4a1f5..99fbfbd0bb 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1 +1,2 @@ -AUDIO_ENABLE = yes
\ No newline at end of file +AUDIO_ENABLE = yes +NKRO_ENABLE = yes
\ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h new file mode 100644 index 0000000000..7d64f09773 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/config.h @@ -0,0 +1,88 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c new file mode 100644 index 0000000000..27850b2154 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -0,0 +1,536 @@ +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "led.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_LOWER 3 +#define LAYER_RAISE 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_MUSIC 7 +#define LAYER_ADJUST 8 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_LOWER 3 +#define MACRO_RAISE 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_ON 14 +#define MACRO_MUSIC_OFF 15 +#define MACRO_AUDIO_ON 16 +#define MACRO_AUDIO_OFF 17 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_LOWER M(MACRO_LOWER) +#define M_RAISE M(MACRO_RAISE) +#define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) +#define TIMBR_1 M(MACRO_TIMBRE_1) +#define TIMBR_2 M(MACRO_TIMBRE_2) +#define TIMBR_3 M(MACRO_TIMBRE_3) +#define TIMBR_4 M(MACRO_TIMBRE_4) +#define TMPO_UP M(MACRO_TEMPO_U) +#define TMPO_DN M(MACRO_TEMPO_D) +#define TMPO_DF M(MACRO_TONE_DEFAULT) + + +#define MUS_ON M(MACRO_MUSIC_ON) +#define MUS_OFF M(MACRO_MUSIC_OFF) +#define AUD_OFF M(MACRO_AUDIO_OFF) +#define AUD_ON M(MACRO_AUDIO_ON) +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) + + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_QWERTY] = { /* QWERTY */ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* COLEMAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_COLEMAK] = { /* COLEMAK */ + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, + { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* DVORAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_DVORAK] = { /* DVORAK */ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* Raise + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_RAISE] = { /* RAISED */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + }, + + +/* LOWERED + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { /* LOWERED */ + { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS }, + { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + }, + +/* FUNCTION + * .-----------------------------------------------------------------------------------------------------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | + * '-----------------------------------------------------------------------------------------------------------' + */ + [LAYER_FUNCTION] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, + { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, + { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { /* MOUSE */ + { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, + }, + +#endif + + [LAYER_MUSIC] = { /* MUSIC */ + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + }, + + [LAYER_ADJUST] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, + }, + + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, + }, +*/ + +}; + +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +#endif /* AUDIO_ENABLE */ + +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + + // MACRODOWN only works in this function + switch(id) + { + + case MACRO_QWERTY: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_QWERTY); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_COLEMAK: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_COLEMAK); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_DVORAK: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_DVORAK); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_LOWER: + if (record->event.pressed) + { + layer_on(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_RAISE: + if (record->event.pressed) + { + layer_on(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); + } + break; + +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + + case MACRO_TIMBRE_1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case MACRO_TIMBRE_2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case MACRO_TIMBRE_3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case MACRO_TIMBRE_4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + case MACRO_TEMPO_U: + if (record->event.pressed) increase_tempo(10); + break; + + case MACRO_TEMPO_D: + if (record->event.pressed) decrease_tempo(10); + break; + + case MACRO_TONE_DEFAULT: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + + case MACRO_AUDIO_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case MACRO_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case MACRO_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); + #endif + } + break; + + case MACRO_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(LAYER_MUSIC); + stop_all_notes(); + #endif + } + break; + + case MACRO_INC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + + case MACRO_DEC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + +#endif /* AUDIO_ENABLE */ + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + + +void process_action_user(keyrecord_t *record) +{ + + uint8_t starting_note = 0x0C; + int offset = 7; + + if (IS_LAYER_ON(LAYER_MUSIC)) + { + if (record->event.pressed) + { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } + else + { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } +} + + +void matrix_init_user(void) +{ + set_voice(default_voice); + play_startup_tone(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + + _delay_ms(10); // gets rid of tick + + if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) + { + // If CAPS LK LED is turning on... + PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) + { + // If CAPS LK LED is turning off... + PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); + } + else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) + { + // If NUM LK LED is turning on... + PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) + { + // If NUM LED is turning off... + PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); + } + else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) + { + // If SCROLL LK LED is turning on... + PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) + { + // If SCROLL LED is turning off... + PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); + } + old_usb_led = usb_led; +} + + +void play_startup_tone() +{ + _delay_ms(10); // gets rid of tick + PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); +} + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); + _delay_ms(1000); +} + +#endif /* AUDIO_ENABLE */
\ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk new file mode 100644 index 0000000000..4b9e34c53f --- /dev/null +++ b/keyboard/planck/keymaps/pvc/makefile.mk @@ -0,0 +1,16 @@ +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +CONFIG_H = keymaps/$(KEYMAP)/config.h diff --git a/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c deleted file mode 100644 index 1de8acb1ea..0000000000 --- a/keyboard/planck/keymaps/pvc_planck.c +++ /dev/null @@ -1,179 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "print.h" -#include "action_layer.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 -#define _FN 5 - -#define XXXXXXX KC_NO -#define _______ KC_TRNS - -#define ASFT(kc) LSFT(RSFT(kc)) -#define MG_B ASFT(KC_B) -#define MG_H ASFT(KC_H) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {RESET, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DV] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Function - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) - { - case _RS: - if (record->event.pressed) { - print("RS_DN"); - layer_on(_RS); - update_tri_layer(_RS, _LW, _FN); - } else { - print("RS_UP"); - layer_off(_RS); - update_tri_layer(_RS, _LW, _FN); - phex(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN"); - layer_on(_LW); - update_tri_layer(_RS, _LW, _FN); - } else { - print("LW_UP"); - layer_off(_LW); - update_tri_layer(_RS, _LW, _FN); - } - break; - - default: - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 4b39cf1e8b..6558501504 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -32,3 +32,64 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif
\ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index edcb5fbff6..c5b59d9998 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include <stddef.h> +#include <avr/io.h> #ifdef MIDI_ENABLE #include <keymap_midi.h> #endif diff --git a/keyboard/planck/planck_pcb.hex b/keyboard/planck/planck_pcb_r3.hex index 11f523c058..11f523c058 100644 --- a/keyboard/planck/planck_pcb.hex +++ b/keyboard/planck/planck_pcb_r3.hex diff --git a/keyboard/planck/planck_with_bootloader.hex b/keyboard/planck/planck_pcb_r3_w_bootloader.hex index c61dfb743a..c61dfb743a 100755 --- a/keyboard/planck/planck_with_bootloader.hex +++ b/keyboard/planck/planck_pcb_r3_w_bootloader.hex diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex new file mode 100644 index 0000000000..bd68d9e904 --- /dev/null +++ b/keyboard/planck/planck_pcb_r4.hex @@ -0,0 +1,1645 @@ +:100000000C94DA040C941E050C941E050C941E0529
+:100010000C941E050C941E050C941E050C941E05D4
+:100020000C941E050C941E050C94B7180C94891999
+:100030000C94EC270C941E050C941E050C941E05C4
+:100040000C941E050C941E050C941E050C941E05A4
+:100050000C941E050C9454280C941E050C941E053B
+:100060000C941E050C941E050C941E050C941E0584
+:100070000C941E050C941E050C941E050C941E0574
+:100080000C94AD0E0C941E050C941E050C941E05CC
+:100090000C941E050C941E050C941E050C941E0554
+:1000A0000C941E050C941E050C941E0579058905FB
+:1000B0009B05AB05B105C005CC05D205E005E905FA
+:1000C000FA050A0610064006F619181A061B181A31
+:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC
+:1000E000281E281E821EC01E38213821D91E382104
+:1000F000DA1FDA1F9D20B4203821232107634236FE
+:10010000B79BD8A71A39685618AEBAAB558C1D3CA8
+:10011000B7CC5763BD6DEDFD753EF6177231BF006C
+:100120000000803F08000000BE922449123EABAAA6
+:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01
+:10014000AA3E00000000BF000000803F0000000049
+:1001500000084178D3BB4387D1133D190E3CC3BD82
+:100160004282AD2B3E68EC8276BED98FE1A93E4C2F
+:1001700080EFFFBE01C4FF7F3F00000000002B00A6
+:1001800014001A000800150017001C0018000C00CD
+:10019000120013002A0029000400160007000900BD
+:1001A0000A000B000D000E000F0033003400E100C8
+:1001B0001D001B000600190005001100100036008C
+:1001C0003700380028000530E000E200E30003308B
+:1001D0002C002C0004305000510052004F002B0026
+:1001E00014001A00090013000A000D000F00180087
+:1001F0001C0033002A002900040015001600170017
+:1002000007000B00110008000C0012003400E10090
+:100210001D001B000600190005000E00100036002E
+:100220003700380028000530E000E200E30003302A
+:100230002C002C0004305000510052004F002B00C5
+:1002400034003600370013001C0009000A000600C5
+:1002500015000F002A0029000400120008001800F1
+:100260000C0007000B001700110016003800E10019
+:10027000330014000D000E001B00050010001A00D2
+:1002800019001D0028000530E000E200E300033003
+:100290002C002C0004305000510052004F00350259
+:1002A0001E021F0220022102220223022402250232
+:1002B000260227022A004C003A003B003C003D0089
+:1002C0003E003F002D022E022F02300231020100BB
+:1002D000400041004200430044004500010001008D
+:1002E0000100010001000100010001000100010006
+:1002F000010001000100AB00AA00A900AE0035001A
+:100300001E001F00200021002200230024002500E1
+:10031000260027002A004C003A003B003C003D002C
+:100320003E003F002D002E002F0030003100010064
+:10033000400041004200430044004500010001002C
+:1003400001000100010001000100010001000100A5
+:10035000010001000100AB00AA00A900AE000000EE
+:10036000000000000000000000000000000000008D
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000003301A
+:1003B00000000000043000000000000000001E00EB
+:1003C0001E001E001E001E001E001E001E001E003D
+:1003D0001E001E001E00000014001A000800150078
+:1003E00017001C0018000C00120013002F00000062
+:1003F00004001600070009000A000B000D000E00A3
+:100400000F00330034000D3000000000060019001A
+:1004100000000000110010000000000000000000BB
+:1004200000000000000000000000000000000000CC
+:1004300000000000000000000000000000000000BC
+:1004400000000000000000000000000000000000AC
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000010078
+:100780000050010001000100010001000100010012
+:10079000010001004C00010001000100073006309B
+:1007A000135012500030013002300C3001000100B3
+:1007B0000B300A300930083001000100010001004F
+:1007C0000100010001000100010001000100010021
+:1007D00001000100010001000100010001002803E7
+:1007E000540068006500200050006C0061006E003D
+:1007F00063006B0020004B006500790062006F0011
+:1008000061007200640000002C034F00720074004D
+:1008100068006F006C0069006E0065006100720086
+:1008200020004B006500790062006F0061007200DB
+:100830006400730000000403090409026D00040150
+:1008400000A0FA09040000010301010009211101BF
+:100850000001223F000705810308000A0904010086
+:100860000103010200092111010001224D000705C9
+:10087000820308000A0904020001030000000921A4
+:10088000110100012236000705830308000A09044C
+:1008900003000103000000092111010001223900B9
+:1008A000070584031000011201100100000008ED8B
+:1008B000FE606001000102000105010906A10105B9
+:1008C0000719E029E7150025019508750181020542
+:1008D0000819012905950575019102950175039186
+:1008E0000105071900297715002501957875018103
+:1008F00002C005010980A101850216010026B7008A
+:100900001A01002AB700751095018100C0050C0975
+:1009100001A1018503160100269C021A01002A9CF0
+:1009200002751095018100C005010902A1010901AC
+:10093000A100050919012905150025019505750175
+:100940008102950175038101050109300931158185
+:10095000257F95027508810609381581257F950147
+:1009600075088106050C0A38021581257F950175E9
+:10097000088106C0C005010906A101050719E02983
+:10098000E71500250195087501810295017508811B
+:100990000105081901290595057501910295017553
+:1009A0000391010507190029FF150025FF9506751C
+:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B
+:1009C00004B603FE24C08091690490916A04A0914A
+:1009D0006B04B0916C048730904BA740B04BB9F4D6
+:1009E0001092690410926A0410926B0410926C04C5
+:1009F00014BE84B7877F84BF88E10FB6F8948093D4
+:100A00006000109260000FBEE0E0F8E3099513E08B
+:100A1000A0E0B1E0E2E4F4E602C005900D92A23657
+:100A2000B107D9F714E0A2E6B3E001C01D92A936E0
+:100A3000B107E1F70E94FD150C941F320C940000E1
+:100A4000279A2F988FEF9FEF9093870080938600CF
+:100A50008AE08093800089E1809381000C94562D78
+:100A6000282F81110BC080918000877F80938000A8
+:100A700010928D0010928C002F9808952F988091DD
+:100A80008000886080938000233019F48FEF9FEFFF
+:100A90000FC083E090E0821B9109880F991F2FEF10
+:100AA0003FEFA90102C0569547958A95E2F7CA0122
+:100AB00090938D0080938C000895CF93DF93EC0189
+:100AC0000E94ED28BE0180E090E0DF91CF910C9470
+:100AD00018250F931F93462F50E04E30510508F014
+:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499
+:100AF000E331882309F4D3C000E010E0980140E01E
+:100B000064E070E089E292E00E942B1281E090E0C4
+:100B10000FC0882309F4C3C000E010E0980140E052
+:100B200066E070E089EB91E00E942B1282E090E099
+:100B30000E945D05B4C0882309F4B1C000E010E054
+:100B4000980140E068E070E089EE91E00E942B128D
+:100B500084E090E0EDCF882311F083E005C083E0CE
+:100B60000CC0882349F084E00E94952540E164E0B0
+:100B700083E00E946D0A93C084E00E94B625F6CF00
+:100B8000882331F085EE0E947F1C0E94AD2D87C026
+:100B900085EE0E94471D83C0882309F480C00E940F
+:100BA000BF0D7DC0882309F47AC00E94B80D00E013
+:100BB00010E0980140E065E070E089E492E027C031
+:100BC000882309F46CC085E00E94B6250E94E00DE0
+:100BD00066C0882309F463C000E010E0980140E09B
+:100BE00068E070E089E191E00E942B1285E00E94AC
+:100BF000952555C0882309F452C00E94BE1200E01A
+:100C000010E0980140E068E070E089E191E00E9426
+:100C10002B1245C0882309F442C00E94C912EFCFAD
+:100C20008823E9F100E010E0980140E066E070E020
+:100C300089E891E00E942B1284E00E94B62583E0AF
+:100C40000E94B62580E10E94B62585E00E94B62567
+:100C50000E94E00D86E00E9495250E94DA2881110D
+:100C600002C00E94B6280E94F22890E09093680487
+:100C7000809367048068809367040E94F6280FC001
+:100C8000882369F000E010E0980140E066E070E041
+:100C900089E591E00E942B1286E00E94B62580E053
+:100CA00090E01F910F9108950F931F932FEF89EFFD
+:100CB00090E0215080409040E1F700C0000000E04B
+:100CC00010E0980140E065E070E089E492E00E9465
+:100CD0002B121F910F9108950F931F9300E010E0C6
+:100CE000980140E063E070E081E091E00E942B1207
+:100CF0002FEF82E597E0215080409040E1F700C05F
+:100D000000001F910F910895CF92DF92EF92FF9212
+:100D10000F931F93CF93DF93CDB7DEB7CC58D10994
+:100D20000FB6F894DEBF0FBECDBF2091210425FF82
+:100D3000C5C08C01FC01928180910001992309F4C6
+:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF
+:100D50000D929A95E1F7F8019081E0916203F0918C
+:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6
+:100D70003D1FE20FF31F60817181680F711D88278D
+:100D800077FD8095982F0E94F12E20E030E040E41E
+:100D900051E40E94562E6B017C01F801218184E010
+:100DA00090E0821B9109BC01882777FD8095982FE0
+:100DB0000E94F12E9B01AC01C701B6010E94EE2DED
+:100DC0009B01AC0160E070E080E090E40E94643040
+:100DD00020E030E04CE551E40E9401304FE050E06B
+:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103
+:100DF000CF911F910F91FF90EF90DF90CF900C94C7
+:100E0000CB1196E4EEE8F2E0DE01119601900D922E
+:100E10009A95E1F7F8019081E0916203F091630304
+:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9
+:100E3000E20FF31F60817181680F711D882777FDB4
+:100E40008095982F0E94F12E20E030E040E451E49C
+:100E50000E94562E6B017C01F801218184E090E014
+:100E6000821B9109BC01882777FD8095982F0E94ED
+:100E7000F12E9B01AC01C701B6010E94EE2D9B0132
+:100E8000AC0160E070E080E090E40E94643020E01B
+:100E900030E04CE551E40E940130C457DF4F0FB6FB
+:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0
+:100EB000FF90EF90DF90CF900C94130EC457DF4F4C
+:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B
+:100ED0000F91FF90EF90DF90CF90089508950E94BA
+:100EE00020056E9A769A0C9454060C946E070C9416
+:100EF00084060895880F991FFC01E250F040859107
+:100F000094910895880F991FFC01E258FE4F859136
+:100F1000949108950F931F93CF93DF93EC01811564
+:100F200020E49207A0F5C11580E3D80708F0E1C0DE
+:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C
+:100F4000D10578F4C53AD10508F074C0C130D10597
+:100F500009F46DC008F4DEC1C430D10508F0DDC16C
+:100F6000D9C1CB3BD10508F470C0D4C1C11590E202
+:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA
+:100F8000C03FD10508F4C6C18E01106506C2C1304C
+:100F900080E5D80709F4BDC068F5C13120E4D20767
+:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0
+:100FB000CF70DD278E01146DF0C1C33120E4D2075C
+:100FC00009F4A4C008F49FC0C115D04509F0A2C11E
+:100FD0000E945C210E94E00D0E946C069FEF24E3BA
+:100FE0008CE0915020408040E1F700C000000E945A
+:100FF0007928D3C1C11520E6D20730F4C11581E5A7
+:10100000D80708F48CC02DC1C11590E7D90708F4A2
+:1010100081C1C11520E8D20708F478C1C11580E963
+:10102000D80708F077C1DF708E01106AB6C101E001
+:1010300010E0B3C1C53AD10509F471C1C63AD10572
+:1010400009F070C102E810E4A8C1C83AD10509F45A
+:101050006CC1C93AD10509F46BC1CA3AD10509F48A
+:101060006AC1CB3AD10509F469C1CC3AD10509F47A
+:1010700068C1CD3AD10509F467C1C03BD10509F477
+:1010800066C1CE3AD10509F465C1CF3AD10509F45C
+:1010900064C1C13BD10509F463C1C23BD10509F468
+:1010A00062C1C33BD10509F461C1C43BD10509F458
+:1010B00060C1C53BD10509F45FC1C63BD10509F448
+:1010C0005EC1C73BD10509F45DC1C83BD10509F438
+:1010D0005CC1C93BD10509F45BC1CA3BD10509F428
+:1010E0005AC100E014E459C1CE019F700E948207EA
+:1010F00055C1DD278E01106C50C100E011ED4DC1CE
+:1011000000E010ED4AC100E012ED47C100E013ED30
+:1011100044C180913D04816080933D043EC10E94A2
+:10112000DA28811102C00E94B6280E94F22890E0BD
+:101130009093680480936704C23090E5D90721F446
+:1011400080916704816086C0C43020E5D20721F415
+:101150008091670482607EC0C63080E5D80721F4A4
+:1011600080916704846076C0C83090E5D90719F48F
+:101170008091670427C0CA3020E5D20721F480910E
+:101180006704806167C0CC3080E5D80721F4809186
+:10119000670480625FC0CE3090E5D90721F480916A
+:1011A0006704806457C0C03120E5D20721F48091E4
+:1011B000670480684FC0C23180E5D80729F4809168
+:1011C00067048460886046C0C33090E5D90721F485
+:1011D000809167048E7F3EC0C53020E5D20721F4A0
+:1011E000809167048D7F36C0C73080E5D80721F431
+:1011F000809167048B7F2EC0C93090E5D90719F420
+:101200008091670426C0CB3020E5D20721F480917D
+:1012100067048F7E1FC0CD3080E5D80721F4809110
+:1012200067048F7D17C0CF3090E5D90721F48091F6
+:1012300067048F7B0FC0C13120E5D20721F4809174
+:1012400067048F7707C0C331D04531F480916704BC
+:101250008B7F877F80936704809167040E94F628C4
+:101260009CC08D2F99278F70992781309105D9F4D3
+:101270009E012370332702C0880F991F2A95E2F739
+:101280009C688E0144E0000F111F4A95E1F700278A
+:101290001370802B912B53E0CC0FDD1F5A95E1F793
+:1012A000C076DD272FC08230910531F4DC2FCC27AA
+:1012B0008E01016F106A71C08330910569F4CE010F
+:1012C0008370992701E010E002C0000F111F8A957A
+:1012D000E2F7C8019C680FC0049709F05EC0CE0118
+:1012E0008370992701E010E002C0000F111F8A955A
+:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9
+:10130000C07ED7708C010C2B1D2B47C0DF708E0167
+:10131000106243C000E010E040C08E013EC001E812
+:1013200010E43BC003E810E438C002EE14E435C01A
+:1013300009EE14E432C00AEE14E42FC005EB14E405
+:101340002CC006EB14E429C007EB14E426C00CEC17
+:1013500014E423C00DEC14E420C003E815E41DC020
+:101360000AE815E41AC002E915E417C004E915E417
+:1013700014C001E216E411C003E216E40EC004E258
+:1013800016E40BC005E216E408C006E216E405C048
+:1013900007E216E402C00AE216E4C801DF91CF9129
+:1013A0001F910F9108959CE0799FF001112490E323
+:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7
+:1013C000E258FE4F85919491803E9105E0F4803C77
+:1013D000910558F58133910509F46FC048F48932BD
+:1013E000910509F463C08A32910509F46DC072C099
+:1013F00089339105E9F082389105D1F08533910563
+:1014000009F44DC067C0833E910581F138F4803EF8
+:101410009105B9F0823E9105D9F05CC0863E9105F8
+:1014200061F1873E9105A1F155C00E947A070895A8
+:101430002091670420FD02C021FF4CC080EE90E0A7
+:1014400049C08091670480FFF9CF89E390E042C0F2
+:101450008091670482FF0EC08091670484FF03C0FF
+:1014600080E090E037C083EE90E034C08091670464
+:1014700082FFF2CF82EE90E02DC08091670483FF5F
+:101480000BC08091670484FDEBCF87EE90E022C013
+:101490008091670483FFF5CF86EE90E01BC08091BA
+:1014A000670485FF07C089E290E014C0809167045B
+:1014B00085FFF9CF85E390E00DC08091670486FF3A
+:1014C00007C08AE290E006C08091670486FFF9CFEA
+:1014D00081E390E00E948A070895CF92DF92EF9215
+:1014E000FF920F931F9301E010E020E030E06801CD
+:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0
+:1015000004C0000F111F221F331F6A95D2F70C2948
+:101510001D292E293F29C0902104D0902204E0905B
+:101520002304F0902404C022D122E222F322842F4B
+:10153000C016D106E206F30641F41F910F91FF9009
+:10154000EF90DF90CF900C9495251F910F91FF9015
+:10155000EF90DF90CF900C94B62508950C94AD0ACF
+:101560005F926F927F928F929F92AF92BF92CF9233
+:10157000DF92EF92FF920F931F93CF93DF93CDB73C
+:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1
+:1015900001966C014E0199E0890E911C20E030E02B
+:1015A00040E050E060E070E000E010E0E12CF12C61
+:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49
+:1015C000F2E0A62DB52D872D01900D928A95E1F7B9
+:1015D000F601819191916F01FC01E07FFF27E032DC
+:1015E000F10559F48F709927F50102C0EE0FFF1F26
+:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465
+:101600008F709927F50102C0EE0FFF1F8A95E2F750
+:101610000E2B1F2B29C0E034F10559F48F70992748
+:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC
+:101630001BC0E035F10559F48F709927F50102C000
+:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1
+:10165000F10551F48F709927F50102C0EE0FFF1FBD
+:101660008A95E2F72E2B3F2BC814D90409F0A7CF97
+:1016700084B19E2D9095892384B985B1E82AE5B877
+:1016800087B1902F9095892387B988B1082B08B925
+:101690008AB1962F909589238AB98BB1682B6BB943
+:1016A0008DB1942F909589238DB98EB1482B4EB969
+:1016B00080B3922F9095892380BB81B3282B21BBC7
+:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145
+:1016D0001F910F91FF90EF90DF90CF90BF90AF9050
+:1016E0009F908F907F906F905F9008955F926F9220
+:1016F0007F928F929F92AF92BF92CF92DF92EF92A2
+:10170000FF920F931F93CF93DF93CDB7DEB7689708
+:101710000FB6F894DEBF0FBECDBF85B7806885BF1A
+:1017200085B7806885BF0E94B00ACE0101966C0122
+:101730004E0199E1890E911C20E030E040E050E03C
+:1017400060E070E000E010E0E12CF12C6C2C5D2CEE
+:1017500088E1782EAA24A394B12CECEDF2E0A62D1A
+:10176000B52D872D01900D928A95E1F7F6018191B3
+:1017700091916F01FC01E07FFF27E032F10559F400
+:101780008F709927F50102C0EE0FFF1F8A95E2F7CF
+:10179000EE2AFF2A37C0E033F10559F48F709927FC
+:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB
+:1017B00029C0E034F10559F48F709927F50102C072
+:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3
+:1017D000F10559F48F709927F50102C0EE0FFF1F34
+:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0
+:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F
+:101800002E2B3F2BC814D90409F0A7CF84B19E2DED
+:101810009095892384B985B1E82AE5B887B1902FDE
+:101820009095892387B988B1082B08B98AB1962F7A
+:10183000909589238AB98BB1682B6BB98DB1942FA0
+:10184000909589238DB98EB1482B4EB980B3922FD4
+:101850009095892380BB81B3282B21BB10926D0307
+:1018600010926C03109265031092640310926F0340
+:1018700010926E0310926703109266031092710328
+:101880001092700310926903109268031092730310
+:101890001092720310926B0310926A0368960FB64F
+:1018A000F894DEBF0FBECDBFDF91CF911F910F9196
+:1018B000FF90EF90DF90CF90BF90AF909F908F9070
+:1018C0007F906F905F900C946F077F928F929F92A2
+:1018D000AF92BF92CF92DF92EF92FF920F931F933E
+:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6
+:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7
+:1019000083E0F82E98E0792EBC2CAD2C01E010E09D
+:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6
+:10192000872D01900D928A95E1F7F60181919191B1
+:101930006F019C01207F33272032310591F424B1BF
+:101940008F709927A80102C0440F551F8A95E2F7AE
+:10195000CA01922F982B94B995B18095892385B9A6
+:1019600053C02033310591F427B18F709927F801C6
+:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E
+:1019800097B998B18095892388B93EC02034310534
+:1019900091F42AB18F709927A80102C0440F551FF6
+:1019A0008A95E2F7CA01922F982B9AB99BB180953C
+:1019B00089238BB929C02035310591F42DB18F7061
+:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9
+:1019D000922F982B9DB99EB1809589238EB914C002
+:1019E0002036310589F420B38F709927A80102C0F1
+:1019F000440F551F8A95E2F7CA01922F982B90BB8E
+:101A000091B38095892381BB50EA5A95F1F7BE01C5
+:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F
+:101A2000DE011196882D01900D928A95E1F7FB0158
+:101A300081919191BF01FC01E07FFF27E032F10528
+:101A400011F4E3B113C0E033F10511F4E6B10EC0B7
+:101A5000E034F10511F4E9B109C0E035F10511F404
+:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED
+:101A7000992702C0F595E7958A95E2F7E0FD08C041
+:101A8000C801042E02C0880F991F0A94E2F702C011
+:101A900080E090E0282B392B4F5F5F4F4C30510591
+:101AA00009F0BCCFF701808191818217930721F063
+:101AB00031832083909271020E94B00AF2E0EF0E0F
+:101AC000F11C4CE6E41643E0F40609F025CF8091C2
+:101AD0007102882361F1815080937102882339F06B
+:101AE0008FE99FE00197F1F700C0000020C08091CE
+:101AF00064039091650390936D0380936C038091D0
+:101B000066039091670390936F0380936E038091B7
+:101B1000680390916903909371038093700380919F
+:101B20006A0390916B0390937303809372030E94F6
+:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B
+:101B4000DF91CF911F910F91FF90EF90DF90CF9099
+:101B5000BF90AF909F908F907F900895E82FF0E016
+:101B6000EE0FFF1FE459FC4F808191810895089585
+:101B7000809152048160809352040C9408298091D2
+:101B800052048E7F809352040C9408290E94DA2814
+:101B9000811102C00E94B6280E9404298093520439
+:101BA0003E9A809171008D7F8093710082E08093D6
+:101BB00090008AE18093910081E0809376030895FC
+:101BC00080917603811102C00E94C60D1092C60357
+:101BD0001092C503809171008D7F80937100809178
+:101BE00090008F7780939000109288031092870363
+:101BF0001092BF031092C0031092C1031092C2034F
+:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E
+:101C100011921192119211921D921D9283E0ED3B4F
+:101C2000F807B1F70895CF92DF92EF92FF920F93EA
+:101C30001F93CF93DF9320918703222309F484C05D
+:101C40006B017C0180917603811102C00E94C60D58
+:101C50000DEB13E0C7E0D0E0A7019601F8019291E7
+:101C60008291729162918F010E94522E811131C036
+:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219
+:101C8000118212821382DE01AA0FBB1FA357BC4F21
+:101C900011961C921E92C730D105E9F0219644811D
+:101CA0005581668177814083518362837383148277
+:101CB00015821682178212968D919C911397119618
+:101CC0009C938E9313961C921E92129734961296A2
+:101CD000E2CF219708F68091C5039091C603019742
+:101CE00097FD05C09093C6038093C50304C010926E
+:101CF000C6031092C5038091C5039091C60320913D
+:101D0000C3033091C4032817390724F01092C40389
+:101D10001092C303892BC1F4809171008D7F809351
+:101D20007100809190008F77809390001092BF0394
+:101D30001092C0031092C1031092C2031092BE030E
+:101D40001092BD0310928703DF91CF911F910F91E5
+:101D5000FF90EF90DF90CF9008951F920F920FB6F3
+:101D60000F9211244F925F926F927F928F929F9267
+:101D7000AF92BF92CF92DF92EF92FF922F933F9359
+:101D80004F935F936F937F938F939F93AF93BF9383
+:101D9000CF93DF93EF93FF9380918703882309F418
+:101DA0009BC1C091C503D091C6031C161D060CF043
+:101DB00093C14090770350907803609079037090BE
+:101DC0007A0320E030E0A901C301B2010E94FD2F97
+:101DD00018160CF065C0C130D10509F452C08091CD
+:101DE000C3039091C403BE010E94CF317C01909344
+:101DF000C4038093C3038090890390908A03A090CA
+:101E00008B03B0908C0320E030E040E85FE3C50135
+:101E1000B4010E94EE2D6093890370938A0380932E
+:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44
+:101E3000E356FC4FA30192016081718182819381FD
+:101E40000E94562E20E030E040E05EE30E94013028
+:101E50009B01AC01C501B4010E94FD2F18168CF442
+:101E6000C7010196BE010E94CF319093C4038093B5
+:101E7000C3031092890310928A0310928B0310926D
+:101E80008C03E091C303F091C403EE0FFF1FEE0F2C
+:101E9000FF1FE356FC4F6081718182819381D0C026
+:101EA000C090BF03D090C003E090C103F090C20384
+:101EB00020E030E0A901C701B6010E94522E21970F
+:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3
+:101ED000E356FC4F80809180A280B380A5019401DD
+:101EE000C701B6010E94522E87FF31C0A50194019F
+:101EF00060E070E08CED93EC0E94562E20E030E024
+:101F000040E451E40E94562E20E030E040E05FE3E0
+:101F10000E9401309B01AC0160E070E080E090E441
+:101F20000E9464309B01AC01C501B4010E940130E4
+:101F30009B01AC01C701B6010E94522E87FF07C06A
+:101F4000A701960160E070E08CED93E439C0A50133
+:101F50009401C701B6010E94FD2F18160CF055C060
+:101F6000A501940160E070E08CED93E40E94562E90
+:101F700020E030E040E451E40E94562E20E030E0C2
+:101F800040E05FE30E9401309B01AC0160E070E043
+:101F900080E090E40E9464309B01AC01C501B40173
+:101FA0000E9401309B01AC01C701B6010E94FD2FC8
+:101FB00018165CF5A701960160E070E08CED93ECDB
+:101FC0000E94562E20E030E040E451E40E94562E5C
+:101FD00020E030E040E05FE30E9401309B01AC0173
+:101FE00060E070E080E090E40E9464309B01AC010E
+:101FF000C701B6010E9401306093BF037093C00314
+:102000008093C1039093C20313C0FE01EE0FFF1F24
+:10201000EE0FFF1FE356FC4F80819181A281B381B7
+:102020008093BF039093C003A093C103B093C203F6
+:102030006091BF037091C0038091C1039091C2036E
+:1020400020917403309175032F3F4FEF340731F027
+:102050002F5F3F4F30937503209374030E94D41277
+:102060006B017C0120E034E244EF51E40E94522EE7
+:1020700087FF08C086EFC82E88E2D82E84EFE82EAE
+:1020800081E4F82E20E030E040E051E4C701B601E1
+:102090000E9401309B01AC0160E074E284E79BE4A4
+:1020A0000E94562E6B017C010E94BE2E70939700F9
+:1020B00060939600209172023091730240917402F5
+:1020C00050917502C701B6010E9401300E94BE2ED8
+:1020D000709399006093980080918803882309F495
+:1020E00033C1C0908303D0908403E0908503F090C7
+:1020F000860320E030E0A901C701B6010E94FD2F50
+:102100001816D4F580917403909175038F3F2FEFCB
+:10211000920729F001969093750380937403C70189
+:10212000B6010E94D41220E030E040E051E40E9469
+:1021300001309B01AC0160E074E284E79BE40E9403
+:10214000562E6B017C010E94BE2E70939700609307
+:102150009600209172023091730240917402509166
+:102160007502C701B6010E9401300E94BE2E709315
+:1021700099006093980008C0109297001092960002
+:10218000109299001092980060917D0370917E03E7
+:102190006F5F7F4F70937E0360937D032091960065
+:1021A0003091970080E090E0232BF1F0C0919600F1
+:1021B000D09197000E94EF2E6B017C01BE0180E060
+:1021C00090E00E94EF2E9B01AC0160917F03709123
+:1021D000800380918103909182030E94562E20E01B
+:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8
+:1021F00020E030EE4FEF54E460917F037091800354
+:1022000080918103909182030E9401309B01AC0177
+:10221000C701B6010E94FD2F87FD96C080917B0308
+:102220008F5F80937B0390E020914E0430914F04A8
+:1022300082179307A0F080915904882319F0109217
+:102240007B030DC0809171008D7F80937100809120
+:1022500090008F7780939000109288037DC08091CA
+:102260007C03C0917B03811128C0C0905304D0909F
+:102270005404E0905504F090560420E030E0A901A9
+:10228000C701B6010E94FD2F1816BCF481E08093AF
+:102290007C031092830310928403109285031092A2
+:1022A0008603C0927F03D0928003E0928103F09274
+:1022B0008203C150C0937B0343C010927C031092F1
+:1022C000750310927403E0915004F091510448E0BA
+:1022D000C49FE00DF11D112480819181A281B38101
+:1022E0008093830390938403A0938503B093860324
+:1022F00020E030E040E85EE364817581868197816B
+:102300000E9401306B017C0120E030E048EC52E497
+:1023100060917602709177028091780290917902B3
+:102320000E94562E9B01AC01C701B6010E940130EC
+:1023300060937F0370938003809381039093820363
+:1023400010927E0310927D038091520480FD04C0A0
+:102350001092880310928703FF91EF91DF91CF9144
+:10236000BF91AF919F918F917F916F915F914F91AD
+:102370003F912F91FF90EF90DF90CF90BF90AF9063
+:102380009F908F907F906F905F904F900F900FBEB7
+:102390000F901F901895CF92DF92EF92FF92CF93FC
+:1023A000DF936B017C01EA0180917603811102C009
+:1023B0000E94C60D8091520480FF46C08091C503E3
+:1023C0009091C60308970CF03FC0809171008D7FFB
+:1023D000809371008091880381110E94E00D81E05B
+:1023E00080938703109275031092740320E030E00D
+:1023F000A901C701B6010E94FD2F1816DCF48091D7
+:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7
+:10241000E356FC4FC082D182E282F382FC01EE0FD0
+:10242000FF1FE357FC4FD183C08301969093C603EF
+:102430008093C503809171008260809371008091C8
+:102440009000806880939000DF91CF91FF90EF9093
+:10245000DF90CF9008958F929F92AF92BF92CF92CC
+:10246000DF92EF92FF920F931F93CF93DF93EC01D4
+:102470007B01D42E4801590180917603811102C05D
+:102480000E94C60D8091520480FF6BC08091710044
+:102490008D7F809371008091870381110E94E00DF0
+:1024A00081E080938803D0935104C0935004F0924C
+:1024B0004F04E0924E04D0925904809253049092BB
+:1024C0005404A0925504B0925604109289031092BD
+:1024D0008A0310928B0310928C0310927B038881E5
+:1024E0009981AA81BB818093830390938403A093F5
+:1024F0008503B093860320E030E040E85EE36C8122
+:102500007D818E819F810E9401306B017C0120E0E2
+:1025100030E048EC52E4609176027091770280914D
+:102520007802909179020E94562E9B01AC01C7015E
+:10253000B6010E94013060937F0370938003809303
+:1025400081039093820310927E0310927D03809109
+:102550007100826080937100809190008068809308
+:102560009000DF91CF911F910F91FF90EF90DF903E
+:10257000CF90BF90AF909F908F9008958091C703A8
+:1025800090E0019666E070E00E94CF318093C7032F
+:1025900008958091C70390E0019766E070E00E9483
+:1025A000CF318093C70308958F929F92AF92BF92CD
+:1025B000CF92DF92EF92FF920F931F93CF93DF930F
+:1025C0006B017C01C0917403D0917503BE0180E062
+:1025D00090E00E94EF2E4B015C01A701960160E0A4
+:1025E00070E08CE594E40E94562E9B01AC01C5017D
+:1025F000B4010E9401300E94C32E2091C7032330F2
+:1026000009F473C028F4222351F02130E9F02CC1E1
+:10261000243009F4A0C0253009F4E0C025C180E0D1
+:1026200090E0A0E0BFE38093720290937302A093C6
+:102630007402B0937502109277031092780310928F
+:10264000790310927A0310C11092770310927803E5
+:102650001092790310927A036431710540F46A3064
+:10266000710560F520E030E040E85EE32BC0693C96
+:10267000710508F0AAC080E090E00E94EF2E20E0F3
+:1026800030E040EA51E40E94ED2D20E030E044E3E8
+:1026900053E40E94562E9B01AC010E94013020E0C1
+:1026A00030E040E05EE30E9401309B01AC0160E05D
+:1026B00070E080E09EE30E94ED2D44C020E030E019
+:1026C00040E05FE3C701B6010E9401306B017C016D
+:1026D00080E090E0A0E0BEE38093720290937302EA
+:1026E000A0937402B0937502BFC01092770310924A
+:1026F00078031092790310927A034AE0469F900182
+:10270000479F300D1124C90168EB7BE00E94BB316B
+:10271000BC016C5D754077FF03C0719561957109CF
+:10272000882777FD8095982F0E94F12E2EE333ECB9
+:102730004EE259E30E94013020E030E040EC5EE3DD
+:102740000E94EE2D60937202709373028093740264
+:102750009093750289C010927703109278031092BB
+:10276000790310927A03CE0183709927892BE1F0C7
+:10277000BE016170772780E090E00E94EF2E20E09C
+:1027800030E040E05EE30E94013020E030E040E4D1
+:102790005FE30E94EE2D6093720270937302809348
+:1027A0007402909375020CC080E090E0A0E0BFE35B
+:1027B0008093720290937302A0937402B093750297
+:1027C000C770DD27CD2B09F04FC010927202109216
+:1027D0007302109274021092750246C01092770331
+:1027E000109278031092790310927A0300E010E0BF
+:1027F00020E03FE30093720210937302209374026F
+:10280000309375026739710578F180E090E00E949D
+:10281000EF2E20E030E047E153E40E94ED2D20E070
+:1028200030E04AE754E40E94562E20E030E048E4CD
+:1028300052E40E94013020E030E040EA51E40E947E
+:10284000332F0E94BE2E660F771F660F771FFB0186
+:10285000EC50FD4F2081318142815381C701B60187
+:102860000E9401306B017C01C701B601DF91CF915D
+:102870001F910F91FF90EF90DF90CF90BF90AF909E
+:102880009F908F9008958091D8030895CF93DF9300
+:1028900000D01F92CDB7DEB79C0180915E048430DA
+:1028A00019F593E099833B832A839093E9008FEF96
+:1028B0009091E800815095FD06C095ED9A95F1F74D
+:1028C00000008111F5CF8091E80085FF0DC040E048
+:1028D00050E063E070E0CE0101960E94A71680915F
+:1028E000E8008E778093E8000F900F900F90DF91B3
+:1028F000CF910895CF93DF9300D01F92CDB7DEB76D
+:1029000020915E04243021F522E029839B838A8371
+:1029100083E08093E9008FEF9091E800815095FD6E
+:1029200006C095ED9A95F1F700008111F5CF8091E1
+:10293000E80085FF0DC040E050E063E070E0CE01AC
+:1029400001960E94A7168091E8008E778093E80098
+:102950000F900F900F90DF91CF91089520915E041A
+:102960002430F1F422E02093E9002FEF3091E800C9
+:10297000215035FD06C035ED3A95F1F700002111E3
+:10298000F5CF2091E80025FF0BC040E050E065E066
+:1029900070E00E94A7168091E8008E778093E8008F
+:1029A0000895CF93DF93EC0190915E04943009F089
+:1029B00046C0809184028823D9F0809185028823C3
+:1029C000B9F09093E9008FEF9091E800815095FD68
+:1029D00006C095E19A95F1F700008111F5CF80913D
+:1029E000E80085FF2CC040E050E060E170E017C0D7
+:1029F00081E08093E9008FEF9091E800815095FD90
+:102A000006C095ED9A95F1F700008111F5CF809100
+:102A1000E80085FF14C040E050E068E070E0CE01BF
+:102A20000E94A7168091E8008E778093E80080E1ED
+:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9
+:102A4000CF91089580915D04811109C00E943C18C6
+:102A50000E9499188091E20084608093E2000895BA
+:102A600010925D040895089508950C94E12742E0C2
+:102A700061EC81E00E94B61742E061EC82E00E94C6
+:102A8000B61742E061EC83E00E94B61742E161ECC8
+:102A900084E00C94B61780916004833009F455C02B
+:102AA00030F4813071F0823009F48EC008958A309C
+:102AB00009F47AC08B3009F460C0893009F09CC0F9
+:102AC00020C080915F04813A09F096C08091E800AF
+:102AD000877F8093E8008091630490916404892B40
+:102AE00021F460E188EC93E003C060E080E090E0D6
+:102AF00070E00E94F2168091E8008B778093E800E6
+:102B0000089580915F04813209F076C0809163045A
+:102B100090916404009719F0039709F06DC08091BB
+:102B2000E800877F8093E8008091E80082FD05C07F
+:102B300080915E048111F8CF5FC08091F100809395
+:102B4000D8038091E8008B7753C080915F04813A6D
+:102B500009F052C08091630490916404892B09F0BC
+:102B60004BC08091E800877F8093E8008091E80067
+:102B700080FFFCCF8091840236C080915F04813257
+:102B8000D9F58091630490916404892BA9F5809113
+:102B9000E800877F8093E8000E94EB178091610432
+:102BA000809384020C945C2180915F04813221F532
+:102BB0008091E800877F8093E8000E94EB17809166
+:102BC00062048093D903089580915F04813AA1F44F
+:102BD0008091E800877F8093E8008091E80080FF83
+:102BE000FCCF8091D9038093F1008091E8008E772B
+:102BF0008093E8000C94EB17089584B7877F84BF17
+:102C000088E10FB6F89480936000109260000FBEC8
+:102C100090E080E80FB6F894809361009093610093
+:102C20000FBE0E948E1B0E943C180E949918809132
+:102C3000E20084608093E20078940E941F1B0E944F
+:102C4000901B8AE792E00E943A1B80915E048530D7
+:102C500069F40E949B2780915C048823B1F30E9451
+:102C6000C927882391F30E949116EFCF0E94981BE9
+:102C7000ECCF292F332723303105C9F064F42130FC
+:102C8000310581F02230310509F043C08DE690E036
+:102C90002AE338E042C021323105F1F02232310519
+:102CA00041F137C082E190E027EA38E036C0992749
+:102CB0008130910541F08230910541F0892B49F531
+:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A
+:102CD000849190E09F0121C06430D8F4E62FF0E0A9
+:102CE000EE0FFF1FE05BFC4F2081318189E090E017
+:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E
+:102D0000FC4F20813181FB01EC5BFC4F808190E026
+:102D100004C080E090E020E030E0FA0131832083BD
+:102D2000089580E189BD82E189BD09B400FEFDCF2F
+:102D30008091D8008F7D8093D8008091E0008260E0
+:102D40008093E0008091E00081FDFCCF0895CF9258
+:102D5000DF92EF92FF920F931F93CF93DF93EC01DB
+:102D60008B016A010E940A18811133C0C114D10479
+:102D700039F0F60180819181081B190BC80FD91F0A
+:102D8000E12CF12C0115110519F18091E80085FD68
+:102D900016C08091E8008E778093E800C114D104BA
+:102DA00049F0F60180819181E80EF91EF182E082FE
+:102DB00085E00FC00E940A18882321F30AC0899178
+:102DC0008093F10001501109FFEFEF1AFF0ADACFEB
+:102DD00080E0DF91CF911F910F91FF90EF90DF90F6
+:102DE000CF90089520916504309166042617370727
+:102DF00048F06115710539F42091E8002E77209391
+:102E0000E80001C0B90140E061157105A9F1209108
+:102E10005E04222309F443C0253009F442C0209106
+:102E2000E80023FD40C02091E80022FD32C020913F
+:102E3000E80020FFE9CF4091F3002091F20030E05C
+:102E4000342BFC01CF016115710559F02830310593
+:102E500040F481918093F100615071092F5F3F4FE1
+:102E6000F1CF41E02830310509F040E02091E80041
+:102E70002E772093E800C8CF4111C9CF0AC08091B6
+:102E80005E04882361F0853061F08091E80083FD65
+:102E90000AC08091E80082FFF2CF80E0089582E0CE
+:102EA000089583E0089581E00895209165043091AC
+:102EB00066042617370748F06115710539F420912B
+:102EC000E8002E772093E80001C0B901FC0120E062
+:102ED0006115710591F180915E04882309F440C069
+:102EE000853009F43FC08091E80083FD3DC08091AA
+:102EF000E80082FD2FC08091E80080FFE9CF20919B
+:102F0000F3008091F20090E0922B6115710559F069
+:102F10008830910540F424912093F100319661505E
+:102F200071090196F2CF21E0089709F020E0809125
+:102F3000E8008E778093E800CBCF2111CCCF0AC078
+:102F400080915E04882361F0853061F08091E80013
+:102F500083FD0AC08091E80082FFF2CF80E00895EF
+:102F600082E0089583E0089581E00895982F9730D6
+:102F700058F59093E900981739F07091EC00209182
+:102F8000ED005091F00003C0242F762F50E021FF78
+:102F900019C03091EB003E7F3093EB003091ED0093
+:102FA0003D7F3093ED003091EB0031603093EB00CA
+:102FB0007093EC002093ED005093F0002091EE0010
+:102FC00027FF07C09F5FD3CF8F708093E90081E018
+:102FD000089580E0089580915F0487FF11C080917B
+:102FE000E80082FD05C080915E048111F8CF11C018
+:102FF0008091E8008B770BC080915E04882349F0B4
+:103000008091E80080FFF8CF8091E8008E77809370
+:10301000E80008952091E4003091E50095E64091A4
+:10302000EC00842F817040FF22C08091E80080FD79
+:103030001CC080915E04882391F0853091F08091CE
+:10304000EB0085FD10C04091E4005091E50042176F
+:10305000530729F39A01915011F784E0089582E013
+:10306000089583E0089581E0089580E008954091F7
+:10307000E80042FFDECF08950E94AA180E94B2180D
+:10308000E0EEF0E0808181608083E8EDF0E0808117
+:103090008F77808319BCA7EDB0E08C918E7F8C93E5
+:1030A00080818F7E808310925D0408950F931F931B
+:1030B000CF93DF930E94AA180E94B218C8EDD0E007
+:1030C00088818F77888388818068888388818F7DD5
+:1030D000888319BC10925E0410925A0410925C040A
+:1030E00010925B0400EE10E0F80180818B7F8083FA
+:1030F00088818160888342E060E080E00E94B617AA
+:10310000E1EEF0E080818E7F8083E2EEF0E080816E
+:1031100081608083808188608083F80180818E7FD8
+:103120008083888180618883DF91CF911F910F9187
+:103130000895E8EDF0E080818F7E8083E7EDF0E098
+:1031400080818160808384E082BF81E080935D0420
+:103150000C945618E8EDF0E080818E7F8083109209
+:10316000E20008951092DA001092E10008951F9293
+:103170000F920FB60F9211242F933F934F935F93AB
+:103180006F937F938F939F93AF93BF93EF93FF932F
+:103190008091E10082FF0BC08091E20082FF07C0B6
+:1031A0008091E1008B7F8093E1000E941E1B809143
+:1031B000DA0080FF1FC08091D80080FF1BC0809183
+:1031C000DA008E7F8093DA008091D90080FF0DC0F5
+:1031D00080E189BD82E189BD09B400FEFDCF81E0B7
+:1031E00080935E040E94221505C019BC10925E04F3
+:1031F0000E9430158091E10080FF19C08091E200AB
+:1032000080FF15C08091E2008E7F8093E200809164
+:10321000E20080618093E2008091D8008062809318
+:10322000D80019BC85E080935E040E94341580911B
+:10323000E10084FF30C08091E20084FF2CC080E177
+:1032400089BD82E189BD09B400FEFDCF8091D8001F
+:103250008F7D8093D8008091E1008F7E8093E10084
+:103260008091E2008F7E8093E2008091E200816095
+:103270008093E20080915A04882311F084E007C013
+:103280008091E30087FD02C081E001C083E080936C
+:103290005E040E9435158091E10083FF29C0809172
+:1032A000E20083FF25C08091E100877F8093E100E9
+:1032B00082E080935E0410925A048091E1008E7F38
+:1032C0008093E1008091E2008E7F8093E200809104
+:1032D000E20080618093E20042E060E080E00E94D2
+:1032E000B6178091F00088608093F0000E9433153B
+:1032F000FF91EF91BF91AF919F918F917F916F91CE
+:103300005F914F913F912F910F900FBE0F901F90A3
+:1033100018951F920F920FB60F9211242F933F937F
+:103320004F935F936F937F938F939F93AF93BF93CD
+:10333000CF93DF93EF93FF93C091E900CF7080911B
+:10334000EC00D82FD17080FDD0E81092E900809178
+:10335000F000877F8093F00078940E94CD1910923E
+:10336000E9008091F00088608093F000CD2BCF7051
+:10337000C093E900FF91EF91DF91CF91BF91AF91A1
+:103380009F918F917F916F915F914F913F912F917D
+:103390000F900FBE0F901F9018951F93CF93DF9340
+:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C
+:1033B000EFE5F4E088E08E0F9091F10091938E1389
+:1033C000FBCF0E944B158091E80083FF1FC18091C5
+:1033D0005F0490916004492F50E04A30510508F095
+:1033E00015C1FA01EC59FF4F0C94E331803881F09C
+:1033F000823809F00BC1809163048F708093E900DB
+:103400008091EB0085FB882780F91092E90006C0C7
+:1034100080915B0490915C04911182609091E8002E
+:10342000977F9093E8008093F1001092F100C8C05C
+:10343000282F2D7F09F0EAC0882319F0823061F02F
+:10344000E5C080916104813009F0E0C0933009F05B
+:1034500080E080935C042BC080916104811127C0BF
+:10346000809163048F7009F4D1C08093E9002091AA
+:10347000EB0020FF1CC0933021F48091EB008062B0
+:1034800014C09091EB0090619093EB0021E030E04C
+:10349000A90102C0440F551F8A95E2F74093EA0044
+:1034A0001092EA008091EB0088608093EB0010920C
+:1034B000E9008091E800877F86C08111A7C0109144
+:1034C00061041F778091E3008078812B8093E30073
+:1034D0008091E800877F8093E8000E94EB1780913D
+:1034E000E80080FFFCCF8091E30080688093E300D8
+:1034F000111102C082E001C083E080935E0486C0A7
+:103500008058823008F082C08091610490916204FA
+:103510008C3D53E0950779F583E08A838AE28983BD
+:103520004FB7F894DE01139620E03EE051E2E32F1E
+:10353000F0E050935700E49120FF03C0E295EF7054
+:103540003F5FEF708E2F90E0EA3010F0C79601C019
+:10355000C0968D939D932F5F243149F74FBF809183
+:10356000E800877F8093E8006AE270E0CE01019670
+:103570000E94F21614C0AE014F5F5F4F609163046A
+:103580000E943916BC01009709F440C09091E800F0
+:10359000977F9093E80089819A810E9455178091C6
+:1035A000E8008B778093E80031C0803879F580910E
+:1035B000E800877F8093E80080915A048093F100AF
+:1035C0008091E8008E778093E8000E94EB171EC080
+:1035D00081111CC0909161049230C0F48091E80088
+:1035E000877F8093E80090935A040E94EB178091A4
+:1035F0005A04811106C08091E30087FD02C081E07A
+:1036000001C084E080935E040E9437158091E80039
+:1036100083FF0AC08091E800877F8093E800809153
+:10362000EB0080628093EB00AA960FB6F894DEBFA1
+:103630000FBECDBFDF91CF911F9108950895CF9315
+:1036400080915E048823A1F0C091E900CF70909131
+:10365000EC00892F817090FD80E8C82B1092E90062
+:103660008091E80083FD0E94CD19CF70C093E900DE
+:10367000CF9108959093DF038093DE030895E09146
+:10368000DE03F091DF03309721F00190F081E02D0F
+:10369000099480E00895E091DE03F091DF03309714
+:1036A00021F00280F381E02D09940895E091DE037A
+:1036B000F091DF03309721F00480F581E02D09942B
+:1036C00008952091DC033091DD038217930771F098
+:1036D0009093DD038093DC03E091DE03F091DF0340
+:1036E000309721F00680F781E02D0994089520910C
+:1036F000DA033091DB038217930771F09093DB03B9
+:103700008093DA03E091DE03F091DF03309721F03C
+:103710000084F185E02D0994089508950C948D1B83
+:103720000E9415280E94760B0E949B280C94562D0F
+:103730004F925F927F928F929F92AF92BF92CF9261
+:10374000DF92EF92FF920F931F93CF93DF93CDB74A
+:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A
+:10376000650C91EEC92E93E0D92E00E010E0AA245A
+:10377000A394B12C702E802F0E94AE0D4C01F60147
+:10378000419051906F014826592641145104B1F4DB
+:103790000F5F1F4F0430110569F78FEF89838A830C
+:1037A0001B820E941E288160782F9D838C83498113
+:1037B0005A816B818D810E94511C3AC080913D04D9
+:1037C00081FD0E94B70D20E030E07501022E02C09D
+:1037D000EE0CFF1C0A94E2F7C70184219521892B86
+:1037E00009F12E837F828E209F2091E0892809F4A1
+:1037F00090E098870E941E288160782F9A87898799
+:103800004E815F8168858A850E94511C000F111FBF
+:10381000F801EF51FC4F80819181E826F926F18271
+:10382000E08206C02F5F3F4F2C30310571F6B0CFDC
+:103830000E94872A1091E0030E943F1B1817D9F0BD
+:103840000E943F1B8093E0032A960FB6F894DEBFD8
+:103850000FBECDBFDF91CF911F910F91FF90EF90E1
+:10386000DF90CF90BF90AF909F908F907F905F90B0
+:103870004F900C94AE0A2A960FB6F894DEBF0FBE96
+:10388000CDBFDF91CF911F910F91FF90EF90DF900F
+:10389000CF90BF90AF909F908F907F905F904F9010
+:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B
+:1038B000DEBF0FBECDBF4F83588769877A878B875E
+:1038C000DE01119686E0FD0111928A95E9F785E007
+:1038D000FE01379601900D928A95E1F749815A8150
+:1038E0006B817C818D819E810E94F6232B960FB681
+:1038F000F894DEBF0FBECDBFDF91CF910895CF9377
+:10390000882309F4C2C0C82F823859F40E943F1B93
+:1039100081FDBBC089E30E949F260E946C2789E33A
+:103920000CC0833879F40E943F1B80FDAEC083E554
+:103930000E949F260E946C2783E50E94E126CF917A
+:103940000C946C27843859F40E943F1B82FD9DC063
+:1039500087E40E949F260E946C2787E4EECF8CEFBD
+:103960008C0F813A48F48C2F0E94BE2C81118DC09F
+:103970008C2F0E949F26E3CF80E28C0F883048F482
+:10398000C77081E001C0880FCA95EAF70E94252719
+:10399000D6CF8BE58C0F833078F4C53A29F0C63A40
+:1039A00031F083E890E005C081E890E002C082E851
+:1039B00090E0CF910C94611B88E58C0F833108F067
+:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F
+:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F
+:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F
+:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D
+:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092
+:103A100090E038C082EE90E035C089EE90E032C090
+:103A20008AEE90E02FC085EB90E02CC086EB90E012
+:103A300029C087EB90E026C08CEC90E023C08DEC91
+:103A400090E020C083E891E01DC08AE891E01AC0B0
+:103A500082E991E017C084E991E014C081E292E02C
+:103A600011C083E292E00EC084E292E00BC085E2D6
+:103A700092E008C086E292E005C087E292E002C0D0
+:103A80008AE292E0CF910C94771BCF91089588231E
+:103A900009F44BC0823859F40E943F1B81FF45C096
+:103AA00089E30E949F260E946C2789E30CC083381B
+:103AB00071F40E943F1B80FF38C083E50E949F265F
+:103AC0000E946C2783E50E94E1260C946C278438C1
+:103AD00059F40E943F1B82FF28C087E40E949F2662
+:103AE0000E946C2787E4EFCF9CEF980F913A58F330
+:103AF00090E2980F983050F4877091E001C0990FD0
+:103B00008A95EAF7892F0E942B27DFCF9BE5980F34
+:103B1000933020F480E090E00C94611B885A83314C
+:103B200020F480E090E00C94771B0895882321F026
+:103B30000E9425270C946C270895882321F00E9469
+:103B40002B270C946C270895BF92CF92DF92EF92AF
+:103B5000FF920F931F93CF93DF9300D000D000D03C
+:103B6000CDB7DEB725E0FC01DE01119601900D9284
+:103B70002A95E1F7FC01D0801181028125812295EF
+:103B80002F7043815481452B09F472C31F3F21F4E8
+:103B9000FFEFDF1609F46CC37C012E830E947707C8
+:103BA000D9821A8369817A81802F0E949B26182FDF
+:103BB000B92E0E9450260E9417252E81002319F04D
+:103BC0000E9442272E81EB2DE295EF70F0E0E25942
+:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E
+:103BE000882319F0F29480EFF822002389F0FF2057
+:103BF00009F47CC280E2810F883020F48F2D0E946E
+:103C0000252703C08F2D0E9435270E946C276EC286
+:103C1000812F0E94471DFF2009F42AC3105E8F2DBB
+:103C2000183018F40E942B2702C00E943B272696CA
+:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD
+:103C40000F91FF90EF90DF90CF90BF900C946C2776
+:103C50008B2D807F9B2D9F70803211F4892F03C0A4
+:103C6000892F8295807F112319F0113011F12BC01B
+:103C70000023A9F0222389F1213079F526960FB689
+:103C8000F894DEBF0FBECDBFDF91CF911F910F9192
+:103C9000FF90EF90DF90CF90BF900C945527222398
+:103CA00019F0213009F4E4C28E830E9458278E81D6
+:103CB0009BC1002321F0263008F0DAC20EC0253067
+:103CC00008F0D6C291C10023C9F0222331F0F701D8
+:103CD000958190FF0BC29F70958326960FB6F8943E
+:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F
+:103CF000EF90DF90CF90BF900C94961D222309F493
+:103D000073C109C22B2D26952695237030E021150D
+:103D1000310521F021303105D1F0AAC2002321F074
+:103D2000812F9B2D937002C080E090E026960FB605
+:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1
+:103D4000FF90EF90DF90CF90BF900C94611B002309
+:103D500021F0812F9B2D937002C080E090E0269689
+:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C
+:103D70000F91FF90EF90DF90CF90BF900C94771B46
+:103D8000812F002319F00E948F2902C00E94F72979
+:103D900026960FB6F894DEBF0FBECDBFDF91CF9150
+:103DA0001F910F91FF90EF90DF90CF90BF900C94F8
+:103DB0007C2A8B2D837009F07BC0011159C2812FA1
+:103DC000829586958770880F880F912F9F70C92ED6
+:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7
+:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD
+:103DF00070E004C0440F551F661F771F8A95D2F7E5
+:103E0000CB01BA01609570958095909503C060E0F4
+:103E100070E0CB012B2D269526952370422F50E084
+:103E200042305105D9F04330510569F16C297D29A3
+:103E30008E299F294130510551F126960FB6F894ED
+:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD
+:103E5000EF90DF90CF90BF900C943E256C297D2988
+:103E60008E299F2926960FB6F894DEBF0FBECDBFD0
+:103E7000DF91CF911F910F91FF90EF90DF90CF9046
+:103E8000BF900C945A250E943E25C701B601269684
+:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B
+:103EA0000F91FF90EF90DF90CF90BF900C94222560
+:103EB000002319F08B2D817001C08695882309F4A9
+:103EC000D7C1812F829586958770880F880F912F93
+:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3
+:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039
+:103EF00050E060E070E004C0440F551F661F771F5C
+:103F00008A95D2F7CB01BA0160957095809590950E
+:103F100003C060E070E0CB012B2D26952695237021
+:103F2000422F50E042305105D9F04330510569F13C
+:103F30006C297D298E299F294130510551F1269602
+:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA
+:103F50000F91FF90EF90DF90CF90BF900C941826B8
+:103F60006C297D298E299F2926960FB6F894DEBFED
+:103F70000FBECDBFDF91CF911F910F91FF90EF90BA
+:103F8000DF90CF90BF900C9434260E941826C70172
+:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7
+:103FA000CF911F910F91FF90EF90DF90CF90BF9036
+:103FB0000C94FC25103F49F118F4103E48F491C0D0
+:103FC000123F09F453C0E8F1133F09F464C089C0FB
+:103FD0001F708B2D8F71002321F00E949525812F5A
+:103FE0007CCE0E94B625812F26960FB6F894DEBFB0
+:103FF0000FBECDBFDF91CF911F910F91FF90EF903A
+:10400000DF90CF90BF900C949D1D0023B1F0253020
+:1040100008F02EC18B2D8F7126960FB6F894DEBF57
+:104020000FBECDBFDF91CF911F910F91FF90EF9009
+:10403000DF90CF90BF900C94DB25263008F018C19C
+:10404000E9CF0023A9F08B2D8F7126960FB6F89437
+:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB
+:10406000EF90DF90CF90BF900C949525002359F3EB
+:104070008B2D8F7126960FB6F894DEBF0FBECDBF85
+:10408000DF91CF911F910F91FF90EF90DF90CF9034
+:10409000BF900C94B625002399F08B2D8F71269636
+:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
+:1040B0000F91FF90EF90DF90CF90BF900C948025F0
+:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D
+:1040D0001F910F91FF90EF90DF90CF90BF900C94C5
+:1040E00076250023A9F0222309F4ADCF812F26964F
+:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9
+:104100000F91FF90EF90DF90CF90BF900C947F1CA9
+:10411000222309F4ADCF812F26960FB6F894DEBF87
+:104120000FBECDBFDF91CF911F910F91FF90EF9008
+:10413000DF90CF90BF900C94471D4B2D4F70612F97
+:10414000C7010E94690526960FB6F894DEBF0FBE20
+:10415000CDBFDF91CF911F910F91FF90EF90DF9036
+:10416000CF90BF900C949A24011182C09B2D9F7018
+:10417000492F50E04230510509F443C0C4F44115C1
+:10418000510571F14130510509F072C026960FB604
+:10419000F894DEBF0FBECDBFDF91CF911F910F917D
+:1041A000FF90EF90DF90CF90BF900C947E2D433026
+:1041B0005105C1F14430510509F05AC0812F2696AE
+:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
+:1041D0000F91FF90EF90DF90CF90BF900C94D02D77
+:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
+:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
+:10420000672D26960FB6F894DEBF0FBECDBFDF91A7
+:10421000CF911F910F91FF90EF90DF90CF90BF90C3
+:104220000C949A2D26960FB6F894DEBF0FBECDBF24
+:10423000DF91CF911F910F91FF90EF90DF90CF9082
+:10424000BF900C94AD2D4B2D4F70612FC70126965A
+:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
+:104260000F91FF90EF90DF90CF90BF900C94790763
+:1042700026960FB6F894DEBF0FBECDBFDF91CF916B
+:104280001F910F91FF90EF90DF90CF90BF90089516
+:104290000E9442270E9452270E9417270E946C27E3
+:1042A0000E942D2B0E947C2A80E090E00E94611BDE
+:1042B00080E090E00C94771B0E9432270C944821F8
+:1042C0000E949026292F22952F7030E02C30310546
+:1042D0004CF42A3031056CF422503109223031057A
+:1042E00088F407C02C30310549F02F30310531F00A
+:1042F00009C0803E48F0803F29F406C093FB882720
+:1043000080F9089580E0089581E00895CF93DF93C8
+:1043100000D000D01F92CDB7DEB70F900F900F9056
+:104320000F900F90DF91CF910895CF93DF9300D03E
+:1043300000D000D0CDB7DEB726960FB6F894DEBF1A
+:104340000FBECDBFDF91CF9108951F93CF93DF9321
+:10435000C091E90316E08091EA03C81799F0D0E014
+:104360001C9FF0011D9FF00D1124E551FC4F408171
+:10437000518162817381848195810E94952121966A
+:10438000C770E9CFDF91CF911F91089540911B0431
+:1043900050911C0460911D0470911E0480911F04B3
+:1043A000909120040C9495218091200482958F7027
+:1043B00009F054C080911D04882309F44FC08091F6
+:1043C000E903A091EA0360911B0470911C044091E1
+:1043D0001E0450911F04B6E08A1709F43FC090E014
+:1043E00041155105C1F17F3F11F46F3FA1F1B89F15
+:1043F000F001B99FF00D1124E551FC4F218172139A
+:104400002AC02081621327C02281211124C0238168
+:1044100034812417350710F421503109241B350B42
+:10442000283C3105C0F4209120042F702061209396
+:10443000200426E0289FF001299FF00D1124E0516F
+:10444000FC4F80818F70806180838BE194E00E94BB
+:10445000A41D0C94A52101968770BECF0895CF921C
+:10446000DF92EF92FF920F931F93CF93DF93CDB71D
+:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA
+:1044800085E0F801DE011D9601900D928A95E1F715
+:10449000D8014C9111965C91119712966C911297DC
+:1044A0001396CD90DC90149730911B0470911C04EE
+:1044B00080911E0490911F04009709F46BC17F3F07
+:1044C00019F43F3F09F466C1E0901D04EE2009F4A1
+:1044D000C0C020912004C816D90628F0F601E81BB8
+:1044E000F90BCF0104C0809590958C0D9D1DFF2484
+:1044F000F394883C910578F0F12C207F09F0C6C038
+:104500007C2DD98AC88A89890E9486218BE194E012
+:104510000E94A41DB1C0822F807F09F046C0751390
+:1045200014C0341312C0611110C02F702061209389
+:1045300020040E94C6218BE194E00E94A41D80917A
+:104540002004D80115968C932EC0CD2819F15F3F19
+:1045500011F44F3FF9F0F62E61111CC08091E90370
+:104560002091EA0336E0821709F45AC090E0389FA0
+:10457000F001399FF00D1124E551FC4F7181571363
+:1045800006C07081471303C07281711103C0019688
+:104590008770E9CFF62E662309F418C180912004B4
+:1045A000816080932004F12C11C1751308C034136D
+:1045B00006C0611104C080912004D801C3C04D879A
+:1045C0005E878D859E856A8B0E9460216A8988231B
+:1045D000E1F16623D1F120912004822F82958F7022
+:1045E00090E0029774F080911B0490911C049887CE
+:1045F0008F831986DB86CA862C87CE0107960E9498
+:10460000A41D86E0F801ABE1B4E001900D928A951B
+:10461000E1F70E94D4210E94C621FF24F394D6C062
+:104620004D875E878D859E850E949026292F229535
+:104630002F7030E0223031050CF0BCC09F7009F0C3
+:10464000B6C0805E883008F4C1C0C8010E94A41DB5
+:10465000E4CFC816D90608F453C0F601E81BF90BDD
+:10466000CF01883C910508F450C0F12C7C2DD98AEB
+:10467000C88A89890E948621EBE1F4E086E0DF01A7
+:104680001D928A95E9F70E94C621A0C0751314C037
+:10469000341312C0611110C080912004F801858389
+:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249
+:1046B0008A95E9F7FE2C8AC04D875E878D859E8599
+:1046C0006A8B0E9460216A89882309F4BECF662321
+:1046D00009F4BBCF20912004822F82958F7090E047
+:1046E00002970CF48ECF80911B0490911C049A8346
+:1046F00089831B82DD82CC822E83CE0101967FCFFF
+:10470000809590958C0D9D1DACCFF62E662309F4F7
+:104710009CCF75132EC034132CC02091200420FD93
+:104720001FC0822F82958F70D9F0D80115962C93D7
+:1047300015978F3049F08F5F982F9295907F822F39
+:104740008F70892B15968C93C8010E94A41D86E05A
+:10475000F801ABE1B4E001900D928A95E1F793CFB7
+:1047600086E0F801ABE1B4E001900D928A95E1F7A3
+:104770002DC04D875E878D859E850E9460218111A9
+:1047800040CF80912004816080932004C8010E9462
+:10479000A41D1CC0662309F458CF4D875E878D8504
+:1047A0009E850E946021882309F44FCF2ACF811172
+:1047B00048CF0CC0243031050CF047CF9F7009F46E
+:1047C00040CFF8019581907F09F03BCF8F2D629605
+:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112
+:1047E0000F91FF90EF90DF90CF9008951F93CF939C
+:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0
+:10480000CDBF4F83588769877A878B879C87CE0176
+:1048100007960E942F22882369F08F8198852A8528
+:104820003B85232BF1F19F3F09F063C08F3F09F0D7
+:1048300060C037C086E0FE013796DE011196019018
+:104840000D928A95E1F76F817885EA85FB8530972F
+:1048500041F17F3F11F46F3F21F12091EA0330E0F5
+:10486000C9010196877099274091E90350E08417A8
+:10487000950709F447C069837A83FD83EC8396E04A
+:10488000929FD001939FB00D1124A551BC4FFE0102
+:10489000319601900D929A95E1F78093EA030E9478
+:1048A000A52116E08091E9039091EA038917C1F1EF
+:1048B000189FC001112485519C4F0E942F228823EC
+:1048C00079F1E091E9031E9FF0011124E551FC4FBD
+:1048D0004081518162817381848195810E949521FB
+:1048E0008091E90390E00196877099278093E9030E
+:1048F000D9CF4F81588569857A858B859C850E94A3
+:104900009521CFCF0E945C211092EA031092E90317
+:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73
+:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE
+:104930001F910895EF92FF920F931F93CF93DF93F0
+:104940008C01009709F46CC0F12CEE24E394E8018B
+:104950002196F8018491843740F4843008F051C0E6
+:10496000813081F0823019F15BC0853709F444C091
+:10497000A8F19CE7980F903708F052C08F770E94FB
+:10498000471D41C00E5F1F4FFE01C49180E28C0F96
+:10499000883048F4C7708E2D01C0880FCA95EAF799
+:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3
+:1049B0001F4FFE01C49180E28C0F883058F4C770FD
+:1049C0008E2D01C0880FCA95EAF70E944B270E94DE
+:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8
+:1049E000FE01C491CC2381F08FE99FE00197F1F79C
+:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3
+:104A000003C00E947F1C8E018F2D882309F49FCF45
+:104A1000EFE9FFE03197F1F700C000008150F5CFDA
+:104A2000DF91CF911F910F91FF90EF90089508951E
+:104A300060932504709326048093270490932804A0
+:104A40000C9448210F931F93009125041091260484
+:104A50002091270430912804DC01CB01802B912B7D
+:104A6000A22BB32B8093250490932604A0932704B4
+:104A7000B09328041F910F910C9448210F931F931A
+:104A800000912504109126042091270430912804D8
+:104A9000DC01CB0180239123A223B323809325043F
+:104AA00090932604A0932704B09328041F910F919C
+:104AB0000C9448210F931F93009125041091260414
+:104AC0002091270430912804DC01CB018027912715
+:104AD000A227B3278093250490932604A09327044C
+:104AE000B09328041F910F910C9448211092210437
+:104AF0001092220410922304109224040C94482152
+:104B000041E050E060E070E004C0440F551F661FB4
+:104B1000771F8A95D2F74093210450932204609323
+:104B20002304709324040C94482141E050E060E099
+:104B300070E004C0440F551F661F771F8A95D2F797
+:104B40008091210490912204A0912304B091240427
+:104B5000482B592B6A2B7B2B409321045093220422
+:104B600060932304709324040C94482141E050E0A6
+:104B700060E070E004C0440F551F661F771F8A95E0
+:104B8000D2F7409550956095709580912104909151
+:104B90002204A0912304B0912404482359236A23BA
+:104BA0007B23409321045093220460932304709349
+:104BB00024040C94482141E050E060E070E004C01F
+:104BC000440F551F661F771F8A95D2F780912104E5
+:104BD00090912204A0912304B091240448275927DE
+:104BE0006A277B2740932104509322046093230477
+:104BF000709324040C9448210F931F930091210477
+:104C0000109122042091230430912404DC01CB0173
+:104C1000802B912BA22BB32B809321049093220401
+:104C2000A0932304B09324041F910F910C94482166
+:104C30000F931F93009121041091220420912304CB
+:104C400030912404DC01CB0180239123A223B323E0
+:104C50008093210490932204A0932304B09324040E
+:104C60001F910F910C9448210F931F9300912104E1
+:104C7000109122042091230430912404DC01CB0103
+:104C800080279127A227B3278093210490932204A1
+:104C9000A0932304B09324041F910F910C944821F6
+:104CA0000895CF92DF92EF92FF920F931F93CF93CD
+:104CB000DF938C01C0902504D0902604E090270457
+:104CC000F09028048091210490912204A091230463
+:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD
+:104CE000D701C6010C2E04C0B695A7959795879558
+:104CF0000A94D2F780FF06C0B8018C2F0E94D30916
+:104D0000019721F4219760F780E001C08C2FDF919B
+:104D1000CF911F910F91FF90EF90DF90CF9008956A
+:104D2000CF93DF93EC010E945126BE010E94D3096C
+:104D3000DF91CF910895CB010E9490260895909124
+:104D40008402992321F090918502911109C020914C
+:104D5000860230918702F90132969FEF40E01FC032
+:104D6000982F9695969596959F3050F5E0918602EE
+:104D7000F0918702E90FF11D877021E030E0A90171
+:104D800002C0440F551F8A95E2F7CA019181892B11
+:104D9000818308959F3F39F04F5F4E3041F051912C
+:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77
+:104DB00039F0F901E90FF11D97FDFA958283089505
+:104DC000089590918402992321F090918502911188
+:104DD00009C02091860230918702F9013296205F46
+:104DE0003F4F1FC0982F9695969596959F30F0F45B
+:104DF000E0918602F0918702E90FF11D877021E0B2
+:104E000030E0A90102C0440F551F8A95E2F7CA019C
+:104E1000809591818923818308953196E217F30764
+:104E200029F090819813F9CF1082F7CF089581E08F
+:104E300090E0E0918602F0918702E80FF91F10825E
+:104E4000019680319105A9F7089590913C04892B32
+:104E500080933C040895809590913C04892380932D
+:104E60003C04089510923C04089590913B04892BD2
+:104E700080933B040895809590913B04892380930F
+:104E80003B04089510923B04089590913A04892BB5
+:104E900080933A040895809590913A0489238093F1
+:104EA0003A04089510923A040895809329040895CD
+:104EB0001092290408958091860290918702FC0146
+:104EC00031969C01205F3F4F80E0919191118F5F5F
+:104ED000E217F307D1F70895E0918602F091870277
+:104EE00080913C048083E0918602F091870290815A
+:104EF00080913B04892B8083E0918602F0918702A8
+:104F0000908180913A04892B8083809129048823A1
+:104F100061F0E0918602F09187029081892B808375
+:104F20000E945B2781111092290480918602909142
+:104F300087020C944B1B80915E04843039F11092EF
+:104F40003E0420E488E190E00FB6F894A8958093A1
+:104F500060000FBE2093600080E00E94300580E07A
+:104F60000E94AE0A83B7817F846083BF83B781606C
+:104F700083BF7894889583B78E7F83BF88E10FB60F
+:104F8000F89480936000109260000FBE0895089519
+:104F90000895CF9380E00E9430050E94C7270E94A9
+:104FA000650C0E94C827C0E08C2F0E94AE0D892B93
+:104FB00029F4CF5FC430C1F780E001C081E0CF9118
+:104FC00008950E945C2180E00E9430050E94562DC9
+:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5
+:104FE00011248F939F93AF93BF9380913E048111BF
+:104FF00013C080913F0490914004A0914104B0916E
+:1050000042044196A11DB11D80933F04909340043A
+:10501000A0934104B0934204BF91AF919F918F91AF
+:105020000F900FBE0F901F90189582E084BD93E003
+:1050300095BD9AEF97BD80936E0008952FB7F894B1
+:1050400080913F0490914004A0914104B0914204AA
+:105050002FBF0895CF92DF92EF92FF920F931F938D
+:105060002FB7F89440913F0450914004609141045F
+:10507000709142042FBF6A017B01EE24FF248C0152
+:1050800020E030E0C016D106E206F30610F44150ED
+:1050900051099A01281B390BC9011F910F91FF90EB
+:1050A000EF90DF90CF9008951F920F920FB60F925E
+:1050B00011248F939F93AF93BF9380913F0490915E
+:1050C0004004A0914104B09142040196A11DB11D7C
+:1050D00080933F0490934004A0934104B093420412
+:1050E000BF91AF919F918F910F900FBE0F901F9026
+:1050F00018950E943C18F8942FEF87EA91E621500A
+:1051000080409040E1F700C0000087E090EBDC01B8
+:105110008093690490936A04A0936B04B0936C0429
+:105120009CE088E10FB6F894A895809360000FBECC
+:1051300090936000FFCF0E94DA28811102C00E9484
+:10514000B6280E94E52880933D040E94F2288093AF
+:10515000670487FB882780F9809385020E94E928ED
+:10516000682F70E080E090E00C9418256DEE7EEFE3
+:1051700080E090E00E94093260E082E090E00E94CE
+:10518000F73160E083E090E00E94F73160E084E076
+:1051900090E00E94F73160E085E090E00E94F731F6
+:1051A00060E086E090E00E94F7316FEF87E090E0EA
+:1051B0000C94F73180E090E00E94F13121E08D3EC7
+:1051C0009E4F09F020E0822F089582E090E00C9439
+:1051D000E93183E090E00C94E931682F83E090E0BE
+:1051E0000C94F73184E090E00C94E931682F84E06E
+:1051F00090E00C94F73186E090E00C94E931682F50
+:1052000086E090E00C94F73187E090E00C94E9316F
+:10521000682F87E090E00C94F7318091450480FF7F
+:105220000BC060918B0285E0689FB00111247595D9
+:105230006795759567952BC081FF09C060918B02BA
+:1052400085E0689FB00111247595679520C082FFA5
+:1052500007C060918B0285E0689FB001112417C0E0
+:10526000909146049923D1F060918A02961788F7AD
+:1052700020918B0285E0289F90011124929FA0012C
+:10528000939F500D112470E0CA010E94CF31603805
+:10529000710540F46115710539F002C065E070E0F8
+:1052A000862F08958FE7089581E008958091450441
+:1052B00080FF08C06091890270E0759567957595CB
+:1052C000679521C081FF06C06091890270E07595E5
+:1052D000679519C082FF04C06091890270E010C018
+:1052E000909146049923C1F0609188029617A0F727
+:1052F00080918902899FC001112470E00E94CF3102
+:105300006038710528F46115710521F0862F089524
+:105310008FE7089581E0089561E070E0F4CF803F69
+:1053200021F40E940D29819504C0813F29F40E9437
+:105330000D29809349040895823F21F40E940D298C
+:10534000819504C0833F29F40E940D29809348046D
+:105350000895893F19F40E94562905C08A3F31F407
+:105360000E945629819580934A0408958B3F21F429
+:105370000E945629819504C08C3F29F40E94562929
+:1053800080934B040895843F21F480914704816009
+:1053900017C0853F21F480914704826011C0863F89
+:1053A00021F48091470484600BC0873F21F48091F1
+:1053B0004704886005C0883F31F4809147048061CC
+:1053C0008093470408958D3F21F4809145048160C6
+:1053D0000BC08E3F21F480914504826005C08F3F51
+:1053E00029F4809145048460809345040895803FAA
+:1053F00039F48091490487FF6CC01092490469C058
+:10540000813F29F4809149041816BCF362C0909141
+:105410004804823F29F497FF5CC01092480459C0A9
+:10542000833F19F41916CCF354C0893F41F480919D
+:105430004A0418160CF04DC010924A044AC08A3F24
+:1054400029F480914A0487FF44C0F6CF8B3F39F49A
+:1054500080914B0487FF3DC010924B043AC08C3FB3
+:1054600029F480914B041816BCF333C0843F21F417
+:10547000809147048E7F17C0853F21F480914704B7
+:105480008D7F11C0863F21F4809147048B7F0BC034
+:10549000873F21F480914704877F05C0883F31F41E
+:1054A000809147048F7E8093470413C08D3F21F481
+:1054B000809145048E7F0BC08E3F21F4809145047E
+:1054C0008D7F05C08F3F29F4809145048B7F8093A9
+:1054D00045048091480481110EC0809149048111D6
+:1054E0000AC080914A04811106C080914B04811149
+:1054F00002C010924604089587E494E00E94561B6F
+:105500000E941E28909344048093430408951F939F
+:10551000CF93DF9380914304909144040E942A2802
+:10552000AC0190914604992321F020918C0230E047
+:1055300006C020918D028AE0289F90011124421715
+:10554000530708F486C080914804C0914904D09163
+:105550004A0410914B04811107C0C11176C0D111CA
+:1055600074C0111172C075C09F3F19F09F5F909376
+:105570004604181624F40E940D2980934804809153
+:10558000480487FF05C00E940D2981958093480437
+:105590001C1624F40E940D2980934904809149042B
+:1055A00087FF05C00E940D29819580934904609171
+:1055B0004804662339F1C0914904CC2319F17727B7
+:1055C00067FD7095872F972F0E94F12E23E333E319
+:1055D00043E35FE30E9401300E94BE2E60934804C3
+:1055E0006C2F772767FD7095872F972F0E94F12EDC
+:1055F00023E333E343E35FE30E9401300E94BE2EC6
+:10560000609349041D1624F40E94562980934A048D
+:1056100080914A0487FF05C00E9456298195809396
+:105620004A04111624F40E94562980934B04809159
+:105630004B0487FF05C00E945629819580934B0437
+:10564000DF91CF911F910C947C2A9F3F09F08ECF60
+:1056500096CFDF91CF911F910895E7E4F4E085E0C4
+:10566000DF011D928A95E9F71092460410924504D5
+:105670000895833081F128F4813059F08230D1F0DF
+:105680000895853009F449C0B8F1863009F456C050
+:10569000089580918D02262F30E0280F311D2F3F75
+:1056A000310524F4680F60938D0208958FEF809385
+:1056B0008D02089580918C02262F30E0280F311D35
+:1056C0002F3F310524F4680F60938C0208958FEF0B
+:1056D00080938C02089580918B02262F30E0280F52
+:1056E000311D2F3F310524F4680F60938B0208951C
+:1056F0008FEF80938B02089580918A02262F30E0ED
+:10570000280F311D2F3F310524F4680F60938A0262
+:1057100008958FEF80938A02089580918902262F41
+:1057200030E0280F311D2F3F310524F4680F6093BE
+:10573000890208958FEF80938902089580918802ED
+:10574000262F30E0280F311D2F3F310524F4680F3C
+:105750006093880208958FEF8093880208958330C4
+:1057600011F128F4813049F0823091F008958530AC
+:1057700081F120F18630C1F1089580918D02681782
+:1057800020F4861B80938D02089510928D02089557
+:1057900080918C02681720F4861B80938C020895F8
+:1057A00010928C02089580918B02681720F4861B5A
+:1057B00080938B02089510928B02089580918A0243
+:1057C000681720F4861B80938A02089510928A023B
+:1057D000089580918902681720F4861B80938902BE
+:1057E000089510928902089580918802681720F424
+:1057F000861B8093880208951092880208950F9363
+:105800001F93873208F048C08E3108F094C0803171
+:1058100009F47EC008F5873009F468C068F4863062
+:1058200009F0A4C080913D04817F8E7F80933D0468
+:1058300081E080934D049BC08B3009F490C08E3082
+:1058400009F094C080913D0482FB222720F991E069
+:10585000922790FB82F965C0863109F480C060F41C
+:10586000813109F083C00E945C219091850281E022
+:1058700089278093850273C0893109F470C08B3108
+:1058800009F074C080913D0481FB222720F991E04A
+:10589000922790FB81F945C0883309F460C050F429
+:1058A000893209F45EC0853309F45BC0873209F49C
+:1058B00058C05CC0833409F454C028F48A3308F417
+:1058C00055C0895339C0883409F050C00E945C210A
+:1058D0000E946C060FEF13ED20E3015010402040B2
+:1058E000E1F700C000000E94792839C090913D0482
+:1058F000892F8095817080FB90F929F096609860DF
+:1059000090933D0434C0997F977F90933D0427C0C6
+:1059100080913D0483FB222720F991E0922790FBA0
+:1059200083F980933D049923D1F080913D048160F7
+:1059300080933D0414C08D5141E050E060E070E080
+:105940008A019B0104C0000F111F221F331F8A957B
+:10595000D2F7C901B8010E9418250E945C2181E09C
+:1059600006C061E070E080E090E0F5CF80E01F913C
+:105970000F91089580E0089580E00895CF93C82F97
+:1059800080914D04813069F018F08230C9F184C0F3
+:10599000E0918602F09187028081823209F07EC018
+:1059A00007C0E0918602F09187028081823261F423
+:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7
+:1059C0001DC081E090E01AC08C2F0E94BC2C811178
+:1059D00014C0C43179F048F4CB3079F0C03109F00B
+:1059E00061C082E080934D0408C0C93219F0C83309
+:1059F00021F058C010924D0455C081E0817054C010
+:105A0000C93291F120F5C43179F1B0F4C73009F011
+:105A100047C08EE180938D0282E380938C028AE0FE
+:105A200080938B0284E180938A0288E080938902CC
+:105A300088E28093880234C0CE51C63088F5EC2FBE
+:105A4000F0E0E85AFC4F808180934C0429C0CE34AA
+:105A5000E9F020F4CB3421F56AE013C0C13579F0C8
+:105A6000C235F1F461E00DC080914C04882319F037
+:105A700010924C0415C081E080934D0415C061E084
+:105A800006C080914C040E94392B0AC06AE08091C4
+:105A90004C040E94AF2B04C010924D0480E004C05F
+:105AA00081E002C080E0AACFCF9108950E94DA2859
+:105AB000811102C00E94B6280E94FB2880936804CE
+:105AC00080FF02C0869501C080E00C943005809173
+:105AD0006804982F9695292F30E0233031054CF437
+:105AE0009F5F990F8170892B8160809368040E9469
+:105AF000FF288091680486950C9430058091680495
+:105B0000982F969591F09158990F8170892B8093D9
+:105B100068048E7F91E009F490E08091680490FB26
+:105B200080F9809368040E94FF288091680486951C
+:105B30000C94300580916804982F909590FB80F923
+:105B4000809368040E94FF288091680480FF02C04F
+:105B5000869501C080E00C94300590916804892FEF
+:105B600086958F5F8F779170843028F4880F892B0A
+:105B70008093680402C090936804809168048E7FCB
+:105B800091E009F490E08091680490FB80F98093A3
+:105B900068040E94FF288091680486950C94300563
+:105BA00020916804922F96958927982F990F822F1C
+:105BB0008170892B809368048E7F91E009F490E0D6
+:105BC0008091680490FB80F9809368040E94FF280C
+:105BD0008091680486950C9430055058BB27AA27FD
+:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7
+:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45
+:105C0000D3D180F3BA17620773078407950718F09A
+:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A
+:105C20000B01B90190010C01CA01A0011124FF2749
+:105C3000591B99F0593F50F4503E68F11A16F04044
+:105C4000A22F232F342F4427585FF3CF4695379543
+:105C50002795A795F0405395C9F77EF41F16BA0B08
+:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6
+:105C7000661F771F881FC2F70EC0BA0F621F731FFF
+:105C8000841F48F4879577956795B795F7959E3F5C
+:105C900008F0B3CF9395880F08F09927EE0F9795EA
+:105CA0008795089527D108F481E008950CD06BC141
+:105CB00063D140F05AD130F021F45F3F19F03EC17A
+:105CC000511195C14FC170D198F39923C9F3552350
+:105CD000B1F3951B550BBB27AA27621773078407DF
+:105CE00038F09F5F5F4F220F331F441FAA1FA9F395
+:105CF00033D00E2E3AF0E0E830D091505040E69587
+:105D0000001CCAF729D0FE2F27D0660F771F881FE7
+:105D1000BB1F261737074807AB07B0E809F0BB0BD6
+:105D2000802DBF01FF2793585F4F2AF09E3F5105FA
+:105D300068F004C15CC15F3FECF3983EDCF38695EC
+:105D400077956795B795F7959F5FC9F7880F911D70
+:105D50009695879597F90895E1E0660F771F881F5C
+:105D6000BB1F621773078407BA0720F0621B730B0F
+:105D7000840BBA0BEE1F88F7E095089504D0689461
+:105D8000B11135C1089518D188F09F5790F0B92FFF
+:105D90009927B751A0F0D1F0660F771F881F991F80
+:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035
+:105DB00008951CC1672F782F8827B85F39F0B93F45
+:105DC000CCF3869577956795B395D9F73EF4909582
+:105DD0008095709561957F4F8F4F9F4F0895E89400
+:105DE00009C097FB3EF490958095709561957F4F23
+:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1
+:105E0000F695879577956795B795F111F8CFFAF4E0
+:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11
+:105E200016C0882311F096E911C0772321F09EE86F
+:105E3000872F762F05C0662371F096E8862F70E0D5
+:105E400060E02AF09A95660F771F881FDAF7880FAF
+:105E50009695879597F9089588D018F011F08CD011
+:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4
+:105E7000E7FB6217730784079507A8F199F3E92FE9
+:105E8000FF2788232AF03197660F771F881FDAF7DC
+:105E9000952F5527442332F091505040220F331F45
+:105EA000441FD2F7BB27E91BF50B621B730B840B56
+:105EB000B109C1F222F4620F731F841FB11D319723
+:105EC0002AF0660F771F881FBB1FEFCF91505040FD
+:105ED0005AF041F0882332F0660F771F881F9150E7
+:105EE0005040C1F7939530C08695779567959F5F31
+:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D
+:105F000016161706E807F907C0F012161306E4077D
+:105F1000F50798F0621B730B840B950B39F40A2676
+:105F200061F0232B242B252B21F408950A2609F454
+:105F3000A140A6958FEF811D811D089597F99F6758
+:105F400080E870E060E008959F3F31F0915020F4C8
+:105F5000879577956795B795880F911D9695879545
+:105F600097F908959FEF80EC089500240A9416167F
+:105F7000170618060906089500240A941216130637
+:105F8000140605060895092E0394000C11F48823C5
+:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1
+:105FA0007F4F8F4F9F4F089557FD9058440F551FB7
+:105FB00059F05F3F71F04795880F97FB991F61F08B
+:105FC0009F3F79F087950895121613061406551F02
+:105FD000F2CF4695F1DF08C0161617061806991F6E
+:105FE000F1CF86957105610508940895E894BB2763
+:105FF00066277727CB0197F908957CDF08F48FEFA8
+:1060000008950BD0C0CFB1DF28F0B6DF18F095238C
+:1060100009F094CFA7CF1124EACFC6DFA0F3959F54
+:10602000D1F3950F50E0551F629FF001729FBB277F
+:10603000F00DB11D639FAA27F00DB11DAA1F649F2B
+:106040006627B00DA11D661F829F2227B00DA11DDE
+:10605000621F739FB00DA11D621F839FA00D611D64
+:10606000221F749F3327A00D611D231F849F600D85
+:10607000211D822F762F6A2F11249F5750408AF0BE
+:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A
+:10609000881F91505040A9F79E3F510570F04ECF98
+:1060A000A6CF5F3FECF3983EDCF386957795679536
+:1060B000B795F795E7959F5FC1F7FE2B880F911D68
+:1060C0009695879597F90895FA01EE0FFF1F309680
+:1060D0002105310599F16115710561F48038BFE33F
+:1060E0009B0749F168949038810561F08038BFEFD3
+:1060F0009B0741F0992342F5FF3FE105310521055A
+:1061000011F1E8940894E795D901AA2329F4AB2F5B
+:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4
+:10612000F73950F019F0FF3A38F49F779F930CD06D
+:106130000F9007FC905808953EF014CF60E070E097
+:1061400080E89FE308954FE79F775F934F933F93D6
+:106150002F939ED02F913F914F915F9152DF05C0B9
+:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801
+:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1
+:106180004EDF0F920F920F924DB75EB70F92C0D0B5
+:10619000ECEFF0E016D04F915F91EF91FF91E59514
+:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23
+:1061B000FA95E1F74195550B32D00F9007FE26C0B6
+:1061C0000895DF93CF931F930F93FF92EF92DF9287
+:1061D0007B018C01689405C0DA2EEF011EDFFE0101
+:1061E000E894A5912591359145915591AEF3EF0134
+:1061F00006DDFE019701A801DA9479F7DF90EF90B0
+:10620000FF900F911F91CF91DF9108959B01AC01F9
+:1062100060E070E080E89FE349CD90CE95CECCDE83
+:10622000E8F39923D9F3940F511DBBF391505040DB
+:1062300094F059F0882332F0660F771F881F915031
+:106240005040C1F79E3F510544F7880F911D969528
+:10625000879597F908955F3FACF0983E9CF0BB2777
+:10626000869577956795B79508F4B1609395C1F7D2
+:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70
+:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67
+:1062900093DEC8F39923D1F3C6F3DF93CF931F9313
+:1062A0000F93FF92C92FDD2788232AF02197660FCD
+:1062B000771F881FDAF720E030E040E85FEB9FE3CC
+:1062C000883920F0803E30F021968F7787DCE4E239
+:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197
+:1062E000EC01FB2E6F5771097595771F880B990B81
+:1062F00078DD28E132E741E35FE38FDEAF2D9801DF
+:10630000AE01FF900F911F91CF91DF9178DC3BCED2
+:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497
+:1063200022273327442750781FC0B75188F4AB2F5A
+:106330000024469537952795011CA395D2F300209C
+:1063400069F0220F331F441FB395DAF30DD045CC0B
+:1063500061307105A0E88A07B94630F49B01AC01B1
+:106360006627772788279078309621F0208331831D
+:10637000428353830895AA1BBB1B51E107C0AA1F88
+:10638000BB1FA617B70710F0A61BB70B881F991FD6
+:106390005A95A9F780959095BC01CD01089597FB7A
+:1063A000072E16F4009407D077FD09D00E94BB3168
+:1063B00007FC05D03EF4909581959F4F0895709508
+:1063C00061957F4F0895EE0FFF1F0590F491E02D2A
+:1063D0000994F999FECF92BD81BDF89A992780B5AD
+:1063E0000895A8E1B0E042E050E00C941132262F6D
+:1063F000F999FECF92BD81BDF89A019700B40216BB
+:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68
+:1064100008950196272F0E94F8310C94F731DC0182
+:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F
+:10643000319600B40D9241505040B8F70895F89449
+:02644000FFCF8C
+:106442000C52D02445000000410000DC4400000052
+:106452004152D0A4440000404100005C44000000CE
+:106462004148F17644000000415C978A44000000F4
+:10647200411FD592440000004152D0A444000000C4
+:10648200415CFFB844000000410AA7CF440000006D
+:10649200410000DC44000000410AA7CF4400000094
+:1064A200410000DC440000004100000000000080C8
+:1064B2004000005C450000404100000000000080F8
+:1064C2004052D02445000040410AA7CF44000000BA
+:1064D200410000DC44000000410000000000008098
+:1064E2004052D024450000404100000000000080DE
+:1064F2004000005C45000040410AA7CF4400000074
+:10650200410000DC44000000410000000000008067
+:106512004052D024450000404100000000000080AD
+:10652200400AA74F45000040410AA7CF440000009F
+:10653200410000DC44000000410000000000008037
+:106542004052D024450000004100000000000080BD
+:10655200405CFF3845000000410000000000008060
+:106562004052D02445000000410AA7CF4400000059
+:10657200410000DC440000004100000000000080F7
+:106582004052D024450000804153D02445000040B1
+:106592004160970A450000004154D0A44400000025
+:1065A200410000DC440000004160970A450000A061
+:1065B20041050000003F0000C8424314D114AE144C
+:1065C2007A14461401012A042808140A321E000013
+:1065D200020004000500070009000B000C000E0079
+:1065E2001000110013001500170018001A001C00FB
+:1065F2001D001F002100230024002600280029007E
+:106602002B002D002F0030003200340035003700FF
+:1066120039003B0040004500250026006100600073
+:1066220020003700640065006600670044004600F1
+:10663200240047003149803F5D8B803FF8BF803F97
+:10664200CAE1803F73ED803FCAE1803FF8BF803FDF
+:106652005D8B803F3149803F0000803FF16D7F3F7D
+:1066620075EA7E3F4C827E3F833F7E3F84287E3F99
+:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6
+:106682000000803F3F4D363975092809F208B908E4
+:106692004C0865087E0897080102030405060708EE
+:0266A2000900ED
+:00000001FF
diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex new file mode 100644 index 0000000000..140bf415f2 --- /dev/null +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -0,0 +1,1897 @@ +:020000020000FC
+:047000000C948D3E21
+:047028000C94B73DD0
+:10702F0012010002FF010020EB03F42F0000010208
+:10703F00030109021200010100803209040000005F
+:10704F00000000000C03410054004D0045004C00AF
+:10705F001603410054006D00330032005500340018
+:10706F004400460055000C0331002E0030002E0066
+:10707F0030000403090416010C0100000C0000018C
+:02708F006C7F14
+:1070920012BD01BDF89A00B5089501E00895F9996D
+:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929
+:1070B200FECF0C944938F80104910895F8013491F7
+:1070C20031962491890108950091610000930C0189
+:1070D20000E80093610001E00093610005BF02E057
+:1070E20005BF0C9486380091D70001600093D70049
+:1070F200A89507EF04BF0091600000610093600053
+:1071020000E00093600001E008950E94AA3D0E9401
+:10711200B53DFDCF0CD00F7708D0006806D00061D6
+:1071220004D0016028D0789408950093D80000918B
+:10713200D8000895FCDF00621ED04CD009B500FFD4
+:10714200FDCFF5DF0F7D17D00091E0000E7F009399
+:10715200E0000091E000077F0093E0000091E20070
+:1071620001600093E2000091E20008600093E200F7
+:1071720078940C94743B0093D800089500910D010B
+:10718200002359F40091D90000FF07C0D0DF006846
+:10719200F2DF01E000930D01CDDFE0E2F2E00081D9
+:1071A200018100FF0DC0008111811E7F11830083C8
+:1071B20001E00093EA0000E00093EA0000931E025F
+:1071C20000E00093E9000091E80003FF02C00E9482
+:1071D200F23B0895A89539D000E40093600000E0E6
+:1071E200009381000093800010E0009385000093DB
+:1071F200840001E006BB00918100036000938100DE
+:107202000091600007FFFCCF00E80093600010933C
+:107212008100A89507EF04BF18D010936000209159
+:1072220084003091850010938100109380001093A8
+:1072320085001093840001E006BB2D3D354010F01F
+:1072420002E101C002E009BD089500916000006101
+:107252000093600008950E94AD3E239741D100E063
+:1072620000930901B5D104811581012B51F437D165
+:1072720000910701002309F4B9C000E0009307015F
+:10728200B5C058D102FFFDCF37D1068335D1009367
+:107292000F0132D1009310012FD1009311012CD193
+:1072A2000093120129D10093130102852091130149
+:1072B20030911201409111015091100116811A95DD
+:1072C20041F01250A9F01A9599F11A9509F473C078
+:1072D2008BC010910F01113011F411E001C010E0C8
+:1072E200138799D00C3F11F414D17FC077D17DC0A0
+:1072F20092D010910F01112329F01A9549F01A9595
+:10730200A9F073C010E013870C3F09F06EC0ECCFF8
+:1073120056D103C04CD109F468C00D911C9144D1DF
+:107322000F3FC1F305E0009309015FC011E0EBCF0D
+:10733200D2D029F00250E1F10A9541F056C0FDD0B9
+:107342000E94A33F0FEF00930A014FC0552319F08B
+:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE
+:1073620003FFFDCF67D051D04AD008E00093600000
+:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F
+:1073820044D00FEF1FE004C009811A810150104060
+:1073920009831A8309811A81012BB1F700E800934E
+:1073A200610000910C01009361000C940000FFCF7A
+:1073B20001E003871AC08FD019F00A9539F015C081
+:1073C200535098F4BAD002E000870FC0505339F0FE
+:1073D2005A9541F05F52B1F35A95A1F306C002E00B
+:1073E2000883F0CF01E0FCCFA8D079D02396E4E067
+:1073F2000C94BA3E01E005BF00E005BF089500917C
+:10740200D8000F770093D800089509B50D7F09BD04
+:1074120000E009BD08955183408333832283109194
+:10742200E8001B7F1093E8001091E8001F7710938B
+:10743200E80008955DD053D0F8940091E000016017
+:107442000093E000089579D04AC0219749D0009175
+:107452000601035019F00250B9F00BC03CD021F0E4
+:107462000A9559F00A9529F400910A010C3F19F482
+:1074720050D02196089567D0FCCF0091010100936E
+:10748200F100009100010AC01091100124D019F0FE
+:107492000A9549F0EECF135018F400E00093F10082
+:1074A2001ED044D0E6CF105339F01A9539F01F524E
+:1074B20041F01A9541F0F4CF08E5F0CF00E006D094
+:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5
+:1074D20030E00C94113F00910F010023089521C068
+:1074E2000BD008D007D00093040106D00093050109
+:1074F20021D00BC000D008830091F10008950091C3
+:10750200EB0000620093EB0015D0077F0093E800C8
+:107512000895F5DF02E00093080103E000930901FA
+:10752200089559D007D000FFFDCF089503D002FF80
+:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A
+:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD
+:107552002BD00093F1002BD059F43DD0082F092BEA
+:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1
+:10757200042D4394003289F300910B0100230D91F5
+:107582001C9131F311970E945838E3CFD3DF00FFEB
+:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B
+:1075A200CCDFE5E00C94B93E11970C945C380D9158
+:1075B2001C910F5F1F4F1C930E93019708958281B8
+:1075C200938100811181801B910B0196DF01089547
+:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71
+:1075E200F7DF80819181A081B181AF710481158122
+:1075F20000521040048315830AC000910B0100233E
+:1076020031F4A301920103E911E00E943B3F47D00C
+:10761200B8F1662477242C0111C06EDFF301ED5618
+:10762200FE4F008301E0600E00E0701E01960091A3
+:10763200F200002311F033D0B8F47FDF30D0E8F24B
+:10764200F301B096E238F040C0F674DF02FFFDCFDE
+:107652000091F200BDDF24813581201B304024835C
+:107662003583E5CF49DFAA95AA23E1F700910B0103
+:10767200013099F62091F1008C010E945038D6CF4A
+:1076820004811581012B21F055DF02FFFDCF55DF6B
+:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051
+:1076A200F1E0028113810817190708952091EB0078
+:1076B20021602093EB000093EC000091ED0002703A
+:1076C200012B0093ED000091ED0002600093ED00AC
+:1076D2001091EE00012F000F00E0001F0895412FCE
+:1076E2000093E900089500E009D000FD05C000E024
+:1076F200F7DF10E202E0DACF00E00895F1DF009157
+:10770200EB0008950F770132A9F5112369F11A955B
+:1077120059F01A9561F01A9569F01A95F9F01A95CF
+:10772200C1F01A95D9F024C00E942C3920C00E94C1
+:10773200263A1DC029D00091090123D001E01FD0B3
+:1077420020D0009108011BD00E94923A0E94973AE1
+:107752000EC01AD00091080114D007C002E00093B5
+:10776200080100E0009309010FD00E94923A03C081
+:107772000E94803A02C001E0089500E0089501D01D
+:1077820000E00093F10008950091E800077F009364
+:10779200E800089508950350F9F4112339F01A9579
+:1077A20051F01A9581F01A9599F016C004E016D09E
+:1077B20001E810E703C011D003E510E7E7E1F2E0CA
+:1077C20000831183D8CF06E109D00FE510E7F6CF89
+:1077D20004D005E710E7F2CFD0CF0CE000931A02F5
+:1077E200089527D120D100931D02E1D0212F11232A
+:1077F20029F12A95E9F02250F1F0225099F02A95C8
+:1078020049F0225061F02A9581F02A95E1F02A95FB
+:10781200E9F023C0003809F44FC00C94833B0038D0
+:10782200E1F7C8C00023C9F71EC00023B1F72DC07D
+:10783200033098F744C1033080F70BC1003868F376
+:10784200033858F7C9C0013841F77BC1013051F400
+:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA
+:1078620009F41ED008951091E3001078DCD00F7750
+:10787200012B0093E300E9D0ACD000FFFDCF0091D3
+:10788200E30000680093E300089591D0123040F4C1
+:107892000FD010931E02DAD000911E020C94CB3B43
+:1078A2000091EB0001D004C000620093EB00089548
+:1078B2000091E800077FC0C0BA93AA93229700E024
+:1078C2000093190274D0AFD0202F2A9519F02A956F
+:1078D200E9F022C002E100931A020FE210E7E7E1A9
+:1078E200F2E0008311839DD008839DD00983E0DFFD
+:1078F20000911A0210E02881398102171307A8F4B7
+:107902000F7181F401E00093190211C002E10093AA
+:107912001A0201E410E7E3CF0E94CC3B002319F7DF
+:107922008ED040C01093190202C020931A027ED05A
+:10793200A7E1B2E001C08AD000911A02002309F146
+:1079420048D004FD1EC045D000FD03C042D004FF54
+:10795200FACF10E0012F1395003281F0ED91FC91E6
+:107962001197049133D02D913C912F5F3F4F3C935F
+:107972002E93FD0103810A95038361F72AD004FF48
+:10798200DACF00911902013039F423D004FD04C08A
+:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F
+:1079A20018D00B7F49D02296A991B99108951091D0
+:1079B200F10008957DDF00911E0208D047D009D062
+:1079C2000F773AD006D002FFFDCFBFC00093F1007F
+:1079D20008950091E800089524D010911D021058D6
+:1079E20029F01A9589F01A9591F019C061DF00917A
+:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63
+:107A020018D0E7DF0F770CC053DF00E0F2CF51D080
+:107A12000F7710E0F801E55EFD4F0081EACF0FD04D
+:107A22000BC001D000D00091F1000895D2DF0F7E8B
+:107A320003C00091E8000B7F0093E80008950091D5
+:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31
+:107A5200F3CF00911D02002329F00A9509F10A953E
+:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE
+:107A7200B9F4D9DF0F7711F416D01BD00093E900C7
+:107A82001091EB0010FF0BC00ED010E01093E90034
+:107A920021E0F801E55EFD4F20834FD003C042D0C4
+:107AA20045D0CFDFC9CF1091EB0010621093EB00ED
+:107AB20008951091E800177F1093E800089500914F
+:107AC2001D02002311F4AFDF02C0013011F4B7DF51
+:107AD200B3CF023031F52DD019F52091F1002F7777
+:107AE2002093E90023D000FF19C081F01FD000616C
+:107AF200DCDE01E010E0422F0E949F3E0093EA008C
+:107B020000E00093EA0012D00860CFDE0BD030E034
+:107B1200F901E55EFD4F008310D0DACF03D0D7CF55
+:107B2200BFDE089500E00093E90008950091EB00A4
+:107B3200089579DF3CDF00230895BADE4ADF0E7F25
+:107B4200089583DF46DF02FFFDCF73DF42DF0F7749
+:107B520073CF0091D70001600093D7000E948B3849
+:107B620000E000931F0208950C94BF388A93FA93A1
+:107B7200EA933A922A921A920A927A936A935A93BF
+:107B82004A933A932A931A930A938FB70091DA0091
+:107B920000FF24C00091D80000FF20C00EEF009328
+:107BA200DA000091D90000FF11C001E000930D013D
+:107BB200ABD0026096D09AD00860A2D00E949B38C7
+:107BC2000091E0000E7F0093E00008C000E0009307
+:107BD2000D0100931E0298D0046083D07FD002FF73
+:107BE20005C084D002FF02C00BEF75D077D000FF32
+:107BF2001BC07CD000FF18C001E000930E016AD0C8
+:107C020083D000626ED00EEF6FD0006179D06ED05B
+:107C12000F7D76D00091D80000620093D80009B59C
+:107C22000D7F09BD00E009BD59D004FF20C05ED020
+:107C320004FF1DC009B500FD05C00E94EB3809B55F
+:107C420000FFFDCF0091D8000F7D0093D80042D0F5
+:107C520000910E01002359F04CD00FEE45D00F7E5B
+:107C620052D000643ED042D001604AD042D036D0D9
+:107C720005FF0FC03BD005FF0CC000E000930E01D2
+:107C820035D00F7E3DD00FED2FD00F7D3CD0006858
+:107C920028D024D003FF0DC029D003FF0AC000E082
+:107CA20000931F0207EF17D00E94743B2DD0116082
+:107CB20018D08FBF09911991299139914991599100
+:107CC200699179910990199029903990E991F991E6
+:107CD200899118950FEE0093E10008950091E1005B
+:107CE20008951183008308950093E1000091E2005A
+:107CF20008950091E200006203D00091E200086062
+:107D02000093E2000895FCDFE0E2F2E000811181DD
+:107D1200089500008895FECF01E60DBF02E00EBF78
+:107D2200C2EED2E00E947438002311F00E94D33ECA
+:107D32000E9465380E948A3E0C948A3E4A951AF047
+:107D4200000F111FFBCF0895BA92AA929A928A92BB
+:107D52007A926A925A924A92BA93AA939A938A937D
+:107D62000895BB84AA84998488847F806E805D8014
+:107D72004C80BB81AA8199818881F0E00FB6F8948A
+:107D8200CE0FDF1F0FBE089520E006D0E9F7089559
+:107D9200259102D0E9F708952D9301501040202F2C
+:107DA200212B089585E890E7FC0105911491FC01CF
+:107DB2003296A591B491FC01349625913491422FCB
+:107DC200432B19F0F901E4DF01C0DEDF069610E76C
+:107DD2008139910748F308952F930CD02F9101D048
+:107DE20008953CD0F12FE02F45E047BFE89536D00B
+:107DF20012D0089533D0F12FE02F43E047BFE8952A
+:107E02002DD008952BD0F12FE02F43E047BFE89506
+:107E120025D001D0089522D041E147BFE8951EC088
+:107E22001DD0F12FE02F41E247BFC895002D16C0AB
+:107E320015D0F12FE02F49E047BFC895002D0EC0A5
+:107E4200F32FE22F012E102E41E047BFE89506C026
+:107E520005D0002E29E027BFE89500C0022E27B7E3
+:107E620020FDFCCF202D0895022E27B726FDFCCF42
+:107E7200202D08950E94A53E22974801C901DA01EA
+:107E820010C05BD001E0A00E00E0B01E00E4A0161E
+:107E920000E0B00608F440C0830120E030E00E9418
+:107EA200F23E0A2F0B2B09F440C0082F0F7710E087
+:107EB2002C01401A510A320100E4A02E03C00A2FFD
+:107EC2000B2BE1F04816590680F0F40101914F01A5
+:107ED2000983119729F001914F010883119711C06D
+:107EE200F2013196049108830CC0F20104910983D6
+:107EF2003196E817F907A1F7F401EDCF1BD00883FB
+:107F020019839201088119810E94213F16D0AA94F7
+:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE
+:107F220009F4AFCF83011DD0B7CF01E02296ECE078
+:107F32000C94B23E82010C945F3802E0400E00E0E5
+:107F4200501E08959A938A9380E090E08C0109D0A4
+:107F520080589F4F8F3F0FE69007C0F38991999108
+:107F6200089520E030E00C94FB3E00000000000089
+:067F720000000000FC000D
+:107FE4000C94ED3E0C94113F0C94193F0C94213FDA
+:0C7FF4000C94F23E0C94033F0C94293FC7
+:040000030000700089
+:100000000C94DA040C941E050C941E050C941E0529
+:100010000C941E050C941E050C941E050C941E05D4
+:100020000C941E050C941E050C94B7180C94891999
+:100030000C94EC270C941E050C941E050C941E05C4
+:100040000C941E050C941E050C941E050C941E05A4
+:100050000C941E050C9454280C941E050C941E053B
+:100060000C941E050C941E050C941E050C941E0584
+:100070000C941E050C941E050C941E050C941E0574
+:100080000C94AD0E0C941E050C941E050C941E05CC
+:100090000C941E050C941E050C941E050C941E0554
+:1000A0000C941E050C941E050C941E0579058905FB
+:1000B0009B05AB05B105C005CC05D205E005E905FA
+:1000C000FA050A0610064006F619181A061B181A31
+:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC
+:1000E000281E281E821EC01E38213821D91E382104
+:1000F000DA1FDA1F9D20B4203821232107634236FE
+:10010000B79BD8A71A39685618AEBAAB558C1D3CA8
+:10011000B7CC5763BD6DEDFD753EF6177231BF006C
+:100120000000803F08000000BE922449123EABAAA6
+:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01
+:10014000AA3E00000000BF000000803F0000000049
+:1001500000084178D3BB4387D1133D190E3CC3BD82
+:100160004282AD2B3E68EC8276BED98FE1A93E4C2F
+:1001700080EFFFBE01C4FF7F3F00000000002B00A6
+:1001800014001A000800150017001C0018000C00CD
+:10019000120013002A0029000400160007000900BD
+:1001A0000A000B000D000E000F0033003400E100C8
+:1001B0001D001B000600190005001100100036008C
+:1001C0003700380028000530E000E200E30003308B
+:1001D0002C002C0004305000510052004F002B0026
+:1001E00014001A00090013000A000D000F00180087
+:1001F0001C0033002A002900040015001600170017
+:1002000007000B00110008000C0012003400E10090
+:100210001D001B000600190005000E00100036002E
+:100220003700380028000530E000E200E30003302A
+:100230002C002C0004305000510052004F002B00C5
+:1002400034003600370013001C0009000A000600C5
+:1002500015000F002A0029000400120008001800F1
+:100260000C0007000B001700110016003800E10019
+:10027000330014000D000E001B00050010001A00D2
+:1002800019001D0028000530E000E200E300033003
+:100290002C002C0004305000510052004F00350259
+:1002A0001E021F0220022102220223022402250232
+:1002B000260227022A004C003A003B003C003D0089
+:1002C0003E003F002D022E022F02300231020100BB
+:1002D000400041004200430044004500010001008D
+:1002E0000100010001000100010001000100010006
+:1002F000010001000100AB00AA00A900AE0035001A
+:100300001E001F00200021002200230024002500E1
+:10031000260027002A004C003A003B003C003D002C
+:100320003E003F002D002E002F0030003100010064
+:10033000400041004200430044004500010001002C
+:1003400001000100010001000100010001000100A5
+:10035000010001000100AB00AA00A900AE000000EE
+:10036000000000000000000000000000000000008D
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000003301A
+:1003B00000000000043000000000000000001E00EB
+:1003C0001E001E001E001E001E001E001E001E003D
+:1003D0001E001E001E00000014001A000800150078
+:1003E00017001C0018000C00120013002F00000062
+:1003F00004001600070009000A000B000D000E00A3
+:100400000F00330034000D3000000000060019001A
+:1004100000000000110010000000000000000000BB
+:1004200000000000000000000000000000000000CC
+:1004300000000000000000000000000000000000BC
+:1004400000000000000000000000000000000000AC
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000010078
+:100780000050010001000100010001000100010012
+:10079000010001004C00010001000100073006309B
+:1007A000135012500030013002300C3001000100B3
+:1007B0000B300A300930083001000100010001004F
+:1007C0000100010001000100010001000100010021
+:1007D00001000100010001000100010001002803E7
+:1007E000540068006500200050006C0061006E003D
+:1007F00063006B0020004B006500790062006F0011
+:1008000061007200640000002C034F00720074004D
+:1008100068006F006C0069006E0065006100720086
+:1008200020004B006500790062006F0061007200DB
+:100830006400730000000403090409026D00040150
+:1008400000A0FA09040000010301010009211101BF
+:100850000001223F000705810308000A0904010086
+:100860000103010200092111010001224D000705C9
+:10087000820308000A0904020001030000000921A4
+:10088000110100012236000705830308000A09044C
+:1008900003000103000000092111010001223900B9
+:1008A000070584031000011201100100000008ED8B
+:1008B000FE606001000102000105010906A10105B9
+:1008C0000719E029E7150025019508750181020542
+:1008D0000819012905950575019102950175039186
+:1008E0000105071900297715002501957875018103
+:1008F00002C005010980A101850216010026B7008A
+:100900001A01002AB700751095018100C0050C0975
+:1009100001A1018503160100269C021A01002A9CF0
+:1009200002751095018100C005010902A1010901AC
+:10093000A100050919012905150025019505750175
+:100940008102950175038101050109300931158185
+:10095000257F95027508810609381581257F950147
+:1009600075088106050C0A38021581257F950175E9
+:10097000088106C0C005010906A101050719E02983
+:10098000E71500250195087501810295017508811B
+:100990000105081901290595057501910295017553
+:1009A0000391010507190029FF150025FF9506751C
+:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B
+:1009C00004B603FE24C08091690490916A04A0914A
+:1009D0006B04B0916C048730904BA740B04BB9F4D6
+:1009E0001092690410926A0410926B0410926C04C5
+:1009F00014BE84B7877F84BF88E10FB6F8948093D4
+:100A00006000109260000FBEE0E0F8E3099513E08B
+:100A1000A0E0B1E0E2E4F4E602C005900D92A23657
+:100A2000B107D9F714E0A2E6B3E001C01D92A936E0
+:100A3000B107E1F70E94FD150C941F320C940000E1
+:100A4000279A2F988FEF9FEF9093870080938600CF
+:100A50008AE08093800089E1809381000C94562D78
+:100A6000282F81110BC080918000877F80938000A8
+:100A700010928D0010928C002F9808952F988091DD
+:100A80008000886080938000233019F48FEF9FEFFF
+:100A90000FC083E090E0821B9109880F991F2FEF10
+:100AA0003FEFA90102C0569547958A95E2F7CA0122
+:100AB00090938D0080938C000895CF93DF93EC0189
+:100AC0000E94ED28BE0180E090E0DF91CF910C9470
+:100AD00018250F931F93462F50E04E30510508F014
+:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499
+:100AF000E331882309F4D3C000E010E0980140E01E
+:100B000064E070E089E292E00E942B1281E090E0C4
+:100B10000FC0882309F4C3C000E010E0980140E052
+:100B200066E070E089EB91E00E942B1282E090E099
+:100B30000E945D05B4C0882309F4B1C000E010E054
+:100B4000980140E068E070E089EE91E00E942B128D
+:100B500084E090E0EDCF882311F083E005C083E0CE
+:100B60000CC0882349F084E00E94952540E164E0B0
+:100B700083E00E946D0A93C084E00E94B625F6CF00
+:100B8000882331F085EE0E947F1C0E94AD2D87C026
+:100B900085EE0E94471D83C0882309F480C00E940F
+:100BA000BF0D7DC0882309F47AC00E94B80D00E013
+:100BB00010E0980140E065E070E089E492E027C031
+:100BC000882309F46CC085E00E94B6250E94E00DE0
+:100BD00066C0882309F463C000E010E0980140E09B
+:100BE00068E070E089E191E00E942B1285E00E94AC
+:100BF000952555C0882309F452C00E94BE1200E01A
+:100C000010E0980140E068E070E089E191E00E9426
+:100C10002B1245C0882309F442C00E94C912EFCFAD
+:100C20008823E9F100E010E0980140E066E070E020
+:100C300089E891E00E942B1284E00E94B62583E0AF
+:100C40000E94B62580E10E94B62585E00E94B62567
+:100C50000E94E00D86E00E9495250E94DA2881110D
+:100C600002C00E94B6280E94F22890E09093680487
+:100C7000809367048068809367040E94F6280FC001
+:100C8000882369F000E010E0980140E066E070E041
+:100C900089E591E00E942B1286E00E94B62580E053
+:100CA00090E01F910F9108950F931F932FEF89EFFD
+:100CB00090E0215080409040E1F700C0000000E04B
+:100CC00010E0980140E065E070E089E492E00E9465
+:100CD0002B121F910F9108950F931F9300E010E0C6
+:100CE000980140E063E070E081E091E00E942B1207
+:100CF0002FEF82E597E0215080409040E1F700C05F
+:100D000000001F910F910895CF92DF92EF92FF9212
+:100D10000F931F93CF93DF93CDB7DEB7CC58D10994
+:100D20000FB6F894DEBF0FBECDBF2091210425FF82
+:100D3000C5C08C01FC01928180910001992309F4C6
+:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF
+:100D50000D929A95E1F7F8019081E0916203F0918C
+:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6
+:100D70003D1FE20FF31F60817181680F711D88278D
+:100D800077FD8095982F0E94F12E20E030E040E41E
+:100D900051E40E94562E6B017C01F801218184E010
+:100DA00090E0821B9109BC01882777FD8095982FE0
+:100DB0000E94F12E9B01AC01C701B6010E94EE2DED
+:100DC0009B01AC0160E070E080E090E40E94643040
+:100DD00020E030E04CE551E40E9401304FE050E06B
+:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103
+:100DF000CF911F910F91FF90EF90DF90CF900C94C7
+:100E0000CB1196E4EEE8F2E0DE01119601900D922E
+:100E10009A95E1F7F8019081E0916203F091630304
+:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9
+:100E3000E20FF31F60817181680F711D882777FDB4
+:100E40008095982F0E94F12E20E030E040E451E49C
+:100E50000E94562E6B017C01F801218184E090E014
+:100E6000821B9109BC01882777FD8095982F0E94ED
+:100E7000F12E9B01AC01C701B6010E94EE2D9B0132
+:100E8000AC0160E070E080E090E40E94643020E01B
+:100E900030E04CE551E40E940130C457DF4F0FB6FB
+:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0
+:100EB000FF90EF90DF90CF900C94130EC457DF4F4C
+:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B
+:100ED0000F91FF90EF90DF90CF90089508950E94BA
+:100EE00020056E9A769A0C9454060C946E070C9416
+:100EF00084060895880F991FFC01E250F040859107
+:100F000094910895880F991FFC01E258FE4F859136
+:100F1000949108950F931F93CF93DF93EC01811564
+:100F200020E49207A0F5C11580E3D80708F0E1C0DE
+:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C
+:100F4000D10578F4C53AD10508F074C0C130D10597
+:100F500009F46DC008F4DEC1C430D10508F0DDC16C
+:100F6000D9C1CB3BD10508F470C0D4C1C11590E202
+:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA
+:100F8000C03FD10508F4C6C18E01106506C2C1304C
+:100F900080E5D80709F4BDC068F5C13120E4D20767
+:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0
+:100FB000CF70DD278E01146DF0C1C33120E4D2075C
+:100FC00009F4A4C008F49FC0C115D04509F0A2C11E
+:100FD0000E945C210E94E00D0E946C069FEF24E3BA
+:100FE0008CE0915020408040E1F700C000000E945A
+:100FF0007928D3C1C11520E6D20730F4C11581E5A7
+:10100000D80708F48CC02DC1C11590E7D90708F4A2
+:1010100081C1C11520E8D20708F478C1C11580E963
+:10102000D80708F077C1DF708E01106AB6C101E001
+:1010300010E0B3C1C53AD10509F471C1C63AD10572
+:1010400009F070C102E810E4A8C1C83AD10509F45A
+:101050006CC1C93AD10509F46BC1CA3AD10509F48A
+:101060006AC1CB3AD10509F469C1CC3AD10509F47A
+:1010700068C1CD3AD10509F467C1C03BD10509F477
+:1010800066C1CE3AD10509F465C1CF3AD10509F45C
+:1010900064C1C13BD10509F463C1C23BD10509F468
+:1010A00062C1C33BD10509F461C1C43BD10509F458
+:1010B00060C1C53BD10509F45FC1C63BD10509F448
+:1010C0005EC1C73BD10509F45DC1C83BD10509F438
+:1010D0005CC1C93BD10509F45BC1CA3BD10509F428
+:1010E0005AC100E014E459C1CE019F700E948207EA
+:1010F00055C1DD278E01106C50C100E011ED4DC1CE
+:1011000000E010ED4AC100E012ED47C100E013ED30
+:1011100044C180913D04816080933D043EC10E94A2
+:10112000DA28811102C00E94B6280E94F22890E0BD
+:101130009093680480936704C23090E5D90721F446
+:1011400080916704816086C0C43020E5D20721F415
+:101150008091670482607EC0C63080E5D80721F4A4
+:1011600080916704846076C0C83090E5D90719F48F
+:101170008091670427C0CA3020E5D20721F480910E
+:101180006704806167C0CC3080E5D80721F4809186
+:10119000670480625FC0CE3090E5D90721F480916A
+:1011A0006704806457C0C03120E5D20721F48091E4
+:1011B000670480684FC0C23180E5D80729F4809168
+:1011C00067048460886046C0C33090E5D90721F485
+:1011D000809167048E7F3EC0C53020E5D20721F4A0
+:1011E000809167048D7F36C0C73080E5D80721F431
+:1011F000809167048B7F2EC0C93090E5D90719F420
+:101200008091670426C0CB3020E5D20721F480917D
+:1012100067048F7E1FC0CD3080E5D80721F4809110
+:1012200067048F7D17C0CF3090E5D90721F48091F6
+:1012300067048F7B0FC0C13120E5D20721F4809174
+:1012400067048F7707C0C331D04531F480916704BC
+:101250008B7F877F80936704809167040E94F628C4
+:101260009CC08D2F99278F70992781309105D9F4D3
+:101270009E012370332702C0880F991F2A95E2F739
+:101280009C688E0144E0000F111F4A95E1F700278A
+:101290001370802B912B53E0CC0FDD1F5A95E1F793
+:1012A000C076DD272FC08230910531F4DC2FCC27AA
+:1012B0008E01016F106A71C08330910569F4CE010F
+:1012C0008370992701E010E002C0000F111F8A957A
+:1012D000E2F7C8019C680FC0049709F05EC0CE0118
+:1012E0008370992701E010E002C0000F111F8A955A
+:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9
+:10130000C07ED7708C010C2B1D2B47C0DF708E0167
+:10131000106243C000E010E040C08E013EC001E812
+:1013200010E43BC003E810E438C002EE14E435C01A
+:1013300009EE14E432C00AEE14E42FC005EB14E405
+:101340002CC006EB14E429C007EB14E426C00CEC17
+:1013500014E423C00DEC14E420C003E815E41DC020
+:101360000AE815E41AC002E915E417C004E915E417
+:1013700014C001E216E411C003E216E40EC004E258
+:1013800016E40BC005E216E408C006E216E405C048
+:1013900007E216E402C00AE216E4C801DF91CF9129
+:1013A0001F910F9108959CE0799FF001112490E323
+:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7
+:1013C000E258FE4F85919491803E9105E0F4803C77
+:1013D000910558F58133910509F46FC048F48932BD
+:1013E000910509F463C08A32910509F46DC072C099
+:1013F00089339105E9F082389105D1F08533910563
+:1014000009F44DC067C0833E910581F138F4803EF8
+:101410009105B9F0823E9105D9F05CC0863E9105F8
+:1014200061F1873E9105A1F155C00E947A070895A8
+:101430002091670420FD02C021FF4CC080EE90E0A7
+:1014400049C08091670480FFF9CF89E390E042C0F2
+:101450008091670482FF0EC08091670484FF03C0FF
+:1014600080E090E037C083EE90E034C08091670464
+:1014700082FFF2CF82EE90E02DC08091670483FF5F
+:101480000BC08091670484FDEBCF87EE90E022C013
+:101490008091670483FFF5CF86EE90E01BC08091BA
+:1014A000670485FF07C089E290E014C0809167045B
+:1014B00085FFF9CF85E390E00DC08091670486FF3A
+:1014C00007C08AE290E006C08091670486FFF9CFEA
+:1014D00081E390E00E948A070895CF92DF92EF9215
+:1014E000FF920F931F9301E010E020E030E06801CD
+:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0
+:1015000004C0000F111F221F331F6A95D2F70C2948
+:101510001D292E293F29C0902104D0902204E0905B
+:101520002304F0902404C022D122E222F322842F4B
+:10153000C016D106E206F30641F41F910F91FF9009
+:10154000EF90DF90CF900C9495251F910F91FF9015
+:10155000EF90DF90CF900C94B62508950C94AD0ACF
+:101560005F926F927F928F929F92AF92BF92CF9233
+:10157000DF92EF92FF920F931F93CF93DF93CDB73C
+:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1
+:1015900001966C014E0199E0890E911C20E030E02B
+:1015A00040E050E060E070E000E010E0E12CF12C61
+:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49
+:1015C000F2E0A62DB52D872D01900D928A95E1F7B9
+:1015D000F601819191916F01FC01E07FFF27E032DC
+:1015E000F10559F48F709927F50102C0EE0FFF1F26
+:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465
+:101600008F709927F50102C0EE0FFF1F8A95E2F750
+:101610000E2B1F2B29C0E034F10559F48F70992748
+:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC
+:101630001BC0E035F10559F48F709927F50102C000
+:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1
+:10165000F10551F48F709927F50102C0EE0FFF1FBD
+:101660008A95E2F72E2B3F2BC814D90409F0A7CF97
+:1016700084B19E2D9095892384B985B1E82AE5B877
+:1016800087B1902F9095892387B988B1082B08B925
+:101690008AB1962F909589238AB98BB1682B6BB943
+:1016A0008DB1942F909589238DB98EB1482B4EB969
+:1016B00080B3922F9095892380BB81B3282B21BBC7
+:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145
+:1016D0001F910F91FF90EF90DF90CF90BF90AF9050
+:1016E0009F908F907F906F905F9008955F926F9220
+:1016F0007F928F929F92AF92BF92CF92DF92EF92A2
+:10170000FF920F931F93CF93DF93CDB7DEB7689708
+:101710000FB6F894DEBF0FBECDBF85B7806885BF1A
+:1017200085B7806885BF0E94B00ACE0101966C0122
+:101730004E0199E1890E911C20E030E040E050E03C
+:1017400060E070E000E010E0E12CF12C6C2C5D2CEE
+:1017500088E1782EAA24A394B12CECEDF2E0A62D1A
+:10176000B52D872D01900D928A95E1F7F6018191B3
+:1017700091916F01FC01E07FFF27E032F10559F400
+:101780008F709927F50102C0EE0FFF1F8A95E2F7CF
+:10179000EE2AFF2A37C0E033F10559F48F709927FC
+:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB
+:1017B00029C0E034F10559F48F709927F50102C072
+:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3
+:1017D000F10559F48F709927F50102C0EE0FFF1F34
+:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0
+:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F
+:101800002E2B3F2BC814D90409F0A7CF84B19E2DED
+:101810009095892384B985B1E82AE5B887B1902FDE
+:101820009095892387B988B1082B08B98AB1962F7A
+:10183000909589238AB98BB1682B6BB98DB1942FA0
+:10184000909589238DB98EB1482B4EB980B3922FD4
+:101850009095892380BB81B3282B21BB10926D0307
+:1018600010926C03109265031092640310926F0340
+:1018700010926E0310926703109266031092710328
+:101880001092700310926903109268031092730310
+:101890001092720310926B0310926A0368960FB64F
+:1018A000F894DEBF0FBECDBFDF91CF911F910F9196
+:1018B000FF90EF90DF90CF90BF90AF909F908F9070
+:1018C0007F906F905F900C946F077F928F929F92A2
+:1018D000AF92BF92CF92DF92EF92FF920F931F933E
+:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6
+:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7
+:1019000083E0F82E98E0792EBC2CAD2C01E010E09D
+:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6
+:10192000872D01900D928A95E1F7F60181919191B1
+:101930006F019C01207F33272032310591F424B1BF
+:101940008F709927A80102C0440F551F8A95E2F7AE
+:10195000CA01922F982B94B995B18095892385B9A6
+:1019600053C02033310591F427B18F709927F801C6
+:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E
+:1019800097B998B18095892388B93EC02034310534
+:1019900091F42AB18F709927A80102C0440F551FF6
+:1019A0008A95E2F7CA01922F982B9AB99BB180953C
+:1019B00089238BB929C02035310591F42DB18F7061
+:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9
+:1019D000922F982B9DB99EB1809589238EB914C002
+:1019E0002036310589F420B38F709927A80102C0F1
+:1019F000440F551F8A95E2F7CA01922F982B90BB8E
+:101A000091B38095892381BB50EA5A95F1F7BE01C5
+:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F
+:101A2000DE011196882D01900D928A95E1F7FB0158
+:101A300081919191BF01FC01E07FFF27E032F10528
+:101A400011F4E3B113C0E033F10511F4E6B10EC0B7
+:101A5000E034F10511F4E9B109C0E035F10511F404
+:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED
+:101A7000992702C0F595E7958A95E2F7E0FD08C041
+:101A8000C801042E02C0880F991F0A94E2F702C011
+:101A900080E090E0282B392B4F5F5F4F4C30510591
+:101AA00009F0BCCFF701808191818217930721F063
+:101AB00031832083909271020E94B00AF2E0EF0E0F
+:101AC000F11C4CE6E41643E0F40609F025CF8091C2
+:101AD0007102882361F1815080937102882339F06B
+:101AE0008FE99FE00197F1F700C0000020C08091CE
+:101AF00064039091650390936D0380936C038091D0
+:101B000066039091670390936F0380936E038091B7
+:101B1000680390916903909371038093700380919F
+:101B20006A0390916B0390937303809372030E94F6
+:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B
+:101B4000DF91CF911F910F91FF90EF90DF90CF9099
+:101B5000BF90AF909F908F907F900895E82FF0E016
+:101B6000EE0FFF1FE459FC4F808191810895089585
+:101B7000809152048160809352040C9408298091D2
+:101B800052048E7F809352040C9408290E94DA2814
+:101B9000811102C00E94B6280E9404298093520439
+:101BA0003E9A809171008D7F8093710082E08093D6
+:101BB00090008AE18093910081E0809376030895FC
+:101BC00080917603811102C00E94C60D1092C60357
+:101BD0001092C503809171008D7F80937100809178
+:101BE00090008F7780939000109288031092870363
+:101BF0001092BF031092C0031092C1031092C2034F
+:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E
+:101C100011921192119211921D921D9283E0ED3B4F
+:101C2000F807B1F70895CF92DF92EF92FF920F93EA
+:101C30001F93CF93DF9320918703222309F484C05D
+:101C40006B017C0180917603811102C00E94C60D58
+:101C50000DEB13E0C7E0D0E0A7019601F8019291E7
+:101C60008291729162918F010E94522E811131C036
+:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219
+:101C8000118212821382DE01AA0FBB1FA357BC4F21
+:101C900011961C921E92C730D105E9F0219644811D
+:101CA0005581668177814083518362837383148277
+:101CB00015821682178212968D919C911397119618
+:101CC0009C938E9313961C921E92129734961296A2
+:101CD000E2CF219708F68091C5039091C603019742
+:101CE00097FD05C09093C6038093C50304C010926E
+:101CF000C6031092C5038091C5039091C60320913D
+:101D0000C3033091C4032817390724F01092C40389
+:101D10001092C303892BC1F4809171008D7F809351
+:101D20007100809190008F77809390001092BF0394
+:101D30001092C0031092C1031092C2031092BE030E
+:101D40001092BD0310928703DF91CF911F910F91E5
+:101D5000FF90EF90DF90CF9008951F920F920FB6F3
+:101D60000F9211244F925F926F927F928F929F9267
+:101D7000AF92BF92CF92DF92EF92FF922F933F9359
+:101D80004F935F936F937F938F939F93AF93BF9383
+:101D9000CF93DF93EF93FF9380918703882309F418
+:101DA0009BC1C091C503D091C6031C161D060CF043
+:101DB00093C14090770350907803609079037090BE
+:101DC0007A0320E030E0A901C301B2010E94FD2F97
+:101DD00018160CF065C0C130D10509F452C08091CD
+:101DE000C3039091C403BE010E94CF317C01909344
+:101DF000C4038093C3038090890390908A03A090CA
+:101E00008B03B0908C0320E030E040E85FE3C50135
+:101E1000B4010E94EE2D6093890370938A0380932E
+:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44
+:101E3000E356FC4FA30192016081718182819381FD
+:101E40000E94562E20E030E040E05EE30E94013028
+:101E50009B01AC01C501B4010E94FD2F18168CF442
+:101E6000C7010196BE010E94CF319093C4038093B5
+:101E7000C3031092890310928A0310928B0310926D
+:101E80008C03E091C303F091C403EE0FFF1FEE0F2C
+:101E9000FF1FE356FC4F6081718182819381D0C026
+:101EA000C090BF03D090C003E090C103F090C20384
+:101EB00020E030E0A901C701B6010E94522E21970F
+:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3
+:101ED000E356FC4F80809180A280B380A5019401DD
+:101EE000C701B6010E94522E87FF31C0A50194019F
+:101EF00060E070E08CED93EC0E94562E20E030E024
+:101F000040E451E40E94562E20E030E040E05FE3E0
+:101F10000E9401309B01AC0160E070E080E090E441
+:101F20000E9464309B01AC01C501B4010E940130E4
+:101F30009B01AC01C701B6010E94522E87FF07C06A
+:101F4000A701960160E070E08CED93E439C0A50133
+:101F50009401C701B6010E94FD2F18160CF055C060
+:101F6000A501940160E070E08CED93E40E94562E90
+:101F700020E030E040E451E40E94562E20E030E0C2
+:101F800040E05FE30E9401309B01AC0160E070E043
+:101F900080E090E40E9464309B01AC01C501B40173
+:101FA0000E9401309B01AC01C701B6010E94FD2FC8
+:101FB00018165CF5A701960160E070E08CED93ECDB
+:101FC0000E94562E20E030E040E451E40E94562E5C
+:101FD00020E030E040E05FE30E9401309B01AC0173
+:101FE00060E070E080E090E40E9464309B01AC010E
+:101FF000C701B6010E9401306093BF037093C00314
+:102000008093C1039093C20313C0FE01EE0FFF1F24
+:10201000EE0FFF1FE356FC4F80819181A281B381B7
+:102020008093BF039093C003A093C103B093C203F6
+:102030006091BF037091C0038091C1039091C2036E
+:1020400020917403309175032F3F4FEF340731F027
+:102050002F5F3F4F30937503209374030E94D41277
+:102060006B017C0120E034E244EF51E40E94522EE7
+:1020700087FF08C086EFC82E88E2D82E84EFE82EAE
+:1020800081E4F82E20E030E040E051E4C701B601E1
+:102090000E9401309B01AC0160E074E284E79BE4A4
+:1020A0000E94562E6B017C010E94BE2E70939700F9
+:1020B00060939600209172023091730240917402F5
+:1020C00050917502C701B6010E9401300E94BE2ED8
+:1020D000709399006093980080918803882309F495
+:1020E00033C1C0908303D0908403E0908503F090C7
+:1020F000860320E030E0A901C701B6010E94FD2F50
+:102100001816D4F580917403909175038F3F2FEFCB
+:10211000920729F001969093750380937403C70189
+:10212000B6010E94D41220E030E040E051E40E9469
+:1021300001309B01AC0160E074E284E79BE40E9403
+:10214000562E6B017C010E94BE2E70939700609307
+:102150009600209172023091730240917402509166
+:102160007502C701B6010E9401300E94BE2E709315
+:1021700099006093980008C0109297001092960002
+:10218000109299001092980060917D0370917E03E7
+:102190006F5F7F4F70937E0360937D032091960065
+:1021A0003091970080E090E0232BF1F0C0919600F1
+:1021B000D09197000E94EF2E6B017C01BE0180E060
+:1021C00090E00E94EF2E9B01AC0160917F03709123
+:1021D000800380918103909182030E94562E20E01B
+:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8
+:1021F00020E030EE4FEF54E460917F037091800354
+:1022000080918103909182030E9401309B01AC0177
+:10221000C701B6010E94FD2F87FD96C080917B0308
+:102220008F5F80937B0390E020914E0430914F04A8
+:1022300082179307A0F080915904882319F0109217
+:102240007B030DC0809171008D7F80937100809120
+:1022500090008F7780939000109288037DC08091CA
+:102260007C03C0917B03811128C0C0905304D0909F
+:102270005404E0905504F090560420E030E0A901A9
+:10228000C701B6010E94FD2F1816BCF481E08093AF
+:102290007C031092830310928403109285031092A2
+:1022A0008603C0927F03D0928003E0928103F09274
+:1022B0008203C150C0937B0343C010927C031092F1
+:1022C000750310927403E0915004F091510448E0BA
+:1022D000C49FE00DF11D112480819181A281B38101
+:1022E0008093830390938403A0938503B093860324
+:1022F00020E030E040E85EE364817581868197816B
+:102300000E9401306B017C0120E030E048EC52E497
+:1023100060917602709177028091780290917902B3
+:102320000E94562E9B01AC01C701B6010E940130EC
+:1023300060937F0370938003809381039093820363
+:1023400010927E0310927D038091520480FD04C0A0
+:102350001092880310928703FF91EF91DF91CF9144
+:10236000BF91AF919F918F917F916F915F914F91AD
+:102370003F912F91FF90EF90DF90CF90BF90AF9063
+:102380009F908F907F906F905F904F900F900FBEB7
+:102390000F901F901895CF92DF92EF92FF92CF93FC
+:1023A000DF936B017C01EA0180917603811102C009
+:1023B0000E94C60D8091520480FF46C08091C503E3
+:1023C0009091C60308970CF03FC0809171008D7FFB
+:1023D000809371008091880381110E94E00D81E05B
+:1023E00080938703109275031092740320E030E00D
+:1023F000A901C701B6010E94FD2F1816DCF48091D7
+:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7
+:10241000E356FC4FC082D182E282F382FC01EE0FD0
+:10242000FF1FE357FC4FD183C08301969093C603EF
+:102430008093C503809171008260809371008091C8
+:102440009000806880939000DF91CF91FF90EF9093
+:10245000DF90CF9008958F929F92AF92BF92CF92CC
+:10246000DF92EF92FF920F931F93CF93DF93EC01D4
+:102470007B01D42E4801590180917603811102C05D
+:102480000E94C60D8091520480FF6BC08091710044
+:102490008D7F809371008091870381110E94E00DF0
+:1024A00081E080938803D0935104C0935004F0924C
+:1024B0004F04E0924E04D0925904809253049092BB
+:1024C0005404A0925504B0925604109289031092BD
+:1024D0008A0310928B0310928C0310927B038881E5
+:1024E0009981AA81BB818093830390938403A093F5
+:1024F0008503B093860320E030E040E85EE36C8122
+:102500007D818E819F810E9401306B017C0120E0E2
+:1025100030E048EC52E4609176027091770280914D
+:102520007802909179020E94562E9B01AC01C7015E
+:10253000B6010E94013060937F0370938003809303
+:1025400081039093820310927E0310927D03809109
+:102550007100826080937100809190008068809308
+:102560009000DF91CF911F910F91FF90EF90DF903E
+:10257000CF90BF90AF909F908F9008958091C703A8
+:1025800090E0019666E070E00E94CF318093C7032F
+:1025900008958091C70390E0019766E070E00E9483
+:1025A000CF318093C70308958F929F92AF92BF92CD
+:1025B000CF92DF92EF92FF920F931F93CF93DF930F
+:1025C0006B017C01C0917403D0917503BE0180E062
+:1025D00090E00E94EF2E4B015C01A701960160E0A4
+:1025E00070E08CE594E40E94562E9B01AC01C5017D
+:1025F000B4010E9401300E94C32E2091C7032330F2
+:1026000009F473C028F4222351F02130E9F02CC1E1
+:10261000243009F4A0C0253009F4E0C025C180E0D1
+:1026200090E0A0E0BFE38093720290937302A093C6
+:102630007402B0937502109277031092780310928F
+:10264000790310927A0310C11092770310927803E5
+:102650001092790310927A036431710540F46A3064
+:10266000710560F520E030E040E85EE32BC0693C96
+:10267000710508F0AAC080E090E00E94EF2E20E0F3
+:1026800030E040EA51E40E94ED2D20E030E044E3E8
+:1026900053E40E94562E9B01AC010E94013020E0C1
+:1026A00030E040E05EE30E9401309B01AC0160E05D
+:1026B00070E080E09EE30E94ED2D44C020E030E019
+:1026C00040E05FE3C701B6010E9401306B017C016D
+:1026D00080E090E0A0E0BEE38093720290937302EA
+:1026E000A0937402B0937502BFC01092770310924A
+:1026F00078031092790310927A034AE0469F900182
+:10270000479F300D1124C90168EB7BE00E94BB316B
+:10271000BC016C5D754077FF03C0719561957109CF
+:10272000882777FD8095982F0E94F12E2EE333ECB9
+:102730004EE259E30E94013020E030E040EC5EE3DD
+:102740000E94EE2D60937202709373028093740264
+:102750009093750289C010927703109278031092BB
+:10276000790310927A03CE0183709927892BE1F0C7
+:10277000BE016170772780E090E00E94EF2E20E09C
+:1027800030E040E05EE30E94013020E030E040E4D1
+:102790005FE30E94EE2D6093720270937302809348
+:1027A0007402909375020CC080E090E0A0E0BFE35B
+:1027B0008093720290937302A0937402B093750297
+:1027C000C770DD27CD2B09F04FC010927202109216
+:1027D0007302109274021092750246C01092770331
+:1027E000109278031092790310927A0300E010E0BF
+:1027F00020E03FE30093720210937302209374026F
+:10280000309375026739710578F180E090E00E949D
+:10281000EF2E20E030E047E153E40E94ED2D20E070
+:1028200030E04AE754E40E94562E20E030E048E4CD
+:1028300052E40E94013020E030E040EA51E40E947E
+:10284000332F0E94BE2E660F771F660F771FFB0186
+:10285000EC50FD4F2081318142815381C701B60187
+:102860000E9401306B017C01C701B601DF91CF915D
+:102870001F910F91FF90EF90DF90CF90BF90AF909E
+:102880009F908F9008958091D8030895CF93DF9300
+:1028900000D01F92CDB7DEB79C0180915E048430DA
+:1028A00019F593E099833B832A839093E9008FEF96
+:1028B0009091E800815095FD06C095ED9A95F1F74D
+:1028C00000008111F5CF8091E80085FF0DC040E048
+:1028D00050E063E070E0CE0101960E94A71680915F
+:1028E000E8008E778093E8000F900F900F90DF91B3
+:1028F000CF910895CF93DF9300D01F92CDB7DEB76D
+:1029000020915E04243021F522E029839B838A8371
+:1029100083E08093E9008FEF9091E800815095FD6E
+:1029200006C095ED9A95F1F700008111F5CF8091E1
+:10293000E80085FF0DC040E050E063E070E0CE01AC
+:1029400001960E94A7168091E8008E778093E80098
+:102950000F900F900F90DF91CF91089520915E041A
+:102960002430F1F422E02093E9002FEF3091E800C9
+:10297000215035FD06C035ED3A95F1F700002111E3
+:10298000F5CF2091E80025FF0BC040E050E065E066
+:1029900070E00E94A7168091E8008E778093E8008F
+:1029A0000895CF93DF93EC0190915E04943009F089
+:1029B00046C0809184028823D9F0809185028823C3
+:1029C000B9F09093E9008FEF9091E800815095FD68
+:1029D00006C095E19A95F1F700008111F5CF80913D
+:1029E000E80085FF2CC040E050E060E170E017C0D7
+:1029F00081E08093E9008FEF9091E800815095FD90
+:102A000006C095ED9A95F1F700008111F5CF809100
+:102A1000E80085FF14C040E050E068E070E0CE01BF
+:102A20000E94A7168091E8008E778093E80080E1ED
+:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9
+:102A4000CF91089580915D04811109C00E943C18C6
+:102A50000E9499188091E20084608093E2000895BA
+:102A600010925D040895089508950C94E12742E0C2
+:102A700061EC81E00E94B61742E061EC82E00E94C6
+:102A8000B61742E061EC83E00E94B61742E161ECC8
+:102A900084E00C94B61780916004833009F455C02B
+:102AA00030F4813071F0823009F48EC008958A309C
+:102AB00009F47AC08B3009F460C0893009F09CC0F9
+:102AC00020C080915F04813A09F096C08091E800AF
+:102AD000877F8093E8008091630490916404892B40
+:102AE00021F460E188EC93E003C060E080E090E0D6
+:102AF00070E00E94F2168091E8008B778093E800E6
+:102B0000089580915F04813209F076C0809163045A
+:102B100090916404009719F0039709F06DC08091BB
+:102B2000E800877F8093E8008091E80082FD05C07F
+:102B300080915E048111F8CF5FC08091F100809395
+:102B4000D8038091E8008B7753C080915F04813A6D
+:102B500009F052C08091630490916404892B09F0BC
+:102B60004BC08091E800877F8093E8008091E80067
+:102B700080FFFCCF8091840236C080915F04813257
+:102B8000D9F58091630490916404892BA9F5809113
+:102B9000E800877F8093E8000E94EB178091610432
+:102BA000809384020C945C2180915F04813221F532
+:102BB0008091E800877F8093E8000E94EB17809166
+:102BC00062048093D903089580915F04813AA1F44F
+:102BD0008091E800877F8093E8008091E80080FF83
+:102BE000FCCF8091D9038093F1008091E8008E772B
+:102BF0008093E8000C94EB17089584B7877F84BF17
+:102C000088E10FB6F89480936000109260000FBEC8
+:102C100090E080E80FB6F894809361009093610093
+:102C20000FBE0E948E1B0E943C180E949918809132
+:102C3000E20084608093E20078940E941F1B0E944F
+:102C4000901B8AE792E00E943A1B80915E048530D7
+:102C500069F40E949B2780915C048823B1F30E9451
+:102C6000C927882391F30E949116EFCF0E94981BE9
+:102C7000ECCF292F332723303105C9F064F42130FC
+:102C8000310581F02230310509F043C08DE690E036
+:102C90002AE338E042C021323105F1F02232310519
+:102CA00041F137C082E190E027EA38E036C0992749
+:102CB0008130910541F08230910541F0892B49F531
+:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A
+:102CD000849190E09F0121C06430D8F4E62FF0E0A9
+:102CE000EE0FFF1FE05BFC4F2081318189E090E017
+:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E
+:102D0000FC4F20813181FB01EC5BFC4F808190E026
+:102D100004C080E090E020E030E0FA0131832083BD
+:102D2000089580E189BD82E189BD09B400FEFDCF2F
+:102D30008091D8008F7D8093D8008091E0008260E0
+:102D40008093E0008091E00081FDFCCF0895CF9258
+:102D5000DF92EF92FF920F931F93CF93DF93EC01DB
+:102D60008B016A010E940A18811133C0C114D10479
+:102D700039F0F60180819181081B190BC80FD91F0A
+:102D8000E12CF12C0115110519F18091E80085FD68
+:102D900016C08091E8008E778093E800C114D104BA
+:102DA00049F0F60180819181E80EF91EF182E082FE
+:102DB00085E00FC00E940A18882321F30AC0899178
+:102DC0008093F10001501109FFEFEF1AFF0ADACFEB
+:102DD00080E0DF91CF911F910F91FF90EF90DF90F6
+:102DE000CF90089520916504309166042617370727
+:102DF00048F06115710539F42091E8002E77209391
+:102E0000E80001C0B90140E061157105A9F1209108
+:102E10005E04222309F443C0253009F442C0209106
+:102E2000E80023FD40C02091E80022FD32C020913F
+:102E3000E80020FFE9CF4091F3002091F20030E05C
+:102E4000342BFC01CF016115710559F02830310593
+:102E500040F481918093F100615071092F5F3F4FE1
+:102E6000F1CF41E02830310509F040E02091E80041
+:102E70002E772093E800C8CF4111C9CF0AC08091B6
+:102E80005E04882361F0853061F08091E80083FD65
+:102E90000AC08091E80082FFF2CF80E0089582E0CE
+:102EA000089583E0089581E00895209165043091AC
+:102EB00066042617370748F06115710539F420912B
+:102EC000E8002E772093E80001C0B901FC0120E062
+:102ED0006115710591F180915E04882309F440C069
+:102EE000853009F43FC08091E80083FD3DC08091AA
+:102EF000E80082FD2FC08091E80080FFE9CF20919B
+:102F0000F3008091F20090E0922B6115710559F069
+:102F10008830910540F424912093F100319661505E
+:102F200071090196F2CF21E0089709F020E0809125
+:102F3000E8008E778093E800CBCF2111CCCF0AC078
+:102F400080915E04882361F0853061F08091E80013
+:102F500083FD0AC08091E80082FFF2CF80E00895EF
+:102F600082E0089583E0089581E00895982F9730D6
+:102F700058F59093E900981739F07091EC00209182
+:102F8000ED005091F00003C0242F762F50E021FF78
+:102F900019C03091EB003E7F3093EB003091ED0093
+:102FA0003D7F3093ED003091EB0031603093EB00CA
+:102FB0007093EC002093ED005093F0002091EE0010
+:102FC00027FF07C09F5FD3CF8F708093E90081E018
+:102FD000089580E0089580915F0487FF11C080917B
+:102FE000E80082FD05C080915E048111F8CF11C018
+:102FF0008091E8008B770BC080915E04882349F0B4
+:103000008091E80080FFF8CF8091E8008E77809370
+:10301000E80008952091E4003091E50095E64091A4
+:10302000EC00842F817040FF22C08091E80080FD79
+:103030001CC080915E04882391F0853091F08091CE
+:10304000EB0085FD10C04091E4005091E50042176F
+:10305000530729F39A01915011F784E0089582E013
+:10306000089583E0089581E0089580E008954091F7
+:10307000E80042FFDECF08950E94AA180E94B2180D
+:10308000E0EEF0E0808181608083E8EDF0E0808117
+:103090008F77808319BCA7EDB0E08C918E7F8C93E5
+:1030A00080818F7E808310925D0408950F931F931B
+:1030B000CF93DF930E94AA180E94B218C8EDD0E007
+:1030C00088818F77888388818068888388818F7DD5
+:1030D000888319BC10925E0410925A0410925C040A
+:1030E00010925B0400EE10E0F80180818B7F8083FA
+:1030F00088818160888342E060E080E00E94B617AA
+:10310000E1EEF0E080818E7F8083E2EEF0E080816E
+:1031100081608083808188608083F80180818E7FD8
+:103120008083888180618883DF91CF911F910F9187
+:103130000895E8EDF0E080818F7E8083E7EDF0E098
+:1031400080818160808384E082BF81E080935D0420
+:103150000C945618E8EDF0E080818E7F8083109209
+:10316000E20008951092DA001092E10008951F9293
+:103170000F920FB60F9211242F933F934F935F93AB
+:103180006F937F938F939F93AF93BF93EF93FF932F
+:103190008091E10082FF0BC08091E20082FF07C0B6
+:1031A0008091E1008B7F8093E1000E941E1B809143
+:1031B000DA0080FF1FC08091D80080FF1BC0809183
+:1031C000DA008E7F8093DA008091D90080FF0DC0F5
+:1031D00080E189BD82E189BD09B400FEFDCF81E0B7
+:1031E00080935E040E94221505C019BC10925E04F3
+:1031F0000E9430158091E10080FF19C08091E200AB
+:1032000080FF15C08091E2008E7F8093E200809164
+:10321000E20080618093E2008091D8008062809318
+:10322000D80019BC85E080935E040E94341580911B
+:10323000E10084FF30C08091E20084FF2CC080E177
+:1032400089BD82E189BD09B400FEFDCF8091D8001F
+:103250008F7D8093D8008091E1008F7E8093E10084
+:103260008091E2008F7E8093E2008091E200816095
+:103270008093E20080915A04882311F084E007C013
+:103280008091E30087FD02C081E001C083E080936C
+:103290005E040E9435158091E10083FF29C0809172
+:1032A000E20083FF25C08091E100877F8093E100E9
+:1032B00082E080935E0410925A048091E1008E7F38
+:1032C0008093E1008091E2008E7F8093E200809104
+:1032D000E20080618093E20042E060E080E00E94D2
+:1032E000B6178091F00088608093F0000E9433153B
+:1032F000FF91EF91BF91AF919F918F917F916F91CE
+:103300005F914F913F912F910F900FBE0F901F90A3
+:1033100018951F920F920FB60F9211242F933F937F
+:103320004F935F936F937F938F939F93AF93BF93CD
+:10333000CF93DF93EF93FF93C091E900CF7080911B
+:10334000EC00D82FD17080FDD0E81092E900809178
+:10335000F000877F8093F00078940E94CD1910923E
+:10336000E9008091F00088608093F000CD2BCF7051
+:10337000C093E900FF91EF91DF91CF91BF91AF91A1
+:103380009F918F917F916F915F914F913F912F917D
+:103390000F900FBE0F901F9018951F93CF93DF9340
+:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C
+:1033B000EFE5F4E088E08E0F9091F10091938E1389
+:1033C000FBCF0E944B158091E80083FF1FC18091C5
+:1033D0005F0490916004492F50E04A30510508F095
+:1033E00015C1FA01EC59FF4F0C94E331803881F09C
+:1033F000823809F00BC1809163048F708093E900DB
+:103400008091EB0085FB882780F91092E90006C0C7
+:1034100080915B0490915C04911182609091E8002E
+:10342000977F9093E8008093F1001092F100C8C05C
+:10343000282F2D7F09F0EAC0882319F0823061F02F
+:10344000E5C080916104813009F0E0C0933009F05B
+:1034500080E080935C042BC080916104811127C0BF
+:10346000809163048F7009F4D1C08093E9002091AA
+:10347000EB0020FF1CC0933021F48091EB008062B0
+:1034800014C09091EB0090619093EB0021E030E04C
+:10349000A90102C0440F551F8A95E2F74093EA0044
+:1034A0001092EA008091EB0088608093EB0010920C
+:1034B000E9008091E800877F86C08111A7C0109144
+:1034C00061041F778091E3008078812B8093E30073
+:1034D0008091E800877F8093E8000E94EB1780913D
+:1034E000E80080FFFCCF8091E30080688093E300D8
+:1034F000111102C082E001C083E080935E0486C0A7
+:103500008058823008F082C08091610490916204FA
+:103510008C3D53E0950779F583E08A838AE28983BD
+:103520004FB7F894DE01139620E03EE051E2E32F1E
+:10353000F0E050935700E49120FF03C0E295EF7054
+:103540003F5FEF708E2F90E0EA3010F0C79601C019
+:10355000C0968D939D932F5F243149F74FBF809183
+:10356000E800877F8093E8006AE270E0CE01019670
+:103570000E94F21614C0AE014F5F5F4F609163046A
+:103580000E943916BC01009709F440C09091E800F0
+:10359000977F9093E80089819A810E9455178091C6
+:1035A000E8008B778093E80031C0803879F580910E
+:1035B000E800877F8093E80080915A048093F100AF
+:1035C0008091E8008E778093E8000E94EB171EC080
+:1035D00081111CC0909161049230C0F48091E80088
+:1035E000877F8093E80090935A040E94EB178091A4
+:1035F0005A04811106C08091E30087FD02C081E07A
+:1036000001C084E080935E040E9437158091E80039
+:1036100083FF0AC08091E800877F8093E800809153
+:10362000EB0080628093EB00AA960FB6F894DEBFA1
+:103630000FBECDBFDF91CF911F9108950895CF9315
+:1036400080915E048823A1F0C091E900CF70909131
+:10365000EC00892F817090FD80E8C82B1092E90062
+:103660008091E80083FD0E94CD19CF70C093E900DE
+:10367000CF9108959093DF038093DE030895E09146
+:10368000DE03F091DF03309721F00190F081E02D0F
+:10369000099480E00895E091DE03F091DF03309714
+:1036A00021F00280F381E02D09940895E091DE037A
+:1036B000F091DF03309721F00480F581E02D09942B
+:1036C00008952091DC033091DD038217930771F098
+:1036D0009093DD038093DC03E091DE03F091DF0340
+:1036E000309721F00680F781E02D0994089520910C
+:1036F000DA033091DB038217930771F09093DB03B9
+:103700008093DA03E091DE03F091DF03309721F03C
+:103710000084F185E02D0994089508950C948D1B83
+:103720000E9415280E94760B0E949B280C94562D0F
+:103730004F925F927F928F929F92AF92BF92CF9261
+:10374000DF92EF92FF920F931F93CF93DF93CDB74A
+:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A
+:10376000650C91EEC92E93E0D92E00E010E0AA245A
+:10377000A394B12C702E802F0E94AE0D4C01F60147
+:10378000419051906F014826592641145104B1F4DB
+:103790000F5F1F4F0430110569F78FEF89838A830C
+:1037A0001B820E941E288160782F9D838C83498113
+:1037B0005A816B818D810E94511C3AC080913D04D9
+:1037C00081FD0E94B70D20E030E07501022E02C09D
+:1037D000EE0CFF1C0A94E2F7C70184219521892B86
+:1037E00009F12E837F828E209F2091E0892809F4A1
+:1037F00090E098870E941E288160782F9A87898799
+:103800004E815F8168858A850E94511C000F111FBF
+:10381000F801EF51FC4F80819181E826F926F18271
+:10382000E08206C02F5F3F4F2C30310571F6B0CFDC
+:103830000E94872A1091E0030E943F1B1817D9F0BD
+:103840000E943F1B8093E0032A960FB6F894DEBFD8
+:103850000FBECDBFDF91CF911F910F91FF90EF90E1
+:10386000DF90CF90BF90AF909F908F907F905F90B0
+:103870004F900C94AE0A2A960FB6F894DEBF0FBE96
+:10388000CDBFDF91CF911F910F91FF90EF90DF900F
+:10389000CF90BF90AF909F908F907F905F904F9010
+:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B
+:1038B000DEBF0FBECDBF4F83588769877A878B875E
+:1038C000DE01119686E0FD0111928A95E9F785E007
+:1038D000FE01379601900D928A95E1F749815A8150
+:1038E0006B817C818D819E810E94F6232B960FB681
+:1038F000F894DEBF0FBECDBFDF91CF910895CF9377
+:10390000882309F4C2C0C82F823859F40E943F1B93
+:1039100081FDBBC089E30E949F260E946C2789E33A
+:103920000CC0833879F40E943F1B80FDAEC083E554
+:103930000E949F260E946C2783E50E94E126CF917A
+:103940000C946C27843859F40E943F1B82FD9DC063
+:1039500087E40E949F260E946C2787E4EECF8CEFBD
+:103960008C0F813A48F48C2F0E94BE2C81118DC09F
+:103970008C2F0E949F26E3CF80E28C0F883048F482
+:10398000C77081E001C0880FCA95EAF70E94252719
+:10399000D6CF8BE58C0F833078F4C53A29F0C63A40
+:1039A00031F083E890E005C081E890E002C082E851
+:1039B00090E0CF910C94611B88E58C0F833108F067
+:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F
+:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F
+:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F
+:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D
+:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092
+:103A100090E038C082EE90E035C089EE90E032C090
+:103A20008AEE90E02FC085EB90E02CC086EB90E012
+:103A300029C087EB90E026C08CEC90E023C08DEC91
+:103A400090E020C083E891E01DC08AE891E01AC0B0
+:103A500082E991E017C084E991E014C081E292E02C
+:103A600011C083E292E00EC084E292E00BC085E2D6
+:103A700092E008C086E292E005C087E292E002C0D0
+:103A80008AE292E0CF910C94771BCF91089588231E
+:103A900009F44BC0823859F40E943F1B81FF45C096
+:103AA00089E30E949F260E946C2789E30CC083381B
+:103AB00071F40E943F1B80FF38C083E50E949F265F
+:103AC0000E946C2783E50E94E1260C946C278438C1
+:103AD00059F40E943F1B82FF28C087E40E949F2662
+:103AE0000E946C2787E4EFCF9CEF980F913A58F330
+:103AF00090E2980F983050F4877091E001C0990FD0
+:103B00008A95EAF7892F0E942B27DFCF9BE5980F34
+:103B1000933020F480E090E00C94611B885A83314C
+:103B200020F480E090E00C94771B0895882321F026
+:103B30000E9425270C946C270895882321F00E9469
+:103B40002B270C946C270895BF92CF92DF92EF92AF
+:103B5000FF920F931F93CF93DF9300D000D000D03C
+:103B6000CDB7DEB725E0FC01DE01119601900D9284
+:103B70002A95E1F7FC01D0801181028125812295EF
+:103B80002F7043815481452B09F472C31F3F21F4E8
+:103B9000FFEFDF1609F46CC37C012E830E947707C8
+:103BA000D9821A8369817A81802F0E949B26182FDF
+:103BB000B92E0E9450260E9417252E81002319F04D
+:103BC0000E9442272E81EB2DE295EF70F0E0E25942
+:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E
+:103BE000882319F0F29480EFF822002389F0FF2057
+:103BF00009F47CC280E2810F883020F48F2D0E946E
+:103C0000252703C08F2D0E9435270E946C276EC286
+:103C1000812F0E94471DFF2009F42AC3105E8F2DBB
+:103C2000183018F40E942B2702C00E943B272696CA
+:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD
+:103C40000F91FF90EF90DF90CF90BF900C946C2776
+:103C50008B2D807F9B2D9F70803211F4892F03C0A4
+:103C6000892F8295807F112319F0113011F12BC01B
+:103C70000023A9F0222389F1213079F526960FB689
+:103C8000F894DEBF0FBECDBFDF91CF911F910F9192
+:103C9000FF90EF90DF90CF90BF900C945527222398
+:103CA00019F0213009F4E4C28E830E9458278E81D6
+:103CB0009BC1002321F0263008F0DAC20EC0253067
+:103CC00008F0D6C291C10023C9F0222331F0F701D8
+:103CD000958190FF0BC29F70958326960FB6F8943E
+:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F
+:103CF000EF90DF90CF90BF900C94961D222309F493
+:103D000073C109C22B2D26952695237030E021150D
+:103D1000310521F021303105D1F0AAC2002321F074
+:103D2000812F9B2D937002C080E090E026960FB605
+:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1
+:103D4000FF90EF90DF90CF90BF900C94611B002309
+:103D500021F0812F9B2D937002C080E090E0269689
+:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C
+:103D70000F91FF90EF90DF90CF90BF900C94771B46
+:103D8000812F002319F00E948F2902C00E94F72979
+:103D900026960FB6F894DEBF0FBECDBFDF91CF9150
+:103DA0001F910F91FF90EF90DF90CF90BF900C94F8
+:103DB0007C2A8B2D837009F07BC0011159C2812FA1
+:103DC000829586958770880F880F912F9F70C92ED6
+:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7
+:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD
+:103DF00070E004C0440F551F661F771F8A95D2F7E5
+:103E0000CB01BA01609570958095909503C060E0F4
+:103E100070E0CB012B2D269526952370422F50E084
+:103E200042305105D9F04330510569F16C297D29A3
+:103E30008E299F294130510551F126960FB6F894ED
+:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD
+:103E5000EF90DF90CF90BF900C943E256C297D2988
+:103E60008E299F2926960FB6F894DEBF0FBECDBFD0
+:103E7000DF91CF911F910F91FF90EF90DF90CF9046
+:103E8000BF900C945A250E943E25C701B601269684
+:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B
+:103EA0000F91FF90EF90DF90CF90BF900C94222560
+:103EB000002319F08B2D817001C08695882309F4A9
+:103EC000D7C1812F829586958770880F880F912F93
+:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3
+:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039
+:103EF00050E060E070E004C0440F551F661F771F5C
+:103F00008A95D2F7CB01BA0160957095809590950E
+:103F100003C060E070E0CB012B2D26952695237021
+:103F2000422F50E042305105D9F04330510569F13C
+:103F30006C297D298E299F294130510551F1269602
+:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA
+:103F50000F91FF90EF90DF90CF90BF900C941826B8
+:103F60006C297D298E299F2926960FB6F894DEBFED
+:103F70000FBECDBFDF91CF911F910F91FF90EF90BA
+:103F8000DF90CF90BF900C9434260E941826C70172
+:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7
+:103FA000CF911F910F91FF90EF90DF90CF90BF9036
+:103FB0000C94FC25103F49F118F4103E48F491C0D0
+:103FC000123F09F453C0E8F1133F09F464C089C0FB
+:103FD0001F708B2D8F71002321F00E949525812F5A
+:103FE0007CCE0E94B625812F26960FB6F894DEBFB0
+:103FF0000FBECDBFDF91CF911F910F91FF90EF903A
+:10400000DF90CF90BF900C949D1D0023B1F0253020
+:1040100008F02EC18B2D8F7126960FB6F894DEBF57
+:104020000FBECDBFDF91CF911F910F91FF90EF9009
+:10403000DF90CF90BF900C94DB25263008F018C19C
+:10404000E9CF0023A9F08B2D8F7126960FB6F89437
+:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB
+:10406000EF90DF90CF90BF900C949525002359F3EB
+:104070008B2D8F7126960FB6F894DEBF0FBECDBF85
+:10408000DF91CF911F910F91FF90EF90DF90CF9034
+:10409000BF900C94B625002399F08B2D8F71269636
+:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
+:1040B0000F91FF90EF90DF90CF90BF900C948025F0
+:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D
+:1040D0001F910F91FF90EF90DF90CF90BF900C94C5
+:1040E00076250023A9F0222309F4ADCF812F26964F
+:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9
+:104100000F91FF90EF90DF90CF90BF900C947F1CA9
+:10411000222309F4ADCF812F26960FB6F894DEBF87
+:104120000FBECDBFDF91CF911F910F91FF90EF9008
+:10413000DF90CF90BF900C94471D4B2D4F70612F97
+:10414000C7010E94690526960FB6F894DEBF0FBE20
+:10415000CDBFDF91CF911F910F91FF90EF90DF9036
+:10416000CF90BF900C949A24011182C09B2D9F7018
+:10417000492F50E04230510509F443C0C4F44115C1
+:10418000510571F14130510509F072C026960FB604
+:10419000F894DEBF0FBECDBFDF91CF911F910F917D
+:1041A000FF90EF90DF90CF90BF900C947E2D433026
+:1041B0005105C1F14430510509F05AC0812F2696AE
+:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
+:1041D0000F91FF90EF90DF90CF90BF900C94D02D77
+:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
+:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
+:10420000672D26960FB6F894DEBF0FBECDBFDF91A7
+:10421000CF911F910F91FF90EF90DF90CF90BF90C3
+:104220000C949A2D26960FB6F894DEBF0FBECDBF24
+:10423000DF91CF911F910F91FF90EF90DF90CF9082
+:10424000BF900C94AD2D4B2D4F70612FC70126965A
+:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
+:104260000F91FF90EF90DF90CF90BF900C94790763
+:1042700026960FB6F894DEBF0FBECDBFDF91CF916B
+:104280001F910F91FF90EF90DF90CF90BF90089516
+:104290000E9442270E9452270E9417270E946C27E3
+:1042A0000E942D2B0E947C2A80E090E00E94611BDE
+:1042B00080E090E00C94771B0E9432270C944821F8
+:1042C0000E949026292F22952F7030E02C30310546
+:1042D0004CF42A3031056CF422503109223031057A
+:1042E00088F407C02C30310549F02F30310531F00A
+:1042F00009C0803E48F0803F29F406C093FB882720
+:1043000080F9089580E0089581E00895CF93DF93C8
+:1043100000D000D01F92CDB7DEB70F900F900F9056
+:104320000F900F90DF91CF910895CF93DF9300D03E
+:1043300000D000D0CDB7DEB726960FB6F894DEBF1A
+:104340000FBECDBFDF91CF9108951F93CF93DF9321
+:10435000C091E90316E08091EA03C81799F0D0E014
+:104360001C9FF0011D9FF00D1124E551FC4F408171
+:10437000518162817381848195810E94952121966A
+:10438000C770E9CFDF91CF911F91089540911B0431
+:1043900050911C0460911D0470911E0480911F04B3
+:1043A000909120040C9495218091200482958F7027
+:1043B00009F054C080911D04882309F44FC08091F6
+:1043C000E903A091EA0360911B0470911C044091E1
+:1043D0001E0450911F04B6E08A1709F43FC090E014
+:1043E00041155105C1F17F3F11F46F3FA1F1B89F15
+:1043F000F001B99FF00D1124E551FC4F218172139A
+:104400002AC02081621327C02281211124C0238168
+:1044100034812417350710F421503109241B350B42
+:10442000283C3105C0F4209120042F702061209396
+:10443000200426E0289FF001299FF00D1124E0516F
+:10444000FC4F80818F70806180838BE194E00E94BB
+:10445000A41D0C94A52101968770BECF0895CF921C
+:10446000DF92EF92FF920F931F93CF93DF93CDB71D
+:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA
+:1044800085E0F801DE011D9601900D928A95E1F715
+:10449000D8014C9111965C91119712966C911297DC
+:1044A0001396CD90DC90149730911B0470911C04EE
+:1044B00080911E0490911F04009709F46BC17F3F07
+:1044C00019F43F3F09F466C1E0901D04EE2009F4A1
+:1044D000C0C020912004C816D90628F0F601E81BB8
+:1044E000F90BCF0104C0809590958C0D9D1DFF2484
+:1044F000F394883C910578F0F12C207F09F0C6C038
+:104500007C2DD98AC88A89890E9486218BE194E012
+:104510000E94A41DB1C0822F807F09F046C0751390
+:1045200014C0341312C0611110C02F702061209389
+:1045300020040E94C6218BE194E00E94A41D80917A
+:104540002004D80115968C932EC0CD2819F15F3F19
+:1045500011F44F3FF9F0F62E61111CC08091E90370
+:104560002091EA0336E0821709F45AC090E0389FA0
+:10457000F001399FF00D1124E551FC4F7181571363
+:1045800006C07081471303C07281711103C0019688
+:104590008770E9CFF62E662309F418C180912004B4
+:1045A000816080932004F12C11C1751308C034136D
+:1045B00006C0611104C080912004D801C3C04D879A
+:1045C0005E878D859E856A8B0E9460216A8988231B
+:1045D000E1F16623D1F120912004822F82958F7022
+:1045E00090E0029774F080911B0490911C049887CE
+:1045F0008F831986DB86CA862C87CE0107960E9498
+:10460000A41D86E0F801ABE1B4E001900D928A951B
+:10461000E1F70E94D4210E94C621FF24F394D6C062
+:104620004D875E878D859E850E949026292F229535
+:104630002F7030E0223031050CF0BCC09F7009F0C3
+:10464000B6C0805E883008F4C1C0C8010E94A41DB5
+:10465000E4CFC816D90608F453C0F601E81BF90BDD
+:10466000CF01883C910508F450C0F12C7C2DD98AEB
+:10467000C88A89890E948621EBE1F4E086E0DF01A7
+:104680001D928A95E9F70E94C621A0C0751314C037
+:10469000341312C0611110C080912004F801858389
+:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249
+:1046B0008A95E9F7FE2C8AC04D875E878D859E8599
+:1046C0006A8B0E9460216A89882309F4BECF662321
+:1046D00009F4BBCF20912004822F82958F7090E047
+:1046E00002970CF48ECF80911B0490911C049A8346
+:1046F00089831B82DD82CC822E83CE0101967FCFFF
+:10470000809590958C0D9D1DACCFF62E662309F4F7
+:104710009CCF75132EC034132CC02091200420FD93
+:104720001FC0822F82958F70D9F0D80115962C93D7
+:1047300015978F3049F08F5F982F9295907F822F39
+:104740008F70892B15968C93C8010E94A41D86E05A
+:10475000F801ABE1B4E001900D928A95E1F793CFB7
+:1047600086E0F801ABE1B4E001900D928A95E1F7A3
+:104770002DC04D875E878D859E850E9460218111A9
+:1047800040CF80912004816080932004C8010E9462
+:10479000A41D1CC0662309F458CF4D875E878D8504
+:1047A0009E850E946021882309F44FCF2ACF811172
+:1047B00048CF0CC0243031050CF047CF9F7009F46E
+:1047C00040CFF8019581907F09F03BCF8F2D629605
+:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112
+:1047E0000F91FF90EF90DF90CF9008951F93CF939C
+:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0
+:10480000CDBF4F83588769877A878B879C87CE0176
+:1048100007960E942F22882369F08F8198852A8528
+:104820003B85232BF1F19F3F09F063C08F3F09F0D7
+:1048300060C037C086E0FE013796DE011196019018
+:104840000D928A95E1F76F817885EA85FB8530972F
+:1048500041F17F3F11F46F3F21F12091EA0330E0F5
+:10486000C9010196877099274091E90350E08417A8
+:10487000950709F447C069837A83FD83EC8396E04A
+:10488000929FD001939FB00D1124A551BC4FFE0102
+:10489000319601900D929A95E1F78093EA030E9478
+:1048A000A52116E08091E9039091EA038917C1F1EF
+:1048B000189FC001112485519C4F0E942F228823EC
+:1048C00079F1E091E9031E9FF0011124E551FC4FBD
+:1048D0004081518162817381848195810E949521FB
+:1048E0008091E90390E00196877099278093E9030E
+:1048F000D9CF4F81588569857A858B859C850E94A3
+:104900009521CFCF0E945C211092EA031092E90317
+:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73
+:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE
+:104930001F910895EF92FF920F931F93CF93DF93F0
+:104940008C01009709F46CC0F12CEE24E394E8018B
+:104950002196F8018491843740F4843008F051C0E6
+:10496000813081F0823019F15BC0853709F444C091
+:10497000A8F19CE7980F903708F052C08F770E94FB
+:10498000471D41C00E5F1F4FFE01C49180E28C0F96
+:10499000883048F4C7708E2D01C0880FCA95EAF799
+:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3
+:1049B0001F4FFE01C49180E28C0F883058F4C770FD
+:1049C0008E2D01C0880FCA95EAF70E944B270E94DE
+:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8
+:1049E000FE01C491CC2381F08FE99FE00197F1F79C
+:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3
+:104A000003C00E947F1C8E018F2D882309F49FCF45
+:104A1000EFE9FFE03197F1F700C000008150F5CFDA
+:104A2000DF91CF911F910F91FF90EF90089508951E
+:104A300060932504709326048093270490932804A0
+:104A40000C9448210F931F93009125041091260484
+:104A50002091270430912804DC01CB01802B912B7D
+:104A6000A22BB32B8093250490932604A0932704B4
+:104A7000B09328041F910F910C9448210F931F931A
+:104A800000912504109126042091270430912804D8
+:104A9000DC01CB0180239123A223B323809325043F
+:104AA00090932604A0932704B09328041F910F919C
+:104AB0000C9448210F931F93009125041091260414
+:104AC0002091270430912804DC01CB018027912715
+:104AD000A227B3278093250490932604A09327044C
+:104AE000B09328041F910F910C9448211092210437
+:104AF0001092220410922304109224040C94482152
+:104B000041E050E060E070E004C0440F551F661FB4
+:104B1000771F8A95D2F74093210450932204609323
+:104B20002304709324040C94482141E050E060E099
+:104B300070E004C0440F551F661F771F8A95D2F797
+:104B40008091210490912204A0912304B091240427
+:104B5000482B592B6A2B7B2B409321045093220422
+:104B600060932304709324040C94482141E050E0A6
+:104B700060E070E004C0440F551F661F771F8A95E0
+:104B8000D2F7409550956095709580912104909151
+:104B90002204A0912304B0912404482359236A23BA
+:104BA0007B23409321045093220460932304709349
+:104BB00024040C94482141E050E060E070E004C01F
+:104BC000440F551F661F771F8A95D2F780912104E5
+:104BD00090912204A0912304B091240448275927DE
+:104BE0006A277B2740932104509322046093230477
+:104BF000709324040C9448210F931F930091210477
+:104C0000109122042091230430912404DC01CB0173
+:104C1000802B912BA22BB32B809321049093220401
+:104C2000A0932304B09324041F910F910C94482166
+:104C30000F931F93009121041091220420912304CB
+:104C400030912404DC01CB0180239123A223B323E0
+:104C50008093210490932204A0932304B09324040E
+:104C60001F910F910C9448210F931F9300912104E1
+:104C7000109122042091230430912404DC01CB0103
+:104C800080279127A227B3278093210490932204A1
+:104C9000A0932304B09324041F910F910C944821F6
+:104CA0000895CF92DF92EF92FF920F931F93CF93CD
+:104CB000DF938C01C0902504D0902604E090270457
+:104CC000F09028048091210490912204A091230463
+:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD
+:104CE000D701C6010C2E04C0B695A7959795879558
+:104CF0000A94D2F780FF06C0B8018C2F0E94D30916
+:104D0000019721F4219760F780E001C08C2FDF919B
+:104D1000CF911F910F91FF90EF90DF90CF9008956A
+:104D2000CF93DF93EC010E945126BE010E94D3096C
+:104D3000DF91CF910895CB010E9490260895909124
+:104D40008402992321F090918502911109C020914C
+:104D5000860230918702F90132969FEF40E01FC032
+:104D6000982F9695969596959F3050F5E0918602EE
+:104D7000F0918702E90FF11D877021E030E0A90171
+:104D800002C0440F551F8A95E2F7CA019181892B11
+:104D9000818308959F3F39F04F5F4E3041F051912C
+:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77
+:104DB00039F0F901E90FF11D97FDFA958283089505
+:104DC000089590918402992321F090918502911188
+:104DD00009C02091860230918702F9013296205F46
+:104DE0003F4F1FC0982F9695969596959F30F0F45B
+:104DF000E0918602F0918702E90FF11D877021E0B2
+:104E000030E0A90102C0440F551F8A95E2F7CA019C
+:104E1000809591818923818308953196E217F30764
+:104E200029F090819813F9CF1082F7CF089581E08F
+:104E300090E0E0918602F0918702E80FF91F10825E
+:104E4000019680319105A9F7089590913C04892B32
+:104E500080933C040895809590913C04892380932D
+:104E60003C04089510923C04089590913B04892BD2
+:104E700080933B040895809590913B04892380930F
+:104E80003B04089510923B04089590913A04892BB5
+:104E900080933A040895809590913A0489238093F1
+:104EA0003A04089510923A040895809329040895CD
+:104EB0001092290408958091860290918702FC0146
+:104EC00031969C01205F3F4F80E0919191118F5F5F
+:104ED000E217F307D1F70895E0918602F091870277
+:104EE00080913C048083E0918602F091870290815A
+:104EF00080913B04892B8083E0918602F0918702A8
+:104F0000908180913A04892B8083809129048823A1
+:104F100061F0E0918602F09187029081892B808375
+:104F20000E945B2781111092290480918602909142
+:104F300087020C944B1B80915E04843039F11092EF
+:104F40003E0420E488E190E00FB6F894A8958093A1
+:104F500060000FBE2093600080E00E94300580E07A
+:104F60000E94AE0A83B7817F846083BF83B781606C
+:104F700083BF7894889583B78E7F83BF88E10FB60F
+:104F8000F89480936000109260000FBE0895089519
+:104F90000895CF9380E00E9430050E94C7270E94A9
+:104FA000650C0E94C827C0E08C2F0E94AE0D892B93
+:104FB00029F4CF5FC430C1F780E001C081E0CF9118
+:104FC00008950E945C2180E00E9430050E94562DC9
+:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5
+:104FE00011248F939F93AF93BF9380913E048111BF
+:104FF00013C080913F0490914004A0914104B0916E
+:1050000042044196A11DB11D80933F04909340043A
+:10501000A0934104B0934204BF91AF919F918F91AF
+:105020000F900FBE0F901F90189582E084BD93E003
+:1050300095BD9AEF97BD80936E0008952FB7F894B1
+:1050400080913F0490914004A0914104B0914204AA
+:105050002FBF0895CF92DF92EF92FF920F931F938D
+:105060002FB7F89440913F0450914004609141045F
+:10507000709142042FBF6A017B01EE24FF248C0152
+:1050800020E030E0C016D106E206F30610F44150ED
+:1050900051099A01281B390BC9011F910F91FF90EB
+:1050A000EF90DF90CF9008951F920F920FB60F925E
+:1050B00011248F939F93AF93BF9380913F0490915E
+:1050C0004004A0914104B09142040196A11DB11D7C
+:1050D00080933F0490934004A0934104B093420412
+:1050E000BF91AF919F918F910F900FBE0F901F9026
+:1050F00018950E943C18F8942FEF87EA91E621500A
+:1051000080409040E1F700C0000087E090EBDC01B8
+:105110008093690490936A04A0936B04B0936C0429
+:105120009CE088E10FB6F894A895809360000FBECC
+:1051300090936000FFCF0E94DA28811102C00E9484
+:10514000B6280E94E52880933D040E94F2288093AF
+:10515000670487FB882780F9809385020E94E928ED
+:10516000682F70E080E090E00C9418256DEE7EEFE3
+:1051700080E090E00E94093260E082E090E00E94CE
+:10518000F73160E083E090E00E94F73160E084E076
+:1051900090E00E94F73160E085E090E00E94F731F6
+:1051A00060E086E090E00E94F7316FEF87E090E0EA
+:1051B0000C94F73180E090E00E94F13121E08D3EC7
+:1051C0009E4F09F020E0822F089582E090E00C9439
+:1051D000E93183E090E00C94E931682F83E090E0BE
+:1051E0000C94F73184E090E00C94E931682F84E06E
+:1051F00090E00C94F73186E090E00C94E931682F50
+:1052000086E090E00C94F73187E090E00C94E9316F
+:10521000682F87E090E00C94F7318091450480FF7F
+:105220000BC060918B0285E0689FB00111247595D9
+:105230006795759567952BC081FF09C060918B02BA
+:1052400085E0689FB00111247595679520C082FFA5
+:1052500007C060918B0285E0689FB001112417C0E0
+:10526000909146049923D1F060918A02961788F7AD
+:1052700020918B0285E0289F90011124929FA0012C
+:10528000939F500D112470E0CA010E94CF31603805
+:10529000710540F46115710539F002C065E070E0F8
+:1052A000862F08958FE7089581E008958091450441
+:1052B00080FF08C06091890270E0759567957595CB
+:1052C000679521C081FF06C06091890270E07595E5
+:1052D000679519C082FF04C06091890270E010C018
+:1052E000909146049923C1F0609188029617A0F727
+:1052F00080918902899FC001112470E00E94CF3102
+:105300006038710528F46115710521F0862F089524
+:105310008FE7089581E0089561E070E0F4CF803F69
+:1053200021F40E940D29819504C0813F29F40E9437
+:105330000D29809349040895823F21F40E940D298C
+:10534000819504C0833F29F40E940D29809348046D
+:105350000895893F19F40E94562905C08A3F31F407
+:105360000E945629819580934A0408958B3F21F429
+:105370000E945629819504C08C3F29F40E94562929
+:1053800080934B040895843F21F480914704816009
+:1053900017C0853F21F480914704826011C0863F89
+:1053A00021F48091470484600BC0873F21F48091F1
+:1053B0004704886005C0883F31F4809147048061CC
+:1053C0008093470408958D3F21F4809145048160C6
+:1053D0000BC08E3F21F480914504826005C08F3F51
+:1053E00029F4809145048460809345040895803FAA
+:1053F00039F48091490487FF6CC01092490469C058
+:10540000813F29F4809149041816BCF362C0909141
+:105410004804823F29F497FF5CC01092480459C0A9
+:10542000833F19F41916CCF354C0893F41F480919D
+:105430004A0418160CF04DC010924A044AC08A3F24
+:1054400029F480914A0487FF44C0F6CF8B3F39F49A
+:1054500080914B0487FF3DC010924B043AC08C3FB3
+:1054600029F480914B041816BCF333C0843F21F417
+:10547000809147048E7F17C0853F21F480914704B7
+:105480008D7F11C0863F21F4809147048B7F0BC034
+:10549000873F21F480914704877F05C0883F31F41E
+:1054A000809147048F7E8093470413C08D3F21F481
+:1054B000809145048E7F0BC08E3F21F4809145047E
+:1054C0008D7F05C08F3F29F4809145048B7F8093A9
+:1054D00045048091480481110EC0809149048111D6
+:1054E0000AC080914A04811106C080914B04811149
+:1054F00002C010924604089587E494E00E94561B6F
+:105500000E941E28909344048093430408951F939F
+:10551000CF93DF9380914304909144040E942A2802
+:10552000AC0190914604992321F020918C0230E047
+:1055300006C020918D028AE0289F90011124421715
+:10554000530708F486C080914804C0914904D09163
+:105550004A0410914B04811107C0C11176C0D111CA
+:1055600074C0111172C075C09F3F19F09F5F909376
+:105570004604181624F40E940D2980934804809153
+:10558000480487FF05C00E940D2981958093480437
+:105590001C1624F40E940D2980934904809149042B
+:1055A00087FF05C00E940D29819580934904609171
+:1055B0004804662339F1C0914904CC2319F17727B7
+:1055C00067FD7095872F972F0E94F12E23E333E319
+:1055D00043E35FE30E9401300E94BE2E60934804C3
+:1055E0006C2F772767FD7095872F972F0E94F12EDC
+:1055F00023E333E343E35FE30E9401300E94BE2EC6
+:10560000609349041D1624F40E94562980934A048D
+:1056100080914A0487FF05C00E9456298195809396
+:105620004A04111624F40E94562980934B04809159
+:105630004B0487FF05C00E945629819580934B0437
+:10564000DF91CF911F910C947C2A9F3F09F08ECF60
+:1056500096CFDF91CF911F910895E7E4F4E085E0C4
+:10566000DF011D928A95E9F71092460410924504D5
+:105670000895833081F128F4813059F08230D1F0DF
+:105680000895853009F449C0B8F1863009F456C050
+:10569000089580918D02262F30E0280F311D2F3F75
+:1056A000310524F4680F60938D0208958FEF809385
+:1056B0008D02089580918C02262F30E0280F311D35
+:1056C0002F3F310524F4680F60938C0208958FEF0B
+:1056D00080938C02089580918B02262F30E0280F52
+:1056E000311D2F3F310524F4680F60938B0208951C
+:1056F0008FEF80938B02089580918A02262F30E0ED
+:10570000280F311D2F3F310524F4680F60938A0262
+:1057100008958FEF80938A02089580918902262F41
+:1057200030E0280F311D2F3F310524F4680F6093BE
+:10573000890208958FEF80938902089580918802ED
+:10574000262F30E0280F311D2F3F310524F4680F3C
+:105750006093880208958FEF8093880208958330C4
+:1057600011F128F4813049F0823091F008958530AC
+:1057700081F120F18630C1F1089580918D02681782
+:1057800020F4861B80938D02089510928D02089557
+:1057900080918C02681720F4861B80938C020895F8
+:1057A00010928C02089580918B02681720F4861B5A
+:1057B00080938B02089510928B02089580918A0243
+:1057C000681720F4861B80938A02089510928A023B
+:1057D000089580918902681720F4861B80938902BE
+:1057E000089510928902089580918802681720F424
+:1057F000861B8093880208951092880208950F9363
+:105800001F93873208F048C08E3108F094C0803171
+:1058100009F47EC008F5873009F468C068F4863062
+:1058200009F0A4C080913D04817F8E7F80933D0468
+:1058300081E080934D049BC08B3009F490C08E3082
+:1058400009F094C080913D0482FB222720F991E069
+:10585000922790FB82F965C0863109F480C060F41C
+:10586000813109F083C00E945C219091850281E022
+:1058700089278093850273C0893109F470C08B3108
+:1058800009F074C080913D0481FB222720F991E04A
+:10589000922790FB81F945C0883309F460C050F429
+:1058A000893209F45EC0853309F45BC0873209F49C
+:1058B00058C05CC0833409F454C028F48A3308F417
+:1058C00055C0895339C0883409F050C00E945C210A
+:1058D0000E946C060FEF13ED20E3015010402040B2
+:1058E000E1F700C000000E94792839C090913D0482
+:1058F000892F8095817080FB90F929F096609860DF
+:1059000090933D0434C0997F977F90933D0427C0C6
+:1059100080913D0483FB222720F991E0922790FBA0
+:1059200083F980933D049923D1F080913D048160F7
+:1059300080933D0414C08D5141E050E060E070E080
+:105940008A019B0104C0000F111F221F331F8A957B
+:10595000D2F7C901B8010E9418250E945C2181E09C
+:1059600006C061E070E080E090E0F5CF80E01F913C
+:105970000F91089580E0089580E00895CF93C82F97
+:1059800080914D04813069F018F08230C9F184C0F3
+:10599000E0918602F09187028081823209F07EC018
+:1059A00007C0E0918602F09187028081823261F423
+:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7
+:1059C0001DC081E090E01AC08C2F0E94BC2C811178
+:1059D00014C0C43179F048F4CB3079F0C03109F00B
+:1059E00061C082E080934D0408C0C93219F0C83309
+:1059F00021F058C010924D0455C081E0817054C010
+:105A0000C93291F120F5C43179F1B0F4C73009F011
+:105A100047C08EE180938D0282E380938C028AE0FE
+:105A200080938B0284E180938A0288E080938902CC
+:105A300088E28093880234C0CE51C63088F5EC2FBE
+:105A4000F0E0E85AFC4F808180934C0429C0CE34AA
+:105A5000E9F020F4CB3421F56AE013C0C13579F0C8
+:105A6000C235F1F461E00DC080914C04882319F037
+:105A700010924C0415C081E080934D0415C061E084
+:105A800006C080914C040E94392B0AC06AE08091C4
+:105A90004C040E94AF2B04C010924D0480E004C05F
+:105AA00081E002C080E0AACFCF9108950E94DA2859
+:105AB000811102C00E94B6280E94FB2880936804CE
+:105AC00080FF02C0869501C080E00C943005809173
+:105AD0006804982F9695292F30E0233031054CF437
+:105AE0009F5F990F8170892B8160809368040E9469
+:105AF000FF288091680486950C9430058091680495
+:105B0000982F969591F09158990F8170892B8093D9
+:105B100068048E7F91E009F490E08091680490FB26
+:105B200080F9809368040E94FF288091680486951C
+:105B30000C94300580916804982F909590FB80F923
+:105B4000809368040E94FF288091680480FF02C04F
+:105B5000869501C080E00C94300590916804892FEF
+:105B600086958F5F8F779170843028F4880F892B0A
+:105B70008093680402C090936804809168048E7FCB
+:105B800091E009F490E08091680490FB80F98093A3
+:105B900068040E94FF288091680486950C94300563
+:105BA00020916804922F96958927982F990F822F1C
+:105BB0008170892B809368048E7F91E009F490E0D6
+:105BC0008091680490FB80F9809368040E94FF280C
+:105BD0008091680486950C9430055058BB27AA27FD
+:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7
+:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45
+:105C0000D3D180F3BA17620773078407950718F09A
+:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A
+:105C20000B01B90190010C01CA01A0011124FF2749
+:105C3000591B99F0593F50F4503E68F11A16F04044
+:105C4000A22F232F342F4427585FF3CF4695379543
+:105C50002795A795F0405395C9F77EF41F16BA0B08
+:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6
+:105C7000661F771F881FC2F70EC0BA0F621F731FFF
+:105C8000841F48F4879577956795B795F7959E3F5C
+:105C900008F0B3CF9395880F08F09927EE0F9795EA
+:105CA0008795089527D108F481E008950CD06BC141
+:105CB00063D140F05AD130F021F45F3F19F03EC17A
+:105CC000511195C14FC170D198F39923C9F3552350
+:105CD000B1F3951B550BBB27AA27621773078407DF
+:105CE00038F09F5F5F4F220F331F441FAA1FA9F395
+:105CF00033D00E2E3AF0E0E830D091505040E69587
+:105D0000001CCAF729D0FE2F27D0660F771F881FE7
+:105D1000BB1F261737074807AB07B0E809F0BB0BD6
+:105D2000802DBF01FF2793585F4F2AF09E3F5105FA
+:105D300068F004C15CC15F3FECF3983EDCF38695EC
+:105D400077956795B795F7959F5FC9F7880F911D70
+:105D50009695879597F90895E1E0660F771F881F5C
+:105D6000BB1F621773078407BA0720F0621B730B0F
+:105D7000840BBA0BEE1F88F7E095089504D0689461
+:105D8000B11135C1089518D188F09F5790F0B92FFF
+:105D90009927B751A0F0D1F0660F771F881F991F80
+:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035
+:105DB00008951CC1672F782F8827B85F39F0B93F45
+:105DC000CCF3869577956795B395D9F73EF4909582
+:105DD0008095709561957F4F8F4F9F4F0895E89400
+:105DE00009C097FB3EF490958095709561957F4F23
+:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1
+:105E0000F695879577956795B795F111F8CFFAF4E0
+:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11
+:105E200016C0882311F096E911C0772321F09EE86F
+:105E3000872F762F05C0662371F096E8862F70E0D5
+:105E400060E02AF09A95660F771F881FDAF7880FAF
+:105E50009695879597F9089588D018F011F08CD011
+:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4
+:105E7000E7FB6217730784079507A8F199F3E92FE9
+:105E8000FF2788232AF03197660F771F881FDAF7DC
+:105E9000952F5527442332F091505040220F331F45
+:105EA000441FD2F7BB27E91BF50B621B730B840B56
+:105EB000B109C1F222F4620F731F841FB11D319723
+:105EC0002AF0660F771F881FBB1FEFCF91505040FD
+:105ED0005AF041F0882332F0660F771F881F9150E7
+:105EE0005040C1F7939530C08695779567959F5F31
+:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D
+:105F000016161706E807F907C0F012161306E4077D
+:105F1000F50798F0621B730B840B950B39F40A2676
+:105F200061F0232B242B252B21F408950A2609F454
+:105F3000A140A6958FEF811D811D089597F99F6758
+:105F400080E870E060E008959F3F31F0915020F4C8
+:105F5000879577956795B795880F911D9695879545
+:105F600097F908959FEF80EC089500240A9416167F
+:105F7000170618060906089500240A941216130637
+:105F8000140605060895092E0394000C11F48823C5
+:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1
+:105FA0007F4F8F4F9F4F089557FD9058440F551FB7
+:105FB00059F05F3F71F04795880F97FB991F61F08B
+:105FC0009F3F79F087950895121613061406551F02
+:105FD000F2CF4695F1DF08C0161617061806991F6E
+:105FE000F1CF86957105610508940895E894BB2763
+:105FF00066277727CB0197F908957CDF08F48FEFA8
+:1060000008950BD0C0CFB1DF28F0B6DF18F095238C
+:1060100009F094CFA7CF1124EACFC6DFA0F3959F54
+:10602000D1F3950F50E0551F629FF001729FBB277F
+:10603000F00DB11D639FAA27F00DB11DAA1F649F2B
+:106040006627B00DA11D661F829F2227B00DA11DDE
+:10605000621F739FB00DA11D621F839FA00D611D64
+:10606000221F749F3327A00D611D231F849F600D85
+:10607000211D822F762F6A2F11249F5750408AF0BE
+:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A
+:10609000881F91505040A9F79E3F510570F04ECF98
+:1060A000A6CF5F3FECF3983EDCF386957795679536
+:1060B000B795F795E7959F5FC1F7FE2B880F911D68
+:1060C0009695879597F90895FA01EE0FFF1F309680
+:1060D0002105310599F16115710561F48038BFE33F
+:1060E0009B0749F168949038810561F08038BFEFD3
+:1060F0009B0741F0992342F5FF3FE105310521055A
+:1061000011F1E8940894E795D901AA2329F4AB2F5B
+:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4
+:10612000F73950F019F0FF3A38F49F779F930CD06D
+:106130000F9007FC905808953EF014CF60E070E097
+:1061400080E89FE308954FE79F775F934F933F93D6
+:106150002F939ED02F913F914F915F9152DF05C0B9
+:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801
+:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1
+:106180004EDF0F920F920F924DB75EB70F92C0D0B5
+:10619000ECEFF0E016D04F915F91EF91FF91E59514
+:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23
+:1061B000FA95E1F74195550B32D00F9007FE26C0B6
+:1061C0000895DF93CF931F930F93FF92EF92DF9287
+:1061D0007B018C01689405C0DA2EEF011EDFFE0101
+:1061E000E894A5912591359145915591AEF3EF0134
+:1061F00006DDFE019701A801DA9479F7DF90EF90B0
+:10620000FF900F911F91CF91DF9108959B01AC01F9
+:1062100060E070E080E89FE349CD90CE95CECCDE83
+:10622000E8F39923D9F3940F511DBBF391505040DB
+:1062300094F059F0882332F0660F771F881F915031
+:106240005040C1F79E3F510544F7880F911D969528
+:10625000879597F908955F3FACF0983E9CF0BB2777
+:10626000869577956795B79508F4B1609395C1F7D2
+:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70
+:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67
+:1062900093DEC8F39923D1F3C6F3DF93CF931F9313
+:1062A0000F93FF92C92FDD2788232AF02197660FCD
+:1062B000771F881FDAF720E030E040E85FEB9FE3CC
+:1062C000883920F0803E30F021968F7787DCE4E239
+:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197
+:1062E000EC01FB2E6F5771097595771F880B990B81
+:1062F00078DD28E132E741E35FE38FDEAF2D9801DF
+:10630000AE01FF900F911F91CF91DF9178DC3BCED2
+:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497
+:1063200022273327442750781FC0B75188F4AB2F5A
+:106330000024469537952795011CA395D2F300209C
+:1063400069F0220F331F441FB395DAF30DD045CC0B
+:1063500061307105A0E88A07B94630F49B01AC01B1
+:106360006627772788279078309621F0208331831D
+:10637000428353830895AA1BBB1B51E107C0AA1F88
+:10638000BB1FA617B70710F0A61BB70B881F991FD6
+:106390005A95A9F780959095BC01CD01089597FB7A
+:1063A000072E16F4009407D077FD09D00E94BB3168
+:1063B00007FC05D03EF4909581959F4F0895709508
+:1063C00061957F4F0895EE0FFF1F0590F491E02D2A
+:1063D0000994F999FECF92BD81BDF89A992780B5AD
+:1063E0000895A8E1B0E042E050E00C941132262F6D
+:1063F000F999FECF92BD81BDF89A019700B40216BB
+:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68
+:1064100008950196272F0E94F8310C94F731DC0182
+:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F
+:10643000319600B40D9241505040B8F70895F89449
+:02644000FFCF8C
+:106442000C52D02445000000410000DC4400000052
+:106452004152D0A4440000404100005C44000000CE
+:106462004148F17644000000415C978A44000000F4
+:10647200411FD592440000004152D0A444000000C4
+:10648200415CFFB844000000410AA7CF440000006D
+:10649200410000DC44000000410AA7CF4400000094
+:1064A200410000DC440000004100000000000080C8
+:1064B2004000005C450000404100000000000080F8
+:1064C2004052D02445000040410AA7CF44000000BA
+:1064D200410000DC44000000410000000000008098
+:1064E2004052D024450000404100000000000080DE
+:1064F2004000005C45000040410AA7CF4400000074
+:10650200410000DC44000000410000000000008067
+:106512004052D024450000404100000000000080AD
+:10652200400AA74F45000040410AA7CF440000009F
+:10653200410000DC44000000410000000000008037
+:106542004052D024450000004100000000000080BD
+:10655200405CFF3845000000410000000000008060
+:106562004052D02445000000410AA7CF4400000059
+:10657200410000DC440000004100000000000080F7
+:106582004052D024450000804153D02445000040B1
+:106592004160970A450000004154D0A44400000025
+:1065A200410000DC440000004160970A450000A061
+:1065B20041050000003F0000C8424314D114AE144C
+:1065C2007A14461401012A042808140A321E000013
+:1065D200020004000500070009000B000C000E0079
+:1065E2001000110013001500170018001A001C00FB
+:1065F2001D001F002100230024002600280029007E
+:106602002B002D002F0030003200340035003700FF
+:1066120039003B0040004500250026006100600073
+:1066220020003700640065006600670044004600F1
+:10663200240047003149803F5D8B803FF8BF803F97
+:10664200CAE1803F73ED803FCAE1803FF8BF803FDF
+:106652005D8B803F3149803F0000803FF16D7F3F7D
+:1066620075EA7E3F4C827E3F833F7E3F84287E3F99
+:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6
+:106682000000803F3F4D363975092809F208B908E4
+:106692004C0865087E0897080102030405060708EE
+:0266A2000900ED
+:00000001FF
diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e27201..259dd6686b 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -162,11 +162,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/preonic/backlight.c b/keyboard/preonic/backlight.c deleted file mode 100644 index f69364b2af..0000000000 --- a/keyboard/preonic/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include <avr/io.h> -#include "backlight.h" - -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -}
\ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 2591af9f02..b3aa14dcbe 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -14,8 +14,8 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 5 -#define _MUSIC 6 +#define _MUSIC 5 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -24,12 +24,12 @@ #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#define AUD_OFF M(6) +#define AUD_ON M(7) #define MUS_OFF M(8) #define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) // Fillers to make layering more clear #define _______ KC_TRNS @@ -142,6 +142,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -150,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |Musoff|Mus on| | | | | | | | + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -158,21 +169,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } + + }; const uint16_t PROGMEM fn_actions[] = { @@ -187,48 +189,16 @@ float start_up[][2] = { {440.0*pow(2.0,(26)/12.0), 8} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; - -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; -float ode_to_joy[][2] = SONG(ODE_TO_JOY); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } @@ -313,19 +283,43 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - init_notes(); - set_tempo(150); - PLAY_NOTE_ARRAY(ode_to_joy, false, .25); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; } return MACRO_NONE; }; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE + uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { @@ -339,9 +333,10 @@ void process_action_user(keyrecord_t *record) { } -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); } + +#endif
\ No newline at end of file diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c index f639f247a5..211f8d0296 100644 --- a/keyboard/preonic/preonic.c +++ b/keyboard/preonic/preonic.c @@ -38,4 +38,65 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); -}
\ No newline at end of file +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif
\ No newline at end of file diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h index 51ed9ba393..030acdadb4 100644 --- a/keyboard/preonic/preonic.h +++ b/keyboard/preonic/preonic.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include <stddef.h> +#include <avr/io.h> #ifdef MIDI_ENABLE #include <keymap_midi.h> #endif diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex deleted file mode 100644 index 603693bffb..0000000000 --- a/keyboard/preonic/preonic_music.hex +++ /dev/null @@ -1,1713 +0,0 @@ -:100000000C9410030C9454030C9454030C94540358
-:100010000C9454030C9454030C9454030C94540304
-:100020000C9454030C9454030C9410170C94E21782
-:100030000C94BD290C9454030C9454030C94540355
-:100040000C9454030C9454030C9454030C945403D4
-:100050000C9454030C942A2A0C9454030C945403C7
-:100060000C9454030C9454030C9454030C945403B4
-:100070000C9454030C9454030C9454030C945403A4
-:100080000C94440E0C9454030C9454030C94540399
-:100090000C9454030C9454030C9454030C94540384
-:1000A0000C9454030C9454030C9454030763423689
-:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9
-:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD
-:1000D0000000803F08000000BE922449123EABAAF7
-:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52
-:1000F000AA3E00000000BF000000803F000000009A
-:1001000000084178D3BB4387D1133D190E3CC3BDD2
-:100110004282AD2B3E68EC8276BED98FE1A93E4C7F
-:1001200080EFFFBE01C4FF7F3F00000000003500EC
-:100130001E001F00200021002200230024002500B3
-:10014000260027002A002B0014001A0008001500C2
-:1001500017001C0018000C00120013002A002900D0
-:1001600004001600070009000A000B000D000E0035
-:100170000F0033003400E1001D001B0006001900D1
-:10018000050011001000360037003800280000304C
-:10019000E000E200E30003522C002C000452500067
-:1001A000510052004F0035001E001F0020002100AA
-:1001B0002200230024002500260027002A002B000F
-:1001C00014001A00090013000A000D000F001800A7
-:1001D0001C0033002A002900040015001600170037
-:1001E00007000B00110008000C0012003400E100B1
-:1001F0001D001B000600190005000E00100036004F
-:100200003700380028000030E000E200E30003522D
-:100210002C002C0004525000510052004F003500B9
-:100220001E001F00200021002200230024002500C2
-:10023000260027002A002B00340036003700130068
-:100240001C0009000A00060015000F002A00290002
-:1002500004001200080018000C0007000B00170033
-:10026000110016003800E100330014000D000E00EC
-:100270001B00050010001A0019001D0028000030A6
-:10028000E000E200E30003522C002C000452500076
-:10029000510052004F0035001E001F0020002100B9
-:1002A0002200230024002500260027002A00350212
-:1002B0001E021F0220022102220223022402250222
-:1002C000260227022A0001003A003B003C003D00C4
-:1002D0003E003F002D022E022F02300231020100AB
-:1002E00040004100420043004400450000530153D8
-:1002F0000253005001000100010001000100010053
-:10030000010001000100AB00AA00A900AE00350009
-:100310001E001F00200021002200230024002500D1
-:10032000260027002A0035001E001F0020002100A3
-:100330002200230024002500260027002A000100B7
-:100340003A003B003C003D003E003F002D002E00E7
-:100350002F00300031000100400041004200430006
-:1003600044004500005301530253005001000100B6
-:100370000100010001000100010001000100AB00CB
-:10038000AA00A900AE00006000600060006000608C
-:10039000006000600060006000600060006000605D
-:1003A000006000600060006000600060006000604D
-:1003B000006000600060006000600060006000603D
-:1003C000006000600060006000600060006000602D
-:1003D000006000600060006000600060006000601D
-:1003E00000600060006000300100010001000100B9
-:1003F00001000100010000600060006000602A034D
-:1004000054006800650020005000720065006F0015
-:100410006E006900630020004B00650079006200F7
-:100420006F0061007200640000002C034F00720036
-:10043000740068006F006C0069006E006500610068
-:10044000720020004B006500790062006F006100BF
-:100450007200640073000000040309040902D00064
-:10046000060100A0FA0904000001030101000921AE
-:1004700011010001223F000705810308000A090459
-:1004800001000103010200092111010001224D00B8
-:100490000705820308000A090402000103000000A6
-:1004A0000921110100012236000705830308000A13
-:1004B00009040300020300000009211101000122C8
-:1004C0002000070584032000010705040320000124
-:1004D00009040400000101000009240100010900D1
-:1004E00001050904050002010300000724010001C1
-:1004F0004100062402010100062402020200092430
-:1005000003010301020100092403020401010100A7
-:100510000905060240000500000525010101090545
-:1005200085024000050000052501010312011001AC
-:1005300000000008EDFE61600100010200010631CB
-:10054000FF0974A1010975150025FF952075088123
-:10055000020976150025FF952075089102C0050156
-:100560000980A101850216010026B7001A01002AA0
-:10057000B700751095018100C0050C0901A1018526
-:1005800003160100269C021A01002A9C0275109590
-:10059000018100C005010902A1010901A1000509AD
-:1005A000190129051500250195057501810295019F
-:1005B000750381010501093009311581257F9502F7
-:1005C0007508810609381581257F95017508810612
-:1005D000050C0A38021581257F950175088106C032
-:1005E000C005010906A101050719E029E715002545
-:1005F00001950875018102950175088101050819A9
-:100600000129059505750191029501750391010573
-:1006100007190029FF150025FF950675088100C000
-:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C
-:1006300024C08091050490910604A0910704B09114
-:1006400008048730904BA740B04BB9F410920504D2
-:1006500010920604109207041092080414BE84B786
-:10066000877F84BF88E10FB6F89480936000109272
-:1006700060000FBEE0E0F8E3099512E0A0E0B1E011
-:10068000E6ECF9E602C005900D92A832B107D9F761
-:1006900014E0A8E2B2E001C01D92A530B107E1F775
-:1006A0000E94C8130C94E1340C94000061111DC029
-:1006B000FC018281882351F085EE0E94901E0E94E9
-:1006C000BC3080E290E0A0E0B0E007C085EE0E9480
-:1006D000581F81E090E0A0E0B0E08093E1029093A9
-:1006E000E202A093E302B093E40280E090E0089578
-:1006F0000E94370E40E050E069E070E080E091E059
-:100700000C94880F08950E948B036E9A769A0C942D
-:1007100078030C948203279A2F988FEF9FEF909382
-:100720008700809386008AE08093800089E180932F
-:1007300081000C94653081110BC080918000877F0F
-:100740008093800010928D0010928C002F98089555
-:100750002F98833041F480918000886080938000DE
-:100760008FEF9FEF12C0909180009860909380006F
-:1007700023E030E0281B3109220F331F8FEF9FEF5A
-:1007800002C0969587952A95E2F790938D00809305
-:100790008C0008958B3B910568F4883A910530F5FB
-:1007A000853A9105C0F48430910598F4019709F0D9
-:1007B0006FC071C0803E910508F46AC0883E910503
-:1007C00040F09C01205F31092031310508F060C004
-:1007D0005CC09C01A1C0853A910509F45FC0863ACE
-:1007E000910509F45EC023E830E496C0883A91058B
-:1007F00009F45AC0893A910509F459C08A3A910519
-:1008000009F458C08B3A910509F457C08C3A910508
-:1008100009F456C08D3A910509F455C0803B910505
-:1008200009F454C08E3A910509F453C08F3A9105EA
-:1008300009F452C0813B910509F451C0823B9105F6
-:1008400009F450C0833B910509F44FC0843B9105E6
-:1008500009F44EC0853B910509F44DC0863B9105D6
-:1008600009F44CC0873B910509F44BC0883B9105C6
-:1008700009F44AC0893B910509F449C08A3B9105B6
-:1008800009F048C02AE236E447C09C01306544C004
-:1008900020E030E041C021E030E03EC021E830E41B
-:1008A0003BC022E830E438C022EE34E435C029EE03
-:1008B00034E432C02AEE34E42FC025EB34E42CC0FB
-:1008C00026EB34E429C027EB34E426C02CEC34E4D6
-:1008D00023C02DEC34E420C023E835E41DC02AE811
-:1008E00035E41AC022E935E417C024E935E414C020
-:1008F00021E236E411C023E236E40EC024E236E4FD
-:100900000BC025E236E408C026E236E405C027E243
-:1009100036E402C020E034E4C90108959CE0799FE8
-:10092000F00111249CE3899FE00DF11D1124E60FD5
-:10093000F11DEE0FFF1FE25DFE4F25913491C901BD
-:100940000895880F991F82559040FC01259134919C
-:10095000C9010895880F991F825D9E4FFC01259162
-:100960003491C90108950E948E049C019A958115C5
-:100970009F4110F4C9010895C90190528115904119
-:1009800028F4C9019F700E94AA040895C9019053D8
-:100990008115904120F4C9019927906C0895C901EF
-:1009A0009054409728F4C9018F709927946D089549
-:1009B000203180E4380719F480E091ED0895213169
-:1009C00090E4390719F480E090ED0895223140E475
-:1009D000340719F480E092ED0895233180E438075C
-:1009E00019F480E093ED0895211590E53907A1F4FD
-:1009F0000E948B2340E065E088E491E00E94880F2C
-:100A00002FEF44E38CE0215040408040E1F700C0EC
-:100A100000000E944F2A1EC1213090E5390731F4B1
-:100A20008091F10281608093F10214C1C901905557
-:100A30008115904108F062C0432F55274F7055270C
-:100A400041305105F9F4C90174E0880F991F7A9576
-:100A5000E1F788279370B901E3E0660F771FEA9505
-:100A6000E1F760767727862B972B9C6823703327D6
-:100A700002C0440F551F2A95E2F74F715527842B6A
-:100A8000952B08954230510529F4922F8827816FC4
-:100A9000906A089543305105B9F4C90153E0880FB5
-:100AA000991F5A95E1F7807E97702370332741E0B4
-:100AB00050E002C0440F551F2A95E2F74F715527A9
-:100AC000842B952B9C6808954430510589F5C90104
-:100AD00043E0880F991F4A95E1F7807E9770237055
-:100AE000332741E050E002C0440F551F2A95E2F73A
-:100AF0004F715527842B952B9A680895C9019056FC
-:100B00008115904118F4C901906F0895C90190575B
-:100B10008115904120F4C9019F7090620895C90128
-:100B200090588115904120F4C9019F70906A0895F2
-:100B3000203E3105E0F4203C310568F521333105D4
-:100B400009F475C048F42932310509F46BC02A3222
-:100B5000310509F07BC075C02933310501F1223818
-:100B60003105E9F02533310509F070C051C0233E4D
-:100B70003105B1F140F4203E3105D1F0223E31057E
-:100B800009F064C01CC0263E310579F1273E3105CD
-:100B900009F05CC038C0C9010E94A1040895809189
-:100BA000020380FD02C081FF51C080EE90E04FC083
-:100BB0008091020380FFF9CF89E390E048C08091E3
-:100BC000020382FF0AC08091020384FF03C080E019
-:100BD00090E03DC083EE90E03AC082EE90E037C0F6
-:100BE0008091020382FFEFCFF8CF8091020383FF51
-:100BF00007C08091020384FDEACF87EE90E027C012
-:100C000086EE90E024C08091020383FFF2CFF8CFFC
-:100C10008091020385FF03C089E290E018C085E35C
-:100C200090E015C08091020385FDF9CFF5CF80914A
-:100C3000020386FF03C08AE290E009C081E390E0EE
-:100C400006C08091020386FDF9CFF5CFC9010E944D
-:100C5000CA030895089508950C942B065F926F922D
-:100C60007F928F929F92AF92BF92CF92DF92EF923C
-:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1
-:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62
-:100C90004E018BE0880E911C60E070E000E010E0F7
-:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76
-:100CB000622E532E41E050E0E3E9F1E0A62DB52D80
-:100CC000872D01900D928A95E1F7F901819191911B
-:100CD0009F01FC01E07FFF27E032F10559F48F709E
-:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C
-:100CF000BF2A37C0E033F10559F48F709927FA0104
-:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024
-:100D1000E034F10559F48F709927FA0102C0EE0F03
-:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586
-:100D300059F48F709927FA0102C0EE0FFF1F8A95B0
-:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A
-:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A
-:100D60007F2B2815390509F0A7CF94B18A2D8095DE
-:100D7000892384B985B18A2985B997B18C2D80954D
-:100D8000892387B988B18C2988B99AB18E2D80952D
-:100D900089238AB98BB18E298BB99DB1802F80951B
-:100DA00089238DB98EB1802B8EB990B3862F809513
-:100DB000892380BB81B3862B81BB2A960FB6F8941A
-:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E
-:100DD000EF90DF90CF90BF90AF909F908F907F90DB
-:100DE0006F905F9008955F926F927F928F929F9223
-:100DF000AF92BF92CF92DF92EF92FF920F931F9329
-:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08
-:100E10000FBECDBF85B7806885BF85B7806885BFA9
-:100E20000E942E069E012F5F3F4F4E0189E1880EE2
-:100E3000911C60E070E000E010E0E12CF12CC12C8E
-:100E4000D12CA12CB12C98E1792E622E532E41E0A9
-:100E500050E0EDE9F1E0A62DB52D872D01900D9222
-:100E60008A95E1F7F901819191919F01FC01E07F61
-:100E7000FF27E032F10559F48F709927FA0102C07B
-:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384
-:100E9000F10559F48F709927FA0102C0EE0FFF1F78
-:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409
-:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3
-:100EC000EE2AFF2A1BC0E035F10559F48F709927EF
-:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF
-:100EE0000DC0E036F10551F48F709927FA0102C068
-:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521
-:100F000009F0A7CF94B18A2D8095892384B985B142
-:100F10008A2985B997B18C2D8095892387B988B1A5
-:100F20008C2988B99AB18E2D809589238AB98BB185
-:100F30008E298BB99DB1802F809589238DB98EB173
-:100F4000802B8EB990B3862F8095892380BB81B387
-:100F5000862B81BB10922902109228021092330234
-:100F60001092320210922B0210922A021092350235
-:100F70001092340210922D0210922C02109237021D
-:100F80001092360210922F0210922E021092390205
-:100F900010923802109231021092300210923B02ED
-:100FA00010923A0268960FB6F894DEBF0FBECDBF1E
-:100FB000DF91CF911F910F91FF90EF90DF90CF9035
-:100FC000BF90AF909F908F907F906F905F900C94A8
-:100FD00083035F926F927F928F929F92AF92BF92A4
-:100FE000CF92DF92EF92FF920F931F93CF93DF93F5
-:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58
-:101000007E0149E1E40EF11C22E3C22E22E0D22E41
-:101010005E0153E2A50EB11C3AE0532E470101E0F8
-:1010200010E048E1642E55E0752EE3E9F1E0D401CB
-:10103000852D01900D928A95E1F7F70181919191AB
-:101040007F019C01207F33272032310589F424B1B0
-:101050008F709927A80102C0440F551F8A95E2F7A7
-:10106000CA01242B24B995B18095892385B94FC035
-:101070002033310589F427B18F709927F80102C018
-:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB
-:101090008095892388B93BC02034310589F42AB171
-:1010A0008F709927A80102C0440F551F8A95E2F757
-:1010B000CA01242B2AB99BB1809589238BB927C0FB
-:1010C0002035310589F42DB18F709927F80102C0C0
-:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F
-:1010E000809589238EB913C02036310581F420B351
-:1010F0008F709927A80102C0440F551F8A95E2F707
-:10110000CA01242B20BB91B38095892381BB50EA6F
-:101110005A95F1F7BE016F5F7F4F80E090E020E0CD
-:1011200030E0EDE9F1E0DE011196462D01900D92DF
-:101130004A95E1F7FB0141915191BF01FA01E07F2E
-:10114000FF27E032F10511F4E3B113C0E033F105FC
-:1011500011F4E6B10EC0E034F10511F4E9B109C0B3
-:10116000E035F10511F4ECB104C0E036F105B9F455
-:10117000EFB1F0E04F70552702C0F595E7954A951D
-:10118000E2F7E0FD08C0A801022E02C0440F551F7F
-:101190000A94E2F702C040E050E0842B952B2F5FC9
-:1011A0003F4F2C30310509F0BCCFF6012081318151
-:1011B0002817390721F091838083709270010E9473
-:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D
-:1011D000809170018823A1F1815080937001882350
-:1011E00039F08FE99FE00197F1F700C0000028C0B7
-:1011F00080913202909133029093290280932802C9
-:10120000809134029091350290932B0280932A02B0
-:10121000809136029091370290932D0280932C0298
-:10122000809138029091390290932F0280932E0280
-:1012300080913A0290913B02909331028093300268
-:101240000E94890381E0A2960FB6F894DEBF0FBE1C
-:10125000CDBFDF91CF911F910F91FF90EF90DF9065
-:10126000CF90BF90AF909F908F907F906F905F9046
-:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D
-:10128000918108950895CF92DF92EF92FF920F938C
-:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1
-:1012A000F894DEBF0FBECDBF8C01862F642F88233C
-:1012B00079F0F80192812FE7482F992329F084E0F3
-:1012C00093E00E94EC1904C084E093E00E94FC19B2
-:1012D000F80180818B3091F59181943009F0A8C29A
-:1012E0009281809173019923B1F08F5F8093730194
-:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7
-:101300009A95E1F7E0917101F0917201EE0FFF1FE4
-:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2
-:10132000BD4F01900D929A95E1F7E0917101F09116
-:101330007201EE0FFF1F21E332E093C08A3009F003
-:10134000CBC0F8019181943009F072C292818091F2
-:101350007301992309F473C081508093730196E45B
-:10136000E5EBF1E0DE01A551BE4F01900D929A959B
-:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A
-:1013800031E02C0F3D1FE20FF31F60817181680F68
-:10139000711D882777FD8095982F0E94003220E0EC
-:1013A00030E040E451E40E94653120E030E040E864
-:1013B00050E40E94FD309B01AC0160E070E080E0F1
-:1013C00090E40E94173321E230ED42E053E40E94A2
-:1013D000B4324CE050E00E94E30F20E04BE760E0C5
-:1013E00084E093E00E94DC1920E04BE761E084E0B8
-:1013F00093E00E94DC1920E04BE762E084E093E098
-:101400000E94DC1920E04BE763E084E093E00E9457
-:10141000DC1920E04BE764E084E093E0C454DD4F46
-:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5
-:101430000F91FF90EF90DF90CF900C94DC1996E421
-:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0
-:10145000E1F7E0917101F0917201EE0FFF1F25EAB3
-:1014600031E02C0F3D1FE20FF31F60817181680F87
-:10147000711D882777FD8095982F0E94003220E00B
-:1014800030E040E451E40E94653120E030E040E883
-:1014900050E40E94FD309B01AC0160E070E080E010
-:1014A00090E40E94173321E230ED42E053E40E94C1
-:1014B000B4320E94130DC454DD4F0FB6F894DEBF52
-:1014C0000FBECDBFDF91CF911F910F91FF90EF9095
-:1014D000DF90CF900C94E60C893009F0D3C0F8016E
-:1014E0009181943009F0A4C19281992309F4A0C19B
-:1014F0008091710190917201019690937201809395
-:10150000710120E04BE760E084E093E00E94DC1989
-:1015100020E04BE761E084E093E00E94DC1920E0EA
-:101520004BE762E084E093E00E94DC1920E04BE7A7
-:1015300063E084E093E00E94DC1920E04BE764E084
-:1015400084E093E00E94DC190E94E60C00E010E0C9
-:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95
-:10156000BE4F9F2D01900D929A95E1F7E091710188
-:10157000F0917201E00FF11FEE0FFF1F2FE531E038
-:101580002C0F3D1FE20FF31F60817181680F711DE9
-:10159000882777FD8095982F0E94003220E030E068
-:1015A00040E451E40E94653120E030E040E850E43E
-:1015B0000E94FD309B01AC0160E070E080E090E4AF
-:1015C0000E94173321E230ED42E053E40E94B4322E
-:1015D0004CE050E00E94E30F3FEF87EE93E0315084
-:1015E00080409040E1F700C0000080917301E5EB7E
-:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE
-:10160000E1F7E0917101F0917201E00FF11FEE0F2F
-:10161000FF1F29E131E02C0F3D1FE20FF31F608116
-:101620007181680F711D882777FD8095982F0E9422
-:10163000003220E030E040E451E40E94653120E0D7
-:1016400030E040E850E40E94FD309B01AC0160E0D6
-:1016500070E080E090E40E94173321E230ED42E038
-:1016600053E40E94B4320E94130D8FEF9CE7019760
-:10167000F1F700C000000F5F1F4F0830110509F09F
-:1016800069CF94C1883009F0D3C0F80191819430BA
-:1016900009F0CEC09281992309F4CAC080917101EA
-:1016A000909172010197909372018093710120E0F3
-:1016B0004BE760E084E093E00E94DC1920E04BE718
-:1016C00061E084E093E00E94DC1920E04BE762E0F7
-:1016D00084E093E00E94DC1920E04BE763E084E0C3
-:1016E00093E00E94DC1920E04BE764E084E093E0A3
-:1016F0000E94DC190E94E60C00E010E056E4F52E92
-:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB
-:1017100001900D929A95E1F7E0917101F0917201BB
-:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8
-:10173000E20FF31F60817181680F711D882777FDAB
-:101740008095982F0E94003220E030E040E451E480
-:101750000E94653120E030E040E850E40E94FD3016
-:101760009B01AC0160E070E080E090E40E941733E0
-:1017700021E230ED42E053E40E94B4324CE050E00C
-:101780000E94E30F3FEF87EE93E03150804090409E
-:10179000E1F700C0000080917301E5EBF1E0DE01AC
-:1017A000A357BF4F9F2D01900D929A95E1F7E091BD
-:1017B0007101F0917201E00FF11FEE0FFF1F2DE894
-:1017C00030E02C0F3D1FE20FF31F60817181680F25
-:1017D000711D882777FD8095982F0E94003220E0A8
-:1017E00030E040E451E40E94653120E030E040E820
-:1017F00050E40E94FD309B01AC0160E070E080E0AD
-:1018000090E40E94173321E230ED42E053E40E945D
-:10181000B4320E94130D8FEF9CE70197F1F700C0DF
-:1018200000000F5F1F4F0830110509F069CFBEC0DF
-:10183000F801228190917301222309F45DC026E40E
-:10184000E5EBF1E0DE01A95BBF4F01900D922A9517
-:10185000E1F7E0917101F0917201E80FF11DEE0FD7
-:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4
-:101870007181690F711D882777FD8095982F0E94CF
-:10188000003220E030E040E451E40E9465316B0119
-:101890007C01F801818165E070E0681B710988278F
-:1018A00077FD8095982F0E9400329B01AC01C70103
-:1018B000B6010E94FD309B01AC0160E070E080E069
-:1018C00090E40E94173321E230ED42E053E40E949D
-:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91
-:1018E0000FBECDBFDF91CF911F910F91FF90EF9071
-:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE
-:10190000119601900D922A95E1F7E0917101F09105
-:101910007201E80FF11DEE0FFF1F21E030E02C0FE8
-:101920003D1FE20FF31F60817181690F711D8827D0
-:1019300077FD8095982F0E94003220E030E040E44F
-:1019400051E40E9465316B017C01F801818165E001
-:1019500070E0681B7109882777FD8095982F0E9499
-:1019600000329B01AC01C701B6010E94FD309B0112
-:10197000AC0160E070E080E090E40E94173321E267
-:1019800030ED42E053E40E94B432C454DD4F0FB650
-:10199000F894DEBF0FBECDBFDF91CF911F910F91A5
-:1019A000FF90EF90DF90CF900C94130DC454DD4F57
-:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160
-:1019C0000F91FF90EF90DF90CF90089510928702D3
-:1019D00010928602809171008D7F809371008091BA
-:1019E00090008F77809390001092480210924702E7
-:1019F0001092800210928102109282021092830251
-:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8
-:101A100011921192119211921D921D9282E0EE3755
-:101A2000F807B1F708956F927F928F929F92AF92CD
-:101A3000BF92CF92DF92EF92FF920F931F93CF93BB
-:101A4000DF936B017C010EE712E04CE5A42E42E02F
-:101A5000B42EC7E0D0E0A7019601F80192918291DF
-:101A6000729162918F010E946131882349F0219720
-:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B
-:101A8000F8011082118212821382F50111821082F4
-:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA
-:101AA000AA0FBB1FA25BBD4FCE011AC00196448195
-:101AB0005581668177814083518362837383148269
-:101AC00015821682178212962D913C9113971196CA
-:101AD0003C932E9313961C921E9212973496129654
-:101AE0008730910519F7C3CF8091860290918702C4
-:101AF000019797FD05C0909387028093860204C0EA
-:101B00001092870210928602E0918602F09187027D
-:101B10003097C9F4809171008D7F8093710080911E
-:101B200090008F7780939000109280021092810233
-:101B3000109282021092830210927F0210927E0213
-:101B40001092470285C03197DF01AA0FBB1FAA0F71
-:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3
-:101B6000FF1FE25BFD4FC081D181609080027090C9
-:101B700081028090820290908302A7019601662DD7
-:101B8000772D882D992D0E94613187FF25C0262D44
-:101B9000372D482D592DC701B6010E94FC3020E099
-:101BA00030E04AEF54E40E9465315B018C012A2D3C
-:101BB0003B2D402F512F662D772D882D992D0E947A
-:101BC000FD303B014C01A7019601772D992D0E9414
-:101BD0006131181664F72EC0A7019601662D772D86
-:101BE000882D992D0E94B032181634F5A701960160
-:101BF000662D772D882D992D0E94FC3020E030E055
-:101C00004AEF54E40E9465315B018C012A2D3B2D83
-:101C1000402F512F662D772D882D992D0E94FC3055
-:101C20003B014C01A7019601772D992D0E94B032FE
-:101C300087FFECCF10924D02C0928002D0928102B9
-:101C4000E0928202F0928302D0937F02C0937E02E0
-:101C5000DF91CF911F910F91FF90EF90DF90CF9088
-:101C6000BF90AF909F908F907F906F9008953E9A15
-:101C7000E1E7F0E080818D7F808382E080939000B7
-:101C80008AE18093910008951F920F920FB60F92F0
-:101C90001124CF92DF92EF92FF922F933F934F93B5
-:101CA0005F936F937F938F939F93AF93BF93CF93E4
-:101CB000DF93EF93FF9380914702882309F479C063
-:101CC00020E030E0A9016091800270918102809152
-:101CD0008202909183020E94B03218160CF069C003
-:101CE00020E030E040E251E46091490270914A0204
-:101CF00080914B0290914C020E94B0321816BCF4B5
-:101D00008091840290918502019660918602709183
-:101D100087020E949C3490938502809384021092E3
-:101D2000490210924A0210924B0210924C02C0914A
-:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B
-:101D4000DD4F288139814A815B8160E074E284E75C
-:101D50009BE40E9465310E94CD317093970060939F
-:101D60009600288139814A815B8160E074E284E7D2
-:101D70009BE40E9465310E94CD3175956795709303
-:101D800099006093980020E030E040E85FE36091C4
-:101D9000490270914A0280914B0290914C020E943C
-:101DA000FD306093490270934A0280934B029093F6
-:101DB0004C0280914802882309F493C0C0904302EA
-:101DC000D0904402E0904502F090460220E030E0DE
-:101DD000A901C701B6010E94B0321816F4F4A70198
-:101DE000960160E074E284E79BE40E9465310E9402
-:101DF000CD317093970060939600A701960160E043
-:101E000074E284E79BE40E9465310E94CD317595B0
-:101E10006795709399006093980060913D0270916E
-:101E20003E026F5F7F4F70933E0260933D0280E001
-:101E300090E00E94FE3120913F023091400240919B
-:101E40004102509142020E94B03287FD4AC0809107
-:101E50003C028F5F80933C029091F1038917A0F0C0
-:101E60008091F603882319F010923C020DC08091F6
-:101E700071008D7F80937100809190008F778093A7
-:101E80009000109248022DC0E091F203F091F3030C
-:101E900080913C0298E0899FE00DF11D1124808122
-:101EA0009181A281B3818093430290934402A093D5
-:101EB0004502B093460220E030E040E85EE36481F2
-:101EC0007581868197810E94B43260933F0270933E
-:101ED0004002809341029093420210923E0210927F
-:101EE0003D02FF91EF91DF91CF91BF91AF919F9113
-:101EF0008F917F916F915F914F913F912F91FF90C3
-:101F0000EF90DF90CF900F900FBE0F901F9018951D
-:101F10000F931F93CF93DF9300D0CDB7DEB78C0123
-:101F200080914702882331F04A8369830E94E60C3E
-:101F300069814A8181E0809348021093F303009302
-:101F4000F2036093F1034093F6031092490210925A
-:101F50004A0210924B0210924C0210923C02F8017D
-:101F600040815181628173814093430250934402C6
-:101F7000609345027093460220E030E040E85EE363
-:101F800064817581868197810E94B43260933F029B
-:101F900070934002809341029093420210923E025D
-:101FA00010923D0280917100826080937100809157
-:101FB00090008068809390000F900F90DF91CF91F8
-:101FC0001F910F9108956F927F928F929F92AF927F
-:101FD000BF92CF92DF92EF92FF920F931F93CF9316
-:101FE000DF936B017C01EA018091480281110E941C
-:101FF000E60C81E08093470220E030E0A901C701B0
-:10200000B6010E94B03218160CF09AC0609080029F
-:1020100070908102809082029090830220E030E0F4
-:10202000A901662D772D882D992D0E94613181118E
-:1020300028C0C0928002D0928102E0928202F09287
-:102040008302D0937F02C0937E028091860290919A
-:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C
-:10206000C082D182E282F382FC01EE0FFF1FE25BAD
-:10207000FD4FD183C083019690938702809386029F
-:102080005FC0A7019601662D772D882D992D0E949E
-:10209000613187FF25C0262D372D482D592DC701C9
-:1020A000B6010E94FC3020E030E04AEF54E40E9488
-:1020B00065315B018C012A2D3B2D402F512F662D60
-:1020C000772D882D992D0E94FD303B014C01A701F1
-:1020D0009601772D992D0E946131181664F7A9CFCA
-:1020E000A7019601662D772D882D992D0E94B0327B
-:1020F00018160CF09ECFA7019601662D772D882D1E
-:10210000992D0E94FC3020E030E04AEF54E40E9418
-:1021100065315B018C012A2D3B2D402F512F662DFF
-:10212000772D882D992D0E94FC303B014C01A70191
-:102130009601772D992D0E94B03287FFECCF79CF91
-:10214000809171008260809371008091900080681E
-:1021500080939000DF91CF911F910F91FF90EF90AE
-:10216000DF90CF90BF90AF909F908F907F906F90B7
-:102170000895809191020895CF93DF9300D01F922C
-:10218000CDB7DEB72091FB03243021F523E029836E
-:102190009B838A832093E9008FEF06C095ED9A9583
-:1021A000F1F70000882329F09091E800815095FF15
-:1021B000F5CF8091E80085FF0DC040E050E063E07E
-:1021C00070E0CE0101960E94A6148091E8008E77FF
-:1021D0008093E8000F900F900F90DF91CF910895BA
-:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2
-:1021F000243029F522E029839B838A8383E080931E
-:10220000E9008FEF06C095ED9A95F1F7000088235D
-:1022100029F09091E800815095FFF5CF8091E8007A
-:1022200085FF0DC040E050E063E070E0CE01019614
-:102230000E94A6148091E8008E778093E8000F90AA
-:102240000F900F90DF91CF9108952091FB032430E0
-:10225000F9F422E02093E9002FEF06C035ED3A951E
-:10226000F1F70000222329F03091E800215035FFDA
-:10227000F5CF2091E80025FF0BC040E050E065E07D
-:1022800070E00E94A6148091E8008E778093E800A9
-:102290000895CF93DF93EC018091FB03843041F5E7
-:1022A00081E08093E9008FEF06C095ED9A95F1F7F4
-:1022B0000000882329F09091E800815095FFF5CF28
-:1022C0008091E80085FF14C040E050E068E070E0D5
-:1022D000CE010E94A6148091E8008E778093E800DA
-:1022E00088E0FE01A9E8B2E001900D928A95E1F73D
-:1022F000DF91CF910895BF92CF92DF92EF92FF923C
-:102300000F931F93CF93DF937C01B62EE90100E07A
-:1023100010E0C42ED12C0BC04991202F2B0D2F770C
-:102320004F776FE0C7010E94DC190F5F1F4F0C153C
-:102330001D0594F3DF91CF911F910F91FF90EF90C6
-:10234000DF90CF90BF90089570E06F5F7F4F6F7008
-:1023500077270C94DC190F931F93CF93C42F63300E
-:10236000710509F04AC0842F807F803849F1803997
-:1023700009F043C0622F6F7770E080E090E00E9428
-:10238000003220E030E040E451E40E9465319B01DE
-:10239000AC0160E070E080E090E40E9417330F77BA
-:1023A00010E023E0159507952A95E1F72DEC3CEC1C
-:1023B00042E053E40E94B432A8010E94E30F1DC022
-:1023C000622F6F7770E080E090E00E94003220E0A2
-:1023D00030E040E451E40E9465319B01AC0160E0D3
-:1023E00070E080E090E40E9417332DEC3CEC42E07A
-:1023F00053E40E94B4320E94130DCC3F29F4CF91D4
-:102400001F910F910C94E60CCF911F910F9108959D
-:102410000F931F93CF93DF93CDB7DEB727970FB6F8
-:10242000F894DEBF0FBECDBF8C0114C08A810E941C
-:10243000B6199A819D839B819E839C819F83811184
-:102440001EC089818430B1F08730A1F08630A1F0C0
-:102450008530A1F0BE016F5F7F4F84E791E00E945D
-:10246000231D8111E3CF84E791E00E94141D0E9497
-:102470008F190DC083E003C082E001C081E0AE018E
-:102480004B5F5F4F682FC8010E94491AE3CF279620
-:102490000FB6F894DEBF0FBECDBFDF91CF911F9175
-:1024A0000F910895EF92FF920F93CF93DF9300D097
-:1024B00000D000D0CDB7DEB77B014A832B830C83DD
-:1024C000842F2E834D830E94B6192E814D81811158
-:1024D0001BC082E0E816F10479F083E0E816F1040D
-:1024E00021F0EA94EF2821F50BC0073F11F487E0B3
-:1024F00001C084E089830BC0273FD9F786E0FACF7B
-:10250000473FB9F785E0F6CF42954F704983BE014A
-:102510006F5F7F4F84E791E00E94D91C84E791E0D0
-:102520000E94F71C84E791E00E94141D0E948F19FD
-:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8
-:102540000F91FF90EF9008958091FA03811109C0D7
-:102550000E9495160E94F2168091E200846080939A
-:10256000E20008951092FA030895089508950C94D6
-:10257000B229809192028F5F8093920262E30E945F
-:102580007C34911135C0109292028091930288237D
-:1025900079F18091FB03843049F58091E9008F70D7
-:1025A0009091EC0090FF02C090E801C090E0982B61
-:1025B00084E08093E9008091EB0080FF14C080915B
-:1025C000EE0087FD03C00FC01092F1008091E8007B
-:1025D00085FDFACF8091E80080FF05C08091E8007A
-:1025E0008E778093E8009F709093E9001092930299
-:1025F000089542E061EC81E00E940B1642E061EC3C
-:1026000082E00E940B1642E061EC83E00E940B1610
-:1026100042E261EC84E00E940B1642E361E885E04F
-:102620000E940B1642E360E886E00C940B16809142
-:10263000FD03833009F454C030F4813071F08230EE
-:1026400009F0A5C08CC08A3009F479C08B3009F438
-:102650005FC0893009F09BC020C08091FC03813AA3
-:1026600009F095C08091E800877F8093E800809111
-:10267000000490910104892B21F060E080E090E05B
-:1026800003C068E089E892E070E00E944415809100
-:10269000E8008B778093E80008958091FC038132F5
-:1026A00009F075C08091000490910104892B09F014
-:1026B0006EC08091E800877F8093E80005C080911C
-:1026C000FB03882309F463C08091E80082FFF7CF01
-:1026D0008091F100809391028091E8008B7753C044
-:1026E0008091FC03813A09F052C0809100049091DE
-:1026F0000104892B09F04BC08091E800877F80930B
-:10270000E8008091E80080FFFCCF80918A0136C00C
-:102710008091FC038132D9F58091000490910104ED
-:10272000892BA9F58091E800877F8093E8000E94BB
-:1027300042168091FE0380938A010C948B23809132
-:10274000FC03813221F58091E800877F8093E800C7
-:102750000E9442168091FF03809388020895809121
-:10276000FC03813AA1F48091E800877F8093E80020
-:102770008091E80080FFFCCF809188028093F10077
-:102780008091E8008E778093E8000C9442160895BB
-:1027900084E093E00E94181A62E572E184E093E01D
-:1027A0000E946E1A68E072E184E093E00E94721A5F
-:1027B00084B7877F84BF88E10FB6F8948093600068
-:1027C000109260000FBE90E080E80FB6F8948093FE
-:1027D0006100909361000FBE0E949C1D0E9495169F
-:1027E0000E94F2168091E20084608093E200789467
-:1027F0006BEA71E184E093E00E94141A64EA71E1EB
-:1028000084E093E00E940C1A6BE771E184E093E0AE
-:102810000E94101A0E94370E0E948F190E949E1D5E
-:1028200080E891E00E94481D0BC00E946C298091B5
-:10283000F903882329F00E949A2981110E9490149B
-:102840008091FB03853089F384E093E00E94211C92
-:102850000E94A81DF5CF292F332723303105B1F071
-:102860004CF42130310509F44DC02230310509F016
-:102870004EC007C02132310541F12232310591F1BC
-:1028800046C0E0EDF0E08CE594E045C0992781304A
-:10289000910569F08230910589F0892B09F037C0E4
-:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1
-:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082
-:1028C000E491F0E08EEF93E026C0643000F5E62F4F
-:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF
-:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1
-:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA
-:10290000F0E009C0E2E1F0E08CE295E004C0E0E034
-:10291000F0E080E090E0DA018D939C93CF01089580
-:1029200080E189BD82E189BD09B400FEFDCF8091BF
-:10293000D8008F7D8093D8008091E00082608093E2
-:10294000E0008091E00081FDFCCF0895BF92CF921E
-:10295000DF92EF92FF920F931F93CF93DF937C014F
-:102960008B01EA010E946316B82E811133C02097B3
-:1029700031F028813981021B130BE20EF31EC12CAA
-:10298000D12C23C08091E80085FD15C08091E8001E
-:102990008E778093E800209749F0888199818C0D8B
-:1029A0009D1D9983888325E0B22E14C00E94631672
-:1029B000882359F00EC0F70181917F018093F100C7
-:1029C00001501109FFEFCF1ADF0A01151105D1F6E9
-:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9
-:1029E000EF90DF90CF90BF900895BF92CF92DF928B
-:1029F000EF92FF920F931F93CF93DF937C018B0194
-:102A0000EA010E946316B82E811133C0209731F07D
-:102A100028813981021B130BE20EF31EC12CD12C2D
-:102A200023C08091E80085FD15C08091E8008B7778
-:102A30008093E800209749F0888199818C0D9D1D35
-:102A40009983888345E0B42E14C00E9463168823BE
-:102A500059F00EC08091F100F70181937F01015080
-:102A60001109FFEFCF1ADF0A01151105D1F601C0D8
-:102A7000B82E8B2DDF91CF911F910F91FF90EF908A
-:102A8000DF90CF90BF9008954091020450910304CD
-:102A90004617570748F06115710539F44091E80071
-:102AA0004E774093E80001C0BA01FC0140E033C01A
-:102AB0008091FB03882309F444C0853009F443C0A6
-:102AC0008091E80083FD41C08091E80082FD33C021
-:102AD0008091E80080FF1FC09091F3008091F20088
-:102AE000392F20E0A901482BCA0106C0419140932B
-:102AF000F1006150710901966115710519F0883076
-:102B00009105A0F341E0089709F040E08091E800CA
-:102B10008E778093E8006115710551F64111C8CF99
-:102B20000AC08091FB03882361F0853061F08091B9
-:102B3000E80083FD0AC08091E80082FFF2CF80E0C8
-:102B4000089582E0089583E0089581E0089540911A
-:102B50000204509103044617570748F061157105A8
-:102B600039F44091E8004E774093E80001C0BA0183
-:102B7000FC0140E034C08091FB03882309F445C088
-:102B8000853009F444C08091E80083FD42C0809103
-:102B9000E80082FD34C08091E80080FF20C0909161
-:102BA000F3008091F200392F20E0A901482BCA01DF
-:102BB00007C044914093F10031966150710901962C
-:102BC0006115710519F08830910598F341E0089777
-:102BD00009F040E08091E8008E778093E80061156D
-:102BE000710549F64111C7CF0AC08091FB038823C4
-:102BF00061F0853061F08091E80083FD0AC080912A
-:102C0000E80082FFF2CF80E0089582E0089583E03B
-:102C1000089581E00895982F2CC09093E9009817AB
-:102C200039F07091EC002091ED005091F00003C05C
-:102C3000242F762F50E021FD02C09F5F1AC03091F3
-:102C4000EB003E7F3093EB003091ED003D7F309301
-:102C5000ED003091EB0031603093EB007093EC00AD
-:102C60002093ED005093F0002091EE0027FDE5CF7A
-:102C700007C0973090F28F708093E90081E008954B
-:102C800080E008958091FC0387FD05C08091E800F5
-:102C900080FF0EC012C08091E80082FD05C08091C7
-:102CA000FB038111F8CF08958091E8008B7708C06D
-:102CB0008091FB038111EACF08958091E8008E771F
-:102CC0008093E80008958091E4009091E50045E646
-:102CD0002091EC0020FD1FC023C02091FB03222384
-:102CE00091F0253091F02091EB0025FD10C020914E
-:102CF000E4003091E5002817390751F34150C9012C
-:102D000039F784E0089582E0089583E0089581E032
-:102D1000089580E008952091E80020FFDECFF9CFEC
-:102D20002091E80022FFD9CFF4CF0E9403170E9420
-:102D30000B17E0EEF0E0808181608083E8EDF0E049
-:102D400080818F77808319BCA7EDB0E08C918E7F56
-:102D50008C9380818F7E80831092FA0308950F9365
-:102D60001F93CF93DF930E9403170E940B17C8EDA8
-:102D7000D0E088818F778883888180688883888184
-:102D80008F7D888319BC1092FB031092F703109279
-:102D9000F9031092F80300EE10E0F80180818B7FB8
-:102DA000808388818160888342E060E080E00E94C7
-:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2
-:102DC000808181608083808188608083F801808138
-:102DD0008E7F8083888180618883DF91CF911F916E
-:102DE0000F910895E8EDF0E080818F7E8083E7ED1C
-:102DF000F0E080818160808384E082BF81E0809305
-:102E0000FA030C94AF16E8EDF0E080818E7F8083AA
-:102E10001092E20008951092DA001092E1000895F5
-:102E20001F920F920FB60F9211242F933F934F933F
-:102E30005F936F937F938F939F93AF93BF93EF9322
-:102E4000FF938091E10082FF0BC08091E20082FF3E
-:102E500007C08091E1008B7F8093E1000E94B9124E
-:102E60008091DA0080FF1FC08091D80080FF1BC0D6
-:102E70008091DA008E7F8093DA008091D90080FF04
-:102E80000DC080E189BD82E189BD09B400FEFDCF9E
-:102E900081E08093FB030E94A41205C019BC10922C
-:102EA000FB030E94B2128091E10080FF19C0809163
-:102EB000E20080FF15C08091E2008E7F8093E200E7
-:102EC0008091E20080618093E2008091D80080626E
-:102ED0008093D80019BC85E08093FB030E94B61252
-:102EE0008091E10084FF30C08091E20084FF2CC01B
-:102EF00080E189BD82E189BD09B400FEFDCF8091EA
-:102F0000D8008F7D8093D8008091E1008F7E8093E0
-:102F1000E1008091E2008F7E8093E2008091E200E8
-:102F200081608093E2008091F703882311F084E0B0
-:102F300007C08091E30087FF02C083E001C081E009
-:102F40008093FB030E94B7128091E10083FF29C0A8
-:102F50008091E20083FF25C08091E100877F80930C
-:102F6000E10082E08093FB031092F7038091E1007F
-:102F70008E7F8093E1008091E2008E7F8093E2005B
-:102F80008091E20080618093E20042E060E080E0B6
-:102F90000E940B168091F00088608093F0000E94E0
-:102FA000B512FF91EF91BF91AF919F918F917F915A
-:102FB0006F915F914F913F912F910F900FBE0F90A6
-:102FC0001F9018951F920F920FB60F9211242F93F6
-:102FD0003F934F935F936F937F938F939F93AF93A1
-:102FE000BF93CF93EF93FF938091E9008F709091FF
-:102FF000EC0090FF02C090E801C090E0C92FC82B00
-:103000001092E9008091F000877F8093F00078941F
-:103010000E9426181092E9008091F0008860809349
-:10302000F000CF70C093E900FF91EF91CF91BF9175
-:10303000AF919F918F917F916F915F914F913F9150
-:103040002F910F900FBE0F901F9018951F93CF9345
-:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7
-:10306000CDBFECEFF3E08091F100819324E0E430F8
-:10307000F207C9F70E9417138091E80083FF37C158
-:103080008091FC039091FD03953009F488C038F4D9
-:103090009130B1F170F0933009F029C131C098300E
-:1030A00009F4F8C0993009F404C1963009F01FC141
-:1030B0009DC0803821F0823809F019C108C0809184
-:1030C000F8039091F903992389F082600FC08091F1
-:1030D0000004909101048F7099278093E9008091FA
-:1030E000EB0085FB882780F91092E9009091E800B9
-:1030F000977F9093E8008093F1001092F100D5C083
-:10310000882319F0823009F0F2C08F7121F08230EB
-:1031100009F0EDC00BC08091FE03813009F0E7C0DB
-:10312000933009F080E08093F9032FC08091FE0373
-:1031300081112BC080910004909101048F70992718
-:10314000009709F4D4C08093E9002091EB0020FFA0
-:103150001CC02091FD03233021F48091EB0080629C
-:1031600012C09091EB0090619093EB0021E030E071
-:1031700001C0220F8A95EAF72093EA001092EA0034
-:103180008091EB0088608093EB001092E9008091C1
-:10319000E800877F8093E8000E944216A8C0811152
-:1031A000A6C08091FE039091FF038F779927182F77
-:1031B0009091E3009078982B9093E3008091E80041
-:1031C000877F8093E8000E9442168091E80080FF8C
-:1031D000FCCF8091E30080688093E300112311F01D
-:1031E00083E001C082E08093FB0381C0805882307D
-:1031F00008F07DC08091FE039091FF038C3D23E099
-:10320000920779F583E08A838AE289834FB7F8943D
-:10321000DE01139620E03EE051E2E32FF0E0509310
-:103220005700E49120FF03C0E295EF703F5FEF701D
-:103230008E2F90E0EA3010F0C79601C0C0968D93B3
-:103240009D932F5F243149F74FBF8091E800877F1E
-:103250008093E8006AE270E0CE0101960E94441576
-:1032600013C0AE01455D5F4F609100040E942B14B6
-:103270000097E9F12091E800277F2093E800BC0146
-:103280008BA59CA50E94A7158091E8008B77809361
-:10329000E8002DC0803859F58091E800877F809341
-:1032A000E8008091F7038093F1008091E8008E7729
-:1032B00071CF81111CC09091FE039230C0F48091B7
-:1032C000E800877F8093E8009093F7030E944216FE
-:1032D0008091F703811104C08091E30087FF02C051
-:1032E00084E001C081E08093FB030E94F912809189
-:1032F000E80083FF0AC08091E800877F8093E800A0
-:103300008091EB0080628093EB00AC960FB6F8944E
-:10331000DEBF0FBECDBFDF91CF911F910895CF9338
-:103320008091FB038823B1F08091E9008F70909128
-:10333000EC0090FF02C090E801C090E0C92FC82BBC
-:103340001092E9008091E80083FD0E942618CF705A
-:10335000C093E900CF910895881F8827881F08959A
-:1033600091E0883F08F490E0892F0895982F907F8E
-:10337000903B99F038F4903981F0903A71F09038A0
-:10338000C9F40BC0903DA1F018F4903C99F410C022
-:10339000903E19F0903F71F402C083E00895E82F49
-:1033A000E15FEF3038F4F0E0E15FFD4F8081089598
-:1033B00082E0089580E008950F932F774F776F7024
-:1033C000606BDC01ED91FC91022F242F462F63E00E
-:1033D00070E009950F9108950F932F774F776F70D5
-:1033E0006069DC01ED91FC91022F242F462F63E0F0
-:1033F00070E009950F9108950F932F774F776F70B5
-:103400006068DC01ED91FC91022F242F462F63E0D0
-:1034100070E009950F910895FC017383628308950C
-:10342000FC01738F628F0895FC01758F648F08957E
-:10343000CF93DF93EC011DA21FA21EA2BC01685D09
-:103440007F4F40EC88519F4F0E94551C1B821A826F
-:103450001D821C821F821E82198618861B861A8670
-:103460001D861C861F861E86198A188A1B8A1A8A40
-:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10
-:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149
-:103490000895CF92DF92FF920F931F93CF93DF9304
-:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F
-:1034B00008C0F60161916F01C80149830E945C1C3C
-:1034C00049818C2D841B8F15A0F30F90DF91CF9134
-:1034D0001F910F91FF90DF90CF900895FC017183B1
-:1034E00060830895FC0171A360A30895AF92BF9219
-:1034F000CF92DF92EF92FF920F931F93CF93DF93C0
-:1035000000D01F92CDB7DEB77C016B01142FB22E15
-:10351000A02EDC0195968C9195978430F1F45A9603
-:10352000ED91FC915B97309709F4D8C0CB010197DE
-:1035300063E070E00E948834DB01AA0FBB1FA60F76
-:10354000B71F49832A830B834C2D4A1B9E012F5F93
-:103550003F4FBD01C7010995B1C06230710509F443
-:1035600053C06330710529F06130710509F09CC0CA
-:1035700083C0842F807F803A01F130F48038B9F025
-:10358000803909F0ABC00DC0803EE9F0803F09F101
-:10359000803B09F0A3C0D7011296ED91FC911397DF
-:1035A00023C0D7011496ED91FC9115971DC0D7014A
-:1035B0001696ED91FC91179717C0D7011896ED91CB
-:1035C000FC91199711C0D7011A96ED91FC911B97A8
-:1035D0000BC0423F09F082C0D7011C96ED91FC91CF
-:1035E0001D97309731F47AC0309709F477C0123FB5
-:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C
-:103600004B2DC70109955AC0842F807F803D59F00A
-:10361000803F79F0803C09F061C0D7011E96ED91A2
-:10362000FC911F9719C0D7015096ED91FC915197CD
-:1036300013C0433F31F4D7015296ED91FC9153975B
-:1036400008C0413F09F04AC0D7015496ED91FC9162
-:103650005597309741F442C0309709F43FC0133F6B
-:1036600011F0113F19F44B2D612F03C0612F6F70C2
-:103670004B2DC701099522C0842F0E94B0198823C1
-:1036800031F0D7015696ED91FC91579707C0163F40
-:1036900029F5D7015896ED91FC9159973097F1F0A3
-:1036A000612FC70109950AC064307105A8F416C0DE
-:1036B0000A2D2B2D412FB601C7010995D7015E9622
-:1036C000ED91FC915F97309789F00A2D2B2D412FBA
-:1036D000B601C70109950AC0C12CD12CD7015C964F
-:1036E000ED91FC915D97309719F7E8CF0F900F900F
-:1036F0000F90DF91CF911F910F91FF90EF90DF908E
-:10370000CF90BF90AF900895EF92FF920F931F93C9
-:10371000CF93DF93EC01162F862F0E94B0198823D8
-:1037200069F0FDA081E08DA300E020E0412F61E081
-:1037300070E0CE010E94761AFDA27CC0812F0E940B
-:10374000AC194DA1882309F440C0443029F01AA3D4
-:1037500021E030E03FA32EA3812F0E94B6198130D3
-:1037600031F070F0823051F0833059F507C08DA3ED
-:1037700000E020E0412F61E070E01EC08DA35AC040
-:10378000103F19F0173FE9F404C084E08DA31AA399
-:103790003FC02EA13FA1C90163E070E00E948834C0
-:1037A0008C0F9D1FFC0112A3B9016F5F7F4F7FA398
-:1037B0006EA30CA12BA14AA1CE010E94761A1DA2D4
-:1037C00039C01DA21FA21EA235C0442399F12EA10B
-:1037D0003FA1C90163E070E00E9488347C01FE01D2
-:1037E000E80FF91F12A3B9016F5F7F4F7FA36EA38C
-:1037F0008130910591F082E0E816F104D9F40CA132
-:103800002BA14AA1CE010E94761A8DA1843091F09D
-:1038100081E090E09FA38EA30DC0423059F400E0F8
-:103820002BA14AA1CE010E94761A8DA1843011F0FD
-:10383000FFA2EEA2DF91CF911F910F91FF90EF9029
-:103840000895CF92DF92EF92FF920F931F93CF9341
-:10385000DF93EC01E8A1F9A1309709F009958E01F9
-:1038600008511F4FC8010E948E1CE12CF12CC82E5C
-:10387000D12C0FC060E0C8010E94A21C682FCE01AD
-:103880000E94841B61E0C8010E94B31C8FEFE81AFC
-:10389000F80AEC14FD0470F3DF91CF911F910F91A2
-:1038A000FF90EF90DF90CF900895FC0142837483E6
-:1038B00063831182108208950F931F93CF93DF9338
-:1038C000EC01062F0E94D41C182F298130E0C90179
-:1038D00001966A8170E00E949C34488150E0841710
-:1038E000950729F4812F0E94D71C80E012C0EB813C
-:1038F000FC81E20FF31F00832981822F90E0019663
-:103900006A8170E00E949C348983812F0E94D71CB9
-:1039100081E0DF91CF911F910F910895CF93DF93B5
-:10392000EC010E94D41C29819881291710F0C22F24
-:1039300002C0CA81C20FC91B0E94D71C8C2FDF9105
-:10394000CF910895FC012081862F90E0820F911D78
-:10395000628170E00E949C340380F481E02DE80FC6
-:10396000F91F808108950F931F93CF93DF931F92C8
-:10397000CDB7DEB78C0169830E94D41C482FF801B3
-:1039800080816981262F30E0280F311D6281C901B5
-:1039900070E00E949C348083842F0F90DF91CF9140
-:1039A0001F910F910C94D71C8FB7F89408958FBF77
-:1039B0000895FC01CB012091FB032430B1F4218157
-:1039C0002F702093E90040E050E064E070E00E9436
-:1039D000A61481110BC09091E80095FD07C090914D
-:1039E000E8009E779093E800089582E00895209182
-:1039F000FB032430A9F4FC0181818F708093E900DE
-:103A00003091F3002091F200932F80E0822B892BDC
-:103A100049F08091E8008E778093E8000C9463165B
-:103A200082E0089580E008952091FB03243051F452
-:103A3000FC0121812F702093E9002091E80020FDF6
-:103A40000C94F71C0895FC01CB012091FB0324305A
-:103A500011F080E0089526812F702093E9002091D5
-:103A6000E80022FFF6CF2091E80025FFF2CF40E0EA
-:103A700050E064E070E00E94F5148091E80085FD5C
-:103A800005C08091E8008B778093E80081E008957D
-:103A900090939502809394020895E0919402F0919E
-:103AA0009502309721F00190F081E02D099480E09B
-:103AB0000895E0919402F0919502309721F00280F0
-:103AC000F381E02D09940895E0919402F09195021C
-:103AD000309721F00480F581E02D0994089520911C
-:103AE0009602309197028217930771F09093970294
-:103AF00080939602E0919402F0919502309721F024
-:103B00000680F781E02D0994089520919802309164
-:103B100099028217930771F090939902809398020B
-:103B2000E0919402F0919502309721F00084F185A4
-:103B3000E02D0994089508950C949B1D0E94E62998
-:103B40000E94F3060E94BA2A0C9465300C942C064D
-:103B50005F926F927F928F929F92AF92BF92CF921D
-:103B6000DF92EF92FF920F931F93CF93DF93CDB726
-:103B7000DEB72A970FB6F894DEBF0FBECDBF0E9406
-:103B8000E9079AE9C92E92E0D92E00E010E0AA24B4
-:103B9000A394B12C502E802F0E9439093C01F601CC
-:103BA000E190F1906F01E826F926E114F10431F477
-:103BB0000F5F1F4F0530110569F73AC08091F10280
-:103BC00081FD0E94420920E030E04501022E02C042
-:103BD000880C991C0A94E2F7C4018E219F21892B3D
-:103BE00009F12E835F826820792081E0672809F43B
-:103BF00080E088870E94EF298160782F9A878987E3
-:103C00004E815F8168858A850E94611EF801EE0FF2
-:103C1000FF1FE656FD4F808191818825992591836C
-:103C2000808316C02F5F3F4F2C30310571F6C0CF17
-:103C30008FEF89838A831B820E94EF298160782F0E
-:103C40009D838C8349815A816B818D810E94611E85
-:103C50000E94A72D1091A4020E944D1D1817D9F0A3
-:103C60000E944D1D8093A4022A960FB6F894DEBFE1
-:103C70000FBECDBFDF91CF911F910F91FF90EF90BD
-:103C8000DF90CF90BF90AF909F908F907F906F907C
-:103C90005F900C94A61D2A960FB6F894DEBF0FBE57
-:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB
-:103CB000CF90BF90AF909F908F907F906F905F90CC
-:103CC0000895CF93DF93CDB7DEB72B970FB6F89457
-:103CD000DEBF0FBECDBF4F83588769877A878B873A
-:103CE000DE01119686E0FD0111928A95E9F785E0E3
-:103CF000FE01379601900D928A95E1F749815A812C
-:103D00006B817C818D819E810E944A262B960FB605
-:103D1000F894DEBF0FBECDBFDF91CF910895089517
-:103D2000CF93C82F882309F4C1C0823859F40E9468
-:103D30004D1D81FDBBC089E30E94B1280E943D2931
-:103D400089E30CC0833879F40E944D1D80FDAEC01C
-:103D500083E50E94B1280E943D2983E50E94D32873
-:103D6000CF910C943D29843859F40E944D1D82FD59
-:103D70009DC087E40E94B1280E943D2987E4EECFD0
-:103D80008450813A48F48C2F0E94C72F81118EC035
-:103D90008C2F0E94B128E4CF8C2F805E883050F4A5
-:103DA000C77081E090E001C0880FCA95EAF70E94D1
-:103DB000F428D6CF8C2F855A833078F4C53A29F071
-:103DC000C63A31F482E890E005C081E890E002C094
-:103DD00083E890E0CF910C946F1D8C2F885A83312B
-:103DE00008F064C0C83A39F1C93A41F1CA3A49F118
-:103DF000CB3A51F1CC3A59F1CD3A61F1C03B69F17E
-:103E0000CE3A71F1CF3A79F1C13B81F1C23B89F1F0
-:103E1000C33B91F1C43B99F1C53BA1F1C63BA9F16C
-:103E2000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5C8
-:103E30008AE292E038C082EE90E035C089EE90E0F0
-:103E400032C08AEE90E02FC085EB90E02CC086EB6C
-:103E500090E029C087EB90E026C08CEC90E023C076
-:103E60008DEC90E020C083E891E01DC08AE891E0ED
-:103E70001AC082E991E017C084E991E014C081E2A0
-:103E800092E011C083E292E00EC084E292E00BC0A7
-:103E900085E292E008C086E292E005C087E292E007
-:103EA00002C080E090E0CF910C94851DCF910895E1
-:103EB000882309F44DC0823859F40E944D1D81FFBA
-:103EC00047C089E30E94B1280E943D2989E30CC0C4
-:103ED000833871F40E944D1D80FF3AC083E50E9433
-:103EE000B1280E943D2983E50E94D3280C943D29E6
-:103EF000843859F40E944D1D82FF2AC087E40E9435
-:103F0000B1280E943D2987E4EFCF982F9450913A31
-:103F100008F4EACF982F905E983058F4282F277035
-:103F200081E090E001C0880F2A95EAF70E94FA2804
-:103F3000DDCF982F955A933020F480E090E00C94D8
-:103F40006F1D885A833120F480E090E00C94851D29
-:103F50000895882321F00E94F4280C943D290895A7
-:103F6000882321F00E94FA280C943D290895BF92DD
-:103F7000CF92DF92EF92FF920F931F93CF93DF9335
-:103F8000CDB7DEB727970FB6F894DEBF0FBECDBF13
-:103F90008C0185E0F801DE01119601900D928A9561
-:103FA000E1F7F801D080E180F280558152955F7091
-:103FB00083819481892B41F0FFEFEF1208C081E0EB
-:103FC00090E0DF1631F003C081E090E002C080E0B5
-:103FD00090E080FD7CC3C8015E830E948F1ED98261
-:103FE000EA8289819A810E946E28B92E8F830E946D
-:103FF0006D280E9495275E816F81FF2021F00E942D
-:1040000011296F815E812B2D22952F7030E0253094
-:10401000310509F4E6C06CF4243031050CF0A2C07F
-:104020004B2D407F8B2D8F70223031050CF045C019
-:1040300017C02C3031054CF42A3031050CF0E7C1A3
-:104040002830310509F043C3E5C02D30310509F4AE
-:10405000BAC20CF4A2C22F30310509F038C323C311
-:10406000182F411101C002C01295107FFF2059F096
-:10407000112309F46BC2812F6F830E9404290E94CF
-:104080003D296F8163C2862F0E94581F112309F4B6
-:104090001EC3812F0E940A2927960FB6F894DEBF0F
-:1040A0000FBECDBFDF91CF911F910F91FF90EF9089
-:1040B000DF90CF90BF900C943D29403211F0829553
-:1040C000807F662319F0613071F523C0FF20B1F0C5
-:1040D000511101C032C0513081F527960FB6F894C6
-:1040E000DEBF0FBECDBFDF91CF911F910F91FF902B
-:1040F000EF90DF90CF90BF900C942429511101C014
-:1041000003C0513009F4E3C28E830E9427298E81B7
-:104110009AC1FF2021F0563008F0D9C20EC05530A8
-:1041200008F0D5C290C1FF20C9F0552331F0F80145
-:10413000958190FF0BC29F70958327960FB6F894D8
-:10414000DEBF0FBECDBFDF91CF911F910F91FF90CA
-:10415000EF90DF90CF90BF900C94A91F552309F4E6
-:1041600072C109C22B2D26952695237030E02115AA
-:10417000310529F02130310509F0A9C219C0FF200D
-:1041800021F0862F9B2D937002C080E090E027964F
-:104190000FB6F894DEBF0FBECDBFDF91CF911F9158
-:1041A0000F91FF90EF90DF90CF90BF900C946F1D18
-:1041B000FF2021F0862F9B2D937002C080E090E0BD
-:1041C00027960FB6F894DEBF0FBECDBFDF91CF911B
-:1041D0001F910F91FF90EF90DF90CF90BF900C94C4
-:1041E000851D862FFF2019F00E94AD2C02C00E9471
-:1041F000152D27960FB6F894DEBF0FBECDBFDF9109
-:10420000CF911F910F91FF90EF90DF90CF90BF90D3
-:104210000C949C2D8B2D837009F079C0F11057C23E
-:10422000262F229526952770220F220F862F8F701A
-:10423000C82ED12CE12CF12C022E04C0CC0CDD1C9C
-:10424000EE1CFF1C0A94D2F764FF10C06FE070E010
-:1042500080E090E004C0660F771F881F991F2A95A1
-:10426000D2F7609570958095909503C060E070E0FE
-:10427000CB012B2D269526952370422F50E04230FE
-:104280005105D9F04330510569F16C297D298E29FA
-:104290009F294130510551F127960FB6F894DEBFA2
-:1042A0000FBECDBFDF91CF911F910F91FF90EF9087
-:1042B000DF90CF90BF900C94AA276C297D298E297E
-:1042C0009F2927960FB6F894DEBF0FBECDBFDF91B2
-:1042D000CF911F910F91FF90EF90DF90CF90BF9003
-:1042E0000C94BC270E94AA27C701B60127960FB6D7
-:1042F000F894DEBF0FBECDBFDF91CF911F910F911C
-:10430000FF90EF90DF90CF90BF900C949827FF2004
-:1043100019F08B2D817001C08695882309F4D7C1CF
-:10432000262F229526952770220F220F862F8F7019
-:10433000C82ED12CE12CF12C022E04C0CC0CDD1C9B
-:10434000EE1CFF1C0A94D2F764FF10C06FE070E00F
-:1043500080E090E004C0660F771F881F991F2A95A0
-:10436000D2F7609570958095909503C060E070E0FD
-:10437000CB012B2D269526952370422F50E04230FD
-:104380005105D9F04330510569F16C297D298E29F9
-:104390009F294130510551F127960FB6F894DEBFA1
-:1043A0000FBECDBFDF91CF911F910F91FF90EF9086
-:1043B000DF90CF90BF900C9449286C297D298E29DD
-:1043C0009F2927960FB6F894DEBF0FBECDBFDF91B1
-:1043D000CF911F910F91FF90EF90DF90CF90BF9002
-:1043E0000C945B280E944928C701B60127960FB696
-:1043F000F894DEBF0FBECDBFDF91CF911F910F911B
-:10440000FF90EF90DF90CF90BF900C943728603FE3
-:1044100059F120F4603E08F494C008C0623F09F4EA
-:1044200067C0F0F1633F09F08CC065C0162F1F70A4
-:104430008B2D8F71FF2021F00E94E227812F7DCEEE
-:104440000E94FD27812F27960FB6F894DEBF0FBE7E
-:10445000CDBFDF91CF911F910F91FF90EF90DF9033
-:10446000CF90BF900C94B01FFF20B1F0553008F0F2
-:104470002EC18B2D8F7127960FB6F894DEBF0FBE1D
-:10448000CDBFDF91CF911F910F91FF90EF90DF9003
-:10449000CF90BF900C941C28563008F018C1E9CF7B
-:1044A000FF2099F08B2D8F7127960FB6F894DEBF01
-:1044B0000FBECDBFDF91CF911F910F91FF90EF9075
-:1044C000DF90CF90BF900C94E2278B2D8F712796B1
-:1044D0000FB6F894DEBF0FBECDBFDF91CF911F9115
-:1044E0000F91FF90EF90DF90CF90BF900C94FD273D
-:1044F000F110EBCFD7CFFF2099F08B2D8F7127963E
-:104500000FB6F894DEBF0FBECDBFDF91CF911F91E4
-:104510000F91FF90EF90DF90CF90BF900C94D32736
-:1045200027960FB6F894DEBF0FBECDBFDF91CF91B7
-:104530001F910F91FF90EF90DF90CF90BF900C9460
-:10454000CE27FF20A9F0552309F4ACCF862F27965C
-:104550000FB6F894DEBF0FBECDBFDF91CF911F9194
-:104560000F91FF90EF90DF90CF90BF900C94901E32
-:10457000552309F4AACF862F27960FB6F894DEBFED
-:104580000FBECDBFDF91CF911F910F91FF90EF90A4
-:10459000DF90CF90BF900C94581F4B2D4F70C801E7
-:1045A0000E94560327960FB6F894DEBF0FBECDBF0C
-:1045B000DF91CF911F910F91FF90EF90DF90CF90FF
-:1045C000BF900C940027F11082C09B2D9F70492F43
-:1045D00050E04230510599F144F44115510569F01C
-:1045E0004130510509F073C019C043305105C1F184
-:1045F0004430510509F06BC044C027960FB6F894BB
-:10460000DEBF0FBECDBFDF91CF911F910F91FF9005
-:10461000EF90DF90CF90BF900C94763027960FB636
-:10462000F894DEBF0FBECDBFDF91CF911F910F91E8
-:10463000FF90EF90DF90CF90BF900C948D30279635
-:104640000FB6F894DEBF0FBECDBFDF91CF911F91A3
-:104650000F91FF90EF90DF90CF90BF900C94A93016
-:1046600027960FB6F894DEBF0FBECDBFDF91CF9176
-:104670001F910F91FF90EF90DF90CF90BF900C941F
-:10468000BC30862F27960FB6F894DEBF0FBECDBF85
-:10469000DF91CF911F910F91FF90EF90DF90CF901E
-:1046A000BF900C94E0304B2D4F70C80127960FB689
-:1046B000F894DEBF0FBECDBFDF91CF911F910F9158
-:1046C000FF90EF90DF90CF90BF900C944309279616
-:1046D0000FB6F894DEBF0FBECDBFDF91CF911F9113
-:1046E0000F91FF90EF90DF90CF90BF9008950E94C0
-:1046F00011290E9421290E94E6280E943D290E943A
-:10470000482E0E949C2D80E090E00E946F1D80E06A
-:1047100090E00C94851D0E9401290C9477230E943F
-:104720006E28292F22952F7030E02C3031054CF463
-:104730002A3031056CF4225031092230310590F4D1
-:1047400007C02C30310551F02F30310559F406C027
-:10475000803E10F0803F31F481E0089593FB88277C
-:1047600080F9089580E00895CF93DF9300D000D0C2
-:104770001F92CDB7DEB70F900F900F900F900F9054
-:10478000DF91CF910895CF93DF9300D000D000D078
-:10479000CDB7DEB726960FB6F894DEBF0FBECDBFFD
-:1047A000DF91CF9108951F93CF93DF93C091DB02E8
-:1047B00016E012C0D0E01C9FF0011D9FF00D1124E7
-:1047C000E555FD4F408151816281738184819581DE
-:1047D0000E94C3232196C7708091DC02C813EACFE0
-:1047E000DF91CF911F9108954091A5025091A602AB
-:1047F0006091A7027091A8028091A9029091AA02EB
-:104800000C94C3230F931F93CF93DF938091AA023D
-:1048100082958F7009F069C08091A702882309F4FE
-:1048200064C0A091DB02D091DC02B091A502C091DE
-:10483000A6028091A8029091A90221E030E0BF3F3A
-:1048400011F020E030E0122FBC016095709506E079
-:104850004AC0009721F0CF3F29F4212F05C021E065
-:1048600030E002C020E030E020FD3BC04A2F50E0A5
-:10487000049FF001059FF00D1124E555FD4F2181A6
-:10488000C2132FC02081B2132CC02281211129C054
-:10489000238134812817390718F0281B390B02C0EF
-:1048A000260F371F283C3105E0F48091AA028F7053
-:1048B00080618093AA0286E0849FF001859FF00DBD
-:1048C0001124E055FD4F80818F708061808385EADF
-:1048D00092E00E94B71FDF91CF911F910F910C942E
-:1048E000D323AF5FA770AD13B4CFDF91CF911F91EA
-:1048F0000F910895EF92FF920F931F93CF93DF9341
-:10490000CDB7DEB762970FB6F894DEBF0FBECDBF4E
-:104910008C0185E0F801DE011D9601900D928A95CB
-:10492000E1F7D8014C9111965C91119712966C9118
-:1049300012971396ED90FC9014977091A502E09158
-:10494000A6028091A8029091A902009739F0EF3F4A
-:1049500041F421E030E07F3F31F003C021E030E05E
-:1049600002C020E030E020FD5CC12091A70222239C
-:1049700009F4F1C0E816F90628F09701281B390B55
-:10498000C90104C0809590958E0D9F1D883C9105AE
-:1049900008F098C08091AA02982F907F09F064C017
-:1049A000E51314C0741312C0611110C08F708061C0
-:1049B0008093AA020E94F42385EA92E00E94B71F26
-:1049C0008091AA02D80115968C9343C1EF2839F043
-:1049D0005F3F41F481E090E04F3F31F003C081E060
-:1049E00090E002C080E090E080FD03C081E0862777
-:1049F00002C080E090E080FF2EC08091DB02209119
-:104A0000DC0236E013C090E0389FF001399FF00DD2
-:104A10001124E555FD4F7181571306C0708147136E
-:104A200003C07281671317C0019687708213EBCFA2
-:104A300012C19F7059F0882309F40BC107C09F7001
-:104A400029F0F8019581907F09F403C1805E8830D8
-:104A500008F4FFC0D2C0662309F4FBC08091AA020B
-:104A600081608093AA02F5C0E51308C0741306C0E4
-:104A7000611104C0D80115968C939DC04D875E8747
-:104A80008D859E856A8B0E948F236A89882309F40D
-:104A9000B4C0662309F4B1C02091AA02822F829586
-:104AA0008F7090E002970CF4C6C08091A50290919F
-:104AB000A60298878F831986FB86EA862C87CE010B
-:104AC000079646C08091AA02982F907F59F47E2DB8
-:104AD000F98AE88A89890E94B42385EA92E00E94D3
-:104AE000B71F95C0E51311C074130FC061110DC03D
-:104AF000F8018583C8010E94B71FE5EAF2E086E06D
-:104B0000DF011D928A95E9F7A2C04D875E878D85EA
-:104B10009E856A8B0E948F236A89882309F46DC061
-:104B2000662309F46AC02091AA02822F82958F70B1
-:104B300090E002970CF47FC08091A5029091A602AC
-:104B40009A8389831B82FD82EC822E83CE0101969B
-:104B50000E94B71F70C0E816F90628F09701281BBD
-:104B6000390BC90104C0809590958E0D9F1D883C1E
-:104B7000910508F046C0662309F43FC0E51330C034
-:104B800074132EC02091AA0220FD21C0322F32952D
-:104B90003F70832F90E00097D1F0D80115962C93A9
-:104BA00015970F9741F0832F8F5F8295807F2F702D
-:104BB000282B15962C93C8010E94B71F86E0F80198
-:104BC000A5EAB2E001900D928A95E1F73EC086E039
-:104BD000F801A5EAB2E001900D928A95E1F737C09D
-:104BE0004D875E878D859E850E948F23811123C00E
-:104BF0008091AA0281608093AA02C8010E94B71F17
-:104C000026C07E2DF98AE88A89890E94B423E5EAC4
-:104C1000F2E086E0DF011D928A95E9F70E94F42315
-:104C200018C0662351F34D875E878D859E850E944F
-:104C30008F23882311F386E0F801A5EAB2E0019002
-:104C40000D928A95E1F70E9402240E94F42381E0EC
-:104C500014C080E012C04D875E878D859E850E94BE
-:104C60006E28292F22952F7030E0223031050CF468
-:104C7000E0CE243031050CF6E2CE62960FB6F89401
-:104C8000DEBF0FBECDBFDF91CF911F910F91FF907F
-:104C9000EF9008951F93CF93DF93CDB7DEB72C9796
-:104CA0000FB6F894DEBF0FBECDBF4F83588769871C
-:104CB0007A878B879C87CE0107960E947A24882367
-:104CC000D9F02F8138858A859B85892B39F03F3F24
-:104CD00019F080E090E004C02F3FD9F781E090E028
-:104CE000892B09F06DC04F81588569857A858B8540
-:104CF0009C850E94C32364C086E0FE013796DE01D6
-:104D0000119601900D928A95E1F7FF81E8854A8519
-:104D10005B854115510539F0EF3F41F481E090E0AA
-:104D2000FF3F31F003C081E090E002C080E090E0FE
-:104D300080FD46C02091DC0230E0C90101968770F9
-:104D400099276091DB0270E08617970709F440C04D
-:104D5000F983EA835D834C8396E0929FD001939F11
-:104D6000B00D1124A555BD4FFE01319601900D9255
-:104D70009A95E1F78093DC020E94D32321C0189F0B
-:104D8000C001112485559D4F0E947A24882371F11A
-:104D9000E091DB021E9FF0011124E555FD4F40819B
-:104DA000518162817381848195810E94C3238091A6
-:104DB000DB0290E00196877099278093DB0201C0A7
-:104DC00016E08091DB029091DC028913D8CF0EC0EF
-:104DD0000E948B231092DC021092DB02E5EAF2E0E3
-:104DE00086E0DF011D928A95E9F7EACF2C960FB68F
-:104DF000F894DEBF0FBECDBFDF91CF911F91089514
-:104E0000DF92EF92FF920F931F93CF93DF93EC010A
-:104E1000009709F46EC0D12CEE24E394F12C8E019E
-:104E20000F5F1F4FFE018491843748F4843008F0EF
-:104E30004CC0813071F0823009F05BC01EC08537F4
-:104E400009F43FC080F1982F9458903708F051C072
-:104E50003FC02296F8018491982F905E983050F4CC
-:104E60008770FE2D01C0FF0F8A95EAF78F2F0E94F1
-:104E7000142913C00E94901E2FC02296F80184911D
-:104E8000982F905E983060F48770FE2D01C0FF0F60
-:104E90008A95EAF78F2F0E941A290E943D291CC08B
-:104EA0000E94581F19C02296F801049107C08FE98B
-:104EB0009FE00197F1F700C0000001500111F7CF0A
-:104EC0000BC02296F801D49007C00E94901E03C028
-:104ED0008F770E94581FE8018D2D07C08150EFE9A0
-:104EE000FFE03197F1F700C00000882309F497CF65
-:104EF000F5CFDF91CF911F910F91FF90EF90DF9051
-:104F000008956093E1027093E2028093E30290932C
-:104F1000E4020C9477236093DD027093DE028093A9
-:104F2000DF029093E0020C94772308950C9481277C
-:104F30000F931F930091E1021091E2022091E3028E
-:104F40003091E402602B712B822B932B1F910F91D8
-:104F50000C9481270F931F930091E1021091E202BC
-:104F60002091E3023091E402602371238223932392
-:104F70001F910F910C9481270F931F930091E102D1
-:104F80001091E2022091E3023091E4026027712740
-:104F9000822793271F910F910C94812760E070E086
-:104FA000CB010C948B2741E050E060E070E004C03E
-:104FB000440F551F661F771F8A95D2F7CB01BA01A0
-:104FC0000C948B2741E050E060E070E004C0440F97
-:104FD000551F661F771F8A95D2F78091DD02909149
-:104FE000DE02A091DF02B091E002482B592B6A2B20
-:104FF0007B2BCB01BA010C948B2741E050E060E0A1
-:1050000070E004C0440F551F661F771F8A95D2F7C2
-:1050100040955095609570958091DD029091DE02EB
-:10502000A091DF02B091E002482359236A237B2339
-:10503000CB01BA010C948B2741E050E060E070E0B6
-:1050400004C0440F551F661F771F8A95D2F78091C1
-:10505000DD029091DE02A091DF02B091E0024827CC
-:1050600059276A277B27CB01BA010C948B270F9312
-:105070001F930091DD021091DE022091DF0230913A
-:10508000E002602B712B822B932B1F910F910C94BC
-:105090008B270F931F930091DD021091DE02209168
-:1050A000DF023091E00260237123822393231F915A
-:1050B0000F910C948B270F931F930091DD02109199
-:1050C000DE022091DF023091E00260277127822703
-:1050D00093271F910F910C948B270895CF92DF9205
-:1050E000EF92FF920F931F93CF93DF93EC01C09049
-:1050F000E102D090E202E090E302F090E4028091BD
-:10510000DD029091DE02A091DF02B091E002C82A98
-:10511000D92AEA2AFB2A0FE110E0B701A601002EE6
-:1051200004C076956795579547950A94D2F740FF46
-:1051300008C0BE01802F0E94B3048130910509F0A0
-:1051400007C00150110948F7BE0180E00E94B30476
-:10515000DF91CF911F910F91FF90EF90DF90CF9053
-:10516000089540918B0150918C0120E030E09FEF39
-:10517000FA01E20FF31F62816817A1F09F3F19F453
-:10518000611101C0922F2F5F3F4F2630310581F70B
-:1051900007C0FA01E90FF11D97FDFA958283089582
-:1051A0009F3FB9F7089540918B0150918C0120E009
-:1051B00030E0FA01E20FF31F9281981301C01282CE
-:1051C0002F5F3F4F26303105A1F7089581E090E031
-:1051D000E0918B01F0918C01E80FF91F108201968C
-:1051E00088309105A9F708959091E502982B909346
-:1051F000E502089580959091E50298239093E50249
-:1052000008951092E50208959091E602982B9093EC
-:10521000E602089580959091E60298239093E60225
-:1052200008951092E60208959091E702982B9093CA
-:10523000E702089580959091E70298239093E70202
-:1052400008951092E70208958093E802089510925D
-:10525000E802089540918B0150918C0120E030E0EC
-:1052600080E0FA01E20FF31F918191118F5F2F5FB0
-:105270003F4F27303105A9F70895E0918B01F09158
-:105280008C018091E5028083E0918B01F0918C018B
-:1052900080819091E602892B8083E0918B01F091CF
-:1052A0008C0180819091E702892B80839091E802A4
-:1052B000992361F0E0918B01F0918C018081892B21
-:1052C00080830E942A2981110E94272980918B01C5
-:1052D00090918C010C94591D8091FB03843039F11D
-:1052E0001092F20220E488E190E00FB6F894A895BD
-:1052F000809360000FBE2093600080E00E949B03BB
-:1053000080E00E942C0683B7817F846083BF83B7CF
-:10531000816083BF7894889583B78E7F83BF88E14F
-:105320000FB6F89480936000109260000FBE08954D
-:1053300008950895CF9380E00E949B030E949829CE
-:105340000E94E9070E949929C0E08C2F0E94390928
-:10535000892B29F4CF5FC530C1F780E001C081E01F
-:10536000CF9108950E948B2380E00E949B030E94AE
-:1053700065300E944D1D0C942C061F920F920FB6A3
-:105380000F9211248F939F93AF93BF938091F2025A
-:10539000811113C08091F3029091F402A091F50263
-:1053A000B091F6024196A11DB11D8093F302909336
-:1053B000F402A093F502B093F602BF91AF919F91D2
-:1053C0008F910F900FBE0F901F90189582E084BDB3
-:1053D00093E095BD9AEF97BD80936E0008958FB7C7
-:1053E000F8944091F3025091F4026091F5027091AB
-:1053F000F6028FBFCA010895CF92DF92EF92FF921B
-:105400000F931F932FB7F8944091F3025091F40239
-:105410006091F5027091F6022FBF6A017B01EE24C4
-:10542000FF248C0120E030E0C016D106E206F3062E
-:1054300020F09A01281B390B05C09C01209530955E
-:10544000240F351FC9011F910F91FF90EF90DF903E
-:10545000CF9008951F920F920FB60F9211248F9341
-:105460009F93AF93BF938091F3029091F402A09128
-:10547000F502B091F6020196A11DB11D8093F302D1
-:105480009093F402A093F502B093F602BF91AF910E
-:105490009F918F910F900FBE0F901F9018950E94B3
-:1054A0009516F8942FEF87EA91E6215080409040BE
-:1054B000E1F700C0000087E090EBDC018093050479
-:1054C00090930604A0930704B09308042CE088E1AD
-:1054D00090E00FB6F894A895809360000FBE2093DB
-:1054E0006000FFCFCF92DF92EF92FF920F931F9356
-:1054F000CF93DF93C82ED12C01E010E08D2D0E94B8
-:1055000039097C01C0E0D0E098010C2E02C0220FC6
-:10551000331F0A94E2F72E213F21232B29F42196F1
-:10552000CC30D10589F708C06C2F7D2D80E00E941A
-:105530008E04C812F4CF06C0D39485E0D812DECF13
-:1055400080E001C081E0DF91CF911F910F91FF902A
-:10555000EF90DF90CF900895CF93C82F8CE20E94F8
-:10556000722A882321F08C2FCF910C94722A80E02C
-:10557000CF910895CF930E94FD2B811102C00E940C
-:10558000DE2BC5E608C00E94E9078FE39CE901977E
-:10559000F1F700C00000C150B1F789E20E94AC2AC7
-:1055A00081110AC18AE20E94AC2A81110E94DE2B7D
-:1055B00085E00E94AC2A81110E944F2A0E94082C8B
-:1055C0008093F10287E00E94AC2A882399F18BE155
-:1055D0000E94AC2A882351F09091F10291FB882718
-:1055E00080F921E0822780FB91F922C08EE00E94A1
-:1055F000AC2A882351F09091F10292FB882780F920
-:1056000021E0822780FB92F913C080E10E94AC2A3E
-:105610009091F102882341F093FB882780F921E0E3
-:10562000822780FB93F904C0892F809580FB90F935
-:105630009093F1028091F1020E940C2C0E941A2C8E
-:105640008093020380EE0E94AC2A882341F080916F
-:105650000203982F909590FB80F98093020389E3D1
-:105660000E94AC2A882359F09091020391FB88276D
-:1056700080F921E0822780FB91F99093020382EE6A
-:105680000E94AC2A882359F09091020392FB88274C
-:1056900080F921E0822780FB92F99093020386EE45
-:1056A0000E94AC2A882359F09091020393FB88272B
-:1056B00080F921E0822780FB93F99093020383EE27
-:1056C0000E94AC2A882359F09091020394FB88270A
-:1056D00080F921E0822780FB94F99093020385E30F
-:1056E0000E94AC2A882359F09091020395FB8827E9
-:1056F00080F921E0822780FB95F99093020381E3F2
-:105700000E94AC2A882359F09091020396FB8827C7
-:1057100080F921E0822780FB96F99093020381E1D2
-:105720000E94AC2A882359F09091020397FB8827A6
-:1057300080F921E0822780FB97F990930203809102
-:1057400002030E941E2C87E20E94AC2AC82F8EE121
-:105750000E94AC2A8111C2608FE10E94AC2A8111A3
-:10576000C46080E20E94AC2A8111C86081E20E947C
-:10577000AC2A8111C06182E20E94AC2A8111C06210
-:1057800083E20E94AC2A8111C06484E20E94AC2AA8
-:10579000882311F0C06802C0CC2329F08C2F0E940E
-:1057A000152C6C2F03C00E94112C682F70E080E034
-:1057B00090E0CF910C949627CF9108956DEE7EEFF7
-:1057C00080E090E00E94CC3460E082E090E00E94B3
-:1057D000BE3460E083E090E00E94BE3460E084E08C
-:1057E00090E00E94BE3460E085E090E00E94BE340C
-:1057F00060E086E090E00C94BE3480E090E00E948F
-:10580000B83421E08D3E9E4F09F020E0822F0895AC
-:1058100082E090E00C94B034682F82E090E00C9429
-:10582000BE3483E090E00C94B034682F83E090E0C5
-:105830000C94BE3484E090E00C94B034682F84E083
-:1058400090E00C94BE3486E090E00C94B034682F65
-:1058500086E090E00C94BE348091FF0280FF0BC084
-:105860006091900185E0689FB0011124759567955E
-:10587000759567952AC081FF09C06091900185E008
-:10588000689FB0011124759567951FC082FF07C0FE
-:105890006091900185E0689FB001112416C040918D
-:1058A000F9024423C9F060918F01461788F72091CF
-:1058B000900185E0289F90011124429FC001439FE1
-:1058C000900D112470E00E949C346038710540F402
-:1058D0006115710539F002C065E070E0862F08950A
-:1058E0008FE7089581E008958091FF0280FF08C04E
-:1058F00060918E0170E0759567957595679521C0EB
-:1059000081FF06C060918E0170E07595679519C0A2
-:1059100082FF04C060918E0170E010C08091F90296
-:105920008823C1F060918D018617A0F790918E01B8
-:10593000989FC001112470E00E949C34603871056A
-:1059400028F46115710521F0862F08958FE70895D9
-:1059500081E0089561E070E0F4CF803F21F40E947F
-:105960002C2C819504C0813F29F40E942C2C80931B
-:10597000FC020895823F21F40E942C2C819504C0E2
-:10598000833F29F40E942C2C8093FB020895893FC9
-:1059900019F40E94742C05C08A3F31F40E94742CC3
-:1059A00081958093FD0208958B3F21F40E94742C11
-:1059B000819504C08C3F29F40E94742C8093FE02D0
-:1059C0000895843F21F48091FA02816017C0853FD9
-:1059D00021F48091FA02826011C0863F21F4809107
-:1059E000FA0284600BC0873F21F48091FA0288603C
-:1059F00005C0883F31F48091FA0280618093FA02F9
-:105A000008958D3F21F48091FF0281600BC08E3F8D
-:105A100021F48091FF02826005C08F3F29F48091BC
-:105A2000FF0284608093FF020895803F29F48091F3
-:105A3000FC0287FF6EC007C0813F41F48091FC02E9
-:105A400018160CF066C01092FC0263C09091FB0225
-:105A5000823F19F497FF5DC005C0833F31F41916EA
-:105A60000CF057C01092FB0254C0893F31F4809172
-:105A7000FD0218160CF04DC006C08A3F39F4809123
-:105A8000FD0287FF46C01092FD0243C08B3F29F400
-:105A90008091FE0287FF3DC006C08C3F39F48091A3
-:105AA000FE021816B4F51092FE0233C0843F21F4B2
-:105AB0008091FA028E7F05C0853F31F48091FA0211
-:105AC0008D7F8093FA0225C0863F21F48091FA02EF
-:105AD0008B7FF7CF873F21F48091FA02877FF1CF48
-:105AE000883F21F48091FA028F7EEBCF8D3F21F425
-:105AF0008091FF028E7F0BC08E3F21F48091FF02C8
-:105B00008D7F05C08F3F29F48091FF028B7F8093AA
-:105B1000FF028091FB0281110EC08091FC02811175
-:105B20000AC08091FD02811106C08091FE028111A0
-:105B300002C01092F90208958AEF92E00E94641D5B
-:105B40000E94EF299093F8028093F7020895CF9373
-:105B50008091F7029091F8020E94FC294091F9028D
-:105B6000442321F02091910130E006C02091920160
-:105B70005AE0259F900111248217930708F486C0EC
-:105B80008091FB0281110DC09091FC02911109C01E
-:105B90009091FD02911105C09091FE02992309F4A4
-:105BA00075C04F3F19F04F5F4093F902181624F467
-:105BB0000E942C2C8093FB028091FB0287FF05C082
-:105BC0000E942C2C81958093FB028091FC02181678
-:105BD00024F40E942C2C8093FC028091FC0287FF0D
-:105BE00005C00E942C2C81958093FC026091FB02E1
-:105BF000662339F1C091FC02CC2319F1772767FDA8
-:105C00007095872F972F0E94003223E333E343E3FD
-:105C10005FE30E94B4320E94CD316093FB026C2F8F
-:105C2000772767FD7095872F972F0E94003223E317
-:105C300033E343E35FE30E94B4320E94CD316093CB
-:105C4000FC028091FD02181624F40E94742C8093AB
-:105C5000FD028091FD0287FF05C00E94742C819592
-:105C60008093FD028091FE02181624F40E94742C89
-:105C70008093FE028091FE0287FF05C00E94742C73
-:105C800081958093FE02CF910C949C2DCF91089525
-:105C9000EAEFF2E085E0DF011D928A95E9F71092C4
-:105CA000F9021092FF020895833089F130F48130B7
-:105CB00061F0823009F06EC019C0853009F449C026
-:105CC000B8F1863009F066C055C020919201862F48
-:105CD00090E0820F911D8F3F910520F4620F609339
-:105CE000920108958FEF8093920108952091910180
-:105CF000862F90E0820F911D8F3F910520F4620F57
-:105D00006093910108958FEF809391010895209100
-:105D10009001862F90E0820F911D8F3F910520F416
-:105D2000620F6093900108958FEF80939001089522
-:105D300020918F01862F90E0820F911D8F3F91055A
-:105D400020F4620F60938F0108958FEF80938F018D
-:105D5000089520918E01862F90E0820F911D8F3F34
-:105D6000910520F4620F60938E0108958FEF809368
-:105D70008E01089520918D01862F90E0820F911D54
-:105D80008F3F910520F4620F60938D0108958FEF8E
-:105D900080938D010895833021F130F4813059F0E2
-:105DA000823009F049C012C0853089F128F186306F
-:105DB00009F042C037C080919201681720F4861B19
-:105DC000809392010895109292010895809191011B
-:105DD000681720F4861B8093910108951092910119
-:105DE000089580919001681720F4861B809390019C
-:105DF000089510929001089580918F01681720F402
-:105E0000861B80938F01089510928F0108958091D1
-:105E10008E01681720F4861B80938E0108951092DE
-:105E20008E01089580918D01681720F4861B809360
-:105E30008D01089510928D01089541E050E060E0D9
-:105E400070E004C0440F551F661F771F8A95D2F774
-:105E5000CB01BA010E9496270C948B23873200F560
-:105E60008E3108F089C08E3009F469C060F4873043
-:105E700009F44DC018F4863049F531C0883041F13D
-:105E80008B3021F57EC0863109F47BC018F4803157
-:105E9000E9F45FC0893109F474C08B31B9F445C0AD
-:105EA000883309F46EC048F4893209F467C0853339
-:105EB00009F464C0873251F461C0833409F45EC0D0
-:105EC00018F48A3318F056C0883499F080E00895A9
-:105ED0000E94082C0E941A2C0E94232C52C08091F0
-:105EE000F102817F8E7F8093F10281E08093000335
-:105EF00008950E948B232FEF83ED90E32150804083
-:105F00009040E1F700C000000E944F2A3AC09091F3
-:105F1000F102892F8095817080FB90F919F09660CD
-:105F2000986025C0997F977F22C09091F10291FBE4
-:105F3000882780F921E0822780FB91F913C0909196
-:105F4000F10292FB882780F921E0822780FB92F9F9
-:105F500009C09091F10293FB882780F921E0822704
-:105F600080FB93F99093F102882359F0916090930C
-:105F7000F10207C0895303C08D5101C080E00E9427
-:105F80001D2F81E0089580E0089580E00895CF936B
-:105F9000C82F80910003813071F020F0823009F029
-:105FA00089C037C0A0918B01B0918C018C91823255
-:105FB00009F082C007C0A0918B01B0918C018C9137
-:105FC000823249F48C2F0E94C32F81111EC08C2F66
-:105FD0000E942E2F1CC08C2F0E94C52F811115C02E
-:105FE000C43169F030F4CB3081F0C03109F068C0C1
-:105FF00009C0C93221F0C83309F062C006C010924E
-:1060000000035EC082E08093000381E090E0817035
-:106010005AC0C932C9F060F4C431B1F020F4C730BD
-:1060200009F04CC034C0CE51C63008F047C017C08C
-:10603000CE3439F120F4CB3409F040C01CC0C13556
-:10604000C1F0C235D9F513C080910103882319F03E
-:106050001092010333C081E08093000334C0EC2F21
-:10606000F0E0E25EFD4F80818093010327C061E094
-:1060700003C061E007C06AE0809101030E94542ED2
-:106080001DC06AE0809101030E94CB2E17C08EE1F3
-:106090008093920182E3809391018AE08093900142
-:1060A00084E180938F0188E080938E0188E2809361
-:1060B0008D0104C01092000380E005C081E003C0A0
-:1060C00080E090E0A4CFCF9108950E94FD2B811134
-:1060D00002C00E94DE2B0E94232C8093040480FFC8
-:1060E00002C0869501C080E00C949B03809104045B
-:1060F000982F9695292F30E0233031054CF49F5F7F
-:10610000990F8170892B8160809304040E94272C51
-:106110008091040486950C949B0380910404982F2D
-:10612000969591F09158990F8170892B8093040472
-:106130008E7F91E009F490E08091040490FB80F957
-:10614000809304040E94272C8091040486950C946B
-:106150009B0380910404982F909590FB80F9809385
-:1061600004040E94272C8091040480FF02C08695BD
-:1061700001C080E00C949B0330910404232F2695EA
-:106180002F5F2F77822F90E0317004972CF4220F2D
-:10619000232B2093040402C0309304048091040450
-:1061A000282F2E7F91E009F490E090FB80F98093F6
-:1061B00004040E94272C8091040486950C949B0370
-:1061C00020910404922F96959827990F822F817021
-:1061D000892B809304048E7F91E009F490E08091F4
-:1061E000040490FB80F9809304040E94272C809182
-:1061F000040486950C949B035058BB27AA270ED005
-:1062000075C166D130F06BD120F031F49F3F11F4AD
-:106210001EF45BC10EF4E095E7FB51C1E92F77D185
-:1062200080F3BA17620773078407950718F071F4B3
-:106230009EF58FC10EF4E0950B2EBA2FA02D0B0109
-:10624000B90190010C01CA01A0011124FF27591BBB
-:1062500099F0593F50F4503E68F11A16F040A22FC1
-:10626000232F342F4427585FF3CF46953795279532
-:10627000A795F0405395C9F77EF41F16BA0B620B31
-:10628000730B840BBAF09150A1F0FF0FBB1F661F78
-:10629000771F881FC2F70EC0BA0F621F731F841FBB
-:1062A00048F4879577956795B795F7959E3F08F0E1
-:1062B000B3CF9395880F08F09927EE0F97958795A0
-:1062C0000895D9D008F481E008950CD00FC107D10A
-:1062D00040F0FED030F021F45F3F19F0F0C05111D2
-:1062E00039C1F3C014D198F39923C9F35523B1F3FD
-:1062F000951B550BBB27AA2762177307840738F035
-:106300009F5F5F4F220F331F441FAA1FA9F333D093
-:106310000E2E3AF0E0E830D091505040E695001C47
-:10632000CAF729D0FE2F27D0660F771F881FBB1F03
-:10633000261737074807AB07B0E809F0BB0B802DDD
-:10634000BF01FF2793585F4F2AF09E3F510568F029
-:10635000B6C000C15F3FECF3983EDCF386957795BD
-:106360006795B795F7959F5FC9F7880F911D96952B
-:10637000879597F90895E1E0660F771F881FBB1F87
-:10638000621773078407BA0720F0621B730B840B34
-:10639000BA0BEE1F88F7E095089504D06894B11108
-:1063A000D9C00895BCD088F09F5790F0B92F992795
-:1063B000B751A0F0D1F0660F771F881F991F1AF010
-:1063C000BA95C9F712C0B13081F0C3D0B1E00895D9
-:1063D000C0C0672F782F8827B85F39F0B93FCCF35A
-:1063E000869577956795B395D9F73EF49095809506
-:1063F000709561957F4F8F4F9F4F0895E89409C026
-:1064000097FB3EF490958095709561957F4F8F4FE7
-:106410009F4F9923A9F0F92F96E9BB279395F695FD
-:10642000879577956795B795F111F8CFFAF4BB0F7B
-:1064300011F460FF1BC06F5F7F4F8F4F9F4F16C0DF
-:10644000882311F096E911C0772321F09EE8872F69
-:10645000762F05C0662371F096E8862F70E060E025
-:106460002AF09A95660F771F881FDAF7880F96959E
-:10647000879597F90895990F0008550FAA0BE0E842
-:10648000FEEF16161706E807F907C0F012161306F6
-:10649000E407F50798F0621B730B840B950B39F436
-:1064A0000A2661F0232B242B252B21F408950A269C
-:1064B00009F4A140A6958FEF811D811D089597F9DC
-:1064C0009F6780E870E060E008959FEF80EC08959A
-:1064D00000240A94161617061806090608950024C3
-:1064E0000A9412161306140605060895092E03943D
-:1064F000000C11F4882352F0BB0F40F4BF2B11F4B1
-:1065000060FF04C06F5F7F4F8F4F9F4F089557FD0F
-:106510009058440F551F59F05F3F71F04795880F11
-:1065200097FB991F61F09F3F79F0879508951216A8
-:1065300013061406551FF2CF4695F1DF08C0161654
-:1065400017061806991FF1CF869571056105089405
-:106550000895E894BB2766277727CB0197F908951C
-:106560008ADF08F48FEF08950BD0C0CFB1DF28F099
-:10657000B6DF18F0952309F0A2CFA7CF1124EACFF8
-:10658000C6DFA0F3959FD1F3950F50E0551F629F92
-:10659000F001729FBB27F00DB11D639FAA27F00D7C
-:1065A000B11DAA1F649F6627B00DA11D661F829FA3
-:1065B0002227B00DA11D621F739FB00DA11D621F88
-:1065C000839FA00D611D221F749F3327A00D611DA5
-:1065D000231F849F600D211D822F762F6A2F112487
-:1065E0009F5750408AF0E1F088234AF0EE0FFF1FDA
-:1065F000BB1F661F771F881F91505040A9F79E3F11
-:10660000510570F05CCFA6CF5F3FECF3983EDCF312
-:10661000869577956795B795F795E7959F5FC1F74D
-:10662000FE2B880F911D9695879597F90895FA018D
-:10663000EE0FFF1F30962105310599F161157105A7
-:1066400061F48038BFE39B0749F168949038810575
-:1066500061F08038BFEF9B0741F0992342F5FF3F7F
-:10666000E1053105210511F1E8940894E795D90178
-:10667000AA2329F4AB2FBE2FF85FD0F310C0FF5F21
-:1066800070F4A695E0F7F73950F019F0FF3A38F4B6
-:106690009F779F930CD00F9007FC905808953EF081
-:1066A00014CF60E070E080E89FE308954FE79F77A4
-:1066B0005F934F933F932F939ED02F913F914F9194
-:1066C0005F9152DF05C019F40EF0F9CE42CFFDCE36
-:1066D00026DFC8F39638C0F707F80F92E8942BE34B
-:1066E0003AEA48EB5FE74EDF0F920F920F924DB7F9
-:1066F0005EB70F92C0D0ECEAF0E016D04F915F91F8
-:10670000EF91FF91E595EE1FFF1F49F0FE57E068FE
-:106710004427EE0F441FFA95E1F74195550B32D00F
-:106720000F9007FE26C00895DF93CF931F930F931A
-:10673000FF92EF92DF927B018C01689405C0DA2E04
-:10674000EF011EDFFE01E894A59125913591459159
-:106750005591AEF3EF0162DDFE019701A801DA94D5
-:1067600079F7DF90EF90FF900F911F91CF91DF911C
-:1067700008959B01AC0160E070E080E89FE3A5CD47
-:106780009ECEACC0CCDEE8F39923D9F3940F511D13
-:10679000BBF39150504094F059F0882332F0660FCB
-:1067A000771F881F91505040C1F79E3F510544F715
-:1067B000880F911D9695879597F908955F3FACF0E6
-:1067C000983E9CF0BB27869577956795B79508F41A
-:1067D000B1609395C1F7BB0F58F711F460FFE8CF94
-:1067E0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C0D9
-:1067F0006CCE689464CE93DEC8F39923D1F3C6F3CC
-:10680000DF93CF931F930F93FF92C92FDD27882328
-:106810002AF02197660F771F881FDAF720E030E013
-:1068200040E85FEB9FE3883920F0803E30F021960E
-:106830008F77E3DCE4EDF0E003C0DFDCE1E0F1E0E2
-:1068400073DF8B01BE01EC01FB2E6F57710975954B
-:10685000771F880B990BD4DD28E132E741E35FE332
-:106860008FDEAF2D9801AE01FF900F911F91CF9158
-:10687000DF91D4DC3BCEFA01DC01AA0FBB1F9B01E8
-:10688000AC01BF5728F422273327442750781FC074
-:10689000B75188F4AB2F0024469537952795011CF6
-:1068A000A395D2F3002069F0220F331F441FB39544
-:1068B000DAF30DD0A1CC61307105A0E88A07B946A2
-:1068C00030F49B01AC0166277727882790783096B3
-:1068D00021F0208331834283538308959F3F31F019
-:1068E000915020F4879577956795B795880F911DFE
-:1068F0009695879597F90895991B79E004C0991F9B
-:10690000961708F0961B881F7A95C9F78095089509
-:10691000AA1BBB1B51E107C0AA1FBB1FA617B707C5
-:1069200010F0A61BB70B881F991F5A95A9F78095E1
-:106930009095BC01CD01089597FB072E16F40094A5
-:1069400007D077FD09D00E94883407FC05D03EF4BB
-:10695000909581959F4F0895709561957F4F08950B
-:10696000F999FECF92BD81BDF89A992780B5089517
-:10697000A8E1B0E042E050E00C94D334262FF9991E
-:10698000FECF1FBA92BD81BD20BD0FB6F894FA9A12
-:10699000F99A0FBE019608950E94BE34272F0C94D9
-:1069A000BF34DC01CB01FC01F999FECF06C0F2BD7A
-:1069B000E1BDF89A319600B40D9241505040B8F7BD
-:0669C0000895F894FFCFDA
-:1069C60055D0A446000016440000000000004842CE
-:1069D60061978A460000C843000000000000484254
-:1069E60055D024460000C84300000000000048427D
-:1069F60000005C460000C84300000000000048425A
-:106A060061978A4600007A4455D0A4460000C843E0
-:106A1600000000000000484200005C460000C84339
-:106A2600000000000000484255D0244600001644ED
-:106A36000507000C05854000000106400000010026
-:106A4600B91049112511F010BC1001E902280814EB
-:106A56000A321E4200450025002600430061006000
-:106A660000200037006400650066006700440046A9
-:106A7600002400470000000200040005000700098A
-:106A8600000B000C000E001000110013001500177B
-:106A96000018001A001C001D001F002100230024FE
-:106AA600002600280029002B002D002F0030003280
-:106AB6000034003500370039003B006E048704A01F
-:106AC60004B904E10594055E053E053F4D362002F6
-:106AD60003020000010001010101010001010102A0
-:086AE60003040506070809007E
-:00000001FF
diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex deleted file mode 100644 index 5bdc190e1d..0000000000 --- a/keyboard/preonic/preonic_pcb.hex +++ /dev/null @@ -1,1702 +0,0 @@ -:100000000C94D4020C9418030C9418030C94180349
-:100010000C9418030C9418030C9418030C941803F4
-:100020000C9418030C9418030C94E8160C94BA174B
-:100030000C946C290C9418030C9418030C9418035A
-:100040000C9418030C9418030C9418030C941803C4
-:100050000C9418030C94D9290C9418030C941803CD
-:100060000C9418030C9418030C9418030C941803A4
-:100070000C9418030C9418030C9418030C94180394
-:100080000C941C0E0C9418030C9418030C94180375
-:100090000C9418030C9418030C9418030C94180374
-:1000A0000C9418030C9418030C941803076342363D
-:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9
-:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD
-:1000D0000000803F08000000BE922449123EABAAF7
-:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52
-:1000F000AA3E00000000BF000000803F000000009A
-:1001000000084178D3BB4387D1133D190E3CC3BDD2
-:100110004282AD2B3E68EC8276BED98FE1A93E4C7F
-:1001200080EFFFBE01C4FF7F3F00000000003500EC
-:100130001E001F00200021002200230024002500B3
-:10014000260027002A002B0014001A0008001500C2
-:1001500017001C0018000C00120013002A002900D0
-:1001600004001600070009000A000B000D000E0035
-:100170000F0033003400E1001D001B0006001900D1
-:10018000050011001000360037003800280000304C
-:10019000E000E200E30003522C002C000452500067
-:1001A000510052004F0035001E001F0020002100AA
-:1001B0002200230024002500260027002A002B000F
-:1001C00014001A00090013000A000D000F001800A7
-:1001D0001C0033002A002900040015001600170037
-:1001E00007000B00110008000C0012003400E100B1
-:1001F0001D001B000600190005000E00100036004F
-:100200003700380028000030E000E200E30003522D
-:100210002C002C0004525000510052004F003500B9
-:100220001E001F00200021002200230024002500C2
-:10023000260027002A002B00340036003700130068
-:100240001C0009000A00060015000F002A00290002
-:1002500004001200080018000C0007000B00170033
-:10026000110016003800E100330014000D000E00EC
-:100270001B00050010001A0019001D0028000030A6
-:10028000E000E200E30003522C002C000452500076
-:10029000510052004F0035001E001F0020002100B9
-:1002A0002200230024002500260027002A00350212
-:1002B0001E021F0220022102220223022402250222
-:1002C000260227022A0001003A003B003C003D00C4
-:1002D0003E003F002D022E022F02300231020100AB
-:1002E00040004100420043004400450000530153D8
-:1002F0000253005001000100010001000100010053
-:10030000010001000100AB00AA00A900AE00350009
-:100310001E001F00200021002200230024002500D1
-:10032000260027002A0035001E001F0020002100A3
-:100330002200230024002500260027002A000100B7
-:100340003A003B003C003D003E003F002D002E00E7
-:100350002F00300031000100400041004200430006
-:1003600044004500005301530253005001000100B6
-:100370000100010001000100010001000100AB00CB
-:10038000AA00A900AE002A035400680065002000FE
-:100390005000720065006F006E006900630020006D
-:1003A0004B006500790062006F006100720064001C
-:1003B00000002C034F007200740068006F006C0096
-:1003C00069006E0065006100720020004B0065004E
-:1003D000790062006F006100720064007300000029
-:1003E000040309040902D000060100A0FA09040070
-:1003F000000103010100092111010001223F000752
-:1004000005810308000A0904010001030102000933
-:100410002111010001224D000705820308000A098D
-:10042000040200010300000009211101000122362D
-:10043000000705830308000A090403000203000003
-:10044000000921110100012220000705840320007A
-:100450000107050403200001090404000001010054
-:100460000009240100010900010509040500020139
-:1004700003000007240100014100062402010100DD
-:1004800006240202020009240301030102010009FB
-:1004900024030204010101000905060240000500D1
-:1004A0000005250101010905850240000500000540
-:1004B000250101031201100100000008EDFE61603A
-:1004C0000100010200010631FF0974A1010975153F
-:1004D0000025FF9520750881020976150025FF95F6
-:1004E0002075089102C005010980A101850216014D
-:1004F0000026B7001A01002AB70075109501810087
-:10050000C0050C0901A1018503160100269C021AF1
-:1005100001002A9C02751095018100C005010902A5
-:10052000A1010901A10005091901290515002501ED
-:100530009505750181029501750381010501093059
-:1005400009311581257F95027508810609381581C5
-:10055000257F950175088106050C0A38021581254D
-:100560007F950175088106C0C005010906A1010536
-:100570000719E029E7150025019508750181029505
-:100580000175088101050819012905950575019175
-:10059000029501750391010507190029FF15002532
-:1005A000FF950675088100C011241FBECFEFDAE069
-:1005B000DEBFCDBF04B603FE24C080910404909139
-:1005C0000504A0910604B09107048730904BA74022
-:1005D000B04BB9F410920404109205041092060472
-:1005E0001092070414BE84B7877F84BF88E10FB6DA
-:1005F000F89480936000109260000FBEE0E0F8E392
-:10060000099512E0A0E0B1E0EEE1F9E602C0059044
-:100610000D92A832B107D9F714E0A8E2B2E001C008
-:100620001D92A430B107E1F70E94A0130C948D3401
-:100630000C94000061110DC0FC018281882331F00F
-:1006400085EE0E94671E0E94683003C085EE0E94FE
-:100650002F1F80E090E008950E940F0E40E050E0D0
-:1006600069E070E080E091E00C94600F08950E94D2
-:1006700049036E9A769A8CE293E0892B11F00C94E0
-:100680002C03089586E393E0892B11F00C94360334
-:100690000895279A2F988FEF9FEF9093870080936C
-:1006A00086008AE08093800089E1809381000C9429
-:1006B000113081110BC080918000877F8093800072
-:1006C00010928D0010928C002F9808952F988330EF
-:1006D00041F4809180008860809380008FEF9FEFCD
-:1006E00012C09091800098609093800023E030E0E9
-:1006F000281B3109220F331F8FEF9FEF02C0969501
-:1007000087952A95E2F790938D0080938C00089549
-:100710008B3B910568F4883A910530F5853A91054F
-:10072000C0F48430910598F4019709F06FC071C04E
-:10073000803E910508F46AC0883E910540F09C0116
-:10074000205F31092031310508F060C05CC09C0198
-:10075000A1C0853A910509F45FC0863A910509F474
-:100760005EC023E830E496C0883A910509F45AC087
-:10077000893A910509F459C08A3A910509F458C09B
-:100780008B3A910509F457C08C3A910509F456C08B
-:100790008D3A910509F455C0803B910509F454C088
-:1007A0008E3A910509F453C08F3A910509F452C06D
-:1007B000813B910509F451C0823B910509F450C079
-:1007C000833B910509F44FC0843B910509F44EC069
-:1007D000853B910509F44DC0863B910509F44CC059
-:1007E000873B910509F44BC0883B910509F44AC049
-:1007F000893B910509F449C08A3B910509F048C03D
-:100800002AE236E447C09C01306544C020E030E075
-:1008100041C021E030E03EC021E830E43BC022E8A6
-:1008200030E438C022EE34E435C029EE34E432C07E
-:100830002AEE34E42FC025EB34E42CC026EB34E45C
-:1008400029C027EB34E426C02CEC34E423C02DEC83
-:1008500034E420C023E835E41DC02AE835E41AC09A
-:1008600022E935E417C024E935E414C021E236E476
-:1008700011C023E236E40EC024E236E40BC025E2C8
-:1008800036E408C026E236E405C027E236E402C0BA
-:1008900020E034E4C90108959CE0799FF00111241F
-:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71
-:1008B000FF1FE25DFE4F25913491C9010895880F15
-:1008C000991F82559040FC0125913491C9010895EA
-:1008D000880F991F825D9E4FFC0125913491C901BB
-:1008E00008950E944C049C019A9581159F4110F433
-:1008F000C9010895C90190528115904128F4C90198
-:100900009F700E9468040895C90190538115904119
-:1009100020F4C9019927906C0895C901905440971B
-:1009200028F4C9018F709927946D0895203180E4CF
-:10093000380719F480E091ED0895213190E43907EA
-:1009400019F480E090ED0895223140E4340719F461
-:1009500080E092ED0895233180E4380719F480E0B7
-:1009600093ED0895211590E5390799F40E945623D7
-:1009700040E065E088E491E00E94600F2FEF44E3DF
-:100980008CE0215040408040E1F700C000000C9412
-:10099000FE29213090E5390731F48091F002816021
-:1009A0008093F0020895C90190558115904108F097
-:1009B00062C0432F55274F70552741305105F9F438
-:1009C000C90174E0880F991F7A95E1F78827937021
-:1009D000B901E3E0660F771FEA95E1F760767727C4
-:1009E000862B972B9C682370332702C0440F551F1A
-:1009F0002A95E2F74F715527842B952B08954230A5
-:100A0000510529F4922F8827816F906A0895433009
-:100A10005105B9F4C90153E0880F991F5A95E1F7C0
-:100A2000807E97702370332741E050E002C0440F6E
-:100A3000551F2A95E2F74F715527842B952B9C68FB
-:100A400008954430510589F5C90143E0880F991F85
-:100A50004A95E1F7807E97702370332741E050E09C
-:100A600002C0440F551F2A95E2F74F715527842B7A
-:100A7000952B9A680895C90190568115904118F4F4
-:100A8000C901906F0895C90190578115904120F4D4
-:100A9000C9019F7090620895C901905881159041D5
-:100AA00020F4C9019F70906A0895203E3105E0F45A
-:100AB000203C310568F52133310509F475C048F44F
-:100AC0002932310509F46BC02A32310509F07BC0A7
-:100AD00075C02933310501F122383105E9F025339C
-:100AE000310509F070C051C0233E3105B1F140F429
-:100AF000203E3105D1F0223E310509F064C01CC012
-:100B0000263E310579F1273E310509F05CC038C039
-:100B1000C9010E945F0408958091010380FD02C015
-:100B200081FF51C080EE90E04FC08091010380FFB3
-:100B3000F9CF89E390E048C08091010382FF0AC0A9
-:100B40008091010384FF03C080E090E03DC083EE0C
-:100B500090E03AC082EE90E037C08091010382FFBE
-:100B6000EFCFF8CF8091010383FF07C0809101038D
-:100B700084FDEACF87EE90E027C086EE90E024C0A7
-:100B80008091010383FFF2CFF8CF8091010385FFAD
-:100B900003C089E290E018C085E390E015C0809121
-:100BA000010385FDF9CFF5CF8091010386FF03C0D6
-:100BB0008AE290E009C081E390E006C080910103E1
-:100BC00086FDF9CFF5CFC9010E94880308950895E5
-:100BD0005F926F927F928F929F92AF92BF92CF92CD
-:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6
-:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9
-:100C00002F5F3F4F4E018BE0880E911C60E070E03B
-:100C100000E010E0E12CF12CC12CD12CA12CB12C46
-:100C20008AE0782E622E532E41E050E0E3E9F1E0B5
-:100C3000A62DB52D872D01900D928A95E1F7F9012A
-:100C4000819191919F01FC01E07FFF27E032F10546
-:100C500059F48F709927FA0102C0EE0FFF1F8A9591
-:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E
-:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC
-:100C8000DF2A29C0E034F10559F48F709927FA0161
-:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063
-:100CA000E035F10559F48F709927FA0102C0EE0F73
-:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2
-:100CC00051F48F709927FA0102C0EE0FFF1F8A9529
-:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9
-:100CE0008A2D8095892384B985B18A2985B997B1E0
-:100CF0008C2D8095892387B988B18C2988B99AB1C0
-:100D00008E2D809589238AB98BB18E298BB99DB19F
-:100D1000802F809589238DB98EB1802B8EB990B3A9
-:100D2000862F8095892380BB81B3862B81BB2A9631
-:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC
-:100D40000F91FF90EF90DF90CF90BF90AF909F906A
-:100D50008F907F906F905F9008955F926F927F92D7
-:100D60008F929F92AF92BF92CF92DF92EF92FF92BB
-:100D70000F931F93CF93DF93CDB7DEB768970FB66E
-:100D8000F894DEBF0FBECDBF85B7806885BF85B73D
-:100D9000806885BF0E94E8059E012F5F3F4F4E018E
-:100DA00089E1880E911C60E070E000E010E0E12C29
-:100DB000F12CC12CD12CA12CB12C98E1792E622ED2
-:100DC000532E41E050E0EDE9F1E0A62DB52D872D41
-:100DD00001900D928A95E1F7F901819191919F011E
-:100DE000FC01E07FFF27E032F10559F48F7099276D
-:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62
-:100E000037C0E033F10559F48F709927FA0102C019
-:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1
-:100E2000F10559F48F709927FA0102C0EE0FFF1FE8
-:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446
-:100E40008F709927FA0102C0EE0FFF1F8A95E2F713
-:100E50000E2B1F2B0DC0E036F10551F48F70992732
-:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F
-:100E70002815390509F0A7CF94B18A2D80958923CB
-:100E800084B985B18A2985B997B18C2D809589233C
-:100E900087B988B18C2988B99AB18E2D809589231C
-:100EA0008AB98BB18E298BB99DB1802F809589230A
-:100EB0008DB98EB1802B8EB990B3862F8095892302
-:100EC00080BB81B3862B81BB10922902109228022D
-:100ED000109233021092320210922B0210922A02C8
-:100EE000109235021092340210922D0210922C02B0
-:100EF000109237021092360210922F0210922E0298
-:100F0000109239021092380210923102109230027F
-:100F100010923B0210923A0287E393E0892BB9F0DA
-:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC
-:100F30001F910F91FF90EF90DF90CF90BF90AF90F7
-:100F40009F908F907F906F905F900C94370368967E
-:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA
-:100F60000F91FF90EF90DF90CF90BF90AF909F9048
-:100F70008F907F906F905F9008955F926F927F92B5
-:100F80008F929F92AF92BF92CF92DF92EF92FF9299
-:100F90000F931F93CF93DF93CDB7DEB7A2970FB612
-:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17
-:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26
-:100FC0003AE0532E470101E010E048E1642E55E07D
-:100FD000752EE3E9F1E0D401852D01900D928A95FB
-:100FE000E1F7F701819191917F019C01207F3327E7
-:100FF0002032310589F424B18F709927A80102C0ED
-:10100000440F551F8A95E2F7CA01242B24B995B1E4
-:101010008095892385B94FC02033310589F427B1E4
-:101020008F709927F80102C0EE0FFF1F8A95E2F733
-:10103000CF012E2B27B998B18095892388B93BC061
-:101040002034310589F42AB18F709927A80102C094
-:10105000440F551F8A95E2F7CA01242B2AB99BB188
-:10106000809589238BB927C02035310589F42DB1AE
-:101070008F709927F80102C0EE0FFF1F8A95E2F7E3
-:10108000CF012E2B2DB99EB1809589238EB913C027
-:101090002036310581F420B38F709927A80102C052
-:1010A000440F551F8A95E2F7CA01242B20BB91B348
-:1010B0008095892381BB50EA5A95F1F7BE016F5F95
-:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC
-:1010D0001196462D01900D924A95E1F7FB01419141
-:1010E0005191BF01FA01E07FFF27E032F10511F4D1
-:1010F000E3B113C0E033F10511F4E6B10EC0E03402
-:10110000F10511F4E9B109C0E035F10511F4ECB1D4
-:1011100004C0E036F105B9F4EFB1F0E04F705527A7
-:1011200002C0F595E7954A95E2F7E0FD08C0A801F1
-:10113000022E02C0440F551F0A94E2F702C040E09D
-:1011400050E0842B952B2F5F3F4F2C30310509F059
-:10115000BCCFF601208131812817390721F0918316
-:101160008083709270010E94E805F2E0CF0ED11CDE
-:10117000EA14FB0409F02DCF809170018823A1F1BE
-:10118000815080937001882339F08FE99FE00197A7
-:10119000F1F700C0000028C0809132029091330224
-:1011A0009093290280932802809134029091350215
-:1011B00090932B0280932A028091360290913702FD
-:1011C00090932D0280932C028091380290913902E5
-:1011D00090932F0280932E0280913A0290913B02CD
-:1011E000909331028093300282E493E0892B11F0D6
-:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4
-:10120000CDBFDF91CF911F910F91FF90EF90DF90B5
-:10121000CF90BF90AF909F908F907F906F905F9096
-:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D
-:10123000918108950895CF92DF92EF92FF920F93DC
-:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601
-:10125000F894DEBF0FBECDBF8C01862F642F88238C
-:1012600079F0F80192812FE7482F992329F083E044
-:1012700093E00E94C41904C083E093E00E94D41953
-:10128000F80180818B3091F59181943009F0A8C2EA
-:101290009281809173019923B1F08F5F80937301E4
-:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207
-:1012B0009A95E1F7E0917101F0917201EE0FFF1F35
-:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03
-:1012D000BD4F01900D929A95E1F7E0917101F09167
-:1012E0007201EE0FFF1F21E332E093C08A3009F054
-:1012F000CBC0F8019181943009F072C29281809143
-:101300007301992309F473C081508093730196E4AB
-:10131000E5EBF1E0DE01A551BE4F01900D929A95EB
-:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA
-:1013300031E02C0F3D1FE20FF31F60817181680FB8
-:10134000711D882777FD8095982F0E94AC3120E091
-:1013500030E040E451E40E94113120E030E040E808
-:1013600050E40E94A9309B01AC0160E070E080E095
-:1013700090E40E94C33221E230ED42E053E40E9447
-:1013800060324CE050E00E94BB0F20E04BE760E091
-:1013900083E093E00E94B41920E04BE761E083E032
-:1013A00093E00E94B41920E04BE762E083E093E011
-:1013B0000E94B41920E04BE763E083E093E00E94D1
-:1013C000B41920E04BE764E083E093E0C454DD4FC0
-:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146
-:1013E0000F91FF90EF90DF90CF900C94B41996E49A
-:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501
-:10140000E1F7E0917101F0917201EE0FFF1F25EA03
-:1014100031E02C0F3D1FE20FF31F60817181680FD7
-:10142000711D882777FD8095982F0E94AC3120E0B0
-:1014300030E040E451E40E94113120E030E040E827
-:1014400050E40E94A9309B01AC0160E070E080E0B4
-:1014500090E40E94C33221E230ED42E053E40E9466
-:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F
-:101470000FBECDBFDF91CF911F910F91FF90EF90E5
-:10148000DF90CF900C94BE0C893009F0D3C0F801E6
-:101490009181943009F0A4C19281992309F4A0C1EB
-:1014A00080917101909172010196909372018093E5
-:1014B000710120E04BE760E083E093E00E94B41903
-:1014C00020E04BE761E083E093E00E94B41920E064
-:1014D0004BE762E083E093E00E94B41920E04BE721
-:1014E00063E083E093E00E94B41920E04BE764E0FE
-:1014F00083E093E00E94B4190E94BE0C00E010E06B
-:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5
-:10151000BE4F9F2D01900D929A95E1F7E0917101D8
-:10152000F0917201E00FF11FEE0FFF1F2FE531E088
-:101530002C0F3D1FE20FF31F60817181680F711D39
-:10154000882777FD8095982F0E94AC3120E030E00D
-:1015500040E451E40E94113120E030E040E850E4E2
-:101560000E94A9309B01AC0160E070E080E090E453
-:101570000E94C33221E230ED42E053E40E94603227
-:101580004CE050E00E94BB0F3FEF87EE93E03150FC
-:1015900080409040E1F700C0000080917301E5EBCE
-:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E
-:1015B000E1F7E0917101F0917201E00FF11FEE0F80
-:1015C000FF1F29E131E02C0F3D1FE20FF31F608167
-:1015D0007181680F711D882777FD8095982F0E9473
-:1015E000AC3120E030E040E451E40E94113120E0D1
-:1015F00030E040E850E40E94A9309B01AC0160E07B
-:1016000070E080E090E40E94C33221E230ED42E0DD
-:1016100053E40E9460320E94EB0C8FEF9CE701972D
-:10162000F1F700C000000F5F1F4F0830110509F0EF
-:1016300069CF94C1883009F0D3C0F801918194300A
-:1016400009F0CEC09281992309F4CAC0809171013A
-:10165000909172010197909372018093710120E043
-:101660004BE760E083E093E00E94B41920E04BE791
-:1016700061E083E093E00E94B41920E04BE762E070
-:1016800083E093E00E94B41920E04BE763E083E03D
-:1016900093E00E94B41920E04BE764E083E093E01C
-:1016A0000E94B4190E94BE0C00E010E056E4F52E32
-:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C
-:1016C00001900D929A95E1F7E0917101F09172010C
-:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39
-:1016E000E20FF31F60817181680F711D882777FDFC
-:1016F0008095982F0E94AC3120E030E040E451E426
-:101700000E94113120E030E040E850E40E94A9300E
-:101710009B01AC0160E070E080E090E40E94C33285
-:1017200021E230ED42E053E40E9460324CE050E0B0
-:101730000E94BB0F3FEF87EE93E031508040904016
-:10174000E1F700C0000080917301E5EBF1E0DE01FC
-:10175000A357BF4F9F2D01900D929A95E1F7E0910D
-:101760007101F0917201E00FF11FEE0FFF1F2DE8E4
-:1017700030E02C0F3D1FE20FF31F60817181680F75
-:10178000711D882777FD8095982F0E94AC3120E04D
-:1017900030E040E451E40E94113120E030E040E8C4
-:1017A00050E40E94A9309B01AC0160E070E080E051
-:1017B00090E40E94C33221E230ED42E053E40E9403
-:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD
-:1017D00000000F5F1F4F0830110509F069CFBEC030
-:1017E000F801228190917301222309F45DC026E45F
-:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568
-:10180000E1F7E0917101F0917201E80FF11DEE0F27
-:10181000FF1F27E430E02C0F3D1FE20FF31F608114
-:101820007181690F711D882777FD8095982F0E941F
-:10183000AC3120E030E040E451E40E9411316B0112
-:101840007C01F801818165E070E0681B71098827DF
-:1018500077FD8095982F0E94AC319B01AC01C701A8
-:10186000B6010E94A9309B01AC0160E070E080E00D
-:1018700090E40E94C33221E230ED42E053E40E9442
-:1018800060324FE050E0C454DD4F0FB6F894DEBF35
-:101890000FBECDBFDF91CF911F910F91FF90EF90C1
-:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176
-:1018B000119601900D922A95E1F7E0917101F09156
-:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39
-:1018D0003D1FE20FF31F60817181690F711D882721
-:1018E00077FD8095982F0E94AC3120E030E040E4F5
-:1018F00051E40E9411316B017C01F801818165E0A6
-:1019000070E0681B7109882777FD8095982F0E94E9
-:10191000AC319B01AC01C701B6010E94A9309B010B
-:10192000AC0160E070E080E090E40E94C33221E20C
-:1019300030ED42E053E40E946032C454DD4F0FB6F4
-:10194000F894DEBF0FBECDBFDF91CF911F910F91F5
-:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0
-:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0
-:101970000F91FF90EF90DF90CF9008951092870223
-:1019800010928602809171008D7F8093710080910A
-:1019900090008F7780939000109248021092470237
-:1019A00010928002109281021092820210928302A1
-:1019B00010927F0210927E02EEE5F2E0AEE4B2E019
-:1019C00011921192119211921D921D9282E0EE37A6
-:1019D000F807B1F708956F927F928F929F92AF921E
-:1019E000BF92CF92DF92EF92FF920F931F93CF930C
-:1019F000DF936B017C010EE712E04CE5A42E42E080
-:101A0000B42EC7E0D0E0A7019601F801929182912F
-:101A1000729162918F010E940D31882349F02197C4
-:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB
-:101A3000F8011082118212821382F5011182108244
-:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA
-:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5
-:101A600055816681778140835183628373831482B9
-:101A700015821682178212962D913C91139711961A
-:101A80003C932E9313961C921E92129734961296A4
-:101A90008730910519F7C3CF809186029091870214
-:101AA000019797FD05C0909387028093860204C03A
-:101AB0001092870210928602E0918602F0918702CE
-:101AC0003097C9F4809171008D7F8093710080916F
-:101AD00090008F7780939000109280021092810284
-:101AE000109282021092830210927F0210927E0264
-:101AF0001092470285C03197DF01AA0FBB1FAA0FC2
-:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23
-:101B1000FF1FE25BFD4FC081D18160908002709019
-:101B200081028090820290908302A7019601662D27
-:101B3000772D882D992D0E940D3187FF25C0262DE8
-:101B4000372D482D592DC701B6010E94A83020E03D
-:101B500030E04AEF54E40E9411315B018C012A2DE0
-:101B60003B2D402F512F662D772D882D992D0E94CA
-:101B7000A9303B014C01A7019601772D992D0E94B8
-:101B80000D31181664F72EC0A7019601662D772D2A
-:101B9000882D992D0E945C32181634F5A701960104
-:101BA000662D772D882D992D0E94A83020E030E0F9
-:101BB0004AEF54E40E9411315B018C012A2D3B2D28
-:101BC000402F512F662D772D882D992D0E94A830FA
-:101BD0003B014C01A7019601772D992D0E945C32A3
-:101BE00087FFECCF10924D02C0928002D09281020A
-:101BF000E0928202F0928302D0937F02C0937E0231
-:101C0000DF91CF911F910F91FF90EF90DF90CF90D8
-:101C1000BF90AF909F908F907F906F9008953E9A65
-:101C2000E1E7F0E080818D7F808382E08093900007
-:101C30008AE18093910008951F920F920FB60F9240
-:101C40001124CF92DF92EF92FF922F933F934F9305
-:101C50005F936F937F938F939F93AF93BF93CF9334
-:101C6000DF93EF93FF9380914702882309F479C0B3
-:101C700020E030E0A90160918002709181028091A2
-:101C80008202909183020E945C3218160CF069C0A7
-:101C900020E030E040E251E46091490270914A0254
-:101CA00080914B0290914C020E945C321816BCF459
-:101CB00080918402909185020196609186027091D4
-:101CC00087020E9448349093850280938402109288
-:101CD000490210924A0210924B0210924C02C0919B
-:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC
-:101CF000DD4F288139814A815B8160E074E284E7AD
-:101D00009BE40E9411310E94793170939700609397
-:101D10009600288139814A815B8160E074E284E722
-:101D20009BE40E9411310E947931759567957093FB
-:101D300099006093980020E030E040E85FE3609114
-:101D4000490270914A0280914B0290914C020E948C
-:101D5000A9306093490270934A0280934B0290939A
-:101D60004C0280914802882309F493C0C09043023A
-:101D7000D0904402E0904502F090460220E030E02E
-:101D8000A901C701B6010E945C321816F4F4A7013C
-:101D9000960160E074E284E79BE40E9411310E94A6
-:101DA00079317093970060939600A701960160E0E7
-:101DB00074E284E79BE40E9411310E9479317595A9
-:101DC0006795709399006093980060913D027091BF
-:101DD0003E026F5F7F4F70933E0260933D0280E052
-:101DE00090E00E94AA3120913F0230914002409140
-:101DF0004102509142020E945C3287FD4AC08091AC
-:101E00003C028F5F80933C029091F0038917A0F011
-:101E10008091F503882319F010923C020DC0809147
-:101E200071008D7F80937100809190008F778093F7
-:101E30009000109248022DC0E091F103F091F2035E
-:101E400080913C0298E0899FE00DF11D1124808172
-:101E50009181A281B3818093430290934402A09325
-:101E60004502B093460220E030E040E85EE3648142
-:101E70007581868197810E94603260933F027093E2
-:101E80004002809341029093420210923E021092CF
-:101E90003D02FF91EF91DF91CF91BF91AF919F9163
-:101EA0008F917F916F915F914F913F912F91FF9013
-:101EB000EF90DF90CF900F900FBE0F901F9018956E
-:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174
-:101ED00080914702882331F04A8369830E94BE0CB7
-:101EE00069814A8181E0809348021093F203009354
-:101EF000F1036093F0034093F503109249021092AE
-:101F00004A0210924B0210924C0210923C02F801CD
-:101F10004081518162817381409343025093440216
-:101F2000609345027093460220E030E040E85EE3B3
-:101F300064817581868197810E94603260933F023F
-:101F400070934002809341029093420210923E02AD
-:101F500010923D02809171008260809371008091A7
-:101F600090008068809390000F900F90DF91CF9148
-:101F70001F910F9108956F927F928F929F92AF92CF
-:101F8000BF92CF92DF92EF92FF920F931F93CF9366
-:101F9000DF936B017C01EA018091480281110E946C
-:101FA000BE0C81E08093470220E030E0A901C70128
-:101FB000B6010E945C3218160CF09AC06090800244
-:101FC00070908102809082029090830220E030E045
-:101FD000A901662D772D882D992D0E940D31811133
-:101FE00028C0C0928002D0928102E0928202F092D8
-:101FF0008302D0937F02C0937E02809186029091EB
-:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C
-:10201000C082D182E282F382FC01EE0FFF1FE25BFD
-:10202000FD4FD183C08301969093870280938602EF
-:102030005FC0A7019601662D772D882D992D0E94EE
-:102040000D3187FF25C0262D372D482D592DC7016D
-:10205000B6010E94A83020E030E04AEF54E40E942C
-:1020600011315B018C012A2D3B2D402F512F662D04
-:10207000772D882D992D0E94A9303B014C01A70195
-:102080009601772D992D0E940D31181664F7A9CF6E
-:10209000A7019601662D772D882D992D0E945C321F
-:1020A00018160CF09ECFA7019601662D772D882D6E
-:1020B000992D0E94A83020E030E04AEF54E40E94BD
-:1020C00011315B018C012A2D3B2D402F512F662DA4
-:1020D000772D882D992D0E94A8303B014C01A70136
-:1020E0009601772D992D0E945C3287FFECCF79CF36
-:1020F000809171008260809371008091900080686F
-:1021000080939000DF91CF911F910F91FF90EF90FE
-:10211000DF90CF90BF90AF909F908F907F906F9007
-:102120000895809191020895CF93DF9300D01F927C
-:10213000CDB7DEB72091FA03243021F523E02983BF
-:102140009B838A832093E9008FEF06C095ED9A95D3
-:10215000F1F70000882329F09091E800815095FF65
-:10216000F5CF8091E80085FF0DC040E050E063E0CE
-:1021700070E0CE0101960E947E148091E8008E7777
-:102180008093E8000F900F900F90DF91CF9108950A
-:10219000CF93DF9300D01F92CDB7DEB72091FA0323
-:1021A000243029F522E029839B838A8383E080936E
-:1021B000E9008FEF06C095ED9A95F1F700008823AE
-:1021C00029F09091E800815095FFF5CF8091E800CB
-:1021D00085FF0DC040E050E063E070E0CE01019665
-:1021E0000E947E148091E8008E778093E8000F9023
-:1021F0000F900F90DF91CF9108952091FA03243032
-:10220000F9F422E02093E9002FEF06C035ED3A956E
-:10221000F1F70000222329F03091E800215035FF2A
-:10222000F5CF2091E80025FF0BC040E050E065E0CD
-:1022300070E00E947E148091E8008E778093E80021
-:102240000895CF93DF93EC018091FA03843041F538
-:1022500081E08093E9008FEF06C095ED9A95F1F744
-:102260000000882329F09091E800815095FFF5CF78
-:102270008091E80085FF14C040E050E068E070E025
-:10228000CE010E947E148091E8008E778093E80052
-:1022900088E0FE01A9E8B2E001900D928A95E1F78D
-:1022A000DF91CF910895BF92CF92DF92EF92FF928C
-:1022B0000F931F93CF93DF937C01B62EE90100E0CB
-:1022C00010E0C42ED12C0BC04991202F2B0D2F775D
-:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5
-:1022E0001D0594F3DF91CF911F910F91FF90EF9017
-:1022F000DF90CF90BF90089570E06F5F7F4F6F7059
-:1023000077270C94B4190F931F93CF93C42F633086
-:10231000710509F04AC0842F807F803849F18039E7
-:1023200009F043C0622F6F7770E080E090E00E9478
-:10233000AC3120E030E040E451E40E9411319B01D7
-:10234000AC0160E070E080E090E40E94C3320F775F
-:1023500010E023E0159507952A95E1F72DEC3CEC6C
-:1023600042E053E40E946032A8010E94BB0F1DC0EE
-:10237000622F6F7770E080E090E00E94AC3120E047
-:1023800030E040E451E40E9411319B01AC0160E077
-:1023900070E080E090E40E94C3322DEC3CEC42E01F
-:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1
-:1023B0001F910F910C94BE0CCF911F910F91089516
-:1023C0000F931F93CF93DF93CDB7DEB727970FB649
-:1023D000F894DEBF0FBECDBF8C0114C08A810E946D
-:1023E0008E199A819D839B819E839C819F838111FD
-:1023F0001EC089818430B1F08730A1F08630A1F011
-:102400008530A1F0BE016F5F7F4F84E791E00E94AD
-:10241000FB1C8111E3CF84E791E00E94EC1C0E9439
-:1024200067190DC083E003C082E001C081E0AE0106
-:102430004B5F5F4F682FC8010E94211AE3CF279698
-:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5
-:102450000F910895EF92FF920F93CF93DF9300D0E7
-:1024600000D000D0CDB7DEB77B014A832B830C832D
-:10247000842F2E834D830E948E192E814D818111D0
-:102480001BC082E0E816F10479F083E0E816F1045D
-:1024900021F0EA94EF2821F50BC0073F11F487E003
-:1024A00001C084E089830BC0273FD9F786E0FACFCB
-:1024B000473FB9F785E0F6CF42954F704983BE019B
-:1024C0006F5F7F4F84E791E00E94B11C84E791E049
-:1024D0000E94CF1C84E791E00E94EC1C0E946719C7
-:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119
-:1024F0000F91FF90EF9008958091F903811109C029
-:102500000E946D160E94CA168091E200846080933A
-:10251000E20008951092F9030895089508950C9427
-:102520006129809192028F5F8093920262E30E9400
-:102530002834911135C01092920280919302882321
-:1025400079F18091FA03843049F58091E9008F7028
-:102550009091EC0090FF02C090E801C090E0982BB1
-:1025600084E08093E9008091EB0080FF14C08091AB
-:10257000EE0087FD03C00FC01092F1008091E800CB
-:1025800085FDFACF8091E80080FF05C08091E800CA
-:102590008E778093E8009F709093E90010929302E9
-:1025A000089542E061EC81E00E94E31542E061ECB5
-:1025B00082E00E94E31542E061EC83E00E94E315B3
-:1025C00042E261EC84E00E94E31542E361E885E0C9
-:1025D0000E94E31542E360E886E00C94E3158091E5
-:1025E000FC03833009F454C030F4813071F0823040
-:1025F00009F0A5C08CC08A3009F479C08B3009F489
-:102600005FC0893009F09BC020C08091FB03813AF4
-:1026100009F095C08091E800877F8093E800809161
-:10262000FF0390910004892B21F060E080E090E0AE
-:1026300003C068E089E892E070E00E941C15809178
-:10264000E8008B778093E80008958091FB03813246
-:1026500009F075C08091FF0390910004892B09F067
-:102660006EC08091E800877F8093E80005C080916C
-:10267000FA03882309F463C08091E80082FFF7CF52
-:102680008091F100809391028091E8008B7753C094
-:102690008091FB03813A09F052C08091FF03909131
-:1026A0000004892B09F04BC08091E800877F80935C
-:1026B000E8008091E80080FFFCCF80918A0136C05D
-:1026C0008091FB038132D9F58091FF039091000442
-:1026D000892BA9F58091E800877F8093E8000E940C
-:1026E0001A168091FD0380938A010C9456238091E1
-:1026F000FB03813221F58091E800877F8093E80019
-:102700000E941A168091FE0380938802089580919A
-:10271000FB03813AA1F48091E800877F8093E80071
-:102720008091E80080FFFCCF809188028093F100C7
-:102730008091E8008E778093E8000C941A16089533
-:1027400083E093E00E94F0196AE272E183E093E093
-:102750000E94461A60EE71E183E093E00E944A1AFB
-:1027600084B7877F84BF88E10FB6F89480936000B8
-:10277000109260000FBE90E080E80FB6F89480934E
-:102780006100909361000FBE0E94741D0E946D163F
-:102790000E94CA168091E20084608093E2007894DF
-:1027A00063E871E183E093E00E94EC196CE771E16A
-:1027B00083E093E00E94E41963E571E183E093E034
-:1027C0000E94E8190E940F0E0E9467190E94761D50
-:1027D00080E891E00E94201D0BC00E941E2980917C
-:1027E000F803882329F00E94492981110E94681466
-:1027F0008091FA03853089F383E093E00E94F91B0E
-:102800000E94801DF5CF292F332723303105B1F0E9
-:102810004CF42130310509F44DC02230310509F066
-:102820004EC007C02132310541F12232310591F10C
-:1028300046C0E0EDF0E084EE93E045C0992781309A
-:10284000910569F08230910589F0892B09F037C034
-:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0
-:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2
-:10287000E491F0E086E893E026C0643000F5E62FAE
-:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF
-:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1
-:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA
-:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085
-:1028C000F0E080E090E0DA018D939C93CF010895D1
-:1028D00080E189BD82E189BD09B400FEFDCF809110
-:1028E000D8008F7D8093D8008091E0008260809333
-:1028F000E0008091E00081FDFCCF0895BF92CF926F
-:10290000DF92EF92FF920F931F93CF93DF937C019F
-:102910008B01EA010E943B16B82E811133C020972B
-:1029200031F028813981021B130BE20EF31EC12CFA
-:10293000D12C23C08091E80085FD15C08091E8006E
-:102940008E778093E800209749F0888199818C0DDB
-:102950009D1D9983888325E0B22E14C00E943B16EA
-:10296000882359F00EC0F70181917F018093F10017
-:1029700001501109FFEFCF1ADF0A01151105D1F639
-:1029800001C0B82E8B2DDF91CF911F910F91FF9039
-:10299000EF90DF90CF90BF900895BF92CF92DF92DB
-:1029A000EF92FF920F931F93CF93DF937C018B01E4
-:1029B000EA010E943B16B82E811133C0209731F0F6
-:1029C00028813981021B130BE20EF31EC12CD12C7E
-:1029D00023C08091E80085FD15C08091E8008B77C9
-:1029E0008093E800209749F0888199818C0D9D1D86
-:1029F0009983888345E0B42E14C00E943B16882337
-:102A000059F00EC08091F100F70181937F010150D0
-:102A10001109FFEFCF1ADF0A01151105D1F601C028
-:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA
-:102A3000DF90CF90BF90089540910104509102041F
-:102A40004617570748F06115710539F44091E800C1
-:102A50004E774093E80001C0BA01FC0140E033C06A
-:102A60008091FA03882309F444C0853009F443C0F7
-:102A70008091E80083FD41C08091E80082FD33C071
-:102A80008091E80080FF1FC09091F3008091F200D8
-:102A9000392F20E0A901482BCA0106C0419140937B
-:102AA000F1006150710901966115710519F08830C6
-:102AB0009105A0F341E0089709F040E08091E8001B
-:102AC0008E778093E8006115710551F64111C8CFEA
-:102AD0000AC08091FA03882361F0853061F080910B
-:102AE000E80083FD0AC08091E80082FFF2CF80E019
-:102AF000089582E0089583E0089581E0089540916B
-:102B00000104509102044617570748F061157105FA
-:102B100039F44091E8004E774093E80001C0BA01D3
-:102B2000FC0140E034C08091FA03882309F445C0D9
-:102B3000853009F444C08091E80083FD42C0809153
-:102B4000E80082FD34C08091E80080FF20C09091B1
-:102B5000F3008091F200392F20E0A901482BCA012F
-:102B600007C044914093F10031966150710901967C
-:102B70006115710519F08830910598F341E00897C7
-:102B800009F040E08091E8008E778093E8006115BD
-:102B9000710549F64111C7CF0AC08091FA03882315
-:102BA00061F0853061F08091E80083FD0AC080917A
-:102BB000E80082FFF2CF80E0089582E0089583E08C
-:102BC000089581E00895982F2CC09093E9009817FC
-:102BD00039F07091EC002091ED005091F00003C0AD
-:102BE000242F762F50E021FD02C09F5F1AC0309144
-:102BF000EB003E7F3093EB003091ED003D7F309352
-:102C0000ED003091EB0031603093EB007093EC00FD
-:102C10002093ED005093F0002091EE0027FDE5CFCA
-:102C200007C0973090F28F708093E90081E008959B
-:102C300080E008958091FB0387FD05C08091E80046
-:102C400080FF0EC012C08091E80082FD05C0809117
-:102C5000FA038111F8CF08958091E8008B7708C0BE
-:102C60008091FA038111EACF08958091E8008E7770
-:102C70008093E80008958091E4009091E50045E696
-:102C80002091EC0020FD1FC023C02091FA032223D5
-:102C900091F0253091F02091EB0025FD10C020919E
-:102CA000E4003091E5002817390751F34150C9017C
-:102CB00039F784E0089582E0089583E0089581E083
-:102CC000089580E008952091E80020FFDECFF9CF3D
-:102CD0002091E80022FFD9CFF4CF0E94DB160E949A
-:102CE000E316E0EEF0E0808181608083E8EDF0E0C3
-:102CF00080818F77808319BCA7EDB0E08C918E7FA7
-:102D00008C9380818F7E80831092F90308950F93B6
-:102D10001F93CF93DF930E94DB160E94E316C8ED4A
-:102D2000D0E088818F7788838881806888838881D4
-:102D30008F7D888319BC1092FA031092F6031092CB
-:102D4000F8031092F70300EE10E0F80180818B7F0A
-:102D5000808388818160888342E060E080E00E9417
-:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B
-:102D7000808181608083808188608083F801808188
-:102D80008E7F8083888180618883DF91CF911F91BE
-:102D90000F910895E8EDF0E080818F7E8083E7ED6C
-:102DA000F0E080818160808384E082BF81E0809355
-:102DB000F9030C948716E8EDF0E080818E7F808324
-:102DC0001092E20008951092DA001092E100089546
-:102DD0001F920F920FB60F9211242F933F934F9390
-:102DE0005F936F937F938F939F93AF93BF93EF9373
-:102DF000FF938091E10082FF0BC08091E20082FF8F
-:102E000007C08091E1008B7F8093E1000E949112C6
-:102E10008091DA0080FF1FC08091D80080FF1BC026
-:102E20008091DA008E7F8093DA008091D90080FF54
-:102E30000DC080E189BD82E189BD09B400FEFDCFEE
-:102E400081E08093FA030E947C1205C019BC1092A5
-:102E5000FA030E948A128091E10080FF19C08091DC
-:102E6000E20080FF15C08091E2008E7F8093E20037
-:102E70008091E20080618093E2008091D8008062BE
-:102E80008093D80019BC85E08093FA030E948E12CB
-:102E90008091E10084FF30C08091E20084FF2CC06B
-:102EA00080E189BD82E189BD09B400FEFDCF80913A
-:102EB000D8008F7D8093D8008091E1008F7E809331
-:102EC000E1008091E2008F7E8093E2008091E20039
-:102ED00081608093E2008091F603882311F084E002
-:102EE00007C08091E30087FF02C083E001C081E05A
-:102EF0008093FA030E948F128091E10083FF29C022
-:102F00008091E20083FF25C08091E100877F80935C
-:102F1000E10082E08093FA031092F6038091E100D1
-:102F20008E7F8093E1008091E2008E7F8093E200AB
-:102F30008091E20080618093E20042E060E080E006
-:102F40000E94E3158091F00088608093F0000E9459
-:102F50008D12FF91EF91BF91AF919F918F917F91D2
-:102F60006F915F914F913F912F910F900FBE0F90F6
-:102F70001F9018951F920F920FB60F9211242F9346
-:102F80003F934F935F936F937F938F939F93AF93F1
-:102F9000BF93CF93EF93FF938091E9008F7090914F
-:102FA000EC0090FF02C090E801C090E0C92FC82B50
-:102FB0001092E9008091F000877F8093F000789470
-:102FC0000E94FE171092E9008091F00088608093C3
-:102FD000F000CF70C093E900FF91EF91CF91BF91C6
-:102FE000AF919F918F917F916F915F914F913F91A1
-:102FF0002F910F900FBE0F901F9018951F93CF9396
-:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37
-:10301000CDBFEBEFF3E08091F100819324E0E3304A
-:10302000F207C9F70E94EF128091E80083FF37C1D1
-:103030008091FB039091FC03953009F488C038F42B
-:103040009130B1F170F0933009F029C131C098305E
-:1030500009F4F8C0993009F404C1963009F01FC191
-:103060009DC0803821F0823809F019C108C08091D4
-:10307000F7039091F803992389F082600FC0809143
-:10308000FF03909100048F7099278093E90080914D
-:10309000EB0085FB882780F91092E9009091E80009
-:1030A000977F9093E8008093F1001092F100D5C0D3
-:1030B000882319F0823009F0F2C08F7121F082303C
-:1030C00009F0EDC00BC08091FD03813009F0E7C02D
-:1030D000933009F080E08093F8032FC08091FD03C6
-:1030E00081112BC08091FF03909100048F7099276C
-:1030F000009709F4D4C08093E9002091EB0020FFF1
-:103100001CC02091FC03233021F48091EB008062ED
-:1031100012C09091EB0090619093EB0021E030E0C1
-:1031200001C0220F8A95EAF72093EA001092EA0084
-:103130008091EB0088608093EB001092E900809111
-:10314000E800877F8093E8000E941A16A8C08111CA
-:10315000A6C08091FD039091FE038F779927182FC9
-:103160009091E3009078982B9093E3008091E80091
-:10317000877F8093E8000E941A168091E80080FF04
-:10318000FCCF8091E30080688093E300112311F06D
-:1031900083E001C082E08093FA0381C080588230CE
-:1031A00008F07DC08091FD039091FE038C3D23E0EB
-:1031B000920779F583E08A838AE289834FB7F8948E
-:1031C000DE01139620E03EE051E2E32FF0E0509361
-:1031D0005700E49120FF03C0E295EF703F5FEF706E
-:1031E0008E2F90E0EA3010F0C79601C0C0968D9304
-:1031F0009D932F5F243149F74FBF8091E800877F6F
-:103200008093E8006AE270E0CE0101960E941C15EE
-:1032100013C0AE01455D5F4F6091FF030E94031430
-:103220000097E9F12091E800277F2093E800BC0196
-:103230008BA59CA50E947F158091E8008B778093D9
-:10324000E8002DC0803859F58091E800877F809391
-:10325000E8008091F6038093F1008091E8008E777A
-:1032600071CF81111CC09091FD039230C0F4809108
-:10327000E800877F8093E8009093F6030E941A1677
-:103280008091F603811104C08091E30087FF02C0A2
-:1032900084E001C081E08093FA030E94D112809102
-:1032A000E80083FF0AC08091E800877F8093E800F0
-:1032B0008091EB0080628093EB00AC960FB6F8949F
-:1032C000DEBF0FBECDBFDF91CF911F910895CF9389
-:1032D0008091FA038823B1F08091E9008F7090917A
-:1032E000EC0090FF02C090E801C090E0C92FC82B0D
-:1032F0001092E9008091E80083FD0E94FE17CF70D4
-:10330000C093E900CF910895881F8827881F0895EA
-:1033100091E0883F08F490E0892F0895982F907FDE
-:10332000903B99F038F4903981F0903A71F09038F0
-:10333000C9F40BC0903DA1F018F4903C99F410C072
-:10334000903E19F0903F71F402C083E00895E82F99
-:10335000E15FEF3038F4F0E0E15FFD4F80810895E8
-:1033600082E0089580E008950F932F774F776F7074
-:10337000606BDC01ED91FC91022F242F462F63E05E
-:1033800070E009950F9108950F932F774F776F7025
-:103390006069DC01ED91FC91022F242F462F63E040
-:1033A00070E009950F9108950F932F774F776F7005
-:1033B0006068DC01ED91FC91022F242F462F63E021
-:1033C00070E009950F910895FC017383628308955D
-:1033D000FC01738F628F0895FC01758F648F0895CF
-:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A
-:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8
-:103400001D821C821F821E82198618861B861A86C0
-:103410001D861C861F861E86198A188A1B8A1A8A90
-:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60
-:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199
-:103440000895CF92DF92FF920F931F93CF93DF9354
-:103450001F92CDB7DEB7F62E6A018C0108511F4FBF
-:1034600008C0F60161916F01C80149830E94341CB4
-:1034700049818C2D841B8F15A0F30F90DF91CF9184
-:103480001F910F91FF90DF90CF900895FC01718301
-:1034900060830895FC0171A360A30895AF92BF9269
-:1034A000CF92DF92EF92FF920F931F93CF93DF9310
-:1034B00000D01F92CDB7DEB77C016B01142FB22E66
-:1034C000A02EDC0195968C9195978430F1F45A9654
-:1034D000ED91FC915B97309709F4D8C0CB0101972F
-:1034E00063E070E00E943434DB01AA0FBB1FA60F1B
-:1034F000B71F49832A830B834C2D4A1B9E012F5FE4
-:103500003F4FBD01C7010995B1C06230710509F493
-:1035100053C06330710529F06130710509F09CC01A
-:1035200083C0842F807F803A01F130F48038B9F075
-:10353000803909F0ABC00DC0803EE9F0803F09F151
-:10354000803B09F0A3C0D7011296ED91FC9113972F
-:1035500023C0D7011496ED91FC9115971DC0D7019A
-:103560001696ED91FC91179717C0D7011896ED911B
-:10357000FC91199711C0D7011A96ED91FC911B97F8
-:103580000BC0423F09F082C0D7011C96ED91FC911F
-:103590001D97309731F47AC0309709F477C0123F05
-:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C
-:1035B0004B2DC70109955AC0842F807F803D59F05B
-:1035C000803F79F0803C09F061C0D7011E96ED91F3
-:1035D000FC911F9719C0D7015096ED91FC9151971E
-:1035E00013C0433F31F4D7015296ED91FC915397AC
-:1035F00008C0413F09F04AC0D7015496ED91FC91B3
-:103600005597309741F442C0309709F43FC0133FBB
-:1036100011F0113F19F44B2D612F03C0612F6F7012
-:103620004B2DC701099522C0842F0E948819882339
-:1036300031F0D7015696ED91FC91579707C0163F90
-:1036400029F5D7015896ED91FC9159973097F1F0F3
-:10365000612FC70109950AC064307105A8F416C02E
-:103660000A2D2B2D412FB601C7010995D7015E9672
-:10367000ED91FC915F97309789F00A2D2B2D412F0A
-:10368000B601C70109950AC0C12CD12CD7015C969F
-:10369000ED91FC915D97309719F7E8CF0F900F905F
-:1036A0000F90DF91CF911F910F91FF90EF90DF90DE
-:1036B000CF90BF90AF900895EF92FF920F931F931A
-:1036C000CF93DF93EC01162F862F0E948819882351
-:1036D00069F0FDA081E08DA300E020E0412F61E0D2
-:1036E00070E0CE010E944E1AFDA27CC0812F0E9484
-:1036F00084194DA1882309F440C0443029F01AA34D
-:1037000021E030E03FA32EA3812F0E948E1981304B
-:1037100031F070F0823051F0833059F507C08DA33D
-:1037200000E020E0412F61E070E01EC08DA35AC090
-:10373000103F19F0173FE9F404C084E08DA31AA3E9
-:103740003FC02EA13FA1C90163E070E00E94343464
-:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8
-:103760006EA30CA12BA14AA1CE010E944E1A1DA24C
-:1037700039C01DA21FA21EA235C0442399F12EA15B
-:103780003FA1C90163E070E00E9434347C01FE0176
-:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC
-:1037A0008130910591F082E0E816F104D9F40CA182
-:1037B0002BA14AA1CE010E944E1A8DA1843091F016
-:1037C00081E090E09FA38EA30DC0423059F400E049
-:1037D0002BA14AA1CE010E944E1A8DA1843011F076
-:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A
-:1037F0000895CF92DF92EF92FF920F931F93CF9392
-:10380000DF93EC01E8A1F9A1309709F009958E0149
-:1038100008511F4FC8010E94661CE12CF12CC82ED4
-:10382000D12C0FC060E0C8010E947A1C682FCE0125
-:103830000E945C1B61E0C8010E948B1C8FEFE81A9C
-:10384000F80AEC14FD0470F3DF91CF911F910F91F2
-:10385000FF90EF90DF90CF900895FC014283748336
-:1038600063831182108208950F931F93CF93DF9388
-:10387000EC01062F0E94AC1C182F298130E0C901F1
-:1038800001966A8170E00E944834488150E08417B4
-:10389000950729F4812F0E94AF1C80E012C0EB81B4
-:1038A000FC81E20FF31F00832981822F90E00196B3
-:1038B0006A8170E00E9448348983812F0E94AF1C86
-:1038C00081E0DF91CF911F910F910895CF93DF9306
-:1038D000EC010E94AC1C29819881291710F0C22F9D
-:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E
-:1038F000CF910895FC012081862F90E0820F911DC9
-:10390000628170E00E9448340380F481E02DE80F6A
-:10391000F91F808108950F931F93CF93DF931F9218
-:10392000CDB7DEB78C0169830E94AC1C482FF8012B
-:1039300080816981262F30E0280F311D6281C90105
-:1039400070E00E9448348083842F0F90DF91CF91E4
-:103950001F910F910C94AF1C8FB7F89408958FBFEF
-:103960000895FC01CB012091FA032430B1F42181A8
-:103970002F702093E90040E050E064E070E00E9486
-:103980007E1481110BC09091E80095FD07C09091C5
-:10399000E8009E779093E800089582E008952091D2
-:1039A000FA032430A9F4FC0181818F708093E9002F
-:1039B0003091F3002091F200932F80E0822B892B2D
-:1039C00049F08091E8008E778093E8000C943B16D4
-:1039D00082E0089580E008952091FA03243051F4A4
-:1039E000FC0121812F702093E9002091E80020FD47
-:1039F0000C94CF1C0895FC01CB012091FA032430D4
-:103A000011F080E0089526812F702093E900209125
-:103A1000E80022FFF6CF2091E80025FFF2CF40E03A
-:103A200050E064E070E00E94CD148091E80085FDD4
-:103A300005C08091E8008B778093E80081E00895CD
-:103A400090939502809394020895E0919402F091EE
-:103A50009502309721F00190F081E02D099480E0EB
-:103A60000895E0919402F0919502309721F0028040
-:103A7000F381E02D09940895E0919402F09195026C
-:103A8000309721F00480F581E02D0994089520916C
-:103A90009602309197028217930771F090939702E4
-:103AA00080939602E0919402F0919502309721F074
-:103AB0000680F781E02D09940895209198023091B5
-:103AC00099028217930771F090939902809398025C
-:103AD000E0919402F0919502309721F00084F185F5
-:103AE000E02D0994089508950C94731D0E94952962
-:103AF0000E94AD060E94692A0C9411300C94E705CF
-:103B00005F926F927F928F929F92AF92BF92CF926D
-:103B1000DF92EF92FF920F931F93CF93DF93CDB776
-:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456
-:103B3000BD079AE9C92E92E0D92E00E010E0AA2430
-:103B4000A394B12C502E802F0E9411093C01F60144
-:103B5000E190F1906F01E826F926E114F10431F4C7
-:103B60000F5F1F4F0530110569F73AC08091F002D1
-:103B700081FD0E941A0920E030E04501022E02C0BA
-:103B8000880C991C0A94E2F7C4018E219F21892B8D
-:103B900009F12E835F826820792081E0672809F48B
-:103BA00080E088870E949E298160782F9A87898784
-:103BB0004E815F8168858A850E94391EF801EE0F6B
-:103BC000FF1FE656FD4F80819181882599259183BD
-:103BD000808316C02F5F3F4F2C30310571F6C0CF68
-:103BE0008FEF89838A831B820E949E298160782FB0
-:103BF0009D838C8349815A816B818D810E94391EFE
-:103C00000E94562D1091A4020E94251D1817D9F06C
-:103C10000E94251D8093A4022A960FB6F894DEBF59
-:103C20000FBECDBFDF91CF911F910F91FF90EF900D
-:103C3000DF90CF90BF90AF909F908F907F906F90CC
-:103C40005F900C947E1D2A960FB6F894DEBF0FBECF
-:103C5000CDBFDF91CF911F910F91FF90EF90DF903B
-:103C6000CF90BF90AF909F908F907F906F905F901C
-:103C70000895CF93DF93CDB7DEB72B970FB6F894A7
-:103C8000DEBF0FBECDBF4F83588769877A878B878A
-:103C9000DE01119686E0FD0111928A95E9F785E033
-:103CA000FE01379601900D928A95E1F749815A817C
-:103CB0006B817C818D819E810E9415262B960FB68B
-:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3
-:103CD000C82F882309F4C1C0823859F40E94251DD9
-:103CE00081FDBBC089E30E947C280E94F82889E3FB
-:103CF0000CC0833879F40E94251D80FDAEC083E599
-:103D00000E947C280E94F82883E50E949E28CF917B
-:103D10000C94F828843859F40E94251D82FD9DC01A
-:103D200087E40E947C280E94F82887E4EECF845024
-:103D3000813A48F48C2F0E94732F81118EC08C2FF2
-:103D40000E947C28E4CF8C2F805E883050F4C770AE
-:103D500081E090E001C0880FCA95EAF70E94BF2871
-:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD
-:103D700031F482E890E005C081E890E002C083E879
-:103D800090E0CF910C94471D8C2F885A833108F016
-:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B
-:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB
-:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B
-:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9
-:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF
-:103DE00092E038C082EE90E035C089EE90E032C0BB
-:103DF0008AEE90E02FC085EB90E02CC086EB90E03F
-:103E000029C087EB90E026C08CEC90E023C08DECBD
-:103E100090E020C083E891E01DC08AE891E01AC0DC
-:103E200082E991E017C084E991E014C081E292E058
-:103E300011C083E292E00EC084E292E00BC085E202
-:103E400092E008C086E292E005C087E292E002C0FC
-:103E500080E090E0CF910C945D1DCF910895882370
-:103E600009F44DC0823859F40E94251D81FF47C0D6
-:103E700089E30E947C280E94F82889E30CC08338DB
-:103E800071F40E94251D80FF3AC083E50E947C28C2
-:103E90000E94F82883E50E949E280C94F828843814
-:103EA00059F40E94251D82FF2AC087E40E947C28C5
-:103EB0000E94F82887E4EFCF982F9450913A08F4A5
-:103EC000EACF982F905E983058F4282F277081E021
-:103ED00090E001C0880F2A95EAF70E94C528DDCF3F
-:103EE000982F955A933020F480E090E00C94471D71
-:103EF000885A833120F480E090E00C945D1D089591
-:103F0000882321F00E94BF280C94F8280895882364
-:103F100021F00E94C5280C94F8280895BF92CF92F2
-:103F2000DF92EF92FF920F931F93CF93DF93CDB762
-:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A
-:103F400085E0F801DE01119601900D928A95E1F766
-:103F5000F80130812181F280558152955F70838113
-:103F60009481892B39F02F3F41F481E090E03F3F6D
-:103F700031F003C081E090E002C080E090E080FD7D
-:103F800073C339832A8389819A815E830E94392889
-:103F9000B92E8F830E9438280E9460272B2D2295EE
-:103FA0002F7030E05E816F812530310509F4E6C065
-:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA
-:103FC0008F70223031050CF045C017C02C30310500
-:103FD0004CF42A3031050CF0E7C12830310509F0E6
-:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6
-:103FF0002F30310509F038C323C3182F411101C0F8
-:1040000002C01295107FFF2059F0112309F46BC2F2
-:10401000812F6F830E94CF280E94F8286F8163C28E
-:10402000862F0E942F1F112309F41EC3812F0E9487
-:10403000D52827960FB6F894DEBF0FBECDBFDF910F
-:10404000CF911F910F91FF90EF90DF90CF90BF9095
-:104050000C94F828403211F08295807F662319F085
-:10406000613071F523C0FF20B1F0511101C032C0A1
-:10407000513081F527960FB6F894DEBF0FBECDBF45
-:10408000DF91CF911F910F91FF90EF90DF90CF9034
-:10409000BF900C94DF28511101C003C0513009F4C6
-:1040A000E3C28E830E94E2288E819AC1FF2021F014
-:1040B000563008F0D9C20EC0553008F0D5C290C1B4
-:1040C000FF20C9F0552331F0F801958190FF0BC214
-:1040D0009F70958327960FB6F894DEBF0FBECDBFB5
-:1040E000DF91CF911F910F91FF90EF90DF90CF90D4
-:1040F000BF900C94801F552309F472C109C22B2D67
-:1041000026952695237030E02115310529F02130C0
-:10411000310509F0A9C219C0FF2021F0862F9B2D7F
-:10412000937002C080E090E027960FB6F894DEBF4F
-:104130000FBECDBFDF91CF911F910F91FF90EF90F8
-:10414000DF90CF90BF900C94471DFF2021F0862F69
-:104150009B2D937002C080E090E027960FB6F894F4
-:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA
-:10417000EF90DF90CF90BF900C945D1D862FFF20B5
-:1041800019F00E945C2C02C00E94C42C27960FB626
-:10419000F894DEBF0FBECDBFDF91CF911F910F917D
-:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14
-:1041B000837009F079C0F11057C2262F22952695F9
-:1041C0002770220F220F862F8F70C82ED12CE12C42
-:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A
-:1041E000D2F764FF10C06FE070E080E090E004C0A0
-:1041F000660F771F881F991F2A95D2F760957095D3
-:104200008095909503C060E070E0CB012B2D269542
-:1042100026952370422F50E042305105D9F04330AB
-:10422000510569F16C297D298E299F29413051055D
-:1042300051F127960FB6F894DEBF0FBECDBFDF91C8
-:10424000CF911F910F91FF90EF90DF90CF90BF9093
-:104250000C9475276C297D298E299F2927960FB6E6
-:10426000F894DEBF0FBECDBFDF91CF911F910F91AC
-:10427000FF90EF90DF90CF90BF900C9487270E9423
-:104280007527C701B60127960FB6F894DEBF0FBE9B
-:10429000CDBFDF91CF911F910F91FF90EF90DF90F5
-:1042A000CF90BF900C946327FF2019F08B2D817065
-:1042B00001C08695882309F4D7C1262F229526951B
-:1042C0002770220F220F862F8F70C82ED12CE12C41
-:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439
-:1042E000D2F764FF10C06FE070E080E090E004C09F
-:1042F000660F771F881F991F2A95D2F760957095D2
-:104300008095909503C060E070E0CB012B2D269541
-:1043100026952370422F50E042305105D9F04330AA
-:10432000510569F16C297D298E299F29413051055C
-:1043300051F127960FB6F894DEBF0FBECDBFDF91C7
-:10434000CF911F910F91FF90EF90DF90CF90BF9092
-:104350000C9414286C297D298E299F2927960FB645
-:10436000F894DEBF0FBECDBFDF91CF911F910F91AB
-:10437000FF90EF90DF90CF90BF900C9426280E9482
-:104380001428C701B60127960FB6F894DEBF0FBEFA
-:10439000CDBFDF91CF911F910F91FF90EF90DF90F4
-:1043A000CF90BF900C940228603F59F120F4603EFA
-:1043B00008F494C008C0623F09F467C0F0F1633F9D
-:1043C00009F08CC065C0162F1F708B2D8F71FF20D8
-:1043D00021F00E94AD27812F7DCE0E94C827812F1A
-:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9
-:1043F0001F910F91FF90EF90DF90CF90BF900C94A2
-:10440000871FFF20B1F0553008F02EC18B2D8F7122
-:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8
-:104420001F910F91FF90EF90DF90CF90BF900C9471
-:10443000E727563008F018C1E9CFFF2099F08B2DFF
-:104440008F7127960FB6F894DEBF0FBECDBFDF91F8
-:10445000CF911F910F91FF90EF90DF90CF90BF9081
-:104460000C94AD278B2D8F7127960FB6F894DEBF75
-:104470000FBECDBFDF91CF911F910F91FF90EF90B5
-:10448000DF90CF90BF900C94C827F110EBCFD7CF1F
-:10449000FF2099F08B2D8F7127960FB6F894DEBF11
-:1044A0000FBECDBFDF91CF911F910F91FF90EF9085
-:1044B000DF90CF90BF900C949E2727960FB6F8946C
-:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047
-:1044D000EF90DF90CF90BF900C949927FF20A9F028
-:1044E000552309F4ACCF862F27960FB6F894DEBF7C
-:1044F0000FBECDBFDF91CF911F910F91FF90EF9035
-:10450000DF90CF90BF900C94671E552309F4AACF7B
-:10451000862F27960FB6F894DEBF0FBECDBFDF9172
-:10452000CF911F910F91FF90EF90DF90CF90BF90B0
-:104530000C942F1F4B2D4F70C8010E941A03279611
-:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4
-:104550000F91FF90EF90DF90CF90BF900C94CB26FF
-:10456000F11082C09B2D9F70492F50E042305105C1
-:1045700099F144F44115510569F04130510509F0B4
-:1045800073C019C043305105C1F14430510509F0E1
-:104590006BC044C027960FB6F894DEBF0FBECDBFE8
-:1045A000DF91CF911F910F91FF90EF90DF90CF900F
-:1045B000BF900C94223027960FB6F894DEBF0FBE42
-:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2
-:1045D000CF90BF900C94393027960FB6F894DEBF79
-:1045E0000FBECDBFDF91CF911F910F91FF90EF9044
-:1045F000DF90CF90BF900C94553027960FB6F8946B
-:10460000DEBF0FBECDBFDF91CF911F910F91FF9005
-:10461000EF90DF90CF90BF900C946830862F279654
-:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3
-:104630000F91FF90EF90DF90CF90BF900C948C3053
-:104640004B2D4F70C80127960FB6F894DEBF0FBEF2
-:10465000CDBFDF91CF911F910F91FF90EF90DF9031
-:10466000CF90BF900C941B0927960FB6F894DEBF2D
-:104670000FBECDBFDF91CF911F910F91FF90EF90B3
-:10468000DF90CF90BF9008950E94DC280E94B1284F
-:104690000E94F8280E94F72D0E944B2D80E090E0A8
-:1046A0000E94471D80E090E00C945D1D0E94CC2884
-:1046B0000C9444230E943928292F22952F7030E032
-:1046C0002C3031054CF42A3031056CF4225031097C
-:1046D0002230310590F407C02C30310551F02F30D5
-:1046E000310559F406C0803E10F0803F31F481E07E
-:1046F000089593FB882780F9089580E00895CF936B
-:10470000DF9300D000D01F92CDB7DEB70F900F908F
-:104710000F900F900F90DF91CF910895CF93DF937B
-:1047200000D000D000D0CDB7DEB726960FB6F894F3
-:10473000DEBF0FBECDBFDF91CF9108951F93CF9302
-:10474000DF93C091DB0216E012C0D0E01C9FF001A5
-:104750001D9FF00D1124E555FD4F4081518162816F
-:104760007381848195810E948E232196C7708091E8
-:10477000DC02C813EACFDF91CF911F9108954091D9
-:10478000A5025091A6026091A7027091A8028091A3
-:10479000A9029091AA020C948E230F931F93CF939A
-:1047A000DF938091AA0282958F7009F069C0809191
-:1047B000A702882309F464C0A091DB02D091DC0237
-:1047C000B091A502C091A6028091A8029091A90281
-:1047D00021E030E0BF3F11F020E030E0122FBC01BB
-:1047E0006095709506E04AC0009721F0CF3F29F40C
-:1047F000212F05C021E030E002C020E030E020FDA4
-:104800003BC04A2F50E0049FF001059FF00D11249A
-:10481000E555FD4F2181C2132FC02081B2132CC05A
-:104820002281211129C0238134812817390718F0EA
-:10483000281B390B02C0260F371F283C3105E0F436
-:104840008091AA028F7080618093AA0286E0849F83
-:10485000F001859FF00D1124E055FD4F80818F7090
-:104860008061808385EA92E00E948E1FDF91CF9164
-:104870001F910F910C949E23AF5FA770AD13B4CF1F
-:10488000DF91CF911F910F910895EF92FF920F93B7
-:104890001F93CF93DF93CDB7DEB762970FB6F8942F
-:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695
-:1048B00001900D928A95E1F7D8014C9111965C9187
-:1048C000119712966C9112971396ED90FC90149795
-:1048D0007091A502E091A6028091A8029091A90290
-:1048E000009739F0EF3F41F421E030E07F3F31F0B5
-:1048F00003C021E030E002C020E030E020FD5CC1D8
-:104900002091A702222309F4F1C0E816F90628F045
-:104910009701281B390BC90104C0809590958E0D15
-:104920009F1D883C910508F098C08091AA02982F9D
-:10493000907F09F064C0E51314C0741312C06111B4
-:1049400010C08F7080618093AA020E94BF2385EA05
-:1049500092E00E948E1F8091AA02D80115968C9336
-:1049600043C1EF2839F05F3F41F481E090E04F3FD1
-:1049700031F003C081E090E002C080E090E080FD73
-:1049800003C081E0862702C080E090E080FF2EC057
-:104990008091DB022091DC0236E013C090E0389F6A
-:1049A000F001399FF00D1124E555FD4F718157132A
-:1049B00006C07081471303C07281671317C0019648
-:1049C00087708213EBCF12C19F7059F0882309F4CE
-:1049D0000BC107C09F7029F0F8019581907F09F401
-:1049E00003C1805E883008F4FFC0D2C0662309F49A
-:1049F000FBC08091AA0281608093AA02F5C0E513F2
-:104A000008C0741306C0611104C0D80115968C93B8
-:104A10009DC04D875E878D859E856A8B0E945A2337
-:104A20006A89882309F4B4C0662309F4B1C02091CF
-:104A3000AA02822F82958F7090E002970CF4C6C074
-:104A40008091A5029091A60298878F831986FB8694
-:104A5000EA862C87CE01079646C08091AA02982F3D
-:104A6000907F59F47E2DF98AE88A89890E947F23F4
-:104A700085EA92E00E948E1F95C0E51311C0741361
-:104A80000FC061110DC0F8018583C8010E948E1FFF
-:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F
-:104AA0004D875E878D859E856A8B0E945A236A8911
-:104AB000882309F46DC0662309F46AC02091AA0214
-:104AC000822F82958F7090E002970CF47FC08091C6
-:104AD000A5029091A6029A8389831B82FD82EC82B3
-:104AE0002E83CE0101960E948E1F70C0E816F90633
-:104AF00028F09701281B390BC90104C080959095B7
-:104B00008E0D9F1D883C910508F046C0662309F470
-:104B10003FC0E51330C074132EC02091AA0220FDBF
-:104B200021C0322F32953F70832F90E00097D1F053
-:104B3000D80115962C9315970F9741F0832F8F5F0F
-:104B40008295807F2F70282B15962C93C8010E9488
-:104B50008E1F86E0F801A5EAB2E001900D928A95D9
-:104B6000E1F73EC086E0F801A5EAB2E001900D92BF
-:104B70008A95E1F737C04D875E878D859E850E94B7
-:104B80005A23811123C08091AA0281608093AA02D6
-:104B9000C8010E948E1F26C07E2DF98AE88A898965
-:104BA0000E947F23E5EAF2E086E0DF011D928A950C
-:104BB000E9F70E94BF2318C0662351F34D875E8733
-:104BC0008D859E850E945A23882311F386E0F80183
-:104BD000A5EAB2E001900D928A95E1F70E94CD23FB
-:104BE0000E94BF2381E014C080E012C04D875E8721
-:104BF0008D859E850E943928292F22952F7030E0BF
-:104C0000223031050CF4E0CE243031050CF6E2CE32
-:104C100062960FB6F894DEBF0FBECDBFDF91CF9185
-:104C20001F910F91FF90EF9008951F93CF93DF9303
-:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51
-:104C40004F83588769877A878B879C87CE01079621
-:104C50000E9445248823D9F02F8138858A859B8539
-:104C6000892B39F03F3F19F080E090E004C02F3FDE
-:104C7000D9F781E090E0892B09F06DC04F8158850C
-:104C800069857A858B859C850E948E2364C086E029
-:104C9000FE013796DE01119601900D928A95E1F79B
-:104CA000FF81E8854A855B854115510539F0EF3F65
-:104CB00041F481E090E0FF3F31F003C081E090E0FB
-:104CC00002C080E090E080FD46C02091DC0230E030
-:104CD000C9010196877099276091DB0270E0861701
-:104CE000970709F440C0F983EA835D834C8396E01B
-:104CF000929FD001939FB00D1124A555BD4FFE0189
-:104D0000319601900D929A95E1F78093DC020E9412
-:104D10009E2321C0189FC001112485559D4F0E94DC
-:104D20004524882371F1E091DB021E9FF0011124DC
-:104D3000E555FD4F40815181628173818481958168
-:104D40000E948E238091DB0290E001968770992764
-:104D50008093DB0201C016E08091DB029091DC02BF
-:104D60008913D8CF0EC00E9456231092DC021092F5
-:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1
-:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1
-:104D9000CF911F910895DF92EF92FF920F931F938F
-:104DA000CF93DF93EC01009709F46EC0D12CEE2471
-:104DB000E394F12C8E010F5F1F4FFE018491843725
-:104DC00048F4843008F04CC0813071F0823009F032
-:104DD0005BC01EC0853709F43FC080F1982F9458FE
-:104DE000903708F051C03FC02296F8018491982F67
-:104DF000905E983050F48770FE2D01C0FF0F8A95A9
-:104E0000EAF78F2F0E94CF2813C00E94671E2FC081
-:104E10002296F8018491982F905E983060F4877004
-:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B
-:104E30000E94F8281CC00E942F1F19C02296F8015A
-:104E4000049107C08FE99FE00197F1F700C00000CF
-:104E500001500111F7CF0BC02296F801D49007C082
-:104E60000E94671E03C08F770E942F1FE8018D2DBF
-:104E700007C08150EFE9FFE03197F1F700C0000073
-:104E8000882309F497CFF5CFDF91CF911F910F9130
-:104E9000FF90EF90DF9008956093E1027093E2023B
-:104EA0008093E3029093E4020C9444236093DD0228
-:104EB0007093DE028093DF029093E0020C9444230F
-:104EC00008950C944C270F931F930091E1021091C9
-:104ED000E2022091E3023091E402602B712B822BDD
-:104EE000932B1F910F910C944C270F931F930091BC
-:104EF000E1021091E2022091E3023091E40260238A
-:104F00007123822393231F910F910C944C270F93AD
-:104F10001F930091E1021091E2022091E30230918F
-:104F2000E40260277127822793271F910F910C9429
-:104F30004C2760E070E0CB010C94562741E050E034
-:104F400060E070E004C0440F551F661F771F8A950C
-:104F5000D2F7CB01BA010C94562741E050E060E053
-:104F600070E004C0440F551F661F771F8A95D2F763
-:104F70008091DD029091DE02A091DF02B091E0020B
-:104F8000482B592B6A2B7B2BCB01BA010C9456274B
-:104F900041E050E060E070E004C0440F551F661F20
-:104FA000771F8A95D2F740955095609570958091BE
-:104FB000DD029091DE02A091DF02B091E002482371
-:104FC00059236A237B23CB01BA010C94562741E075
-:104FD00050E060E070E004C0440F551F661F771F6B
-:104FE0008A95D2F78091DD029091DE02A091DF02D6
-:104FF000B091E002482759276A277B27CB01BA01E5
-:105000000C9456270F931F930091DD021091DE023E
-:105010002091DF023091E002602B712B822B932BC9
-:105020001F910F910C9456270F931F930091DD024F
-:105030001091DE022091DF023091E00260237123A3
-:10504000822393231F910F910C9456270F931F9344
-:105050000091DD021091DE022091DF023091E0022A
-:1050600060277127822793271F910F910C94562751
-:105070000895CF92DF92EF92FF920F931F93CF93F9
-:10508000DF93EC01C090E102D090E202E090E302F5
-:10509000F090E4028091DD029091DE02A091DF02A7
-:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF
-:1050B000B701A601002E04C07695679557954795D0
-:1050C0000A94D2F740FF08C0BE01802F0E947104ED
-:1050D0008130910509F007C00150110948F7BE0160
-:1050E00080E00E947104DF91CF911F910F91FF909A
-:1050F000EF90DF90CF90089540918B0150918C01FB
-:1051000020E030E09FEFFA01E20FF31F62816817A1
-:10511000A1F09F3F19F4611101C0922F2F5F3F4F03
-:105120002630310581F707C0FA01E90FF11D97FD1F
-:10513000FA95828308959F3FB9F7089540918B01B6
-:1051400050918C0120E030E0FA01E20FF31F9281D0
-:10515000981301C012822F5F3F4F26303105A1F70F
-:10516000089581E090E0E0918B01F0918C01E80FCF
-:10517000F91F1082019688309105A9F70895909142
-:10518000E502982B9093E502089580959091E502B1
-:1051900098239093E50208951092E5020895909166
-:1051A000E602982B9093E602089580959091E6028E
-:1051B00098239093E60208951092E6020895809352
-:1051C000E70208951092E702089540918B015091F3
-:1051D0008C0120E030E080E0FA01E20FF31F9181C2
-:1051E00091118F5F2F5F3F4F27303105A9F7089549
-:1051F000E0918B01F0918C018091E5028083E09138
-:105200008B01F0918C0180819091E602892B808343
-:105210009091E702992361F0E0918B01F0918C016C
-:105220008081892B80830E94E52881110E94E228D9
-:1052300080918B0190918C010C94311D8091FA0327
-:10524000843021F11092F10220E488E190E00FB661
-:10525000F894A895809360000FBE2093600080E0D2
-:105260000E94590383B7817F846083BF83B78160C5
-:1052700083BF7894889583B78E7F83BF88E10FB60C
-:10528000F89480936000109260000FBE0895089516
-:105290000895CF9380E00E9459030E9447290E94FD
-:1052A000BD070E944829C0E08C2F0E941109892B5C
-:1052B00029F4CF5FC530C1F780E001C081E0CF9114
-:1052C00008950E94562380E00E9459030E941130E5
-:1052D0000E94251D0C94E7051F920F920FB60F92A6
-:1052E00011248F939F93AF93BF938091F10281110B
-:1052F00013C08091F2029091F302A091F402B09158
-:10530000F5024196A11DB11D8093F2029093F30224
-:10531000A093F402B093F502BF91AF919F918F914A
-:105320000F900FBE0F901F90189582E084BD93E000
-:1053300095BD9AEF97BD80936E0008958FB7F8944E
-:105340004091F2025091F3026091F4027091F502E3
-:105350008FBFCA010895CF92DF92EF92FF920F9311
-:105360001F932FB7F8944091F2025091F30260918D
-:10537000F4027091F5022FBF6A017B01EE24FF2435
-:105380008C0120E030E0C016D106E206F30620F0E2
-:105390009A01281B390B05C09C0120953095240FDC
-:1053A000351FC9011F910F91FF90EF90DF90CF90B3
-:1053B00008951F920F920FB60F9211248F939F930F
-:1053C000AF93BF938091F2029091F302A091F40207
-:1053D000B091F5020196A11DB11D8093F202909348
-:1053E000F302A093F402B093F502BF91AF919F91A5
-:1053F0008F910F900FBE0F901F9018950E946D1601
-:10540000F8942FEF87EA91E6215080409040E1F731
-:1054100000C0000087E090EBDC01809304049093CF
-:105420000504A0930604B09307042CE088E190E003
-:105430000FB6F894A895809360000FBE209360008B
-:10544000FFCFCF92DF92EF92FF920F931F93CF93F4
-:10545000DF93C82ED12C01E010E08D2D0E941109A0
-:105460007C01C0E0D0E098010C2E02C0220F331F57
-:105470000A94E2F72E213F21232B29F42196CC30E8
-:10548000D10589F708C06C2F7D2D80E00E944C0467
-:10549000C812F4CF06C0D39485E0D812DECF80E0E6
-:1054A00001C081E0DF91CF911F910F91FF90EF90AC
-:1054B000DF90CF900895CF93C82F8CE20E94212ACD
-:1054C000882321F08C2FCF910C94212A80E0CF915A
-:1054D0000895CF930E94AC2B811102C00E948D2BA6
-:1054E000C5E608C00E94BD078FE39CE90197F1F76C
-:1054F00000C00000C150B1F789E20E945B2A81110F
-:105500000AC18AE20E945B2A81110E948D2B85E0EC
-:105510000E945B2A81110E94FE290E94B72B809372
-:10552000F00287E00E945B2A882399F18BE10E94B8
-:105530005B2A882351F09091F00291FB882780F933
-:1055400021E0822780FB91F922C08EE00E945B2A35
-:10555000882351F09091F00292FB882780F921E096
-:10556000822780FB92F913C080E10E945B2A909110
-:10557000F002882341F093FB882780F921E08227FD
-:1055800080FB93F904C0892F809580FB90F990935C
-:10559000F0028091F0020E94BB2B0E94C92B8093E5
-:1055A000010380EE0E945B2A882341F08091010371
-:1055B000982F909590FB80F98093010389E30E94D6
-:1055C0005B2A882359F09091010391FB882780F989
-:1055D00021E0822780FB91F99093010382EE0E94E3
-:1055E0005B2A882359F09091010392FB882780F968
-:1055F00021E0822780FB92F99093010386EE0E94BE
-:105600005B2A882359F09091010393FB882780F946
-:1056100021E0822780FB93F99093010383EE0E949F
-:105620005B2A882359F09091010394FB882780F925
-:1056300021E0822780FB94F99093010385E30E9487
-:105640005B2A882359F09091010395FB882780F904
-:1056500021E0822780FB95F99093010381E30E946A
-:105660005B2A882359F09091010396FB882780F9E3
-:1056700021E0822780FB96F99093010381E10E944B
-:105680005B2A882359F09091010397FB882780F9C2
-:1056900021E0822780FB97F9909301038091010319
-:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8
-:1056B0005B2A8111C2608FE10E945B2A8111C46064
-:1056C00080E20E945B2A8111C86081E20E945B2A0D
-:1056D0008111C06182E20E945B2A8111C06283E273
-:1056E0000E945B2A8111C06484E20E945B2A8823A5
-:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B
-:105700006C2F03C00E94C02B682F70E080E090E0F7
-:10571000CF910C946127CF9108956DEE7EEF80E0DC
-:1057200090E00E94783460E082E090E00E946A3469
-:1057300060E083E090E00E946A3460E084E090E002
-:105740000E946A3460E085E090E00E946A3460E084
-:1057500086E090E00C946A3480E090E00E9464342B
-:1057600021E08D3E9E4F09F020E0822F089582E0D7
-:1057700090E00C945C34682F82E090E00C946A34E2
-:1057800083E090E00C945C34682F83E090E00C940C
-:105790006A3484E090E00C945C34682F84E090E0FC
-:1057A0000C946A3486E090E00C945C34682F86E0B8
-:1057B00090E00C946A348091FE0280FF0BC06091EF
-:1057C000900185E0689FB0011124759567957595E6
-:1057D00067952AC081FF09C06091900185E0689FAC
-:1057E000B0011124759567951FC082FF07C06091B5
-:1057F000900185E0689FB001112416C04091F80225
-:105800004423C9F060918F01461788F720919001D9
-:1058100085E0289F90011124429FC001439F900D75
-:10582000112470E00E9448346038710540F461151D
-:10583000710539F002C065E070E0862F08958FE7AA
-:10584000089581E008958091FE0280FF08C0609174
-:105850008E0170E0759567957595679521C081FFFC
-:1058600006C060918E0170E07595679519C082FF42
-:1058700004C060918E0170E010C08091F80288230E
-:10588000C1F060918D018617A0F790918E01989FCD
-:10589000C001112470E00E9448346038710528F47A
-:1058A0006115710521F0862F08958FE7089581E035
-:1058B000089561E070E0F4CF803F21F40E94DB2B7B
-:1058C000819504C0813F29F40E94DB2B8093FB0269
-:1058D0000895823F21F40E94DB2B819504C0833F11
-:1058E00029F40E94DB2B8093FA020895893F19F472
-:1058F0000E94232C05C08A3F31F40E94232C8195FD
-:105900008093FC0208958B3F21F40E94232C819503
-:1059100004C08C3F29F40E94232C8093FD0208953B
-:10592000843F21F48091F902816017C0853F21F402
-:105930008091F902826011C0863F21F48091F902C2
-:1059400084600BC0873F21F48091F902886005C014
-:10595000883F31F48091F90280618093F9020895C3
-:105960008D3F21F48091FE0281600BC08E3F21F4B7
-:105970008091FE02826005C08F3F29F48091FE0273
-:1059800084608093FE020895803F29F48091FB0299
-:1059900087FF6EC007C0813F41F48091FB0218165B
-:1059A0000CF066C01092FB0263C09091FA02823F35
-:1059B00019F497FF5DC005C0833F31F419160CF050
-:1059C00057C01092FA0254C0893F31F48091FC0212
-:1059D00018160CF04DC006C08A3F39F48091FC02C5
-:1059E00087FF46C01092FC0243C08B3F29F4809190
-:1059F000FD0287FF3DC006C08C3F39F48091FD0257
-:105A00001816B4F51092FD0233C0843F21F4809142
-:105A1000F9028E7F05C0853F31F48091F9028D7FB8
-:105A20008093F90225C0863F21F48091F9028B7F93
-:105A3000F7CF873F21F48091F902877FF1CF883F2C
-:105A400021F48091F9028F7EEBCF8D3F21F480917C
-:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F
-:105A600005C08F3F29F48091FE028B7F8093FE0258
-:105A70008091FA0281110EC08091FB0281110AC04F
-:105A80008091FC02811106C08091FD02811102C04B
-:105A90001092F802089589EF92E00E943C1D0E9446
-:105AA0009E299093F7028093F6020895CF938091F8
-:105AB000F6029091F7020E94AB294091F80244232C
-:105AC00021F02091910130E006C0209192015AE02E
-:105AD000259F900111248217930708F486C08091B6
-:105AE000FA0281110DC09091FB02911109C09091B1
-:105AF000FC02911105C09091FD02992309F475C033
-:105B00004F3F19F04F5F4093F802181624F40E949B
-:105B1000DB2B8093FA028091FA0287FF05C00E9476
-:105B2000DB2B81958093FA028091FB02181624F4F6
-:105B30000E94DB2B8093FB028091FB0287FF05C054
-:105B40000E94DB2B81958093FB026091FA02662311
-:105B500039F1C091FB02CC2319F1772767FD7095CD
-:105B6000872F972F0E94AC3123E333E343E35FE3B6
-:105B70000E9460320E9479316093FA026C2F77277D
-:105B800067FD7095872F972F0E94AC3123E333E395
-:105B900043E35FE30E9460320E9479316093FB022D
-:105BA0008091FC02181624F40E94232C8093FC029E
-:105BB0008091FC0287FF05C00E94232C8195809371
-:105BC000FC028091FD02181624F40E94232C80937D
-:105BD000FD028091FD0287FF05C00E94232C819564
-:105BE0008093FD02CF910C944B2DCF910895E9EF56
-:105BF000F2E085E0DF011D928A95E9F71092F80244
-:105C00001092FE020895833089F130F4813061F002
-:105C1000823009F06EC019C0853009F449C0B8F16E
-:105C2000863009F066C055C020919201862F90E021
-:105C3000820F911D8F3F910520F4620F60939201B6
-:105C400008958FEF80939201089520919101862FFE
-:105C500090E0820F911D8F3F910520F4620F6093B9
-:105C6000910108958FEF8093910108952091900103
-:105C7000862F90E0820F911D8F3F910520F4620FD7
-:105C80006093900108958FEF809390010895209183
-:105C90008F01862F90E0820F911D8F3F910520F498
-:105CA000620F60938F0108958FEF80938F010895A5
-:105CB00020918E01862F90E0820F911D8F3F9105DC
-:105CC00020F4620F60938E0108958FEF80938E0110
-:105CD000089520918D01862F90E0820F911D8F3FB6
-:105CE000910520F4620F60938D0108958FEF8093EA
-:105CF0008D010895833021F130F4813059F08230E4
-:105D000009F049C012C0853089F128F1863009F0C8
-:105D100042C037C080919201681720F4861B80939F
-:105D2000920108951092920108958091910168174F
-:105D300020F4861B8093910108951092910108959B
-:105D400080919001681720F4861B8093900108953C
-:105D500010929001089580918F01681720F4861B9E
-:105D600080938F01089510928F01089580918E0184
-:105D7000681720F4861B80938E01089510928E017F
-:105D8000089580918D01681720F4861B80938D0102
-:105D9000089510928D01089541E050E060E070E0B8
-:105DA00004C0440F551F661F771F8A95D2F7CB0199
-:105DB000BA010E9461270C945623873200F58E3178
-:105DC00008F086C08E3009F466C060F4873009F4AC
-:105DD0004DC018F4863049F531C0883041F18B3020
-:105DE00021F57BC0863109F478C018F48031E9F4DC
-:105DF0005CC0893109F471C08B31B9F442C0883379
-:105E000009F46BC048F4893209F460C0853309F4A1
-:105E10005DC0873251F45AC0833409F457C018F476
-:105E20008A3318F057C0883499F080E008950E94B2
-:105E3000B72B0E94C92B0E94D22B4FC08091F00239
-:105E4000817F8E7F8093F00281E08093FF0208952E
-:105E50000E9456232FEF83ED90E321508040904025
-:105E6000E1F700C000000E94FE2937C08091F002D7
-:105E700080FF03C0817F8E7F01C081608093F0022C
-:105E80002CC09091F00291FB882780F921E08227B5
-:105E900080FB91F913C09091F00292FB882780F962
-:105EA00021E0822780FB92F909C09091F00293FBD8
-:105EB000882780F921E0822780FB93F99093F002F4
-:105EC000882359F091609093F00207C080E003C0EE
-:105ED0008D5101C089530E94CC2E81E0089580E04D
-:105EE000089580E00895CF93C82F8091FF028130FC
-:105EF00071F020F0823009F089C037C0A0918B0189
-:105F0000B0918C018C91823209F082C007C0A091BF
-:105F10008B01B0918C018C91823249F48C2F0E94BC
-:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64
-:105F30000E94712F811115C0C43169F030F4CB304B
-:105F400081F0C03109F068C009C0C93221F0C833FE
-:105F500009F062C006C01092FF025EC082E080932A
-:105F6000FF0281E090E081705AC0C932C9F060F44C
-:105F7000C431B1F020F4C73009F04CC034C0CE5168
-:105F8000C63008F047C017C0CE3439F120F4CB3406
-:105F900009F040C01CC0C135C1F0C235D9F513C0ED
-:105FA00080910003882319F01092000333C081E030
-:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161
-:105FC0008093000327C061E003C061E007C06AE07E
-:105FD000809100030E94032E1DC06AE0809100039F
-:105FE0000E947A2E17C08EE18093920182E3809303
-:105FF00091018AE08093900184E180938F0188E091
-:1060000080938E0188E280938D0104C01092FF027C
-:1060100080E005C081E003C080E090E0A4CFCF9194
-:1060200008950E94AC2B811102C00E948D2B0E940A
-:10603000D22B8093030480FF02C0869501C080E0CC
-:106040000C94590380910304982F9695292F30E0E2
-:10605000233031054CF49F5F990F8170892B81604B
-:10606000809303040E94D62B8091030486950C94A0
-:10607000590380910304982F969591F09158990FA8
-:106080008170892B809303048E7F91E009F490E066
-:106090008091030490FB80F9809303040E94D62B27
-:1060A0008091030486950C94590380910304982FE2
-:1060B000909590FB80F9809303040E94D62B8091E9
-:1060C000030480FF02C0869501C080E00C94590350
-:1060D00030910304232F26952F5F2F77822F90E096
-:1060E000317004972CF4220F232B2093030402C059
-:1060F0003093030480910304282F2E7F91E009F44C
-:1061000090E090FB80F9809303040E94D62B80914D
-:10611000030486950C94590320910304922F9695BD
-:106120009827990F822F8170892B809303048E7F8B
-:1061300091E009F490E08091030490FB80F9809352
-:1061400003040E94D62B8091030486950C94590376
-:106150005058BB27AA270ED075C166D130F06BD13D
-:1061600020F031F49F3F11F41EF45BC10EF4E09572
-:10617000E7FB51C1E92F77D180F3BA1762077307A4
-:106180008407950718F071F49EF58FC10EF4E09521
-:106190000B2EBA2FA02D0B01B90190010C01CA01E1
-:1061A000A0011124FF27591B99F0593F50F4503E8C
-:1061B00068F11A16F040A22F232F342F4427585F7E
-:1061C000F3CF469537952795A795F0405395C9F796
-:1061D0007EF41F16BA0B620B730B840BBAF091504E
-:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED
-:1061F000BA0F621F731F841F48F4879577956795C0
-:10620000B795F7959E3F08F0B3CF9395880F08F0A8
-:106210009927EE0F979587950895D9D008F481E0D6
-:1062200008950CD00FC107D140F0FED030F021F41A
-:106230005F3F19F0F0C0511139C1F3C014D198F388
-:106240009923C9F35523B1F3951B550BBB27AA27F7
-:1062500062177307840738F09F5F5F4F220F331F69
-:10626000441FAA1FA9F333D00E2E3AF0E0E830D035
-:1062700091505040E695001CCAF729D0FE2F27D038
-:10628000660F771F881FBB1F261737074807AB0706
-:10629000B0E809F0BB0B802DBF01FF2793585F4F7B
-:1062A0002AF09E3F510568F0B6C000C15F3FECF395
-:1062B000983EDCF3869577956795B795F7959F5F40
-:1062C000C9F7880F911D9695879597F90895E1E094
-:1062D000660F771F881FBB1F621773078407BA07F3
-:1062E00020F0621B730B840BBA0BEE1F88F7E0954E
-:1062F000089504D06894B111D9C00895BCD088F035
-:106300009F5790F0B92F9927B751A0F0D1F0660FA1
-:10631000771F881F991F1AF0BA95C9F712C0B130BC
-:1063200081F0C3D0B1E00895C0C0672F782F8827CF
-:10633000B85F39F0B93FCCF3869577956795B395FB
-:10634000D9F73EF490958095709561957F4F8F4F6A
-:106350009F4F0895E89409C097FB3EF4909580956F
-:10636000709561957F4F8F4F9F4F9923A9F0F92F1B
-:1063700096E9BB279395F695879577956795B79599
-:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F
-:106390007F4F8F4F9F4F16C0882311F096E911C091
-:1063A000772321F09EE8872F762F05C0662371F0B2
-:1063B00096E8862F70E060E02AF09A95660F771FC6
-:1063C000881FDAF7880F9695879597F90895990FA2
-:1063D0000008550FAA0BE0E8FEEF16161706E807AF
-:1063E000F907C0F012161306E407F50798F0621BD0
-:1063F000730B840B950B39F40A2661F0232B242BA5
-:10640000252B21F408950A2609F4A140A6958FEFC3
-:10641000811D811D089597F99F6780E870E060E015
-:1064200008959FEF80EC089500240A94161617062D
-:1064300018060906089500240A9412161306140675
-:1064400005060895092E0394000C11F4882352F0D8
-:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90
-:106460008F4F9F4F089557FD9058440F551F59F077
-:106470005F3F71F04795880F97FB991F61F09F3F31
-:1064800079F087950895121613061406551FF2CF5A
-:106490004695F1DF08C0161617061806991FF1CFAA
-:1064A00086957105610508940895E894BB276627D1
-:1064B0007727CB0197F908958ADF08F48FEF0895C5
-:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C
-:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7
-:1064E000950F50E0551F629FF001729FBB27F00D82
-:1064F000B11D639FAA27F00DB11DAA1F649F6627D7
-:10650000B00DA11D661F829F2227B00DA11D621F25
-:10651000739FB00DA11D621F839FA00D611D221FDF
-:10652000749F3327A00D611D231F849F600D211DC3
-:10653000822F762F6A2F11249F5750408AF0E1F066
-:1065400088234AF0EE0FFF1FBB1F661F771F881FAF
-:1065500091505040A9F79E3F510570F05CCFA6CFF7
-:106560005F3FECF3983EDCF3869577956795B7959A
-:10657000F795E7959F5FC1F7FE2B880F911D9695C4
-:10658000879597F90895FA01EE0FFF1F30962105C0
-:10659000310599F16115710561F48038BFE39B07FE
-:1065A00049F168949038810561F08038BFEF9B070E
-:1065B00041F0992342F5FF3FE1053105210511F135
-:1065C000E8940894E795D901AA2329F4AB2FBE2FAC
-:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD
-:1065E00050F019F0FF3A38F49F779F930CD00F903A
-:1065F00007FC905808953EF014CF60E070E080E80A
-:106600009FE308954FE79F775F934F933F932F93B7
-:106610009ED02F913F914F915F9152DF05C019F4A9
-:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784
-:1066300007F80F92E8942BE33AEA48EB5FE74EDF66
-:106640000F920F920F924DB75EB70F92C0D0ECEA47
-:10665000F0E016D04F915F91EF91FF91E595EE1F1D
-:10666000FF1F49F0FE57E0684427EE0F441FFA95DC
-:10667000E1F74195550B32D00F9007FE26C00895E3
-:10668000DF93CF931F930F93FF92EF92DF927B01E3
-:106690008C01689405C0DA2EEF011EDFFE01E8943C
-:1066A000A5912591359145915591AEF3EF0162DDAC
-:1066B000FE019701A801DA9479F7DF90EF90FF903F
-:1066C0000F911F91CF91DF9108959B01AC0160E084
-:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1
-:1066E0009923D9F3940F511DBBF39150504094F06E
-:1066F00059F0882332F0660F771F881F9150504061
-:10670000C1F79E3F510544F7880F911D96958795D7
-:1067100097F908955F3FACF0983E9CF0BB278695B3
-:1067200077956795B79508F4B1609395C1F7BB0F5E
-:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87
-:10674000E3CFB4CE0EF076C06CCE689464CE93DE08
-:10675000C8F39923D1F3C6F3DF93CF931F930F931D
-:10676000FF92C92FDD2788232AF02197660F771F14
-:10677000881FDAF720E030E040E85FEB9FE38839DC
-:1067800020F0803E30F021968F77E3DCE4EDF0E0FE
-:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F
-:1067A000FB2E6F5771097595771F880B990BD4DDF8
-:1067B00028E132E741E35FE38FDEAF2D9801AE01C0
-:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166
-:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785
-:1067E0003327442750781FC0B75188F4AB2F0024BB
-:1067F000469537952795011CA395D2F3002069F0A3
-:10680000220F331F441FB395DAF30DD0A1CC6130B2
-:106810007105A0E88A07B94630F49B01AC016627F0
-:10682000772788279078309621F020833183428320
-:10683000538308959F3F31F0915020F487957795C9
-:106840006795B795880F911D9695879597F9089547
-:10685000991B79E004C0991F961708F0961B881FB2
-:106860007A95C9F780950895AA1BBB1B51E107C013
-:10687000AA1FBB1FA617B70710F0A61BB70B881FD0
-:10688000991F5A95A9F780959095BC01CD0108955F
-:1068900097FB072E16F4009407D077FD09D00E94CD
-:1068A000343407FC05D03EF4909581959F4F0895B0
-:1068B000709561957F4F0895F999FECF92BD81BD86
-:1068C000F89A992780B50895A8E1B0E042E050E039
-:1068D0000C947F34262FF999FECF1FBA92BD81BD4B
-:1068E00020BD0FB6F894FA9AF99A0FBE0196089552
-:1068F0000E946A34272F0C946B34DC01CB01FC011D
-:10690000F999FECF06C0F2BDE1BDF89A319600B408
-:0E6910000D9241505040B8F70895F894FFCF13
-:10691E0055D0A44600001644000000000000484276
-:10692E0061978A460000C8430000000000004842FC
-:10693E0055D024460000C843000000000000484225
-:10694E0000005C460000C843000000000000484202
-:10695E0061978A4600007A4455D0A4460000C84389
-:10696E00000000000000484200005C460000C843E2
-:10697E00000000000000484255D024460000164496
-:10698E000507000C058540000001064000000100CF
-:10699E0091102111FD10C810941001E8022808145E
-:1069AE000A321E42004500250026004300610060A9
-:1069BE000020003700640065006600670044004652
-:1069CE000024004700000002000400050007000933
-:1069DE00000B000C000E0010001100130015001724
-:1069EE000018001A001C001D001F002100230024A7
-:1069FE00002600280029002B002D002F0030003229
-:106A0E000034003500370039003B00F6030F042830
-:106A1E0004410469051C05E604C6043F4D362002F8
-:106A2E000302000001000101010101000101010248
-:086A3E00030405060708090026
-:00000001FF
diff --git a/keyboard/preonic/preonic_pcb_r1.hex b/keyboard/preonic/preonic_pcb_r1.hex new file mode 100644 index 0000000000..eda1b1979f --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1.hex @@ -0,0 +1,1628 @@ +:100000000C947C050C94C0050C94C0050C94C005A0
+:100010000C94C0050C94C0050C94C0050C94C0054C
+:100020000C94C0050C94C0050C94C7180C94991935
+:100030000C94B2270C94C0050C94C0050C94C00518
+:100040000C94C0050C94C0050C94C0050C94C0051C
+:100050000C94C0050C941A280C94C0050C94C0058F
+:100060000C94C0050C94C0050C94C0050C94C005FC
+:100070000C94C0050C94C0050C94C0050C94C005EC
+:100080000C94E50E0C94C0050C94C0050C94C005AE
+:100090000C94C0050C94C0050C94C0050C94C005CC
+:1000A0000C94C0050C94C0050C94C0051B062B06CF
+:1000B0003D064D06530662066E06730680068806E8
+:1000C00098069D06061A281A161B281A161B6D1A62
+:1000D000901A161BE51AF81AFB1DFB1D381E381E58
+:1000E000921ED01E48214821E91E4821EA1FEA1F1E
+:1000F000AD20C4204821332107634236B79BD8A7DF
+:100100001A39685618AEBAAB558C1D3CB7CC57633C
+:10011000BD6DEDFD753EF6177231BF000000803FEA
+:1001200008000000BE922449123EABAAAA2ABECD06
+:10013000CCCC4C3E00000080BEABAAAAAA3E000078
+:100140000000BF000000803F000000000008417870
+:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7
+:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F
+:1001700001C4FF7F3F000000000035001E001F008B
+:100180002000210022002300240025002600270053
+:100190002A002B0014001A000800150017001C008C
+:1001A00018000C00120013004C0029000400160077
+:1001B000070009000A000B000D000E000F003300BD
+:1001C0003400E1001D001B000600190005001100AD
+:1001D000100036003700380028000530E000E2004B
+:1001E000E30003302C002C0004305000510052007A
+:1001F0004F0035001E001F002000210022002300B8
+:1002000024002500260027002A002B0014001A00D5
+:10021000090013000A000D000F0018001C00330035
+:100220004C002900040015001600170007000B0001
+:10023000110008000C0012003400E1001D001B003A
+:100240000600190005000E001000360037003800C7
+:1002500028000530E000E200E30003302C002C0011
+:1002600004305000510052004F0035001E001F00A6
+:100270002000210022002300240025002600270062
+:100280002A002B0034003600370013001C00090040
+:100290000A00060015000F004C002900040012009F
+:1002A000080018000C0007000B00170011001600D2
+:1002B0003800E100330014000D000E001B000500A3
+:1002C00010001A0019001D0028000530E000E200AF
+:1002D000E30003302C002C00043050005100520089
+:1002E0004F0035021E021F022002210222022302B9
+:1002F00024022502260227022A0035021E021F02BE
+:1003000020022102220223022402250226022702C1
+:100310004C004C003A003B003C003D003E003F00DA
+:100320002D022E022F023002310201004000410056
+:1003300042004300440045000100010001000100AB
+:1003400001000100010001000100010001000100A5
+:100350000100AB00AA00A900AE0035001E001F007E
+:100360002000210022002300240025002600270071
+:100370002A0035001E001F0020002100220023005B
+:1003800024002500260027004C004C003A003B00CA
+:100390003C003D003E003F002D002E002F003000AD
+:1003A000310001004000410042004300440045008C
+:1003B0000100010001000100010001000100010035
+:1003C00001000100010001000100AB00AA00A9002A
+:1003D000AE0000000000000000000000000000006F
+:1003E000000000000000000000000000000000000D
+:1003F00000000000000000000000000000000000FD
+:1004000000000000000000000000000000000000EC
+:1004100000000000000000000000000000000000DC
+:1004200000000000000000000000000000000000CC
+:100430000000000000000000000003300000000089
+:100440000430000000000000000000000000000078
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C0000000000000000000000000000000000029
+:1007D0000000000000000000000000000000000019
+:1007E0000000000000000000000000000000000009
+:1007F00000000000000000000000000000000000F9
+:1008000000000000000000000000000000000000E8
+:1008100000000000000000000000000000000000D8
+:1008200000000000000000000000000000000000C8
+:1008300000000000000000000000000000000000B8
+:1008400000000000000000000000000000000000A8
+:100850000000000000000000000000000000000098
+:100860000000000000000000000000000000000088
+:100870000000000000000000000000000000000078
+:100880000000000000000000000000000000000068
+:100890000000000000000000000000000000000058
+:1008A0000000000000000000000000000000000048
+:1008B0000000000000000000000000000000000038
+:1008C0000000000000000000000000000000000028
+:1008D0000000000000000000000000000000000018
+:1008E0000000000000000000000000000000000008
+:1008F000000000000000000000003A003B003C0047
+:100900003D003E003F0040004100420043004400E3
+:10091000450001000050010001000100010001003C
+:1009200001000100010001004C0001000100010074
+:1009300007300630135012500030013002300100F1
+:10094000010001000B300A300930083001000100BD
+:10095000010001000100010001000100010001008F
+:10096000010001000100010001000100010001007F
+:1009700001002A0354006800650020005000720046
+:1009800065006F006E006900630020004B00650089
+:10099000790062006F0061007200640000002C03A7
+:1009A0004F007200740068006F006C0069006E00F8
+:1009B00065006100720020004B0065007900620054
+:1009C0006F006100720064007300000004030904FA
+:1009D00009025400030100A0FA0904000001030108
+:1009E0000100092111010001223F000705810308D0
+:1009F000000A09040100010301020009211101009C
+:100A000001224D000705820308000A0904020001C3
+:100A100003000000092111010001223600070583AF
+:100A20000308000A1201100100000008EDFE6160D9
+:100A300001000102000105010980A10185021601E2
+:100A40000026B7001A01002AB70075109501810031
+:100A5000C0050C0901A1018503160100269C021A9C
+:100A600001002A9C02751095018100C00501090250
+:100A7000A1010901A1000509190129051500250198
+:100A80009505750181029501750381010501093004
+:100A900009311581257F9502750881060938158170
+:100AA000257F950175088106050C0A3802158125F8
+:100AB0007F950175088106C0C005010906A10105E1
+:100AC0000719E029E71500250195087501810295B0
+:100AD0000175088101050819012905950575019120
+:100AE000029501750391010507190029FF150025DD
+:100AF000FF950675088100C011241FBECFEFDAE014
+:100B0000DEBFCDBF04B603FE24C08091F3039091F5
+:100B1000F403A091F503B091F6038730904BA74002
+:100B2000B04BB9F41092F3031092F4031092F50352
+:100B30001092F60314BE84B7877F84BF88E10FB696
+:100B4000F89480936000109260000FBEE0E0F8E33C
+:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2
+:100B60000D92A63FB107D9F713E0A6EFB2E001C09E
+:100B70001D92A33FB107E1F70E940D160C94D231EC
+:100B80000C940000279A2F988FEF9FEF9093870087
+:100B9000809386008AE08093800089E180938100C1
+:100BA0000C94092D282F81110BC080918000877F24
+:100BB0008093800010928D0010928C002F980895E1
+:100BC0002F9880918000886080938000233019F4F2
+:100BD0008FEF9FEF0FC083E090E0821B9109880F99
+:100BE000991F2FEF3FEFA90102C0569547958A95AF
+:100BF000E2F7CA0190938D0080938C000895CF9303
+:100C0000DF93EC010E94AE28BE0180E090E0DF910E
+:100C1000CF910C9428250F931F93462F50E04C3012
+:100C2000510508F098C0DC01FA01EA5AFF4F12960C
+:100C30008C910C949631882309F48DC000E010E06B
+:100C4000980140E064E070E089EC91E00E9463125A
+:100C500081E090E00FC0882309F47DC000E010E03F
+:100C6000980140E066E070E089E591E00E9463123F
+:100C700082E090E00E94FF056EC0882309F46BC0FB
+:100C800000E010E0980140E068E070E089E891E061
+:100C90000E94631284E090E0EDCF882311F083E09E
+:100CA00005C083E00CC0882349F084E00E94A5259C
+:100CB00040E164E083E00E94C90A4DC084E00E94E4
+:100CC000C625F6CF882331F085EE0E948F1C0E9446
+:100CD000602D41C085EE0E94571D3DC08823D9F18B
+:100CE0000E94F70D38C08823B1F10E94F00D00E09A
+:100CF00010E0980140E064E070E089EE91E029C0E6
+:100D0000882349F185E00E94C6250E94180E23C061
+:100D1000882309F100E010E0980140E068E070E00D
+:100D200089E191E00E94631285E00E94A52513C02D
+:100D3000882389F00E94F61204C0882361F00E9483
+:100D4000011300E010E0980140E068E070E089E104
+:100D500091E00E94631280E090E01F910F9108954E
+:100D60000F931F932FEF89EF90E021508040904028
+:100D7000E1F700C0000000E010E0980140E064E00E
+:100D800070E089EE91E00E9463121F910F91089527
+:100D9000CF92DF92EF92FF920F931F93CF93DF9347
+:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71
+:100DB000CDBF2091B30325FFC5C08C01FC019281FA
+:100DC00080910001992309F460C096E4E5E2F2E025
+:100DD000DE01A95BBF4F01900D929A95E1F7F801F2
+:100DE0009081E091F602F091F702E90FF11DEE0F0C
+:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F
+:100E00007181680F711D882777FD8095982F0E944A
+:100E1000A42E20E030E040E451E40E94092E6B0152
+:100E20007C01F801218185E090E0821B9109BC01E1
+:100E3000882777FD8095982F0E94A42E9B01AC01F6
+:100E4000C701B6010E94A12D9B01AC0160E070E0DA
+:100E500080E090E40E94173020E030E04CE551E45F
+:100E60000E94B42F4FE050E0C457DF4F0FB6F89404
+:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD
+:100E8000EF90DF90CF900C94031296E4E5E2F2E04D
+:100E9000DE01119601900D929A95E1F7F80190818B
+:100EA000E091F602F091F702E90FF11DEE0FFF1F3E
+:100EB00021E030E02C0F3D1FE20FF31F60817181B4
+:100EC000680F711D882777FD8095982F0E94A42EAA
+:100ED00020E030E040E451E40E94092E6B017C01E7
+:100EE000F801218185E090E0821B9109BC018827EF
+:100EF00077FD8095982F0E94A42E9B01AC01C7011D
+:100F0000B6010E94A12D9B01AC0160E070E080E081
+:100F100090E40E94173020E030E04CE551E40E945C
+:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E
+:100F3000DF91CF911F910F91FF90EF90DF90CF90B5
+:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4
+:100F5000CDBFDF91CF911F910F91FF90EF90DF9068
+:100F6000CF9008950F931F9300E010E0980140E0A8
+:100F700063E070E081E091E00E9463122FEF82E570
+:100F800097E0215080409040E1F700C000001F91A1
+:100F90000F91089508950E94C2056E9A769A0C9456
+:100FA000B0060C94CA070C94C8060895880F991FC0
+:100FB000FC01E650F040859194910895880F991FA7
+:100FC000FC01E658FE4F8591949108950F931F936D
+:100FD000CF93DF93EC01811520E49207A0F5C115B2
+:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80
+:100FF000D10508F0EEC1C83AD10578F4C53AD1055B
+:1010000008F074C0C130D10509F46DC008F4DEC128
+:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE
+:1010200070C0D4C1C11590E2D90708F0B9C0C1158C
+:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8
+:101040008E01106506C2C13080E5D80709F4BDC025
+:1010500068F5C13120E4D20709F4AEC050F4C031C4
+:1010600090E4D90708F0A5C0CF70DD278E01146D7C
+:10107000F0C1C33120E4D20709F4A4C008F49FC032
+:10108000C115D04509F0A2C10E946C210E94180E22
+:101090000E94B2079FEF24E38CE0915020408040F3
+:1010A000E1F700C000000E943F28D3C1C11520E62F
+:1010B000D20730F4C11581E5D80708F48CC02DC1E2
+:1010C000C11590E7D90708F481C1C11520E8D207FE
+:1010D00008F478C1C11580E9D80708F077C1DF703E
+:1010E0008E01106AB6C101E010E0B3C1C53AD10566
+:1010F00009F471C1C63AD10509F070C102E810E4E3
+:10110000A8C1C83AD10509F46CC1C93AD10509F49E
+:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9
+:1011200069C1CC3AD10509F468C1CD3AD10509F4B9
+:1011300067C1C03BD10509F466C1CE3AD10509F4B7
+:1011400065C1CF3AD10509F464C1C13BD10509F4A9
+:1011500063C1C23BD10509F462C1C33BD10509F4A7
+:1011600061C1C43BD10509F460C1C53BD10509F497
+:101170005FC1C63BD10509F45EC1C73BD10509F487
+:101180005DC1C83BD10509F45CC1C93BD10509F477
+:101190005BC1CA3BD10509F45AC100E014E459C14E
+:1011A000CE019F700E94DE0755C1DD278E01106CB5
+:1011B00050C100E011ED4DC100E010ED4AC100E06A
+:1011C00012ED47C100E013ED44C18091C703816077
+:1011D0008093C7033EC10E949B28811102C00E94D8
+:1011E00077280E94B32890E09093F2038093F10354
+:1011F000C23090E5D90721F48091F103816086C067
+:10120000C43020E5D20721F48091F10382607EC0D2
+:10121000C63080E5D80721F48091F103846076C060
+:10122000C83090E5D90719F48091F10327C0CA307E
+:1012300020E5D20721F48091F103806167C0CC30B2
+:1012400080E5D80721F48091F10380625FC0CE3041
+:1012500090E5D90721F48091F103806457C0C03133
+:1012600020E5D20721F48091F10380684FC0C2319C
+:1012700080E5D80729F48091F1038460886046C036
+:10128000C33090E5D90721F48091F1038E7F3EC0F1
+:10129000C53020E5D20721F48091F1038D7F36C05F
+:1012A000C73080E5D80721F48091F1038B7F2EC0F1
+:1012B000C93090E5D90719F48091F10326C0CB30ED
+:1012C00020E5D20721F48091F1038F7E1FC0CD303D
+:1012D00080E5D80721F48091F1038F7D17C0CF30CE
+:1012E00090E5D90721F48091F1038F7B0FC0C131C4
+:1012F00020E5D20721F48091F1038F7707C0C33135
+:10130000D04531F48091F1038B7F877F8093F10387
+:101310008091F1030E94B7289CC08D2F99278F7070
+:10132000992781309105D9F49E012370332702C09B
+:10133000880F991F2A95E2F79C688E0144E0000F00
+:10134000111F4A95E1F700271370802B912B53E072
+:10135000CC0FDD1F5A95E1F7C076DD272FC0823014
+:10136000910531F4DC2FCC278E01016F106A71C01A
+:101370008330910569F4CE018370992701E010E074
+:1013800002C0000F111F8A95E2F7C8019C680FC0C8
+:10139000049709F05EC0CE018370992701E010E048
+:1013A00002C0000F111F8A95E2F7C8019A6823E076
+:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76
+:1013C0001D2B47C0DF708E01106243C000E010E0AB
+:1013D00040C08E013EC001E810E43BC003E810E4C9
+:1013E00038C002EE14E435C009EE14E432C00AEE4F
+:1013F00014E42FC005EB14E42CC006EB14E429C060
+:1014000007EB14E426C00CEC14E423C00DEC14E448
+:1014100020C003E815E41DC00AE815E41AC002E97B
+:1014200015E417C004E915E414C001E216E411C084
+:1014300003E216E40EC004E216E40BC005E216E473
+:1014400008C006E216E405C007E216E402C00AE29C
+:1014500016E4C801DF91CF911F910F9108959CE090
+:10146000799FF00111249CE3899FE00DF11D112467
+:10147000E60FF11DEE0FFF1FE658FE4F8591949188
+:10148000803E9105E0F4803C910558F5813391054B
+:1014900009F46FC048F48932910509F463C08A32B7
+:1014A000910509F46DC072C089339105E9F0823865
+:1014B0009105D1F08533910509F44DC067C0833E95
+:1014C000910581F138F4803E9105B9F0823E910595
+:1014D000D9F05CC0863E910561F1873E9105A1F18E
+:1014E00055C00E94D60708952091F10320FD02C047
+:1014F00021FF4CC080EE90E049C08091F10380FF55
+:10150000F9CF89E390E042C08091F10382FF0EC0E1
+:101510008091F10384FF03C080E090E037C083EE48
+:1015200090E034C08091F10382FFF2CF82EE90E030
+:101530002DC08091F10383FF0BC08091F10384FDE6
+:10154000EBCF87EE90E022C08091F10383FFF5CFCF
+:1015500086EE90E01BC08091F10385FF07C089E211
+:1015600090E014C08091F10385FFF9CF85E390E00E
+:101570000DC08091F10386FF07C08AE290E006C0AB
+:101580008091F10386FFF9CF81E390E00E94E607A6
+:101590000895CF92DF92EF92FF920F931F9301E095
+:1015A00010E020E030E06801790104C0CC0CDD1CC3
+:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA
+:1015C000331F6A95D2F70C291D292E293F29C09077
+:1015D000B303D090B403E090B503F090B603C022FB
+:1015E000D122E222F322842FC016D106E206F306AE
+:1015F00041F41F910F91FF90EF90DF90CF900C94EA
+:10160000A5251F910F91FF90EF90DF90CF900C9444
+:10161000C62508950C94090B5F926F927F928F926A
+:101620009F92AF92BF92CF92DF92EF92FF920F9371
+:101630001F93CF93DF93CDB7DEB72A970FB6F894F9
+:10164000DEBF0FBECDBFCE0101966C014E019BE007
+:10165000890E911C20E030E040E050E060E070E056
+:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F
+:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C
+:1016800001900D928A95E1F7F601819191916F0198
+:10169000FC01E07FFF27E032F10559F48F709927B4
+:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E
+:1016B00037C0E033F10559F48F709927F50102C066
+:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487
+:1016D000F10559F48F709927F50102C0EE0FFF1F35
+:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C
+:1016F0008F709927F50102C0EE0FFF1F8A95E2F760
+:101700004E2B5F2B0DC0E036F10551F48F709927F9
+:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B
+:10172000C814D90409F0A7CF84B19E2D90958923C0
+:1017300084B985B1E82AE5B887B1902F90958923BF
+:1017400087B988B1082B08B98AB1962F909589235B
+:101750008AB98BB1682B6BB98DB1942F9095892381
+:101760008DB98EB1482B4EB980B3922F90958923B5
+:1017700080BB81B3282B21BB2A960FB6F894DEBF1D
+:101780000FBECDBFDF91CF911F910F91FF90EF90D2
+:10179000DF90CF90BF90AF909F908F907F906F9091
+:1017A0005F9008955F926F927F928F929F92AF9217
+:1017B000BF92CF92DF92EF92FF920F931F93CF933E
+:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4
+:1017D000CDBF85B7806885BF85B7806885BF0E940B
+:1017E0000C0BCE0101966C014E0199E1890E911C02
+:1017F00020E030E040E050E060E070E000E010E029
+:10180000E12CF12C6C2C5D2C88E1782EAA24A39479
+:10181000B12CE5E7F2E0A62DB52D872D01900D92B4
+:101820008A95E1F7F601819191916F01FC01E07FCA
+:10183000FF27E032F10559F48F709927F50102C0B6
+:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A
+:10185000F10559F48F709927F50102C0EE0FFF1FB3
+:101860008A95E2F70E2B1F2B29C0E034F10559F4BD
+:101870008F709927F50102C0EE0FFF1F8A95E2F7DE
+:101880006E2B7F2B1BC0E035F10559F48F70992723
+:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A
+:1018A0000DC0E036F10551F48F709927F50102C0A3
+:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499
+:1018C00009F0A7CF84B19E2D9095892384B985B165
+:1018D000E82AE5B887B1902F9095892387B988B118
+:1018E000082B08B98AB1962F909589238AB98BB1B4
+:1018F000682B6BB98DB1942F909589238DB98EB1DA
+:10190000482B4EB980B3922F9095892380BB81B329
+:10191000282B21BBE2E0F3E0A8EFB2E01192119294
+:101920001D921D9283E0EC30F807C1F768960FB660
+:10193000F894DEBF0FBECDBFDF91CF911F910F9105
+:10194000FF90EF90DF90CF90BF90AF909F908F90DF
+:101950007F906F905F900C94CB075F926F927F9215
+:101960008F929F92AF92BF92CF92DF92EF92FF92AF
+:101970000F931F93CF93DF93CDB7DEB7A2970FB628
+:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D
+:1019900088EFA82E82E0B82E75019AE0592E4601F4
+:1019A00001E010E028E1622E35E0732EEBE6F2E074
+:1019B000D401852D01900D928A95E1F7D6018D9184
+:1019C0009D916D019C01207F33272032310591F4D8
+:1019D00024B18F709927F80102C0EE0FFF1F8A957E
+:1019E000E2F7CF01922F982B94B995B18095892376
+:1019F00085B953C02033310591F427B18F709927F1
+:101A0000A80102C0440F551F8A95E2F7CA01922F20
+:101A1000982B97B998B18095892388B93EC0203416
+:101A2000310591F42AB18F709927D80102C0AA0F0D
+:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3
+:101A4000809589238BB929C02035310591F42DB1BA
+:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9
+:101A6000CF01922F982B9DB99EB1809589238EB975
+:101A700014C02036310589F420B38F709927A8014E
+:101A800002C0440F551F8A95E2F7CA01922F982B86
+:101A900090BB91B38095892381BB50EA5A95F1F7A9
+:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF
+:101AB000F2E0DE011196862D01900D928A95E1F7F4
+:101AC000DB018D919D91BD01FC01E07FFF27E0329C
+:101AD000F10511F4E3B113C0E033F10511F4E6B1FF
+:101AE0000EC0E034F10511F4E9B109C0E035F105AB
+:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057
+:101B00008F70992702C0F595E7958A95E2F7E0FD79
+:101B100008C0C801042E02C0880F991F0A94E2F77A
+:101B200002C080E090E0282B392B4F5F5F4F4C3094
+:101B3000510509F0BCCFF70180819181821793078D
+:101B400021F031832083709209020E940C0BF2E095
+:101B5000EF0EF11C42E0E41643E0F40609F026CF54
+:101B6000809109028823C9F081508093090288235B
+:101B700039F08FE99FE00197F1F700C000000DC038
+:101B8000E2E0F3E0D5018D919D915D018193919308
+:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023
+:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6
+:101BB0001F910F91FF90EF90DF90CF90BF90AF906B
+:101BC0009F908F907F906F905F900895E82FF0E046
+:101BD000EE0FFF1FEE5FFC4F808191810895089505
+:101BE0008091DC0381608093DC030C94C928809190
+:101BF000DC038E7F8093DC030C94C9280E949B2811
+:101C0000811102C00E9477280E94C5288093DC03BE
+:101C10003E9A809171008D7F8093710082E0809365
+:101C200090008AE18093910081E080930E030895F3
+:101C300080910E03811102C00E94FE0D10925E037E
+:101C400010925D03809171008D7F8093710080916F
+:101C500090008F77809390001092200310921F03C2
+:101C600010925703109258031092590310925A037E
+:101C70001092560310925503E5E3F3E0A5E2B3E0BA
+:101C800011921192119211921D921D9283E0E535ED
+:101C9000F807B1F70895CF92DF92EF92FF920F937A
+:101CA0001F93CF93DF9320911F03222309F484C055
+:101CB0006B017C0180910E03811102C00E94FE0D18
+:101CC00005E513E0C7E0D0E0A7019601F801929185
+:101CD0008291729162918F010E94052E811131C013
+:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B
+:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3
+:101D000011961C921E92C730D105E9F021964481AC
+:101D10005581668177814083518362837383148206
+:101D200015821682178212968D919C9113971196A7
+:101D30009C938E9313961C921E9212973496129631
+:101D4000E2CF219708F680915D0390915E030197A1
+:101D500097FD05C090935E0380935D0304C01092CD
+:101D60005E0310925D0380915D0390915E0320916C
+:101D70005B0330915C032817390724F010925C0351
+:101D800010925B03892BC1F4809171008D7F809349
+:101D90007100809190008F7780939000109257038C
+:101DA000109258031092590310925A03109256033E
+:101DB0001092550310921F03DF91CF911F910F9145
+:101DC000FF90EF90DF90CF9008951F920F920FB683
+:101DD0000F9211244F925F926F927F928F929F92F7
+:101DE000AF92BF92CF92DF92EF92FF922F933F93E9
+:101DF0004F935F936F937F938F939F93AF93BF9313
+:101E0000CF93DF93EF93FF9380911F03882309F40F
+:101E10009BC1C0915D03D0915E031C161D060CF0A2
+:101E200093C140900F035090100360901103709085
+:101E3000120320E030E0A901C301B2010E94B02FDB
+:101E400018160CF065C0C130D10509F452C080915C
+:101E50005B0390915C03BE010E9482317C019093F0
+:101E60005C0380935B038090210390902203A090F9
+:101E70002303B090240320E030E040E85FE3C50195
+:101E8000B4010E94A12D60932103709322038093DB
+:101E9000230390932403F701EE0FFF1FEE0FFF1FA4
+:101EA000EB5CFC4FA301920160817181828193817F
+:101EB0000E94092E20E030E040E05EE30E94B42F53
+:101EC0009B01AC01C501B4010E94B02F18168CF41F
+:101ED000C7010196BE010E94823190935C038093FA
+:101EE0005B0310922103109222031092230310929D
+:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4
+:101F0000FF1FEB5CFC4F6081718182819381D0C0A7
+:101F1000C0905703D0905803E0905903F0905A03B3
+:101F200020E030E0A901C701B6010E94052E2197EB
+:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62
+:101F4000EB5CFC4F80809180A280B380A50194015E
+:101F5000C701B6010E94052E87FF31C0A50194017B
+:101F600060E070E08CED93EC0E94092E20E030E000
+:101F700040E451E40E94092E20E030E040E05FE3BD
+:101F80000E94B42F9B01AC0160E070E080E090E41F
+:101F90000E9417309B01AC01C501B4010E94B42F0F
+:101FA0009B01AC01C701B6010E94052E87FF07C047
+:101FB000A701960160E070E08CED93E439C0A501C3
+:101FC0009401C701B6010E94B02F18160CF055C03D
+:101FD000A501940160E070E08CED93E40E94092E6D
+:101FE00020E030E040E451E40E94092E20E030E09F
+:101FF00040E05FE30E94B42F9B01AC0160E070E021
+:1020000080E090E40E9417309B01AC01C501B4014F
+:102010000E94B42F9B01AC01C701B6010E94B02FF2
+:1020200018165CF5A701960160E070E08CED93EC6A
+:102030000E94092E20E030E040E451E40E94092E85
+:1020400020E030E040E05FE30E94B42F9B01AC0150
+:1020500060E070E080E090E40E9417309B01AC01EA
+:10206000C701B6010E94B42F6093570370935803C1
+:102070008093590390935A0313C0FE01EE0FFF1F84
+:10208000EE0FFF1FEB5CFC4F80819181A281B38139
+:102090008093570390935803A0935903B0935A0326
+:1020A00060915703709158038091590390915A039E
+:1020B00020910C0330910D032F3F4FEF340731F087
+:1020C0002F5F3F4F30930D0320930C030E940C139E
+:1020D0006B017C0120E034E244EF51E40E94052EC4
+:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E
+:1020F00081E4F82E20E030E040E051E4C701B60171
+:102100000E94B42F9B01AC0160E074E284E79BE481
+:102110000E94092E6B017C010E94712E7093970022
+:102120006093960020910A0230910B0240910C02BC
+:1021300050910D02C701B6010E94B42F0E94712E6A
+:10214000709399006093980080912003882309F48C
+:1021500033C1C0901B03D0901C03E0901D03F0908E
+:102160001E0320E030E0A901C701B6010E94B02F94
+:102170001816D4F580910C0390910D038F3F2FEF2B
+:10218000920729F0019690930D0380930C03C701E9
+:10219000B6010E940C1320E030E040E051E40E94C0
+:1021A000B42F9B01AC0160E074E284E79BE40E94E1
+:1021B000092E6B017C010E94712E70939700609331
+:1021C000960020910A0230910B0240910C0250912E
+:1021D0000D02C701B6010E94B42F0E94712E7093A8
+:1021E00099006093980008C0109297001092960092
+:1021F0001092990010929800609115037091160347
+:102200006F5F7F4F709316036093150320919600C4
+:102210003091970080E090E0232BF1F0C091960080
+:10222000D09197000E94A22E6B017C01BE0180E03C
+:1022300090E00E94A22E9B01AC0160911703709167
+:1022400018038091190390911A030E94092E20E02F
+:102250003FEF4FE757E410C00E94A22E6B017C01B4
+:1022600020E030EE4FEF54E46091170370911803B3
+:102270008091190390911A030E94B42F9B01AC0125
+:10228000C701B6010E94B02F87FD96C0809113034D
+:102290008F5F8093130390E02091D8033091D9038E
+:1022A00082179307A0F08091E303882319F010921E
+:1022B00013030DC0809171008D7F80937100809118
+:1022C00090008F7780939000109220037DC08091C2
+:1022D0001403C0911303811128C0C090DD03D09076
+:1022E000DE03E090DF03F090E00320E030E0A9019E
+:1022F000C701B6010E94B02F1816BCF481E080938C
+:10230000140310921B0310921C0310921D031092D1
+:102310001E03C0921703D0921803E0921903F092A3
+:102320001A03C150C093130343C0109214031092B8
+:102330000D0310920C03E091DA03F091DB0348E007
+:10234000C49FE00DF11D112480819181A281B38190
+:1023500080931B0390931C03A0931D03B0931E0353
+:1023600020E030E040E85EE36481758186819781FA
+:102370000E94B42F6B017C0120E030E048EC52E475
+:1023800060910E0270910F028091100290911102E3
+:102390000E94092E9B01AC01C701B6010E94B42F17
+:1023A00060931703709318038093190390931A0393
+:1023B00010921603109215038091DC0380FD04C077
+:1023C0001092200310921F03FF91EF91DF91CF91A4
+:1023D000BF91AF919F918F917F916F915F914F913D
+:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3
+:1023F0009F908F907F906F905F904F900F900FBE47
+:102400000F901F901895CF92DF92EF92FF92CF938B
+:10241000DF936B017C01EA0180910E03811102C000
+:102420000E94FE0D8091DC0380FF46C080915D0319
+:1024300090915E0308970CF03FC0809171008D7FF2
+:10244000809371008091200381110E94180E81E019
+:1024500080931F0310920D0310920C0320E030E0D4
+:10246000A901C701B6010E94B02F1816DCF48091B3
+:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47
+:10248000EB5CFC4FC082D182E282F382FC01EE0F52
+:10249000FF1FEB5DFC4FD183C083019690935E03D9
+:1024A00080935D03809171008260809371008091C0
+:1024B0009000806880939000DF91CF91FF90EF9023
+:1024C000DF90CF9008958F929F92AF92BF92CF925C
+:1024D000DF92EF92FF920F931F93CF93DF93EC0164
+:1024E0007B01D42E4801590180910E03811102C055
+:1024F0000E94FE0D8091DC0380FF6BC08091710013
+:102500008D7F8093710080911F0381110E94180EAE
+:1025100081E080932003D093DB03C093DA03F09231
+:10252000D903E092D803D092E3038092DD03909226
+:10253000DE03A092DF03B092E00310922103109219
+:102540002203109223031092240310921303888114
+:102550009981AA81BB8180931B0390931C03A09354
+:102560001D03B0931E0320E030E040E85EE36C8181
+:102570007D818E819F810E94B42F6B017C0120E0C0
+:1025800030E048EC52E460910E0270910F028091AD
+:102590001002909111020E94092E9B01AC01C7010B
+:1025A000B6010E94B42F60931703709318038093B1
+:1025B000190390931A031092160310921503809139
+:1025C0007100826080937100809190008068809398
+:1025D0009000DF91CF911F910F91FF90EF90DF90CE
+:1025E000CF90BF90AF909F908F90089580915F03A0
+:1025F00090E0019666E070E00E94823180935F0374
+:10260000089580915F0390E0019766E070E00E947A
+:10261000823180935F0308958F929F92AF92BF9211
+:10262000CF92DF92EF92FF920F931F93CF93DF939E
+:102630006B017C01C0910C03D0910D03BE0180E0C1
+:1026400090E00E94A22E4B015C01A701960160E080
+:1026500070E08CE594E40E94092E9B01AC01C50159
+:10266000B4010E94B42F0E94762E20915F03233084
+:1026700009F473C028F4222351F02130E9F02CC171
+:10268000243009F4A0C0253009F4E0C025C180E061
+:1026900090E0A0E0BFE380930A0290930B02A09326
+:1026A0000C02B0930D0210920F03109210031092BF
+:1026B00011031092120310C110920F031092100315
+:1026C00010921103109212036431710540F46A30C4
+:1026D000710560F520E030E040E85EE32BC0693C26
+:1026E000710508F0AAC080E090E00E94A22E20E0D0
+:1026F00030E040EA51E40E94A02D20E030E044E3C5
+:1027000053E40E94092E9B01AC010E94B42F20E0EB
+:1027100030E040E05EE30E94B42F9B01AC0160E03A
+:1027200070E080E09EE30E94A02D44C020E030E0F5
+:1027300040E05FE3C701B6010E94B42F6B017C014A
+:1027400080E090E0A0E0BEE380930A0290930B0249
+:10275000A0930C02B0930D02BFC010920F03109211
+:10276000100310921103109212034AE0469F900149
+:10277000479F300D1124C90168EB7BE00E946E3148
+:10278000BC016C5D754077FF03C07195619571095F
+:10279000882777FD8095982F0E94A42E2EE333EC96
+:1027A0004EE259E30E94B42F20E030E040EC5EE3BB
+:1027B0000E94A12D60930A0270930B0280930C0279
+:1027C00090930D0289C010920F0310921003109283
+:1027D000110310921203CE0183709927892BE1F027
+:1027E000BE016170772780E090E00E94A22E20E079
+:1027F00030E040E05EE30E94B42F20E030E040E4AF
+:102800005FE30E94A12D60930A0270930B028093F4
+:102810000C0290930D020CC080E090E0A0E0BFE3BA
+:1028200080930A0290930B02A0930C02B0930D02C6
+:10283000C770DD27CD2B09F04FC010920A0210920D
+:102840000B0210920C0210920D0246C010920F0360
+:1028500010921003109211031092120300E010E086
+:1028600020E03FE300930A0210930B0220930C0236
+:1028700030930D026739710578F180E090E00E9495
+:10288000A22E20E030E047E153E40E94A02D20E09A
+:1028900030E04AE754E40E94092E20E030E048E4AA
+:1028A00052E40E94B42F20E030E040EA51E40E945C
+:1028B000E62E0E94712E660F771F660F771FFB01B1
+:1028C000E357FD4F2081318142815381C701B60119
+:1028D0000E94B42F6B017C01C701B601DF91CF913B
+:1028E0001F910F91FF90EF90DF90CF90BF90AF902E
+:1028F0009F908F900895809168030895CF93DF9300
+:1029000000D01F92CDB7DEB79C018091E8038430E0
+:1029100019F593E099833B832A839093E9008FEF25
+:102920009091E800815095FD06C095ED9A95F1F7DC
+:1029300000008111F5CF8091E80085FF0DC040E0D7
+:1029400050E063E070E0CE0101960E94B7168091DE
+:10295000E8008E778093E8000F900F900F90DF9142
+:10296000CF910895CF93DF9300D01F92CDB7DEB7FC
+:102970002091E803243021F522E029839B838A8378
+:1029800083E08093E9008FEF9091E800815095FDFE
+:1029900006C095ED9A95F1F700008111F5CF809171
+:1029A000E80085FF0DC040E050E063E070E0CE013C
+:1029B00001960E94B7168091E8008E778093E80018
+:1029C0000F900F900F90DF91CF9108952091E80321
+:1029D0002430F1F422E02093E9002FEF3091E80059
+:1029E000215035FD06C035ED3A95F1F70000211173
+:1029F000F5CF2091E80025FF0BC040E050E065E0F6
+:102A000070E00E94B7168091E8008E778093E8000E
+:102A10000895CF93DF932091E803243039F521E026
+:102A20002093E9002FEF3091E800215035FD06C0DA
+:102A300035ED3A95F1F700002111F5CF2091E8002E
+:102A400025FF14C0EC0140E050E068E070E00E9417
+:102A5000B7168091E8008E778093E80088E0FE0149
+:102A6000A0E6B3E001900D928A95E1F7DF91CF9156
+:102A700008958091E703811109C00E944C180E94BB
+:102A8000A9188091E20084608093E200089510927A
+:102A9000E7030895089508950C94A72742E061EC98
+:102AA00081E00E94C61742E061EC82E00E94C617F6
+:102AB00042E061EC83E00C94C6178091EA03833016
+:102AC00009F453C030F4813071F0823009F48CC0C5
+:102AD00008958A3009F478C08B3009F45EC08930DB
+:102AE00009F09AC020C08091E903813A09F094C0AE
+:102AF0008091E800877F8093E8008091ED039091BA
+:102B0000EE03892B21F468E080E693E003C060E0E7
+:102B100080E090E070E00E9402178091E8008B77DF
+:102B20008093E80008958091E903813209F074C030
+:102B30008091ED039091EE03892B09F06DC0809197
+:102B4000E800877F8093E8008091E80082FD05C05F
+:102B50008091E8038111F8CF5FC08091F1008093EC
+:102B600068038091E8008B7753C08091E903813A34
+:102B700009F052C08091ED039091EE03892B09F08A
+:102B80004BC08091E800877F8093E8008091E80047
+:102B900080FFFCCF80911C0236C08091E903813216
+:102BA000D9F58091ED039091EE03892BA9F58091E1
+:102BB000E800877F8093E8000E94FB178091EB0379
+:102BC00080931C020C946C218091E903813221F5E1
+:102BD0008091E800877F8093E8000E94FB17809136
+:102BE000EC038093690308958091E903813AA1F48D
+:102BF0008091E800877F8093E8008091E80080FF63
+:102C0000FCCF809169038093F1008091E8008E777A
+:102C10008093E8000C94FB17089584B7877F84BFE6
+:102C200088E10FB6F89480936000109260000FBEA8
+:102C300090E080E80FB6F894809361009093610073
+:102C40000FBE0E949E1B0E944C180E94A9188091E2
+:102C5000E20084608093E20078940E942F1B0E941F
+:102C6000A01B82E192E00E944A1B8091E80385301C
+:102C700069F40E9461278091E6038823B1F30E94E2
+:102C80008F27882391F30E94A116EFCF0E94A81BE3
+:102C9000ECCF292F332723303105C9F064F42130DC
+:102CA000310581F02230310509F043C084E590E020
+:102CB00020ED39E042C021323105F1F022323105F8
+:102CC00041F137C082E190E024E23AE036C0992732
+:102CD0008130910541F08230910541F0892B49F511
+:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A
+:102CF000849190E09F0121C06330D8F4E62FF0E08A
+:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5
+:102D100014C0633070F470E0FB01EE0FFF1FE0524F
+:102D2000FD4F20813181FB01E352FD4F808190E016
+:102D300004C080E090E020E030E0FA01318320839D
+:102D4000089580E189BD82E189BD09B400FEFDCF0F
+:102D50008091D8008F7D8093D8008091E0008260C0
+:102D60008093E0008091E00081FDFCCF0895CF9238
+:102D7000DF92EF92FF920F931F93CF93DF93EC01BB
+:102D80008B016A010E941A18811133C0C114D10449
+:102D900039F0F60180819181081B190BC80FD91FEA
+:102DA000E12CF12C0115110519F18091E80085FD48
+:102DB00016C08091E8008E778093E800C114D1049A
+:102DC00049F0F60180819181E80EF91EF182E082DE
+:102DD00085E00FC00E941A18882321F30AC0899148
+:102DE0008093F10001501109FFEFEF1AFF0ADACFCB
+:102DF00080E0DF91CF911F910F91FF90EF90DF90D6
+:102E0000CF9008952091EF033091F00326173707F4
+:102E100048F06115710539F42091E8002E77209370
+:102E2000E80001C0B90140E061157105A9F12091E8
+:102E3000E803222309F443C0253009F442C020915D
+:102E4000E80023FD40C02091E80022FD32C020911F
+:102E5000E80020FFE9CF4091F3002091F20030E03C
+:102E6000342BFC01CF016115710559F02830310573
+:102E700040F481918093F100615071092F5F3F4FC1
+:102E8000F1CF41E02830310509F040E02091E80021
+:102E90002E772093E800C8CF4111C9CF0AC0809196
+:102EA000E803882361F0853061F08091E80083FDBC
+:102EB0000AC08091E80082FFF2CF80E0089582E0AE
+:102EC000089583E0089581E008952091EF03309103
+:102ED000F0032617370748F06115710539F4209182
+:102EE000E8002E772093E80001C0B901FC0120E042
+:102EF0006115710591F18091E803882309F440C0C0
+:102F0000853009F43FC08091E80083FD3DC0809189
+:102F1000E80082FD2FC08091E80080FFE9CF20917A
+:102F2000F3008091F20090E0922B6115710559F049
+:102F30008830910540F424912093F100319661503E
+:102F400071090196F2CF21E0089709F020E0809105
+:102F5000E8008E778093E800CBCF2111CCCF0AC058
+:102F60008091E803882361F0853061F08091E8006A
+:102F700083FD0AC08091E80082FFF2CF80E00895CF
+:102F800082E0089583E0089581E00895982F9730B6
+:102F900058F59093E900981739F07091EC00209162
+:102FA000ED005091F00003C0242F762F50E021FF58
+:102FB00019C03091EB003E7F3093EB003091ED0073
+:102FC0003D7F3093ED003091EB0031603093EB00AA
+:102FD0007093EC002093ED005093F0002091EE00F0
+:102FE00027FF07C09F5FD3CF8F708093E90081E0F8
+:102FF000089580E008958091E90387FF11C08091D2
+:10300000E80082FD05C08091E8038111F8CF11C06E
+:103010008091E8008B770BC08091E803882349F00A
+:103020008091E80080FFF8CF8091E8008E77809350
+:10303000E80008952091E4003091E50095E6409184
+:10304000EC00842F817040FF22C08091E80080FD59
+:103050001CC08091E803882391F0853091F0809125
+:10306000EB0085FD10C04091E4005091E50042174F
+:10307000530729F39A01915011F784E0089582E0F3
+:10308000089583E0089581E0089580E008954091D7
+:10309000E80042FFDECF08950E94BA180E94C218CD
+:1030A000E0EEF0E0808181608083E8EDF0E08081F7
+:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5
+:1030C00080818F7E80831092E70308950F931F9372
+:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7
+:1030E00088818F77888388818068888388818F7DB5
+:1030F000888319BC1092E8031092E4031092E6034F
+:103100001092E50300EE10E0F80180818B7F808350
+:1031100088818160888342E060E080E00E94C61779
+:10312000E1EEF0E080818E7F8083E2EEF0E080814E
+:1031300081608083808188608083F80180818E7FB8
+:103140008083888180618883DF91CF911F910F9167
+:103150000895E8EDF0E080818F7E8083E7EDF0E078
+:1031600080818160808384E082BF81E08093E70377
+:103170000C946618E8EDF0E080818E7F80831092D9
+:10318000E20008951092DA001092E10008951F9273
+:103190000F920FB60F9211242F933F934F935F938B
+:1031A0006F937F938F939F93AF93BF93EF93FF930F
+:1031B0008091E10082FF0BC08091E20082FF07C096
+:1031C0008091E1008B7F8093E1000E942E1B809113
+:1031D000DA0080FF1FC08091D80080FF1BC0809163
+:1031E000DA008E7F8093DA008091D90080FF0DC0D5
+:1031F00080E189BD82E189BD09B400FEFDCF81E097
+:103200008093E8030E94391505C019BC1092E803A9
+:103210000E9447158091E10080FF19C08091E20073
+:1032200080FF15C08091E2008E7F8093E200809144
+:10323000E20080618093E2008091D80080628093F8
+:10324000D80019BC85E08093E8030E944B1580915B
+:10325000E10084FF30C08091E20084FF2CC080E157
+:1032600089BD82E189BD09B400FEFDCF8091D800FF
+:103270008F7D8093D8008091E1008F7E8093E10064
+:103280008091E2008F7E8093E2008091E200816075
+:103290008093E2008091E403882311F084E007C06A
+:1032A0008091E30087FD02C081E001C083E080934C
+:1032B000E8030E944C158091E10083FF29C08091B2
+:1032C000E20083FF25C08091E100877F8093E100C9
+:1032D00082E08093E8031092E4038091E1008E7F06
+:1032E0008093E1008091E2008E7F8093E2008091E4
+:1032F000E20080618093E20042E060E080E00E94B2
+:10330000C6178091F00088608093F0000E944A15F3
+:10331000FF91EF91BF91AF919F918F917F916F91AD
+:103320005F914F913F912F910F900FBE0F901F9083
+:1033300018951F920F920FB60F9211242F933F935F
+:103340004F935F936F937F938F939F93AF93BF93AD
+:10335000CF93DF93EF93FF93C091E900CF708091FB
+:10336000EC00D82FD17080FDD0E81092E900809158
+:10337000F000877F8093F00078940E94DD1910920E
+:10338000E9008091F00088608093F000CD2BCF7031
+:10339000C093E900FF91EF91DF91CF91BF91AF9181
+:1033A0009F918F917F916F915F914F913F912F915D
+:1033B0000F900FBE0F901F9018951F93CF93DF9320
+:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C
+:1033D000E9EEF3E088E08E0F9091F10091938E1367
+:1033E000FBCF0E945D158091E80083FF1FC1809193
+:1033F000E9039091EA03492F50E04A30510508F063
+:1034000015C1FA01EE59FF4F0C949631803881F0C6
+:10341000823809F00BC18091ED038F708093E90031
+:103420008091EB0085FB882780F91092E90006C0A7
+:103430008091E5039091E603911182609091E800FC
+:10344000977F9093E8008093F1001092F100C8C03C
+:10345000282F2D7F09F0EAC0882319F0823061F00F
+:10346000E5C08091EB03813009F0E0C0933009F0B2
+:1034700080E08093E6032BC08091EB03811127C08D
+:103480008091ED038F7009F4D1C08093E900209101
+:10349000EB0020FF1CC0933021F48091EB00806290
+:1034A00014C09091EB0090619093EB0021E030E02C
+:1034B000A90102C0440F551F8A95E2F74093EA0024
+:1034C0001092EA008091EB0088608093EB001092EC
+:1034D000E9008091E800877F86C08111A7C0109124
+:1034E000EB031F778091E3008078812B8093E300CA
+:1034F0008091E800877F8093E8000E94FB1780910D
+:10350000E80080FFFCCF8091E30080688093E300B7
+:10351000111102C082E001C083E08093E80386C0FD
+:103520008058823008F082C08091EB039091EC03C8
+:103530008C3D53E0950779F583E08A838AE289839D
+:103540004FB7F894DE01139620E03EE051E2E32FFE
+:10355000F0E050935700E49120FF03C0E295EF7034
+:103560003F5FEF708E2F90E0EA3010F0C79601C0F9
+:10357000C0968D939D932F5F243149F74FBF809163
+:10358000E800877F8093E8006AE270E0CE01019650
+:103590000E94021714C0AE014F5F5F4F6091ED03B0
+:1035A0000E944916BC01009709F440C09091E800C0
+:1035B000977F9093E80089819A810E946517809196
+:1035C000E8008B778093E80031C0803879F58091EE
+:1035D000E800877F8093E8008091E4038093F10006
+:1035E0008091E8008E778093E8000E94FB171EC050
+:1035F00081111CC09091EB039230C0F48091E800DF
+:10360000877F8093E8009093E4030E94FB178091EA
+:10361000E403811106C08091E30087FD02C081E0D0
+:1036200001C084E08093E8030E944E158091E80079
+:1036300083FF0AC08091E800877F8093E800809133
+:10364000EB0080628093EB00AA960FB6F894DEBF81
+:103650000FBECDBFDF91CF911F9108950895CF93F5
+:103660008091E8038823A1F0C091E900CF70909188
+:10367000EC00892F817090FD80E8C82B1092E90042
+:103680008091E80083FD0E94DD19CF70C093E900AE
+:10369000CF91089590936F0380936E030895E09106
+:1036A0006E03F0916F03309721F00190F081E02DCF
+:1036B000099480E00895E0916E03F0916F033097D4
+:1036C00021F00280F381E02D09940895E0916E03CA
+:1036D000F0916F03309721F00480F581E02D09947B
+:1036E000089520916C0330916D038217930771F058
+:1036F00090936D0380936C03E0916E03F0916F03E0
+:10370000309721F00680F781E02D099408952091EB
+:103710006A0330916B038217930771F090936B03E8
+:1037200080936A03E0916E03F0916F03309721F06C
+:103730000084F185E02D0994089508950C949D1B53
+:103740000E94DB270E94D20B0E9461280C94092D55
+:103750004F925F927F928F929F92AF92BF92CF9241
+:10376000DF92EF92FF920F931F93CF93DF93CDB72A
+:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A
+:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9
+:10379000A394B12C702E802F0E94E60D4C01F601EF
+:1037A000419051906F014826592641145104B1F4BB
+:1037B0000F5F1F4F0530110569F78FEF89838A83EB
+:1037C0001B820E94E4278160782F9D838C8349812E
+:1037D0005A816B818D810E94611C3AC08091C70320
+:1037E00081FD0E94EF0D20E030E07501022E02C045
+:1037F000EE0CFF1C0A94E2F7C70184219521892B66
+:1038000009F12E837F828E209F2091E0892809F480
+:1038100090E098870E94E4278160782F9A878987B3
+:103820004E815F8168858A850E94611C000F111F8F
+:10383000F801EF58FC4F80819181E826F926F1824A
+:10384000E08206C02F5F3F4F2C30310571F6B0CFBC
+:103850000E94482A109170030E944F1B1817D9F03C
+:103860000E944F1B809370032A960FB6F894DEBF18
+:103870000FBECDBFDF91CF911F910F91FF90EF90C1
+:10388000DF90CF90BF90AF909F908F907F905F9090
+:103890004F900C940A0B2A960FB6F894DEBF0FBE19
+:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF
+:1038B000CF90BF90AF909F908F907F905F904F90F0
+:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B
+:1038D000DEBF0FBECDBF4F83588769877A878B873E
+:1038E000DE01119686E0FD0111928A95E9F785E0E7
+:1038F000FE01379601900D928A95E1F749815A8130
+:103900006B817C818D819E810E9406242B960FB64F
+:10391000F894DEBF0FBECDBFDF91CF910895CF9356
+:10392000882309F4C2C0C82F823859F40E944F1B63
+:1039300081FDBBC089E30E94AF260E94322789E344
+:103940000CC0833879F40E944F1B80FDAEC083E524
+:103950000E94AF260E94322783E50E94CC26CF9199
+:103960000C943227843859F40E944F1B82FD9DC06D
+:1039700087E40E94AF260E94322787E4EECF8CEFC7
+:103980008C0F813A48F48C2F0E94712C81118DC0CC
+:103990008C2F0E94AF26E3CF80E28C0F883048F452
+:1039A000C77081E001C0880FCA95EAF70E94EB2634
+:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20
+:1039C00031F083E890E005C081E890E002C082E831
+:1039D00090E0CF910C94711B88E58C0F833108F037
+:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F
+:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F
+:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE
+:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C
+:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072
+:103A300090E038C082EE90E035C089EE90E032C070
+:103A40008AEE90E02FC085EB90E02CC086EB90E0F2
+:103A500029C087EB90E026C08CEC90E023C08DEC71
+:103A600090E020C083E891E01DC08AE891E01AC090
+:103A700082E991E017C084E991E014C081E292E00C
+:103A800011C083E292E00EC084E292E00BC085E2B6
+:103A900092E008C086E292E005C087E292E002C0B0
+:103AA0008AE292E0CF910C94871BCF9108958823EE
+:103AB00009F44BC0823859F40E944F1B81FF45C066
+:103AC00089E30E94AF260E94322789E30CC0833825
+:103AD00071F40E944F1B80FF38C083E50E94AF261F
+:103AE0000E94322783E50E94CC260C94322784382A
+:103AF00059F40E944F1B82FF28C087E40E94AF2622
+:103B00000E94322787E4EFCF9CEF980F913A58F349
+:103B100090E2980F983050F4877091E001C0990FAF
+:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F
+:103B3000933020F480E090E00C94711B885A83311C
+:103B400020F480E090E00C94871B0895882321F0F6
+:103B50000E94EB260C9432270895882321F00E94BE
+:103B6000F1260C9432270895BF92CF92DF92EF9204
+:103B7000FF920F931F93CF93DF9300D000D000D01C
+:103B8000CDB7DEB725E0FC01DE01119601900D9264
+:103B90002A95E1F7FC01D0801181028125812295CF
+:103BA0002F7043815481452B09F472C31F3F21F4C8
+:103BB000FFEFDF1609F46CC37C012E830E94D3074C
+:103BC000D9821A8369817A81802F0E94AB26182FAF
+:103BD000B92E0E9460260E9427252E81002319F00D
+:103BE0000E9408272E81EB2DE295EF70F0E0E4595A
+:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B
+:103C0000882319F0F29480EFF822002389F0FF2036
+:103C100009F47CC280E2810F883020F48F2D0E944D
+:103C2000EB2603C08F2D0E94FB260E9432276EC216
+:103C3000812F0E94571DFF2009F42AC3105E8F2D8B
+:103C4000183018F40E94F12602C00E94012726961F
+:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D
+:103C60000F91FF90EF90DF90CF90BF900C94322790
+:103C70008B2D807F9B2D9F70803211F4892F03C084
+:103C8000892F8295807F112319F0113011F12BC0FB
+:103C90000023A9F0222389F1213079F526960FB669
+:103CA000F894DEBF0FBECDBFDF91CF911F910F9172
+:103CB000FF90EF90DF90CF90BF900C941B272223B2
+:103CC00019F0213009F4E4C28E830E941E278E81F0
+:103CD0009BC1002321F0263008F0DAC20EC0253047
+:103CE00008F0D6C291C10023C9F0222331F0F701B8
+:103CF000958190FF0BC29F70958326960FB6F8941E
+:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E
+:103D1000EF90DF90CF90BF900C94A61D222309F462
+:103D200073C109C22B2D26952695237030E02115ED
+:103D3000310521F021303105D1F0AAC2002321F054
+:103D4000812F9B2D937002C080E090E026960FB6E5
+:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1
+:103D6000FF90EF90DF90CF90BF900C94711B0023D9
+:103D700021F0812F9B2D937002C080E090E0269669
+:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C
+:103D90000F91FF90EF90DF90CF90BF900C94871B16
+:103DA000812F002319F00E94502902C00E94B829D7
+:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130
+:103DC0001F910F91FF90EF90DF90CF90BF900C94D8
+:103DD0003D2A8B2D837009F07BC0011159C2812FC0
+:103DE000829586958770880F880F912F9F70C92EB6
+:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7
+:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC
+:103E100070E004C0440F551F661F771F8A95D2F7C4
+:103E2000CB01BA01609570958095909503C060E0D4
+:103E300070E0CB012B2D269526952370422F50E064
+:103E400042305105D9F04330510569F16C297D2983
+:103E50008E299F294130510551F126960FB6F894CD
+:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD
+:103E7000EF90DF90CF90BF900C944E256C297D2958
+:103E80008E299F2926960FB6F894DEBF0FBECDBFB0
+:103E9000DF91CF911F910F91FF90EF90DF90CF9026
+:103EA000BF900C946A250E944E25C701B601269644
+:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B
+:103EC0000F91FF90EF90DF90CF90BF900C94322530
+:103ED000002319F08B2D817001C08695882309F489
+:103EE000D7C1812F829586958770880F880F912F73
+:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3
+:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018
+:103F100050E060E070E004C0440F551F661F771F3B
+:103F20008A95D2F7CB01BA016095709580959095EE
+:103F300003C060E070E0CB012B2D26952695237001
+:103F4000422F50E042305105D9F04330510569F11C
+:103F50006C297D298E299F294130510551F12696E2
+:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A
+:103F70000F91FF90EF90DF90CF90BF900C94282688
+:103F80006C297D298E299F2926960FB6F894DEBFCD
+:103F90000FBECDBFDF91CF911F910F91FF90EF909A
+:103FA000DF90CF90BF900C9444260E942826C70132
+:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7
+:103FC000CF911F910F91FF90EF90DF90CF90BF9016
+:103FD0000C940C26103F49F118F4103E48F491C09F
+:103FE000123F09F453C0E8F1133F09F464C089C0DB
+:103FF0001F708B2D8F71002321F00E94A525812F2A
+:104000007CCE0E94C625812F26960FB6F894DEBF7F
+:104010000FBECDBFDF91CF911F910F91FF90EF9019
+:10402000DF90CF90BF900C94AD1D0023B1F02530F0
+:1040300008F02EC18B2D8F7126960FB6F894DEBF37
+:104040000FBECDBFDF91CF911F910F91FF90EF90E9
+:10405000DF90CF90BF900C94EB25263008F018C16C
+:10406000E9CF0023A9F08B2D8F7126960FB6F89417
+:10407000DEBF0FBECDBFDF91CF911F910F91FF909B
+:10408000EF90DF90CF90BF900C94A525002359F3BB
+:104090008B2D8F7126960FB6F894DEBF0FBECDBF65
+:1040A000DF91CF911F910F91FF90EF90DF90CF9014
+:1040B000BF900C94C625002399F08B2D8F71269606
+:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129
+:1040D0000F91FF90EF90DF90CF90BF900C949025C0
+:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD
+:1040F0001F910F91FF90EF90DF90CF90BF900C94A5
+:1041000086250023A9F0222309F4ADCF812F26961E
+:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8
+:104120000F91FF90EF90DF90CF90BF900C948F1C79
+:10413000222309F4ADCF812F26960FB6F894DEBF67
+:104140000FBECDBFDF91CF911F910F91FF90EF90E8
+:10415000DF90CF90BF900C94571D4B2D4F70612F67
+:10416000C7010E940B0626960FB6F894DEBF0FBE5D
+:10417000CDBFDF91CF911F910F91FF90EF90DF9016
+:10418000CF90BF900C94AA24011182C09B2D9F70E8
+:10419000492F50E04230510509F443C0C4F44115A1
+:1041A000510571F14130510509F072C026960FB6E4
+:1041B000F894DEBF0FBECDBFDF91CF911F910F915D
+:1041C000FF90EF90DF90CF90BF900C94312D433053
+:1041D0005105C1F14430510509F05AC0812F26968E
+:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108
+:1041F0000F91FF90EF90DF90CF90BF900C94832DA4
+:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB
+:104210001F910F91FF90EF90DF90CF90BF900C9483
+:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4
+:10423000CF911F910F91FF90EF90DF90CF90BF90A3
+:104240000C944D2D26960FB6F894DEBF0FBECDBF51
+:10425000DF91CF911F910F91FF90EF90DF90CF9062
+:10426000BF900C94602D4B2D4F70612FC701269687
+:104270000FB6F894DEBF0FBECDBFDF91CF911F9177
+:104280000F91FF90EF90DF90CF90BF900C94D507E7
+:1042900026960FB6F894DEBF0FBECDBFDF91CF914B
+:1042A0001F910F91FF90EF90DF90CF90BF900895F6
+:1042B0000E9408270E9418270E94DD260E943227AC
+:1042C0000E94EE2A0E943D2A80E090E00E94711B2D
+:1042D00080E090E00C94871B0E94F8260C945821F3
+:1042E0000E94A026292F22952F7030E02C30310516
+:1042F0004CF42A3031056CF422503109223031055A
+:1043000088F407C02C30310549F02F30310531F0E9
+:1043100009C0803E48F0803F29F406C093FB8827FF
+:1043200080F9089580E0089581E00895CF93DF93A8
+:1043300000D000D01F92CDB7DEB70F900F900F9036
+:104340000F900F90DF91CF910895CF93DF9300D01E
+:1043500000D000D0CDB7DEB726960FB6F894DEBFFA
+:104360000FBECDBFDF91CF9108951F93CF93DF9301
+:10437000C0917B0316E080917C03C81799F0D0E0D0
+:104380001C9FF0011D9FF00D1124E358FC4F40814C
+:10439000518162817381848195810E94A52121963A
+:1043A000C770E9CFDF91CF911F9108954091AD0380
+:1043B0005091AE036091AF037091B0038091B1034F
+:1043C0009091B2030C94A5218091B20382958F70D5
+:1043D00009F054C08091AF03882309F44FC0809145
+:1043E0007B03A0917C036091AD037091AE0340917B
+:1043F000B0035091B103B6E08A1709F43FC090E0D2
+:1044000041155105C1F17F3F11F46F3FA1F1B89FF4
+:10441000F001B99FF00D1124E358FC4F2181721374
+:104420002AC02081621327C02281211124C0238148
+:1044300034812417350710F421503109241B350B22
+:10444000283C3105C0F42091B2032F7020612093E5
+:10445000B20326E0289FF001299FF00D1124EE57AA
+:10446000FC4F80818F70806180838DEA93E00E9491
+:10447000B41D0C94B52101968770BECF0895CF92DC
+:10448000DF92EF92FF920F931F93CF93DF93CDB7FD
+:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA
+:1044A00085E0F801DE011D9601900D928A95E1F7F5
+:1044B000D8014C9111965C91119712966C911297BC
+:1044C0001396CD90DC9014973091AD037091AE03AC
+:1044D0008091B0039091B103009709F46BC17F3FC5
+:1044E00019F43F3F09F466C1E090AF03EE2009F4F0
+:1044F000C0C02091B203C816D90628F0F601E81B07
+:10450000F90BCF0104C0809590958C0D9D1DFF2463
+:10451000F394883C910578F0F12C207F09F0C6C017
+:104520007C2DD98AC88A89890E9496218DEA93E0D8
+:104530000E94B41DB1C0822F807F09F046C0751360
+:1045400014C0341312C0611110C02F702061209369
+:10455000B2030E94D6218DEA93E00E94B41D80919F
+:10456000B203D80115968C932EC0CD2819F15F3F68
+:1045700011F44F3FF9F0F62E61111CC080917B03BE
+:1045800020917C0336E0821709F45AC090E0389FEE
+:10459000F001399FF00D1124E358FC4F718157133E
+:1045A00006C07081471303C07281711103C0019668
+:1045B0008770E9CFF62E662309F418C18091B20303
+:1045C00081608093B203F12C11C1751308C03413BC
+:1045D00006C0611104C08091B203D801C3C04D87E9
+:1045E0005E878D859E856A8B0E9470216A898823EB
+:1045F000E1F16623D1F12091B203822F82958F7071
+:1046000090E0029774F08091AD039091AE0398878B
+:104610008F831986DB86CA862C87CE0107960E9477
+:10462000B41D86E0F801ADEAB3E001900D928A95E1
+:10463000E1F70E94E4210E94D621FF24F394D6C022
+:104640004D875E878D859E850E94A026292F229505
+:104650002F7030E0223031050CF0BCC09F7009F0A3
+:10466000B6C0805E883008F4C1C0C8010E94B41D85
+:10467000E4CFC816D90608F453C0F601E81BF90BBD
+:10468000CF01883C910508F450C0F12C7C2DD98ACB
+:10469000C88A89890E949621EDEAF3E086E0DF016D
+:1046A0001D928A95E9F70E94D621A0C0751314C007
+:1046B000341312C0611110C08091B203F8018583D8
+:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F
+:1046D0008A95E9F7FE2C8AC04D875E878D859E8579
+:1046E0006A8B0E9470216A89882309F4BECF6623F1
+:1046F00009F4BBCF2091B203822F82958F7090E096
+:1047000002970CF48ECF8091AD039091AE039A8303
+:1047100089831B82DD82CC822E83CE0101967FCFDE
+:10472000809590958C0D9D1DACCFF62E662309F4D7
+:104730009CCF75132EC034132CC02091B20320FDE2
+:104740001FC0822F82958F70D9F0D80115962C93B7
+:1047500015978F3049F08F5F982F9295907F822F19
+:104760008F70892B15968C93C8010E94B41D86E02A
+:10477000F801ADEAB3E001900D928A95E1F793CF8D
+:1047800086E0F801ADEAB3E001900D928A95E1F779
+:104790002DC04D875E878D859E850E947021811179
+:1047A00040CF8091B20381608093B203C8010E9420
+:1047B000B41D1CC0662309F458CF4D875E878D85D4
+:1047C0009E850E947021882309F44FCF2ACF811142
+:1047D00048CF0CC0243031050CF047CF9F7009F44E
+:1047E00040CFF8019581907F09F03BCF8F2D6296E5
+:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2
+:104800000F91FF90EF90DF90CF9008951F93CF937B
+:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F
+:10482000CDBF4F83588769877A878B879C87CE0156
+:1048300007960E943F22882369F08F8198852A85F8
+:104840003B85232BF1F19F3F09F063C08F3F09F0B7
+:1048500060C037C086E0FE013796DE0111960190F8
+:104860000D928A95E1F76F817885EA85FB8530970F
+:1048700041F17F3F11F46F3F21F120917C0330E043
+:10488000C90101968770992740917B0350E08417F6
+:10489000950709F447C069837A83FD83EC8396E02A
+:1048A000929FD001939FB00D1124A358BC4FFE01DD
+:1048B000319601900D929A95E1F780937C030E94C6
+:1048C000B52116E080917B0390917C038917C1F19B
+:1048D000189FC001112483589C4F0E943F228823B7
+:1048E00079F1E0917B031E9FF0011124E358FC4F06
+:1048F0004081518162817381848195810E94A521CB
+:1049000080917B0390E001968770992780937B03C9
+:10491000D9CF4F81588569857A858B859C850E9482
+:10492000A521CFCF0E946C2110927C0310927B03B3
+:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49
+:104940002C960FB6F894DEBF0FBECDBFDF91CF918E
+:104950001F910895EF92FF920F931F93CF93DF93D0
+:104960008C01009709F46CC0F12CEE24E394E8016B
+:104970002196F8018491843740F4843008F051C0C6
+:10498000813081F0823019F15BC0853709F444C071
+:10499000A8F19CE7980F903708F052C08F770E94DB
+:1049A000571D41C00E5F1F4FFE01C49180E28C0F66
+:1049B000883048F4C7708E2D01C0880FCA95EAF779
+:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD
+:1049D0001F4FFE01C49180E28C0F883058F4C770DD
+:1049E0008E2D01C0880FCA95EAF70E9411270E94F8
+:1049F00032271AC08C2F0E94571D16C00E5F1F4F02
+:104A0000FE01C491CC2381F08FE99FE00197F1F77B
+:104A100000C00000C150F6CF0E5F1F4FFE01F490A2
+:104A200003C00E948F1C8E018F2D882309F49FCF15
+:104A3000EFE9FFE03197F1F700C000008150F5CFBA
+:104A4000DF91CF911F910F91FF90EF9008950895FE
+:104A50006093B7037093B8038093B9039093BA033C
+:104A60000C9458210F931F930091B7031091B80332
+:104A70002091B9033091BA03DC01CB01802B912B3B
+:104A8000A22BB32B8093B7039093B803A093B903E1
+:104A9000B093BA031F910F910C9458210F931F9359
+:104AA0000091B7031091B8032091B9033091BA0374
+:104AB000DC01CB0180239123A223B3238093B7038E
+:104AC0009093B803A093B903B093BA031F910F91C9
+:104AD0000C9458210F931F930091B7031091B803C2
+:104AE0002091B9033091BA03DC01CB0180279127D3
+:104AF000A227B3278093B7039093B803A093B90379
+:104B0000B093BA031F910F910C9458211092B303E4
+:104B10001092B4031092B5031092B6030C9458216E
+:104B200041E050E060E070E004C0440F551F661F94
+:104B3000771F8A95D2F74093B3035093B4036093E1
+:104B4000B5037093B6030C94582141E050E060E047
+:104B500070E004C0440F551F661F771F8A95D2F777
+:104B60008091B3039091B403A091B503B091B603C3
+:104B7000482B592B6A2B7B2B4093B3035093B403E0
+:104B80006093B5037093B6030C94582141E050E054
+:104B900060E070E004C0440F551F661F771F8A95C0
+:104BA000D2F740955095609570958091B3039091A0
+:104BB000B403A091B503B091B603482359236A23E7
+:104BC0007B234093B3035093B4036093B503709376
+:104BD000B6030C94582141E050E060E070E004C05E
+:104BE000440F551F661F771F8A95D2F78091B30334
+:104BF0009091B403A091B503B091B603482759270B
+:104C00006A277B274093B3035093B4036093B503A3
+:104C10007093B6030C9458210F931F930091B30324
+:104C20001091B4032091B5033091B603DC01CB01A0
+:104C3000802B912BA22BB32B8093B3039093B403BF
+:104C4000A093B503B093B6031F910F910C94582114
+:104C50000F931F930091B3031091B4032091B503F8
+:104C60003091B603DC01CB0180239123A223B3232F
+:104C70008093B3039093B403A093B503B093B603AA
+:104C80001F910F910C9458210F931F930091B30320
+:104C90001091B4032091B5033091B603DC01CB0130
+:104CA00080279127A227B3278093B3039093B4035F
+:104CB000A093B503B093B6031F910F910C945821A4
+:104CC0000895CF92DF92EF92FF920F931F93CF93AD
+:104CD000DF938C01C090B703D090B803E090B90384
+:104CE000F090BA038091B3039091B403A091B503FF
+:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C
+:104D0000D701C6010C2E04C0B695A7959795879537
+:104D10000A94D2F780FF06C0B8018C2F0E942F0A98
+:104D2000019721F4219760F780E001C08C2FDF917B
+:104D3000CF911F910F91FF90EF90DF90CF9008954A
+:104D4000CF93DF93EC010E946126BE010E942F0ADF
+:104D5000DF91CF910895CB010E94A0260895209164
+:104D60001D0230911E02F90132969FEF40E05191F1
+:104D7000581789F09F3F19F4511101C0942F4F5FCC
+:104D80004630A9F79F3F39F0F901E90FF11D97FD72
+:104D9000FA9582830895089520911D0230911E0294
+:104DA000F9013296285F3F4F9081981301C010821D
+:104DB0003196E217F307C1F7089581E090E0E091A2
+:104DC0001D02F0911E02E80FF91F10820196883033
+:104DD0009105A9F708959091C603892B8093C60386
+:104DE000089580959091C60389238093C603089502
+:104DF0001092C60308959091C503892B8093C50333
+:104E0000089580959091C50389238093C5030895E3
+:104E10001092C50308959091C403892B8093C40315
+:104E2000089580959091C40389238093C4030895C5
+:104E30001092C40308958093BB0308951092BB039E
+:104E4000089580911D0290911E02FC0131969C01F3
+:104E5000285F3F4F80E0919191118F5FE217F30738
+:104E6000D1F70895E0911D02F0911E028091C603D2
+:104E70008083E0911D02F0911E0290818091C50314
+:104E8000892B8083E0911D02F0911E029081809118
+:104E9000C403892B80838091BB03882361F0E09158
+:104EA0001D02F0911E029081892B80830E94212790
+:104EB00081111092BB0380911D0290911E020C94EF
+:104EC0005B1B8091E803843039F11092C80320E421
+:104ED00088E190E00FB6F894A895809360000FBE2B
+:104EE0002093600080E00E94D20580E00E940A0BBF
+:104EF00083B7817F846083BF83B7816083BF7894E9
+:104F0000889583B78E7F83BF88E10FB6F89480932E
+:104F10006000109260000FBE089508950895CF9329
+:104F200080E00E94D2050E948D270E94AD0C0E9455
+:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD
+:104F4000C530C1F780E001C081E0CF9108950E9493
+:104F50006C2180E00E94D2050E94092D0E944F1B07
+:104F60000C940A0B1F920F920FB60F9211248F937D
+:104F70009F93AF93BF938091C803811113C0809119
+:104F8000C9039091CA03A091CB03B091CC03419681
+:104F9000A11DB11D8093C9039093CA03A093CB03B5
+:104FA000B093CC03BF91AF919F918F910F900FBEA3
+:104FB0000F901F90189582E084BD93E095BD9AEF05
+:104FC00097BD80936E0008952FB7F8948091C90320
+:104FD0009091CA03A091CB03B091CC032FBF089549
+:104FE000CF92DF92EF92FF920F931F932FB7F89417
+:104FF0004091C9035091CA036091CB037091CC03D7
+:105000002FBF6A017B01EE24FF248C0120E030E0F9
+:10501000C016D106E206F30610F4415051099A0178
+:10502000281B390BC9011F910F91FF90EF90DF9062
+:10503000CF9008951F920F920FB60F9211248F9365
+:105040009F93AF93BF938091C9039091CA03A0919E
+:10505000CB03B091CC030196A11DB11D8093C90370
+:105060009093CA03A093CB03B093CC03BF91AF91AD
+:105070009F918F910F900FBE0F901F9018950E94D7
+:105080004C18F8942FEF87EA91E621508040904029
+:10509000E1F700C0000087E090EBDC018093F303B0
+:1050A0009093F403A093F503B093F6039CE088E19A
+:1050B0000FB6F894A895809360000FBE909360009F
+:1050C000FFCF0E949B28811102C00E9477280E9476
+:1050D000A6288093C7030E94B3288093F1030E94FF
+:1050E000AA28682F70E080E090E00C9428256DEEEF
+:1050F0007EEF80E090E00E94BC3160E082E090E0D2
+:105100000E94AA3160E083E090E00E94AA3160E052
+:1051100084E090E00E94AA3160E085E090E00E9487
+:10512000AA3160E086E090E00E94AA316FEF87E04C
+:1051300090E00C94AA3180E090E00E94A43121E03C
+:105140008D3E9E4F09F020E0822F089582E090E08E
+:105150000C949C3183E090E00C949C31682F83E0A8
+:1051600090E00C94AA3184E090E00C949C31682F7C
+:1051700084E090E00C94AA3186E090E00C949C319D
+:10518000682F86E090E00C94AA3187E090E00C94C0
+:105190009C31682F87E090E00C94AA318091CF0376
+:1051A00080FF0BC06091220285E0689FB00111244E
+:1051B00075956795759567952BC081FF09C06091BE
+:1051C000220285E0689FB00111247595679520C083
+:1051D00082FF07C06091220285E0689FB001112420
+:1051E00017C09091D0039923D1F0609121029617B6
+:1051F00088F72091220285E0289F90011124929F38
+:10520000A001939F500D112470E0CA010E948231C9
+:105210006038710540F46115710539F002C065E030
+:1052200070E0862F08958FE7089581E008958091BA
+:10523000CF0380FF08C06091200270E075956795EC
+:105240007595679521C081FF06C06091200270E0CE
+:105250007595679519C082FF04C06091200270E0C7
+:1052600010C09091D0039923C1F060911F0296174E
+:10527000A0F780912002899FC001112470E00E9454
+:1052800082316038710528F46115710521F0862F8F
+:1052900008958FE7089581E0089561E070E0F4CF0C
+:1052A000803F21F40E94CE28819504C0813F29F4DB
+:1052B0000E94CE288093D3030895823F21F40E9458
+:1052C000CE28819504C0833F29F40E94CE28809384
+:1052D000D2030895893F19F40E94172905C08A3F17
+:1052E00031F40E94172981958093D40308958B3F50
+:1052F00021F40E941729819504C08C3F29F40E9453
+:1053000017298093D5030895843F21F48091D10318
+:10531000816017C0853F21F48091D103826011C064
+:10532000863F21F48091D10384600BC0873F21F434
+:105330008091D103886005C0883F31F48091D1030A
+:1053400080618093D10308958D3F21F48091CF0334
+:1053500081600BC08E3F21F48091CF03826005C035
+:105360008F3F29F48091CF0384608093CF03089509
+:10537000803F39F48091D30387FF6CC01092D30330
+:1053800069C0813F29F48091D3031816BCF362C031
+:105390009091D203823F29F497FF5CC01092D20310
+:1053A00059C0833F19F41916CCF354C0893F41F416
+:1053B0008091D40318160CF04DC01092D4034AC04B
+:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6
+:1053D00039F48091D50387FF3DC01092D5033AC0C0
+:1053E0008C3F29F48091D5031816BCF333C0843F59
+:1053F00021F48091D1038E7F17C0853F21F48091E5
+:10540000D1038D7F11C0863F21F48091D1038B7F22
+:105410000BC0873F21F48091D103877F05C0883F6F
+:1054200031F48091D1038F7E8093D10313C08D3FDF
+:1054300021F48091CF038E7F0BC08E3F21F48091A9
+:10544000CF038D7F05C08F3F29F48091CF038B7FE1
+:105450008093CF038091D20381110EC08091D3033A
+:1054600081110AC08091D403811106C08091D503B7
+:10547000811102C01092D003089581ED93E00E9443
+:10548000661B0E94E4279093CE038093CD0308957A
+:105490001F93CF93DF938091CD039091CE030E9411
+:1054A000F027AC019091D003992321F020912302A1
+:1054B00030E006C0209124028AE0289F9001112448
+:1054C0004217530708F486C08091D203C091D303DA
+:1054D000D091D4031091D503811107C0C11176C0BA
+:1054E000D11174C0111172C075C09F3F19F09F5F38
+:1054F0009093D003181624F40E94CE288093D203F0
+:105500008091D20387FF05C00E94CE2881958093A9
+:10551000D2031C1624F40E94CE288093D3038091DA
+:10552000D30387FF05C00E94CE2881958093D303C3
+:105530006091D203662339F1C091D303CC2319F1D2
+:10554000772767FD7095872F972F0E94A42E23E35E
+:1055500033E343E35FE30E94B42F0E94712E609314
+:10556000D2036C2F772767FD7095872F972F0E94A6
+:10557000A42E23E333E343E35FE30E94B42F0E94AE
+:10558000712E6093D3031D1624F40E941729809373
+:10559000D4038091D40387FF05C00E941729819509
+:1055A0008093D403111624F40E9417298093D50305
+:1055B0008091D50387FF05C00E94172981958093AC
+:1055C000D503DF91CF911F910C943D2A9F3F09F0A5
+:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B
+:1055E00085E0DF011D928A95E9F71092D0031092B1
+:1055F000CF030895833081F128F4813059F082304F
+:10560000D1F00895853009F449C0B8F1863009F425
+:1056100056C0089580912402262F30E0280F311DB6
+:105620002F3F310524F4680F6093240208958FEF13
+:1056300080932402089580912302262F30E0280FC2
+:10564000311D2F3F310524F4680F60932302089524
+:105650008FEF80932302089580912202262F30E05D
+:10566000280F311D2F3F310524F4680F609322026B
+:1056700008958FEF80932202089580912102262FB2
+:1056800030E0280F311D2F3F310524F4680F60935F
+:10569000210208958FEF80932102089580912002C6
+:1056A000262F30E0280F311D2F3F310524F4680FDD
+:1056B0006093200208958FEF8093200208958091D7
+:1056C0001F02262F30E0280F311D2F3F310524F413
+:1056D000680F60931F0208958FEF80931F02089553
+:1056E000833011F128F4813049F0823091F008952F
+:1056F000853081F120F18630C1F108958091240236
+:10570000681720F4861B80932402089510922402C7
+:10571000089580912302681720F4861B809323024A
+:10572000089510922302089580912202681720F4B0
+:10573000861B809322020895109222020895809180
+:105740002102681720F4861B80932102089510928D
+:105750002102089580912002681720F4861B80930F
+:105760002002089510922002089580911F02681768
+:1057700020F4861B80931F02089510921F02089543
+:105780000F931F938732D8F58E3108F087C08E3083
+:1057900009F471C098F4873009F45BC08B3009F4C8
+:1057A00091C0863009F095C08091C703817F8E7FBC
+:1057B0008093C70381E08093D7038CC0863109F4BE
+:1057C00081C068F4803109F084C08091C70383FBF5
+:1057D000222720F991E0922790FB83F955C0893167
+:1057E00009F470C08B3109F074C08091C70381FB4C
+:1057F000222720F991E0922790FB81F945C0883358
+:1058000009F460C050F4893209F45EC0853309F4AC
+:105810005BC0873209F458C05CC0833409F454C0BB
+:1058200028F48A3308F455C0895339C0883409F004
+:1058300050C00E946C210E94B2070FEF13ED20E3CD
+:10584000015010402040E1F700C000000E943F28B6
+:1058500039C09091C703892F8095817080FB90F9A2
+:1058600029F0966098609093C70334C0997F977F22
+:105870009093C70327C08091C70382FB222720F99A
+:1058800091E0922790FB82F98093C7039923D1F08E
+:105890008091C70381608093C70314C08D5141E09C
+:1058A00050E060E070E08A019B0104C0000F111F0E
+:1058B000221F331F8A95D2F7C901B8010E942825FB
+:1058C0000E946C2181E006C061E070E080E090E021
+:1058D000F5CF80E01F910F91089580E0089580E05A
+:1058E0000895CF93C82F8091D703813069F018F0C5
+:1058F0008230C9F184C0E0911D02F0911E028081C6
+:10590000823209F07EC007C0E0911D02F0911E02B4
+:105910008081823261F48C2F0E946D2C811104C031
+:105920008C2F0E94C02B1DC081E090E01AC08C2FEC
+:105930000E946F2C811114C0C43179F048F4CB302F
+:1059400079F0C03109F061C082E08093D70308C0CC
+:10595000C93219F0C83321F058C01092D70355C08E
+:1059600081E0817054C0C93291F120F5C43179F1E0
+:10597000B0F4C73009F047C08EE18093240282E37F
+:10598000809323028AE08093220284E180932102A3
+:1059900088E08093200288E280931F0234C0CE51B9
+:1059A000C63088F5EC2FF0E0E451FD4F8081809304
+:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7
+:1059C00013C0C13579F0C235F1F461E00DC08091AA
+:1059D000D603882319F01092D60315C081E0809376
+:1059E000D70315C061E006C08091D6030E94FA2A51
+:1059F0000AC06AE08091D6030E94702B04C0109206
+:105A0000D70380E004C081E002C080E0AACFCF913C
+:105A100008950E949B28811102C00E9477280E944D
+:105A2000BC288093F20380FF02C0869501C080E00D
+:105A30000C94D2058091F203982F9695292F30E08F
+:105A4000233031054CF49F5F990F8170892B816061
+:105A50008093F2030E94C0288091F20386950C94F3
+:105A6000D2058091F203982F969591F09158990F55
+:105A70008170892B8093F2038E7F91E009F490E08E
+:105A80008091F20390FB80F98093F2030E94C0287A
+:105A90008091F20386950C94D2058091F203982FA1
+:105AA000909590FB80F98093F2030E94C02880912A
+:105AB000F20380FF02C0869501C080E00C94D205FD
+:105AC0009091F203892F86958F5F8F779170843044
+:105AD00028F4880F892B8093F20302C09093F2037D
+:105AE0008091F2038E7F91E009F490E08091F203BF
+:105AF00090FB80F98093F2030E94C0288091F2030A
+:105B000086950C94D2052091F203922F96958927C1
+:105B1000982F990F822F8170892B8093F2038E7FAB
+:105B200091E009F490E08091F20390FB80F980937A
+:105B3000F2030E94C0288091F20386950C94D2054E
+:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F
+:105B500020F031F49F3F11F41EF4B7C10EF4E0952C
+:105B6000E7FB9FC1E92FD3D180F3BA176207730710
+:105B70008407950718F071F49EF5EBC10EF4E095DB
+:105B80000B2EBA2FA02D0B01B90190010C01CA01F7
+:105B9000A0011124FF27591B99F0593F50F4503EA2
+:105BA00068F11A16F040A22F232F342F4427585F94
+:105BB000F3CF469537952795A795F0405395C9F7AC
+:105BC0007EF41F16BA0B620B730B840BBAF0915064
+:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003
+:105BE000BA0F621F731F841F48F4879577956795D6
+:105BF000B795F7959E3F08F0B3CF9395880F08F0BF
+:105C00009927EE0F97958795089527D108F481E09D
+:105C100008950CD06BC163D140F05AD130F021F41B
+:105C20005F3F19F03EC1511195C14FC170D198F33A
+:105C30009923C9F35523B1F3951B550BBB27AA270D
+:105C400062177307840738F09F5F5F4F220F331F7F
+:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B
+:105C600091505040E695001CCAF729D0FE2F27D04E
+:105C7000660F771F881FBB1F261737074807AB071C
+:105C8000B0E809F0BB0B802DBF01FF2793585F4F91
+:105C90002AF09E3F510568F004C15CC15F3FECF300
+:105CA000983EDCF3869577956795B795F7959F5F56
+:105CB000C9F7880F911D9695879597F90895E1E0AA
+:105CC000660F771F881FBB1F621773078407BA0709
+:105CD00020F0621B730B840BBA0BEE1F88F7E09564
+:105CE000089504D06894B11135C1089518D188F091
+:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8
+:105D0000771F881F991F1AF0BA95C9F712C0B130D2
+:105D100081F01FD1B1E008951CC1672F782F88272B
+:105D2000B85F39F0B93FCCF3869577956795B39511
+:105D3000D9F73EF490958095709561957F4F8F4F80
+:105D40009F4F0895E89409C097FB3EF49095809585
+:105D5000709561957F4F8F4F9F4F9923A9F0F92F31
+:105D600096E9BB279395F695879577956795B795AF
+:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95
+:105D80007F4F8F4F9F4F16C0882311F096E911C0A7
+:105D9000772321F09EE8872F762F05C0662371F0C8
+:105DA00096E8862F70E060E02AF09A95660F771FDC
+:105DB000881FDAF7880F9695879597F9089588D008
+:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7
+:105DD000B0F35523C9F3E7FB6217730784079507F0
+:105DE000A8F199F3E92FFF2788232AF03197660F4E
+:105DF000771F881FDAF7952F5527442332F09150EB
+:105E00005040220F331F441FD2F7BB27E91BF50B6D
+:105E1000621B730B840BB109C1F222F4620F731F72
+:105E2000841FB11D31972AF0660F771F881FBB1F93
+:105E3000EFCF915050405AF041F0882332F0660F76
+:105E4000771F881F91505040C1F7939530C08695B9
+:105E5000779567959F5FD9F7F8CF990F0008550F91
+:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0
+:105E700012161306E407F50798F0621B730B840BE8
+:105E8000950B39F40A2661F0232B242B252B21F4C2
+:105E900008950A2609F4A140A6958FEF811D811D62
+:105EA000089597F99F6780E870E060E008959F3F4C
+:105EB00031F0915020F4879577956795B795880FC5
+:105EC000911D9695879597F908959FEF80EC089519
+:105ED00000240A94161617061806090608950024C9
+:105EE0000A9412161306140605060895092E039443
+:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7
+:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15
+:105F10009058440F551F59F05F3F71F04795880F17
+:105F200097FB991F61F09F3F79F0879508951216AE
+:105F300013061406551FF2CF4695F1DF08C016165A
+:105F400017061806991FF1CF86957105610508940B
+:105F50000895E894BB2766277727CB0197F9089522
+:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD
+:105F7000B6DF18F0952309F094CFA7CF1124EACF0C
+:105F8000C6DFA0F3959FD1F3950F50E0551F629F98
+:105F9000F001729FBB27F00DB11D639FAA27F00D82
+:105FA000B11DAA1F649F6627B00DA11D661F829FA9
+:105FB0002227B00DA11D621F739FB00DA11D621F8E
+:105FC000839FA00D611D221F749F3327A00D611DAB
+:105FD000231F849F600D211D822F762F6A2F11248D
+:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0
+:105FF000BB1F661F771F881F91505040A9F79E3F17
+:10600000510570F04ECFA6CF5F3FECF3983EDCF326
+:10601000869577956795B795F795E7959F5FC1F753
+:10602000FE2B880F911D9695879597F90895FA0193
+:10603000EE0FFF1F30962105310599F161157105AD
+:1060400061F48038BFE39B0749F16894903881057B
+:1060500061F08038BFEF9B0741F0992342F5FF3F85
+:10606000E1053105210511F1E8940894E795D9017E
+:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27
+:1060800070F4A695E0F7F73950F019F0FF3A38F4BC
+:106090009F779F930CD00F9007FC905808953EF087
+:1060A00014CF60E070E080E89FE308954FE79F77AA
+:1060B0005F934F933F932F939ED02F913F914F919A
+:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A
+:1060D00026DFC8F39638C0F707F80F92E8942BE351
+:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF
+:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD
+:10610000EF91FF91E595EE1FFF1F49F0FE57E06804
+:106110004427EE0F441FFA95E1F74195550B32D015
+:106120000F9007FE26C00895DF93CF931F930F9320
+:10613000FF92EF92DF927B018C01689405C0DA2E0A
+:10614000EF011EDFFE01E894A5912591359145915F
+:106150005591AEF3EF0106DDFE019701A801DA9437
+:1061600079F7DF90EF90FF900F911F91CF91DF9122
+:1061700008959B01AC0160E070E080E89FE349CDA9
+:1061800090CE95CECCDEE8F39923D9F3940F511D30
+:10619000BBF39150504094F059F0882332F0660FD1
+:1061A000771F881F91505040C1F79E3F510544F71B
+:1061B000880F911D9695879597F908955F3FACF0EC
+:1061C000983E9CF0BB27869577956795B79508F420
+:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A
+:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8
+:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0
+:10620000DF93CF931F930F93FF92C92FDD2788232E
+:106210002AF02197660F771F881FDAF720E030E019
+:1062200040E85FEB9FE3883920F0803E30F0219614
+:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E
+:1062400073DF8B01BE01EC01FB2E6F577109759551
+:10625000771F880B990B78DD28E132E741E35FE394
+:106260008FDEAF2D9801AE01FF900F911F91CF915E
+:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A
+:10628000AC01BF5728F422273327442750781FC07A
+:10629000B75188F4AB2F0024469537952795011CFC
+:1062A000A395D2F3002069F0220F331F441FB3954A
+:1062B000DAF30DD045CC61307105A0E88A07B94604
+:1062C00030F49B01AC0166277727882790783096B9
+:1062D00021F020833183428353830895AA1BBB1B83
+:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6
+:1062F000B70B881F991F5A95A9F780959095BC01F7
+:10630000CD01089597FB072E16F4009407D077FD72
+:1063100009D00E946E3107FC05D03EF4909581951E
+:106320009F4F0895709561957F4F0895EE0FFF1F61
+:106330000590F491E02D0994F999FECF92BD81BDAD
+:10634000F89A992780B50895A8E1B0E042E050E0BE
+:106350000C94C431262FF999FECF92BD81BDF89AD5
+:10636000019700B4021639F01FBA20BD0FB6F89499
+:10637000FA9AF99A0FBE08950196272F0E94AB3121
+:106380000C94AA31DC01CB01FC01F999FECF06C0C7
+:10639000F2BDE1BDF89A319600B40D9241505040E3
+:0863A000B8F70895F894FFCF4F
+:1063A8000C52D02445000000410000DC44000000ED
+:1063B8004152D0A4440000404100005C4400000069
+:1063C8004148F17644000000415C978A440000008F
+:1063D800411FD592440000004152D0A4440000005F
+:1063E800415CFFB844000000410AA7CF4400000008
+:1063F800410000DC44000000410AA7CF440000002F
+:10640800410000DC44000000410000000000008062
+:106418004052D024450000404100000000000080A8
+:10642800400AA74F45000040410AA7CF440000009A
+:10643800410000DC44000000410000000000008032
+:106448004052D024450000004100000000000080B8
+:10645800405CFF384500000041000000000000805B
+:106468004052D02445000000410AA7CF4400000054
+:10647800410000DC440000004100000000000080F2
+:106488004052D024450000804110F176440000A01D
+:106498004112F1F6440000004141909B440000A0E5
+:1064A8004112F1F64400000041050000003F0000E1
+:1064B800C8427B140915E614B2147E1401BC0328E3
+:1064C80008140A321E000002000400050007000933
+:1064D800000B000C000E001000110013001500172F
+:1064E8000018001A001C001D001F002100230024B2
+:1064F800002600280029002B002D002F0030003234
+:106508000034003500370039003B004200450025C3
+:106518000026004300610060002000370064006529
+:1065280000660067004400460024004700314980A7
+:106538003F5D8B803FF8BF803FCAE1803F73ED80AD
+:106548003FCAE1803FF8BF803F5D8B803F31498083
+:106558003F0000803FF16D7F3F75EA7E3F4C827EB1
+:106568003F833F7E3F84287E3F833F7E3F4C827E31
+:106578003F75EA7E3FF16D7F3F0000803F3F4D361B
+:10658800B90A6C0A360AE209FB09140A0102030473
+:06659800050607080900DA
+:00000001FF
diff --git a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex new file mode 100644 index 0000000000..c42365c436 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex @@ -0,0 +1,1880 @@ +:020000020000FC
+:047000000C948D3E21
+:047028000C94B73DD0
+:10702F0012010002FF010020EB03F42F0000010208
+:10703F00030109021200010100803209040000005F
+:10704F00000000000C03410054004D0045004C00AF
+:10705F001603410054006D00330032005500340018
+:10706F004400460055000C0331002E0030002E0066
+:10707F0030000403090416010C0100000C0000018C
+:02708F006C7F14
+:1070920012BD01BDF89A00B5089501E00895F9996D
+:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929
+:1070B200FECF0C944938F80104910895F8013491F7
+:1070C20031962491890108950091610000930C0189
+:1070D20000E80093610001E00093610005BF02E057
+:1070E20005BF0C9486380091D70001600093D70049
+:1070F200A89507EF04BF0091600000610093600053
+:1071020000E00093600001E008950E94AA3D0E9401
+:10711200B53DFDCF0CD00F7708D0006806D00061D6
+:1071220004D0016028D0789408950093D80000918B
+:10713200D8000895FCDF00621ED04CD009B500FFD4
+:10714200FDCFF5DF0F7D17D00091E0000E7F009399
+:10715200E0000091E000077F0093E0000091E20070
+:1071620001600093E2000091E20008600093E200F7
+:1071720078940C94743B0093D800089500910D010B
+:10718200002359F40091D90000FF07C0D0DF006846
+:10719200F2DF01E000930D01CDDFE0E2F2E00081D9
+:1071A200018100FF0DC0008111811E7F11830083C8
+:1071B20001E00093EA0000E00093EA0000931E025F
+:1071C20000E00093E9000091E80003FF02C00E9482
+:1071D200F23B0895A89539D000E40093600000E0E6
+:1071E200009381000093800010E0009385000093DB
+:1071F200840001E006BB00918100036000938100DE
+:107202000091600007FFFCCF00E80093600010933C
+:107212008100A89507EF04BF18D010936000209159
+:1072220084003091850010938100109380001093A8
+:1072320085001093840001E006BB2D3D354010F01F
+:1072420002E101C002E009BD089500916000006101
+:107252000093600008950E94AD3E239741D100E063
+:1072620000930901B5D104811581012B51F437D165
+:1072720000910701002309F4B9C000E0009307015F
+:10728200B5C058D102FFFDCF37D1068335D1009367
+:107292000F0132D1009310012FD1009311012CD193
+:1072A2000093120129D10093130102852091130149
+:1072B20030911201409111015091100116811A95DD
+:1072C20041F01250A9F01A9599F11A9509F473C078
+:1072D2008BC010910F01113011F411E001C010E0C8
+:1072E200138799D00C3F11F414D17FC077D17DC0A0
+:1072F20092D010910F01112329F01A9549F01A9595
+:10730200A9F073C010E013870C3F09F06EC0ECCFF8
+:1073120056D103C04CD109F468C00D911C9144D1DF
+:107322000F3FC1F305E0009309015FC011E0EBCF0D
+:10733200D2D029F00250E1F10A9541F056C0FDD0B9
+:107342000E94A33F0FEF00930A014FC0552319F08B
+:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE
+:1073620003FFFDCF67D051D04AD008E00093600000
+:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F
+:1073820044D00FEF1FE004C009811A810150104060
+:1073920009831A8309811A81012BB1F700E800934E
+:1073A200610000910C01009361000C940000FFCF7A
+:1073B20001E003871AC08FD019F00A9539F015C081
+:1073C200535098F4BAD002E000870FC0505339F0FE
+:1073D2005A9541F05F52B1F35A95A1F306C002E00B
+:1073E2000883F0CF01E0FCCFA8D079D02396E4E067
+:1073F2000C94BA3E01E005BF00E005BF089500917C
+:10740200D8000F770093D800089509B50D7F09BD04
+:1074120000E009BD08955183408333832283109194
+:10742200E8001B7F1093E8001091E8001F7710938B
+:10743200E80008955DD053D0F8940091E000016017
+:107442000093E000089579D04AC0219749D0009175
+:107452000601035019F00250B9F00BC03CD021F0E4
+:107462000A9559F00A9529F400910A010C3F19F482
+:1074720050D02196089567D0FCCF0091010100936E
+:10748200F100009100010AC01091100124D019F0FE
+:107492000A9549F0EECF135018F400E00093F10082
+:1074A2001ED044D0E6CF105339F01A9539F01F524E
+:1074B20041F01A9541F0F4CF08E5F0CF00E006D094
+:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5
+:1074D20030E00C94113F00910F010023089521C068
+:1074E2000BD008D007D00093040106D00093050109
+:1074F20021D00BC000D008830091F10008950091C3
+:10750200EB0000620093EB0015D0077F0093E800C8
+:107512000895F5DF02E00093080103E000930901FA
+:10752200089559D007D000FFFDCF089503D002FF80
+:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A
+:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD
+:107552002BD00093F1002BD059F43DD0082F092BEA
+:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1
+:10757200042D4394003289F300910B0100230D91F5
+:107582001C9131F311970E945838E3CFD3DF00FFEB
+:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B
+:1075A200CCDFE5E00C94B93E11970C945C380D9158
+:1075B2001C910F5F1F4F1C930E93019708958281B8
+:1075C200938100811181801B910B0196DF01089547
+:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71
+:1075E200F7DF80819181A081B181AF710481158122
+:1075F20000521040048315830AC000910B0100233E
+:1076020031F4A301920103E911E00E943B3F47D00C
+:10761200B8F1662477242C0111C06EDFF301ED5618
+:10762200FE4F008301E0600E00E0701E01960091A3
+:10763200F200002311F033D0B8F47FDF30D0E8F24B
+:10764200F301B096E238F040C0F674DF02FFFDCFDE
+:107652000091F200BDDF24813581201B304024835C
+:107662003583E5CF49DFAA95AA23E1F700910B0103
+:10767200013099F62091F1008C010E945038D6CF4A
+:1076820004811581012B21F055DF02FFFDCF55DF6B
+:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051
+:1076A200F1E0028113810817190708952091EB0078
+:1076B20021602093EB000093EC000091ED0002703A
+:1076C200012B0093ED000091ED0002600093ED00AC
+:1076D2001091EE00012F000F00E0001F0895412FCE
+:1076E2000093E900089500E009D000FD05C000E024
+:1076F200F7DF10E202E0DACF00E00895F1DF009157
+:10770200EB0008950F770132A9F5112369F11A955B
+:1077120059F01A9561F01A9569F01A95F9F01A95CF
+:10772200C1F01A95D9F024C00E942C3920C00E94C1
+:10773200263A1DC029D00091090123D001E01FD0B3
+:1077420020D0009108011BD00E94923A0E94973AE1
+:107752000EC01AD00091080114D007C002E00093B5
+:10776200080100E0009309010FD00E94923A03C081
+:107772000E94803A02C001E0089500E0089501D01D
+:1077820000E00093F10008950091E800077F009364
+:10779200E800089508950350F9F4112339F01A9579
+:1077A20051F01A9581F01A9599F016C004E016D09E
+:1077B20001E810E703C011D003E510E7E7E1F2E0CA
+:1077C20000831183D8CF06E109D00FE510E7F6CF89
+:1077D20004D005E710E7F2CFD0CF0CE000931A02F5
+:1077E200089527D120D100931D02E1D0212F11232A
+:1077F20029F12A95E9F02250F1F0225099F02A95C8
+:1078020049F0225061F02A9581F02A95E1F02A95FB
+:10781200E9F023C0003809F44FC00C94833B0038D0
+:10782200E1F7C8C00023C9F71EC00023B1F72DC07D
+:10783200033098F744C1033080F70BC1003868F376
+:10784200033858F7C9C0013841F77BC1013051F400
+:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA
+:1078620009F41ED008951091E3001078DCD00F7750
+:10787200012B0093E300E9D0ACD000FFFDCF0091D3
+:10788200E30000680093E300089591D0123040F4C1
+:107892000FD010931E02DAD000911E020C94CB3B43
+:1078A2000091EB0001D004C000620093EB00089548
+:1078B2000091E800077FC0C0BA93AA93229700E024
+:1078C2000093190274D0AFD0202F2A9519F02A956F
+:1078D200E9F022C002E100931A020FE210E7E7E1A9
+:1078E200F2E0008311839DD008839DD00983E0DFFD
+:1078F20000911A0210E02881398102171307A8F4B7
+:107902000F7181F401E00093190211C002E10093AA
+:107912001A0201E410E7E3CF0E94CC3B002319F7DF
+:107922008ED040C01093190202C020931A027ED05A
+:10793200A7E1B2E001C08AD000911A02002309F146
+:1079420048D004FD1EC045D000FD03C042D004FF54
+:10795200FACF10E0012F1395003281F0ED91FC91E6
+:107962001197049133D02D913C912F5F3F4F3C935F
+:107972002E93FD0103810A95038361F72AD004FF48
+:10798200DACF00911902013039F423D004FD04C08A
+:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F
+:1079A20018D00B7F49D02296A991B99108951091D0
+:1079B200F10008957DDF00911E0208D047D009D062
+:1079C2000F773AD006D002FFFDCFBFC00093F1007F
+:1079D20008950091E800089524D010911D021058D6
+:1079E20029F01A9589F01A9591F019C061DF00917A
+:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63
+:107A020018D0E7DF0F770CC053DF00E0F2CF51D080
+:107A12000F7710E0F801E55EFD4F0081EACF0FD04D
+:107A22000BC001D000D00091F1000895D2DF0F7E8B
+:107A320003C00091E8000B7F0093E80008950091D5
+:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31
+:107A5200F3CF00911D02002329F00A9509F10A953E
+:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE
+:107A7200B9F4D9DF0F7711F416D01BD00093E900C7
+:107A82001091EB0010FF0BC00ED010E01093E90034
+:107A920021E0F801E55EFD4F20834FD003C042D0C4
+:107AA20045D0CFDFC9CF1091EB0010621093EB00ED
+:107AB20008951091E800177F1093E800089500914F
+:107AC2001D02002311F4AFDF02C0013011F4B7DF51
+:107AD200B3CF023031F52DD019F52091F1002F7777
+:107AE2002093E90023D000FF19C081F01FD000616C
+:107AF200DCDE01E010E0422F0E949F3E0093EA008C
+:107B020000E00093EA0012D00860CFDE0BD030E034
+:107B1200F901E55EFD4F008310D0DACF03D0D7CF55
+:107B2200BFDE089500E00093E90008950091EB00A4
+:107B3200089579DF3CDF00230895BADE4ADF0E7F25
+:107B4200089583DF46DF02FFFDCF73DF42DF0F7749
+:107B520073CF0091D70001600093D7000E948B3849
+:107B620000E000931F0208950C94BF388A93FA93A1
+:107B7200EA933A922A921A920A927A936A935A93BF
+:107B82004A933A932A931A930A938FB70091DA0091
+:107B920000FF24C00091D80000FF20C00EEF009328
+:107BA200DA000091D90000FF11C001E000930D013D
+:107BB200ABD0026096D09AD00860A2D00E949B38C7
+:107BC2000091E0000E7F0093E00008C000E0009307
+:107BD2000D0100931E0298D0046083D07FD002FF73
+:107BE20005C084D002FF02C00BEF75D077D000FF32
+:107BF2001BC07CD000FF18C001E000930E016AD0C8
+:107C020083D000626ED00EEF6FD0006179D06ED05B
+:107C12000F7D76D00091D80000620093D80009B59C
+:107C22000D7F09BD00E009BD59D004FF20C05ED020
+:107C320004FF1DC009B500FD05C00E94EB3809B55F
+:107C420000FFFDCF0091D8000F7D0093D80042D0F5
+:107C520000910E01002359F04CD00FEE45D00F7E5B
+:107C620052D000643ED042D001604AD042D036D0D9
+:107C720005FF0FC03BD005FF0CC000E000930E01D2
+:107C820035D00F7E3DD00FED2FD00F7D3CD0006858
+:107C920028D024D003FF0DC029D003FF0AC000E082
+:107CA20000931F0207EF17D00E94743B2DD0116082
+:107CB20018D08FBF09911991299139914991599100
+:107CC200699179910990199029903990E991F991E6
+:107CD200899118950FEE0093E10008950091E1005B
+:107CE20008951183008308950093E1000091E2005A
+:107CF20008950091E200006203D00091E200086062
+:107D02000093E2000895FCDFE0E2F2E000811181DD
+:107D1200089500008895FECF01E60DBF02E00EBF78
+:107D2200C2EED2E00E947438002311F00E94D33ECA
+:107D32000E9465380E948A3E0C948A3E4A951AF047
+:107D4200000F111FFBCF0895BA92AA929A928A92BB
+:107D52007A926A925A924A92BA93AA939A938A937D
+:107D62000895BB84AA84998488847F806E805D8014
+:107D72004C80BB81AA8199818881F0E00FB6F8948A
+:107D8200CE0FDF1F0FBE089520E006D0E9F7089559
+:107D9200259102D0E9F708952D9301501040202F2C
+:107DA200212B089585E890E7FC0105911491FC01CF
+:107DB2003296A591B491FC01349625913491422FCB
+:107DC200432B19F0F901E4DF01C0DEDF069610E76C
+:107DD2008139910748F308952F930CD02F9101D048
+:107DE20008953CD0F12FE02F45E047BFE89536D00B
+:107DF20012D0089533D0F12FE02F43E047BFE8952A
+:107E02002DD008952BD0F12FE02F43E047BFE89506
+:107E120025D001D0089522D041E147BFE8951EC088
+:107E22001DD0F12FE02F41E247BFC895002D16C0AB
+:107E320015D0F12FE02F49E047BFC895002D0EC0A5
+:107E4200F32FE22F012E102E41E047BFE89506C026
+:107E520005D0002E29E027BFE89500C0022E27B7E3
+:107E620020FDFCCF202D0895022E27B726FDFCCF42
+:107E7200202D08950E94A53E22974801C901DA01EA
+:107E820010C05BD001E0A00E00E0B01E00E4A0161E
+:107E920000E0B00608F440C0830120E030E00E9418
+:107EA200F23E0A2F0B2B09F440C0082F0F7710E087
+:107EB2002C01401A510A320100E4A02E03C00A2FFD
+:107EC2000B2BE1F04816590680F0F40101914F01A5
+:107ED2000983119729F001914F010883119711C06D
+:107EE200F2013196049108830CC0F20104910983D6
+:107EF2003196E817F907A1F7F401EDCF1BD00883FB
+:107F020019839201088119810E94213F16D0AA94F7
+:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE
+:107F220009F4AFCF83011DD0B7CF01E02296ECE078
+:107F32000C94B23E82010C945F3802E0400E00E0E5
+:107F4200501E08959A938A9380E090E08C0109D0A4
+:107F520080589F4F8F3F0FE69007C0F38991999108
+:107F6200089520E030E00C94FB3E00000000000089
+:067F720000000000FC000D
+:107FE4000C94ED3E0C94113F0C94193F0C94213FDA
+:0C7FF4000C94F23E0C94033F0C94293FC7
+:040000030000700089
+:100000000C947C050C94C0050C94C0050C94C005A0
+:100010000C94C0050C94C0050C94C0050C94C0054C
+:100020000C94C0050C94C0050C94C7180C94991935
+:100030000C94B2270C94C0050C94C0050C94C00518
+:100040000C94C0050C94C0050C94C0050C94C0051C
+:100050000C94C0050C941A280C94C0050C94C0058F
+:100060000C94C0050C94C0050C94C0050C94C005FC
+:100070000C94C0050C94C0050C94C0050C94C005EC
+:100080000C94E50E0C94C0050C94C0050C94C005AE
+:100090000C94C0050C94C0050C94C0050C94C005CC
+:1000A0000C94C0050C94C0050C94C0051B062B06CF
+:1000B0003D064D06530662066E06730680068806E8
+:1000C00098069D06061A281A161B281A161B6D1A62
+:1000D000901A161BE51AF81AFB1DFB1D381E381E58
+:1000E000921ED01E48214821E91E4821EA1FEA1F1E
+:1000F000AD20C4204821332107634236B79BD8A7DF
+:100100001A39685618AEBAAB558C1D3CB7CC57633C
+:10011000BD6DEDFD753EF6177231BF000000803FEA
+:1001200008000000BE922449123EABAAAA2ABECD06
+:10013000CCCC4C3E00000080BEABAAAAAA3E000078
+:100140000000BF000000803F000000000008417870
+:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7
+:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F
+:1001700001C4FF7F3F000000000035001E001F008B
+:100180002000210022002300240025002600270053
+:100190002A002B0014001A000800150017001C008C
+:1001A00018000C00120013004C0029000400160077
+:1001B000070009000A000B000D000E000F003300BD
+:1001C0003400E1001D001B000600190005001100AD
+:1001D000100036003700380028000530E000E2004B
+:1001E000E30003302C002C0004305000510052007A
+:1001F0004F0035001E001F002000210022002300B8
+:1002000024002500260027002A002B0014001A00D5
+:10021000090013000A000D000F0018001C00330035
+:100220004C002900040015001600170007000B0001
+:10023000110008000C0012003400E1001D001B003A
+:100240000600190005000E001000360037003800C7
+:1002500028000530E000E200E30003302C002C0011
+:1002600004305000510052004F0035001E001F00A6
+:100270002000210022002300240025002600270062
+:100280002A002B0034003600370013001C00090040
+:100290000A00060015000F004C002900040012009F
+:1002A000080018000C0007000B00170011001600D2
+:1002B0003800E100330014000D000E001B000500A3
+:1002C00010001A0019001D0028000530E000E200AF
+:1002D000E30003302C002C00043050005100520089
+:1002E0004F0035021E021F022002210222022302B9
+:1002F00024022502260227022A0035021E021F02BE
+:1003000020022102220223022402250226022702C1
+:100310004C004C003A003B003C003D003E003F00DA
+:100320002D022E022F023002310201004000410056
+:1003300042004300440045000100010001000100AB
+:1003400001000100010001000100010001000100A5
+:100350000100AB00AA00A900AE0035001E001F007E
+:100360002000210022002300240025002600270071
+:100370002A0035001E001F0020002100220023005B
+:1003800024002500260027004C004C003A003B00CA
+:100390003C003D003E003F002D002E002F003000AD
+:1003A000310001004000410042004300440045008C
+:1003B0000100010001000100010001000100010035
+:1003C00001000100010001000100AB00AA00A9002A
+:1003D000AE0000000000000000000000000000006F
+:1003E000000000000000000000000000000000000D
+:1003F00000000000000000000000000000000000FD
+:1004000000000000000000000000000000000000EC
+:1004100000000000000000000000000000000000DC
+:1004200000000000000000000000000000000000CC
+:100430000000000000000000000003300000000089
+:100440000430000000000000000000000000000078
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C0000000000000000000000000000000000029
+:1007D0000000000000000000000000000000000019
+:1007E0000000000000000000000000000000000009
+:1007F00000000000000000000000000000000000F9
+:1008000000000000000000000000000000000000E8
+:1008100000000000000000000000000000000000D8
+:1008200000000000000000000000000000000000C8
+:1008300000000000000000000000000000000000B8
+:1008400000000000000000000000000000000000A8
+:100850000000000000000000000000000000000098
+:100860000000000000000000000000000000000088
+:100870000000000000000000000000000000000078
+:100880000000000000000000000000000000000068
+:100890000000000000000000000000000000000058
+:1008A0000000000000000000000000000000000048
+:1008B0000000000000000000000000000000000038
+:1008C0000000000000000000000000000000000028
+:1008D0000000000000000000000000000000000018
+:1008E0000000000000000000000000000000000008
+:1008F000000000000000000000003A003B003C0047
+:100900003D003E003F0040004100420043004400E3
+:10091000450001000050010001000100010001003C
+:1009200001000100010001004C0001000100010074
+:1009300007300630135012500030013002300100F1
+:10094000010001000B300A300930083001000100BD
+:10095000010001000100010001000100010001008F
+:10096000010001000100010001000100010001007F
+:1009700001002A0354006800650020005000720046
+:1009800065006F006E006900630020004B00650089
+:10099000790062006F0061007200640000002C03A7
+:1009A0004F007200740068006F006C0069006E00F8
+:1009B00065006100720020004B0065007900620054
+:1009C0006F006100720064007300000004030904FA
+:1009D00009025400030100A0FA0904000001030108
+:1009E0000100092111010001223F000705810308D0
+:1009F000000A09040100010301020009211101009C
+:100A000001224D000705820308000A0904020001C3
+:100A100003000000092111010001223600070583AF
+:100A20000308000A1201100100000008EDFE6160D9
+:100A300001000102000105010980A10185021601E2
+:100A40000026B7001A01002AB70075109501810031
+:100A5000C0050C0901A1018503160100269C021A9C
+:100A600001002A9C02751095018100C00501090250
+:100A7000A1010901A1000509190129051500250198
+:100A80009505750181029501750381010501093004
+:100A900009311581257F9502750881060938158170
+:100AA000257F950175088106050C0A3802158125F8
+:100AB0007F950175088106C0C005010906A10105E1
+:100AC0000719E029E71500250195087501810295B0
+:100AD0000175088101050819012905950575019120
+:100AE000029501750391010507190029FF150025DD
+:100AF000FF950675088100C011241FBECFEFDAE014
+:100B0000DEBFCDBF04B603FE24C08091F3039091F5
+:100B1000F403A091F503B091F6038730904BA74002
+:100B2000B04BB9F41092F3031092F4031092F50352
+:100B30001092F60314BE84B7877F84BF88E10FB696
+:100B4000F89480936000109260000FBEE0E0F8E33C
+:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2
+:100B60000D92A63FB107D9F713E0A6EFB2E001C09E
+:100B70001D92A33FB107E1F70E940D160C94D231EC
+:100B80000C940000279A2F988FEF9FEF9093870087
+:100B9000809386008AE08093800089E180938100C1
+:100BA0000C94092D282F81110BC080918000877F24
+:100BB0008093800010928D0010928C002F980895E1
+:100BC0002F9880918000886080938000233019F4F2
+:100BD0008FEF9FEF0FC083E090E0821B9109880F99
+:100BE000991F2FEF3FEFA90102C0569547958A95AF
+:100BF000E2F7CA0190938D0080938C000895CF9303
+:100C0000DF93EC010E94AE28BE0180E090E0DF910E
+:100C1000CF910C9428250F931F93462F50E04C3012
+:100C2000510508F098C0DC01FA01EA5AFF4F12960C
+:100C30008C910C949631882309F48DC000E010E06B
+:100C4000980140E064E070E089EC91E00E9463125A
+:100C500081E090E00FC0882309F47DC000E010E03F
+:100C6000980140E066E070E089E591E00E9463123F
+:100C700082E090E00E94FF056EC0882309F46BC0FB
+:100C800000E010E0980140E068E070E089E891E061
+:100C90000E94631284E090E0EDCF882311F083E09E
+:100CA00005C083E00CC0882349F084E00E94A5259C
+:100CB00040E164E083E00E94C90A4DC084E00E94E4
+:100CC000C625F6CF882331F085EE0E948F1C0E9446
+:100CD000602D41C085EE0E94571D3DC08823D9F18B
+:100CE0000E94F70D38C08823B1F10E94F00D00E09A
+:100CF00010E0980140E064E070E089EE91E029C0E6
+:100D0000882349F185E00E94C6250E94180E23C061
+:100D1000882309F100E010E0980140E068E070E00D
+:100D200089E191E00E94631285E00E94A52513C02D
+:100D3000882389F00E94F61204C0882361F00E9483
+:100D4000011300E010E0980140E068E070E089E104
+:100D500091E00E94631280E090E01F910F9108954E
+:100D60000F931F932FEF89EF90E021508040904028
+:100D7000E1F700C0000000E010E0980140E064E00E
+:100D800070E089EE91E00E9463121F910F91089527
+:100D9000CF92DF92EF92FF920F931F93CF93DF9347
+:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71
+:100DB000CDBF2091B30325FFC5C08C01FC019281FA
+:100DC00080910001992309F460C096E4E5E2F2E025
+:100DD000DE01A95BBF4F01900D929A95E1F7F801F2
+:100DE0009081E091F602F091F702E90FF11DEE0F0C
+:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F
+:100E00007181680F711D882777FD8095982F0E944A
+:100E1000A42E20E030E040E451E40E94092E6B0152
+:100E20007C01F801218185E090E0821B9109BC01E1
+:100E3000882777FD8095982F0E94A42E9B01AC01F6
+:100E4000C701B6010E94A12D9B01AC0160E070E0DA
+:100E500080E090E40E94173020E030E04CE551E45F
+:100E60000E94B42F4FE050E0C457DF4F0FB6F89404
+:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD
+:100E8000EF90DF90CF900C94031296E4E5E2F2E04D
+:100E9000DE01119601900D929A95E1F7F80190818B
+:100EA000E091F602F091F702E90FF11DEE0FFF1F3E
+:100EB00021E030E02C0F3D1FE20FF31F60817181B4
+:100EC000680F711D882777FD8095982F0E94A42EAA
+:100ED00020E030E040E451E40E94092E6B017C01E7
+:100EE000F801218185E090E0821B9109BC018827EF
+:100EF00077FD8095982F0E94A42E9B01AC01C7011D
+:100F0000B6010E94A12D9B01AC0160E070E080E081
+:100F100090E40E94173020E030E04CE551E40E945C
+:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E
+:100F3000DF91CF911F910F91FF90EF90DF90CF90B5
+:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4
+:100F5000CDBFDF91CF911F910F91FF90EF90DF9068
+:100F6000CF9008950F931F9300E010E0980140E0A8
+:100F700063E070E081E091E00E9463122FEF82E570
+:100F800097E0215080409040E1F700C000001F91A1
+:100F90000F91089508950E94C2056E9A769A0C9456
+:100FA000B0060C94CA070C94C8060895880F991FC0
+:100FB000FC01E650F040859194910895880F991FA7
+:100FC000FC01E658FE4F8591949108950F931F936D
+:100FD000CF93DF93EC01811520E49207A0F5C115B2
+:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80
+:100FF000D10508F0EEC1C83AD10578F4C53AD1055B
+:1010000008F074C0C130D10509F46DC008F4DEC128
+:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE
+:1010200070C0D4C1C11590E2D90708F0B9C0C1158C
+:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8
+:101040008E01106506C2C13080E5D80709F4BDC025
+:1010500068F5C13120E4D20709F4AEC050F4C031C4
+:1010600090E4D90708F0A5C0CF70DD278E01146D7C
+:10107000F0C1C33120E4D20709F4A4C008F49FC032
+:10108000C115D04509F0A2C10E946C210E94180E22
+:101090000E94B2079FEF24E38CE0915020408040F3
+:1010A000E1F700C000000E943F28D3C1C11520E62F
+:1010B000D20730F4C11581E5D80708F48CC02DC1E2
+:1010C000C11590E7D90708F481C1C11520E8D207FE
+:1010D00008F478C1C11580E9D80708F077C1DF703E
+:1010E0008E01106AB6C101E010E0B3C1C53AD10566
+:1010F00009F471C1C63AD10509F070C102E810E4E3
+:10110000A8C1C83AD10509F46CC1C93AD10509F49E
+:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9
+:1011200069C1CC3AD10509F468C1CD3AD10509F4B9
+:1011300067C1C03BD10509F466C1CE3AD10509F4B7
+:1011400065C1CF3AD10509F464C1C13BD10509F4A9
+:1011500063C1C23BD10509F462C1C33BD10509F4A7
+:1011600061C1C43BD10509F460C1C53BD10509F497
+:101170005FC1C63BD10509F45EC1C73BD10509F487
+:101180005DC1C83BD10509F45CC1C93BD10509F477
+:101190005BC1CA3BD10509F45AC100E014E459C14E
+:1011A000CE019F700E94DE0755C1DD278E01106CB5
+:1011B00050C100E011ED4DC100E010ED4AC100E06A
+:1011C00012ED47C100E013ED44C18091C703816077
+:1011D0008093C7033EC10E949B28811102C00E94D8
+:1011E00077280E94B32890E09093F2038093F10354
+:1011F000C23090E5D90721F48091F103816086C067
+:10120000C43020E5D20721F48091F10382607EC0D2
+:10121000C63080E5D80721F48091F103846076C060
+:10122000C83090E5D90719F48091F10327C0CA307E
+:1012300020E5D20721F48091F103806167C0CC30B2
+:1012400080E5D80721F48091F10380625FC0CE3041
+:1012500090E5D90721F48091F103806457C0C03133
+:1012600020E5D20721F48091F10380684FC0C2319C
+:1012700080E5D80729F48091F1038460886046C036
+:10128000C33090E5D90721F48091F1038E7F3EC0F1
+:10129000C53020E5D20721F48091F1038D7F36C05F
+:1012A000C73080E5D80721F48091F1038B7F2EC0F1
+:1012B000C93090E5D90719F48091F10326C0CB30ED
+:1012C00020E5D20721F48091F1038F7E1FC0CD303D
+:1012D00080E5D80721F48091F1038F7D17C0CF30CE
+:1012E00090E5D90721F48091F1038F7B0FC0C131C4
+:1012F00020E5D20721F48091F1038F7707C0C33135
+:10130000D04531F48091F1038B7F877F8093F10387
+:101310008091F1030E94B7289CC08D2F99278F7070
+:10132000992781309105D9F49E012370332702C09B
+:10133000880F991F2A95E2F79C688E0144E0000F00
+:10134000111F4A95E1F700271370802B912B53E072
+:10135000CC0FDD1F5A95E1F7C076DD272FC0823014
+:10136000910531F4DC2FCC278E01016F106A71C01A
+:101370008330910569F4CE018370992701E010E074
+:1013800002C0000F111F8A95E2F7C8019C680FC0C8
+:10139000049709F05EC0CE018370992701E010E048
+:1013A00002C0000F111F8A95E2F7C8019A6823E076
+:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76
+:1013C0001D2B47C0DF708E01106243C000E010E0AB
+:1013D00040C08E013EC001E810E43BC003E810E4C9
+:1013E00038C002EE14E435C009EE14E432C00AEE4F
+:1013F00014E42FC005EB14E42CC006EB14E429C060
+:1014000007EB14E426C00CEC14E423C00DEC14E448
+:1014100020C003E815E41DC00AE815E41AC002E97B
+:1014200015E417C004E915E414C001E216E411C084
+:1014300003E216E40EC004E216E40BC005E216E473
+:1014400008C006E216E405C007E216E402C00AE29C
+:1014500016E4C801DF91CF911F910F9108959CE090
+:10146000799FF00111249CE3899FE00DF11D112467
+:10147000E60FF11DEE0FFF1FE658FE4F8591949188
+:10148000803E9105E0F4803C910558F5813391054B
+:1014900009F46FC048F48932910509F463C08A32B7
+:1014A000910509F46DC072C089339105E9F0823865
+:1014B0009105D1F08533910509F44DC067C0833E95
+:1014C000910581F138F4803E9105B9F0823E910595
+:1014D000D9F05CC0863E910561F1873E9105A1F18E
+:1014E00055C00E94D60708952091F10320FD02C047
+:1014F00021FF4CC080EE90E049C08091F10380FF55
+:10150000F9CF89E390E042C08091F10382FF0EC0E1
+:101510008091F10384FF03C080E090E037C083EE48
+:1015200090E034C08091F10382FFF2CF82EE90E030
+:101530002DC08091F10383FF0BC08091F10384FDE6
+:10154000EBCF87EE90E022C08091F10383FFF5CFCF
+:1015500086EE90E01BC08091F10385FF07C089E211
+:1015600090E014C08091F10385FFF9CF85E390E00E
+:101570000DC08091F10386FF07C08AE290E006C0AB
+:101580008091F10386FFF9CF81E390E00E94E607A6
+:101590000895CF92DF92EF92FF920F931F9301E095
+:1015A00010E020E030E06801790104C0CC0CDD1CC3
+:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA
+:1015C000331F6A95D2F70C291D292E293F29C09077
+:1015D000B303D090B403E090B503F090B603C022FB
+:1015E000D122E222F322842FC016D106E206F306AE
+:1015F00041F41F910F91FF90EF90DF90CF900C94EA
+:10160000A5251F910F91FF90EF90DF90CF900C9444
+:10161000C62508950C94090B5F926F927F928F926A
+:101620009F92AF92BF92CF92DF92EF92FF920F9371
+:101630001F93CF93DF93CDB7DEB72A970FB6F894F9
+:10164000DEBF0FBECDBFCE0101966C014E019BE007
+:10165000890E911C20E030E040E050E060E070E056
+:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F
+:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C
+:1016800001900D928A95E1F7F601819191916F0198
+:10169000FC01E07FFF27E032F10559F48F709927B4
+:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E
+:1016B00037C0E033F10559F48F709927F50102C066
+:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487
+:1016D000F10559F48F709927F50102C0EE0FFF1F35
+:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C
+:1016F0008F709927F50102C0EE0FFF1F8A95E2F760
+:101700004E2B5F2B0DC0E036F10551F48F709927F9
+:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B
+:10172000C814D90409F0A7CF84B19E2D90958923C0
+:1017300084B985B1E82AE5B887B1902F90958923BF
+:1017400087B988B1082B08B98AB1962F909589235B
+:101750008AB98BB1682B6BB98DB1942F9095892381
+:101760008DB98EB1482B4EB980B3922F90958923B5
+:1017700080BB81B3282B21BB2A960FB6F894DEBF1D
+:101780000FBECDBFDF91CF911F910F91FF90EF90D2
+:10179000DF90CF90BF90AF909F908F907F906F9091
+:1017A0005F9008955F926F927F928F929F92AF9217
+:1017B000BF92CF92DF92EF92FF920F931F93CF933E
+:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4
+:1017D000CDBF85B7806885BF85B7806885BF0E940B
+:1017E0000C0BCE0101966C014E0199E1890E911C02
+:1017F00020E030E040E050E060E070E000E010E029
+:10180000E12CF12C6C2C5D2C88E1782EAA24A39479
+:10181000B12CE5E7F2E0A62DB52D872D01900D92B4
+:101820008A95E1F7F601819191916F01FC01E07FCA
+:10183000FF27E032F10559F48F709927F50102C0B6
+:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A
+:10185000F10559F48F709927F50102C0EE0FFF1FB3
+:101860008A95E2F70E2B1F2B29C0E034F10559F4BD
+:101870008F709927F50102C0EE0FFF1F8A95E2F7DE
+:101880006E2B7F2B1BC0E035F10559F48F70992723
+:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A
+:1018A0000DC0E036F10551F48F709927F50102C0A3
+:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499
+:1018C00009F0A7CF84B19E2D9095892384B985B165
+:1018D000E82AE5B887B1902F9095892387B988B118
+:1018E000082B08B98AB1962F909589238AB98BB1B4
+:1018F000682B6BB98DB1942F909589238DB98EB1DA
+:10190000482B4EB980B3922F9095892380BB81B329
+:10191000282B21BBE2E0F3E0A8EFB2E01192119294
+:101920001D921D9283E0EC30F807C1F768960FB660
+:10193000F894DEBF0FBECDBFDF91CF911F910F9105
+:10194000FF90EF90DF90CF90BF90AF909F908F90DF
+:101950007F906F905F900C94CB075F926F927F9215
+:101960008F929F92AF92BF92CF92DF92EF92FF92AF
+:101970000F931F93CF93DF93CDB7DEB7A2970FB628
+:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D
+:1019900088EFA82E82E0B82E75019AE0592E4601F4
+:1019A00001E010E028E1622E35E0732EEBE6F2E074
+:1019B000D401852D01900D928A95E1F7D6018D9184
+:1019C0009D916D019C01207F33272032310591F4D8
+:1019D00024B18F709927F80102C0EE0FFF1F8A957E
+:1019E000E2F7CF01922F982B94B995B18095892376
+:1019F00085B953C02033310591F427B18F709927F1
+:101A0000A80102C0440F551F8A95E2F7CA01922F20
+:101A1000982B97B998B18095892388B93EC0203416
+:101A2000310591F42AB18F709927D80102C0AA0F0D
+:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3
+:101A4000809589238BB929C02035310591F42DB1BA
+:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9
+:101A6000CF01922F982B9DB99EB1809589238EB975
+:101A700014C02036310589F420B38F709927A8014E
+:101A800002C0440F551F8A95E2F7CA01922F982B86
+:101A900090BB91B38095892381BB50EA5A95F1F7A9
+:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF
+:101AB000F2E0DE011196862D01900D928A95E1F7F4
+:101AC000DB018D919D91BD01FC01E07FFF27E0329C
+:101AD000F10511F4E3B113C0E033F10511F4E6B1FF
+:101AE0000EC0E034F10511F4E9B109C0E035F105AB
+:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057
+:101B00008F70992702C0F595E7958A95E2F7E0FD79
+:101B100008C0C801042E02C0880F991F0A94E2F77A
+:101B200002C080E090E0282B392B4F5F5F4F4C3094
+:101B3000510509F0BCCFF70180819181821793078D
+:101B400021F031832083709209020E940C0BF2E095
+:101B5000EF0EF11C42E0E41643E0F40609F026CF54
+:101B6000809109028823C9F081508093090288235B
+:101B700039F08FE99FE00197F1F700C000000DC038
+:101B8000E2E0F3E0D5018D919D915D018193919308
+:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023
+:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6
+:101BB0001F910F91FF90EF90DF90CF90BF90AF906B
+:101BC0009F908F907F906F905F900895E82FF0E046
+:101BD000EE0FFF1FEE5FFC4F808191810895089505
+:101BE0008091DC0381608093DC030C94C928809190
+:101BF000DC038E7F8093DC030C94C9280E949B2811
+:101C0000811102C00E9477280E94C5288093DC03BE
+:101C10003E9A809171008D7F8093710082E0809365
+:101C200090008AE18093910081E080930E030895F3
+:101C300080910E03811102C00E94FE0D10925E037E
+:101C400010925D03809171008D7F8093710080916F
+:101C500090008F77809390001092200310921F03C2
+:101C600010925703109258031092590310925A037E
+:101C70001092560310925503E5E3F3E0A5E2B3E0BA
+:101C800011921192119211921D921D9283E0E535ED
+:101C9000F807B1F70895CF92DF92EF92FF920F937A
+:101CA0001F93CF93DF9320911F03222309F484C055
+:101CB0006B017C0180910E03811102C00E94FE0D18
+:101CC00005E513E0C7E0D0E0A7019601F801929185
+:101CD0008291729162918F010E94052E811131C013
+:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B
+:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3
+:101D000011961C921E92C730D105E9F021964481AC
+:101D10005581668177814083518362837383148206
+:101D200015821682178212968D919C9113971196A7
+:101D30009C938E9313961C921E9212973496129631
+:101D4000E2CF219708F680915D0390915E030197A1
+:101D500097FD05C090935E0380935D0304C01092CD
+:101D60005E0310925D0380915D0390915E0320916C
+:101D70005B0330915C032817390724F010925C0351
+:101D800010925B03892BC1F4809171008D7F809349
+:101D90007100809190008F7780939000109257038C
+:101DA000109258031092590310925A03109256033E
+:101DB0001092550310921F03DF91CF911F910F9145
+:101DC000FF90EF90DF90CF9008951F920F920FB683
+:101DD0000F9211244F925F926F927F928F929F92F7
+:101DE000AF92BF92CF92DF92EF92FF922F933F93E9
+:101DF0004F935F936F937F938F939F93AF93BF9313
+:101E0000CF93DF93EF93FF9380911F03882309F40F
+:101E10009BC1C0915D03D0915E031C161D060CF0A2
+:101E200093C140900F035090100360901103709085
+:101E3000120320E030E0A901C301B2010E94B02FDB
+:101E400018160CF065C0C130D10509F452C080915C
+:101E50005B0390915C03BE010E9482317C019093F0
+:101E60005C0380935B038090210390902203A090F9
+:101E70002303B090240320E030E040E85FE3C50195
+:101E8000B4010E94A12D60932103709322038093DB
+:101E9000230390932403F701EE0FFF1FEE0FFF1FA4
+:101EA000EB5CFC4FA301920160817181828193817F
+:101EB0000E94092E20E030E040E05EE30E94B42F53
+:101EC0009B01AC01C501B4010E94B02F18168CF41F
+:101ED000C7010196BE010E94823190935C038093FA
+:101EE0005B0310922103109222031092230310929D
+:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4
+:101F0000FF1FEB5CFC4F6081718182819381D0C0A7
+:101F1000C0905703D0905803E0905903F0905A03B3
+:101F200020E030E0A901C701B6010E94052E2197EB
+:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62
+:101F4000EB5CFC4F80809180A280B380A50194015E
+:101F5000C701B6010E94052E87FF31C0A50194017B
+:101F600060E070E08CED93EC0E94092E20E030E000
+:101F700040E451E40E94092E20E030E040E05FE3BD
+:101F80000E94B42F9B01AC0160E070E080E090E41F
+:101F90000E9417309B01AC01C501B4010E94B42F0F
+:101FA0009B01AC01C701B6010E94052E87FF07C047
+:101FB000A701960160E070E08CED93E439C0A501C3
+:101FC0009401C701B6010E94B02F18160CF055C03D
+:101FD000A501940160E070E08CED93E40E94092E6D
+:101FE00020E030E040E451E40E94092E20E030E09F
+:101FF00040E05FE30E94B42F9B01AC0160E070E021
+:1020000080E090E40E9417309B01AC01C501B4014F
+:102010000E94B42F9B01AC01C701B6010E94B02FF2
+:1020200018165CF5A701960160E070E08CED93EC6A
+:102030000E94092E20E030E040E451E40E94092E85
+:1020400020E030E040E05FE30E94B42F9B01AC0150
+:1020500060E070E080E090E40E9417309B01AC01EA
+:10206000C701B6010E94B42F6093570370935803C1
+:102070008093590390935A0313C0FE01EE0FFF1F84
+:10208000EE0FFF1FEB5CFC4F80819181A281B38139
+:102090008093570390935803A0935903B0935A0326
+:1020A00060915703709158038091590390915A039E
+:1020B00020910C0330910D032F3F4FEF340731F087
+:1020C0002F5F3F4F30930D0320930C030E940C139E
+:1020D0006B017C0120E034E244EF51E40E94052EC4
+:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E
+:1020F00081E4F82E20E030E040E051E4C701B60171
+:102100000E94B42F9B01AC0160E074E284E79BE481
+:102110000E94092E6B017C010E94712E7093970022
+:102120006093960020910A0230910B0240910C02BC
+:1021300050910D02C701B6010E94B42F0E94712E6A
+:10214000709399006093980080912003882309F48C
+:1021500033C1C0901B03D0901C03E0901D03F0908E
+:102160001E0320E030E0A901C701B6010E94B02F94
+:102170001816D4F580910C0390910D038F3F2FEF2B
+:10218000920729F0019690930D0380930C03C701E9
+:10219000B6010E940C1320E030E040E051E40E94C0
+:1021A000B42F9B01AC0160E074E284E79BE40E94E1
+:1021B000092E6B017C010E94712E70939700609331
+:1021C000960020910A0230910B0240910C0250912E
+:1021D0000D02C701B6010E94B42F0E94712E7093A8
+:1021E00099006093980008C0109297001092960092
+:1021F0001092990010929800609115037091160347
+:102200006F5F7F4F709316036093150320919600C4
+:102210003091970080E090E0232BF1F0C091960080
+:10222000D09197000E94A22E6B017C01BE0180E03C
+:1022300090E00E94A22E9B01AC0160911703709167
+:1022400018038091190390911A030E94092E20E02F
+:102250003FEF4FE757E410C00E94A22E6B017C01B4
+:1022600020E030EE4FEF54E46091170370911803B3
+:102270008091190390911A030E94B42F9B01AC0125
+:10228000C701B6010E94B02F87FD96C0809113034D
+:102290008F5F8093130390E02091D8033091D9038E
+:1022A00082179307A0F08091E303882319F010921E
+:1022B00013030DC0809171008D7F80937100809118
+:1022C00090008F7780939000109220037DC08091C2
+:1022D0001403C0911303811128C0C090DD03D09076
+:1022E000DE03E090DF03F090E00320E030E0A9019E
+:1022F000C701B6010E94B02F1816BCF481E080938C
+:10230000140310921B0310921C0310921D031092D1
+:102310001E03C0921703D0921803E0921903F092A3
+:102320001A03C150C093130343C0109214031092B8
+:102330000D0310920C03E091DA03F091DB0348E007
+:10234000C49FE00DF11D112480819181A281B38190
+:1023500080931B0390931C03A0931D03B0931E0353
+:1023600020E030E040E85EE36481758186819781FA
+:102370000E94B42F6B017C0120E030E048EC52E475
+:1023800060910E0270910F028091100290911102E3
+:102390000E94092E9B01AC01C701B6010E94B42F17
+:1023A00060931703709318038093190390931A0393
+:1023B00010921603109215038091DC0380FD04C077
+:1023C0001092200310921F03FF91EF91DF91CF91A4
+:1023D000BF91AF919F918F917F916F915F914F913D
+:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3
+:1023F0009F908F907F906F905F904F900F900FBE47
+:102400000F901F901895CF92DF92EF92FF92CF938B
+:10241000DF936B017C01EA0180910E03811102C000
+:102420000E94FE0D8091DC0380FF46C080915D0319
+:1024300090915E0308970CF03FC0809171008D7FF2
+:10244000809371008091200381110E94180E81E019
+:1024500080931F0310920D0310920C0320E030E0D4
+:10246000A901C701B6010E94B02F1816DCF48091B3
+:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47
+:10248000EB5CFC4FC082D182E282F382FC01EE0F52
+:10249000FF1FEB5DFC4FD183C083019690935E03D9
+:1024A00080935D03809171008260809371008091C0
+:1024B0009000806880939000DF91CF91FF90EF9023
+:1024C000DF90CF9008958F929F92AF92BF92CF925C
+:1024D000DF92EF92FF920F931F93CF93DF93EC0164
+:1024E0007B01D42E4801590180910E03811102C055
+:1024F0000E94FE0D8091DC0380FF6BC08091710013
+:102500008D7F8093710080911F0381110E94180EAE
+:1025100081E080932003D093DB03C093DA03F09231
+:10252000D903E092D803D092E3038092DD03909226
+:10253000DE03A092DF03B092E00310922103109219
+:102540002203109223031092240310921303888114
+:102550009981AA81BB8180931B0390931C03A09354
+:102560001D03B0931E0320E030E040E85EE36C8181
+:102570007D818E819F810E94B42F6B017C0120E0C0
+:1025800030E048EC52E460910E0270910F028091AD
+:102590001002909111020E94092E9B01AC01C7010B
+:1025A000B6010E94B42F60931703709318038093B1
+:1025B000190390931A031092160310921503809139
+:1025C0007100826080937100809190008068809398
+:1025D0009000DF91CF911F910F91FF90EF90DF90CE
+:1025E000CF90BF90AF909F908F90089580915F03A0
+:1025F00090E0019666E070E00E94823180935F0374
+:10260000089580915F0390E0019766E070E00E947A
+:10261000823180935F0308958F929F92AF92BF9211
+:10262000CF92DF92EF92FF920F931F93CF93DF939E
+:102630006B017C01C0910C03D0910D03BE0180E0C1
+:1026400090E00E94A22E4B015C01A701960160E080
+:1026500070E08CE594E40E94092E9B01AC01C50159
+:10266000B4010E94B42F0E94762E20915F03233084
+:1026700009F473C028F4222351F02130E9F02CC171
+:10268000243009F4A0C0253009F4E0C025C180E061
+:1026900090E0A0E0BFE380930A0290930B02A09326
+:1026A0000C02B0930D0210920F03109210031092BF
+:1026B00011031092120310C110920F031092100315
+:1026C00010921103109212036431710540F46A30C4
+:1026D000710560F520E030E040E85EE32BC0693C26
+:1026E000710508F0AAC080E090E00E94A22E20E0D0
+:1026F00030E040EA51E40E94A02D20E030E044E3C5
+:1027000053E40E94092E9B01AC010E94B42F20E0EB
+:1027100030E040E05EE30E94B42F9B01AC0160E03A
+:1027200070E080E09EE30E94A02D44C020E030E0F5
+:1027300040E05FE3C701B6010E94B42F6B017C014A
+:1027400080E090E0A0E0BEE380930A0290930B0249
+:10275000A0930C02B0930D02BFC010920F03109211
+:10276000100310921103109212034AE0469F900149
+:10277000479F300D1124C90168EB7BE00E946E3148
+:10278000BC016C5D754077FF03C07195619571095F
+:10279000882777FD8095982F0E94A42E2EE333EC96
+:1027A0004EE259E30E94B42F20E030E040EC5EE3BB
+:1027B0000E94A12D60930A0270930B0280930C0279
+:1027C00090930D0289C010920F0310921003109283
+:1027D000110310921203CE0183709927892BE1F027
+:1027E000BE016170772780E090E00E94A22E20E079
+:1027F00030E040E05EE30E94B42F20E030E040E4AF
+:102800005FE30E94A12D60930A0270930B028093F4
+:102810000C0290930D020CC080E090E0A0E0BFE3BA
+:1028200080930A0290930B02A0930C02B0930D02C6
+:10283000C770DD27CD2B09F04FC010920A0210920D
+:102840000B0210920C0210920D0246C010920F0360
+:1028500010921003109211031092120300E010E086
+:1028600020E03FE300930A0210930B0220930C0236
+:1028700030930D026739710578F180E090E00E9495
+:10288000A22E20E030E047E153E40E94A02D20E09A
+:1028900030E04AE754E40E94092E20E030E048E4AA
+:1028A00052E40E94B42F20E030E040EA51E40E945C
+:1028B000E62E0E94712E660F771F660F771FFB01B1
+:1028C000E357FD4F2081318142815381C701B60119
+:1028D0000E94B42F6B017C01C701B601DF91CF913B
+:1028E0001F910F91FF90EF90DF90CF90BF90AF902E
+:1028F0009F908F900895809168030895CF93DF9300
+:1029000000D01F92CDB7DEB79C018091E8038430E0
+:1029100019F593E099833B832A839093E9008FEF25
+:102920009091E800815095FD06C095ED9A95F1F7DC
+:1029300000008111F5CF8091E80085FF0DC040E0D7
+:1029400050E063E070E0CE0101960E94B7168091DE
+:10295000E8008E778093E8000F900F900F90DF9142
+:10296000CF910895CF93DF9300D01F92CDB7DEB7FC
+:102970002091E803243021F522E029839B838A8378
+:1029800083E08093E9008FEF9091E800815095FDFE
+:1029900006C095ED9A95F1F700008111F5CF809171
+:1029A000E80085FF0DC040E050E063E070E0CE013C
+:1029B00001960E94B7168091E8008E778093E80018
+:1029C0000F900F900F90DF91CF9108952091E80321
+:1029D0002430F1F422E02093E9002FEF3091E80059
+:1029E000215035FD06C035ED3A95F1F70000211173
+:1029F000F5CF2091E80025FF0BC040E050E065E0F6
+:102A000070E00E94B7168091E8008E778093E8000E
+:102A10000895CF93DF932091E803243039F521E026
+:102A20002093E9002FEF3091E800215035FD06C0DA
+:102A300035ED3A95F1F700002111F5CF2091E8002E
+:102A400025FF14C0EC0140E050E068E070E00E9417
+:102A5000B7168091E8008E778093E80088E0FE0149
+:102A6000A0E6B3E001900D928A95E1F7DF91CF9156
+:102A700008958091E703811109C00E944C180E94BB
+:102A8000A9188091E20084608093E200089510927A
+:102A9000E7030895089508950C94A72742E061EC98
+:102AA00081E00E94C61742E061EC82E00E94C617F6
+:102AB00042E061EC83E00C94C6178091EA03833016
+:102AC00009F453C030F4813071F0823009F48CC0C5
+:102AD00008958A3009F478C08B3009F45EC08930DB
+:102AE00009F09AC020C08091E903813A09F094C0AE
+:102AF0008091E800877F8093E8008091ED039091BA
+:102B0000EE03892B21F468E080E693E003C060E0E7
+:102B100080E090E070E00E9402178091E8008B77DF
+:102B20008093E80008958091E903813209F074C030
+:102B30008091ED039091EE03892B09F06DC0809197
+:102B4000E800877F8093E8008091E80082FD05C05F
+:102B50008091E8038111F8CF5FC08091F1008093EC
+:102B600068038091E8008B7753C08091E903813A34
+:102B700009F052C08091ED039091EE03892B09F08A
+:102B80004BC08091E800877F8093E8008091E80047
+:102B900080FFFCCF80911C0236C08091E903813216
+:102BA000D9F58091ED039091EE03892BA9F58091E1
+:102BB000E800877F8093E8000E94FB178091EB0379
+:102BC00080931C020C946C218091E903813221F5E1
+:102BD0008091E800877F8093E8000E94FB17809136
+:102BE000EC038093690308958091E903813AA1F48D
+:102BF0008091E800877F8093E8008091E80080FF63
+:102C0000FCCF809169038093F1008091E8008E777A
+:102C10008093E8000C94FB17089584B7877F84BFE6
+:102C200088E10FB6F89480936000109260000FBEA8
+:102C300090E080E80FB6F894809361009093610073
+:102C40000FBE0E949E1B0E944C180E94A9188091E2
+:102C5000E20084608093E20078940E942F1B0E941F
+:102C6000A01B82E192E00E944A1B8091E80385301C
+:102C700069F40E9461278091E6038823B1F30E94E2
+:102C80008F27882391F30E94A116EFCF0E94A81BE3
+:102C9000ECCF292F332723303105C9F064F42130DC
+:102CA000310581F02230310509F043C084E590E020
+:102CB00020ED39E042C021323105F1F022323105F8
+:102CC00041F137C082E190E024E23AE036C0992732
+:102CD0008130910541F08230910541F0892B49F511
+:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A
+:102CF000849190E09F0121C06330D8F4E62FF0E08A
+:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5
+:102D100014C0633070F470E0FB01EE0FFF1FE0524F
+:102D2000FD4F20813181FB01E352FD4F808190E016
+:102D300004C080E090E020E030E0FA01318320839D
+:102D4000089580E189BD82E189BD09B400FEFDCF0F
+:102D50008091D8008F7D8093D8008091E0008260C0
+:102D60008093E0008091E00081FDFCCF0895CF9238
+:102D7000DF92EF92FF920F931F93CF93DF93EC01BB
+:102D80008B016A010E941A18811133C0C114D10449
+:102D900039F0F60180819181081B190BC80FD91FEA
+:102DA000E12CF12C0115110519F18091E80085FD48
+:102DB00016C08091E8008E778093E800C114D1049A
+:102DC00049F0F60180819181E80EF91EF182E082DE
+:102DD00085E00FC00E941A18882321F30AC0899148
+:102DE0008093F10001501109FFEFEF1AFF0ADACFCB
+:102DF00080E0DF91CF911F910F91FF90EF90DF90D6
+:102E0000CF9008952091EF033091F00326173707F4
+:102E100048F06115710539F42091E8002E77209370
+:102E2000E80001C0B90140E061157105A9F12091E8
+:102E3000E803222309F443C0253009F442C020915D
+:102E4000E80023FD40C02091E80022FD32C020911F
+:102E5000E80020FFE9CF4091F3002091F20030E03C
+:102E6000342BFC01CF016115710559F02830310573
+:102E700040F481918093F100615071092F5F3F4FC1
+:102E8000F1CF41E02830310509F040E02091E80021
+:102E90002E772093E800C8CF4111C9CF0AC0809196
+:102EA000E803882361F0853061F08091E80083FDBC
+:102EB0000AC08091E80082FFF2CF80E0089582E0AE
+:102EC000089583E0089581E008952091EF03309103
+:102ED000F0032617370748F06115710539F4209182
+:102EE000E8002E772093E80001C0B901FC0120E042
+:102EF0006115710591F18091E803882309F440C0C0
+:102F0000853009F43FC08091E80083FD3DC0809189
+:102F1000E80082FD2FC08091E80080FFE9CF20917A
+:102F2000F3008091F20090E0922B6115710559F049
+:102F30008830910540F424912093F100319661503E
+:102F400071090196F2CF21E0089709F020E0809105
+:102F5000E8008E778093E800CBCF2111CCCF0AC058
+:102F60008091E803882361F0853061F08091E8006A
+:102F700083FD0AC08091E80082FFF2CF80E00895CF
+:102F800082E0089583E0089581E00895982F9730B6
+:102F900058F59093E900981739F07091EC00209162
+:102FA000ED005091F00003C0242F762F50E021FF58
+:102FB00019C03091EB003E7F3093EB003091ED0073
+:102FC0003D7F3093ED003091EB0031603093EB00AA
+:102FD0007093EC002093ED005093F0002091EE00F0
+:102FE00027FF07C09F5FD3CF8F708093E90081E0F8
+:102FF000089580E008958091E90387FF11C08091D2
+:10300000E80082FD05C08091E8038111F8CF11C06E
+:103010008091E8008B770BC08091E803882349F00A
+:103020008091E80080FFF8CF8091E8008E77809350
+:10303000E80008952091E4003091E50095E6409184
+:10304000EC00842F817040FF22C08091E80080FD59
+:103050001CC08091E803882391F0853091F0809125
+:10306000EB0085FD10C04091E4005091E50042174F
+:10307000530729F39A01915011F784E0089582E0F3
+:10308000089583E0089581E0089580E008954091D7
+:10309000E80042FFDECF08950E94BA180E94C218CD
+:1030A000E0EEF0E0808181608083E8EDF0E08081F7
+:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5
+:1030C00080818F7E80831092E70308950F931F9372
+:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7
+:1030E00088818F77888388818068888388818F7DB5
+:1030F000888319BC1092E8031092E4031092E6034F
+:103100001092E50300EE10E0F80180818B7F808350
+:1031100088818160888342E060E080E00E94C61779
+:10312000E1EEF0E080818E7F8083E2EEF0E080814E
+:1031300081608083808188608083F80180818E7FB8
+:103140008083888180618883DF91CF911F910F9167
+:103150000895E8EDF0E080818F7E8083E7EDF0E078
+:1031600080818160808384E082BF81E08093E70377
+:103170000C946618E8EDF0E080818E7F80831092D9
+:10318000E20008951092DA001092E10008951F9273
+:103190000F920FB60F9211242F933F934F935F938B
+:1031A0006F937F938F939F93AF93BF93EF93FF930F
+:1031B0008091E10082FF0BC08091E20082FF07C096
+:1031C0008091E1008B7F8093E1000E942E1B809113
+:1031D000DA0080FF1FC08091D80080FF1BC0809163
+:1031E000DA008E7F8093DA008091D90080FF0DC0D5
+:1031F00080E189BD82E189BD09B400FEFDCF81E097
+:103200008093E8030E94391505C019BC1092E803A9
+:103210000E9447158091E10080FF19C08091E20073
+:1032200080FF15C08091E2008E7F8093E200809144
+:10323000E20080618093E2008091D80080628093F8
+:10324000D80019BC85E08093E8030E944B1580915B
+:10325000E10084FF30C08091E20084FF2CC080E157
+:1032600089BD82E189BD09B400FEFDCF8091D800FF
+:103270008F7D8093D8008091E1008F7E8093E10064
+:103280008091E2008F7E8093E2008091E200816075
+:103290008093E2008091E403882311F084E007C06A
+:1032A0008091E30087FD02C081E001C083E080934C
+:1032B000E8030E944C158091E10083FF29C08091B2
+:1032C000E20083FF25C08091E100877F8093E100C9
+:1032D00082E08093E8031092E4038091E1008E7F06
+:1032E0008093E1008091E2008E7F8093E2008091E4
+:1032F000E20080618093E20042E060E080E00E94B2
+:10330000C6178091F00088608093F0000E944A15F3
+:10331000FF91EF91BF91AF919F918F917F916F91AD
+:103320005F914F913F912F910F900FBE0F901F9083
+:1033300018951F920F920FB60F9211242F933F935F
+:103340004F935F936F937F938F939F93AF93BF93AD
+:10335000CF93DF93EF93FF93C091E900CF708091FB
+:10336000EC00D82FD17080FDD0E81092E900809158
+:10337000F000877F8093F00078940E94DD1910920E
+:10338000E9008091F00088608093F000CD2BCF7031
+:10339000C093E900FF91EF91DF91CF91BF91AF9181
+:1033A0009F918F917F916F915F914F913F912F915D
+:1033B0000F900FBE0F901F9018951F93CF93DF9320
+:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C
+:1033D000E9EEF3E088E08E0F9091F10091938E1367
+:1033E000FBCF0E945D158091E80083FF1FC1809193
+:1033F000E9039091EA03492F50E04A30510508F063
+:1034000015C1FA01EE59FF4F0C949631803881F0C6
+:10341000823809F00BC18091ED038F708093E90031
+:103420008091EB0085FB882780F91092E90006C0A7
+:103430008091E5039091E603911182609091E800FC
+:10344000977F9093E8008093F1001092F100C8C03C
+:10345000282F2D7F09F0EAC0882319F0823061F00F
+:10346000E5C08091EB03813009F0E0C0933009F0B2
+:1034700080E08093E6032BC08091EB03811127C08D
+:103480008091ED038F7009F4D1C08093E900209101
+:10349000EB0020FF1CC0933021F48091EB00806290
+:1034A00014C09091EB0090619093EB0021E030E02C
+:1034B000A90102C0440F551F8A95E2F74093EA0024
+:1034C0001092EA008091EB0088608093EB001092EC
+:1034D000E9008091E800877F86C08111A7C0109124
+:1034E000EB031F778091E3008078812B8093E300CA
+:1034F0008091E800877F8093E8000E94FB1780910D
+:10350000E80080FFFCCF8091E30080688093E300B7
+:10351000111102C082E001C083E08093E80386C0FD
+:103520008058823008F082C08091EB039091EC03C8
+:103530008C3D53E0950779F583E08A838AE289839D
+:103540004FB7F894DE01139620E03EE051E2E32FFE
+:10355000F0E050935700E49120FF03C0E295EF7034
+:103560003F5FEF708E2F90E0EA3010F0C79601C0F9
+:10357000C0968D939D932F5F243149F74FBF809163
+:10358000E800877F8093E8006AE270E0CE01019650
+:103590000E94021714C0AE014F5F5F4F6091ED03B0
+:1035A0000E944916BC01009709F440C09091E800C0
+:1035B000977F9093E80089819A810E946517809196
+:1035C000E8008B778093E80031C0803879F58091EE
+:1035D000E800877F8093E8008091E4038093F10006
+:1035E0008091E8008E778093E8000E94FB171EC050
+:1035F00081111CC09091EB039230C0F48091E800DF
+:10360000877F8093E8009093E4030E94FB178091EA
+:10361000E403811106C08091E30087FD02C081E0D0
+:1036200001C084E08093E8030E944E158091E80079
+:1036300083FF0AC08091E800877F8093E800809133
+:10364000EB0080628093EB00AA960FB6F894DEBF81
+:103650000FBECDBFDF91CF911F9108950895CF93F5
+:103660008091E8038823A1F0C091E900CF70909188
+:10367000EC00892F817090FD80E8C82B1092E90042
+:103680008091E80083FD0E94DD19CF70C093E900AE
+:10369000CF91089590936F0380936E030895E09106
+:1036A0006E03F0916F03309721F00190F081E02DCF
+:1036B000099480E00895E0916E03F0916F033097D4
+:1036C00021F00280F381E02D09940895E0916E03CA
+:1036D000F0916F03309721F00480F581E02D09947B
+:1036E000089520916C0330916D038217930771F058
+:1036F00090936D0380936C03E0916E03F0916F03E0
+:10370000309721F00680F781E02D099408952091EB
+:103710006A0330916B038217930771F090936B03E8
+:1037200080936A03E0916E03F0916F03309721F06C
+:103730000084F185E02D0994089508950C949D1B53
+:103740000E94DB270E94D20B0E9461280C94092D55
+:103750004F925F927F928F929F92AF92BF92CF9241
+:10376000DF92EF92FF920F931F93CF93DF93CDB72A
+:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A
+:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9
+:10379000A394B12C702E802F0E94E60D4C01F601EF
+:1037A000419051906F014826592641145104B1F4BB
+:1037B0000F5F1F4F0530110569F78FEF89838A83EB
+:1037C0001B820E94E4278160782F9D838C8349812E
+:1037D0005A816B818D810E94611C3AC08091C70320
+:1037E00081FD0E94EF0D20E030E07501022E02C045
+:1037F000EE0CFF1C0A94E2F7C70184219521892B66
+:1038000009F12E837F828E209F2091E0892809F480
+:1038100090E098870E94E4278160782F9A878987B3
+:103820004E815F8168858A850E94611C000F111F8F
+:10383000F801EF58FC4F80819181E826F926F1824A
+:10384000E08206C02F5F3F4F2C30310571F6B0CFBC
+:103850000E94482A109170030E944F1B1817D9F03C
+:103860000E944F1B809370032A960FB6F894DEBF18
+:103870000FBECDBFDF91CF911F910F91FF90EF90C1
+:10388000DF90CF90BF90AF909F908F907F905F9090
+:103890004F900C940A0B2A960FB6F894DEBF0FBE19
+:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF
+:1038B000CF90BF90AF909F908F907F905F904F90F0
+:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B
+:1038D000DEBF0FBECDBF4F83588769877A878B873E
+:1038E000DE01119686E0FD0111928A95E9F785E0E7
+:1038F000FE01379601900D928A95E1F749815A8130
+:103900006B817C818D819E810E9406242B960FB64F
+:10391000F894DEBF0FBECDBFDF91CF910895CF9356
+:10392000882309F4C2C0C82F823859F40E944F1B63
+:1039300081FDBBC089E30E94AF260E94322789E344
+:103940000CC0833879F40E944F1B80FDAEC083E524
+:103950000E94AF260E94322783E50E94CC26CF9199
+:103960000C943227843859F40E944F1B82FD9DC06D
+:1039700087E40E94AF260E94322787E4EECF8CEFC7
+:103980008C0F813A48F48C2F0E94712C81118DC0CC
+:103990008C2F0E94AF26E3CF80E28C0F883048F452
+:1039A000C77081E001C0880FCA95EAF70E94EB2634
+:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20
+:1039C00031F083E890E005C081E890E002C082E831
+:1039D00090E0CF910C94711B88E58C0F833108F037
+:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F
+:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F
+:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE
+:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C
+:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072
+:103A300090E038C082EE90E035C089EE90E032C070
+:103A40008AEE90E02FC085EB90E02CC086EB90E0F2
+:103A500029C087EB90E026C08CEC90E023C08DEC71
+:103A600090E020C083E891E01DC08AE891E01AC090
+:103A700082E991E017C084E991E014C081E292E00C
+:103A800011C083E292E00EC084E292E00BC085E2B6
+:103A900092E008C086E292E005C087E292E002C0B0
+:103AA0008AE292E0CF910C94871BCF9108958823EE
+:103AB00009F44BC0823859F40E944F1B81FF45C066
+:103AC00089E30E94AF260E94322789E30CC0833825
+:103AD00071F40E944F1B80FF38C083E50E94AF261F
+:103AE0000E94322783E50E94CC260C94322784382A
+:103AF00059F40E944F1B82FF28C087E40E94AF2622
+:103B00000E94322787E4EFCF9CEF980F913A58F349
+:103B100090E2980F983050F4877091E001C0990FAF
+:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F
+:103B3000933020F480E090E00C94711B885A83311C
+:103B400020F480E090E00C94871B0895882321F0F6
+:103B50000E94EB260C9432270895882321F00E94BE
+:103B6000F1260C9432270895BF92CF92DF92EF9204
+:103B7000FF920F931F93CF93DF9300D000D000D01C
+:103B8000CDB7DEB725E0FC01DE01119601900D9264
+:103B90002A95E1F7FC01D0801181028125812295CF
+:103BA0002F7043815481452B09F472C31F3F21F4C8
+:103BB000FFEFDF1609F46CC37C012E830E94D3074C
+:103BC000D9821A8369817A81802F0E94AB26182FAF
+:103BD000B92E0E9460260E9427252E81002319F00D
+:103BE0000E9408272E81EB2DE295EF70F0E0E4595A
+:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B
+:103C0000882319F0F29480EFF822002389F0FF2036
+:103C100009F47CC280E2810F883020F48F2D0E944D
+:103C2000EB2603C08F2D0E94FB260E9432276EC216
+:103C3000812F0E94571DFF2009F42AC3105E8F2D8B
+:103C4000183018F40E94F12602C00E94012726961F
+:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D
+:103C60000F91FF90EF90DF90CF90BF900C94322790
+:103C70008B2D807F9B2D9F70803211F4892F03C084
+:103C8000892F8295807F112319F0113011F12BC0FB
+:103C90000023A9F0222389F1213079F526960FB669
+:103CA000F894DEBF0FBECDBFDF91CF911F910F9172
+:103CB000FF90EF90DF90CF90BF900C941B272223B2
+:103CC00019F0213009F4E4C28E830E941E278E81F0
+:103CD0009BC1002321F0263008F0DAC20EC0253047
+:103CE00008F0D6C291C10023C9F0222331F0F701B8
+:103CF000958190FF0BC29F70958326960FB6F8941E
+:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E
+:103D1000EF90DF90CF90BF900C94A61D222309F462
+:103D200073C109C22B2D26952695237030E02115ED
+:103D3000310521F021303105D1F0AAC2002321F054
+:103D4000812F9B2D937002C080E090E026960FB6E5
+:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1
+:103D6000FF90EF90DF90CF90BF900C94711B0023D9
+:103D700021F0812F9B2D937002C080E090E0269669
+:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C
+:103D90000F91FF90EF90DF90CF90BF900C94871B16
+:103DA000812F002319F00E94502902C00E94B829D7
+:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130
+:103DC0001F910F91FF90EF90DF90CF90BF900C94D8
+:103DD0003D2A8B2D837009F07BC0011159C2812FC0
+:103DE000829586958770880F880F912F9F70C92EB6
+:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7
+:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC
+:103E100070E004C0440F551F661F771F8A95D2F7C4
+:103E2000CB01BA01609570958095909503C060E0D4
+:103E300070E0CB012B2D269526952370422F50E064
+:103E400042305105D9F04330510569F16C297D2983
+:103E50008E299F294130510551F126960FB6F894CD
+:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD
+:103E7000EF90DF90CF90BF900C944E256C297D2958
+:103E80008E299F2926960FB6F894DEBF0FBECDBFB0
+:103E9000DF91CF911F910F91FF90EF90DF90CF9026
+:103EA000BF900C946A250E944E25C701B601269644
+:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B
+:103EC0000F91FF90EF90DF90CF90BF900C94322530
+:103ED000002319F08B2D817001C08695882309F489
+:103EE000D7C1812F829586958770880F880F912F73
+:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3
+:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018
+:103F100050E060E070E004C0440F551F661F771F3B
+:103F20008A95D2F7CB01BA016095709580959095EE
+:103F300003C060E070E0CB012B2D26952695237001
+:103F4000422F50E042305105D9F04330510569F11C
+:103F50006C297D298E299F294130510551F12696E2
+:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A
+:103F70000F91FF90EF90DF90CF90BF900C94282688
+:103F80006C297D298E299F2926960FB6F894DEBFCD
+:103F90000FBECDBFDF91CF911F910F91FF90EF909A
+:103FA000DF90CF90BF900C9444260E942826C70132
+:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7
+:103FC000CF911F910F91FF90EF90DF90CF90BF9016
+:103FD0000C940C26103F49F118F4103E48F491C09F
+:103FE000123F09F453C0E8F1133F09F464C089C0DB
+:103FF0001F708B2D8F71002321F00E94A525812F2A
+:104000007CCE0E94C625812F26960FB6F894DEBF7F
+:104010000FBECDBFDF91CF911F910F91FF90EF9019
+:10402000DF90CF90BF900C94AD1D0023B1F02530F0
+:1040300008F02EC18B2D8F7126960FB6F894DEBF37
+:104040000FBECDBFDF91CF911F910F91FF90EF90E9
+:10405000DF90CF90BF900C94EB25263008F018C16C
+:10406000E9CF0023A9F08B2D8F7126960FB6F89417
+:10407000DEBF0FBECDBFDF91CF911F910F91FF909B
+:10408000EF90DF90CF90BF900C94A525002359F3BB
+:104090008B2D8F7126960FB6F894DEBF0FBECDBF65
+:1040A000DF91CF911F910F91FF90EF90DF90CF9014
+:1040B000BF900C94C625002399F08B2D8F71269606
+:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129
+:1040D0000F91FF90EF90DF90CF90BF900C949025C0
+:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD
+:1040F0001F910F91FF90EF90DF90CF90BF900C94A5
+:1041000086250023A9F0222309F4ADCF812F26961E
+:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8
+:104120000F91FF90EF90DF90CF90BF900C948F1C79
+:10413000222309F4ADCF812F26960FB6F894DEBF67
+:104140000FBECDBFDF91CF911F910F91FF90EF90E8
+:10415000DF90CF90BF900C94571D4B2D4F70612F67
+:10416000C7010E940B0626960FB6F894DEBF0FBE5D
+:10417000CDBFDF91CF911F910F91FF90EF90DF9016
+:10418000CF90BF900C94AA24011182C09B2D9F70E8
+:10419000492F50E04230510509F443C0C4F44115A1
+:1041A000510571F14130510509F072C026960FB6E4
+:1041B000F894DEBF0FBECDBFDF91CF911F910F915D
+:1041C000FF90EF90DF90CF90BF900C94312D433053
+:1041D0005105C1F14430510509F05AC0812F26968E
+:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108
+:1041F0000F91FF90EF90DF90CF90BF900C94832DA4
+:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB
+:104210001F910F91FF90EF90DF90CF90BF900C9483
+:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4
+:10423000CF911F910F91FF90EF90DF90CF90BF90A3
+:104240000C944D2D26960FB6F894DEBF0FBECDBF51
+:10425000DF91CF911F910F91FF90EF90DF90CF9062
+:10426000BF900C94602D4B2D4F70612FC701269687
+:104270000FB6F894DEBF0FBECDBFDF91CF911F9177
+:104280000F91FF90EF90DF90CF90BF900C94D507E7
+:1042900026960FB6F894DEBF0FBECDBFDF91CF914B
+:1042A0001F910F91FF90EF90DF90CF90BF900895F6
+:1042B0000E9408270E9418270E94DD260E943227AC
+:1042C0000E94EE2A0E943D2A80E090E00E94711B2D
+:1042D00080E090E00C94871B0E94F8260C945821F3
+:1042E0000E94A026292F22952F7030E02C30310516
+:1042F0004CF42A3031056CF422503109223031055A
+:1043000088F407C02C30310549F02F30310531F0E9
+:1043100009C0803E48F0803F29F406C093FB8827FF
+:1043200080F9089580E0089581E00895CF93DF93A8
+:1043300000D000D01F92CDB7DEB70F900F900F9036
+:104340000F900F90DF91CF910895CF93DF9300D01E
+:1043500000D000D0CDB7DEB726960FB6F894DEBFFA
+:104360000FBECDBFDF91CF9108951F93CF93DF9301
+:10437000C0917B0316E080917C03C81799F0D0E0D0
+:104380001C9FF0011D9FF00D1124E358FC4F40814C
+:10439000518162817381848195810E94A52121963A
+:1043A000C770E9CFDF91CF911F9108954091AD0380
+:1043B0005091AE036091AF037091B0038091B1034F
+:1043C0009091B2030C94A5218091B20382958F70D5
+:1043D00009F054C08091AF03882309F44FC0809145
+:1043E0007B03A0917C036091AD037091AE0340917B
+:1043F000B0035091B103B6E08A1709F43FC090E0D2
+:1044000041155105C1F17F3F11F46F3FA1F1B89FF4
+:10441000F001B99FF00D1124E358FC4F2181721374
+:104420002AC02081621327C02281211124C0238148
+:1044300034812417350710F421503109241B350B22
+:10444000283C3105C0F42091B2032F7020612093E5
+:10445000B20326E0289FF001299FF00D1124EE57AA
+:10446000FC4F80818F70806180838DEA93E00E9491
+:10447000B41D0C94B52101968770BECF0895CF92DC
+:10448000DF92EF92FF920F931F93CF93DF93CDB7FD
+:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA
+:1044A00085E0F801DE011D9601900D928A95E1F7F5
+:1044B000D8014C9111965C91119712966C911297BC
+:1044C0001396CD90DC9014973091AD037091AE03AC
+:1044D0008091B0039091B103009709F46BC17F3FC5
+:1044E00019F43F3F09F466C1E090AF03EE2009F4F0
+:1044F000C0C02091B203C816D90628F0F601E81B07
+:10450000F90BCF0104C0809590958C0D9D1DFF2463
+:10451000F394883C910578F0F12C207F09F0C6C017
+:104520007C2DD98AC88A89890E9496218DEA93E0D8
+:104530000E94B41DB1C0822F807F09F046C0751360
+:1045400014C0341312C0611110C02F702061209369
+:10455000B2030E94D6218DEA93E00E94B41D80919F
+:10456000B203D80115968C932EC0CD2819F15F3F68
+:1045700011F44F3FF9F0F62E61111CC080917B03BE
+:1045800020917C0336E0821709F45AC090E0389FEE
+:10459000F001399FF00D1124E358FC4F718157133E
+:1045A00006C07081471303C07281711103C0019668
+:1045B0008770E9CFF62E662309F418C18091B20303
+:1045C00081608093B203F12C11C1751308C03413BC
+:1045D00006C0611104C08091B203D801C3C04D87E9
+:1045E0005E878D859E856A8B0E9470216A898823EB
+:1045F000E1F16623D1F12091B203822F82958F7071
+:1046000090E0029774F08091AD039091AE0398878B
+:104610008F831986DB86CA862C87CE0107960E9477
+:10462000B41D86E0F801ADEAB3E001900D928A95E1
+:10463000E1F70E94E4210E94D621FF24F394D6C022
+:104640004D875E878D859E850E94A026292F229505
+:104650002F7030E0223031050CF0BCC09F7009F0A3
+:10466000B6C0805E883008F4C1C0C8010E94B41D85
+:10467000E4CFC816D90608F453C0F601E81BF90BBD
+:10468000CF01883C910508F450C0F12C7C2DD98ACB
+:10469000C88A89890E949621EDEAF3E086E0DF016D
+:1046A0001D928A95E9F70E94D621A0C0751314C007
+:1046B000341312C0611110C08091B203F8018583D8
+:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F
+:1046D0008A95E9F7FE2C8AC04D875E878D859E8579
+:1046E0006A8B0E9470216A89882309F4BECF6623F1
+:1046F00009F4BBCF2091B203822F82958F7090E096
+:1047000002970CF48ECF8091AD039091AE039A8303
+:1047100089831B82DD82CC822E83CE0101967FCFDE
+:10472000809590958C0D9D1DACCFF62E662309F4D7
+:104730009CCF75132EC034132CC02091B20320FDE2
+:104740001FC0822F82958F70D9F0D80115962C93B7
+:1047500015978F3049F08F5F982F9295907F822F19
+:104760008F70892B15968C93C8010E94B41D86E02A
+:10477000F801ADEAB3E001900D928A95E1F793CF8D
+:1047800086E0F801ADEAB3E001900D928A95E1F779
+:104790002DC04D875E878D859E850E947021811179
+:1047A00040CF8091B20381608093B203C8010E9420
+:1047B000B41D1CC0662309F458CF4D875E878D85D4
+:1047C0009E850E947021882309F44FCF2ACF811142
+:1047D00048CF0CC0243031050CF047CF9F7009F44E
+:1047E00040CFF8019581907F09F03BCF8F2D6296E5
+:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2
+:104800000F91FF90EF90DF90CF9008951F93CF937B
+:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F
+:10482000CDBF4F83588769877A878B879C87CE0156
+:1048300007960E943F22882369F08F8198852A85F8
+:104840003B85232BF1F19F3F09F063C08F3F09F0B7
+:1048500060C037C086E0FE013796DE0111960190F8
+:104860000D928A95E1F76F817885EA85FB8530970F
+:1048700041F17F3F11F46F3F21F120917C0330E043
+:10488000C90101968770992740917B0350E08417F6
+:10489000950709F447C069837A83FD83EC8396E02A
+:1048A000929FD001939FB00D1124A358BC4FFE01DD
+:1048B000319601900D929A95E1F780937C030E94C6
+:1048C000B52116E080917B0390917C038917C1F19B
+:1048D000189FC001112483589C4F0E943F228823B7
+:1048E00079F1E0917B031E9FF0011124E358FC4F06
+:1048F0004081518162817381848195810E94A521CB
+:1049000080917B0390E001968770992780937B03C9
+:10491000D9CF4F81588569857A858B859C850E9482
+:10492000A521CFCF0E946C2110927C0310927B03B3
+:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49
+:104940002C960FB6F894DEBF0FBECDBFDF91CF918E
+:104950001F910895EF92FF920F931F93CF93DF93D0
+:104960008C01009709F46CC0F12CEE24E394E8016B
+:104970002196F8018491843740F4843008F051C0C6
+:10498000813081F0823019F15BC0853709F444C071
+:10499000A8F19CE7980F903708F052C08F770E94DB
+:1049A000571D41C00E5F1F4FFE01C49180E28C0F66
+:1049B000883048F4C7708E2D01C0880FCA95EAF779
+:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD
+:1049D0001F4FFE01C49180E28C0F883058F4C770DD
+:1049E0008E2D01C0880FCA95EAF70E9411270E94F8
+:1049F00032271AC08C2F0E94571D16C00E5F1F4F02
+:104A0000FE01C491CC2381F08FE99FE00197F1F77B
+:104A100000C00000C150F6CF0E5F1F4FFE01F490A2
+:104A200003C00E948F1C8E018F2D882309F49FCF15
+:104A3000EFE9FFE03197F1F700C000008150F5CFBA
+:104A4000DF91CF911F910F91FF90EF9008950895FE
+:104A50006093B7037093B8038093B9039093BA033C
+:104A60000C9458210F931F930091B7031091B80332
+:104A70002091B9033091BA03DC01CB01802B912B3B
+:104A8000A22BB32B8093B7039093B803A093B903E1
+:104A9000B093BA031F910F910C9458210F931F9359
+:104AA0000091B7031091B8032091B9033091BA0374
+:104AB000DC01CB0180239123A223B3238093B7038E
+:104AC0009093B803A093B903B093BA031F910F91C9
+:104AD0000C9458210F931F930091B7031091B803C2
+:104AE0002091B9033091BA03DC01CB0180279127D3
+:104AF000A227B3278093B7039093B803A093B90379
+:104B0000B093BA031F910F910C9458211092B303E4
+:104B10001092B4031092B5031092B6030C9458216E
+:104B200041E050E060E070E004C0440F551F661F94
+:104B3000771F8A95D2F74093B3035093B4036093E1
+:104B4000B5037093B6030C94582141E050E060E047
+:104B500070E004C0440F551F661F771F8A95D2F777
+:104B60008091B3039091B403A091B503B091B603C3
+:104B7000482B592B6A2B7B2B4093B3035093B403E0
+:104B80006093B5037093B6030C94582141E050E054
+:104B900060E070E004C0440F551F661F771F8A95C0
+:104BA000D2F740955095609570958091B3039091A0
+:104BB000B403A091B503B091B603482359236A23E7
+:104BC0007B234093B3035093B4036093B503709376
+:104BD000B6030C94582141E050E060E070E004C05E
+:104BE000440F551F661F771F8A95D2F78091B30334
+:104BF0009091B403A091B503B091B603482759270B
+:104C00006A277B274093B3035093B4036093B503A3
+:104C10007093B6030C9458210F931F930091B30324
+:104C20001091B4032091B5033091B603DC01CB01A0
+:104C3000802B912BA22BB32B8093B3039093B403BF
+:104C4000A093B503B093B6031F910F910C94582114
+:104C50000F931F930091B3031091B4032091B503F8
+:104C60003091B603DC01CB0180239123A223B3232F
+:104C70008093B3039093B403A093B503B093B603AA
+:104C80001F910F910C9458210F931F930091B30320
+:104C90001091B4032091B5033091B603DC01CB0130
+:104CA00080279127A227B3278093B3039093B4035F
+:104CB000A093B503B093B6031F910F910C945821A4
+:104CC0000895CF92DF92EF92FF920F931F93CF93AD
+:104CD000DF938C01C090B703D090B803E090B90384
+:104CE000F090BA038091B3039091B403A091B503FF
+:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C
+:104D0000D701C6010C2E04C0B695A7959795879537
+:104D10000A94D2F780FF06C0B8018C2F0E942F0A98
+:104D2000019721F4219760F780E001C08C2FDF917B
+:104D3000CF911F910F91FF90EF90DF90CF9008954A
+:104D4000CF93DF93EC010E946126BE010E942F0ADF
+:104D5000DF91CF910895CB010E94A0260895209164
+:104D60001D0230911E02F90132969FEF40E05191F1
+:104D7000581789F09F3F19F4511101C0942F4F5FCC
+:104D80004630A9F79F3F39F0F901E90FF11D97FD72
+:104D9000FA9582830895089520911D0230911E0294
+:104DA000F9013296285F3F4F9081981301C010821D
+:104DB0003196E217F307C1F7089581E090E0E091A2
+:104DC0001D02F0911E02E80FF91F10820196883033
+:104DD0009105A9F708959091C603892B8093C60386
+:104DE000089580959091C60389238093C603089502
+:104DF0001092C60308959091C503892B8093C50333
+:104E0000089580959091C50389238093C5030895E3
+:104E10001092C50308959091C403892B8093C40315
+:104E2000089580959091C40389238093C4030895C5
+:104E30001092C40308958093BB0308951092BB039E
+:104E4000089580911D0290911E02FC0131969C01F3
+:104E5000285F3F4F80E0919191118F5FE217F30738
+:104E6000D1F70895E0911D02F0911E028091C603D2
+:104E70008083E0911D02F0911E0290818091C50314
+:104E8000892B8083E0911D02F0911E029081809118
+:104E9000C403892B80838091BB03882361F0E09158
+:104EA0001D02F0911E029081892B80830E94212790
+:104EB00081111092BB0380911D0290911E020C94EF
+:104EC0005B1B8091E803843039F11092C80320E421
+:104ED00088E190E00FB6F894A895809360000FBE2B
+:104EE0002093600080E00E94D20580E00E940A0BBF
+:104EF00083B7817F846083BF83B7816083BF7894E9
+:104F0000889583B78E7F83BF88E10FB6F89480932E
+:104F10006000109260000FBE089508950895CF9329
+:104F200080E00E94D2050E948D270E94AD0C0E9455
+:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD
+:104F4000C530C1F780E001C081E0CF9108950E9493
+:104F50006C2180E00E94D2050E94092D0E944F1B07
+:104F60000C940A0B1F920F920FB60F9211248F937D
+:104F70009F93AF93BF938091C803811113C0809119
+:104F8000C9039091CA03A091CB03B091CC03419681
+:104F9000A11DB11D8093C9039093CA03A093CB03B5
+:104FA000B093CC03BF91AF919F918F910F900FBEA3
+:104FB0000F901F90189582E084BD93E095BD9AEF05
+:104FC00097BD80936E0008952FB7F8948091C90320
+:104FD0009091CA03A091CB03B091CC032FBF089549
+:104FE000CF92DF92EF92FF920F931F932FB7F89417
+:104FF0004091C9035091CA036091CB037091CC03D7
+:105000002FBF6A017B01EE24FF248C0120E030E0F9
+:10501000C016D106E206F30610F4415051099A0178
+:10502000281B390BC9011F910F91FF90EF90DF9062
+:10503000CF9008951F920F920FB60F9211248F9365
+:105040009F93AF93BF938091C9039091CA03A0919E
+:10505000CB03B091CC030196A11DB11D8093C90370
+:105060009093CA03A093CB03B093CC03BF91AF91AD
+:105070009F918F910F900FBE0F901F9018950E94D7
+:105080004C18F8942FEF87EA91E621508040904029
+:10509000E1F700C0000087E090EBDC018093F303B0
+:1050A0009093F403A093F503B093F6039CE088E19A
+:1050B0000FB6F894A895809360000FBE909360009F
+:1050C000FFCF0E949B28811102C00E9477280E9476
+:1050D000A6288093C7030E94B3288093F1030E94FF
+:1050E000AA28682F70E080E090E00C9428256DEEEF
+:1050F0007EEF80E090E00E94BC3160E082E090E0D2
+:105100000E94AA3160E083E090E00E94AA3160E052
+:1051100084E090E00E94AA3160E085E090E00E9487
+:10512000AA3160E086E090E00E94AA316FEF87E04C
+:1051300090E00C94AA3180E090E00E94A43121E03C
+:105140008D3E9E4F09F020E0822F089582E090E08E
+:105150000C949C3183E090E00C949C31682F83E0A8
+:1051600090E00C94AA3184E090E00C949C31682F7C
+:1051700084E090E00C94AA3186E090E00C949C319D
+:10518000682F86E090E00C94AA3187E090E00C94C0
+:105190009C31682F87E090E00C94AA318091CF0376
+:1051A00080FF0BC06091220285E0689FB00111244E
+:1051B00075956795759567952BC081FF09C06091BE
+:1051C000220285E0689FB00111247595679520C083
+:1051D00082FF07C06091220285E0689FB001112420
+:1051E00017C09091D0039923D1F0609121029617B6
+:1051F00088F72091220285E0289F90011124929F38
+:10520000A001939F500D112470E0CA010E948231C9
+:105210006038710540F46115710539F002C065E030
+:1052200070E0862F08958FE7089581E008958091BA
+:10523000CF0380FF08C06091200270E075956795EC
+:105240007595679521C081FF06C06091200270E0CE
+:105250007595679519C082FF04C06091200270E0C7
+:1052600010C09091D0039923C1F060911F0296174E
+:10527000A0F780912002899FC001112470E00E9454
+:1052800082316038710528F46115710521F0862F8F
+:1052900008958FE7089581E0089561E070E0F4CF0C
+:1052A000803F21F40E94CE28819504C0813F29F4DB
+:1052B0000E94CE288093D3030895823F21F40E9458
+:1052C000CE28819504C0833F29F40E94CE28809384
+:1052D000D2030895893F19F40E94172905C08A3F17
+:1052E00031F40E94172981958093D40308958B3F50
+:1052F00021F40E941729819504C08C3F29F40E9453
+:1053000017298093D5030895843F21F48091D10318
+:10531000816017C0853F21F48091D103826011C064
+:10532000863F21F48091D10384600BC0873F21F434
+:105330008091D103886005C0883F31F48091D1030A
+:1053400080618093D10308958D3F21F48091CF0334
+:1053500081600BC08E3F21F48091CF03826005C035
+:105360008F3F29F48091CF0384608093CF03089509
+:10537000803F39F48091D30387FF6CC01092D30330
+:1053800069C0813F29F48091D3031816BCF362C031
+:105390009091D203823F29F497FF5CC01092D20310
+:1053A00059C0833F19F41916CCF354C0893F41F416
+:1053B0008091D40318160CF04DC01092D4034AC04B
+:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6
+:1053D00039F48091D50387FF3DC01092D5033AC0C0
+:1053E0008C3F29F48091D5031816BCF333C0843F59
+:1053F00021F48091D1038E7F17C0853F21F48091E5
+:10540000D1038D7F11C0863F21F48091D1038B7F22
+:105410000BC0873F21F48091D103877F05C0883F6F
+:1054200031F48091D1038F7E8093D10313C08D3FDF
+:1054300021F48091CF038E7F0BC08E3F21F48091A9
+:10544000CF038D7F05C08F3F29F48091CF038B7FE1
+:105450008093CF038091D20381110EC08091D3033A
+:1054600081110AC08091D403811106C08091D503B7
+:10547000811102C01092D003089581ED93E00E9443
+:10548000661B0E94E4279093CE038093CD0308957A
+:105490001F93CF93DF938091CD039091CE030E9411
+:1054A000F027AC019091D003992321F020912302A1
+:1054B00030E006C0209124028AE0289F9001112448
+:1054C0004217530708F486C08091D203C091D303DA
+:1054D000D091D4031091D503811107C0C11176C0BA
+:1054E000D11174C0111172C075C09F3F19F09F5F38
+:1054F0009093D003181624F40E94CE288093D203F0
+:105500008091D20387FF05C00E94CE2881958093A9
+:10551000D2031C1624F40E94CE288093D3038091DA
+:10552000D30387FF05C00E94CE2881958093D303C3
+:105530006091D203662339F1C091D303CC2319F1D2
+:10554000772767FD7095872F972F0E94A42E23E35E
+:1055500033E343E35FE30E94B42F0E94712E609314
+:10556000D2036C2F772767FD7095872F972F0E94A6
+:10557000A42E23E333E343E35FE30E94B42F0E94AE
+:10558000712E6093D3031D1624F40E941729809373
+:10559000D4038091D40387FF05C00E941729819509
+:1055A0008093D403111624F40E9417298093D50305
+:1055B0008091D50387FF05C00E94172981958093AC
+:1055C000D503DF91CF911F910C943D2A9F3F09F0A5
+:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B
+:1055E00085E0DF011D928A95E9F71092D0031092B1
+:1055F000CF030895833081F128F4813059F082304F
+:10560000D1F00895853009F449C0B8F1863009F425
+:1056100056C0089580912402262F30E0280F311DB6
+:105620002F3F310524F4680F6093240208958FEF13
+:1056300080932402089580912302262F30E0280FC2
+:10564000311D2F3F310524F4680F60932302089524
+:105650008FEF80932302089580912202262F30E05D
+:10566000280F311D2F3F310524F4680F609322026B
+:1056700008958FEF80932202089580912102262FB2
+:1056800030E0280F311D2F3F310524F4680F60935F
+:10569000210208958FEF80932102089580912002C6
+:1056A000262F30E0280F311D2F3F310524F4680FDD
+:1056B0006093200208958FEF8093200208958091D7
+:1056C0001F02262F30E0280F311D2F3F310524F413
+:1056D000680F60931F0208958FEF80931F02089553
+:1056E000833011F128F4813049F0823091F008952F
+:1056F000853081F120F18630C1F108958091240236
+:10570000681720F4861B80932402089510922402C7
+:10571000089580912302681720F4861B809323024A
+:10572000089510922302089580912202681720F4B0
+:10573000861B809322020895109222020895809180
+:105740002102681720F4861B80932102089510928D
+:105750002102089580912002681720F4861B80930F
+:105760002002089510922002089580911F02681768
+:1057700020F4861B80931F02089510921F02089543
+:105780000F931F938732D8F58E3108F087C08E3083
+:1057900009F471C098F4873009F45BC08B3009F4C8
+:1057A00091C0863009F095C08091C703817F8E7FBC
+:1057B0008093C70381E08093D7038CC0863109F4BE
+:1057C00081C068F4803109F084C08091C70383FBF5
+:1057D000222720F991E0922790FB83F955C0893167
+:1057E00009F470C08B3109F074C08091C70381FB4C
+:1057F000222720F991E0922790FB81F945C0883358
+:1058000009F460C050F4893209F45EC0853309F4AC
+:105810005BC0873209F458C05CC0833409F454C0BB
+:1058200028F48A3308F455C0895339C0883409F004
+:1058300050C00E946C210E94B2070FEF13ED20E3CD
+:10584000015010402040E1F700C000000E943F28B6
+:1058500039C09091C703892F8095817080FB90F9A2
+:1058600029F0966098609093C70334C0997F977F22
+:105870009093C70327C08091C70382FB222720F99A
+:1058800091E0922790FB82F98093C7039923D1F08E
+:105890008091C70381608093C70314C08D5141E09C
+:1058A00050E060E070E08A019B0104C0000F111F0E
+:1058B000221F331F8A95D2F7C901B8010E942825FB
+:1058C0000E946C2181E006C061E070E080E090E021
+:1058D000F5CF80E01F910F91089580E0089580E05A
+:1058E0000895CF93C82F8091D703813069F018F0C5
+:1058F0008230C9F184C0E0911D02F0911E028081C6
+:10590000823209F07EC007C0E0911D02F0911E02B4
+:105910008081823261F48C2F0E946D2C811104C031
+:105920008C2F0E94C02B1DC081E090E01AC08C2FEC
+:105930000E946F2C811114C0C43179F048F4CB302F
+:1059400079F0C03109F061C082E08093D70308C0CC
+:10595000C93219F0C83321F058C01092D70355C08E
+:1059600081E0817054C0C93291F120F5C43179F1E0
+:10597000B0F4C73009F047C08EE18093240282E37F
+:10598000809323028AE08093220284E180932102A3
+:1059900088E08093200288E280931F0234C0CE51B9
+:1059A000C63088F5EC2FF0E0E451FD4F8081809304
+:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7
+:1059C00013C0C13579F0C235F1F461E00DC08091AA
+:1059D000D603882319F01092D60315C081E0809376
+:1059E000D70315C061E006C08091D6030E94FA2A51
+:1059F0000AC06AE08091D6030E94702B04C0109206
+:105A0000D70380E004C081E002C080E0AACFCF913C
+:105A100008950E949B28811102C00E9477280E944D
+:105A2000BC288093F20380FF02C0869501C080E00D
+:105A30000C94D2058091F203982F9695292F30E08F
+:105A4000233031054CF49F5F990F8170892B816061
+:105A50008093F2030E94C0288091F20386950C94F3
+:105A6000D2058091F203982F969591F09158990F55
+:105A70008170892B8093F2038E7F91E009F490E08E
+:105A80008091F20390FB80F98093F2030E94C0287A
+:105A90008091F20386950C94D2058091F203982FA1
+:105AA000909590FB80F98093F2030E94C02880912A
+:105AB000F20380FF02C0869501C080E00C94D205FD
+:105AC0009091F203892F86958F5F8F779170843044
+:105AD00028F4880F892B8093F20302C09093F2037D
+:105AE0008091F2038E7F91E009F490E08091F203BF
+:105AF00090FB80F98093F2030E94C0288091F2030A
+:105B000086950C94D2052091F203922F96958927C1
+:105B1000982F990F822F8170892B8093F2038E7FAB
+:105B200091E009F490E08091F20390FB80F980937A
+:105B3000F2030E94C0288091F20386950C94D2054E
+:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F
+:105B500020F031F49F3F11F41EF4B7C10EF4E0952C
+:105B6000E7FB9FC1E92FD3D180F3BA176207730710
+:105B70008407950718F071F49EF5EBC10EF4E095DB
+:105B80000B2EBA2FA02D0B01B90190010C01CA01F7
+:105B9000A0011124FF27591B99F0593F50F4503EA2
+:105BA00068F11A16F040A22F232F342F4427585F94
+:105BB000F3CF469537952795A795F0405395C9F7AC
+:105BC0007EF41F16BA0B620B730B840BBAF0915064
+:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003
+:105BE000BA0F621F731F841F48F4879577956795D6
+:105BF000B795F7959E3F08F0B3CF9395880F08F0BF
+:105C00009927EE0F97958795089527D108F481E09D
+:105C100008950CD06BC163D140F05AD130F021F41B
+:105C20005F3F19F03EC1511195C14FC170D198F33A
+:105C30009923C9F35523B1F3951B550BBB27AA270D
+:105C400062177307840738F09F5F5F4F220F331F7F
+:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B
+:105C600091505040E695001CCAF729D0FE2F27D04E
+:105C7000660F771F881FBB1F261737074807AB071C
+:105C8000B0E809F0BB0B802DBF01FF2793585F4F91
+:105C90002AF09E3F510568F004C15CC15F3FECF300
+:105CA000983EDCF3869577956795B795F7959F5F56
+:105CB000C9F7880F911D9695879597F90895E1E0AA
+:105CC000660F771F881FBB1F621773078407BA0709
+:105CD00020F0621B730B840BBA0BEE1F88F7E09564
+:105CE000089504D06894B11135C1089518D188F091
+:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8
+:105D0000771F881F991F1AF0BA95C9F712C0B130D2
+:105D100081F01FD1B1E008951CC1672F782F88272B
+:105D2000B85F39F0B93FCCF3869577956795B39511
+:105D3000D9F73EF490958095709561957F4F8F4F80
+:105D40009F4F0895E89409C097FB3EF49095809585
+:105D5000709561957F4F8F4F9F4F9923A9F0F92F31
+:105D600096E9BB279395F695879577956795B795AF
+:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95
+:105D80007F4F8F4F9F4F16C0882311F096E911C0A7
+:105D9000772321F09EE8872F762F05C0662371F0C8
+:105DA00096E8862F70E060E02AF09A95660F771FDC
+:105DB000881FDAF7880F9695879597F9089588D008
+:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7
+:105DD000B0F35523C9F3E7FB6217730784079507F0
+:105DE000A8F199F3E92FFF2788232AF03197660F4E
+:105DF000771F881FDAF7952F5527442332F09150EB
+:105E00005040220F331F441FD2F7BB27E91BF50B6D
+:105E1000621B730B840BB109C1F222F4620F731F72
+:105E2000841FB11D31972AF0660F771F881FBB1F93
+:105E3000EFCF915050405AF041F0882332F0660F76
+:105E4000771F881F91505040C1F7939530C08695B9
+:105E5000779567959F5FD9F7F8CF990F0008550F91
+:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0
+:105E700012161306E407F50798F0621B730B840BE8
+:105E8000950B39F40A2661F0232B242B252B21F4C2
+:105E900008950A2609F4A140A6958FEF811D811D62
+:105EA000089597F99F6780E870E060E008959F3F4C
+:105EB00031F0915020F4879577956795B795880FC5
+:105EC000911D9695879597F908959FEF80EC089519
+:105ED00000240A94161617061806090608950024C9
+:105EE0000A9412161306140605060895092E039443
+:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7
+:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15
+:105F10009058440F551F59F05F3F71F04795880F17
+:105F200097FB991F61F09F3F79F0879508951216AE
+:105F300013061406551FF2CF4695F1DF08C016165A
+:105F400017061806991FF1CF86957105610508940B
+:105F50000895E894BB2766277727CB0197F9089522
+:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD
+:105F7000B6DF18F0952309F094CFA7CF1124EACF0C
+:105F8000C6DFA0F3959FD1F3950F50E0551F629F98
+:105F9000F001729FBB27F00DB11D639FAA27F00D82
+:105FA000B11DAA1F649F6627B00DA11D661F829FA9
+:105FB0002227B00DA11D621F739FB00DA11D621F8E
+:105FC000839FA00D611D221F749F3327A00D611DAB
+:105FD000231F849F600D211D822F762F6A2F11248D
+:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0
+:105FF000BB1F661F771F881F91505040A9F79E3F17
+:10600000510570F04ECFA6CF5F3FECF3983EDCF326
+:10601000869577956795B795F795E7959F5FC1F753
+:10602000FE2B880F911D9695879597F90895FA0193
+:10603000EE0FFF1F30962105310599F161157105AD
+:1060400061F48038BFE39B0749F16894903881057B
+:1060500061F08038BFEF9B0741F0992342F5FF3F85
+:10606000E1053105210511F1E8940894E795D9017E
+:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27
+:1060800070F4A695E0F7F73950F019F0FF3A38F4BC
+:106090009F779F930CD00F9007FC905808953EF087
+:1060A00014CF60E070E080E89FE308954FE79F77AA
+:1060B0005F934F933F932F939ED02F913F914F919A
+:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A
+:1060D00026DFC8F39638C0F707F80F92E8942BE351
+:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF
+:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD
+:10610000EF91FF91E595EE1FFF1F49F0FE57E06804
+:106110004427EE0F441FFA95E1F74195550B32D015
+:106120000F9007FE26C00895DF93CF931F930F9320
+:10613000FF92EF92DF927B018C01689405C0DA2E0A
+:10614000EF011EDFFE01E894A5912591359145915F
+:106150005591AEF3EF0106DDFE019701A801DA9437
+:1061600079F7DF90EF90FF900F911F91CF91DF9122
+:1061700008959B01AC0160E070E080E89FE349CDA9
+:1061800090CE95CECCDEE8F39923D9F3940F511D30
+:10619000BBF39150504094F059F0882332F0660FD1
+:1061A000771F881F91505040C1F79E3F510544F71B
+:1061B000880F911D9695879597F908955F3FACF0EC
+:1061C000983E9CF0BB27869577956795B79508F420
+:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A
+:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8
+:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0
+:10620000DF93CF931F930F93FF92C92FDD2788232E
+:106210002AF02197660F771F881FDAF720E030E019
+:1062200040E85FEB9FE3883920F0803E30F0219614
+:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E
+:1062400073DF8B01BE01EC01FB2E6F577109759551
+:10625000771F880B990B78DD28E132E741E35FE394
+:106260008FDEAF2D9801AE01FF900F911F91CF915E
+:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A
+:10628000AC01BF5728F422273327442750781FC07A
+:10629000B75188F4AB2F0024469537952795011CFC
+:1062A000A395D2F3002069F0220F331F441FB3954A
+:1062B000DAF30DD045CC61307105A0E88A07B94604
+:1062C00030F49B01AC0166277727882790783096B9
+:1062D00021F020833183428353830895AA1BBB1B83
+:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6
+:1062F000B70B881F991F5A95A9F780959095BC01F7
+:10630000CD01089597FB072E16F4009407D077FD72
+:1063100009D00E946E3107FC05D03EF4909581951E
+:106320009F4F0895709561957F4F0895EE0FFF1F61
+:106330000590F491E02D0994F999FECF92BD81BDAD
+:10634000F89A992780B50895A8E1B0E042E050E0BE
+:106350000C94C431262FF999FECF92BD81BDF89AD5
+:10636000019700B4021639F01FBA20BD0FB6F89499
+:10637000FA9AF99A0FBE08950196272F0E94AB3121
+:106380000C94AA31DC01CB01FC01F999FECF06C0C7
+:10639000F2BDE1BDF89A319600B40D9241505040E3
+:0863A000B8F70895F894FFCF4F
+:1063A8000C52D02445000000410000DC44000000ED
+:1063B8004152D0A4440000404100005C4400000069
+:1063C8004148F17644000000415C978A440000008F
+:1063D800411FD592440000004152D0A4440000005F
+:1063E800415CFFB844000000410AA7CF4400000008
+:1063F800410000DC44000000410AA7CF440000002F
+:10640800410000DC44000000410000000000008062
+:106418004052D024450000404100000000000080A8
+:10642800400AA74F45000040410AA7CF440000009A
+:10643800410000DC44000000410000000000008032
+:106448004052D024450000004100000000000080B8
+:10645800405CFF384500000041000000000000805B
+:106468004052D02445000000410AA7CF4400000054
+:10647800410000DC440000004100000000000080F2
+:106488004052D024450000804110F176440000A01D
+:106498004112F1F6440000004141909B440000A0E5
+:1064A8004112F1F64400000041050000003F0000E1
+:1064B800C8427B140915E614B2147E1401BC0328E3
+:1064C80008140A321E000002000400050007000933
+:1064D800000B000C000E001000110013001500172F
+:1064E8000018001A001C001D001F002100230024B2
+:1064F800002600280029002B002D002F0030003234
+:106508000034003500370039003B004200450025C3
+:106518000026004300610060002000370064006529
+:1065280000660067004400460024004700314980A7
+:106538003F5D8B803FF8BF803FCAE1803F73ED80AD
+:106548003FCAE1803FF8BF803F5D8B803F31498083
+:106558003F0000803FF16D7F3F75EA7E3F4C827EB1
+:106568003F833F7E3F84287E3F833F7E3F4C827E31
+:106578003F75EA7E3FF16D7F3F0000803F3F4D361B
+:10658800B90A6C0A360AE209FB09140A0102030473
+:06659800050607080900DA
+:00000001FF
diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex deleted file mode 100644 index cc59d3fe8d..0000000000 --- a/keyboard/preonic/preonic_pcb_silent.hex +++ /dev/null @@ -1,1189 +0,0 @@ -:100000000C9465020C94A9020C94A9020C94A90208
-:100010000C94A9020C94A9020C94A9020C94A902B4
-:100020000C94A9020C94A9020C94430D0C94150E87
-:100030000C942B1C0C94A9020C94A9020C94A902F8
-:100040000C94A9020C94A9020C94A9020C94A90284
-:100050000C94A9020C94981C0C94A9020C94A9026B
-:100060000C94A9020C94A9020C94A9020C94A90264
-:100070000C94A9020C94A9020C94A9020C94A90254
-:100080000C94A9020C94A9020C94A9020C94A90244
-:100090000C94A9020C94A9020C94A9020C94A90234
-:1000A0000C94A9020C94A9020C94A90235001E001C
-:1000B0001F0020002100220023002400250026002C
-:1000C00027002A002B0014001A0008001500170052
-:1000D0001C0018000C00120013002A002900040064
-:1000E0001600070009000A000B000D000E000F00AB
-:1000F00033003400E1001D001B000600190005005C
-:100100001100100036003700380028000030E000F1
-:10011000E200E30003522C002C0004525000510076
-:1001200052004F0035001E001F0020002100220059
-:10013000230024002500260027002A002B0014009D
-:100140001A00090013000A000D000F0018001C001F
-:1001500033002A00290004001500160017000700CC
-:100160000B00110008000C0012003400E1001D001B
-:100170001B000600190005000E00100036003700B5
-:10018000380028000030E000E200E30003522C00B9
-:100190002C0004525000510052004F0035001E0048
-:1001A0001F0020002100220023002400250026003B
-:1001B00027002A002B0034003600370013001C00F3
-:1001C00009000A00060015000F002A00290004009B
-:1001D0001200080018000C0007000B0017001100A7
-:1001E00016003800E100330014000D000E001B0063
-:1001F000050010001A0019001D0028000030E00062
-:10020000E200E30003522C002C0004525000510085
-:1002100052004F0035001E001F0020002100220068
-:10022000230024002500260027002A0035021E0294
-:100230001F0220022102220223022402250226029A
-:1002400027022A0001003A003B003C003D003E002E
-:100250003F002D022E022F02300231020100400029
-:100260004100420043004400450000530153025343
-:100270000050010001000100010001000100010027
-:1002800001000100AB00AA00A900AE0035001E006D
-:100290001F0020002100220023002400250026004A
-:1002A00027002A0035001E001F0020002100220028
-:1002B000230024002500260027002A0001003A0020
-:1002C0003B003C003D003E003F002D002E002F0073
-:1002D0003000310001004000410042004300440072
-:1002E000450000530153025300500100010001007A
-:1002F000010001000100010001000100AB00AA00A3
-:10030000A900AE002A0354006800650020005000D8
-:10031000720065006F006E006900630020004B00F2
-:100320006500790062006F006100720064000000E7
-:100330002C034F007200740068006F006C006900AD
-:100340006E0065006100720020004B0065007900BE
-:1003500062006F006100720064007300000004031B
-:10036000090409027400040100A0FA090400000154
-:1003700003010100092111010001223F000705814D
-:100380000308000A09040100010301020009211108
-:10039000010001224D000705820308000A0904023A
-:1003A00000010300000009211101000122360007AD
-:1003B00005830308000A0904030002030000000982
-:1003C00021110100012220000705840320000107FC
-:1003D0000504032000011201100100000008EDFED9
-:1003E00061600100010200010631FF0974A10109E9
-:1003F00075150025FF9520750881020976150025E1
-:10040000FF952075089102C005010980A1018502B0
-:1004100016010026B7001A01002AB70075109501D1
-:100420008100C0050C0901A1018503160100269C6D
-:10043000021A01002A9C02751095018100C0050175
-:100440000902A1010901A1000509190129051500E9
-:10045000250195057501810295017503810105014D
-:10046000093009311581257F950275088106093803
-:100470001581257F950175088106050C0A3802153E
-:1004800081257F950175088106C0C005010906A177
-:1004900001050719E029E715002501950875018177
-:1004A0000295017508810105081901290595057551
-:1004B0000191029501750391010507190029FF15A6
-:1004C0000025FF950675088100C011241FBECFEFDF
-:1004D000DAE0DEBFCDBF04B603FE24C08091F10197
-:1004E0009091F201A091F301B091F4018730904B0B
-:1004F000A740B04BB9F41092F1011092F2011092A2
-:10050000F3011092F40114BE84B7877F84BF88E1A1
-:100510000FB6F89480936000109260000FBEE0E088
-:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3
-:1005300005900D92A435B107D9F711E0A4E5B1E01B
-:1005400001C01D92A13FB107E1F70E94720A0C940D
-:10055000EE240C94000061110DC0FC0182818823FF
-:1005600031F085EE0E9426110E94272303C085EEFC
-:100570000E94EE1180E090E00895089508950E9491
-:10058000D1026E9A769A8DEB92E0892B11F00C9441
-:10059000BD0208958EEB92E0892B11F00C94BE02FF
-:1005A0000895279A2F988FEF9FEF9093870080935D
-:1005B00086008AE08093800089E1809381000C941A
-:1005C000D02281110BC080918000877F80938000B2
-:1005D00010928D0010928C002F9808952F988330E0
-:1005E00041F4809180008860809380008FEF9FEFBE
-:1005F00012C09091800098609093800023E030E0DA
-:10060000281B3109220F331F8FEF9FEF02C09695F1
-:1006100087952A95E2F790938D0080938C0008953A
-:100620008B3B910568F4883A910530F5853A910540
-:10063000C0F48430910598F4019709F06FC071C03F
-:10064000803E910508F46AC0883E910540F09C0107
-:10065000205F31092031310508F060C05CC09C0189
-:10066000A1C0853A910509F45FC0863A910509F465
-:100670005EC023E830E496C0883A910509F45AC078
-:10068000893A910509F459C08A3A910509F458C08C
-:100690008B3A910509F457C08C3A910509F456C07C
-:1006A0008D3A910509F455C0803B910509F454C079
-:1006B0008E3A910509F453C08F3A910509F452C05E
-:1006C000813B910509F451C0823B910509F450C06A
-:1006D000833B910509F44FC0843B910509F44EC05A
-:1006E000853B910509F44DC0863B910509F44CC04A
-:1006F000873B910509F44BC0883B910509F44AC03A
-:10070000893B910509F449C08A3B910509F048C02D
-:100710002AE236E447C09C01306544C020E030E066
-:1007200041C021E030E03EC021E830E43BC022E897
-:1007300030E438C022EE34E435C029EE34E432C06F
-:100740002AEE34E42FC025EB34E42CC026EB34E44D
-:1007500029C027EB34E426C02CEC34E423C02DEC74
-:1007600034E420C023E835E41DC02AE835E41AC08B
-:1007700022E935E417C024E935E414C021E236E467
-:1007800011C023E236E40EC024E236E40BC025E2B9
-:1007900036E408C026E236E405C027E236E402C0AB
-:1007A00020E034E4C901089508959CE0799FF001A8
-:1007B00011249CE3899FE00DF11D1124E60FF11D2A
-:1007C000EE0FFF1FE455FF4F25913491C9010895A5
-:1007D000880F991F845D9040FC0125913491C901D7
-:1007E0000895880F991F84559F4FFC0125913491DE
-:1007F000C90108950E94D5039C019A9581159F41D6
-:1008000010F4C9010895C90190528115904128F44E
-:10081000C9019F700E94F1030895C9019053811589
-:10082000904120F4C9019927906C0895C901905412
-:10083000409728F4C9018F709927946D089520314D
-:1008400080E4380719F480E091ED0895213190E4B7
-:10085000390719F480E090ED0895223140E434071F
-:1008600019F480E092ED0895233180E4380719F4FB
-:1008700080E093ED0895211590E5390769F40E9411
-:1008800015162FEF44E38CE0215040408040E1F703
-:1008900000C000000C94BD1C213090E5390731F4F4
-:1008A0008091D00181608093D0010895C901905555
-:1008B0008115904108F062C0432F55274F7055278E
-:1008C00041305105F9F4C90174E0880F991F7A95F8
-:1008D000E1F788279370B901E3E0660F771FEA9587
-:1008E000E1F760767727862B972B9C682370332758
-:1008F00002C0440F551F2A95E2F74F715527842BEC
-:10090000952B08954230510529F4922F8827816F45
-:10091000906A089543305105B9F4C90153E0880F36
-:10092000991F5A95E1F7807E97702370332741E035
-:1009300050E002C0440F551F2A95E2F74F7155272A
-:10094000842B952B9C6808954430510549F5C901C5
-:1009500043E0880F991F4A95E1F7807E97702370D6
-:10096000332741E050E002C0440F551F2A95E2F7BB
-:100970004F715527842B952B9A680895C90190577C
-:100980008115904120F4C9019F7090620895C901BA
-:1009900090588115904120F4C9019F70906A089584
-:1009A000203E3105E0F4203C310568F52133310566
-:1009B00009F475C048F42932310509F46BC02A32B4
-:1009C000310509F07BC075C02933310501F12238AA
-:1009D0003105E9F02533310509F070C051C0233EDF
-:1009E0003105B1F140F4203E3105D1F0223E310510
-:1009F00009F064C01CC0263E310579F1273E31055F
-:100A000009F05CC038C0C9010E94E80308958091D4
-:100A1000E10180FD02C081FF51C080EE90E04FC037
-:100A20008091E10180FFF9CF89E390E048C0809197
-:100A3000E10182FF0AC08091E10184FF03C080E0F0
-:100A400090E03DC083EE90E03AC082EE90E037C087
-:100A50008091E10182FFEFCFF8CF8091E10183FF28
-:100A600007C08091E10184FDEACF87EE90E027C0C6
-:100A700086EE90E024C08091E10183FFF2CFF8CFB1
-:100A80008091E10185FF03C089E290E018C085E311
-:100A900090E015C08091E10185FDF9CFF5CF8091FF
-:100AA000E10186FF03C08AE290E009C081E390E0A3
-:100AB00006C08091E10186FDF9CFF5CFC9010E9402
-:100AC0001003089508955F926F927F928F929F9284
-:100AD000AF92BF92CF92DF92EF92FF920F931F934C
-:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A
-:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92
-:100B0000911C60E070E000E010E0E12CF12CC12CC1
-:100B1000D12CA12CB12C8AE0782E622E532E41E0EC
-:100B200050E0E4E1F1E0A62DB52D872D01900D9266
-:100B30008A95E1F7F901819191919F01FC01E07F94
-:100B4000FF27E032F10559F48F709927FA0102C0AE
-:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7
-:100B6000F10559F48F709927FA0102C0EE0FFF1FAB
-:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C
-:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6
-:100B9000EE2AFF2A1BC0E035F10559F48F70992722
-:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2
-:100BB0000DC0E036F10551F48F709927FA0102C09B
-:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554
-:100BD00009F0A7CF94B18A2D8095892384B985B176
-:100BE0008A2985B997B18C2D8095892387B988B1D9
-:100BF0008C2988B99AB18E2D809589238AB98BB1B9
-:100C00008E298BB99DB1802F809589238DB98EB1A6
-:100C1000802B8EB990B3862F8095892380BB81B3BA
-:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0
-:100C3000DF91CF911F910F91FF90EF90DF90CF90B8
-:100C4000BF90AF909F908F907F906F905F9008952E
-:100C50005F926F927F928F929F92AF92BF92CF924C
-:100C6000DF92EF92FF920F931F93CF93DF93CDB755
-:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D
-:100C8000806885BF85B7806885BF0E9463059E0127
-:100C90002F5F3F4F4E0189E1880E911C60E070E0AC
-:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6
-:100CB00098E1792E622E532E41E050E0EEE1F1E012
-:100CC000A62DB52D872D01900D928A95E1F7F9019A
-:100CD000819191919F01FC01E07FFF27E032F105B6
-:100CE00059F48F709927FA0102C0EE0FFF1F8A9501
-:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E
-:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B
-:100D1000DF2A29C0E034F10559F48F709927FA01D0
-:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2
-:100D3000E035F10559F48F709927FA0102C0EE0FE2
-:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531
-:100D500051F48F709927FA0102C0EE0FFF1F8A9598
-:100D6000E2F76E2B7F2B2815390509F0A7CF94B138
-:100D70008A2D8095892384B985B18A2985B997B14F
-:100D80008C2D8095892387B988B18C2988B99AB12F
-:100D90008E2D809589238AB98BB18E298BB99DB10F
-:100DA000802F809589238DB98EB1802B8EB990B319
-:100DB000862F8095892380BB81B3862B81BB1092BF
-:100DC00055011092540110925F0110925E01109231
-:100DD0005701109256011092610110926001109219
-:100DE0005901109258011092630110926201109201
-:100DF0005B0110925A0110926501109264011092E9
-:100E00005D0110925C0110926701109266018FEBF8
-:100E100092E0892BB9F068960FB6F894DEBF0FBE4A
-:100E2000CDBFDF91CF911F910F91FF90EF90DF9099
-:100E3000CF90BF90AF909F908F907F906F905F907A
-:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC
-:100E5000DF91CF911F910F91FF90EF90DF90CF9096
-:100E6000BF90AF909F908F907F906F905F9008950C
-:100E70005F926F927F928F929F92AF92BF92CF922A
-:100E8000DF92EF92FF920F931F93CF93DF93CDB733
-:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE
-:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6
-:100EB00053E2A50EB11C3AE0532E470101E010E0C9
-:100EC00048E1642E55E0752EE4E1F1E0D401852D72
-:100ED00001900D928A95E1F7F701819191917F013F
-:100EE0009C01207F33272032310589F424B18F7093
-:100EF0009927A80102C0440F551F8A95E2F7CA013D
-:100F0000242B24B995B18095892385B94FC020330E
-:100F1000310589F427B18F709927F80102C0EE0FCF
-:100F2000FF1F8A95E2F7CF012E2B27B998B1809544
-:100F3000892388B93BC02034310589F42AB18F70E8
-:100F40009927A80102C0440F551F8A95E2F7CA01EC
-:100F5000242B2AB99BB1809589238BB927C02035D2
-:100F6000310589F42DB18F709927F80102C0EE0F79
-:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8
-:100F800089238EB913C02036310581F420B38F70C8
-:100F90009927A80102C0440F551F8A95E2F7CA019C
-:100FA000242B20BB91B38095892381BB50EA5A95AD
-:100FB000F1F7BE016F5F7F4F80E090E020E030E00E
-:100FC000EEE1F1E0DE011196462D01900D924A9579
-:100FD000E1F7FB0141915191BF01FA01E07FFF2749
-:100FE000E032F10511F4E3B113C0E033F10511F47F
-:100FF000E6B10EC0E034F10511F4E9B109C0E03505
-:10100000F10511F4ECB104C0E036F105B9F4EFB12B
-:10101000F0E04F70552702C0F595E7954A95E2F745
-:10102000E0FD08C0A801022E02C0440F551F0A941B
-:10103000E2F702C040E050E0842B952B2F5F3F4F3A
-:101040002C30310509F0BCCFF60120813181281701
-:10105000390721F091838083709200010E9463051B
-:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1
-:1010700000018823A1F1815080930001882339F079
-:101080008FE99FE00197F1F700C0000028C0809130
-:101090005E0190915F01909355018093540180917E
-:1010A0006001909161019093570180935601809166
-:1010B000620190916301909359018093580180914E
-:1010C00064019091650190935B0180935A01809136
-:1010D00066019091670190935D0180935C018AECB9
-:1010E00092E0892B11F00E94CA0281E0A2960FB60D
-:1010F000F894DEBF0FBECDBFDF91CF911F910F914E
-:10110000FF90EF90DF90CF90BF90AF909F908F9027
-:101110007F906F905F900895E82FF0E0EE0FFF1F33
-:10112000EC5AFE4F8081918108950895809171015C
-:101130000895CF93DF9300D01F92CDB7DEB72091F3
-:10114000E701243021F523E029839B838A832093C0
-:10115000E9008FEF06C095ED9A95F1F7000088231E
-:1011600029F09091E800815095FFF5CF8091E8003B
-:1011700085FF0DC040E050E063E070E0CE010196D5
-:101180000E94280B8091E8008E778093E8000F90F2
-:101190000F900F90DF91CF910895CF93DF9300D000
-:1011A0001F92CDB7DEB72091E701243029F522E068
-:1011B00029839B838A8383E08093E9008FEF06C0B5
-:1011C00095ED9A95F1F70000882329F09091E800B9
-:1011D000815095FFF5CF8091E80085FF0DC040E07C
-:1011E00050E063E070E0CE0101960E94280B8091F0
-:1011F000E8008E778093E8000F900F900F90DF91BA
-:10120000CF9108952091E7012430F9F422E0209352
-:10121000E9002FEF06C035ED3A95F1F700002223E3
-:1012200029F03091E800215035FFF5CF2091E800FA
-:1012300025FF0BC040E050E065E070E00E94280B05
-:101240008091E8008E778093E8000895CF93DF9334
-:10125000EC018091E701843041F581E08093E90061
-:101260008FEF06C095ED9A95F1F70000882329F0DD
-:101270009091E800815095FFF5CF8091E80085FFBF
-:1012800014C040E050E068E070E0CE010E94280BFE
-:101290008091E8008E778093E80088E0FE01A9E65F
-:1012A000B1E001900D928A95E1F7DF91CF91089519
-:1012B0008091E601811109C00E94C80C0E94250D91
-:1012C0008091E20084608093E20008951092E6012C
-:1012D0000895089508950C94201C809172018F5FE9
-:1012E0008093720162E30E948924911135C01092AB
-:1012F000720180917301882379F18091E701843034
-:1013000049F58091E9008F709091EC0090FF02C048
-:1013100090E801C090E0982B84E08093E9008091F0
-:10132000EB0080FF14C08091EE0087FD03C00FC06A
-:101330001092F1008091E80085FDFACF8091E800DD
-:1013400080FF05C08091E8008E778093E8009F7051
-:101350009093E90010927301089542E061EC81E0FE
-:101360000E943E0C42E061EC82E00E943E0C42E0B2
-:1013700061EC83E00E943E0C42E261EC84E00C945C
-:101380003E0C8091E901833009F454C030F481307F
-:1013900071F0823009F0A5C08CC08A3009F479C0A0
-:1013A0008B3009F45FC0893009F09BC020C0809168
-:1013B000E801813A09F095C08091E800877F809329
-:1013C000E8008091EC019091ED01892B21F060E023
-:1013D00080E090E003C068E089E691E070E00E9460
-:1013E000770B8091E8008B778093E80008958091D7
-:1013F000E801813209F075C08091EC019091ED0116
-:10140000892B09F06EC08091E800877F8093E80007
-:1014100005C08091E701882309F463C08091E8004A
-:1014200082FFF7CF8091F100809371018091E800F5
-:101430008B7753C08091E801813A09F052C08091C6
-:10144000EC019091ED01892B09F04BC08091E800EF
-:10145000877F8093E8008091E80080FFFCCF809137
-:101460000B0136C08091E8018132D9F58091EC0101
-:101470009091ED01892BA9F58091E800877F8093F9
-:10148000E8000E94750C8091EA0180930B010C9496
-:1014900015168091E801813221F58091E800877F5F
-:1014A0008093E8000E94750C8091EB0180936801A5
-:1014B00008958091E801813AA1F48091E800877F46
-:1014C0008093E8008091E80080FFFCCF8091680164
-:1014D0008093F1008091E8008E778093E8000C946F
-:1014E000750C089584B7877F84BF88E10FB6F894A0
-:1014F00080936000109260000FBE90E080E80FB60D
-:10150000F89480936100909361000FBE0E943310A5
-:101510000E94C80C0E94250D8091E2008460809397
-:10152000E20078940E94C20F0E94351081E091E0A1
-:101530000E94DF0F0BC00E94DD1B8091E501882314
-:1015400029F00E94081C81110E94120B8091E70172
-:10155000853089F30E943F10F9CF292F332723309C
-:101560003105B1F04CF42130310509F44DC0223081
-:10157000310509F04EC007C02132310541F1223258
-:10158000310591F146C0E4E7F0E082E693E045C022
-:1015900099278130910569F08230910589F0892B76
-:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A
-:1015B00034C0E0E3F3E0E491F0E080E393E02DC099
-:1015C000E4E0F3E0E491F0E084E093E026C06430EE
-:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182
-:1015E0009181E9E0F0E019C0643098F4E62FF0E072
-:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD
-:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A
-:1016100004C0E0E0F0E080E090E0DA018D939C937C
-:10162000CF01089580E189BD82E189BD09B400FE42
-:10163000FDCF8091D8008F7D8093D8008091E0000D
-:1016400082608093E0008091E00081FDFCCF0895EE
-:10165000BF92CF92DF92EF92FF920F931F93CF939F
-:10166000DF937C018B01EA010E94960CB82E811158
-:1016700033C0209731F028813981021B130BE20E11
-:10168000F31EC12CD12C23C08091E80085FD15C02C
-:101690008091E8008E778093E800209749F0888158
-:1016A00099818C0D9D1D9983888325E0B22E14C0ED
-:1016B0000E94960C882359F00EC0F70181917F019A
-:1016C0008093F10001501109FFEFCF1ADF0A0115D5
-:1016D0001105D1F601C0B82E8B2DDF91CF911F914E
-:1016E0000F91FF90EF90DF90CF90BF9008954091C1
-:1016F000EE015091EF014617570748F0611571054B
-:1017000039F44091E8004E774093E80001C0BA01F7
-:10171000FC0140E033C08091E701882309F444C014
-:10172000853009F443C08091E80083FD41C0809179
-:10173000E80082FD33C08091E80080FF1FC09091D7
-:10174000F3008091F200392F20E0A901482BCA0153
-:1017500006C041914093F1006150710901966115F5
-:10176000710519F088309105A0F341E0089709F060
-:1017700040E08091E8008E778093E8006115710564
-:1017800051F64111C8CF0AC08091E701882361F06A
-:10179000853061F08091E80083FD0AC08091E80007
-:1017A00082FFF2CF80E0089582E0089583E00895FB
-:1017B00081E008954091EE015091EF0146175707DF
-:1017C00048F06115710539F44091E8004E77409377
-:1017D000E80001C0BA01FC0140E034C08091E7019B
-:1017E000882309F445C0853009F444C08091E8009D
-:1017F00083FD42C08091E80082FD34C08091E80002
-:1018000080FF20C09091F3008091F200392F20E0FA
-:10181000A901482BCA0107C044914093F1003196B9
-:101820006150710901966115710519F088309105B3
-:1018300098F341E0089709F040E08091E8008E7746
-:101840008093E8006115710549F64111C7CF0AC0C0
-:101850008091E701882361F0853061F08091E80094
-:1018600083FD0AC08091E80082FFF2CF80E00895F6
-:1018700082E0089583E0089581E00895982F2CC0B8
-:101880009093E900981739F07091EC002091ED00E9
-:101890005091F00003C0242F762F50E021FD02C0AC
-:1018A0009F5F1AC03091EB003E7F3093EB00309188
-:1018B000ED003D7F3093ED003091EB0031603093CF
-:1018C000EB007093EC002093ED005093F00020911A
-:1018D000EE0027FDE5CF07C0973090F28F70809320
-:1018E000E90081E0089580E008958091E80187FD96
-:1018F00005C08091E80080FF0EC012C08091E80012
-:1019000082FD05C08091E7018111F8CF0895809193
-:10191000E8008B7708C08091E7018111EACF089534
-:101920008091E8008E778093E80008958091E4002C
-:101930009091E50045E62091EC0020FD1FC023C0FA
-:101940002091E701222391F0253091F02091EB00C6
-:1019500025FD10C02091E4003091E50028173907DB
-:1019600051F34150C90139F784E0089582E00895A8
-:1019700083E0089581E0089580E008952091E800D3
-:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E
-:101990000E94360D0E943E0DE0EEF0E080818160F5
-:1019A0008083E8EDF0E080818F77808319BCA7ED1C
-:1019B000B0E08C918E7F8C9380818F7E808310929B
-:1019C000E60108950F931F93CF93DF930E94360D86
-:1019D0000E943E0DC8EDD0E088818F778883888192
-:1019E0008068888388818F7D888319BC1092E70185
-:1019F0001092E3011092E5011092E40100EE10E074
-:101A0000F80180818B7F808388818160888342E0B8
-:101A100060E080E00E943E0CE1EEF0E080818E7F8D
-:101A20008083E2EEF0E08081816080838081886045
-:101A30008083F80180818E7F8083888180618883A4
-:101A4000DF91CF911F910F910895E8EDF0E0808133
-:101A50008F7E8083E7EDF0E080818160808384E089
-:101A600082BF81E08093E6010C94E20CE8EDF0E0A7
-:101A700080818E7F80831092E20008951092DA00B8
-:101A80001092E10008951F920F920FB60F92112449
-:101A90002F933F934F935F936F937F938F939F9376
-:101AA000AF93BF93EF93FF938091E10082FF0BC050
-:101AB0008091E20082FF07C08091E1008B7F8093DC
-:101AC000E1000E946D098091DA0080FF1FC08091C3
-:101AD000D80080FF1BC08091DA008E7F8093DA00EF
-:101AE0008091D90080FF0DC080E189BD82E189BD70
-:101AF00009B400FEFDCF81E08093E7010E94580900
-:101B000005C019BC1092E7010E9466098091E100AE
-:101B100080FF19C08091E20080FF15C08091E20033
-:101B20008E7F8093E2008091E20080618093E200EA
-:101B30008091D80080628093D80019BC85E08093A2
-:101B4000E7010E946A098091E10084FF30C0809122
-:101B5000E20084FF2CC080E189BD82E189BD09B427
-:101B600000FEFDCF8091D8008F7D8093D8008091BA
-:101B7000E1008F7E8093E1008091E2008F7E809370
-:101B8000E2008091E20081608093E2008091E301B5
-:101B9000882311F084E007C08091E30087FF02C032
-:101BA00083E001C081E08093E7010E946B0980918E
-:101BB000E10083FF29C08091E20083FF25C080916E
-:101BC000E100877F8093E10082E08093E70110923B
-:101BD000E3018091E1008E7F8093E1008091E2003B
-:101BE0008E7F8093E2008091E20080618093E2002A
-:101BF00042E060E080E00E943E0C8091F00088604E
-:101C00008093F0000E946909FF91EF91BF91AF911D
-:101C10009F918F917F916F915F914F913F912F9104
-:101C20000F900FBE0F901F9018951F920F920FB636
-:101C30000F9211242F933F934F935F936F937F9352
-:101C40008F939F93AF93BF93CF93EF93FF93809125
-:101C5000E9008F709091EC0090FF02C090E801C005
-:101C600090E0C92FC82B1092E9008091F000877F87
-:101C70008093F00078940E94590E1092E9008091B0
-:101C8000F00088608093F000CF70C093E900FF916E
-:101C9000EF91CF91BF91AF919F918F917F916F9174
-:101CA0005F914F913F912F910F900FBE0F901F901A
-:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0
-:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9
-:101CD000819321E0E03FF207C9F70E94C10980919A
-:101CE000E80083FF37C18091E8019091E9019530C8
-:101CF00009F488C038F49130B1F170F0933009F0F4
-:101D000029C131C0983009F4F8C0993009F404C1F0
-:101D1000963009F01FC19DC0803821F0823809F04B
-:101D200019C108C08091E4019091E501992389F0DF
-:101D300082600FC08091EC019091ED018F70992726
-:101D40008093E9008091EB0085FB882780F9109251
-:101D5000E9009091E800977F9093E8008093F1006C
-:101D60001092F100D5C0882319F0823009F0F2C03A
-:101D70008F7121F0823009F0EDC00BC08091EA0133
-:101D8000813009F0E7C0933009F080E08093E501ED
-:101D90002FC08091EA0181112BC08091EC019091BC
-:101DA000ED018F709927009709F4D4C08093E90062
-:101DB0002091EB0020FF1CC02091E901233021F489
-:101DC0008091EB00806212C09091EB009061909343
-:101DD000EB0021E030E001C0220F8A95EAF7209362
-:101DE000EA001092EA008091EB0088608093EB009B
-:101DF0001092E9008091E800877F8093E8000E94BC
-:101E0000750CA8C08111A6C08091EA019091EB01E8
-:101E10008F779927182F9091E3009078982B9093C3
-:101E2000E3008091E800877F8093E8000E94750CB2
-:101E30008091E80080FFFCCF8091E3008068809370
-:101E4000E300112311F083E001C082E08093E701F9
-:101E500081C08058823008F07DC08091EA01909165
-:101E6000EB018C3D23E0920779F583E08A838AE2D7
-:101E700089834FB7F894DE01139620E03EE051E2EB
-:101E8000E32FF0E050935700E49120FF03C0E29568
-:101E9000EF703F5FEF708E2F90E0EA3010F0C79642
-:101EA00001C0C0968D939D932F5F243149F74FBF9A
-:101EB0008091E800877F8093E8006AE270E0CE01BD
-:101EC00001960E94770B13C0AE01455D5F4F609194
-:101ED000EC010E94AD0A0097E9F12091E800277F0C
-:101EE0002093E800BC018BA59CA50E94DA0B809191
-:101EF000E8008B778093E8002DC0803859F58091F9
-:101F0000E800877F8093E8008091E3018093F100EF
-:101F10008091E8008E7771CF81111CC09091EA0109
-:101F20009230C0F48091E800877F8093E80090931E
-:101F3000E3010E94750C8091E301811104C080913E
-:101F4000E30087FF02C084E001C081E08093E701E5
-:101F50000E94AD098091E80083FF0AC08091E800EB
-:101F6000877F8093E8008091EB0080628093EB0094
-:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108
-:101F80001F910895CF938091E7018823B1F080914C
-:101F9000E9008F709091EC0090FF02C090E801C0C2
-:101FA00090E0C92FC82B1092E9008091E80083FDD2
-:101FB0000E94590ECF70C093E900CF91089590937D
-:101FC0007501809374010895E0917401F091750199
-:101FD000309721F00190F081E02D099480E0089580
-:101FE000E0917401F0917501309721F00280F38146
-:101FF000E02D09940895E0917401F09175013097F6
-:1020000021F00480F581E02D099408952091760156
-:10201000309177018217930771F090937701809345
-:102020007601E0917401F0917501309721F00680FE
-:10203000F781E02D0994089520917801309179017C
-:102040008217930771F09093790180937801E09162
-:102050007401F0917501309721F00084F185E02D35
-:102060000994089508950C9432100E94541C0E9403
-:1020700028060E94281D0C94D0220C9462055F92C1
-:102080006F927F928F929F92AF92BF92CF92DF9288
-:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED
-:1020A0002A970FB6F894DEBF0FBECDBF0E94380747
-:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B
-:1020C000B12C502E802F0E948C083C01F601E1902B
-:1020D000F1906F01E826F926E114F10431F40F5F65
-:1020E0001F4F0530110569F73AC08091D00181FD7D
-:1020F0000E94950820E030E04501022E02C0880CC5
-:10210000991C0A94E2F7C4018E219F21892B09F1C1
-:102110002E835F826820792081E0672809F480E0BF
-:1021200088870E945D1C8160782F9A8789874E81FD
-:102130005F8168858A850E94F810F801EE0FFF1F05
-:10214000E658FE4F8081918188259925918380836F
-:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87
-:1021600089838A831B820E945D1C8160782F9D83F6
-:102170008C8349815A816B818D810E94F8100E9465
-:102180001520109184010E94E40F1817D9F00E94C5
-:10219000E40F809384012A960FB6F894DEBF0FBE39
-:1021A000CDBFDF91CF911F910F91FF90EF90DF9006
-:1021B000CF90BF90AF909F908F907F906F905F90E7
-:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B
-:1021D000DF91CF911F910F91FF90EF90DF90CF9003
-:1021E000BF90AF909F908F907F906F905F90089579
-:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42
-:102200000FBECDBF4F83588769877A878B87DE01E2
-:10221000119686E0FD0111928A95E9F785E0FE01AD
-:10222000379601900D928A95E1F749815A816B8129
-:102230007C818D819E810E94D4182B960FB6F894D4
-:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2
-:10225000882309F4C1C0823859F40E94E40F81FD3B
-:10226000BBC089E30E943B1B0E94B71B89E30CC0E3
-:10227000833879F40E94E40F80FDAEC083E50E94AC
-:102280003B1B0E94B71B83E50E945D1BCF910C9402
-:10229000B71B843859F40E94E40F82FD9DC087E487
-:1022A0000E943B1B0E94B71B87E4EECF8450813A0B
-:1022B00048F48C2F0E94322281118EC08C2F0E94F4
-:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8
-:1022D00090E001C0880FCA95EAF70E947E1BD6CF16
-:1022E0008C2F855A833078F4C53A29F0C63A31F4F8
-:1022F00082E890E005C081E890E002C083E890E0C9
-:10230000CF910C9406108C2F885A833108F064C04A
-:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7
-:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145
-:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5
-:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133
-:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079
-:1023600038C082EE90E035C089EE90E032C08AEE4F
-:1023700090E02FC085EB90E02CC086EB90E029C068
-:1023800087EB90E026C08CEC90E023C08DEC90E0D1
-:1023900020C083E891E01DC08AE891E01AC082E97C
-:1023A00091E017C084E991E014C081E292E011C08D
-:1023B00083E292E00EC084E292E00BC085E292E0FC
-:1023C00008C086E292E005C087E292E002C080E0A9
-:1023D00090E0CF910C941C10CF910895882309F4BC
-:1023E0004DC0823859F40E94E40F81FF47C089E351
-:1023F0000E943B1B0E94B71B89E30CC0833871F419
-:102400000E94E40F80FF3AC083E50E943B1B0E94BC
-:10241000B71B83E50E945D1B0C94B71B843859F4ED
-:102420000E94E40F82FF2AC087E40E943B1B0E94A7
-:10243000B71B87E4EFCF982F9450913A08F4EACF76
-:10244000982F905E983058F4282F277081E090E004
-:1024500001C0880F2A95EAF70E94841BDDCF982FD0
-:10246000955A933020F480E090E00C940610885A3E
-:10247000833120F480E090E00C941C1008958823B0
-:1024800021F00E947E1B0C94B71B0895882321F035
-:102490000E94841B0C94B71B0895BF92CF92DF92C9
-:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9
-:1024B00027970FB6F894DEBF0FBECDBF8C0185E025
-:1024C000F801DE01119601900D928A95E1F7F8016D
-:1024D00030812181F280558152955F708381948192
-:1024E000892B39F02F3F41F481E090E03F3F31F0FC
-:1024F00003C081E090E002C080E090E080FD73C303
-:1025000039832A8389819A815E830E94F81AB92EC1
-:102510008F830E94F71A0E941F1A2B2D22952F706D
-:1025200030E05E816F812530310509F4E6C06CF43E
-:10253000243031050CF0A2C04B2D407F8B2D8F70C5
-:10254000223031050CF045C017C02C3031054CF459
-:102550002A3031050CF0E7C12830310509F043C3BA
-:10256000E5C02D30310509F4BAC20CF4A2C22F30F7
-:10257000310509F038C323C3182F411101C002C02F
-:102580001295107FFF2059F0112309F46BC2812F9F
-:102590006F830E948E1B0E94B71B6F8163C2862FC0
-:1025A0000E94EE11112309F41EC3812F0E94941B77
-:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147
-:1025C0001F910F91FF90EF90DF90CF90BF900C94F0
-:1025D000B71B403211F08295807F662319F061307D
-:1025E00071F523C0FF20B1F0511101C032C051304C
-:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1
-:10260000CF911F910F91FF90EF90DF90CF90BF90EF
-:102610000C949E1B511101C003C0513009F4E3C258
-:102620008E830E94A11B8E819AC1FF2021F056301B
-:1026300008F0D9C20EC0553008F0D5C290C1FF20B5
-:10264000C9F0552331F0F801958190FF0BC29F70BE
-:10265000958327960FB6F894DEBF0FBECDBFDF91EE
-:10266000CF911F910F91FF90EF90DF90CF90BF908F
-:102670000C943F12552309F472C109C22B2D2695E3
-:102680002695237030E02115310529F021303105E0
-:1026900009F0A9C219C0FF2021F0862F9B2D93704D
-:1026A00002C080E090E027960FB6F894DEBF0FBE20
-:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1
-:1026C000CF90BF900C940610FF2021F0862F9B2DF9
-:1026D000937002C080E090E027960FB6F894DEBFBA
-:1026E0000FBECDBFDF91CF911F910F91FF90EF9063
-:1026F000DF90CF90BF900C941C10862FFF2019F014
-:102700000E941B1F02C00E94831F27960FB6F894D9
-:10271000DEBF0FBECDBFDF91CF911F910F91FF9014
-:10272000EF90DF90CF90BF900C940A208B2D837098
-:1027300009F079C0F11057C2262F229526952770EF
-:10274000220F220F862F8F70C82ED12CE12CF12C56
-:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728
-:1027600064FF10C06FE070E080E090E004C0660F8E
-:10277000771F881F991F2A95D2F7609570958095CD
-:10278000909503C060E070E0CB012B2D2695269537
-:102790002370422F50E042305105D9F043305105AB
-:1027A00069F16C297D298E299F294130510551F10C
-:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145
-:1027C0001F910F91FF90EF90DF90CF90BF900C94EE
-:1027D000341A6C297D298E299F2927960FB6F894E3
-:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044
-:1027F000EF90DF90CF90BF900C94461A0E94341A4D
-:10280000C701B60127960FB6F894DEBF0FBECDBF45
-:10281000DF91CF911F910F91FF90EF90DF90CF90BC
-:10282000BF900C94221AFF2019F08B2D817001C0EB
-:102830008695882309F4D7C1262F229526952770DF
-:10284000220F220F862F8F70C82ED12CE12CF12C55
-:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727
-:1028600064FF10C06FE070E080E090E004C0660F8D
-:10287000771F881F991F2A95D2F7609570958095CC
-:10288000909503C060E070E0CB012B2D2695269536
-:102890002370422F50E042305105D9F043305105AA
-:1028A00069F16C297D298E299F294130510551F10B
-:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144
-:1028C0001F910F91FF90EF90DF90CF90BF900C94ED
-:1028D000D31A6C297D298E299F2927960FB6F89443
-:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043
-:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E
-:10290000C701B60127960FB6F894DEBF0FBECDBF44
-:10291000DF91CF911F910F91FF90EF90DF90CF90BB
-:10292000BF900C94C11A603F59F120F4603E08F446
-:1029300094C008C0623F09F467C0F0F1633F09F03A
-:102940008CC065C0162F1F708B2D8F71FF2021F05A
-:102950000E946C1A812F7DCE0E94871A812F2796A4
-:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0
-:102970000F91FF90EF90DF90CF90BF900C94461294
-:10298000FF20B1F0553008F02EC18B2D8F712796A6
-:102990000FB6F894DEBF0FBECDBFDF91CF911F9170
-:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC
-:1029B000563008F018C1E9CFFF2099F08B2D8F71A8
-:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133
-:1029D0001F910F91FF90EF90DF90CF90BF900C94DC
-:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31
-:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE
-:102A0000CF90BF900C94871AF110EBCFD7CFFF2057
-:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD
-:102A2000CDBFDF91CF911F910F91FF90EF90DF907D
-:102A3000CF90BF900C945D1A27960FB6F894DEBF26
-:102A40000FBECDBFDF91CF911F910F91FF90EF90FF
-:102A5000DF90CF90BF900C94581AFF20A9F0552317
-:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1
-:102A7000CDBFDF91CF911F910F91FF90EF90DF902D
-:102A8000CF90BF900C942611552309F4AACF862F1E
-:102A900027960FB6F894DEBF0FBECDBFDF91CF9162
-:102AA0001F910F91FF90EF90DF90CF90BF900C940B
-:102AB000EE114B2D4F70C8010E94AB0227960FB646
-:102AC000F894DEBF0FBECDBFDF91CF911F910F9164
-:102AD000FF90EF90DF90CF90BF900C948A19F11087
-:102AE00082C09B2D9F70492F50E04230510599F1D3
-:102AF00044F44115510569F04130510509F073C0A6
-:102B000019C043305105C1F14430510509F06BC083
-:102B100044C027960FB6F894DEBF0FBECDBFDF913D
-:102B2000CF911F910F91FF90EF90DF90CF90BF90CA
-:102B30000C94E12227960FB6F894DEBF0FBECDBFEE
-:102B4000DF91CF911F910F91FF90EF90DF90CF9089
-:102B5000BF900C94F82227960FB6F894DEBF0FBEF4
-:102B6000CDBFDF91CF911F910F91FF90EF90DF903C
-:102B7000CF90BF900C94142327960FB6F894DEBF25
-:102B80000FBECDBFDF91CF911F910F91FF90EF90BE
-:102B9000DF90CF90BF900C942723862F27960FB6F7
-:102BA000F894DEBF0FBECDBFDF91CF911F910F9183
-:102BB000FF90EF90DF90CF90BF900C944B234B2D64
-:102BC0004F70C80127960FB6F894DEBF0FBECDBF79
-:102BD000DF91CF911F910F91FF90EF90DF90CF90F9
-:102BE000BF900C94D40327960FB6F894DEBF0FBEA7
-:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC
-:102C0000CF90BF9008950E949B1B0E94701B0E9452
-:102C1000B71B0E94B6200E940A2080E090E00E942C
-:102C2000061080E090E00C941C100E948B1B0C940A
-:102C300003160E94F81A292F22952F7030E02C30AD
-:102C400031054CF42A3031056CF422503109223020
-:102C5000310590F407C02C30310551F02F3031058B
-:102C600059F406C0803E10F0803F31F481E00895B1
-:102C700093FB882780F9089580E00895CF93DF9330
-:102C800000D000D01F92CDB7DEB70F900F900F90FD
-:102C90000F900F90DF91CF910895CF93DF9300D0E5
-:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1
-:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8
-:102CC000C091BB0116E012C0D0E01C9FF0011D9F17
-:102CD000F00D1124E557FE4F4081518162817381CF
-:102CE000848195810E944D162196C7708091BC0108
-:102CF000C813EACFDF91CF911F91089540918501CC
-:102D000050918601609187017091880180918901BD
-:102D100090918A010C944D160F931F93CF93DF93DC
-:102D200080918A0182958F7009F069C08091870136
-:102D3000882309F464C0A091BB01D091BC01B0917B
-:102D40008501C0918601809188019091890121E0DF
-:102D500030E0BF3F11F020E030E0122FBC01609561
-:102D6000709506E04AC0009721F0CF3F29F4212F4B
-:102D700005C021E030E002C020E030E020FD3BC093
-:102D80004A2F50E0049FF001059FF00D1124E557F4
-:102D9000FE4F2181C2132FC02081B2132CC022818B
-:102DA000211129C0238134812817390718F0281BE5
-:102DB000390B02C0260F371F283C3105E0F4809103
-:102DC0008A018F70806180938A0186E0849FF00180
-:102DD000859FF00D1124E057FE4F80818F70806138
-:102DE000808385E891E00E944D12DF91CF911F9181
-:102DF0000F910C945D16AF5FA770AD13B4CFDF9148
-:102E0000CF911F910F910895EF92FF920F931F930F
-:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE
-:102E20000FBECDBF8C0185E0F801DE011D9601903B
-:102E30000D928A95E1F7D8014C9111965C9111970A
-:102E400012966C9112971396ED90FC9014977091D6
-:102E50008501E09186018091880190918901009718
-:102E600039F0EF3F41F421E030E07F3F31F003C023
-:102E700021E030E002C020E030E020FD5CC1209184
-:102E80008701222309F4F1C0E816F90628F097011A
-:102E9000281B390BC90104C0809590958E0D9F1D8C
-:102EA000883C910508F098C080918A01982F907F06
-:102EB00009F064C0E51314C0741312C0611110C08E
-:102EC0008F70806180938A010E947E1685E891E070
-:102ED0000E944D1280918A01D80115968C9343C1AE
-:102EE000EF2839F05F3F41F481E090E04F3F31F04F
-:102EF00003C081E090E002C080E090E080FD03C06C
-:102F000081E0862702C080E090E080FF2EC08091A3
-:102F1000BB012091BC0136E013C090E0389FF00166
-:102F2000399FF00D1124E557FE4F7181571306C0EC
-:102F30007081471303C07281671317C001968770B1
-:102F40008213EBCF12C19F7059F0882309F40BC193
-:102F500007C09F7029F0F8019581907F09F403C1A3
-:102F6000805E883008F4FFC0D2C0662309F4FBC03D
-:102F700080918A01816080938A01F5C0E51308C0C1
-:102F8000741306C0611104C0D80115968C939DC0BE
-:102F90004D875E878D859E856A8B0E9419166A898A
-:102FA000882309F4B4C0662309F4B1C020918A01D2
-:102FB000822F82958F7090E002970CF4C6C08091AA
-:102FC00085019091860198878F831986FB86EA8612
-:102FD0002C87CE01079646C080918A01982F907F5A
-:102FE00059F47E2DF98AE88A89890E943E1685E87F
-:102FF00091E00E944D1295C0E51311C074130FC0EB
-:1030000061110DC0F8018583C8010E944D12E5E8E9
-:10301000F1E086E0DF011D928A95E9F7A2C04D87B5
-:103020005E878D859E856A8B0E9419166A89882322
-:1030300009F46DC0662309F46AC020918A01822FC9
-:1030400082958F7090E002970CF47FC0809185018B
-:10305000909186019A8389831B82FD82EC822E8364
-:10306000CE0101960E944D1270C0E816F90628F0B4
-:103070009701281B390BC90104C0809590958E0DCE
-:103080009F1D883C910508F046C0662309F43FC0A7
-:10309000E51330C074132EC020918A0120FD21C099
-:1030A000322F32953F70832F90E00097D1F0D801F6
-:1030B00015962C9315970F9741F0832F8F5F82956C
-:1030C000807F2F70282B15962C93C8010E944D12DB
-:1030D00086E0F801A5E8B1E001900D928A95E1F74C
-:1030E0003EC086E0F801A5E8B1E001900D928A9516
-:1030F000E1F737C04D875E878D859E850E94191642
-:10310000811123C080918A01816080938A01C80166
-:103110000E944D1226C07E2DF98AE88A89890E9474
-:103120003E16E5E8F1E086E0DF011D928A95E9F7B9
-:103130000E947E1618C0662351F34D875E878D85E9
-:103140009E850E941916882311F386E0F801A5E8F0
-:10315000B1E001900D928A95E1F70E948C160E94D1
-:103160007E1681E014C080E012C04D875E878D8599
-:103170009E850E94F81A292F22952F7030E0223068
-:1031800031050CF4E0CE243031050CF6E2CE629627
-:103190000FB6F894DEBF0FBECDBFDF91CF911F9168
-:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA
-:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E
-:1031C000588769877A878B879C87CE0107960E94EC
-:1031D00004178823D9F02F8138858A859B85892B10
-:1031E00039F03F3F19F080E090E004C02F3FD9F75D
-:1031F00081E090E0892B09F06DC04F815885698589
-:103200007A858B859C850E944D1664C086E0FE0100
-:103210003796DE01119601900D928A95E1F7FF81B4
-:10322000E8854A855B854115510539F0EF3F41F44A
-:1032300081E090E0FF3F31F003C081E090E002C008
-:1032400080E090E080FD46C02091BC0130E0C901E3
-:103250000196877099276091BB0170E086179707E8
-:1032600009F440C0F983EA835D834C8396E0929F22
-:10327000D001939FB00D1124A557BE4FFE0131968A
-:1032800001900D929A95E1F78093BC010E945D1622
-:1032900021C0189FC001112485579E4F0E9404171A
-:1032A000882371F1E091BB011E9FF0011124E557C5
-:1032B000FE4F4081518162817381848195810E949A
-:1032C0004D168091BB0190E00196877099278093FD
-:1032D000BB0101C016E08091BB019091BC01891334
-:1032E000D8CF0EC00E9415161092BC011092BB01DF
-:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83
-:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4
-:103310001F910895DF92EF92FF920F931F93CF9327
-:10332000DF93EC01009709F46EC0D12CEE24E394F6
-:10333000F12C8E010F5F1F4FFE018491843748F4FA
-:10334000843008F04CC0813071F0823009F05BC0ED
-:103350001EC0853709F43FC080F1982F94589037EC
-:1033600008F051C03FC02296F8018491982F905EDA
-:10337000983050F48770FE2D01C0FF0F8A95EAF750
-:103380008F2F0E948E1B13C00E9426112FC02296E1
-:10339000F8018491982F905E983060F48770FE2D2C
-:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D
-:1033B000B71B1CC00E94EE1119C02296F80104919F
-:1033C00007C08FE99FE00197F1F700C000000150AE
-:1033D0000111F7CF0BC02296F801D49007C00E94CC
-:1033E000261103C08F770E94EE11E8018D2D07C0D2
-:1033F0008150EFE9FFE03197F1F700C0000088232A
-:1034000009F497CFF5CFDF91CF911F910F91FF90E6
-:10341000EF90DF9008956093C1017093C201809393
-:10342000C3019093C4010C9403166093BD01709383
-:10343000BE018093BF019093C0010C9403160895C0
-:103440000C940B1A0F931F930091C1011091C201AC
-:103450002091C3013091C401602B712B822B932BDF
-:103460001F910F910C940B1A0F931F930091C101A0
-:103470001091C2012091C3013091C40160237123D6
-:10348000822393231F910F910C940B1A0F931F9378
-:103490000091C1011091C2012091C3013091C4017A
-:1034A00060277127822793271F910F910C940B1A85
-:1034B00060E070E0CB010C94151A41E050E060E050
-:1034C00070E004C0440F551F661F771F8A95D2F71E
-:1034D000CB01BA010C94151A41E050E060E070E0B5
-:1034E00004C0440F551F661F771F8A95D2F780913D
-:1034F000BD019091BE01A091BF01B091C001482BC8
-:10350000592B6A2B7B2BCB01BA010C94151A41E085
-:1035100050E060E070E004C0440F551F661F771F45
-:103520008A95D2F740955095609570958091BD0130
-:103530009091BE01A091BF01B091C00148235923D1
-:103540006A237B23CB01BA010C94151A41E050E0A9
-:1035500060E070E004C0440F551F661F771F8A9516
-:10356000D2F78091BD019091BE01A091BF01B091B1
-:10357000C001482759276A277B27CB01BA010C9441
-:10358000151A0F931F930091BD011091BE01209158
-:10359000BF013091C001602B712B822B932B1F91A7
-:1035A0000F910C94151A0F931F930091BD01109168
-:1035B000BE012091BF013091C0016023712382239D
-:1035C00093231F910F910C94151A0F931F93009141
-:1035D000BD011091BE012091BF013091C001602753
-:1035E0007127822793271F910F910C94151A089524
-:1035F000CF92DF92EF92FF920F931F93CF93DF93BF
-:10360000EC01C090C101D090C201E090C301F090E4
-:10361000C4018091BD019091BE01A091BF01B09104
-:10362000C001C82AD92AEA2AFB2A0FE110E0B70113
-:10363000A601002E04C076956795579547950A9484
-:10364000D2F740FF08C0BE01802F0E94FA038130EC
-:10365000910509F007C00150110948F7BE0180E04B
-:103660000E94FA03DF91CF911F910F91FF90EF908D
-:10367000DF90CF90089540910C0150910D0120E012
-:1036800030E09FEFFA01E20FF31F62816817A1F0AB
-:103690009F3F19F4611101C0922F2F5F3F4F2630D9
-:1036A000310581F707C0FA01E90FF11D97FDFA9581
-:1036B000828308959F3FB9F7089540910C0150917E
-:1036C0000D0120E030E0FA01E20FF31F9281981320
-:1036D00001C012822F5F3F4F26303105A1F70895B8
-:1036E00081E090E0E0910C01F0910D01E80FF91FED
-:1036F0001082019688309105A9F708959091C5012F
-:10370000982B9093C501089580959091C5019823B9
-:103710009093C50108951092C50108959091C60136
-:10372000982B9093C601089580959091C601982397
-:103730009093C60108951092C60108958093C70121
-:1037400008951092C701089540910C0150910D0108
-:1037500020E030E080E0FA01E20FF31F9181911147
-:103760008F5F2F5F3F4F27303105A9F70895E09114
-:103770000C01F0910D018091C5018083E0910C0155
-:10378000F0910D0180819091C601892B80839091E9
-:10379000C701992361F0E0910C01F0910D01808146
-:1037A000892B80830E94A41B81110E94A11B809100
-:1037B0000C0190910D010C94F00F8091E701843081
-:1037C00021F11092D10120E488E190E00FB6F89445
-:1037D000A895809360000FBE2093600080E00E9457
-:1037E000E10283B7817F846083BF83B7816083BF39
-:1037F0007894889583B78E7F83BF88E10FB6F8945D
-:1038000080936000109260000FBE0895089508959F
-:10381000CF9380E00E94E1020E94061C0E943807BC
-:103820000E94071CC0E08C2F0E948C08892B29F471
-:10383000CF5FC530C1F780E001C081E0CF9108952E
-:103840000E94151680E00E94E1020E94D0220E9490
-:10385000E40F0C9462051F920F920FB60F92112481
-:103860008F939F93AF93BF938091D101811113C028
-:103870008091D2019091D301A091D401B091D50152
-:103880004196A11DB11D8093D2019093D301A093C5
-:10389000D401B093D501BF91AF919F918F910F90BB
-:1038A0000FBE0F901F90189582E084BD93E095BDE8
-:1038B0009AEF97BD80936E0008958FB7F89440916A
-:1038C000D2015091D3016091D4017091D5018FBF85
-:1038D000CA010895CF92DF92EF92FF920F931F9348
-:1038E0002FB7F8944091D2015091D3016091D40147
-:1038F0007091D5012FBF6A017B01EE24FF248C015A
-:1039000020E030E0C016D106E206F30620F09A016E
-:10391000281B390B05C09C0120953095240F351FBD
-:10392000C9011F910F91FF90EF90DF90CF90089504
-:103930001F920F920FB60F9211248F939F93AF9304
-:10394000BF938091D2019091D301A091D401B09105
-:10395000D5010196A11DB11D8093D2019093D30191
-:10396000A093D401B093D501BF91AF919F918F9156
-:103970000F900FBE0F901F9018950E94C80CF894DE
-:103980002FEF87EA91E6215080409040E1F700C098
-:10399000000087E090EBDC018093F1019093F2014D
-:1039A000A093F301B093F4012CE088E190E00FB60E
-:1039B000F894A895809360000FBE20936000FFCF1D
-:1039C000CF92DF92EF92FF920F931F93CF93DF93EB
-:1039D000C82ED12C01E010E08D2D0E948C087C01B6
-:1039E000C0E0D0E098010C2E02C0220F331F0A94D1
-:1039F000E2F72E213F21232B29F42196CC30D1054B
-:103A000089F708C06C2F7D2D80E00E94D503C81275
-:103A1000F4CF06C0D39485E0D812DECF80E001C099
-:103A200081E0DF91CF911F910F91FF90EF90DF9098
-:103A3000CF900895CF93C82F8CE20E94E01C88237A
-:103A400021F08C2FCF910C94E01C80E0CF91089551
-:103A5000CF930E946B1E811102C00E944C1EC5E6CE
-:103A600008C00E9438078FE39CE90197F1F700C076
-:103A70000000C150B1F789E20E941A1D81110AC1EC
-:103A80008AE20E941A1D81110E944C1E85E00E944C
-:103A90001A1D81110E94BD1C0E94761E8093D001C8
-:103AA00087E00E941A1D882399F18BE10E941A1D5C
-:103AB000882351F09091D00191FB882780F921E073
-:103AC000822780FB91F922C08EE00E941A1D882374
-:103AD00051F09091D00192FB882780F921E0822754
-:103AE00080FB92F913C080E10E941A1D9091D001D1
-:103AF000882341F093FB882780F921E0822780FB0F
-:103B000093F904C0892F809580FB90F99093D001A0
-:103B10008091D0010E947A1E0E94881E8093E1014C
-:103B200080EE0E941A1D882341F08091E101982FB8
-:103B3000909590FB80F98093E10189E30E941A1D22
-:103B4000882359F09091E10191FB882780F921E0C9
-:103B5000822780FB91F99093E10182EE0E941A1D69
-:103B6000882359F09091E10192FB882780F921E0A8
-:103B7000822780FB92F99093E10186EE0E941A1D44
-:103B8000882359F09091E10193FB882780F921E087
-:103B9000822780FB93F99093E10183EE0E941A1D26
-:103BA000882359F09091E10194FB882780F921E066
-:103BB000822780FB94F99093E10185E30E941A1D0E
-:103BC000882359F09091E10195FB882780F921E045
-:103BD000822780FB95F99093E10181E30E941A1DF1
-:103BE000882359F09091E10196FB882780F921E024
-:103BF000822780FB96F99093E10181E10E941A1DD2
-:103C0000882359F09091E10197FB882780F921E002
-:103C1000822780FB97F99093E1018091E1010E9456
-:103C20008C1E87E20E941A1DC82F8EE10E941A1D69
-:103C30008111C2608FE10E941A1D8111C46080E26F
-:103C40000E941A1D8111C86081E20E941A1D811113
-:103C5000C06182E20E941A1D8111C06283E20E944B
-:103C60001A1D8111C06484E20E941A1D882311F07C
-:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9
-:103C800003C00E947F1E682F70E080E090E0CF911B
-:103C90000C94201ACF9108956DEE7EEF80E090E0B5
-:103CA0000E94D92460E082E090E00E94CB2460E092
-:103CB00083E090E00E94CB2460E084E090E00E94EA
-:103CC000CB2460E085E090E00E94CB2460E086E0B9
-:103CD00090E00C94CB2480E090E00E94C52421E089
-:103CE0008D3E9E4F09F020E0822F089582E090E003
-:103CF0000C94BD24682F82E090E00C94CB2483E0E8
-:103D000090E00C94BD24682F83E090E00C94CB24C9
-:103D100084E090E00C94BD24682F84E090E00C9443
-:103D2000CB2486E090E00C94BD24682F86E090E0E0
-:103D30000C94CB248091DE0180FF0BC060911101B7
-:103D400085E0689FB0011124759567957595679515
-:103D50002AC081FF09C06091110185E0689FB00110
-:103D60001124759567951FC082FF07C060911101EE
-:103D700085E0689FB001112416C04091D80144230A
-:103D8000C9F060911001461788F72091110185E074
-:103D9000289F90011124429FC001439F900D112440
-:103DA00070E00E9495246038710540F4611571053A
-:103DB00039F002C065E070E0862F08958FE708951E
-:103DC00081E008958091DE0180FF08C060910F01BD
-:103DD00070E0759567957595679521C081FF06C060
-:103DE00060910F0170E07595679519C082FF04C05E
-:103DF00060910F0170E010C08091D8018823C1F05C
-:103E000060910E018617A0F790910F01989FC00155
-:103E1000112470E00E9495246038710528F4611522
-:103E2000710521F0862F08958FE7089581E00895A8
-:103E300061E070E0F4CF803F21F40E949A1E8195EA
-:103E400004C0813F29F40E949A1E8093DB010895EB
-:103E5000823F21F40E949A1E819504C0833F29F479
-:103E60000E949A1E8093DA010895893F19F40E94F6
-:103E7000E21E05C08A3F31F40E94E21E81958093C4
-:103E8000DC0108958B3F21F40E94E21E819504C05D
-:103E90008C3F29F40E94E21E8093DD010895843F47
-:103EA00021F48091D901816017C0853F21F4809170
-:103EB000D901826011C0863F21F48091D9018460CC
-:103EC0000BC0873F21F48091D901886005C0883FED
-:103ED00031F48091D90180618093D90108958D3F9B
-:103EE00021F48091DE0181600BC08E3F21F480912E
-:103EF000DE01826005C08F3F29F48091DE0184607D
-:103F00008093DE010895803F29F48091DB0187FFD3
-:103F10006EC007C0813F41F48091DB0118160CF0A0
-:103F200066C01092DB0163C09091DA01823F19F400
-:103F300097FF5DC005C0833F31F419160CF057C0E0
-:103F40001092DA0154C0893F31F48091DC011816D7
-:103F50000CF04DC006C08A3F39F48091DC0187FF28
-:103F600046C01092DC0143C08B3F29F48091DD01F3
-:103F700087FF3DC006C08C3F39F48091DD011816E3
-:103F8000B4F51092DD0133C0843F21F48091D90152
-:103F90008E7F05C0853F31F48091D9018D7F80935C
-:103FA000D90125C0863F21F48091D9018B7FF7CFBD
-:103FB000873F21F48091D901877FF1CF883F21F499
-:103FC0008091D9018F7EEBCF8D3F21F48091DE016E
-:103FD0008E7F0BC08E3F21F48091DE018D7F05C066
-:103FE0008F3F29F48091DE018B7F8093DE018091E9
-:103FF000DA0181110EC08091DB0181110AC080912C
-:10400000DC01811106C08091DD01811102C0109296
-:10401000D801089589ED91E00E94FB0F0E945D1C7C
-:104020009093D7018093D6010895CF938091D601C4
-:104030009091D7010E946A1C4091D801442321F03D
-:104040002091120130E006C0209113015AE0259F13
-:10405000900111248217930708F486C08091DA0139
-:1040600081110DC09091DB01911109C09091DC018B
-:10407000911105C09091DD01992309F475C04F3F5E
-:1040800019F04F5F4093D801181624F40E949A1E2D
-:104090008093DA018091DA0187FF05C00E949A1EA1
-:1040A00081958093DA018091DB01181624F40E9437
-:1040B0009A1E8093DB018091DB0187FF05C00E947F
-:1040C0009A1E81958093DB016091DA01662339F1B4
-:1040D000C091DB01CC2319F1772767FD7095872FFD
-:1040E000972F0E949A2323E333E343E35FE30E9485
-:1040F000FE230E9467236093DA016C2F772767FD08
-:104100007095872F972F0E949A2323E333E343E38D
-:104110005FE30E94FE230E9467236093DB0180918E
-:10412000DC01181624F40E94E21E8093DC018091C9
-:10413000DC0187FF05C00E94E21E81958093DC01AF
-:104140008091DD01181624F40E94E21E8093DD01A7
-:104150008091DD0187FF05C00E94E21E819580935A
-:10416000DD01CF910C940A20CF910895E9EDF1E0A3
-:1041700085E0DF011D928A95E9F71092D80110922F
-:10418000DE010895833089F130F4813061F08230AE
-:1041900009F06EC019C0853009F449C0B8F1863005
-:1041A00009F066C055C020911301862F90E0820F60
-:1041B000911D8F3F910520F4620F609313010895C4
-:1041C0008FEF80931301089520911201862F90E0C4
-:1041D000820F911D8F3F910520F4620F60931201B1
-:1041E00008958FEF80931201089520911101862F79
-:1041F00090E0820F911D8F3F910520F4620F609334
-:10420000110108958FEF80931101089520911001FD
-:10421000862F90E0820F911D8F3F910520F4620F51
-:104220006093100108958FEF8093100108952091FD
-:104230000F01862F90E0820F911D8F3F910520F492
-:10424000620F60930F0108958FEF80930F0108951F
-:1042500020910E01862F90E0820F911D8F3F9105D6
-:1042600020F4620F60930E0108958FEF80930E018A
-:104270000895833021F130F4813059F0823009F013
-:1042800049C012C0853089F128F1863009F042C05A
-:1042900037C080911301681720F4861B80931301A7
-:1042A000089510921301089580911201681720F467
-:1042B000861B809312010895109212010895809137
-:1042C0001101681720F4861B809311010895109244
-:1042D0001101089580911001681720F4861B8093C6
-:1042E0001001089510921001089580910F01681730
-:1042F00020F4861B80930F01089510920F010895FA
-:1043000080910E01681720F4861B80930E0108959A
-:1043100010920E01089541E050E060E070E004C0AA
-:10432000440F551F661F771F8A95D2F7CB01BA013C
-:104330000E94201A0C941516873200F58E3108F071
-:1043400086C08E3009F466C060F4873009F44DC031
-:1043500018F4863049F531C0883041F18B3021F5B1
-:104360007BC0863109F478C018F48031E9F45CC070
-:10437000893109F471C08B31B9F442C0883309F432
-:104380006BC048F4893209F460C0853309F45DC01C
-:10439000873251F45AC0833409F457C018F48A3371
-:1043A00018F057C0883499F080E008950E94761E76
-:1043B0000E94881E0E94911E4FC08091D001817F73
-:1043C0008E7F8093D00181E08093DF0108950E9469
-:1043D00015162FEF83ED90E3215080409040E1F7D8
-:1043E00000C000000E94BD1C37C08091D00180FF3A
-:1043F00003C0817F8E7F01C081608093D0012CC07B
-:104400009091D00191FB882780F921E0822780FBE1
-:1044100091F913C09091D00192FB882780F921E097
-:10442000822780FB92F909C09091D00193FB8827E5
-:1044300080F921E0822780FB93F99093D0018823B3
-:1044400059F091609093D00107C080E003C08D5176
-:1044500001C089530E948B2181E0089580E0089576
-:1044600080E00895CF93C82F8091DF01813071F0F3
-:1044700020F0823009F089C037C0A0910C01B091C2
-:104480000D018C91823209F082C007C0A0910C010D
-:10449000B0910D018C91823249F48C2F0E942E2212
-:1044A00081111EC08C2F0E949C211CC08C2F0E9449
-:1044B0003022811115C0C43169F030F4CB3081F065
-:1044C000C03109F068C009C0C93221F0C83309F011
-:1044D00062C006C01092DF015EC082E08093DF01FF
-:1044E00081E090E081705AC0C932C9F060F4C431F3
-:1044F000B1F020F4C73009F04CC034C0CE51C63002
-:1045000008F047C017C0CE3439F120F4CB3409F09D
-:1045100040C01CC0C135C1F0C235D9F513C080916F
-:10452000E001882319F01092E00133C081E080930C
-:10453000DF0134C0EC2FF0E0E65BFE4F808180931A
-:10454000E00127C061E003C061E007C06AE080913C
-:10455000E0010E94C2201DC06AE08091E0010E943B
-:10456000392117C08EE18093130182E380931201F9
-:104570008AE08093110184E18093100188E08093A8
-:104580000F0188E280930E0104C01092DF0180E0E9
-:1045900005C081E003C080E090E0A4CFCF910895F2
-:1045A0000E946B1E811102C00E944C1E0E94911E2F
-:1045B0008093F00180FF02C0869501C080E00C94DA
-:1045C000E1028091F001982F9695292F30E0233059
-:1045D00031054CF49F5F990F8170892B8160809326
-:1045E000F0010E94951E8091F00186950C94E102E5
-:1045F0008091F001982F969591F09158990F8170C4
-:10460000892B8093F0018E7F91E009F490E08091F6
-:10461000F00190FB80F98093F0010E94951E80913B
-:10462000F00186950C94E1028091F001982F90950D
-:1046300090FB80F98093F0010E94951E8091F0011B
-:1046400080FF02C0869501C080E00C94E1023091A9
-:10465000F001232F26952F5F2F77822F90E0317066
-:1046600004972CF4220F232B2093F00102C03093E7
-:10467000F0018091F001282F2E7F91E009F490E065
-:1046800090FB80F98093F0010E94951E8091F001CB
-:1046900086950C94E1022091F001922F969598272F
-:1046A000990F822F8170892B8093F0018E7F91E08A
-:1046B00009F490E08091F00190FB80F98093F00183
-:1046C0000E94951E8091F00186950C94E10204D021
-:1046D0006894B1118DC0089570D088F09F5790F004
-:1046E000B92F9927B751A0F0D1F0660F771F881F17
-:1046F000991F1AF0BA95C9F712C0B13081F077D07E
-:10470000B1E0089574C0672F782F8827B85F39F01B
-:10471000B93FCCF3869577956795B395D9F73EF475
-:1047200090958095709561957F4F8F4F9F4F08951D
-:10473000E89409C097FB3EF490958095709561953B
-:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1
-:104750009395F695879577956795B795F111F8CF6D
-:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8
-:104770009F4F16C0882311F096E911C0772321F0CE
-:104780009EE8872F762F05C0662371F096E8862F66
-:1047900070E060E02AF09A95660F771F881FDAF7BD
-:1047A000880F9695879597F9089557FD9058440F6F
-:1047B000551F59F05F3F71F04795880F97FB991F80
-:1047C00061F09F3F79F0879508951216130614063D
-:1047D000551FF2CF4695F1DF08C0161617061806CA
-:1047E000991FF1CF86957105610508940895E894A5
-:1047F000BB2766277727CB0197F908950BD078C0A0
-:1048000069D028F06ED018F0952309F05AC05FC027
-:104810001124EECFCADFA0F3959FD1F3950F50E09E
-:10482000551F629FF001729FBB27F00DB11D639F62
-:10483000AA27F00DB11DAA1F649F6627B00DA11D08
-:10484000661F829F2227B00DA11D621F739FB00DAE
-:10485000A11D621F839FA00D611D221F749F33271E
-:10486000A00D611D231F849F600D211D822F762FB7
-:104870006A2F11249F5750408AF0E1F088234AF0B4
-:10488000EE0FFF1FBB1F661F771F881F9150504000
-:10489000A9F79E3F510570F014C0AACF5F3FECF31B
-:1048A000983EDCF3869577956795B795F795E795EC
-:1048B0009F5FC1F7FE2B880F911D9695879597F9FD
-:1048C000089597F99F6780E870E060E008959FEF92
-:1048D00080EC089500240A94161617061806090697
-:1048E000089500240A941216130614060506089566
-:1048F000092E0394000C11F4882352F0BB0F40F4EE
-:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D
-:104910000895991B79E004C0991F961708F0961B1B
-:10492000881F7A95C9F78095089597FB072E16F48E
-:10493000009407D077FD09D00E94A92407FC05D078
-:104940003EF4909581959F4F0895709561957F4FA6
-:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6
-:10496000B70710F0A61BB70B881F991F5A95A9F718
-:1049700080959095BC01CD010895F999FECF92BD27
-:1049800081BDF89A992780B50895A8E1B0E042E08A
-:1049900050E00C94E024262FF999FECF1FBA92BD67
-:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610
-:1049B00008950E94CB24272F0C94CC24DC01CB013A
-:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F
-:1049D00000B40D9241505040B8F70895F894FFCFBD
-:1049E00005960826090209CD08990801C80128087A
-:1049F000140A321E420045002500260043006100D3
-:104A00006000200037006400650066006700440015
-:104A100046002400470074038D03A603BF038B04E4
-:104A20003E040804E8033F4D362001020304050656
-:044A3000070809006A
-:00000001FF
diff --git a/new_project.sh b/new_project.sh index 28de9c2f9f..7def543188 100755 --- a/new_project.sh +++ b/new_project.sh @@ -2,6 +2,11 @@ # Script to make a new quantum project # Jack Humbert 2015 +if [ -z "$1" ]; then + echo "Usage: $0 <keyboard_name>" + exit 1 +fi + KEYBOARD=$1 KEYBOARD_UPPERCASE=$(echo $1 | awk '{print toupper($0)}') diff --git a/quantum/audio.c b/quantum/audio/audio.c index 627e3d80a1..e85370d958 100644 --- a/quantum/audio.c +++ b/quantum/audio/audio.c @@ -10,17 +10,23 @@ #include "eeconfig.h" +#ifdef VIBRATO_ENABLE + #include "vibrato_lut.h" +#endif + #define PI 3.14159265 #define CPU_PRESCALER 8 -// #define PWM_AUDIO - #ifdef PWM_AUDIO #include "wave.h" #define SAMPLE_DIVIDER 39 #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap + + float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t place_int = 0; + bool repeat = true; #endif void delay_us(int count) { @@ -31,27 +37,21 @@ void delay_us(int count) { int voices = 0; int voice_place = 0; -double frequency = 0; +float frequency = 0; int volume = 0; long position = 0; -int duty_place = 1; -int duty_counter = 0; -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +float frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; bool sliding = false; int max = 0xFF; float sum = 0; -int value = 128; float place = 0; -float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -uint16_t place_int = 0; -bool repeat = true; uint8_t * sample; uint16_t sample_length = 0; - +// float freq = 0; bool notes = false; bool note = false; @@ -61,7 +61,7 @@ float note_tempo = TEMPO_DEFAULT; float note_timbre = TIMBRE_DEFAULT; uint16_t note_position = 0; float (* notes_pointer)[][2]; -uint8_t notes_count; +uint16_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; @@ -69,26 +69,157 @@ bool note_resting = false; uint8_t current_note = 0; uint8_t rest_counter = 0; +#ifdef VIBRATO_ENABLE +float vibrato_counter = 0; +float vibrato_strength = .5; +float vibrato_rate = 0.125; +#endif + +float polyphony_rate = 0; + +bool inited = false; + audio_config_t audio_config; +uint16_t envelope_index = 0; void audio_toggle(void) { audio_config.enable ^= 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_on(void) { audio_config.enable = 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_off(void) { audio_config.enable = 0; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); +} + +#ifdef VIBRATO_ENABLE +// Vibrato rate functions + +void set_vibrato_rate(float rate) { + vibrato_rate = rate; } +void increase_vibrato_rate(float change) { + vibrato_rate *= change; +} + +void decrease_vibrato_rate(float change) { + vibrato_rate /= change; +} + +#ifdef VIBRATO_STRENGTH_ENABLE + +void set_vibrato_strength(float strength) { + vibrato_strength = strength; +} + +void increase_vibrato_strength(float change) { + vibrato_strength *= change; +} + +void decrease_vibrato_strength(float change) { + vibrato_strength /= change; +} + +#endif + +#endif + +// Polyphony functions + +void set_polyphony_rate(float rate) { + polyphony_rate = rate; +} + +void enable_polyphony() { + polyphony_rate = 5; +} + +void disable_polyphony() { + polyphony_rate = 0; +} + +void increase_polyphony_rate(float change) { + polyphony_rate *= change; +} + +void decrease_polyphony_rate(float change) { + polyphony_rate /= change; +} + +// Timbre function + +void set_timbre(float timbre) { + note_timbre = timbre; +} + +// Tempo functions + +void set_tempo(float tempo) { + note_tempo = tempo; +} + +void decrease_tempo(uint8_t tempo_change) { + note_tempo += (float) tempo_change; +} + +void increase_tempo(uint8_t tempo_change) { + if (note_tempo - (float) tempo_change < 10) { + note_tempo = 10; + } else { + note_tempo -= (float) tempo_change; + } +} + +void audio_init() { + + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + + #ifdef PWM_AUDIO + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + #else + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + #endif + + inited = true; +} void stop_all_notes() { + if (!inited) { + audio_init(); + } voices = 0; #ifdef PWM_AUDIO TIMSK3 &= ~_BV(OCIE3A); @@ -107,8 +238,11 @@ void stop_all_notes() { } } -void stop_note(double freq) { +void stop_note(float freq) { if (note) { + if (!inited) { + audio_init(); + } #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -122,11 +256,15 @@ void stop_note(double freq) { volumes[j] = volumes[j+1]; volumes[j+1] = 0; } + break; } } voices--; if (voices < 0) voices = 0; + if (voice_place >= voices) { + voice_place = 0; + } if (voices == 0) { #ifdef PWM_AUDIO TIMSK3 &= ~_BV(OCIE3A); @@ -137,66 +275,29 @@ void stop_note(double freq) { frequency = 0; volume = 0; note = false; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - double starting_f = frequency; - if (frequency < freq) { - sliding = true; - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { - frequency = f; - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { - frequency = f; - } - sliding = false; - } - frequency = freq; - volume = vol; } } } -void init_notes() { - - /* check signature */ - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - audio_config.raw = eeconfig_read_audio(); - - #ifdef PWM_AUDIO - PLLFRQ = _BV(PDIV2); - PLLCSR = _BV(PLLE); - while(!(PLLCSR & _BV(PLOCK))); - PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - - /* Init a fast PWM on Timer4 */ - TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ - TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ - OCR4A = 0; - - /* Enable the OC4A output */ - DDRC |= _BV(PORTC6); +#ifdef VIBRATO_ENABLE - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs +float mod(float a, int b) +{ + float r = fmod(a, b); + return r < 0 ? r + b : r; +} - TCCR3A = 0x0; // Options not needed - TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC - OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback +float vibrato(float average_freq) { + #ifdef VIBRATO_STRENGTH_ENABLE + float vibrated_freq = average_freq * pow(VIBRATO_LUT[(int)vibrato_counter], vibrato_strength); #else - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + float vibrated_freq = average_freq * VIBRATO_LUT[(int)vibrato_counter]; #endif + vibrato_counter = mod((vibrato_counter + vibrato_rate * (1.0 + 440.0/average_freq)), VIBRATO_LUT_LENGTH); + return vibrated_freq; } +#endif ISR(TIMER3_COMPA_vect) { if (note) { @@ -248,23 +349,55 @@ ISR(TIMER3_COMPA_vect) { OCR4A = sum; } #else - if (frequency > 0) { - // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period - // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period - voice_place %= voices; - if (place > (frequencies[voice_place] / 50)) { - voice_place = (voice_place + 1) % voices; - place = 0.0; + if (voices > 0) { + float freq; + if (polyphony_rate > 0) { + if (voices > 1) { + voice_place %= voices; + if (place++ > (frequencies[voice_place] / polyphony_rate / CPU_PRESCALER)) { + voice_place = (voice_place + 1) % voices; + place = 0.0; + } + } + #ifdef VIBRATO_ENABLE + if (vibrato_strength > 0) { + freq = vibrato(frequencies[voice_place]); + } else { + #else + { + #endif + freq = frequencies[voice_place]; + } + } else { + if (frequency != 0 && frequency < frequencies[voices - 1] && frequency < frequencies[voices - 1] * pow(2, -440/frequencies[voices - 1]/12/2)) { + frequency = frequency * pow(2, 440/frequency/12/2); + } else if (frequency != 0 && frequency > frequencies[voices - 1] && frequency > frequencies[voices - 1] * pow(2, 440/frequencies[voices - 1]/12/2)) { + frequency = frequency * pow(2, -440/frequency/12/2); + } else { + frequency = frequencies[voices - 1]; + } + + + #ifdef VIBRATO_ENABLE + if (vibrato_strength > 0) { + freq = vibrato(frequency); + } else { + #else + { + #endif + freq = frequency; + } } - ICR3 = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)((((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) * note_timbre); // Set compare to half the period - //OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period - place++; - // if (duty_counter > (frequencies[voice_place] / 500)) { - // duty_place = (duty_place % 3) + 1; - // duty_counter = 0; - // } - // duty_counter++; + + if (envelope_index < 65535) { + envelope_index++; + } + freq = voice_envelope(freq); + + if (freq < 30.517578125) + freq = 30.52; + ICR3 = (int)(((double)F_CPU) / (freq * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)((((double)F_CPU) / (freq * CPU_PRESCALER)) * note_timbre); // Set compare to half the period } #endif } @@ -290,8 +423,25 @@ ISR(TIMER3_COMPA_vect) { place -= SINE_LENGTH; #else if (note_frequency > 0) { - ICR3 = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)((((double)F_CPU) / (note_frequency * CPU_PRESCALER)) * note_timbre); // Set compare to half the period + float freq; + + #ifdef VIBRATO_ENABLE + if (vibrato_strength > 0) { + freq = vibrato(note_frequency); + } else { + #else + { + #endif + freq = note_frequency; + } + + if (envelope_index < 65535) { + envelope_index++; + } + freq = voice_envelope(freq); + + ICR3 = (int)(((double)F_CPU) / (freq * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)((((double)F_CPU) / (freq * CPU_PRESCALER)) * note_timbre); // Set compare to half the period } else { ICR3 = 0; OCR3A = 0; @@ -332,6 +482,7 @@ ISR(TIMER3_COMPA_vect) { note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; note_length = (*notes_pointer)[current_note][1] * (note_tempo / 100); #else + envelope_index = 0; note_frequency = (*notes_pointer)[current_note][0]; note_length = ((*notes_pointer)[current_note][1] / 4) * (note_tempo / 100); #endif @@ -347,10 +498,46 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { +void play_note(float freq, int vol) { -if (audio_config.enable) { + if (!inited) { + audio_init(); + } +if (audio_config.enable && voices < 8) { + TIMSK3 &= ~_BV(OCIE3A); + // Cancel notes if notes are playing + if (notes) + stop_all_notes(); + note = true; + envelope_index = 0; + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + if (freq > 0) { + frequencies[voices] = freq; + volumes[voices] = vol; + voices++; + } + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif +} + +} + +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest) { + + if (!inited) { + audio_init(); + } + +if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); // Cancel note if a note is playing if (note) stop_all_notes(); @@ -379,99 +566,28 @@ if (audio_config.enable) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif - } } +#ifdef PWM_AUDIO void play_sample(uint8_t * s, uint16_t l, bool r) { + if (!inited) { + audio_init(); + } -if (audio_config.enable) { - - stop_all_notes(); - place_int = 0; - sample = s; - sample_length = l; - repeat = r; - - #ifdef PWM_AUDIO - TIMSK3 |= _BV(OCIE3A); - #else - #endif - -} - -} - -void play_note(double freq, int vol) { - -if (audio_config.enable && voices < 8) { - - // Cancel notes if notes are playing - if (notes) + if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); stop_all_notes(); - note = true; - #ifdef PWM_AUDIO - freq = freq / SAMPLE_RATE; - #endif - if (freq > 0) { - if (frequency != 0) { - double starting_f = frequency; - if (frequency < freq) { - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { - frequency = f; - } - } else if (frequency > freq) { - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { - frequency = f; - } - } - } - frequency = freq; - volume = vol; + place_int = 0; + sample = s; + sample_length = l; + repeat = r; - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - - #ifdef PWM_AUDIO TIMSK3 |= _BV(OCIE3A); - #else - TIMSK3 |= _BV(OCIE3A); - TCCR3A |= _BV(COM3A1); - #endif - -} - -} - -void set_timbre(float timbre) -{ - note_timbre = timbre; -} - -void set_tempo(float tempo) -{ - note_tempo = tempo; -} - -void decrease_tempo(uint8_t tempo_change) -{ - note_tempo += (float) tempo_change; -} - -void increase_tempo(uint8_t tempo_change) -{ - if (note_tempo - (float) tempo_change < 10) - { - note_tempo = 10; - } - else - { - note_tempo -= (float) tempo_change; - } + } } +#endif //------------------------------------------------------------------------------ // Override these functions in your keymap file to play different tunes on @@ -481,8 +597,11 @@ void play_startup_tone() { } + + __attribute__ ((weak)) void play_goodbye_tone() { + } //------------------------------------------------------------------------------ diff --git a/quantum/audio.h b/quantum/audio/audio.h index 44cafccd68..89769507e1 100644 --- a/quantum/audio.h +++ b/quantum/audio/audio.h @@ -4,10 +4,19 @@ #include <util/delay.h> #include "musical_notes.h" #include "song_list.h" +#include "voices.h" #ifndef AUDIO_H #define AUDIO_H +// Largely untested PWM audio mode (doesn't sound as good) +// #define PWM_AUDIO + +// #define VIBRATO_ENABLE + +// Enable vibrato strength/amplitude - slows down ISR too much +// #define VIBRATO_STRENGTH_ENABLE + typedef union { uint8_t raw; struct { @@ -20,18 +29,48 @@ void audio_toggle(void); void audio_on(void); void audio_off(void); -void play_sample(uint8_t * s, uint16_t l, bool r); -void play_note(double freq, int vol); -void stop_note(double freq); -void stop_all_notes(void); -void init_notes(void); -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); +// Vibrato rate functions + +#ifdef VIBRATO_ENABLE + +void set_vibrato_rate(float rate); +void increase_vibrato_rate(float change); +void decrease_vibrato_rate(float change); + +#ifdef VIBRATO_STRENGTH_ENABLE + +void set_vibrato_strength(float strength); +void increase_vibrato_strength(float change); +void decrease_vibrato_strength(float change); + +#endif + +#endif + +// Polyphony functions + +void set_polyphony_rate(float rate); +void enable_polyphony(void); +void disable_polyphony(void); +void increase_polyphony_rate(float change); +void decrease_polyphony_rate(float change); void set_timbre(float timbre); void set_tempo(float tempo); + void increase_tempo(uint8_t tempo_change); void decrease_tempo(uint8_t tempo_change); +void audio_init(void); + +#ifdef PWM_AUDIO +void play_sample(uint8_t * s, uint16_t l, bool r); +#endif +void play_note(float freq, int vol); +void stop_note(float freq); +void stop_all_notes(void); +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest); + #define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ @@ -41,7 +80,7 @@ void decrease_tempo(uint8_t tempo_change); // These macros are used to allow play_notes to play an array of indeterminate // length. This works around the limitation of C's sizeof operation on pointers. // The global float array for the song must be used here. -#define NOTE_ARRAY_SIZE(x) ((int)(sizeof(x) / (sizeof(x[0])))) +#define NOTE_ARRAY_SIZE(x) ((int16_t)(sizeof(x) / (sizeof(x[0])))) #define PLAY_NOTE_ARRAY(note_array, note_repeat, note_rest_style) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat), (note_rest_style)); void play_goodbye_tone(void); diff --git a/quantum/audio/frequency_lut.h b/quantum/audio/frequency_lut.h new file mode 100644 index 0000000000..e62da5be4e --- /dev/null +++ b/quantum/audio/frequency_lut.h @@ -0,0 +1,357 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <avr/pgmspace.h> + +#define FREQUENCY_LUT_LENGTH 349 + +const uint16_t FREQUENCY_LUT[FREQUENCY_LUT_LENGTH] = { +0x8E0B, +0x8C02, +0x8A00, +0x8805, +0x8612, +0x8426, +0x8241, +0x8063, +0x7E8C, +0x7CBB, +0x7AF2, +0x792E, +0x7772, +0x75BB, +0x740B, +0x7261, +0x70BD, +0x6F20, +0x6D88, +0x6BF6, +0x6A69, +0x68E3, +0x6762, +0x65E6, +0x6470, +0x6300, +0x6194, +0x602E, +0x5ECD, +0x5D71, +0x5C1A, +0x5AC8, +0x597B, +0x5833, +0x56EF, +0x55B0, +0x5475, +0x533F, +0x520E, +0x50E1, +0x4FB8, +0x4E93, +0x4D73, +0x4C57, +0x4B3E, +0x4A2A, +0x491A, +0x480E, +0x4705, +0x4601, +0x4500, +0x4402, +0x4309, +0x4213, +0x4120, +0x4031, +0x3F46, +0x3E5D, +0x3D79, +0x3C97, +0x3BB9, +0x3ADD, +0x3A05, +0x3930, +0x385E, +0x3790, +0x36C4, +0x35FB, +0x3534, +0x3471, +0x33B1, +0x32F3, +0x3238, +0x3180, +0x30CA, +0x3017, +0x2F66, +0x2EB8, +0x2E0D, +0x2D64, +0x2CBD, +0x2C19, +0x2B77, +0x2AD8, +0x2A3A, +0x299F, +0x2907, +0x2870, +0x27DC, +0x2749, +0x26B9, +0x262B, +0x259F, +0x2515, +0x248D, +0x2407, +0x2382, +0x2300, +0x2280, +0x2201, +0x2184, +0x2109, +0x2090, +0x2018, +0x1FA3, +0x1F2E, +0x1EBC, +0x1E4B, +0x1DDC, +0x1D6E, +0x1D02, +0x1C98, +0x1C2F, +0x1BC8, +0x1B62, +0x1AFD, +0x1A9A, +0x1A38, +0x19D8, +0x1979, +0x191C, +0x18C0, +0x1865, +0x180B, +0x17B3, +0x175C, +0x1706, +0x16B2, +0x165E, +0x160C, +0x15BB, +0x156C, +0x151D, +0x14CF, +0x1483, +0x1438, +0x13EE, +0x13A4, +0x135C, +0x1315, +0x12CF, +0x128A, +0x1246, +0x1203, +0x11C1, +0x1180, +0x1140, +0x1100, +0x10C2, +0x1084, +0x1048, +0x100C, +0xFD1, +0xF97, +0xF5E, +0xF25, +0xEEE, +0xEB7, +0xE81, +0xE4C, +0xE17, +0xDE4, +0xDB1, +0xD7E, +0xD4D, +0xD1C, +0xCEC, +0xCBC, +0xC8E, +0xC60, +0xC32, +0xC05, +0xBD9, +0xBAE, +0xB83, +0xB59, +0xB2F, +0xB06, +0xADD, +0xAB6, +0xA8E, +0xA67, +0xA41, +0xA1C, +0x9F7, +0x9D2, +0x9AE, +0x98A, +0x967, +0x945, +0x923, +0x901, +0x8E0, +0x8C0, +0x8A0, +0x880, +0x861, +0x842, +0x824, +0x806, +0x7E8, +0x7CB, +0x7AF, +0x792, +0x777, +0x75B, +0x740, +0x726, +0x70B, +0x6F2, +0x6D8, +0x6BF, +0x6A6, +0x68E, +0x676, +0x65E, +0x647, +0x630, +0x619, +0x602, +0x5EC, +0x5D7, +0x5C1, +0x5AC, +0x597, +0x583, +0x56E, +0x55B, +0x547, +0x533, +0x520, +0x50E, +0x4FB, +0x4E9, +0x4D7, +0x4C5, +0x4B3, +0x4A2, +0x491, +0x480, +0x470, +0x460, +0x450, +0x440, +0x430, +0x421, +0x412, +0x403, +0x3F4, +0x3E5, +0x3D7, +0x3C9, +0x3BB, +0x3AD, +0x3A0, +0x393, +0x385, +0x379, +0x36C, +0x35F, +0x353, +0x347, +0x33B, +0x32F, +0x323, +0x318, +0x30C, +0x301, +0x2F6, +0x2EB, +0x2E0, +0x2D6, +0x2CB, +0x2C1, +0x2B7, +0x2AD, +0x2A3, +0x299, +0x290, +0x287, +0x27D, +0x274, +0x26B, +0x262, +0x259, +0x251, +0x248, +0x240, +0x238, +0x230, +0x228, +0x220, +0x218, +0x210, +0x209, +0x201, +0x1FA, +0x1F2, +0x1EB, +0x1E4, +0x1DD, +0x1D6, +0x1D0, +0x1C9, +0x1C2, +0x1BC, +0x1B6, +0x1AF, +0x1A9, +0x1A3, +0x19D, +0x197, +0x191, +0x18C, +0x186, +0x180, +0x17B, +0x175, +0x170, +0x16B, +0x165, +0x160, +0x15B, +0x156, +0x151, +0x14C, +0x148, +0x143, +0x13E, +0x13A, +0x135, +0x131, +0x12C, +0x128, +0x124, +0x120, +0x11C, +0x118, +0x114, +0x110, +0x10C, +0x108, +0x104, +0x100, +0xFD, +0xF9, +0xF5, +0xF2, +0xEE +};
\ No newline at end of file diff --git a/quantum/musical_notes.h b/quantum/audio/musical_notes.h index b08d16a6fa..b08d16a6fa 100644 --- a/quantum/musical_notes.h +++ b/quantum/audio/musical_notes.h diff --git a/quantum/song_list.h b/quantum/audio/song_list.h index e992bd18a2..fc6fcdeef1 100644 --- a/quantum/song_list.h +++ b/quantum/audio/song_list.h @@ -64,6 +64,22 @@ S__NOTE(_REST), \ E__NOTE(_E7 ), +#define PLOVER_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), + +#define PLOVER_GOODBYE_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), + #define MUSIC_SCALE_SOUND \ E__NOTE(_A5 ), \ E__NOTE(_B5 ), \ diff --git a/quantum/audio/vibrato_lut.h b/quantum/audio/vibrato_lut.h new file mode 100644 index 0000000000..a2b1f3e5ce --- /dev/null +++ b/quantum/audio/vibrato_lut.h @@ -0,0 +1,28 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <avr/pgmspace.h> + +#define VIBRATO_LUT_LENGTH 20 + +const float VIBRATO_LUT[VIBRATO_LUT_LENGTH] = { \ +1.00223368114872, +1.00425299436105, +1.00585842560279, +1.00689052852052, +1.0072464122237, +1.00689052852052, +1.00585842560279, +1.00425299436105, +1.00223368114872, +1, +0.99777129706302, +0.99576501699778, +0.994175695650927, +0.993156625943589, +0.992805720491269, +0.993156625943589, +0.994175695650927, +0.99576501699778, +0.99777129706302, +1 +};
\ No newline at end of file diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c new file mode 100644 index 0000000000..d2316ba1b3 --- /dev/null +++ b/quantum/audio/voices.c @@ -0,0 +1,163 @@ +#include "voices.h" +#include "stdlib.h" +#include "vibrato_lut.h" + +// these are imported from audio.c +extern uint16_t envelope_index; +extern float note_timbre; +extern float polyphony_rate; + +voice_type voice = default_voice; + +void set_voice(voice_type v) { + voice = v; +} + +void voice_iterate() { + voice = (voice + 1) % number_of_voices; +} + +void voice_deiterate() { + voice = (voice - 1) % number_of_voices; +} + +float voice_envelope(float frequency) { + // envelope_index ranges from 0 to 0xFFFF, which is preserved at 880.0 Hz + uint16_t compensated_index = (uint16_t)((float)envelope_index * (880.0 / frequency)); + + switch (voice) { + case default_voice: + note_timbre = TIMBRE_50; + polyphony_rate = 0; + break; + + case butts_fader: + polyphony_rate = 0; + switch (compensated_index) { + case 0 ... 9: + frequency = frequency / 4; + note_timbre = TIMBRE_12; + break; + + case 10 ... 19: + frequency = frequency / 2; + note_timbre = TIMBRE_12; + break; + + case 20 ... 200: + note_timbre = .125 - pow(((float)compensated_index - 20) / (200 - 20), 2)*.125; + break; + + default: + note_timbre = 0; + break; + } + break; + + // case octave_crunch: + // polyphony_rate = 0; + // switch (compensated_index) { + // case 0 ... 9: + // case 20 ... 24: + // case 30 ... 32: + // frequency = frequency / 2; + // note_timbre = TIMBRE_12; + // break; + + // case 10 ... 19: + // case 25 ... 29: + // case 33 ... 35: + // frequency = frequency * 2; + // note_timbre = TIMBRE_12; + // break; + + // default: + // note_timbre = TIMBRE_12; + // break; + // } + // break; + + case duty_osc: + // This slows the loop down a substantial amount, so higher notes may freeze + polyphony_rate = 0; + switch (compensated_index) { + default: + #define OCS_SPEED 10 + #define OCS_AMP .25 + // sine wave is slow + // note_timbre = (sin((float)compensated_index/10000*OCS_SPEED) * OCS_AMP / 2) + .5; + // triangle wave is a bit faster + note_timbre = (float)abs((compensated_index*OCS_SPEED % 3000) - 1500) * ( OCS_AMP / 1500 ) + (1 - OCS_AMP) / 2; + break; + } + break; + + case duty_octave_down: + polyphony_rate = 0; + note_timbre = (envelope_index % 2) * .125 + .375 * 2; + if ((envelope_index % 4) == 0) + note_timbre = 0.5; + if ((envelope_index % 8) == 0) + note_timbre = 0; + break; + case delayed_vibrato: + polyphony_rate = 0; + note_timbre = TIMBRE_50; + #define VOICE_VIBRATO_DELAY 150 + #define VOICE_VIBRATO_SPEED 50 + switch (compensated_index) { + case 0 ... VOICE_VIBRATO_DELAY: + break; + default: + frequency = frequency * VIBRATO_LUT[(int)fmod((((float)compensated_index - (VOICE_VIBRATO_DELAY + 1))/1000*VOICE_VIBRATO_SPEED), VIBRATO_LUT_LENGTH)]; + break; + } + break; + // case delayed_vibrato_octave: + // polyphony_rate = 0; + // if ((envelope_index % 2) == 1) { + // note_timbre = 0.55; + // } else { + // note_timbre = 0.45; + // } + // #define VOICE_VIBRATO_DELAY 150 + // #define VOICE_VIBRATO_SPEED 50 + // switch (compensated_index) { + // case 0 ... VOICE_VIBRATO_DELAY: + // break; + // default: + // frequency = frequency * VIBRATO_LUT[(int)fmod((((float)compensated_index - (VOICE_VIBRATO_DELAY + 1))/1000*VOICE_VIBRATO_SPEED), VIBRATO_LUT_LENGTH)]; + // break; + // } + // break; + // case duty_fifth_down: + // note_timbre = 0.5; + // if ((envelope_index % 3) == 0) + // note_timbre = 0.75; + // break; + // case duty_fourth_down: + // note_timbre = 0.0; + // if ((envelope_index % 12) == 0) + // note_timbre = 0.75; + // if (((envelope_index % 12) % 4) != 1) + // note_timbre = 0.75; + // break; + // case duty_third_down: + // note_timbre = 0.5; + // if ((envelope_index % 5) == 0) + // note_timbre = 0.75; + // break; + // case duty_fifth_third_down: + // note_timbre = 0.5; + // if ((envelope_index % 5) == 0) + // note_timbre = 0.75; + // if ((envelope_index % 3) == 0) + // note_timbre = 0.25; + // break; + + default: + break; + } + + return frequency; +}
\ No newline at end of file diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h new file mode 100644 index 0000000000..74c873f42f --- /dev/null +++ b/quantum/audio/voices.h @@ -0,0 +1,32 @@ +#include <stdint.h> +#include <stdbool.h> +#include <avr/io.h> +#include <util/delay.h> +#include "musical_notes.h" +#include "song_list.h" + +#ifndef VOICES_H +#define VOICES_H + +float voice_envelope(float frequency); + +typedef enum { + default_voice, + butts_fader, + octave_crunch, + duty_osc, + duty_octave_down, + delayed_vibrato, + // delayed_vibrato_octave, + // duty_fifth_down, + // duty_fourth_down, + // duty_third_down, + // duty_fifth_third_down, + number_of_voices // important that this is last +} voice_type; + +void set_voice(voice_type v); +void voice_iterate(void); +void voice_deiterate(void); + +#endif
\ No newline at end of file diff --git a/quantum/wave.h b/quantum/audio/wave.h index 6ebc348519..6ebc348519 100644 --- a/quantum/wave.h +++ b/quantum/audio/wave.h diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 4ee290ad03..4b4bd62109 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -184,6 +184,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE + stop_all_notes(); play_goodbye_tone(); #endif _delay_ms(250); @@ -244,7 +245,7 @@ static action_t keycode_to_action(uint16_t keycode) keymap_config.swap_lalt_lgui = 0; keymap_config.swap_ralt_rgui = 0; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); break; case 0x5100 ... 0x5FFF: ; // Layer movement shortcuts diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index ce87e4770e..0ede0296b9 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -213,7 +213,7 @@ extern const uint16_t fn_actions[]; #define GUI_T(kc) MT(0x8, kc) #define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal #define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl -#define LCAG_T(kc) MT(0xD, kc) // Left control alt and gui +#define LCAG_T(kc) MT(0xD, kc) // Left control alt and gui #define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ // Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap @@ -231,8 +231,8 @@ extern const uint16_t fn_actions[]; // For tri-layer void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); -#define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer))) +#define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) +#define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer))) #endif diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h index d0b77fb803..ee725bad5e 100644 --- a/quantum/keymap_extras/keymap_german_osx.h +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -85,8 +85,8 @@ #define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _ // Alt-ed characters -#define DE_OSX_SQ2 LALT(KC_2) // ² -#define DE_OSX_SQ3 LALT(KC_3) // ³ +//#define DE_OSX_SQ2 LALT(KC_2) // ² +//#define DE_OSX_SQ3 LALT(KC_3) // ³ #define DE_OSX_LCBR LALT(KC_8) // { #define DE_OSX_LBRC LALT(KC_5) // [ #define DE_OSX_RBRC LALT(KC_6) // ] diff --git a/quantum/keymap_extras/keymap_plover.h b/quantum/keymap_extras/keymap_plover.h new file mode 100644 index 0000000000..98e57ab7b1 --- /dev/null +++ b/quantum/keymap_extras/keymap_plover.h @@ -0,0 +1,32 @@ +#ifndef KEYMAP_PLOVER_H +#define KEYMAP_PLOVER_H + +#include "keymap_common.h" + +#define PV_NUM KC_1 +#define PV_LS KC_Q +#define PV_LT KC_W +#define PV_LP KC_E +#define PV_LH KC_R +#define PV_LK KC_S +#define PV_LW KC_D +#define PV_LR KC_F + +#define PV_STAR KC_Y +#define PV_RF KC_U +#define PV_RP KC_I +#define PV_RL KC_O +#define PV_RT KC_P +#define PV_RD KC_LBRC +#define PV_RR KC_J +#define PV_RB KC_K +#define PV_RG KC_L +#define PV_RS KC_SCLN +#define PV_RZ KC_QUOT + +#define PV_A KC_C +#define PV_O KC_V +#define PV_E KC_N +#define PV_U KC_M + +#endif diff --git a/quantum/quantum.mk b/quantum/quantum.mk index 1fe7390eba..83c4f1d1db 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -28,7 +28,7 @@ ifeq ($(strip $(MIDI_ENABLE)), yes) endif ifeq ($(strip $(AUDIO_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/audio.c + SRC += $(QUANTUM_DIR)/audio/audio.c $(QUANTUM_DIR)/audio/voices.c endif ifeq ($(strip $(UNICODE_ENABLE)), yes) @@ -47,6 +47,7 @@ endif # Search Path VPATH += $(TOP_DIR)/$(QUANTUM_DIR) VPATH += $(TOP_DIR)/$(QUANTUM_DIR)/keymap_extras +VPATH += $(TOP_DIR)/$(QUANTUM_DIR)/audio include $(TMK_DIR)/protocol/lufa.mk diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 2215cf5cdf..8c9ad77364 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -107,17 +107,17 @@ void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) { uint32_t eeconfig_read_rgblight(void) { return eeprom_read_dword(EECONFIG_RGBLIGHT); } -void eeconfig_write_rgblight(uint32_t val) { - eeprom_write_dword(EECONFIG_RGBLIGHT, val); +void eeconfig_update_rgblight(uint32_t val) { + eeprom_update_dword(EECONFIG_RGBLIGHT, val); } -void eeconfig_write_rgblight_default(void) { - dprintf("eeconfig_write_rgblight_default\n"); +void eeconfig_update_rgblight_default(void) { + dprintf("eeconfig_update_rgblight_default\n"); rgblight_config.enable = 1; rgblight_config.mode = 1; rgblight_config.hue = 200; rgblight_config.sat = 204; rgblight_config.val = 204; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_debug_rgblight(void) { dprintf("rgblight_config eprom\n"); @@ -136,12 +136,12 @@ void rgblight_init(void) { if (!eeconfig_is_enabled()) { dprintf("rgblight_init eeconfig is not enabled.\n"); eeconfig_init(); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); } rgblight_config.raw = eeconfig_read_rgblight(); if (!rgblight_config.mode) { dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); rgblight_config.raw = eeconfig_read_rgblight(); } eeconfig_debug_rgblight(); // display current eeprom values @@ -189,8 +189,8 @@ void rgblight_mode(uint8_t mode) { } else { rgblight_config.mode = mode; } - eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight mode: %u\n", rgblight_config.mode); + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { rgblight_timer_disable(); } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) { @@ -206,8 +206,8 @@ void rgblight_mode(uint8_t mode) { void rgblight_toggle(void) { rgblight_config.enable ^= 1; - eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); } else { @@ -299,8 +299,8 @@ void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ rgblight_config.hue = hue; rgblight_config.sat = sat; rgblight_config.val = val; - eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 9e1562328f..37e207578c 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -66,8 +66,8 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); #define EECONFIG_RGBLIGHT (uint8_t *)7 uint32_t eeconfig_read_rgblight(void); -void eeconfig_write_rgblight(uint32_t val); -void eeconfig_write_rgblight_default(void); +void eeconfig_update_rgblight(uint32_t val); +void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 4fa195468d..1a535ef2cb 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -111,23 +111,41 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -#NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/quantum/template/template.c b/quantum/template/template.c index cc52e496ff..6050a2d20c 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -46,3 +46,64 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif
\ No newline at end of file diff --git a/quantum/template/template.h b/quantum/template/template.h index b1c34d3cbe..22742105a3 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -3,7 +3,10 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include <avr/io.h> #include <stddef.h> // This a shortcut to help you visually see your layout. diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 0162fbd632..f9e6c17dc3 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -27,11 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "action_util.h" #include "action.h" -//#ifdef DEBUG_ACTION +#ifdef DEBUG_ACTION #include "debug.h" -//#else -//#include "nodebug.h" -//#endif +#else +#include "nodebug.h" +#endif void action_exec(keyevent_t event) diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 845fbbb210..63fa2b5ae4 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -4,11 +4,11 @@ #include "util.h" #include "action_layer.h" -//#ifdef DEBUG_ACTION +#ifdef DEBUG_ACTION #include "debug.h" -//#else -//#include "nodebug.h" -//#endif +#else +#include "nodebug.h" +#endif /* diff --git a/tmk_core/common/action_macro.c b/tmk_core/common/action_macro.c index cc78c82327..7726b11907 100644 --- a/tmk_core/common/action_macro.c +++ b/tmk_core/common/action_macro.c @@ -19,11 +19,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "action_macro.h" #include "wait.h" -//#ifdef DEBUG_ACTION +#ifdef DEBUG_ACTION #include "debug.h" -//#else -//#include "nodebug.h" -//#endif +#else +#include "nodebug.h" +#endif #ifndef NO_ACTION_MACRO diff --git a/tmk_core/common/action_tapping.c b/tmk_core/common/action_tapping.c index 6b6fa1dfe2..e6343e6da7 100644 --- a/tmk_core/common/action_tapping.c +++ b/tmk_core/common/action_tapping.c @@ -6,11 +6,11 @@ #include "keycode.h" #include "timer.h" -//#ifdef DEBUG_ACTION +#ifdef DEBUG_ACTION #include "debug.h" -//#else -//#include "nodebug.h" -//#endif +#else +#include "nodebug.h" +#endif #ifndef NO_ACTION_TAPPING diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 25bb9e849c..c5391f5cf5 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -5,27 +5,27 @@ void eeconfig_init(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); - eeprom_write_byte(EECONFIG_DEBUG, 0); - eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0); - eeprom_write_byte(EECONFIG_KEYMAP, 0); - eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_byte(EECONFIG_DEBUG, 0); + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); + eeprom_update_byte(EECONFIG_KEYMAP, 0); + eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); #ifdef BACKLIGHT_ENABLE - eeprom_write_byte(EECONFIG_BACKLIGHT, 0); + eeprom_update_byte(EECONFIG_BACKLIGHT, 0); #endif #ifdef AUDIO_ENABLE - eeprom_write_byte(EECONFIG_AUDIO, 0xFF); // On by default + eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default #endif } void eeconfig_enable(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); } void eeconfig_disable(void) { - eeprom_write_word(EECONFIG_MAGIC, 0xFFFF); + eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); } bool eeconfig_is_enabled(void) @@ -34,20 +34,20 @@ bool eeconfig_is_enabled(void) } uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); } +void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); } uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } -void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); } +void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } -void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); } +void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } #ifdef BACKLIGHT_ENABLE uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } -void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } +void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } #endif #ifdef AUDIO_ENABLE uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } -void eeconfig_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } -#endif
\ No newline at end of file +void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } +#endif diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index e295dbe18b..4980680198 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -79,7 +79,8 @@ static void power_down(uint8_t wdto) led_set(0); #ifdef AUDIO_ENABLE - stop_all_notes(); + // This sometimes disables the start-up noise, so it's been disabled + // stop_all_notes(); #endif /* AUDIO_ENABLE */ // TODO: more power saving diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 558ad9b014..2f6fc1cd6c 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -37,7 +37,7 @@ void backlight_increase(void) { backlight_config.level++; backlight_config.enable = 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -49,7 +49,7 @@ void backlight_decrease(void) { backlight_config.level--; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -58,7 +58,7 @@ void backlight_decrease(void) void backlight_toggle(void) { backlight_config.enable ^= 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight toggle: %u\n", backlight_config.enable); backlight_set(backlight_config.enable ? backlight_config.level : 0); } @@ -71,7 +71,7 @@ void backlight_step(void) backlight_config.level = 0; } backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight step: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -80,6 +80,6 @@ void backlight_level(uint8_t level) { backlight_config.level ^= level; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); backlight_set(backlight_config.level); } diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index b002a58562..2c1b1adfc5 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c @@ -52,7 +52,7 @@ void bootmagic(void) debug_config.enable = !debug_config.enable; } } - eeconfig_write_debug(debug_config.raw); + eeconfig_update_debug(debug_config.raw); /* keymap config */ keymap_config.raw = eeconfig_read_keymap(); @@ -80,7 +80,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) { keymap_config.nkro = !keymap_config.nkro; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); #ifdef NKRO_ENABLE keyboard_nkro = keymap_config.nkro; @@ -97,7 +97,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_6)) { default_layer |= (1<<6); } if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_7)) { default_layer |= (1<<7); } if (default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set((uint32_t)default_layer); } else { default_layer = eeconfig_read_default_layer(); diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index ddefca1347..ca47e0d2fd 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -60,22 +60,22 @@ void eeconfig_enable(void); void eeconfig_disable(void); uint8_t eeconfig_read_debug(void); -void eeconfig_write_debug(uint8_t val); +void eeconfig_update_debug(uint8_t val); uint8_t eeconfig_read_default_layer(void); -void eeconfig_write_default_layer(uint8_t val); +void eeconfig_update_default_layer(uint8_t val); uint8_t eeconfig_read_keymap(void); -void eeconfig_write_keymap(uint8_t val); +void eeconfig_update_keymap(uint8_t val); #ifdef BACKLIGHT_ENABLE uint8_t eeconfig_read_backlight(void); -void eeconfig_write_backlight(uint8_t val); +void eeconfig_update_backlight(uint8_t val); #endif #ifdef AUDIO_ENABLE uint8_t eeconfig_read_audio(void); -void eeconfig_write_audio(uint8_t val); +void eeconfig_update_audio(uint8_t val); #endif #endif diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c index f66a483e6e..58bb338927 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c @@ -327,7 +327,7 @@ static void ReadWriteMemoryBlock(const uint8_t Command) else { /* Write the next EEPROM byte from the endpoint */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address counter after use */ CurrAddress += 2; @@ -581,7 +581,7 @@ static void CDC_Task(void) else if (Command == AVR109_COMMAND_WriteEEPROM) { /* Read the byte from the endpoint and write it to the EEPROM */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address after use */ CurrAddress += 2; diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c index 0385bfc497..00e673268a 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c @@ -370,7 +370,7 @@ void EVENT_USB_Device_ControlRequest(void) } /* Read the byte from the USB interface and write to to the EEPROM */ - eeprom_write_byte((uint8_t*)StartAddr, Endpoint_Read_8()); + eeprom_update_byte((uint8_t*)StartAddr, Endpoint_Read_8()); /* Adjust counters */ StartAddr++; |