From daa8a008db52ca5c4985db57075a55a9732721a1 Mon Sep 17 00:00:00 2001 From: Gabriel Diegel Date: Tue, 15 Dec 2015 21:36:01 +0100 Subject: Fix typos and add comments, swap plus with equals, swap pipe with backslash, move slash, change cursor keys to make the classic shape --- keyboard/planck/keymaps/keymap_gabriel.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/keymap_gabriel.c index 3620c75a75..b933d7d110 100644 --- a/keyboard/planck/keymaps/keymap_gabriel.c +++ b/keyboard/planck/keymaps/keymap_gabriel.c @@ -9,9 +9,9 @@ #define _RS 2 #define _FN 3 -// This a slightly adapted 'default' keymap. I like the position of 'esc' and 'tab' better this way. -// I also git rid of the backlighting control key and the dvorak and colemak layers. I added a 'fn' -// layer that makes the 'bspc' a forward delete (like on OSX). +// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position +// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and +// colemak layers. I added a 'fn' layer that makes the 'bspc' a forward delete (like on OSX). const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* MIT Layout (QWERTY layer) * @@ -20,23 +20,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------| * | tab | a | s | d | f | g | h | j | k | l | ; | ' | * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |shift| z | x | c | v | b | n | m | , | . | up |enter| * |-----------------------------------------------------------------------| - * | fn | ctl | alt | cmd |lower| spc |raise| left| down| up |right| + * | fn | ctl | alt | cmd |lower| spc |raise| / | left|down |right| * `-----------------------------------------------------------------------' */ [_QW] = { /* QWERTY */ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_TAB, 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 }, - {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} }, /* MIT Layout (Raised layer) * * ,-----------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | * |-----------------------------------------------------------------------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | * |-----------------------------------------------------------------------| @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = { /* RAISE */ {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | * |-----------------------------------------------------------------------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | * |-----------------------------------------------------------------------| @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LW] = { /* LOWER */ {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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, -- cgit v1.2.3 From d7d092de5f6d09d6d56d7dc0dea5f63d1d212b58 Mon Sep 17 00:00:00 2001 From: Gabriel Diegel Date: Sun, 20 Dec 2015 23:05:15 +0100 Subject: Use planck-style arrow keys --- keyboard/planck/keymaps/keymap_gabriel.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/keymap_gabriel.c index b933d7d110..b84ecd76c3 100644 --- a/keyboard/planck/keymaps/keymap_gabriel.c +++ b/keyboard/planck/keymaps/keymap_gabriel.c @@ -20,16 +20,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------| * | tab | a | s | d | f | g | h | j | k | l | ; | ' | * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | up |enter| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| * |-----------------------------------------------------------------------| - * | fn | ctl | alt | cmd |lower| spc |raise| / | left|down |right| + * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| * `-----------------------------------------------------------------------' */ [_QW] = { /* QWERTY */ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_TAB, 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 }, - {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* MIT Layout (Raised layer) * -- cgit v1.2.3 From 2b1a2568255a18342e8c7a3e8ffa45080add5269 Mon Sep 17 00:00:00 2001 From: chwilk Date: Sun, 20 Dec 2015 22:09:26 -0600 Subject: Added keymap variant to approximate Kin Adv --- keyboard/ergodox_ez/keymaps/keymap_kastyle.c | 184 +++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kastyle.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_kastyle.c b/keyboard/ergodox_ez/keymaps/keymap_kastyle.c new file mode 100644 index 0000000000..0957ec4683 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kastyle.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 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| 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 + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_LCTL, 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), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_BSPC,KC_DEL,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),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_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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; + } + +}; -- cgit v1.2.3 From 381ca294fed572fb97d063d198f99d9c22804dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Fri, 25 Dec 2015 00:00:30 +0100 Subject: minor fixes, added backtick to left thumbblock --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 8 +- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 2442 ++++++++++++------------- 2 files changed, 1225 insertions(+), 1225 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 0a0ae75fcb..b1d773625f 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | Date: Wed, 30 Dec 2015 00:19:55 -0800 Subject: added dvorak keymap and layout picture --- keyboard/ergodox_ez/keymaps/keymap_dvorak.c | 184 ++++++++++++++++++++++++++ keyboard/ergodox_ez/keymaps/keymap_dvorak.png | Bin 0 -> 87314 bytes 2 files changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_dvorak.c create mode 100644 keyboard/ergodox_ez/keymaps/keymap_dvorak.png diff --git a/keyboard/ergodox_ez/keymaps/keymap_dvorak.c b/keyboard/ergodox_ez/keymaps/keymap_dvorak.c new file mode 100644 index 0000000000..53934ea345 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_dvorak.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 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| 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_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, 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_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), 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/keymap_dvorak.png b/keyboard/ergodox_ez/keymaps/keymap_dvorak.png new file mode 100644 index 0000000000..cb83163095 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/keymap_dvorak.png differ -- cgit v1.2.3 From f1dea975d2bcafaebbdbc3a6520b538adb4ce7d7 Mon Sep 17 00:00:00 2001 From: MattLeBeauViewpoint Date: Thu, 31 Dec 2015 10:16:51 -0800 Subject: Small change to filename spelling in README Edited filename to remove plural case in example so that prefix is correctly parsed in step 6. --- keyboard/ergodox_ez/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/README.md b/keyboard/ergodox_ez/README.md index 8085e5cd87..27568323b9 100644 --- a/keyboard/ergodox_ez/README.md +++ b/keyboard/ergodox_ez/README.md @@ -16,7 +16,7 @@ This requires a little bit of familiarity with coding. 1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :) 2. Clone the repository (download it) 3. Set up a build environment as per https://www.pjrc.com/teensy/gcc.html -4. Copy `keymaps/keymap_default.c` into `keymaps/keymaps_your_name.c` (for example, `keymaps/keymap_german.c`) +4. Copy `keymaps/keymap_default.c` into `keymaps/keymap_your_name.c` (for example, `keymaps/keymap_german.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. 6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. Note that you must omit the `keymap_` prefix for your filename in this command -- 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. -- cgit v1.2.3 From 1cdcbc9865bd9628f0da4f1f947dd56d100cc327 Mon Sep 17 00:00:00 2001 From: Gabriel Diegel Date: Sat, 2 Jan 2016 10:31:47 +0100 Subject: Fix incorrect number of rows on fn layer. Add additional navigation keys to fn layer --- keyboard/planck/keymaps/keymap_gabriel.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/keymap_gabriel.c index b84ecd76c3..805484488b 100644 --- a/keyboard/planck/keymaps/keymap_gabriel.c +++ b/keyboard/planck/keymaps/keymap_gabriel.c @@ -11,7 +11,7 @@ // This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position // of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and -// colemak layers. I added a 'fn' layer that makes the 'bspc' a forward delete (like on OSX). +// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* MIT Layout (QWERTY layer) * @@ -76,15 +76,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------| * | | | | | | | | | | | | | * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | + * | | | | | | | |home |pgdn |pgup | end | * `-----------------------------------------------------------------------' */ [_FN] = { /* FUNCTION */ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGUP, KC_END} } }; -- cgit v1.2.3 From 7ba06c9e0dbc17cc46794b9961ff9290694d93df Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sat, 19 Dec 2015 22:18:58 +0000 Subject: Dave's custom keymap This moves the keys closer to a traditional layout with some redundancy around the middle to compensate for fast non-traditional typists like myself who tend to wander from the home row a fair bit. Navigation keys are provided in layer 2 (accessed by left thumb button), programming symbols and classic numeric keypad in layer 1 (accessed by right thumb button). Permanent layer switching is provided with a smaller thumb button. Ctrl provided in place of caps lock (because no-one needs caps/num lock), space, backspace, enter, shift all in traditional positions with layer 1 providing things like equals, tilde and apostrophe (an attempt to re-use existing muscle memory). LEDs are pimped to the point of being silly (fading in/out on layer switch, rolling on reboot ... because I can). Power and reset keys provided on left thumb pad in layer 2. No meh or hyper as I haven't found a burning need for them yet. --- .gitignore | 1 + keyboard/ergodox_ez/ergodox_ez.c | 35 ++++-- keyboard/ergodox_ez/ergodox_ez.h | 9 +- keyboard/ergodox_ez/keymaps/keymap_dave.c | 183 ++++++++++++++++++++++++++++++ 4 files changed, 217 insertions(+), 11 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_dave.c diff --git a/.gitignore b/.gitignore index f3f46872a0..bae2658b00 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.lst *.map *.sym +*.swp tags *~ build/ diff --git a/keyboard/ergodox_ez/ergodox_ez.c b/keyboard/ergodox_ez/ergodox_ez.c index 78e956a042..d0eaf33923 100644 --- a/keyboard/ergodox_ez/ergodox_ez.c +++ b/keyboard/ergodox_ez/ergodox_ez.c @@ -6,12 +6,12 @@ uint8_t mcp23018_status = 0x20; __attribute__ ((weak)) void * matrix_init_user(void) { - + return NULL; }; __attribute__ ((weak)) void * matrix_scan_user(void) { - + return NULL; }; void * matrix_init_kb(void) { @@ -34,16 +34,20 @@ void * matrix_init_kb(void) { ergodox_blink_all_leds(); - if (matrix_init_user) { - (*matrix_init_user)(); - } + if (matrix_init_user) { + (*matrix_init_user)(); + } + + return NULL; }; void * matrix_scan_kb(void) { - if (matrix_scan_user) { - (*matrix_scan_user)(); - } + if (matrix_scan_user) { + (*matrix_scan_user)(); + } + + return NULL; }; @@ -51,8 +55,19 @@ void ergodox_blink_all_leds(void) { ergodox_led_all_off(); ergodox_led_all_set(LED_BRIGHTNESS_HI); - ergodox_led_all_on(); - _delay_ms(333); + ergodox_right_led_1_on(); + _delay_ms(50); + ergodox_right_led_2_on(); + _delay_ms(50); + ergodox_right_led_3_on(); + _delay_ms(50); + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); + //ergodox_led_all_on(); + //_delay_ms(333); ergodox_led_all_off(); } diff --git a/keyboard/ergodox_ez/ergodox_ez.h b/keyboard/ergodox_ez/ergodox_ez.h index 3989a2f3ac..aceb7ed9c3 100644 --- a/keyboard/ergodox_ez/ergodox_ez.h +++ b/keyboard/ergodox_ez/ergodox_ez.h @@ -34,7 +34,7 @@ void ergodox_blink_all_leds(void); uint8_t init_mcp23018(void); uint8_t ergodox_left_leds_update(void); -#define LED_BRIGHTNESS_LO 31 +#define LED_BRIGHTNESS_LO 15 #define LED_BRIGHTNESS_HI 255 @@ -42,11 +42,13 @@ inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } inline void ergodox_led_all_on(void) { @@ -67,6 +69,11 @@ inline void ergodox_led_all_off(void) inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void ergodox_right_led_set(uint8_t led, uint8_t n) { + (led == 1) ? (OCR1A = n) : + (led == 2) ? (OCR1B = n) : + (OCR1C = n); +} inline void ergodox_led_all_set(uint8_t n) { diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.c b/keyboard/ergodox_ez/keymaps/keymap_dave.c new file mode 100644 index 0000000000..b53aed9222 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_dave.c @@ -0,0 +1,183 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define PROG 1 // symbols +#define NAVI 2 // navigation keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | BkSpce | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Y | | G | Y | U | I | O | P | Enter | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |`/Ctrl| \ | | | LAlt | | RAlt | | [ | ] |'/Ctrl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | PrtS | Apps | | Paus | CtAl | + * ,------+------+------| |------+------+------. + * | | | L1 | | L1 | | | + * | Spce | ~L2 +------| |------+ ~L1 | Spce | + * | | | LGui | | RGui | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, 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_Y, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, + CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, + KC_PSCREEN, KC_APP, + TO(PROG, ON_PRESS), + KC_SPC, MO(NAVI), KC_LGUI, + // right hand + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_RALT,KC_NO, KC_LBRC,KC_RBRC, CTL_T(KC_QUOT), + KC_PAUS, MT(0x5, KC_NO), + TO(PROG, ON_PRESS), + KC_RGUI, MO(PROG), KC_SPC + ), + +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | K/ | K* | K- | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | K0 | K0 | K. | K= | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L2 | | L2 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[PROG] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, + TO(NAVI, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NUHS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_QUOT, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, + KC_TRNS, KC_TRNS, + TO(NAVI, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Navigation and system keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Home | Up | End | Ins | PgUp | | | | | | Ins | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Left | Down | Rght | Del | PgDn |------| |------| | Back | Del | Fwrd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Lclk | MsUp | Rclk | | | | | | | Prev | Play | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Powr | Log | | | | + * ,------|------|------| |------+------+------. + * | | | L0 | | L0 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NAVI] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN, + KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_PWR, LCTL(LALT(KC_DELT)), + TO(BASE, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_WBAK, KC_DELT, KC_WFWD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + TO(BASE, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + //[1] = ACTION_LAYER_TAP_TOGGLE(PROG), // FN1 - Momentary Layer 1 (Symbols) + //[2] = ACTION_LAYER_TAP_TOGGLE(NAVI) // FN2 - Momentary Layer 2 (Navigation) +}; + +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) { + return NULL; +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + static uint8_t leds[4]; // Yes, I'm wasting a byte. Sue me. + uint8_t led; + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + + for (led = 1; led <= 3; ++led) { + leds[led] += (layer == led) ? + (leds[led] < 255 ? 1 : 0): + (leds[led] > 0 ? -1 : 0); + if (leds[led]) { + ergodox_right_led_on(led); + ergodox_right_led_set(led, leds[led]); + } + else { + ergodox_right_led_off(led); + } + } + + return NULL; +}; -- cgit v1.2.3 From dcc9948fae588daa0649a94ae342a4b13e631eba Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sat, 2 Jan 2016 18:23:49 +0000 Subject: Added comments to LED stuff and included .hex file --- keyboard/ergodox_ez/keymaps/keymap_dave.c | 14 +- keyboard/ergodox_ez/keymaps/keymap_dave.hex | 1483 +++++++++++++++++++++++++++ 2 files changed, 1496 insertions(+), 1 deletion(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_dave.hex diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.c b/keyboard/ergodox_ez/keymaps/keymap_dave.c index b53aed9222..a0c74ad805 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_dave.c +++ b/keyboard/ergodox_ez/keymaps/keymap_dave.c @@ -160,16 +160,28 @@ void * matrix_init_user(void) { // Runs constantly in the background, in a loop. void * matrix_scan_user(void) { - static uint8_t leds[4]; // Yes, I'm wasting a byte. Sue me. + /* leds is a static array holding the current brightness of each of the + * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and + * -1s in the code below, and because wasting a byte really doesn't matter + * that much (no, it *doesn't*, stop whinging!). Note that because it's + * static it'll maintain state across invocations of this routine. + */ + static uint8_t leds[4]; uint8_t led; uint8_t layer = biton32(layer_state); ergodox_board_led_off(); + /* Loop over each LED/layer */ for (led = 1; led <= 3; ++led) { + /* If the current layer matches the current LED, increment its + * brightness by 1 up to a maximum of 255. If the current layer doesn't + * match, decrement its brightness by 1 down to a minimum of zero. + */ leds[led] += (layer == led) ? (leds[led] < 255 ? 1 : 0): (leds[led] > 0 ? -1 : 0); + /* Set LED state according to the new brightness */ if (leds[led]) { ergodox_right_led_on(led); ergodox_right_led_set(led, leds[led]); diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.hex b/keyboard/ergodox_ez/keymaps/keymap_dave.hex new file mode 100644 index 0000000000..767a9ca117 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_dave.hex @@ -0,0 +1,1483 @@ +:100000000C94FE060C9442070C9442070C94420791 +:100010000C9442070C9442070C9442070C9442073C +:100020000C9442070C9442070C94B2120C94841363 +:100030000C9442070C9442070C9442070C9442071C +:100040000C9442070C945C2C0C9442070C944207CD +:100050000C9442070C9463220C9442070C944207C0 +:100060000C9442070C9442070C9442070C944207EC +:100070000C9442070C9442070C9442070C944207DC +:100080000C9442070C9442070C9442070C944207CC +:100090000C9442070C9442070C9442070C944207BC +:1000A0000C9442070C9442070C944207E9130B147A +:1000B000F6140B14F6144D147014F614C514D81459 +:1000C00026182618541854189718D318D41AD41A66 +:1000D000EB18D41AE219E219AE1AD41AD41AC21AB9 +:1000E00029002B00E000E100357100001E00140023 +:1000F00004001D006400E3001F001A0016001B002E +:1001000000000252200008000700060000002C003A +:100110002100150009001900E2001151220017000A +:100120000A0005000000460023001C0000000B0030 +:100130000000650023000A000000050000004800E0 +:1001400024001C000B0011000000007525001800A1 +:100150000D001000E600115126000C000E003600C4 +:1001600000002C00270012000F0037002F00015262 +:100170002D001300330038003000E7002A0028006B +:100180002800E500347100000100010001000100B9 +:100190000100000001001E022002220201000100F5 +:1001A00001001F02210223020100010001002F02B1 +:1001B00026022F000100010001003002270230005A +:1001C000010012510100310235003502000001002A +:1001D0000100010000000100000001000100010019 +:1001E0000000010000000100010001000100010009 +:1001F0000000010000005F005C0059006200125125 +:10020000540060005D005A0062000100550061006A +:100210005E005B0063000100560057005700580065 +:10022000580001002E0032003400010001000000DF +:100230000100010001000100010000003A004A0035 +:100240005000F400F20001003B0052005100F000A9 +:10025000F10001003C004D004F00F500F3000100EB +:100260003D0049004C000100010010513E004B00D0 +:100270004E0001000000A5003F0001000000010049 +:1002800000004C05400001000000010000000100DA +:1002900041000100010001000000010042000100D6 +:1002A000B600AC00AA001051430049004C00AE005B +:1002B000A800010044000100B700AB00A900010044 +:1002C00045000100010001000100010001000100E2 +:1002D00001000100010000000A00253031366200F3 +:1002E0003A200025303258000A722F632030313214 +:1002F000333435363738394142434445460A000ADB +:10030000002530325800626F756E6365213A200017 +:100310006C656674207369646520617474616368D8 +:1003200065640A006C6566742073696465206E6F8D +:100330007420726573706F6E64696E670A00747200 +:1003400079696E6720746F207265736574206D63C0 +:100350007032333031380A000A44454255473A205A +:10036000656E61626C65642E0A005B735D004B65AF +:1003700079626F6172642073746172742E0A005B1B +:10038000575D005B535D005B525D005B445D005B4D +:10039000435D0016034500720067006F0044006F64 +:1003A000007800200045005A000000160345007246 +:1003B0000067006F0044006F007800200045005A7D +:1003C0000000000403090409028D00050100A0FAE1 +:1003D00009040000010301010009211101000122AB +:1003E0003F000705810308000A0904010001030119 +:1003F0000200092111010001224D000705820308B6 +:10040000000A090402000103000000092111010093 +:10041000012236000705830308000A0904030002CD +:1004200003000000092111010001222000070584BA +:100430000320000107050403200001090404000152 +:100440000300000009211101000122390007058580 +:10045000031000011201100100000008EDFE071357 +:1004600001000102000105010906A101050719E0CB +:1004700029E7150025019508750181020508190174 +:1004800029059505750191029501750391010507EF +:100490001900297715002501957875018102C0069C +:1004A00031FF0974A1010975150025FF9520750814 +:1004B00081020976150025FF952075089102C00577 +:1004C000010980A101850216010026B7001A01006A +:1004D0002AB700751095018100C0050C0901A10122 +:1004E0008503160100269C021A01002A9C02751041 +:1004F00095018100C005010902A1010901A10005C2 +:100500000919012905150025019505750181029537 +:1005100001750381010501093009311581257F9598 +:10052000027508810609381581257F9501750881B6 +:1005300006050C0A38021581257F9501750881068C +:10054000C0C005010906A101050719E029E715004A +:10055000250195087501810295017508810105083D +:100560001901290595057501910295017503910100 +:100570000507190029FF150025FF9506750881005C +:10058000C00A002530325820006B6579626F6172B5 +:10059000645F7265706F72743A20000A0025303211 +:1005A00058006B6579626F6172645F7365745F6C2C +:1005B00065643A200064656C5F6B65795F6269749D +:1005C0003A2063616E27742064656C3A20253032CE +:1005D000580A006164645F6B65795F6269743A20F0 +:1005E00063616E2774206164643A20253032580AB2 +:1005F00000646F6E652E0A00626F6F676D616769D8 +:1006000063207363616E3A202E2E2E2000290A008B +:100610002575002F002575005D2800256400200049 +:10062000256400200025640020002564007C00254E +:10063000303258006D6F7573656B6579205B62743D +:100640006E7C782079207620685D287265702F6135 +:10065000636C293A205B006D6B5F776865656C5F42 +:1006600074696D655F746F5F6D6178203D202564EE +:100670000A006D6B5F776865656C5F6D61785F73AD +:1006800070656564203D2025640A006D6B5F7469A8 +:100690006D655F746F5F6D6178203D2025640A0091 +:1006A0006D6B5F6D61785F7370656564203D2025BB +:1006B000640A006D6B5F696E74657276616C203DD3 +:1006C0002025640A006D6B5F64656C6179203D20B4 +:1006D00025640A006D6B5F776865656C5F74696D92 +:1006E000655F746F5F6D6178203D2025640A006D41 +:1006F0006B5F776865656C5F6D61785F737065656A +:1007000064203D2025640A006D6B5F74696D655F30 +:10071000746F5F6D6178203D2025640A006D6B5F0A +:100720006D61785F7370656564203D2025640A0003 +:100730006D6B5F696E74657276616C203D20256417 +:100740000A006D6B5F64656C6179203D2025640A49 +:10075000000A00257500363A20776865656C5F747D +:10076000696D655F746F5F6D61783A20000A0025DE +:100770007500353A20776865656C5F6D61785F73E9 +:10078000706565643A20000A00257500343A2074CB +:10079000696D655F746F5F6D61783A20000A0025AE +:1007A0007500333A206D61785F73706565643A2037 +:1007B000000A00257500323A20696E746572766110 +:1007C0006C286D73293A20000A00257500313A2003 +:1007D00064656C6179282A31306D73293A20000AEA +:1007E000092D2056616C756573202D0A004D3E0061 +:1007F0004D25643E20003F0073657420646566618A +:10080000756C740A00433E20007768657265206449 +:10081000656C74613A20637572736F723D25642C48 +:1008200020776865656C3D25640A536565206874AA +:1008300074703A2F2F656E2E77696B6970656469E5 +:10084000612E6F72672F77696B692F4D6F757365B6 +:100850005F6B6579730A000A092D204D6F7573650A +:100860006B6579202D0A4553432F713A09717569DB +:10087000740A313A0964656C6179282A31306D73E4 +:10088000290A323A09696E74657276616C286D7353 +:10089000290A333A096D61785F73706565640A34BB +:1008A0003A0974696D655F746F5F6D61780A353AF6 +:1008B00009776865656C5F6D61785F737065656405 +:1008C0000A363A09776865656C5F74696D655F74AF +:1008D0006F5F6D61780A0A703A097072696E7420F0 +:1008E00076616C7565730A643A0973657420646592 +:1008F0006661756C74730A75703A092B310A646FFE +:10090000776E3A092D310A706775703A092B3130CC +:100910000A7067646F776E3A092D31300A0A737076 +:10092000656564203D2064656C7461202A206D61DA +:10093000785F7370656564202A2028726570656130 +:1009400074202F2074696D655F746F5F6D61782905 +:100950000A003F004D3E2000433E20004C25640A23 +:10096000000A092D20436F6E736F6C65202D0A45B8 +:1009700053432F713A09717569740A6D3A096D6FA5 +:100980007573656B65790A000A092D204D616769E9 +:1009900063202D0A643A0964656275670A783A092A +:1009A0006465627567206D61747269780A6B3A09D3 +:1009B0006465627567206B6579626F6172640A6D48 +:1009C0003A096465627567206D6F7573650A763ADA +:1009D0000976657273696F6E0A733A09737461748C +:1009E00075730A633A09636F6E736F6C65206D6F80 +:1009F00064650A302D343A096C61796572302D34A2 +:100A0000284631302D4634290A506175733A0962FF +:100A10006F6F746C6F616465720A653A0965657021 +:100A2000726F6D0A6E3A094E4B524F0A7A3A097349 +:100A30006C656570204C454420746573740A000A27 +:100A4000002575002E6E6B726F3A20000A00257526 +:100A5000002E737761705F6261636B736C617368A2 +:100A60005F6261636B73706163653A20000A002501 +:100A700075002E737761705F67726176655F65736D +:100A8000633A20000A002575002E6E6F5F67756956 +:100A90003A20000A002575002E737761705F72613D +:100AA0006C745F726775693A20000A002575002E24 +:100AB000737761705F6C616C745F6C6775693A2005 +:100AC000000A002575002E636170736C6F636B5FA5 +:100AD000746F5F636F6E74726F6C3A20000A00254A +:100AE00075002E737761705F636F6E74726F6C5FE9 +:100AF000636170736C6F636B3A20000A00253032BB +:100B000058006B65796D61705F636F6E6669672E03 +:100B10007261773A20000A002575002E6D6F75739B +:100B2000653A20000A002575002E6B6579626F61B9 +:100B300072643A20000A002575002E6D6174726996 +:100B4000783A20000A002575002E656E61626C659A +:100B50003A20000A00253032580064656275675FEC +:100B6000636F6E6669672E7261773A20000A00250E +:100B7000750064656661756C745F6C617965723A65 +:100B800020003F004E4B524F3A206F66660A004EDF +:100B90004B524F3A206F6E0A0074696D65725F6345 +:100BA0006F756E743A202530346C580A006B657985 +:100BB000626F6172645F6E6B726F3A2025580A0033 +:100BC0006B6579626F6172645F69646C653A202558 +:100BD000580A006B6579626F6172645F70726F743E +:100BE0006F636F6C3A2025580A00686F73745F6BEF +:100BF0006579626F6172645F6C65647328293A205D +:100C000025580A000A092D20537461747573202D2C +:100C10000A004743433A20342E382E3220415652A0 +:100C20002D4C4942433A20312E382E302041565225 +:100C30005F415243483A20617672350A004F505462 +:100C4000494F4E533A204C55464120424F4F544D48 +:100C500041474943204D4F5553454B455920455831 +:100C60005452414B455920434F4E534F4C4520431E +:100C70004F4D4D414E44204E4B524F203531320A9C +:100C8000004255494C443A203135316565303420B5 +:100C90002832303A35393A343720446563203230CF +:100CA0002032303135290A005649443A20307846FE +:100CB000454544284572676F446F7820455A29207E +:100CC0005049443A20307831333037284572676FC5 +:100CD000446F7820455A29205645523A20307830C2 +:100CE0003030310A00444553433A20742E6D2E6B48 +:100CF0002E206B6579626F617264206669726D7710 +:100D000061726520666F72204572676F646F780A42 +:100D1000000A092D2056657273696F6E202D0A0036 +:100D20000A6D6F7573653A206F66660A000A6D6F0B +:100D30007573653A206F6E0A000A6B6579626F61A0 +:100D400072643A206F66660A000A6B6579626F61A9 +:100D500072643A206F6E0A000A6D61747269783AA3 +:100D6000206F66660A000A6D61747269783A206FB6 +:100D70006E0A000A64656275673A206F6E0A000A9F +:100D800064656275673A206F66660A000A0A626FD8 +:100D90006F746C6F616465722E2E2E2000433E20AE +:100DA000006565636F6E6669673A0A00536C656536 +:100DB00070204C454420746573740A0000000000E4 +:100DC00000000000000000010204060A0F17202C9A +:100DD0003A4A5D71879DB3C7DAE9F5FCFFFCF5E996 +:100DE000DAC7B39D87715D4A3A2C20170F0A0604B3 +:100DF00002010000000000000000000011241FBEDE +:100E0000CFEFDAE0DEBFCDBF04B603FE24C0809191 +:100E1000FD019091FE01A091FF01B0910002873089 +:100E2000904BA740B04BB9F41092FD011092FE0117 +:100E30001092FF011092000214BE84B7877F84BF16 +:100E400088E10FB6F89480936000109260000FBEA6 +:100E5000E0E0FFE3099511E0A0E0B1E0E4E5FCE5A6 +:100E600002C005900D92AA33B107D9F711E0AAE3A9 +:100E7000B1E001C01D92AD3FB107E1F70E94EC0F58 +:100E80000C94282E0C940000FF93EF93E0913A010C +:100E9000F0913B01309709F00995EF91FF9108958A +:100EA000FC018591803011F0EFDFFBCF0895FF2723 +:100EB000E0E230E247FF0CC0419597FF09C0EDE248 +:100EC0006095709580959095611D711D811D911D96 +:100ED00027FF02C0219530E350E2AA27660F771F53 +:100EE000881F991FAA1FA41710F0A41B63955A9579 +:100EF000A9F7AA3008F0A95FA05DAF93F39561153B +:100F000071058105910541F7ED3211F4EF93F395E9 +:100F1000F21718F43F93F395FBCF8F91B5DFFA9555 +:100F2000E1F70895E991F9918591803021F08532BA +:100F300019F0AADFF9CF089520E0E89455915532D1 +:100F4000C1F3503311F4689455915A3348F4505317 +:100F500090F3220F022E220F220F200D250FF4CF27 +:100F60000EF4219589919991533619F3533729F14C +:100F7000533559F1BC0188279927E8945C3621F450 +:100F80008991999168945591543639F446EF7EF0E1 +:100F900077FF0DC08FEF9FEF0AC055374AE039F059 +:100FA000583540E121F0523642E009F00895FF93B0 +:100FB000EF937DDFEF91FF91B7CFFF93EF93FC01AC +:100FC00081918030B9F360DFFBCFFF93EF9368DF4F +:100FD000F1CFDF93CF93CDB7DEB72596A3DFCF91C7 +:100FE000DF91089561110BC0FC018281882321F0FB +:100FF00085EE0E94BA1603C085EE0E94821780E03B +:1010000090E0089580E090E00895EF92FF921F93A2 +:10101000CF93DF936091C0017091C1018091C201B3 +:101020009091C3010E94672156985E9821E030E0BC +:10103000682F70E0EB01C45CDE4FE1E0F0E0122FBE +:10104000821307C0AB019881A1E09F3F61F4A0E04B +:101050000AC0A901D901A45CBE4F9C91A1E09111E5 +:1010600001C0A0E0A1959A0FDA01A45CBE4F9C9349 +:101070004C5F5F4F992309F194B17F0102C0EE0CE0 +:10108000FF1C4A95E2F79E2994B995B19E2995B91E +:101090004C9150E0113029F450938900409388001E +:1010A0001AC0123029F450938B0040938A0013C069 +:1010B00050938D0040938C000EC094B1DF0102C0AC +:1010C000AA0FBB1F4A95E2F7AD014095942394B94E +:1010D00095B1942395B92F5F3F4F2430310509F026 +:1010E000AECF80E090E0DF91CF911F91FF90EF9025 +:1010F000089585E098E0892B11F00E94050880E0B2 +:1011000090E0089556985E9825982D9826982E98E8 +:1011100027982F988FEF90E0909389008093880014 +:1011200090938B0080938A0090938D0080938C0025 +:10113000259A2D9A2FEF80E792E021508040904031 +:10114000E1F700C00000269A2E9A2FEF80E792E088 +:10115000215080409040E1F700C00000279A2F9A6C +:101160002FEF80E792E0215080409040E1F700C0EF +:10117000000025982D982FEF80E792E021508040C5 +:101180009040E1F700C0000026982E982FEF80E7EE +:1011900092E0215080409040E1F700C00000279885 +:1011A0002F9856985E9825982D9826982E982798CF +:1011B0002F98089589EA8093800089E080938100C8 +:1011C00024982C983F988AB18F748AB96E98479A60 +:1011D0008BB1806B8BB9769A0E94820882E098E08E +:1011E000892B11F00E94020880E090E0089580E2CF +:1011F000809300018091400181110EC00E94460938 +:1012000081E0809340012FEF83ED90E321508040F7 +:101210009040E1F700C0000080E40E944C098093F8 +:10122000000181112EC00E94760980930001811176 +:1012300028C00E94760980930001811122C08FE3AB +:101240000E9476098093000181111BC00E946E09E3 +:1012500080E40E944C0980930001811112C08CE04F +:101260000E9476098093000181110BC00E947609CB +:1012700080930001811105C08FE30E94760980935D +:1012800000010E946E098091000108951092B9003A +:101290008AE08093B800089594EA9093BC009091FE +:1012A000BC0097FFFCCF9091B900987F983021F057 +:1012B000903111F081E008958093BB0084E8809321 +:1012C000BC008091BC0087FFFCCF8091B900887F73 +:1012D000883111F0803471F780E0089584E98093BB +:1012E000BC008091BC0084FDFCCF08958093BB00BE +:1012F00084E88093BC008091BC0087FFFCCF909174 +:10130000B900987F81E0983209F480E0089584E87C +:101310008093BC008091BC0087FFFCCF8091BB0014 +:10132000089580910001811115C080E40E944C094C +:101330008093000181110CC082E10E9476098093A4 +:101340000001811105C08FEF0E9476098093000192 +:101350000E946E0984B1807F84B985B1807F85B990 +:101360008AB1837F8AB98BB1837F8BB93E984698C7 +:1013700008950E94F708809300010E94910980B3AC +:101380008C7080BB81B3836F81BBE0E5F1E0A2E4A8 +:10139000B1E011921D9281E0EE35F807D1F78AEDA8 +:1013A00098E0892B11F00C94DA0808959F92AF927F +:1013B000BF92CF92DF92EF92FF920F931F93CF9342 +:1013C000DF93809100018823E1F0809141018F5FDC +:1013D00080934101811115C08EE393E00E94500774 +:1013E0000E94F70880930001882329F084E293E0AB +:1013F0000E94500706C080E193E00E9450070E94BF +:10140000820802E411E0C0E0D0E0BB24B39482E0A3 +:10141000A82ECC24C394D12C21E0E22E23E0F22E7E +:10142000C73000F580910001811162C080E40E9404 +:101430004C0980930001811112C082E10E9476095B +:101440008093000181110BC0C6010C2E01C0880FD2 +:101450000A94EAF780950E947609809300010E9421 +:101460006E0946C0CA30A1F028F4C83059F0C9301E +:1014700061F005C0CC3089F070F0CD3089F0209A51 +:10148000289810C0219A29980DC0229A2A980AC03B +:10149000239A2B9807C0529A01C0539A5B9802C0B6 +:1014A0003E9A4698E0EAEA95F1F78FB1799985C0BE +:1014B00092E081708B25892B7C9B02C090E001C05B +:1014C00094E0892B7D9B02C090E001C098E0892BBD +:1014D0007E9B02C090E001C090E1892B9FB1909566 +:1014E000991F9927991F9295990F907E892B10C06B +:1014F00080910001811176C080E40E944C098093A4 +:101500000001882309F45BC0912C0E946E09892D8B +:10151000F8019081981739F1808380910101882327 +:1015200001F18091DB0180FF04C086E093E00E941E +:1015300050078091DB0180FF0CC0809101011F9258 +:101540008F93FF92EF920E94E9070F900F900F90F8 +:101550000F908091DB0180FF04C08FEF92E00E942A +:101560005007A09201010E94910921960F5F1F4F21 +:10157000CE30D10509F054CF809101018823B1F01C +:10158000815080930101882339F08FE99FE0019712 +:10159000F1F700C000000AC0A0E5B1E0E2E4F1E02C +:1015A00081918D9391E0E035F907D1F789E798E0D3 +:1015B000892BD1F00E94790817C090E07ACF83E19F +:1015C0000E9476098093000181119ECF81E40E94E0 +:1015D0004C0980930001811197CF0E948709982EB2 +:1015E000909493CF80E094CF81E0DF91CF911F91D1 +:1015F0000F91FF90EF90DF90CF90BF90AF909F90B2 +:101600000895E82FF0E0E05BFE4F80810895CF92CF +:10161000DF92EF92FF920F931F93CF93DF9388EEA9 +:1016200092E00E94500730E5E32E31E0F32EC0E057 +:10163000D0E043EEC42E42E0D42E0AED12E0DF9358 +:10164000CF93DF92CF920E94E90780EE92E00E9452 +:101650005007F70181917F0190E00E94CC219F9378 +:101660008F931F930F930E94E90788ED92E00E94E9 +:10167000500721968DB79EB708960FB6F8949EBF77 +:101680000FBE8DBFCE30D105D1F6DF91CF911F9126 +:101690000F91FF90EF90DF90CF9008958B3B9105D5 +:1016A00078F4883A910540F5853A9105D0F4843074 +:1016B000910508F0B1C08130910509F4ADC06BC04F +:1016C000803E910508F467C0883E910508F4A4C0E7 +:1016D0009C01205F31092031310508F05CC0906524 +:1016E0000895853A910509F459C0863A910509F49F +:1016F00058C083E890E40895883A910509F454C0ED +:10170000893A910509F453C08A3A910509F452C007 +:101710008B3A910509F451C08C3A910509F450C0F7 +:101720008D3A910509F44FC0803B910509F44EC0F4 +:101730008E3A910509F44DC08F3A910509F44CC0D9 +:10174000813B910509F44BC0823B910509F44AC0E5 +:10175000833B910509F449C0843B910509F448C0D5 +:10176000853B910509F447C0863B910509F446C0C5 +:10177000873B910509F445C0883B910509F444C0B5 +:10178000893B910509F443C08A3B910509F042C0A9 +:101790008AE296E4089580E090E0089581E890E47C +:1017A000089582E890E4089582EE94E4089589EE25 +:1017B00094E408958AEE94E4089585EB94E4089502 +:1017C00086EB94E4089587EB94E408958CEC94E41C +:1017D00008958DEC94E4089583E895E408958AE8EB +:1017E00095E4089582E995E4089584E995E40895DF +:1017F00081E296E4089583E296E4089584E296E413 +:10180000089585E296E4089586E296E4089587E2D5 +:1018100096E4089580E094E40895089596E0799F11 +:10182000F001112494E5899FE00DF11D1124E60FCC +:10183000F11DEE0FFF1FE052FF4F85919491089527 +:10184000880F991F805A9040FC01859194910895CA +:10185000880F991F80529F4FFC01859194910895A4 +:1018600026E0729FF001112444E5849FE00DF11DF4 +:101870001124E60FF11DEE0FFF1FE052FF4F2591DF +:101880003491C9019A9581159F4110F4C9010895B9 +:10189000C90190528115904128F4C9019F700E949E +:1018A000280C0895C90190538115904120F4C90175 +:1018B0009927906C0895211580E5380769F40E94F6 +:1018C000F51A9FEF24E34CE0915020404040E1F7AF +:1018D00000C000000C948822213080E5380751F4C4 +:1018E00088E593E00E9450078091DB01816080933E +:1018F000DB010895C90190558115904108F050C051 +:10190000832F99278F70992781309105D9F4A901E8 +:101910004370552702C0880F991F4A95E2F79C68CB +:10192000A90164E0440F551F6A95E1F744275370FD +:10193000842B952B73E0220F331F7A95E1F72076E5 +:1019400033271DC08230910529F4922F8827816F9B +:10195000906A089583309105A9F4A9014370552731 +:1019600081E090E002C0880F991F4A95E2F79C68D9 +:1019700043E0220F331F4A95E1F7207E3770822B18 +:10198000932B08950497F1F4A9014370552781E042 +:1019900090E002C0880F991F4A95E2F79A68E8CF55 +:1019A000C90190578115904120F4C9019F70906240 +:1019B0000895C90190588115904120F4C9019F7084 +:1019C000906A0895203E3105E0F4203C310558F539 +:1019D0002133310509F470C048F42932310509F486 +:1019E00064C02A32310509F46EC074C02933310550 +:1019F000F1F022383105D9F02533310509F44EC014 +:101A000069C0233E310589F138F4203E3105C1F02B +:101A1000223E3105E1F05EC0263E310569F1273EE8 +:101A20003105A9F157C0C9010E94200C0895809189 +:101A3000EE0180FD02C081FF4DC080EE90E04BC002 +:101A40008091EE0180FFF9CF89E390E044C080915E +:101A5000EE0182FF0EC08091EE0184FF03C080E0A2 +:101A600090E039C083EE90E036C08091EE0182FFB5 +:101A7000F2CF82EE90E02FC08091EE0183FF0BC089 +:101A80008091EE0184FDEBCF87EE90E024C0809141 +:101A9000EE0183FFF5CF86EE90E01DC08091EE0150 +:101AA00085FF07C089E290E016C08091EE0185FFB6 +:101AB000F9CF85E390E00FC08091EE0186FF07C06B +:101AC0008AE290E008C08091EE0186FFF9CF81E3C1 +:101AD00090E001C0C9010E944E0B089508958091C5 +:101AE000710108959FB7F894109260019FBF909183 +:101AF000F401943009F058C09091E9009F70209152 +:101B0000EC0020FF02C020E801C020E0292B94E077 +:101B10009093E9009091EB0090FF43C09091EE000C +:101B200097FF3FC090915E01992321F09091E800CA +:101B300095FF37C010925E0196E03091E80035FDC8 +:101B400015C03091F401343061F53091EB0035FD72 +:101B500028C0915021F481E080935E0122C0EFE91A +:101B6000FFE03197F1F700C00000E7CF8093F1006C +:101B70008091E80085FD0AC08091E80080FFFCCFDD +:101B80008091E8008E778093E80006C08FB7F894C4 +:101B900091E0909360018FBF2F702093E90080E067 +:101BA00008952F702093E9008FEF0895CF93DF936E +:101BB00000D01F92CDB7DEB72091F401243019F583 +:101BC00023E029839B838A832093E9008FEF909100 +:101BD000E800815095FD06C095ED9A95F1F700005B +:101BE0008111F5CF8091E80085FF0DC040E050E005 +:101BF00063E070E0CE0101960E94A5108091E8009C +:101C00008E778093E8000F900F900F90DF91CF9127 +:101C10000895CF93DF9300D01F92CDB7DEB7209108 +:101C2000F401243021F522E029839B838A8383E019 +:101C30008093E9008FEF9091E800815095FD06C0F8 +:101C400095ED9A95F1F700008111F5CF8091E800AC +:101C500085FF0DC040E050E063E070E0CE010196EA +:101C60000E94A5108091E8008E778093E8000F9085 +:101C70000F900F90DF91CF9108952091F4012430BF +:101C8000F1F422E02093E9002FEF3091E800215099 +:101C900035FD06C035ED3A95F1F700002111F5CF7D +:101CA0002091E80025FF0BC040E050E065E070E0C7 +:101CB0000E94A5108091E8008E778093E800089537 +:101CC000CF93DF93EC018091F401843009F047C099 +:101CD00080910C018823E1F080910D018823C1F0EF +:101CE00085E08093E9008FEF9091E800815095FDA9 +:101CF00006C095E19A95F1F700008111F5CF80912A +:101D0000E80085FF2CC040E050E060E170E017C0C3 +:101D100081E08093E9008FEF9091E800815095FD7C +:101D200006C095ED9A95F1F700008111F5CF8091ED +:101D3000E80085FF14C040E050E068E070E0CE01AC +:101D40000E94A5108091E8008E778093E80080E1E2 +:101D5000FE01A1E6B1E001900D928A95E1F7DF91D5 +:101D6000CF9108958FE893E00E9450078091F3018E +:101D7000811109C00E9437120E9494128091E200E2 +:101D800084608093E20008958BE893E00E945007FE +:101D90001092F301089587E893E00C94500783E8CC +:101DA00093E00E9450070C94492C8FE793E00E9427 +:101DB00050070E9423220E944F2C0E9430150C9441 +:101DC0006E0D80915F018F5F80935F0162E30E94DF +:101DD000BD2D911135C010925F0180916001882363 +:101DE00079F18091F401843049F58091E9008F7098 +:101DF0009091EC0090FF02C090E801C090E0982B19 +:101E000084E08093E9008091EB0080FF14C0809112 +:101E1000EE0087FF10C08091E80085FF03C010929C +:101E2000F100F9CF8091E80080FF05C08091E800C3 +:101E30008E778093E8009F709093E9001092600184 +:101E4000089542E061EC81E00E94B11142E061EC52 +:101E500082E00E94B11142E061EC83E00E94B11186 +:101E600042E261EC84E00E94B11142E161EC85E064 +:101E70000C94B1118091F601833009F455C030F40F +:101E8000813071F0823009F48EC008958A3009F4EF +:101E90007AC08B3009F460C0893009F09CC020C042 +:101EA0008091F501813A09F096C08091E800877F22 +:101EB0008093E8008091F9019091FA01892B21F03B +:101EC00060E080E090E003C060E181E691E070E0D6 +:101ED0000E94EE108091E8008B778093E8000895CF +:101EE0008091F501813209F076C08091F9019091DD +:101EF000FA01009719F0049709F06DC08091E8008D +:101F0000877F8093E8008091E80082FD05C0809182 +:101F1000F4018111F8CF5FC08091F10080937101CD +:101F20008091E8008B7753C08091F501813A09F0E8 +:101F300052C08091F9019091FA01892B09F04BC0B0 +:101F40008091E800877F8093E8008091E80080FF1F +:101F5000FCCF80910C0136C08091F5018132D9F51A +:101F60008091F9019091FA01892BA9F58091E800FF +:101F7000877F8093E8000E94E6118091F7018093AB +:101F80000C010C94F51A8091F501813221F58091B4 +:101F9000E800877F8093E8000E94E6118091F801B5 +:101FA0008093720108958091F501813AA1F48091A6 +:101FB000E800877F8093E8008091E80080FFFCCFF5 +:101FC000809172018093F1008091E8008E77809378 +:101FD000E8000C94E611089584B7877F84BF88E1F8 +:101FE0000FB6F89480936000109260000FBE90E0EE +:101FF00080E80FB6F89480936100909361000FBE63 +:102000000E94B9150E9437120E9494128091E2003A +:1020100084608093E20082E79DE00E9462217894D0 +:102020000E940E150E94BB1582E091E00E942B15C4 +:102030000E94372C8EE693E00E9450078091F401B5 +:10204000853089F48AE693E00E9450070E94E621D9 +:102050008091F201882391F30E940E22882371F36C +:102060000E948F10EBCF0E94E915E8CF292F33276C +:1020700023303105A9F06CF42130310509F442C058 +:102080002230310509F043C08DE890E027EC33E0C1 +:1020900042C021323105C9F02232310519F137C071 +:1020A00099278130910541F08230910541F0892BCB +:1020B00071F5E3ECF3E005C0EBEAF3E002C0E3E91D +:1020C000F3E0849190E09F0126C0653000F5E62F93 +:1020D000F0E0EE0FFF1FEB5DFE4F2081318189E0C4 +:1020E00090E019C0653098F4E62FF0E0DF01AA0F08 +:1020F000BB1FA55EBE4F2D913C91EA5EFE4F8081D5 +:1021000090E009C082E190E024E534E004C080E082 +:1021100090E020E030E0FA0131832083089580E1EF +:1021200089BD82E189BD09B400FEFDCF8091D80050 +:102130008F7D8093D8008091E00082608093E000E2 +:102140008091E00081FDFCCF0895CF92DF92EF9265 +:10215000FF920F931F93CF93DF937C018B01EA01D2 +:102160000E940712811131C0209731F08881998136 +:10217000081B190BE80EF91EC12CD12C01151105F5 +:1021800019F18091E80085FD14C08091E8008E77F8 +:102190008093E800209741F0888199818C0D9D1DE6 +:1021A0009983888385E011C00E940712882331F348 +:1021B0000CC0F70181917F018093F100015011095A +:1021C000FFEFCF1ADF0ADACF80E0DF91CF911F91C6 +:1021D0000F91FF90EF90DF90CF9008952091FB0139 +:1021E0003091FC012617370748F06115710539F465 +:1021F0002091E8002E772093E80001C0B901FC018E +:1022000020E061157105B9F18091F401882309F48A +:1022100040C0853009F43FC08091E80083FD3DC097 +:102220008091E80082FF06C08091E80082FF26C00E +:1022300080E008958091E80080FFE3CF2091F300D3 +:102240008091F20090E0922B6115710551F0883079 +:10225000910538F421912093F100615071090196A4 +:10226000F3CF21E0089709F020E08091E8008E7715 +:102270008093E800C6CF2111C7CFD6CF8091F4015B +:10228000882339F0853039F08091E80083FFCCCF86 +:1022900004C082E0089583E0089581E008952091CC +:1022A000FB013091FC012617370748F061157105D5 +:1022B00039F42091E8002E772093E80001C0B9019D +:1022C000FC0120E061157105C1F18091F4018823C2 +:1022D00009F441C0853009F440C08091E80083FDD5 +:1022E0003EC08091E80082FF06C08091E80082FF36 +:1022F00027C080E008958091E80080FFE3CF20911F +:10230000F3008091F20090E0922B6115710559F075 +:102310008830910540F424912093F100319661506A +:1023200071090196F2CF21E0089709F020E0809131 +:10233000E8008E778093E800C5CF2111C6CFD5CFB6 +:102340008091F401882339F0853039F08091E800DC +:1023500083FFCBCF04C082E0089583E0089581E03D +:102360000895982F973058F59093E900981739F011 +:102370007091EC002091ED005091F00003C0242FEB +:10238000762F50E021FF19C03091EB003E7F309353 +:10239000EB003091ED003D7F3093ED003091EB008C +:1023A00031603093EB007093EC002093ED0050937C +:1023B000F0002091EE0027FF07C09F5FD3CF8F7002 +:1023C0008093E90081E0089580E008958091F5010F +:1023D00087FD05C08091E80080FF0EC012C080918B +:1023E000E80082FD05C08091F4018111F8CF0895C5 +:1023F0008091E8008B7708C08091F4018111EACFC9 +:1024000008958091E8008E778093E8000895809188 +:10241000E4009091E50045E62091EC0020FF21C00A +:102420002091E80020FD21C02091F401222389F0B1 +:10243000253089F02091EB0025FD0FC02091E400AC +:102440003091E5002817390739F3415041F0C901AF +:10245000E3CF82E0089583E0089581E0089584E069 +:1024600008952091E80022FFDFCF80E008950E94C8 +:10247000A5120E94AD12E0EEF0E0808181608083C1 +:10248000E8EDF0E080818F77808319BCA7EDB0E0A4 +:102490008C918E7F8C9380818F7E80831092F3014C +:1024A00008950F931F93CF93DF930E94A5120E946C +:1024B000AD12C8EDD0E088818F77888388818068ED +:1024C000888388818F7D888319BC1092F4011092D3 +:1024D000F0011092F2011092F10100EE10E0F8010B +:1024E00080818B7F808388818160888342E060E087 +:1024F00080E00E94B111E1EEF0E080818E7F808368 +:10250000E2EEF0E08081816080838081886080835A +:10251000F80180818E7F8083888180618883DF914C +:10252000CF911F910F910895E8EDF0E080818F7EAB +:102530008083E7EDF0E080818160808384E082BF6A +:1025400081E08093F3010C945112E8EDF0E080817A +:102550008E7F80831092E20008951092DA0010922C +:10256000E10008951F920F920FB60F9211242F933E +:102570003F934F935F936F937F938F939F93AF930B +:10258000BF93EF93FF938091E10082FF0BC0809196 +:10259000E20082FF07C08091E1008B7F8093E10021 +:1025A0000E94E10E8091DA0080FF1FC08091D80068 +:1025B00080FF1BC08091DA008E7F8093DA008091CB +:1025C000D90080FF0DC080E189BD82E189BD09B4D9 +:1025D00000FEFDCF81E08093F4010E94B20E05C0A1 +:1025E00019BC1092F4010E94C40E8091E10080FF9A +:1025F00019C08091E20080FF15C08091E2008E7FBB +:102600008093E2008091E20080618093E2008091FB +:10261000D80080628093D80019BC85E08093F401D3 +:102620000E94CF0E8091E10084FF30C08091E200D3 +:1026300084FF2CC080E189BD82E189BD09B400FE20 +:10264000FDCF8091D8008F7D8093D8008091E100EC +:102650008F7E8093E1008091E2008F7E8093E20084 +:102660008091E20081608093E2008091F0018823F4 +:1026700011F084E007C08091E30087FF02C083E08F +:1026800001C081E08093F4010E94D50E8091E100A9 +:1026900083FF29C08091E20083FF25C08091E10083 +:1026A000877F8093E10082E08093F4011092F00133 +:1026B0008091E1008E7F8093E1008091E2008E7F27 +:1026C0008093E2008091E20080618093E20042E02A +:1026D00060E080E00E94B1118091F00088608093FA +:1026E000F0000E94CB0EFF91EF91BF91AF919F91AF +:1026F0008F917F916F915F914F913F912F910F90AB +:102700000FBE0F901F9018951F920F920FB60F9249 +:1027100011242F933F934F935F936F937F938F93E6 +:102720009F93AF93BF93CF93EF93FF93C091E90033 +:10273000CF708091EC001092E9008091F000877FCB +:102740008093F00078940E94C0131092E900809169 +:10275000F00088608093F000C093E900FF91EF9152 +:10276000CF91BF91AF919F918F917F916F915F9129 +:102770004F913F912F910F900FBE0F901F90189582 +:102780001F93CF93DF93CDB7DEB7AA970FB6F89418 +:10279000DEBF0FBECDBFE5EFF1E08091F100819388 +:1027A00021E0ED3FF207C9F70E943A0F8091E8005F +:1027B00083FF1CC12091F5013091F601832F90E039 +:1027C0008A30910508F012C1FC01EA5AFF4F0C94BF +:1027D000DD2D203881F0223809F008C18091F901FF +:1027E0008F708093E9008091EB0085FB882780F94A +:1027F0001092E90006C08091F1019091F2019111CF +:1028000082609091E800977F9093E8008093F100B8 +:102810001092F100C5C0822F8D7F09F0E7C02223FE +:1028200019F0223061F0E2C08091F701813009F0A7 +:10283000DDC0333009F080E08093F20128C0809140 +:10284000F701811124C02091F9012F7009F4CEC045 +:102850002093E9008091EB0080FF19C08091EB008C +:10286000333011F4806211C080618093EB0081E00D +:1028700090E0022E01C0880F0A94EAF78093EA00E4 +:102880001092EA008091EB0088608093EB00109238 +:10289000E9008091E800877F86C02111A7C01091D0 +:1028A000F7011F778091E3008078812B8093E3000C +:1028B0008091E800877F8093E8000E94E611809174 +:1028C000E80080FFFCCF8091E30080688093E30004 +:1028D000112311F083E001C082E08093F40186C0EF +:1028E0002058223008F082C08091F7019091F801C1 +:1028F0008C3D23E0920779F583E08A838AE289831D +:102900004FB7F894DE01139620E03EE051E2E32F4A +:10291000F0E050935700E49120FF03C0E295EF7080 +:102920003F5FEF708E2F90E0EA3010F0C79601C045 +:10293000C0968D939D932F5F243149F74FBF8091AF +:10294000E800877F8093E8006AE270E0CE0101969C +:102950000E94EE1014C0AE014F5F5F4F6091F9010D +:102960000E943610009709F441C02091E800277FAB +:102970002093E800BC0189819A810E944F118091C7 +:10298000E8008B778093E80031C0203879F580919A +:10299000E800877F8093E8008091F0018093F10048 +:1029A0008091E8008E778093E8000E94E6111EC0B7 +:1029B00021111CC09091F7019230C0F48091E80081 +:1029C000877F8093E8009093F0010E94E611809148 +:1029D000F001811104C08091E30087FF02C084E010 +:1029E00001C081E08093F4010E94210F8091E800F2 +:1029F00083FF0AC08091E800877F8093E800809180 +:102A0000EB0080628093EB00AA960FB6F894DEBFCD +:102A10000FBECDBFDF91CF911F910895CF938091CD +:102A2000F4018823B1F08091E9008F709091EC005F +:102A300090FF02C090E801C090E0C92FC82B10920F +:102A4000E9008091E80083FD0E94C013CF70C0931D +:102A5000E900CF91089590937801809377010895CC +:102A6000E0917701F0917801309721F00190F081A9 +:102A7000E02D099480E00895FF920F931F93CF9368 +:102A8000DF938C01E0917701F0917801309799F113 +:102A90000280F381E02D09958091DB0182FF2BC03C +:102AA00080FF04C089E895E00E945007E80180E1BA +:102AB000F82E03E815E08091DB0180FF0BC08881D0 +:102AC0001F928F931F930F930E94E9070F900F900F +:102AD0000F900F90FA942196F110EDCF8091DB01C9 +:102AE00080FF09C081E895E0DF91CF911F910F91A0 +:102AF000FF900C945007DF91CF911F910F91FF90A1 +:102B00000895E0917701F0917801309721F00480E9 +:102B1000F581E02D09940895209175013091760199 +:102B20008217930771F09093760180937501E0917D +:102B30007701F0917801309721F00680F781E02D40 +:102B400009940895209173013091740182179307BD +:102B500071F09093740180937301E0917701F0918B +:102B60007801309721F00084F185E02D09940895D3 +:102B700008950C94B8150E9425220E94B9090C945E +:102B8000EB22CF93C82F8091DB0182FF1EC080FF14 +:102B900004C082EA95E00E9450078091DB0180FF2B +:102BA0000CC01F92CF932DE935E03F932F930E94E5 +:102BB000E9070F900F900F900F908091DB0180FF3D +:102BC00004C08BE995E00E9450078C2FCF910C94A4 +:102BD0006E0DCF92DF92EF92FF920F931F93CF93E0 +:102BE000DF93CDB7DEB72B970FB6F894DEBF0FBEDD +:102BF000CDBF0E94D6093AE7E32E31E0F32E00E084 +:102C000010E0C02E802F0E94010BF701D1907F01B0 +:102C1000D826B1F40F5F1F4F0E30110591F78FEFDB +:102C200089838A831B820E942E228160782F9D8354 +:102C30008C8349815A816B818D810E948C1641C0A1 +:102C40009091DB0191FF04C08B870E94070B8B855D +:102C500020E030E04D2D50E0922FBA01022E02C04C +:102C6000759567950A94E2F760FF25C02E83CF82A1 +:102C7000EE24E394F12C02C0EE0CFF1C9A95E2F7CF +:102C800090E08E219F2121E0892B09F420E0288704 +:102C90000E942E228160782F9A8789874E815F81DA +:102CA00068858A850E948C16F801E658FE4F80815F +:102CB0008E25808306C02F5F3F4F2630310561F699 +:102CC000A9CF0E945926109179010E94301518173A +:102CD000A1F00E943015809379012B960FB6F894DD +:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F +:102CF000EF90DF90CF900C94C1152B960FB6F894FF +:102D0000DEBF0FBECDBFDF91CF911F910F91FF901E +:102D1000EF90DF90CF900895CF93DF93CDB7DEB7DC +:102D20002B970FB6F894DEBF0FBECDBF4F835887E9 +:102D300069877A878B87DE01119686E0FD01119203 +:102D40008A95E9F785E0FE01379601900D928A9504 +:102D5000E1F749815A816B817C818D819E810E943E +:102D6000C11D2B960FB6F894DEBF0FBECDBFDF910D +:102D7000CF910895CF93C82F882309F4C1C082381A +:102D800059F40E94301581FDBBC089E30E94602088 +:102D90000E943C2189E30CC0833879F40E943015ED +:102DA00080FDAEC083E50E9460200E943C2183E547 +:102DB0000E94B120CF910C943C21843859F40E9498 +:102DC000301582FD9DC087E40E9460200E943C2156 +:102DD00087E4EECF8CEF8C0F813A48F48C2F0E9461 +:102DE000E22A81118DC08C2F0E946020E3CF80E207 +:102DF0008C0F883048F4C77081E001C0880FCA95F5 +:102E0000EAF70E940321D6CF8BE58C0F833078F44C +:102E1000C53A29F0C63A31F482E890E005C081E86D +:102E200090E002C083E890E0CF910C948C1588E587 +:102E30008C0F833108F064C0C83A39F1C93A41F1C6 +:102E4000CA3A49F1CB3A51F1CC3A59F1CD3A61F154 +:102E5000C03B69F1CE3A71F1CF3A79F1C13B81F1D2 +:102E6000C23B89F1C33B91F1C43B99F1C53BA1F150 +:102E7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B0 +:102E8000CA3BC9F58AE292E038C082EE90E035C0D4 +:102E900089EE90E032C08AEE90E02FC085EB90E0A2 +:102EA0002CC086EB90E029C087EB90E026C08CEC2C +:102EB00090E023C08DEC90E020C083E891E01DC03D +:102EC0008AE891E01AC082E991E017C084E991E0B4 +:102ED00014C081E292E011C083E292E00EC084E26D +:102EE00092E00BC085E292E008C086E292E005C065 +:102EF00087E292E002C080E090E0CF910C94A215AE +:102F0000CF910895882309F44BC0823859F40E9468 +:102F1000301581FF45C089E30E9460200E943C215A +:102F200089E30CC0833871F40E94301580FF38C0EB +:102F300083E50E9460200E943C2183E50E94B1202D +:102F40000C943C21843859F40E94301582FF28C02B +:102F500087E40E9460200E943C2187E4EFCF9CEF31 +:102F6000980F913A58F390E2980F983050F4877088 +:102F700091E001C0990F8A95EAF7892F0E940921F3 +:102F8000DFCF9BE5980F933020F480E090E00C9425 +:102F90008C15885A833120F480E090E00C94A215BF +:102FA0000895882321F00E9403210C943C21089568 +:102FB000882321F00E9409210C943C210895CF928E +:102FC000DF92EF92FF920F931F93CF93DF93CDB7D2 +:102FD000DEB728970FB6F894DEBF0FBECDBF8C01C9 +:102FE00085E0F801DE01119601900D928A95E1F7D6 +:102FF000F80140813181F280258122952F708381F3 +:103000009481892B31F03F3F31F481E04F3F19F437 +:1030100003C081E001C080E080FDC6C249833A83DD +:1030200089819A812F830E941E209E8388870E9417 +:103030001D200E94F01E4E81E42FE295EF70F0E01B +:10304000E05AFF4F2F8168850C94DD2D842F807FFF +:10305000142F1F70882311F01295107FFF2059F054 +:10306000112309F456C2812F68870E9413210E9400 +:103070003C2168854EC2862F0E948217112309F4D5 +:1030800093C2812F0E94192128960FB6F894DEBFB3 +:103090000FBECDBFDF91CF911F910F91FF90EF90A9 +:1030A000DF90CF900C943C21342F307F842F8F7091 +:1030B000303211F08295807F662319F0613019F16A +:1030C0002CC0FF20B1F0222309F494C1213009F073 +:1030D00091C128960FB6F894DEBF0FBECDBFDF9129 +:1030E000CF911F910F91FF90EF90DF90CF900C94B4 +:1030F0002321222319F0213009F456C28E830E9425 +:1031000026218E818AC1FF2021F0263008F04CC292 +:1031100071C1253008F048C280C1FF2021F0222370 +:1031200009F468C1F6C1222309F477C106C2242F2D +:1031300026952695237030E02115310521F02130A8 +:103140003105C9F031C2FF2021F0862F942F9370F2 +:1031500002C080E090E028960FB6F894DEBF0FBE64 +:10316000CDBFDF91CF911F910F91FF90EF90DF9036 +:10317000CF900C948C15FF2021F0862F942F937004 +:1031800002C080E090E028960FB6F894DEBF0FBE34 +:10319000CDBFDF91CF911F910F91FF90EF90DF9006 +:1031A000CF900C94A215862FFF2019F00E94DF24E7 +:1031B00002C00E94472528960FB6F894DEBF0FBEC6 +:1031C000CDBFDF91CF911F910F91FF90EF90DF90D6 +:1031D000CF900C94CC25842F837009F076C0F11029 +:1031E000E3C1262F229526952770220F220F862FC6 +:1031F0008F70C82ED12CE12CF12C022E04C0CC0CE7 +:10320000DD1CEE1CFF1C0A94D2F764FF10C06FE0B7 +:1032100070E080E090E004C0660F771F881F991F60 +:103220002A95D2F7609570958095909503C060E0DF +:1032300070E0CB01242F269526952370422F50E075 +:1032400042305105D1F04330510559F16C297D29A7 +:103250008E299F294130510541F128960FB6F894E7 +:10326000DEBF0FBECDBFDF91CF911F910F91FF90B9 +:10327000EF90DF90CF900C94151F6C297D298E293B +:103280009F2928960FB6F894DEBF0FBECDBFDF9101 +:10329000CF911F910F91FF90EF90DF90CF900C9402 +:1032A0002F1F0E94151FC701B60128960FB6F8946C +:1032B000DEBF0FBECDBFDF91CF911F910F91FF9069 +:1032C000EF90DF90CF900C94FB1EFF2019F0842F1D +:1032D000817001C08695882309F466C1262F229546 +:1032E00026952770220F220F862F8F70C82ED12C83 +:1032F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBA +:103300000A94D2F764FF10C06FE070E080E090E0B4 +:1033100004C0660F771F881F991F2A95D2F7609502 +:1033200070958095909503C060E070E0CB01242FEC +:10333000269526952370422F50E042305105D1F05A +:103340004330510559F16C297D298E299F2941303F +:10335000510541F128960FB6F894DEBF0FBECDBFE0 +:10336000DF91CF911F910F91FF90EF90DF90CF9061 +:103370000C94E91F6C297D298E299F2928960FB668 +:10338000F894DEBF0FBECDBFDF91CF911F910F919B +:10339000FF90EF90DF90CF900C9403200E94E91FE4 +:1033A000C701B60128960FB6F894DEBF0FBECDBF99 +:1033B000DF91CF911F910F91FF90EF90DF90CF9011 +:1033C0000C94CF1F603FC9F118F4603E50F49CC0CC +:1033D000623F09F461C008F44BC0633F09F470C058 +:1033E00093C0162F1F70842F8F71FF2099F00E94B9 +:1033F000681F812F28960FB6F894DEBF0FBECDBF91 +:10340000DF91CF911F910F91FF90EF90DF90CF90C0 +:103410000C94D1170E94891F812F28960FB6F8941B +:10342000DEBF0FBECDBFDF91CF911F910F91FF90F7 +:10343000EF90DF90CF900C94D817FF20A9F02530A3 +:1034400008F0B2C0842F8F7128960FB6F894DEBFB3 +:103450000FBECDBFDF91CF911F910F91FF90EF90E5 +:10346000DF90CF900C94AE1F263008F09DC0EACFBD +:10347000FF20A1F0842F8F7128960FB6F894DEBF3D +:103480000FBECDBFDF91CF911F910F91FF90EF90B5 +:10349000DF90CF900C94681FFF2061F3842F8F7111 +:1034A00028960FB6F894DEBF0FBECDBFDF91CF9147 +:1034B0001F910F91FF90EF90DF90CF900C94891F98 +:1034C000FF2091F0842F8F7128960FB6F894DEBFFD +:1034D0000FBECDBFDF91CF911F910F91FF90EF9065 +:1034E000DF90CF900C94531F28960FB6F894DEBF50 +:1034F0000FBECDBFDF91CF911F910F91FF90EF9045 +:10350000DF90CF900C94491FFF20A1F0222309F4F3 +:10351000B1CF862F28960FB6F894DEBF0FBECDBF71 +:10352000DF91CF911F910F91FF90EF90DF90CF909F +:103530000C94BA16222309F4B1CF862F28960FB621 +:10354000F894DEBF0FBECDBFDF91CF911F910F91D9 +:10355000FF90EF90DF90CF900C9482174F70C801CE +:103560000E94F20728960FB6F894DEBF0FBECDBFBB +:10357000DF91CF911F910F91FF90EF90DF90CF904F +:103580000C946E1E4F70C80128960FB6F894DEBFDB +:103590000FBECDBFDF91CF911F910F91FF90EF90A4 +:1035A000DF90CF900C940D0C28960FB6F894DEBFE8 +:1035B0000FBECDBFDF91CF911F910F91FF90EF9084 +:1035C000DF90CF9008950E9420210E94F5200E9454 +:1035D0003C210E94FA260E94CC2580E090E00E94C7 +:1035E0008C1580E090E00C94A2150E9410210C94A0 +:1035F000E31A0E941E20292F22952F7030E02C30D4 +:1036000031054CF42A3031056CF422503109223056 +:10361000310590F407C02C30310551F02F303105C1 +:1036200039F00AC0803E10F0803F31F481E0089507 +:1036300093FB882780F9089580E00895CF93DF9366 +:1036400000D000D01F92CDB7DEB70F900F900F9033 +:103650000F900F90DF91CF910895CF93DF9300D01B +:1036600000D000D0CDB7DEB726960FB6F894DEBFF7 +:103670000FBECDBFDF91CF9108951F93CF93DF93FE +:10368000C091880116E080918901C81799F0D0E0B7 +:103690001C9FF0011D9FF00D1124E657FE4F408145 +:1036A000518162817381848195810E942D1B2196B5 +:1036B000C770E9CFDF91CF911F9108954091BA0172 +:1036C0005091BB016091BC017091BD018091BE0120 +:1036D0009091BF010C942D1BCF938091BF018295D7 +:1036E0008F7009F05FC08091BC01882309F45AC033 +:1036F00020918801A09189016091BA017091BB016C +:103700008091BD019091BE0131E06F3F09F030E042 +:10371000B32FC6E02A1709F445C0009721F07F3F78 +:1037200021F44B2F03C041E001C040E030E040FDF8 +:1037300035C0C29FF001C39FF00D1124E657FE4F24 +:10374000418174132BC04081641328C04281411110 +:1037500025C0438154814817590710F4415051093D +:10376000481B590B483C5105C8F48091BF018F702C +:1037700080618093BF0186E0829FF001839FF00DFE +:103780001124E157FE4F80818F70806180838AEB26 +:1037900091E00E94DF17CF910C943D1B2F5F3F4FAC +:1037A0002770B8CFCF910895CF92DF92EF92FF921A +:1037B0000F931F93CF93DF93CDB7DEB762970FB60A +:1037C000F894DEBF0FBECDBF8C0185E0F801DE01AD +:1037D0001D9601900D928A95E1F7D8014C911196B2 +:1037E0005C91119712966C9112971396ED90FC9044 +:1037F00014977091BA01E091BB012091BD01309105 +:10380000BE012115310531F0EF3F31F481E07F3FFA +:1038100019F403C081E001C080E0B82FB170CB2E55 +:1038200080FD6CC1D090BC01DD2009F4F5C0F091A1 +:10383000BF01E216F30638F0C701821B930B883CE8 +:10384000910548F09BC0209530952E0D3F1D283CDA +:10385000310508F093C08F2F807F09F052C0E51327 +:1038600014C0741312C0D62E61110FC0FF70F06126 +:10387000F093BF010E945E1B8AEB91E00E94DF176C +:103880008091BF01F80185836CC1EF2831F05F3F63 +:1038900031F481E04F3F19F403C081E001C080E0C2 +:1038A00080FD03C081E0862701C080E0F82FF17021 +:1038B000FF2E80FF1CC0809188012091890136E095 +:1038C000821709F428C190E0389FF001399FF00D6C +:1038D0001124E657FE4F7181571306C070814713BC +:1038E00003C07281671303C001968770E9CFD62E9B +:1038F000662309F436C18091BF0181608093BF01C6 +:1039000053C0E51308C0741306C0611104C0D80188 +:103910001596FC93AEC04D875E878D859E856A8B1C +:103920000E94F91A6A89882329F1D62E662311F19B +:103930002091BF01822F82958F7090E002970CF446 +:1039400060C08091BA019091BB0198878F831986DE +:10395000FB86EA862C87CE01079651C0E51731F128 +:103960004D875E878D859E856A8B0E94F91A6A89CC +:1039700081112EC0C8010E94DF17A4C08F2F807F45 +:1039800069F77E2DF98AE88A89890E941E1B8AEBD5 +:1039900091E00E94DF17EAEBF1E086E0DF011D9283 +:1039A0008A95E9F70E945E1BD12CDBC07413D8CF37 +:1039B0006111D6CFD8011596FC93C8010E94DF177C +:1039C000EAEBF1E086E0DF011D928A95E9F7C9C0D4 +:1039D000D62E662379F22091BF01822F82958F70B7 +:1039E00090E0029774F08091BA019091BB019A83A4 +:1039F00089831B82FD82EC822E83CE0101960E9478 +:103A0000DF1786E0F801AAEBB1E001900D928A95EC +:103A1000E1F70E946C1B6FC0E216F30628F0C701A5 +:103A2000821B930B9C0104C0209530952E0D3F1DE9 +:103A3000283C310508F052C0D62E662309F49ACFEF +:103A4000E5132CC074132AC08091BF0180FD1DC0F6 +:103A5000982F92959F70C9F0D80115968C93159761 +:103A60009F3039F09F5F9295907F8F70892B1596CC +:103A70008C93C8010E94DF1786E0F801AAEBB1E041 +:103A800001900D928A95E1F736C086E0F801AAEB25 +:103A9000B1E001900D928A95E1F763C04D875E8792 +:103AA0008D859E850E94F91A882379F086E0F801B9 +:103AB000AAEBB1E001900D928A95E1F70E946C1B90 +:103AC0000E945E1BDD24D3944CC08091BF018160B5 +:103AD0008093BF01C8010E94DF1743C07E2DF98A81 +:103AE000E88A89890E941E1BEAEBF1E086E0DF018B +:103AF0001D928A95E9F70E945E1B33C0662309F484 +:103B000039CF4D875E878D859E850E94F91A88235F +:103B100009F430CFCBCF4D875E878D859E850E947F +:103B20001E20292F22952F7030E0223031052CF4F1 +:103B30009F7041F0811106C00CC0243031052CF477 +:103B40009F7049F4805E883020F0C8010E94DF1722 +:103B5000CF2CDC2C06C0D80115969C91907F91F754 +:103B6000F8CF8D2D62960FB6F894DEBF0FBECDBF95 +:103B7000DF91CF911F910F91FF90EF90DF90CF9049 +:103B800008951F93CF93DF93CDB7DEB72C970FB671 +:103B9000F894DEBF0FBECDBF4F83588769877A8701 +:103BA0008B879C87CE0107960E94D41B8823C1F087 +:103BB0002F8138858A859B85892B31F03F3F11F015 +:103BC00080E003C02F3FE1F781E0811147C04F81C2 +:103BD000588569857A858B859C850E942D1B3EC002 +:103BE00086E0FE013796DE01119601900D928A95CE +:103BF000E1F7FF81E8854A855B854115510531F084 +:103C0000EF3F31F481E0FF3F19F403C081E001C0D0 +:103C100080E080FD23C02091890130E0C901019638 +:103C2000877099276091880170E086179707F1F1F6 +:103C3000F983EA835D834C8396E0929FD001939F42 +:103C4000B00D1124A657BE4FFE01319601900D9282 +:103C50009A95E1F7809389010E943D1B16E08091BF +:103C6000880190918901891779F1189FC001112469 +:103C700086579E4F0E94D41B882331F1E091880122 +:103C80001E9FF0011124E657FE4F40815181628151 +:103C90007381848195810E942D1B8091880190E021 +:103CA00001968770992780938801D9CF0E94F51AD1 +:103CB0001092890110928801EAEBF1E086E0DF01C1 +:103CC0001D928A95E9F7CACF2C960FB6F894DEBFFD +:103CD0000FBECDBFDF91CF911F910895EF92FF925C +:103CE0000F931F93CF93DF939C01009709F471C04A +:103CF000F12CEE24E394E9012196F90184918437B3 +:103D000040F4843008F056C0813081F0823021F1D7 +:103D100060C0853709F449C0C0F19CE7980F90371F +:103D200008F057C08F770E94821746C089010E5F46 +:103D30001F4FFE01849190E2980F983050F48770E5 +:103D4000FE2D01C0FF0F8A95EAF78F2F0E941321E5 +:103D500015C00E94BA1614C089010E5F1F4FFE01E4 +:103D6000849190E2980F983068F48770FE2D01C01E +:103D7000FF0F8A95EAF78F2F0E9419210E943C219C +:103D8000E8011AC00E948217FBCF2E5F3F4FFE0151 +:103D9000C491CC2341F08FE99FE00197F1F700C077 +:103DA0000000C150F6CFE90107C0FE01F490E9011F +:103DB000229602C00E94BA168F2D882341F0EFE9A7 +:103DC000FFE03197F1F700C000008150F6CF9E016F +:103DD00092CFDF91CF911F910F91FF90EF900895B7 +:103DE00008956093C4017093C5018093C6019093B8 +:103DF000C7010C94E31A0F931F930091C401109113 +:103E0000C5012091C6013091C701062B172B282B25 +:103E1000392B0093C4011093C5012093C601309340 +:103E2000C7011F910F910C94E31A0F931F930091F8 +:103E3000C4011091C5012091C6013091C70106232C +:103E40001723282339230093C4011093C50120931D +:103E5000C6013093C7011F910F910C94E31A0F9381 +:103E60001F930091C4011091C5012091C6013091AA +:103E7000C70106271727282739270093C401109365 +:103E8000C5012093C6013093C7011F910F910C9477 +:103E9000E31A1092C0011092C1011092C201109257 +:103EA000C3010C94E31A41E050E060E070E004C00C +:103EB000440F551F661F771F8A95D2F74093C001A4 +:103EC0005093C1016093C2017093C3010C94E31A33 +:103ED00041E050E060E070E004C0440F551F661FF1 +:103EE000771F8A95D2F78091C0019091C101A0916E +:103EF000C201B091C301842B952BA62BB72B8093C5 +:103F0000C0019093C101A093C201B093C3010C946E +:103F1000E31A41E050E060E070E004C0440F551F38 +:103F2000661F771F8A95D2F74095509560957095DA +:103F30008091C0019091C101A091C201B091C301D3 +:103F400084239523A623B7238093C0019093C101B6 +:103F5000A093C201B093C3010C94E31A41E050E076 +:103F600060E070E004C0440F551F661F771F8A95FC +:103F7000D2F78091C0019091C101A091C201B0918E +:103F8000C30184279527A627B7278093C001909364 +:103F9000C101A093C201B093C3010C94E31A0F9323 +:103FA0001F930091C0011091C1012091C201309175 +:103FB000C301062B172B282B392B0093C00110931C +:103FC000C1012093C2013093C3011F910F910C9442 +:103FD000E31A0F931F930091C0011091C10120912A +:103FE000C2013091C30106231723282339230093EC +:103FF000C0011093C1012093C2013093C3011F91EE +:104000000F910C94E31A0F931F930091C00110912C +:10401000C1012091C2013091C3010627172728272B +:1040200039270093C0011093C1012093C20130933E +:10403000C3011F910F910C94E31A0895CF92DF9260 +:10404000EF92FF920F931F93CF93DF93EC01C090F9 +:10405000C401D090C501E090C601F090C7018091E5 +:10406000C0019091C101A091C201B091C301C82AC1 +:10407000D92AEA2AFB2A0FE110E0B701A601002E97 +:1040800004C076956795579547950A94D2F740FFF7 +:1040900007C0BE01802F0E94300C8130910539F499 +:1040A0000150110950F7BE0180E00E94300CDF91F1 +:1040B000CF911F910F91FF90EF90DF90CF900895D7 +:1040C00090910C01992361F190910D01992341F197 +:1040D000982F9695969596959F3088F4E0910E01CD +:1040E000F0910F01E90FF11D877021E030E001C070 +:1040F000220F8A95EAF78181822B8183089590911E +:10410000DB0190FF2DC01F928F9383ED95E09F936D +:104110008F930E94E9070F900F900F900F900895D2 +:1041200040910E0150910F0120E030E09FEFFA0125 +:10413000E20FF31F6281681799F09F3F19F4611134 +:1041400001C0922F2F5F3F4F2E30310581F79F3FE7 +:1041500039F0FA01E90FF11D97FDFA958283089570 +:10416000089590910C01992369F190910D01992383 +:1041700049F1982F9695969596959F3090F4E091F9 +:104180000E01F0910F01E90FF11D877021E030E081 +:1041900001C0220F8A95EAF7209581812823218387 +:1041A00008959091DB0190FF1FC01F928F9385EBC4 +:1041B00095E09F938F930E94E9070F900F900F90C7 +:1041C0000F90089540910E0150910F0120E030E0D2 +:1041D000FA01E20FF31F9281981301C012822F5F40 +:1041E0003F4F2E303105A1F7089581E090E0E09136 +:1041F0000E01F0910F01E80FF91F10820196803136 +:104200009105A9F708959091DA01982B9093DA011E +:10421000089580959091DA0198239093DA0108959A +:104220001092DA0108959091D901982B9093D901B9 +:10423000089580959091D90198239093D90108957C +:104240001092D90108958093C80108951092C80171 +:10425000089540910E0150910F0120E030E080E080 +:10426000FA01E20FF31F918191118F5F2F5F3F4F92 +:104270002F303105A9F70895E0910E01F0910F015B +:104280008091DA018083E0910E01F0910F0180812D +:104290009091D901892B80839091C801992361F075 +:1042A000E0910E01F0910F018081892B80830E94A3 +:1042B000292181111092C80180910E0190910F0166 +:1042C0000C943C1590933B0180933A010895CF9252 +:1042D000DF92EF92FF920F931F936C01EE24FF2465 +:1042E000C114D104E104F10421F46B017C0180E0EC +:1042F00001C080E133272F2D1E2D0D2D0115110535 +:104300002105310519F0885F68017901970186015F +:10431000A4E03695279517950795AA95D1F701152D +:1043200011052105310519F08C5F680179019701AC +:104330008601F2E03695279517950795FA95D1F7FE +:10434000011511052105310519F08E5F680179010C +:10435000B701A6017695679557954795452B462B4E +:10436000472B09F08F5F1F910F91FF90EF90DF9027 +:10437000CF9008958295982F9C7C969596958373FF +:1043800044E0849F90011124922B892F8A7A86958C +:104390009575990F892B08951F93CF93DF931F92E3 +:1043A000CDB7DEB799830E94BA21182F9981892F42 +:1043B0000E94BA21212F30E0322F2227A901482B59 +:1043C000CA010F90DF91CF911F9108958091F40160 +:1043D000843009F11092DC0120E488E190E00FB60E +:1043E000F894A895809360000FBE2093600083B777 +:1043F000817F846083BF83B7816083BF7894889511 +:1044000083B78E7F83BF88E10FB6F89480936000F6 +:10441000109260000FBE089508950895CF930E94F2 +:104420000C220E94D6090E940D22C0E08C2F0E940F +:10443000010B811105C0CF5FCE30C1F780E001C014 +:1044400081E0CF9108950C94F51A82E084BD93E049 +:1044500095BD9AEF97BD80936E0008952FB7F8949D +:104460008091DD019091DE01A091DF01B091E0012A +:104470002FBF0895CF92DF92EF92FF920F931F9379 +:104480002FB7F8944091DD015091DE016091DF017A +:104490007091E0012FBF6A017B01EE24FF248C01A3 +:1044A00020E030E0C016D106E206F30610F44150D9 +:1044B0005109481B590BCA011F910F91FF90EF90B2 +:1044C000DF90CF9008951F920F920FB60F92112494 +:1044D0008F939F93AF93BF938091DD019091DE0105 +:1044E000A091DF01B091E0010196A11DB11D809363 +:1044F000DD019093DE01A093DF01B093E001BF9155 +:10450000AF919F918F910F900FBE0F901F901895B4 +:104510000E943712F8942FEF87EA91E621508040ED +:104520009040E1F700C0000087E090EBDC01809351 +:10453000FD019093FE01A093FF01B09300022CE0D7 +:1045400088E190E00FB6F894A895809360000FBEC4 +:1045500020936000FFCFEF92FF920F931F93CF93B2 +:10456000DF93E82EF12C8F2D0E94010BC0E0D0E0EC +:10457000082F10E098010C2E02C0359527950A945B +:10458000E2F720FD05C02196C630D10599F709C094 +:104590006C2F7F2D80E00E940E0CE812F4CF81E09A +:1045A00005C0F3948EE0F812DECF80E0DF91CF916A +:1045B0001F910F91FF90EF900895CF93C82F8CE239 +:1045C0000E94AB22882321F08C2FCF910C94AB2238 +:1045D00080E0CF910895CF930E943824811102C0CA +:1045E0000E941E2488EF95E00E945007C5E6C15046 +:1045F00049F00E94D6098FE39CE90197F1F700C0CA +:104600000000F5CF81EF95E00E94500789E20E94FB +:10461000DD22811111C18AE20E94DD2281110E94F6 +:104620001E2485E00E94DD2281110E9488220E94C2 +:1046300043248093DB0187E00E94DD22882399F1E7 +:104640008BE10E94DD22882351F09091DB0191FBE8 +:10465000882780F921E0822780FB91F922C08EE033 +:104660000E94DD22882351F09091DB0192FB882784 +:1046700080F921E0822780FB92F913C080E10E943B +:10468000DD229091DB01882341F093FB882780F99C +:1046900021E0822780FB93F904C0892F809580FB5D +:1046A00090F99093DB018091DB010E9447240E94E6 +:1046B00055248093EE0180EE0E94DD22882341F094 +:1046C0008091EE01982F909590FB80F98093EE01F8 +:1046D00089E30E94DD22882359F09091EE0191FB3D +:1046E000882780F921E0822780FB91F99093EE01E1 +:1046F00082EE0E94DD22882359F09091EE0192FB18 +:10470000882780F921E0822780FB92F99093EE01BF +:1047100086EE0E94DD22882359F09091EE0193FBF2 +:10472000882780F921E0822780FB93F99093EE019E +:1047300083EE0E94DD22882359F09091EE0194FBD4 +:10474000882780F921E0822780FB94F99093EE017D +:1047500085E30E94DD22882359F09091EE0195FBBC +:10476000882780F921E0822780FB95F99093EE015C +:1047700081E30E94DD22882359F09091EE0196FB9F +:10478000882780F921E0822780FB96F99093EE013B +:1047900081E10E94DD22882359F09091EE0197FB80 +:1047A000882780F921E0822780FB97F99093EE011A +:1047B0008091EE010E9459248091EE0187FB8827A9 +:1047C00080F980930D0187E20E94DD22C82F8EE1DF +:1047D0000E94DD228111C2608FE10E94DD228111E1 +:1047E000C46080E20E94DD228111C86081E20E94E3 +:1047F000DD228111C06182E20E94DD228111C0624E +:1048000083E20E94DD228111C06484E20E94DD22E5 +:10481000882311F0C06802C0CC2329F08C2F0E949D +:1048200050246C2F03C00E944C24682F70E080E05D +:1048300090E0CF910C94F11ECF9108956DEE7EEF34 +:1048400080E090E00E94132E60E082E090E00E9401 +:10485000052E60E083E090E00E94052E60E084E099 +:1048600090E00E94052E60E085E090E00C94052E1B +:1048700080E090E00E94FF2D21E08D3E9E4F09F0E8 +:1048800020E0822F089582E090E00C94F72D682FAD +:1048900082E090E00C94052E83E090E00C94F72DDC +:1048A000682F83E090E00C94052E84E090E00C9457 +:1048B000F72D682F84E090E00C94052E8091E301A1 +:1048C00080FF0BC06091130185E0689FB001112447 +:1048D00075956795759567952AC081FF09C06091A8 +:1048E000130185E0689FB0011124759567951FC07D +:1048F00082FF07C06091130185E0689FB001112419 +:1049000016C04091E4014423C9F06091120146179A +:1049100088F72091130185E0289F90011124429F80 +:10492000C001439F900D112470E00E94C92D603892 +:10493000710540F46115710539F002C065E070E061 +:10494000862F08958FE7089581E008958091E3010F +:1049500080FF08C06091110170E0759567957595AD +:10496000679521C081FF06C06091110170E07595C7 +:10497000679519C082FF04C06091110170E010C0FA +:104980008091E4018823C1F0609110018617A0F79F +:1049900090911101989FC001112470E00E94C92DCF +:1049A0006038710528F46115710521F0862F08958E +:1049B0008FE7089581E0089561E070E0F4CF803FD3 +:1049C00021F40E945E24819504C0813F29F40E9455 +:1049D0005E248093E7010895823F21F40E945E24C3 +:1049E000819504C0833F29F40E945E248093E601F0 +:1049F0000895893F19F40E94A62405C08A3F31F426 +:104A00000E94A62481958093E80108958B3F21F4AC +:104A10000E94A624819504C08C3F29F40E94A624FC +:104A20008093E9010895843F21F48091E50181603C +:104A300017C0853F21F48091E501826011C0863F57 +:104A400021F48091E50184600BC0873F21F48091BF +:104A5000E501886005C0883F31F48091E5018061FF +:104A60008093E50108958D3F21F48091E3018160F9 +:104A70000BC08E3F21F48091E301826005C08F3F1F +:104A800029F48091E30184608093E3010895803FDD +:104A900039F48091E70187FF6CC01092E70169C08B +:104AA000813F29F48091E7011816BCF362C0909110 +:104AB000E601823F29F497FF5CC01092E60159C0DD +:104AC000833F19F41916CCF354C0893F41F4809107 +:104AD000E80118160CF04DC01092E8014AC08A3F58 +:104AE00029F48091E80187FF44C0F6CF8B3F39F469 +:104AF0008091E90187FF3DC01092E9013AC08C3FE7 +:104B000029F48091E9011816BCF333C0843F21F4E5 +:104B10008091E5018E7F17C0853F21F48091E501EA +:104B20008D7F11C0863F21F48091E5018B7F0BC002 +:104B3000873F21F48091E501877F05C0883F31F4EC +:104B40008091E5018F7E8093E50113C08D3F21F4B4 +:104B50008091E3018E7F0BC08E3F21F48091E301B1 +:104B60008D7F05C08F3F29F48091E3018B7F809377 +:104B7000E3018091E60181110EC08091E70181116E +:104B80000AC08091E801811106C08091E90181117C +:104B900002C01092E40108958091DB0183FF7EC082 +:104BA00084E396E00E9450078091E5011F928F9365 +:104BB0008FE296E09F938F930E94E9078DE296E043 +:104BC0000E9450072091E601822F992787FD90953A +:104BD0009F932F938AE296E09F938F930E94E90719 +:104BE00088E296E00E9450072091E701822F9927E2 +:104BF00087FD90959F932F9385E296E09F938F93E7 +:104C00000E94E90783E296E00E9450072091E801A4 +:104C1000822F992787FD90959F932F9380E296E0AE +:104C20009F938F930E94E9078EE196E00E945007C0 +:104C30002091E901822F992787FD90959F932F93CB +:104C40008BE196E09F938F930E94E90788E196E0BD +:104C50000E9450078091E4011F928F9385E196E0B6 +:104C60009F938F930E94E90783E196E00E9450078B +:104C70008091E3011F928F9380E196E09F938F9341 +:104C80000E94E9078DE096E00E9450078DB79EB71D +:104C90004C960FB6F8949EBF0FBE8DBF85EE91E087 +:104CA0000E9481150E942E229093E2018093E101DF +:104CB00008951F93CF93DF938091E1019091E201DA +:104CC0000E943A224091E401442321F020911401F2 +:104CD00030E006C0209115015AE0259F9001112473 +:104CE0008217930708F482C08091E6011091E701D2 +:104CF000D091E801C091E901811107C0111105C0EF +:104D0000D11103C0CC2309F471C04F3F19F04F5F9C +:104D10004093E401181624F40E945E248093E60177 +:104D20008091E60187FF05C00E945E2481958093F3 +:104D3000E601111624F40E945E248093E70180911D +:104D4000E70187FF05C00E945E2481958093E701FB +:104D50006091E601662339F11091E701112319F101 +:104D6000772767FD7095872F972F0E94CE2C23E31E +:104D700033E343E35FE30E94322D0E949B2C609358 +:104D8000E601612F772767FD7095872F972F0E9487 +:104D9000CE2C23E333E343E35FE30E94322D0E94F2 +:104DA0009B2C6093E7011D1624F40E94A624809397 +:104DB000E8018091E80187FF05C00E94A624819543 +:104DC0008093E8011C1624F40E94A6248093E90134 +:104DD0008091E90187FF05C00E94A62481958093F8 +:104DE000E901DF91CF911F910C94CC25DF91CF91F8 +:104DF0001F910895E5EEF1E085E0DF011D928A95AF +:104E0000E9F71092E4011092E301089587E598E034 +:104E10000E9450071F9281E08F931F9285E08F932D +:104E200089E098E09F938F930E94E9070F900F907D +:104E30000F900F900F900F9008958330E9F128F4B0 +:104E4000813061F0823009F10895853009F462C043 +:104E500008F449C0863009F474C008952091150102 +:104E6000862F90E0820F911D8F3F910520F4620FF5 +:104E70006093150103C08FEF809315018091150198 +:104E80001F928F9382E497E072C020911401862FC5 +:104E900090E0820F911D8F3F910520F4620F609387 +:104EA000140103C08FEF80931401809114011F92AD +:104EB0008F9380E397E05BC020911301862F90E0F1 +:104EC000820F911D8F3F910520F4620F60931301B3 +:104ED00003C08FEF80931301809113011F928F9372 +:104EE0008DE197E044C020911201862F90E0820F5F +:104EF000911D8F3F910520F4620F6093120103C052 +:104F00008FEF80931201809112011F928F9388E09E +:104F100097E02DC020911101862F90E0820F911D06 +:104F20008F3F910520F4620F6093110103C08FEF52 +:104F300080931101809111011F928F938FEE96E063 +:104F400016C020911001862F90E0820F911D8F3F97 +:104F5000910520F4620F6093100103C08FEF8093DE +:104F60001001809110011F928F9384ED96E09F9322 +:104F70008F930E94E9070F900F900F900F90089564 +:104F8000833081F128F4813059F08230D1F00895D6 +:104F9000853009F449C0B8F1863009F456C0089547 +:104FA00080911501681720F4861B8093150102C0BB +:104FB00010921501809115011F928F9385EC96E058 +:104FC00054C080911401681720F4861B809314014B +:104FD00002C010921401809114011F928F9383EBF1 +:104FE00096E043C080911301681720F4861B8093DC +:104FF000130102C010921301809113011F928F932D +:1050000080EA96E032C080911201681720F4861B76 +:105010008093120102C010921201809112011F921E +:105020008F938BE896E021C080911101681720F4DE +:10503000861B8093110102C0109211018091110111 +:105040001F928F9382E796E010C08091100168173D +:1050500020F4861B8093100102C0109210018091F1 +:1050600010011F928F9387E596E09F938F930E9484 +:10507000E9070F900F900F900F900895CF93C82FCE +:105080001F928F932CE539E03F932F930E94E907FD +:1050900061E070E080E090E004C0660F771F881F39 +:1050A000991FCA95D2F70E94F11E0F900F900F9092 +:1050B0000F90CF910C94F51ACF938D3109F465C000 +:1050C000B0F58E3009F4CBC100F5873009F49BC1EF +:1050D000A8F4863009F06AC28091DB01817F8E7F5F +:1050E0008093DB0181E699E00E9450078DE99DE005 +:1050F0000E94500781E08093EB0180C1883009F461 +:105100004FC08B3009F47CC151C2863109F4EDC126 +:1051100038F4803109F4B6C1813109F42DC246C298 +:10512000893109F4CBC18B3109F486C13FC2853383 +:1051300009F434C248F4873209F430C208F430C2AA +:10514000893209F42BC232C2833438F48A3308F02E +:1051500029C2883309F454C129C2833409F41EC218 +:10516000883409F023C20E94F51A8CE89DE00E9461 +:1051700050079FEF23ED80E3915020408040E1F7FE +:1051800000C000000E94882239C18CEA9DE00E9484 +:1051900050070E94552C0E9430150E946E0D2EC1A2 +:1051A00081EA9DE00E94500782E79BE00E94500741 +:1051B0000E944C241F928F938FE69BE09F938F93C6 +:1051C0000E94E9078DE69BE00E9450070E9443245D +:1051D000C82F8AE59BE00E9450071F92CF9325E5D8 +:1051E0003BE03F932F930E94E90783E59BE00E94F9 +:1051F000500789E49BE00E9450078C2F81701F921A +:105200008F9326E43BE03F932F930E94E90784E4C9 +:105210009BE00E9450078AE39BE00E945007C1FB7D +:10522000882780F91F928F9327E33BE03F932F93CA +:105230000E94E90785E39BE00E94500789E29BE01A +:105240000E945007C2FB882780F91F928F9326E2A5 +:105250003BE03F932F930E94E90784E29BE00E948A +:1052600050078BE19BE00E945007C3FBCC27C0F99D +:105270001F92CF9388E19BE09F938F930E94E90751 +:1052800086E19BE00E9450070E945524C82F82E0CF +:105290009BE00E9450071F92CF932DEF3AE03F937F +:1052A0002F930E94E9078BEF9AE00E94500782EE4D +:1052B0009AE00E9450078C2F81701F928F932FEDE0 +:1052C0003AE03F932F930E94E9078DB79EB78096EF +:1052D0000FB6F8949EBF0FBE8DBF8DED9AE00E9471 +:1052E000500786EC9AE00E945007C1FB882780F99E +:1052F0001F928F9323EC3AE03F932F930E94E9078C +:1053000081EC9AE00E9450078FEA9AE00E945007D1 +:10531000C2FB882780F91F928F932CEA3AE03F93D3 +:105320002F930E94E9078AEA9AE00E94500788E9D1 +:105330009AE00E945007C3FB882780F91F928F9341 +:1053400025E93AE03F932F930E94E90783E99AE029 +:105350000E94500789E89AE00E945007C4FB882702 +:1053600080F91F928F9326E83AE03F932F930E9493 +:10537000E90784E89AE00E94500782E79AE00E94D9 +:105380005007C5FB882780F91F928F932FE63AE0DC +:105390003F932F930E94E9078DE69AE00E94500701 +:1053A00081E59AE00E945007C6FB882780F91F928A +:1053B0008F932EE43AE03F932F930E94E9078CE409 +:1053C0009AE00E94500784E49AE00E945007C7FBCD +:1053D000CC27C0F91F92CF9381E49AE09F938F93DB +:1053E0000E94E9078FE39AE00E9450078DB79EB7AD +:1053F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C8 +:1054000088E899E058C08091DB01C82FC17080FF07 +:1054100009C08FE79DE00E9450078091DB01817FEA +:105420008E7F44C083E79DE00E9450078091DB019E +:1054300081608093DB01E2CF8091DB0181FBCC278F +:10544000C0F991E0C927C0FB81F98093DB01CC232F +:1054500019F086E69DE025C088E59DE02CC080918E +:10546000DB0182FBCC27C0F991E0C927C0FB82F9A0 +:105470008093DB01CC2319F089E49DE012C089E31D +:105480009DE019C08091DB0183FBCC27C0F991E03E +:10549000C927C0FB83F98093DB01CC2351F08DE257 +:1054A0009DE00E9450078091DB0181608093DB01C9 +:1054B00082C080E29DE00E945007A0CF81E19DE084 +:1054C0000E94500785EE9CE00E94500788EA9CE00D +:1054D0000E94500781E89CE00E9450078DE39CE009 +:1054E0000E94500782E19CE0E6CF84E09CE00E94AD +:1054F00050070E9430151F928F938AEE9BE09F9376 +:105500008F930E94E90780910C011F928F9383ED86 +:105510009BE09F938F930E94E907809172011F92F5 +:105520008F9380EC9BE09F938F930E94E90780917B +:105530000D011F928F938DEA9BE09F938F930E94A2 +:10554000E9078091DD019091DE01A091DF01B0912A +:10555000E001BF93AF939F938F9389E99BE09F9363 +:105560008F930E94E9078DB79EB746960FB6F894C1 +:105570009EBF0FBE8DBF42CF0E94F51AC0910D0194 +:1055800081E0C827C0930D01CC2329F08FE89BE070 +:105590000E94500710C084E89BE08DCF80E003C0DC +:1055A0008D5101C089530E943E2828CF82E89BE09C +:1055B0000E945007C0E08C2FCF91089580E008959D +:1055C00080E00895CF93C82F8091EB01813081F066 +:1055D00020F0823009F44CC042C1A0910E01B0917C +:1055E0000F018C91813169F0823209F03AC109C012 +:1055F000A0910E01B0910F018C91813111F0823296 +:1056000049F48C2F0E94DE2A81112FC08C2F0E941A +:105610005C282CC08C2F0E94E02A811126C0C43146 +:10562000E1F070F4CB3081F0C031D1F40E94062754 +:1056300084E599E00E94500782E08093EB0115C059 +:10564000C93259F0C83361F481E699E00E945007ED +:1056500088E599E00E94500708C01092EB0103C151 +:1056600082E599E00E945007FEC081E08170FDC094 +:10567000C43220F5CE3108F0C0C0CB3099F1C8F467 +:10568000C73009F0D2C08AE08093150194E190936D +:10569000140193E0909313018093120188E08093AA +:1056A000110188E28093100188EF97E00E94500773 +:1056B000BFC0C33149F1C431C1F0B7C0CB3409F424 +:1056C000A9C028F4C93289F0C83361F0AEC0C13531 +:1056D00009F49EC0C23509F499C0CE3409F0A5C0C2 +:1056E0006AE09EC00E940627A3C08091EA01882339 +:1056F00019F01092EA019CC085E098E00E945007E2 +:1057000081E08093EB01B1C08FED97E00E945007DC +:105710008DEC97E00E945007809115011F928F93A6 +:105720008AEC97E09F938F930E94E90788EC97E0BB +:105730000E94500786EB97E00E9450078091140169 +:105740001F928F9383EB97E09F938F930E94E907BB +:1057500081EB97E00E94500782EA97E00E94500791 +:10576000809113011F928F938FE997E09F938F93FE +:105770000E94E9078DE997E00E9450078CE897E0C6 +:105780000E945007809112011F928F9389E897E041 +:105790009F938F930E94E90787E897E00E94500744 +:1057A00082E797E00E945007809111011F928F932A +:1057B0008FE697E09F938F930E94E9078DE697E02D +:1057C0000E94500786E597E00E94500780911001E3 +:1057D0001F928F9383E597E09F938F930E94E90731 +:1057E00081E597E00E9450078DB79EB748960FB6A7 +:1057F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C2 +:10580000E15DFE4F80818093EA0112C061E003C038 +:1058100061E006C06AE08091EA010E941D2708C08D +:105820008091EA010E94C02703C086EF97E013C071 +:105830008091EA01882369F01F928F9380EF97E0AF +:105840009F938F930E94E9070F900F900F900F90F6 +:1058500004C08DEE97E00E94500781E006C01092D0 +:10586000EB0180E002C080E001CFCF910895E1E834 +:10587000F0E08081886080838081816080838FB741 +:10588000F89493E09093890090ED909388008FBFF7 +:105890000895EFE6F0E08081826080830895EFE66E +:1058A000F0E080818D7F80830895EFE6F0E08081D5 +:1058B00092E08927808308951F920F920FB60F926E +:1058C00011242F933F934F935F936F937F938F9305 +:1058D0009F93AF93BF93EF93FF938091EC019091CF +:1058E000ED0101969093ED018093EC01811103C0CD +:1058F00082E00E946E0DE091ED01E695E695F0E004 +:10590000E454F24FE4918091EC018E1303C080E0E7 +:105910000E946E0DFF91EF91BF91AF919F918F917A +:105920007F916F915F914F913F912F910F900FBE9B +:105930000F901F90189504D06894B1118DC00895F0 +:1059400070D088F09F5790F0B92F9927B751A0F0E9 +:10595000D1F0660F771F881F991F1AF0BA95C9F703 +:1059600012C0B13081F077D0B1E0089574C0672FD4 +:10597000782F8827B85F39F0B93FCCF386957795B3 +:105980006795B395D9F73EF490958095709561959C +:105990007F4F8F4F9F4F0895E89409C097FB3EF4C7 +:1059A00090958095709561957F4F8F4F9F4F99236C +:1059B000A9F0F92F96E9BB279395F69587957795EA +:1059C0006795B795F111F8CFFAF4BB0F11F460FFAA +:1059D0001BC06F5F7F4F8F4F9F4F16C0882311F002 +:1059E00096E911C0772321F09EE8872F762F05C016 +:1059F000662371F096E8862F70E060E02AF09A95B1 +:105A0000660F771F881FDAF7880F9695879597F9A5 +:105A1000089557FD9058440F551F59F05F3F71F09E +:105A20004795880F97FB991F61F09F3F79F0879505 +:105A30000895121613061406551FF2CF4695F1DF8E +:105A400008C0161617061806991FF1CF869571051E +:105A5000610508940895E894BB2766277727CB0152 +:105A600097F908950BD078C069D028F06ED018F05F +:105A7000952309F05AC05FC01124EECFCADFA0F30E +:105A8000959FD1F3950F50E0551F629FF001729FD3 +:105A9000BB27F00DB11D639FAA27F00DB11DAA1FF2 +:105AA000649F6627B00DA11D661F829F2227B00D3F +:105AB000A11D621F739FB00DA11D621F839FA00DCA +:105AC000611D221F749F3327A00D611D231F849F1A +:105AD000600D211D822F762F6A2F11249F57504071 +:105AE0008AF0E1F088234AF0EE0FFF1FBB1F661F0C +:105AF000771F881F91505040A9F79E3F510570F0C5 +:105B000014C0AACF5F3FECF3983EDCF386957795FF +:105B10006795B795F795E7959F5FC1F7FE2B880FBF +:105B2000911D9695879597F9089597F99F6780E855 +:105B300070E060E008959FEF80EC089500240A94DF +:105B40001616170618060906089500240A94121658 +:105B50001306140605060895092E0394000C11F48B +:105B6000882352F0BB0F40F4BF2B11F460FF04C038 +:105B70006F5F7F4F8F4F9F4F0895991B79E004C04F +:105B8000991F961708F0961B881F7A95C9F780957C +:105B9000089597FB072E16F4009407D077FD09D0DF +:105BA0000E94E32D07FC05D03EF4909581959F4F10 +:105BB0000895709561957F4F0895EE0FFF1F059032 +:105BC000F491E02D0994AA1BBB1B51E107C0AA1F49 +:105BD000BB1FA617B70710F0A61BB70B881F991F8E +:105BE0005A95A9F780959095BC01CD010895F99932 +:105BF000FECF92BD81BDF89A992780B50895A8E19E +:105C0000B0E042E050E00C941A2E262FF999FECF16 +:105C10001FBA92BD81BD20BD0FB6F894FA9AF99AC9 +:105C20000FBE019608950E94052E272F0C94062E74 +:105C3000DC01CB01FC01F999FECF06C0F2BDE1BD4C +:105C4000F89A319600B40D9241505040B8F708953B +:045C5000F894FFCFF6 +:105C540020026F0D600E3D0E090ED60D0101C90123 +:105C640028080A03140A3F4D3620394205F504BFBB +:105C7400049F046604D903F2030B042404440401BE +:0A5C840002030405060708090000EA +:00000001FF -- cgit v1.2.3 From 6da712ce5e4df09668cda8f208403d3fa29eacc3 Mon Sep 17 00:00:00 2001 From: Justin Garrison Date: Mon, 4 Jan 2016 09:18:06 -0800 Subject: added jgarr keymap for custom dvorak layout :yay: --- keyboard/ergodox_ez/keymaps/keymap_jgarr.c | 184 +++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_jgarr.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_jgarr.c b/keyboard/ergodox_ez/keymaps/keymap_jgarr.c new file mode 100644 index 0000000000..fbdc25109e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_jgarr.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 + * + * ,--------------------------------------------------. ,-----------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | Del | |Backspace| 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |---------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I |------| |---------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `----------------+------+------+------+------+--------' + * | Ctrl | LGui | Alt | Left | Right| | Up | Down | [ | ] | = | + * `----------------------------------' `----------------------------------' + * ,--------------. ,-------------. + * | AltShf| LGui | | Alt | ~L1 | + * ,------|-------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp |------| |------| 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_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + KC_LCTL, KC_LGUI, KC_LALT, KC_LEFT, KC_RGHT, + LALT(KC_LSFT), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_EQL, + KC_LALT, KC_FN1, + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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; + } + +}; -- cgit v1.2.3 From 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:49:36 +0100 Subject: quantum: Add French keymap for OSX (keymap_french_osx) --- quantum/keymap_extras/keymap_french_osx.h | 77 +++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 quantum/keymap_extras/keymap_french_osx.h diff --git a/quantum/keymap_extras/keymap_french_osx.h b/quantum/keymap_extras/keymap_french_osx.h new file mode 100644 index 0000000000..eb31bfb4d0 --- /dev/null +++ b/quantum/keymap_extras/keymap_french_osx.h @@ -0,0 +1,77 @@ +#ifndef KEYMAP_FRENCH_OSX_H +#define KEYMAP_FRENCH_OSX_H + +#include "keymap_common.h" + +// Normal characters +#define FR_AT KC_GRV +#define FR_AMP KC_1 +#define FR_EACU KC_2 +#define FR_QUOT KC_3 +#define FR_APOS KC_4 +#define FR_LPRN KC_5 +#define FR_SECT KC_6 +#define FR_EGRV KC_7 +#define FR_EXLM KC_8 +#define FR_CCED KC_9 +#define FR_AGRV KC_0 +#define FR_RPRN KC_MINS +#define FR_MINS KC_EQL + +#define FR_A KC_Q +#define FR_Z KC_W +#define FR_CIRC KC_LBRC +#define FR_DLR KC_RBRC + +#define FR_Q KC_A +#define FR_M KC_SCLN +#define FR_UGRV KC_QUOT +#define FR_GRV KC_NUHS + +#define FR_LESS KC_NUBS +#define FR_W KC_Z +#define FR_COMM KC_M +#define FR_SCLN KC_COMM +#define FR_COLN KC_DOT +#define FR_EQL KC_SLSH + +// Shifted characters +#define FR_HASH LSFT(KC_GRV) +#define FR_1 LSFT(KC_1) +#define FR_2 LSFT(KC_2) +#define FR_3 LSFT(KC_3) +#define FR_4 LSFT(KC_4) +#define FR_5 LSFT(KC_5) +#define FR_6 LSFT(KC_6) +#define FR_7 LSFT(KC_7) +#define FR_8 LSFT(KC_8) +#define FR_9 LSFT(KC_9) +#define FR_0 LSFT(KC_0) +#define FR_UNDS LSFT(FR_MINS) + +#define FR_UMLT LSFT(FR_CIRC) +#define FR_ASTR LSFT(FR_DLR) + +#define FR_PERC LSFT(FR_UGRV) +#define FR_PND LSFT(FR_GRV) + +#define FR_GRTR LSFT(FR_LESS) +#define FR_QUES LSFT(FR_COMM) +#define FR_DOT LSFT(FR_SCLN) +#define FR_SLSH LSFT(FR_COLN) +#define FR_PLUS LSFT(FR_EQL) + +// Alted characters +#define FR_LCBR LALT(KC_5) +#define FR_RCBR LALT(FR_RPRN) +#define FR_EURO LALT(KC_E) +#define FR_BULT LALT(FR_DLR) +#define FR_TILD LALT(KC_N) + +// Shift+Alt-ed characters +#define FR_LBRC LSFT(LALT(KC_5)) +#define FR_RBRC LSFT(LALT(FR_RPRN)) +#define FR_PIPE LSFT(LALT(KC_L)) +#define FR_BSLS LSFT(LALT(FR_COLN)) + +#endif \ No newline at end of file -- cgit v1.2.3 From 14b4a01e7e0d567f3b0bb31d42bf6b85b38d0555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:49:49 +0100 Subject: ergodox_ez: Add French keymap for OSX (keymap_osx_fr) based on keymap_default_osx --- keyboard/ergodox_ez/keymaps/keymap_osx_fr.c | 187 ++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c new file mode 100644 index 0000000000..4b59d2eb29 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c @@ -0,0 +1,187 @@ +// French AZERTY version of the default_osx file +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_french_osx.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ù /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 + FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, + KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), + KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,FR_UGRV), FR_LESS, 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, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, + KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, + MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), 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,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS, + KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV, + KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_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, FR_7, FR_8, FR_9, FR_ASTR, KC_F12, + KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS, + KC_TRNS, FR_AMP, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS, + KC_TRNS,FR_COMM, FR_0, FR_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; + } + +}; \ No newline at end of file -- cgit v1.2.3 From bee19e5261b9c4be53932d4fe12424685369921e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:56:10 +0100 Subject: ergodox_ez: Add keymap_osx_fr hex file --- keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex | 1471 +++++++++++++++++++++++++ 1 file changed, 1471 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex new file mode 100644 index 0000000000..8915d9caa5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex @@ -0,0 +1,1471 @@ +:100000000C9400070C9444070C9444070C94440788 +:100010000C9444070C9444070C9444070C94440734 +:100020000C9444070C9444070C9458120C942A1313 +:100030000C9444070C9444070C9444070C94440714 +:100040000C9444070C94022C0C9444070C94440721 +:100050000C9444070C94FA210C9444070C94440724 +:100060000C9444070C9444070C9444070C944407E4 +:100070000C9444070C9444070C9444070C944407D4 +:100080000C9444070C9444070C9444070C944407C4 +:100090000C9444070C9444070C9444070C944407B4 +:1000A0000C9444070C9444070C9444079713B91319 +:1000B000A714B913A714FE132114A71476148914D6 +:1000C000D017D017FF17FF17431881189B1A9B1AD8 +:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE +:1000E0000000F0A12E004C002A00E1003481000045 +:1000F0001E00140004001D7164004D001F001A0052 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00368251002800260012000F003700D2 +:100170002F002B00270013003300387130004E0091 +:100180002D003200E300E500C10000000100010085 +:1001900001000100010000003A0025003502340290 +:1001A000010001003B00350030002F00010001007C +:1001B0003C00220422002206010001003D002D0423 +:1001C0002D002D06010001003E000F063200110433 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051001E00000001004000240221021E02E6 +:10020000010001004100250222021F02100001002E +:10021000420026022302200227020100430030028E +:100220003802370638000100440045000100010093 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE000100010000000A0025300D +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20342E392E3372 +:100C2000204156522D4C4942433A20312E382E3124 +:100C3000204156525F415243483A20617672350A4C +:100C4000004F5054494F4E533A204C554641204294 +:100C50004F4F544D41474943204D4F5553454B4508 +:100C6000592045585452414B455920434F4E534FFC +:100C70004C4520434F4D4D414E44204E4B524F204A +:100C80003531320A004255494C443A2030663263CD +:100C9000373733202831303A34373A3334204A61F9 +:100CA0006E2020352032303136290A005649443A28 +:100CB00020307846454544284572676F446F782058 +:100CC000455A29205049443A20307831333037286A +:100CD0004572676F446F7820455A29205645523A2D +:100CE000203078303030310A00444553433A207484 +:100CF0002E6D2E6B2E206B6579626F61726420669B +:100D000069726D7761726520666F72204572676FD8 +:100D1000646F780A000A092D2056657273696F6E38 +:100D2000202D0A000A6D6F7573653A206F66660A9A +:100D3000000A6D6F7573653A206F6E0A000A6B6565 +:100D400079626F6172643A206F66660A000A6B65A9 +:100D500079626F6172643A206F6E0A000A6D617485 +:100D60007269783A206F66660A000A6D617472696A +:100D7000783A206F6E0A000A64656275673A206FE0 +:100D80006E0A000A64656275673A206F66660A003B +:100D90000A0A626F6F746C6F616465722E2E2E206A +:100DA00000433E20006565636F6E6669673A0A001E +:100DB000536C656570204C454420746573740A005B +:100DC0000000000000000000000000010204060A0C +:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD +:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD +:100DF0000F0A0604020100000000000000000000CD +:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 +:100E100024C08091F9019091FA01A091FB01B09159 +:100E2000FC018730904BA740B04BB9F41092F90108 +:100E30001092FA011092FB011092FC0114BE84B7CB +:100E4000877F84BF88E10FB6F8948093600010928A +:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 +:100E6000E0EAFBE502C005900D92AA33B107D9F77D +:100E700011E0AAE3B1E001C01D92A93FB107E1F77B +:100E80000E94900F0C94CE2D0C940000FF93EF93D2 +:100E9000E0913A01F0913B01309709F00995EF910B +:100EA000FF910895FC018591803011F0EFDFFBCFB9 +:100EB0000895FF27E0E230E247FF0CC0419597FF1D +:100EC00009C0EDE26095709580959095611D711D4A +:100ED000811D911D27FF02C0219530E350E2AA2712 +:100EE000660F771F881F991FAA1FA41710F0A41B55 +:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 +:100F0000F395611571058105910541F7ED3211F4F5 +:100F1000EF93F395F21718F43F93F395FBCF8F916E +:100F2000B5DFFA95E1F70895E991F991859180305F +:100F300021F0853219F0AADFF9CF089520E0E89476 +:100F400055915532C1F3503311F4689455915A3389 +:100F500048F4505390F3220F022E220F220F200D3F +:100F6000250FF4CF0EF4219589919991533619F3F9 +:100F7000533729F1533559F1BC0188279927E89453 +:100F80005C3621F48991999168945591543639F4DD +:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 +:100FA0004AE039F0583540E121F0523642E009F08C +:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC +:100FC000EF93FC0181918030B9F360DFFBCFFF9399 +:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 +:100FE000A3DFCF91DF91089561110BC0FC018281D5 +:100FF000882321F085EE0E946D1603C085EE0E94C5 +:10100000351780E090E0089508956091BC017091DB +:10101000BD018091BE019091BF010E94FD205698B4 +:101020005E9825982D9826982E9827982F9881308D +:1010300019F0823021F00895259A2D9A0895269A64 +:101040002E9A089585E098E0892B11F00E940508FA +:1010500080E090E0089556985E9825982D982698FF +:101060002E9827982F988FEF90E090938900809387 +:10107000880090938B0080938A0090938D008093DA +:101080008C00259A2D9A2FEF80E792E02150804026 +:101090009040E1F700C00000269A2E9A2FEF80E7DB +:1010A00092E0215080409040E1F700C00000279A74 +:1010B0002F9A2FEF80E792E0215080409040E1F797 +:1010C00000C0000025982D982FEF80E792E0215076 +:1010D00080409040E1F700C0000026982E982FEF46 +:1010E00080E792E0215080409040E1F700C000008E +:1010F00027982F9856985E9825982D9826982E9880 +:1011000027982F98089589EA8093800089E080933A +:10111000810024982C983F988AB18F748AB96E9870 +:10112000479A8BB1806B8BB9769A0E942B0884E02A +:1011300098E0892B11F00E94040880E090E0089567 +:1011400080E28093000180913C0181110EC00E94D9 +:10115000EF0881E080933C012FEF83ED90E3215075 +:1011600080409040E1F700C0000080E40E94F50854 +:101170008093000181112EC00E941F0980930001FD +:10118000811128C00E941F0980930001811122C093 +:101190008FE30E941F098093000181111BC00E94F0 +:1011A000170980E40E94F50880930001811112C0A4 +:1011B0008CE00E941F098093000181110BC00E94E6 +:1011C0001F0980930001811105C08FE30E941F0950 +:1011D000809300010E9417098091000108951092E8 +:1011E000B9008AE08093B800089594EA9093BC0017 +:1011F0009091BC0097FFFCCF9091B900987F9830F8 +:1012000021F0903111F081E008958093BB0084E8D3 +:101210008093BC008091BC0087FFFCCF8091B90017 +:10122000887F883111F0803471F780E0089584E977 +:101230008093BC008091BC0084FDFCCF0895809316 +:10124000BB0084E88093BC008091BC0087FFFCCF8A +:101250009091B900987F81E0983209F480E0089578 +:1012600084E88093BC008091BC0087FFFCCF809114 +:10127000BB00089580910001811115C080E40E9497 +:10128000F5088093000181110CC082E10E941F09C2 +:1012900080930001811105C08FEF0E941F09809388 +:1012A00000010E94170984B1807F84B985B1807FD5 +:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 +:1012C000469808950E94A008809300010E943A0960 +:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 +:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 +:1012F00083E898E0892B11F00C94830808959F925D +:10130000AF92BF92CF92DF92EF92FF920F931F9313 +:10131000CF93DF93809100018823E1F080913D011C +:101320008F5F80933D01811115C082E493E00E949C +:1013300052070E94A00880930001882329F088E2C8 +:1013400093E00E94520706C084E193E00E94520796 +:101350000E942B080EE311E0C0E0D0E0BB24B39460 +:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 +:10137000F22EC730D10500F580910001811164C0C3 +:1013800080E40E94F50880930001811112C082E17F +:101390000E941F098093000181110BC0C6010C2E11 +:1013A00001C0880F0A94EAF780950E941F09809374 +:1013B00000010E94170948C0CA30A1F028F4C830C3 +:1013C00059F0C93061F005C0CC3089F070F0CD30F3 +:1013D00089F0209A289810C0219A29980DC0229A45 +:1013E0002A980AC0239A2B9807C0529A01C0539A90 +:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 +:10140000799902C082E001C080E091709B25982B01 +:101410007C9902C084E001C080E0892B7D9902C0E4 +:1014200038E001C030E0832B7E9902C020E101C08A +:1014300020E0822B9FB19095991F9927991F929533 +:10144000990F907E892B10C080910001811174C08A +:1014500080E40E94F50880930001882309F459C0B4 +:10146000912C0E941709892DF8019081981739F164 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9452078091D70180FF58 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EB070F900F900F900F908091D70180FF66 +:1014B00004C083E093E00E945207A09201010E94C1 +:1014C0003A0921960F5F1F4FCE30D10509F051CF59 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 +:101500008E13FCCF82E298E0892BC1F00E94220862 +:1015100015C083E10E941F09809300018111A0CFB3 +:1015200081E40E94F50880930001811199CF0E9407 +:101530003009982E909495CF80E096CF81E0DF918E +:10154000CF911F910F91FF90EF90DF90CF90BF90C0 +:10155000AF909F900895E82FF0E0E45BFE4F80810C +:101560000895CF92DF92EF92FF920F931F93CF9344 +:10157000DF938CEE92E00E9452078CE4E82E81E02B +:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 +:1015900012E0DF93CF93DF92CF920E94EB0784EEAD +:1015A00092E00E945207F70181917F0190E00E9432 +:1015B00063219F938F931F930F930E94EB078CEDF2 +:1015C00092E00E94520721968DB79EB708960FB6FB +:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE +:1015E000CF911F910F91FF90EF90DF90CF900895D2 +:1015F0008B3B910578F4883A910540F5853A910541 +:10160000D0F48430910508F0B1C08130910509F41F +:10161000ADC06BC0803E910508F467C0883E91055F +:1016200008F4A4C09C01205F31092031310508F085 +:101630005CC090650895853A910509F459C0863AD1 +:10164000910509F058C082E890E40895883A910520 +:1016500009F454C0893A910509F453C08A3A9105B6 +:1016600009F452C08B3A910509F451C08C3A9105A6 +:1016700009F450C08D3A910509F44FC0803B9105A3 +:1016800009F44EC08E3A910509F44DC08F3A910588 +:1016900009F44CC0813B910509F44BC0823B910594 +:1016A00009F44AC0833B910509F449C0843B910584 +:1016B00009F448C0853B910509F447C0863B910574 +:1016C00009F446C0873B910509F445C0883B910564 +:1016D00009F444C0893B910509F443C08A3B910554 +:1016E00009F442C080E094E4089580E090E0089519 +:1016F00081E890E4089583E890E4089582EE94E40C +:10170000089589EE94E408958AEE94E4089585EBB3 +:1017100094E4089586EB94E4089587EB94E40895A7 +:101720008CEC94E408958DEC94E4089583E895E4BA +:1017300008958AE895E4089582E995E4089584E996 +:1017400095E4089581E296E4089583E296E408958D +:1017500084E296E4089585E296E4089586E296E4AC +:10176000089587E296E408958AE296E4089508953C +:1017700096E0799FF001112494E5899FE00DF11D19 +:101780001124E60FF11DEE0FFF1FEC51FF4F859165 +:1017900094910895880F991FFC01E05AF0408591BB +:1017A00094910895880F991FFC01E052FF4F859195 +:1017B0009491089526E0729FF001112444E5849FDE +:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E +:1017D000FF4F859194919C013A9521154FE1340773 +:1017E00008F41EC13F512115304120F49F700E9422 +:1017F000D20B08959C0130532115304118F49927DC +:10180000906C0895811520E5920769F40E94BD1A35 +:101810004FEF84E39CE0415080409040E1F700C0EE +:1018200000000C941F22813020E5920751F48CE5D2 +:1018300093E00E9452078091D70181608093D70185 +:1018400008959C0130552115304108F051C0292FD1 +:1018500033272F70332721303105D9F4AC01437081 +:10186000552702C0220F331F4A95E2F73C68AC01AE +:1018700064E0440F551F6A95E1F744275370242B09 +:10188000352B73E0880F991F7A95E1F780769927B9 +:101890001DC02230310529F4982F8827816F906A66 +:1018A000089523303105A9F4AC014370552721E098 +:1018B00030E002C0220F331F4A95E2F73C6843E054 +:1018C000880F991F4A95E1F7807E9770822B932BA2 +:1018D000089524303105E1F4AC014370552721E02F +:1018E00030E002C0220F331F4A95E2F73A68E7CF93 +:1018F0009C0130572115304118F49F709062089573 +:101900009C0130582115304118F49F70906A089559 +:10191000803E9105E0F4803C910558F581339105B6 +:1019200009F46FC048F48932910509F463C08A3222 +:10193000910509F46DC072C089339105E9F08238D0 +:101940009105D1F08533910509F44DC067C0833E00 +:10195000910581F138F4803E9105B9F0823E910500 +:10196000D9F05CC0863E910561F1873E9105A1F1F9 +:1019700055C00E94CA0B08952091EA0120FD02C0C3 +:1019800021FF4CC080EE90E049C08091EA0180FFC9 +:10199000F9CF89E390E042C08091EA0182FF0EC056 +:1019A0008091EA0184FF03C080E090E037C083EEBD +:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 +:1019C0002DC08091EA0183FF0BC08091EA0184FD64 +:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 +:1019E00086EE90E01BC08091EA0185FF07C089E286 +:1019F00090E014C08091EA0185FFF9CF85E390E083 +:101A00000DC08091EA0186FF07C08AE290E006C01F +:101A10008091EA0186FFF9CF81E390E00E94F80A05 +:101A20000895089580916D0108959FB7F8941092DC +:101A30005C019FBF9091F001943009F057C09091E4 +:101A4000E9009F703091EC00232F217030FD20E8D9 +:101A5000922B24E02093E9002091EB0020FF43C06B +:101A60002091EE0027FF3FC020915A01222321F050 +:101A70002091E80025FF37C010925A0126E03091EE +:101A8000E80035FD15C03091F001343061F530913A +:101A9000EB0035FD28C0215021F481E080935A01EC +:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 +:101AB0008093F1008091E80085FD0AC08091E800E4 +:101AC00080FFFCCF8091E8008E778093E80006C00D +:101AD0008FB7F89421E020935C018FBF9F709093A3 +:101AE000E90080E008959F709093E9008FEF0895DA +:101AF000CF93DF9300D01F92CDB7DEB79C018091CA +:101B0000F001843019F593E099833B832A83909305 +:101B1000E9008FEF9091E800815095FD06C095EDAA +:101B20009A95F1F700008111F5CF8091E80085FFCB +:101B30000DC040E050E063E070E0CE0101960E94ED +:101B400048108091E8008E778093E8000F900F9006 +:101B50000F90DF91CF910895CF93DF9300D01F9224 +:101B6000CDB7DEB72091F001243021F522E02983A2 +:101B70009B838A8383E08093E9008FEF9091E80054 +:101B8000815095FD06C095ED9A95F1F70000811101 +:101B9000F5CF8091E80085FF0DC040E050E063E0A4 +:101BA00070E0CE0101960E9448108091E8008E7787 +:101BB0008093E8000F900F900F90DF91CF910895E0 +:101BC0002091F0012430F1F422E02093E9002FEF7E +:101BD0003091E800215035FD06C035ED3A95F1F71A +:101BE00000002111F5CF2091E80025FF0BC040E057 +:101BF00050E065E070E00E9448108091E8008E7728 +:101C00008093E8000895CF93DF932091F001243072 +:101C100009F048C0EC0180910C018823E1F080912B +:101C20000D018823C1F085E08093E9008FEF90914A +:101C3000E800815095FD06C095E19A95F1F7000006 +:101C40008111F5CF8091E80085FF2CC040E050E085 +:101C500060E170E017C081E08093E9008FEF909120 +:101C6000E800815095FD06C095ED9A95F1F70000CA +:101C70008111F5CF8091E80085FF14C040E050E06D +:101C800068E070E0CE010E9448108091E8008E77F5 +:101C90008093E80080E1FE01ADE5B1E001900D9296 +:101CA0008A95E1F7DF91CF91089583E993E00E944F +:101CB00052078091EF01811109C00E94DD110E943D +:101CC0003A128091E20084608093E20008958FE8E8 +:101CD00093E00E9452071092EF0108958BE893E081 +:101CE0000C94520787E893E00E9452070C94EF2B64 +:101CF00083E893E00E9452070E94B9210E94F52BCD +:101D00000E94DF140C94110D20915B012F5F822F34 +:101D100062E30E94632D992319F020935B010895DB +:101D200010925B0180915C01882371F18091F00138 +:101D3000843041F58091E9008F702091EC00922F62 +:101D4000917020FD90E8892B94E09093E9009091A8 +:101D5000EB0090FF14C09091EE0097FF10C090919F +:101D6000E80095FF03C01092F100F9CF9091E800D0 +:101D700090FF05C09091E8009E779093E8008F70E7 +:101D80008093E90010925C01089542E061EC81E0EB +:101D90000E94571142E061EC82E00E94571142E03C +:101DA00061EC83E00E94571142E261EC84E00E9402 +:101DB000571142E161EC85E00C9457118091F201DA +:101DC000833009F455C030F4813071F0823009F469 +:101DD0008EC008958A3009F47AC08B3009F460C04F +:101DE000893009F09CC020C08091F101813A09F04E +:101DF00096C08091E800877F8093E8008091F5018C +:101E00009091F601892B21F460E18DE591E003C00A +:101E100060E080E090E070E00E9493108091E80024 +:101E20008B778093E80008958091F101813209F069 +:101E300076C08091F5019091F601009719F0049712 +:101E400009F06DC08091E800877F8093E800809161 +:101E5000E80082FD05C08091F0018111F8CF5FC0DC +:101E60008091F10080936D018091E8008B7753C0E1 +:101E70008091F101813A09F052C08091F501909171 +:101E8000F601892B09F04BC08091E800877F809391 +:101E9000E8008091E80080FFFCCF80910C0136C003 +:101EA0008091F1018132D9F58091F5019091F6018F +:101EB000892BA9F58091E800877F8093E8000E9434 +:101EC0008C118091F30180930C010C94BD1A8091C8 +:101ED000F101813221F58091E800877F8093E8004D +:101EE0000E948C118091F40180936E01089580917D +:101EF000F101813AA1F48091E800877F8093E800A6 +:101F00008091E80080FFFCCF80916E018093F1000A +:101F10008091E8008E778093E8000C948C110895EE +:101F200084B7877F84BF88E10FB6F8948093600000 +:101F3000109260000FBE90E080E80FB6F894809396 +:101F40006100909361000FBE0E946C150E94DD112C +:101F50000E943A128091E20084608093E20085E161 +:101F60009DE00E94F82078940E94BF140E946E1594 +:101F700082E091E00E94DA140E94DD2B82E793E078 +:101F80000E9452078091F001853089F48EE693E03B +:101F90000E9452070E947D218091EE01882391F3D7 +:101FA0000E94A521882371F30E943210EBCF0E947A +:101FB0009C15E8CF292F332723303105C9F064F46D +:101FC0002130310581F02230310509F043C08DE820 +:101FD00090E02BEC33E042C021323105F1F02232A7 +:101FE000310541F137C082E190E028E534E036C0A8 +:101FF00099278130910541F08230910541F0892B7C +:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 +:10201000F3E0849190E09F0121C06530D8F4E62F71 +:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 +:1020300090E014C0653070F470E0FB01EE0FFF1FFC +:10204000E55EFE4F20813181FB01EA5EFE4F80811B +:1020500090E004C080E090E020E030E0FA013183BD +:102060002083089580E189BD82E189BD09B400FE25 +:10207000FDCF8091D8008F7D8093D8008091E000C3 +:1020800082608093E0008091E00081FDFCCF0895A4 +:10209000CF92DF92EF92FF920F931F93CF93DF9334 +:1020A000EC018B016A010E94AB11811133C0C11494 +:1020B000D10439F0F60180819181081B190BC80FFA +:1020C000D91FE12CF12C0115110519F18091E800BF +:1020D00085FD16C08091E8008E778093E800C114DA +:1020E000D10449F0F60180819181E80EF91EF18258 +:1020F000E08285E00FC00E94AB11882321F30AC063 +:1021000089918093F10001501109FFEFEF1AFF0A46 +:10211000DACF80E0DF91CF911F910F91FF90EF9088 +:10212000DF90CF9008952091F7013091F8012617A4 +:10213000370748F06115710539F42091E8002E77D2 +:102140002093E80001C0B90140E061157105A9F1D3 +:102150002091F001222309F443C0253009F442C044 +:102160002091E80023FD40C02091E80022FD32C00C +:102170002091E80020FFE9CF4091F3002091F20088 +:1021800030E0342BFC01CF016115710559F0283086 +:10219000310540F481918093F100615071092F5F06 +:1021A0003F4FF1CF41E02830310509F040E0209168 +:1021B000E8002E772093E800C8CF4111C9CF0AC0AC +:1021C0008091F001882361F0853061F08091E80012 +:1021D00083FD0AC08091E80082FFF2CF80E008957D +:1021E00082E0089583E0089581E008952091F70149 +:1021F0003091F8012617370748F06115710539F459 +:102200002091E8002E772093E80001C0B901FC017D +:1022100020E06115710591F18091F001882309F4A6 +:1022200040C0853009F43FC08091E80083FD3DC087 +:102230008091E80082FD2FC08091E80080FFE9CF07 +:102240002091F3008091F20090E0922B61157105CE +:1022500059F08830910540F424912093F100319693 +:10226000615071090196F2CF21E0089709F020E052 +:102270008091E8008E778093E800CBCF2111CCCFFE +:102280000AC08091F001882361F0853061F080916F +:10229000E80083FD0AC08091E80082FFF2CF80E071 +:1022A000089582E0089583E0089581E00895982FCD +:1022B000973058F59093E900981739F07091EC0039 +:1022C0002091ED005091F00003C0242F762F50E0B4 +:1022D00021FF19C03091EB003E7F3093EB0030912D +:1022E000ED003D7F3093ED003091EB003160309395 +:1022F000EB007093EC002093ED005093F0002091E0 +:10230000EE0027FF07C09F5FD3CF8F708093E90057 +:1023100081E0089580E008958091F10187FF11C068 +:102320008091E80082FD05C08091F0018111F8CF15 +:1023300011C08091E8008B770BC08091F001882359 +:1023400049F08091E80080FFF8CF8091E8008E7717 +:102350008093E80008952091E4003091E50095E62F +:102360004091EC00842F817040FF22C08091E800F2 +:1023700080FD1CC08091F001882391F0853091F0A0 +:102380008091EB0085FD10C04091E4005091E50084 +:102390004217530729F39A01915011F784E00895E9 +:1023A00082E0089583E0089581E0089580E0089533 +:1023B0004091E80042FFDECF08950E944B120E9438 +:1023C0005312E0EEF0E0808181608083E8EDF0E080 +:1023D00080818F77808319BCA7EDB0E08C918E7FD0 +:1023E0008C9380818F7E80831092EF0108950F93EC +:1023F0001F93CF93DF930E944B120E945312C8ED9C +:10240000D0E088818F7788838881806888838881FD +:102410008F7D888319BC1092F0011092EC0110920C +:10242000EE011092ED0100EE10E0F80180818B7F4B +:10243000808388818160888342E060E080E00E9440 +:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 +:10245000808181608083808188608083F8018081B1 +:102460008E7F8083888180618883DF91CF911F91E7 +:102470000F910895E8EDF0E080818F7E8083E7ED95 +:10248000F0E080818160808384E082BF81E080937E +:10249000EF010C94F711E8EDF0E080818E7F8083EE +:1024A0001092E20008951092DA001092E10008956F +:1024B0001F920F920FB60F9211242F933F934F93B9 +:1024C0005F936F937F938F939F93AF93BF93EF939C +:1024D000FF938091E10082FF0BC08091E20082FFB8 +:1024E00007C08091E1008B7F8093E1000E94840E01 +:1024F0008091DA0080FF1FC08091D80080FF1BC050 +:102500008091DA008E7F8093DA008091D90080FF7D +:102510000DC080E189BD82E189BD09B400FEFDCF17 +:1025200081E08093F0010E94550E05C019BC109205 +:10253000F0010E94670E8091E10080FF19C0809138 +:10254000E20080FF15C08091E2008E7F8093E20060 +:102550008091E20080618093E2008091D8008062E7 +:102560008093D80019BC85E08093F0010E94720E20 +:102570008091E10084FF30C08091E20084FF2CC094 +:1025800080E189BD82E189BD09B400FEFDCF809163 +:10259000D8008F7D8093D8008091E1008F7E80935A +:1025A000E1008091E2008F7E8093E2008091E20062 +:1025B00081608093E2008091EC01882311F084E037 +:1025C00007C08091E30087FD02C081E001C083E085 +:1025D0008093F0010E94780E8091E10083FF29C072 +:1025E0008091E20083FF25C08091E100877F809386 +:1025F000E10082E08093F0011092EC018091E10013 +:102600008E7F8093E1008091E2008E7F8093E200D4 +:102610008091E20080618093E20042E060E080E02F +:102620000E9457118091F00088608093F0000E9412 +:102630006E0EFF91EF91BF91AF919F918F917F911E +:102640006F915F914F913F912F910F900FBE0F901F +:102650001F9018951F920F920FB60F9211242F936F +:102660003F934F935F936F937F938F939F93AF931A +:10267000BF93CF93DF93EF93FF93C091E900CF70A7 +:102680008091EC00D82FD17080FDD0E81092E90045 +:102690008091F000877F8093F00078940E946E1301 +:1026A0001092E9008091F00088608093F000CD2BBB +:1026B000CF70C093E900FF91EF91DF91CF91BF916F +:1026C000AF919F918F917F916F915F914F913F91CA +:1026D0002F910F900FBE0F901F9018951F93CF93BF +:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 +:1026F000CDBFE1EFF1E088E08E0F9091F100919372 +:102700008E13FBCF0E94DE0E8091E80083FF1FC175 +:102710008091F1019091F201492F50E04A3051052A +:1027200008F015C1FA01EA5AFF4F0C94832D803846 +:1027300081F0823809F00BC18091F5018F70809390 +:10274000E9008091EB0085FB882780F91092E90071 +:1027500006C08091ED019091EE01911182609091FF +:10276000E800977F9093E8008093F1001092F100C9 +:10277000C8C0282F2D7F09F0EAC0882319F08230C5 +:1027800061F0E5C08091F301813009F0E0C0933041 +:1027900009F080E08093EE012BC08091F30181115C +:1027A00027C08091F5018F7009F4D1C08093E900B2 +:1027B0002091EB0020FF1CC0933021F48091EB00AE +:1027C000806214C09091EB0090619093EB0021E047 +:1027D00030E0A90102C0440F551F8A95E2F74093EB +:1027E000EA001092EA008091EB0088608093EB0091 +:1027F0001092E9008091E800877F86C08111A7C010 +:102800001091F3011F778091E3008078812B8093F2 +:10281000E3008091E800877F8093E8000E948C119C +:102820008091E80080FFFCCF8091E3008068809376 +:10283000E300111102C082E001C083E08093F00147 +:1028400086C08058823008F082C08091F301909158 +:10285000F4018C3D53E0950779F583E08A838AE2A1 +:1028600089834FB7F894DE01139620E03EE051E2F1 +:10287000E32FF0E050935700E49120FF03C0E2956E +:10288000EF703F5FEF708E2F90E0EA3010F0C79648 +:1028900001C0C0968D939D932F5F243149F74FBFA0 +:1028A0008091E800877F8093E8006AE270E0CE01C3 +:1028B00001960E94931014C0AE014F5F5F4F60916C +:1028C000F5010E94DA0FBC01892B09F440C09091F8 +:1028D000E800977F9093E80089819A810E94F61022 +:1028E0008091E8008B778093E80031C0803879F5DB +:1028F0008091E800877F8093E8008091EC018093CD +:10290000F1008091E8008E778093E8000E948C119E +:102910001EC081111CC09091F3019230C0F48091CF +:10292000E800877F8093E8009093EC010E948C116F +:102930008091EC01811106C08091E30087FD02C007 +:1029400081E001C084E08093F0010E94C50E809177 +:10295000E80083FF0AC08091E800877F8093E80049 +:102960008091EB0080628093EB00AA960FB6F894FA +:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 +:102980008091F0018823A1F0C091E900CF7090916F +:10299000EC00892F817090FD80E8C82B1092E9002F +:1029A0008091E80083FD0E946E13CF70C093E90010 +:1029B000CF91089590937401809373010895E091ED +:1029C0007301F0917401309721F00190F081E02DB6 +:1029D000099480E00895EF92FF920F931F93CF9395 +:1029E000DF93E0917301F09174013097B1F18C01A4 +:1029F0000280F381E02D09958091D70182FF2DC0DF +:102A000080FF04C08DE895E00E945207E80110E1C4 +:102A100087E8E82E85E0F82E8091D70180FF0BC073 +:102A200088811F928F93FF92EF920E94EB070F9085 +:102A30000F900F900F90115021961111EDCF8091B2 +:102A4000D70180FF0AC085E895E0DF91CF911F9103 +:102A50000F91FF90EF900C945207DF91CF911F914F +:102A60000F91FF90EF900895E0917301F091740140 +:102A7000309721F00480F581E02D0994089520918C +:102A80007101309172018217930771F09093720176 +:102A900080937101E0917301F0917401309721F0FE +:102AA0000680F781E02D0994089520916F013091FF +:102AB00070018217930771F09093700180936F01FA +:102AC000E0917301F0917401309721F00084F18559 +:102AD000E02D0994089508950C946B150E94BB2174 +:102AE0000E9462090C948122CF93C82F8091D70154 +:102AF00082FF1EC080FF04C086EA95E00E94520754 +:102B00008091D70180FF0CC01F92CF9381EA95E09E +:102B10009F938F930E94EB070F900F900F900F9051 +:102B20008091D70180FF04C08FE995E00E94520791 +:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 +:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD +:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 +:102B600081E0D82E00E010E0E02E802F0E94AB0A1A +:102B7000F60141916F01F42EF826B1F40F5F1F4F5B +:102B80000E30110589F78FEF89838A831B820E949B +:102B9000C4218160782F9D838C8349815A816B8108 +:102BA0008D810E943F1640C09091D70191FF04C0D3 +:102BB0008B870E94B10A8B8520E030E04F2D50E0DA +:102BC000922FBA01022E02C0759567950A94E2F71A +:102BD00060FF24C02E83EF8221E030E0690102C053 +:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D +:102BF00009F420E028870E94C4218160782F9A87F9 +:102C000089874E815F8168858A850E943F16F80119 +:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 +:102C20002630310569F6AACF0E94F2251091750170 +:102C30000E94DF141817A1F00E94DF148093750121 +:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC +:102C50001F910F91FF90EF90DF90CF900C9474151F +:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C +:102C70001F910F91FF90EF90DF90CF900895CF9329 +:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C +:102C9000CDBF4F83588769877A878B87DE0111966E +:102CA00086E0FD0111928A95E9F785E0FE013796ED +:102CB00001900D928A95E1F749815A816B817C815F +:102CC0008D819E810E94571D2B960FB6F894DEBF12 +:102CD0000FBECDBFDF91CF910895CF93882309F424 +:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 +:102CF00089E30E94F31F0E94D22089E30CC083382D +:102D000079F40E94DF1480FDAEC083E50E94F31FBA +:102D10000E94D22083E50E944620CF910C94D220BD +:102D2000843859F40E94DF1482FD9DC087E40E941C +:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 +:102D400048F48C2F0E94852A81118DC08C2F0E94FF +:102D5000F31FE3CF80E28C0F883048F4C77081E026 +:102D600001C0880FCA95EAF70E949B20D6CF8BE559 +:102D70008C0F833078F4C53A29F0C63A31F083E8F5 +:102D800090E005C081E890E002C082E890E0CF9139 +:102D90000C943F1588E58C0F833108F064C0C83A65 +:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 +:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 +:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 +:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 +:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC +:102DF00082EE90E035C089EE90E032C08AEE90E03D +:102E00002FC085EB90E02CC086EB90E029C087EBCB +:102E100090E026C08CEC90E023C08DEC90E020C0C8 +:102E200083E891E01DC08AE891E01AC082E991E050 +:102E300017C084E991E014C081E292E011C083E2FE +:102E400092E00EC084E292E00BC085E292E008C0FE +:102E500086E292E005C087E292E002C08AE292E058 +:102E6000CF910C945515CF910895882309F44BC048 +:102E7000823859F40E94DF1481FF45C089E30E9423 +:102E8000F31F0E94D22089E30CC0833871F40E94A2 +:102E9000DF1480FF38C083E50E94F31F0E94D22018 +:102EA00083E50E9446200C94D220843859F40E9475 +:102EB000DF1482FF28C087E40E94F31F0E94D22003 +:102EC00087E4EFCF9CEF980F913A58F390E2980F78 +:102ED000983050F4877091E001C0990F8A95EAF715 +:102EE000892F0E94A120DFCF9BE5980F933020F41B +:102EF00080E090E00C943F15885A833120F480E004 +:102F000090E00C9455150895882321F00E949B2091 +:102F10000C94D2200895882321F00E94A1200C94C3 +:102F2000D2200895BF92CF92DF92EF92FF920F933B +:102F30001F93CF93DF9300D000D000D0CDB7DEB782 +:102F400025E0FC01DE01119601900D922A95E1F732 +:102F5000FC01408131810281258122952F7063819E +:102F60007481672B09F4E7C23F3F19F44F3F09F41E +:102F7000E2C27C0149833A8389819A812E830E942F +:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 +:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 +:102FA0008B2D807F9B2D9F70F92E882319F0F29432 +:102FB00080EFF822002349F0FF2009F469C28F2D29 +:102FC0000E94AB200E94D22063C2812F0E9435173D +:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 +:102FE000F894DEBF0FBECDBFDF91CF911F910F913F +:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC +:10300000307F8B2D8F70303211F08295807F1123AD +:1030100019F0113021F12DC00023B9F0222309F459 +:10302000A1C1213009F09EC126960FB6F894DEBFEB +:103030000FBECDBFDF91CF911F910F91FF90EF9009 +:10304000DF90CF90BF900C94BB20222319F0213049 +:1030500009F471C28E830E94BE208E8197C1002325 +:1030600021F0263008F067C27DC1253008F063C228 +:103070008DC1002321F0222309F474C109C2222347 +:1030800009F484C11AC22B2D26952695237030E0B1 +:103090002115310521F021303105D1F04CC200233A +:1030A00021F0812F9B2D937002C080E090E0269646 +:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1030C0000F91FF90EF90DF90CF90BF900C943F1541 +:1030D000002321F0812F9B2D937002C080E090E0AF +:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D +:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 +:103100005515812F002319F00E94782402C00E94D7 +:10311000E02426960FB6F894DEBF0FBECDBFDF9138 +:10312000CF911F910F91FF90EF90DF90CF90BF90C4 +:103130000C9465258B2D837009F07BC00111FBC1B8 +:10314000812F829586958770880F880F912F9F70A9 +:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 +:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F +:1031700060E070E004C0440F551F661F771F8A95FA +:10318000D2F7CB01BA01609570958095909503C0F8 +:1031900060E070E0CB012B2D269526952370422F01 +:1031A00050E042305105D9F04330510569F16C29A6 +:1031B0007D298E299F294130510551F126960FB660 +:1031C000F894DEBF0FBECDBFDF91CF911F910F915D +:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 +:1031E0007D298E299F2926960FB6F894DEBF0FBE43 +:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 +:10320000CF90BF900C94BB1E0E949F1EC701B601B9 +:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB +:103220001F910F91FF90EF90DF90CF90BF900C9483 +:10323000831E002319F08B2D817001C08695882391 +:1032400009F479C1812F829586958770880F880F40 +:10325000912F9F70C92ED12CE12CF12C082E04C087 +:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C +:103270004FE050E060E070E004C0440F551F661F4F +:10328000771F8A95D2F7CB01BA016095709580952A +:10329000909503C060E070E0CB012B2D269526951C +:1032A0002370422F50E042305105D9F04330510590 +:1032B00069F16C297D298E299F294130510551F1F1 +:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B +:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 +:1032E000791F6C297D298E299F2926960FB6F8947F +:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 +:10330000EF90DF90CF90BF900C94951F0E94791F93 +:10331000C701B60126960FB6F894DEBF0FBECDBF2B +:10332000DF91CF911F910F91FF90EF90DF90CF90A1 +:10333000BF900C945D1F103FD1F118F4103E50F473 +:10334000A2C0123F09F464C008F44DC0133F09F451 +:1033500074C099C01F708B2D8F710023A1F00E9443 +:10336000F61E812F26960FB6F894DEBF0FBECDBF96 +:10337000DF91CF911F910F91FF90EF90DF90CF9051 +:10338000BF900C9484170E94171F812F26960FB6AA +:10339000F894DEBF0FBECDBFDF91CF911F910F918B +:1033A000FF90EF90DF90CF90BF900C948B1700238D +:1033B000B1F0253008F0BFC08B2D8F7126960FB667 +:1033C000F894DEBF0FBECDBFDF91CF911F910F915B +:1033D000FF90EF90DF90CF90BF900C943C1F263071 +:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 +:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 +:103400000F91FF90EF90DF90CF90BF900C94F61E3D +:10341000002359F38B2D8F7126960FB6F894DEBFDB +:103420000FBECDBFDF91CF911F910F91FF90EF9015 +:10343000DF90CF90BF900C94171F002399F08B2D35 +:103440008F7126960FB6F894DEBF0FBECDBFDF9109 +:10345000CF911F910F91FF90EF90DF90CF90BF9091 +:103460000C94E11E26960FB6F894DEBF0FBECDBFBA +:10347000DF91CF911F910F91FF90EF90DF90CF9050 +:10348000BF900C94D71E0023A9F0222309F4ADCFDE +:10349000812F26960FB6F894DEBF0FBECDBFDF9109 +:1034A000CF911F910F91FF90EF90DF90CF90BF9041 +:1034B0000C946D16222309F4ADCF812F26960FB6FA +:1034C000F894DEBF0FBECDBFDF91CF911F910F915A +:1034D000FF90EF90DF90CF90BF900C9435174B2D5D +:1034E0004F70612FC7010E94F40726960FB6F8941B +:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 +:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 +:10351000612FC70126960FB6F894DEBF0FBECDBF50 +:10352000DF91CF911F910F91FF90EF90DF90CF909F +:10353000BF900C94B70B26960FB6F894DEBF0FBE63 +:10354000CDBFDF91CF911F910F91FF90EF90DF9052 +:10355000CF90BF9008950E94B8200E948D200E94B5 +:10356000D2200E9498260E94652580E090E00E946B +:103570003F1580E090E00C9455150E94A8200C9413 +:10358000AB1A0E94B21F292F22952F7030E02C30E9 +:1035900031054CF42A3031056CF4225031092230C7 +:1035A000310588F407C02C30310549F02F30310542 +:1035B00031F009C0803E48F0803F29F406C093FBFB +:1035C000882780F9089580E0089581E00895CF93D9 +:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 +:1035E0000F900F900F90DF91CF910895CF93DF93BD +:1035F00000D000D000D0CDB7DEB726960FB6F89435 +:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 +:10361000DF93C091840116E080918501C81799F06D +:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 +:103630004081518162817381848195810E94F61A53 +:103640002196C770E9CFDF91CF911F9108954091E6 +:10365000B6015091B7016091B8017091B9018091A4 +:10366000BA019091BB010C94F61A8091BB0182952E +:103670008F7009F054C08091B801882309F44FC0BD +:1036800080918401A09185016091B6017091B7018C +:103690004091B9015091BA01B6E08A1709F43FC0D0 +:1036A00090E041155105C1F17F3F11F46F3FA1F149 +:1036B000B89FF001B99FF00D1124EA57FE4F218108 +:1036C00072132AC02081621327C02281211124C0D5 +:1036D000238134812417350710F421503109241B2C +:1036E000350B283C3105C0F42091BB012F702061BF +:1036F0002093BB0126E0289FF001299FF00D1124A3 +:10370000E557FE4F80818F708061808386EB91E06A +:103710000E9492170C94061B01968770BECF0895E5 +:10372000CF92DF92EF92FF920F931F93CF93DF938D +:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 +:103740008C0185E0F801DE011D9601900D928A95AD +:10375000E1F7D8014C9111965C91119712966C91FA +:1037600012971396CD90DC9014973091B60170911A +:10377000B7018091B9019091BA01009709F46BC12A +:103780007F3F19F43F3F09F466C1E090B801EE2095 +:1037900009F4C0C02091BB01C816D90628F0F60173 +:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 +:1037B000FF24F394883C910578F0F12C207F09F0E8 +:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF +:1037D00091E00E949217B1C0822F807F09F046C00D +:1037E000751314C0341312C0611110C02F70206102 +:1037F0002093BB010E94271B86EB91E00E94921749 +:103800008091BB01D80115968C932EC0CD2819F15B +:103810005F3F11F44F3FF9F0F62E61111CC080910B +:1038200084012091850136E0821709F45AC090E0A6 +:10383000389FF001399FF00D1124EA57FE4F718136 +:10384000571306C07081471303C07281711103C002 +:1038500001968770E9CFF62E662309F418C180918E +:10386000BB0181608093BB01F12C11C1751308C0AD +:10387000341306C0611104C08091BB01D801C3C0DC +:103880004D875E878D859E856A8B0E94C11A6A89E5 +:103890008823E1F16623D1F12091BB01822F82952B +:1038A0008F7090E0029774F08091B6019091B7010B +:1038B00098878F831986DB86CA862C87CE01079668 +:1038C0000E94921786E0F801A6EBB1E001900D92FC +:1038D0008A95E1F70E94351B0E94271BFF24F39471 +:1038E000D6C04D875E878D859E850E94B21F292F89 +:1038F00022952F7030E0223031050CF0BCC09F7053 +:1039000009F0B6C0805E883008F4C1C0C8010E94CA +:103910009217E4CFC816D90608F453C0F601E81B85 +:10392000F90BCF01883C910508F450C0F12C7C2D97 +:10393000D98AC88A89890E94E71AE6EBF1E086E015 +:10394000DF011D928A95E9F70E94271BA0C075131D +:1039500014C0341312C0611110C08091BB01F80172 +:103960008583C8010E94921786E0E6EBF1E0DF0153 +:103970001D928A95E9F7FE2C8AC04D875E878D855A +:103980009E856A8B0E94C11A6A89882309F4BECF7A +:10399000662309F4BBCF2091BB01822F82958F70E3 +:1039A00090E002970CF48ECF8091B6019091B70110 +:1039B0009A8389831B82DD82CC822E83CE0101967D +:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 +:1039D00009F49CCF75132EC034132CC02091BB0169 +:1039E00020FD1FC0822F82958F70D9F0D8011596C7 +:1039F0002C9315978F3049F08F5F982F9295907F79 +:103A0000822F8F70892B15968C93C8010E94921774 +:103A100086E0F801A6EBB1E001900D928A95E1F7FE +:103A200093CF86E0F801A6EBB1E001900D928A9564 +:103A3000E1F72DC04D875E878D859E850E94C11A56 +:103A4000811140CF8091BB0181608093BB01C8018F +:103A50000E9492171CC0662309F458CF4D875E87D9 +:103A60008D859E850E94C11A882309F44FCF2ACFE5 +:103A7000811148CF0CC0243031050CF047CF9F7026 +:103A800009F440CFF8019581907F09F03BCF8F2D4D +:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 +:103AA0001F910F91FF90EF90DF90CF9008951F939B +:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 +:103AC0000FBECDBF4F83588769877A878B879C87C6 +:103AD000CE0107960E94901B882369F08F819885FC +:103AE0002A853B85232BF1F19F3F09F063C08F3F6F +:103AF00009F060C037C086E0FE013796DE011196FE +:103B000001900D928A95E1F76F817885EA85FB85B2 +:103B1000309741F17F3F11F46F3F21F120918501F2 +:103B200030E0C9010196877099274091840150E0E7 +:103B30008417950709F447C069837A83FD83EC8372 +:103B400096E0929FD001939FB00D1124AA57BE4FCB +:103B5000FE01319601900D929A95E1F780938501CF +:103B60000E94061B16E080918401909185018917BF +:103B7000C1F1189FC00111248A579E4F0E94901BCB +:103B8000882379F1E09184011E9FF0011124EA5706 +:103B9000FE4F4081518162817381848195810E94B1 +:103BA000F61A8091840190E001968770992780939E +:103BB0008401D9CF4F81588569857A858B859C850D +:103BC0000E94F61ACFCF0E94BD1A10928501109262 +:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA +:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC +:103BF000CF911F910895EF92FF920F931F93CF9350 +:103C0000DF938C01892B09F46CC0F12CEE24E39432 +:103C1000E8012196F8018491843740F4843008F05B +:103C200051C0813081F0823019F15BC0853709F4D1 +:103C300044C0A8F19CE7980F903708F052C08F77E6 +:103C40000E94351741C00E5F1F4FFE01C49180E2F4 +:103C50008C0F883048F4C7708E2D01C0880FCA952C +:103C6000EAF70E94AB2014C08C2F0E946D162DC065 +:103C70000E5F1F4FFE01C49180E28C0F883058F414 +:103C8000C7708E2D01C0880FCA95EAF70E94B12037 +:103C90000E94D2201AC08C2F0E94351716C00E5FCA +:103CA0001F4FFE01C491CC2381F08FE99FE0019763 +:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC +:103CC000F49003C00E946D168E018F2D882309F495 +:103CD0009FCFEFE9FFE03197F1F700C0000081507E +:103CE000F5CFDF91CF911F910F91FF90EF90089545 +:103CF00008956093C0017093C1018093C2019093B5 +:103D0000C3010C94AB1A0F931F930091C001109143 +:103D1000C1012091C2013091C301DC01CB01802B94 +:103D2000912BA22BB32B8093C0019093C101A09340 +:103D3000C201B093C3011F910F910C94AB1A0F9362 +:103D40001F930091C0011091C1012091C2013091D7 +:103D5000C301DC01CB0180239123A223B3238093F1 +:103D6000C0019093C101A093C201B093C3011F9100 +:103D70000F910C94AB1A0F931F930091C0011091F7 +:103D8000C1012091C2013091C301DC01CB01802728 +:103D90009127A227B3278093C0019093C101A093DC +:103DA000C201B093C3011F910F910C94AB1A1092F2 +:103DB000BC011092BD011092BE011092BF010C9483 +:103DC000AB1A41E050E060E070E004C0440F551FC2 +:103DD000661F771F8A95D2F74093BC015093BD01AF +:103DE0006093BE017093BF010C94AB1A41E050E0A8 +:103DF00060E070E004C0440F551F661F771F8A956E +:103E0000D2F78091BC019091BD01A091BE01B0910B +:103E1000BF01482B592B6A2B7B2B4093BC0150933D +:103E2000BD016093BE017093BF010C94AB1A41E0D9 +:103E300050E060E070E004C0440F551F661F771F1C +:103E40008A95D2F740955095609570958091BC0108 +:103E50009091BD01A091BE01B091BF0148235923AB +:103E60006A237B234093BC015093BD016093BE0144 +:103E70007093BF010C94AB1A41E050E060E070E039 +:103E800004C0440F551F661F771F8A95D2F7809193 +:103E9000BC019091BD01A091BE01B091BF01482726 +:103EA00059276A277B274093BC015093BD0160933B +:103EB000BE017093BF010C94AB1A0F931F93009136 +:103EC000BC011091BD012091BE013091BF01DC0108 +:103ED000CB01802B912BA22BB32B8093BC01909311 +:103EE000BD01A093BE01B093BF011F910F910C942F +:103EF000AB1A0F931F930091BC011091BD0120914B +:103F0000BE013091BF01DC01CB0180239123A223AC +:103F1000B3238093BC019093BD01A093BE01B093E5 +:103F2000BF011F910F910C94AB1A0F931F93009137 +:103F3000BC011091BD012091BE013091BF01DC0197 +:103F4000CB0180279127A227B3278093BC019093B0 +:103F5000BD01A093BE01B093BF011F910F910C94BE +:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 +:103F7000CF93DF938C01C090C001D090C101E0903D +:103F8000C201F090C3014091BC015091BD0160910C +:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 +:103FA000D0E0D701C6010C2E04C0B695A795979511 +:103FB00087950A94D2F780FF07C0B8018C2F0E9422 +:103FC000DA0B8130910531F4219758F7B80180E080 +:103FD0000E94DA0BDF91CF911F910F91FF90EF902C +:103FE000DF90CF90089590910C01992321F090914A +:103FF0000D01911109C020910E0130910F01F901BD +:1040000032969FEF40E030C0982F96959695969502 +:104010009F30A0F4E0910E01F0910F01E90FF11D26 +:10402000877021E030E0A90102C0440F551F8A9536 +:10403000E2F7CA019181892B818308959091D7017C +:1040400090FF23C01F928F9387ED95E09F938F93EE +:104050000E94EB070F900F900F900F9008959F3FD5 +:1040600039F04F5F4E3041F051915813F8CF0DC0E9 +:104070005111F7CF942FF5CF9F3F39F0F901E90F98 +:10408000F11D97FDFA9582830895089590910C0192 +:10409000992321F090910D01911109C020910E01F9 +:1040A00030910F01F9013296205F3F4F30C0982FB9 +:1040B0009695969596959F30A8F4E0910E01F09113 +:1040C0000F01E90FF11D877021E030E0A90102C066 +:1040D000440F551F8A95E2F7CA0180959181892383 +:1040E000818308959091D70190FF16C01F928F93FE +:1040F00089EB95E09F938F930E94EB070F900F90B1 +:104100000F900F9008953196E217F30729F09081F0 +:104110009813F9CF1082F7CF089581E090E0E091F5 +:104120000E01F0910F01E80FF91F10820196803106 +:104130009105A9F708959091D601892B8093D60116 +:10414000089580959091D60189238093D601089592 +:104150001092D60108959091D501892B8093D501B5 +:10416000089580959091D50189238093D501089574 +:104170001092D50108958093C40108951092C4014E +:10418000089580910E0190910F01FC0131969C01E0 +:10419000205F3F4F80E0919191118F5FE217F3070D +:1041A000D1F70895E0910E01F0910F018091D601B1 +:1041B0008083E0910E01F0910F0190818091D501F3 +:1041C000892B80838091C401882361F0E0910E01E6 +:1041D000F0910F019081892B80830E94C120811171 +:1041E0001092C40180910E0190910F010C94EB1478 +:1041F00090933B0180933A010895CF92DF92EF9222 +:10420000FF926C01EE24FF24C114D104E104F104F7 +:1042100021F0C701B60120E101C020E0C72ED82E51 +:10422000E92EFF24C114D104E104F10419F0285F40 +:10423000C701B6016B017C0154E0F694E794D79472 +:10424000C7945A95D1F7C114D104E104F10419F0CF +:104250002C5FC701B6016B017C0142E0F694E79444 +:10426000D794C7944A95D1F7C114D104E104F1045D +:1042700019F02E5FC701B601DC01CB01B695A795F9 +:1042800097958795892B8A2B8B2B09F02F5F822F8F +:10429000FF90EF90DF90CF9008958295982F9C7CAF +:1042A000392F36953695282F237344E0249FC0017B +:1042B0001124932F982B292F2A7A2695892F8575DB +:1042C000880F822B08951F93CF93DF931F92CDB752 +:1042D000DEB799830E944D21182F9981892F0E9462 +:1042E0004D21212F30E0322F2227A901482BCA016E +:1042F0000F90DF91CF911F9108958091F00184304C +:1043000009F11092D80120E488E190E00FB6F8940A +:10431000A895809360000FBE2093600083B7817FD3 +:10432000846083BF83B7816083BF7894889583B7A7 +:104330008E7F83BF88E10FB6F8948093600010925F +:1043400060000FBE089508950895CF930E94A321A1 +:104350000E947F090E94A421C0E08C2F0E94AB0A1A +:10436000811104C0CF5FCE30C1F701C081E0CF9191 +:1043700008950C94BD1A82E084BD93E095BD9AEF38 +:1043800097BD80936E0008952FB7F8948091D9015E +:104390009091DA01A091DB01B091DC012FBF08956B +:1043A000CF92DF92EF92FF920F931F932FB7F89463 +:1043B0004091D9015091DA016091DB017091DC01EB +:1043C0002FBF6A017B01EE24FF248C0120E030E046 +:1043D000C016D106E206F30610F4415051099A01C5 +:1043E000281B390BC9011F910F91FF90EF90DF90AF +:1043F000CF9008951F920F920FB60F9211248F93B2 +:104400009F93AF93BF938091D9019091DA01A091CE +:10441000DB01B091DC010196A11DB11D8093D90192 +:104420009093DA01A093DB01B093DC01BF91AF91CF +:104430009F918F910F900FBE0F901F9018950E9423 +:10444000DD11F8942FEF87EA91E6215080409040EB +:10445000E1F700C0000087E090EBDC018093F901F8 +:104460009093FA01A093FB01B093FC019CE088E1DA +:104470000FB6F894A895809360000FBE90936000EB +:10448000FFCFEF92FF920F931F93CF93DF93D82F1D +:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 +:1044A000C701002E02C0959587950A94E2F780FD1A +:1044B00006C00F5F1F4F0630110591F709C0602F2E +:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA +:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 +:1044E000FF90EF900895CF93C82F8CE20E94412255 +:1044F000882321F08C2FCF910C94412280E0CF9122 +:104500000895CF930E94D023811102C00E94B62348 +:104510008CEF95E00E945207C5E6C15049F00E9419 +:104520007F098FE39CE90197F1F700C00000F5CF08 +:1045300085EF95E00E94520789E20E947322811163 +:1045400013C18AE20E94732281110E94B62385E082 +:104550000E94732281110E941F220E94DB238093FC +:10456000D70187E00E9473228823A9F18BE10E9482 +:104570007322882351F08091D70181FB222720F9F3 +:1045800091E0922790FB81F90EC08EE00E94732289 +:10459000882361F08091D70182FB222720F991E0E6 +:1045A000922790FB82F98093D70115C080E10E9489 +:1045B00073229091D701882341F093FB222720F9A1 +:1045C00081E0822780FB93F904C0892F809580FBCE +:1045D00090F99093D7018091D7010E94DF230E9428 +:1045E000ED238093EA0180EE0E947322882341F03C +:1045F0008091EA01982F909590FB80F98093EA01D1 +:1046000089E30E947322882359F08091EA0181FB9B +:10461000222720F991E0922790FB81F98093EA010B +:1046200082EE0E947322882359F08091EA0182FB76 +:10463000222720F991E0922790FB82F98093EA01EA +:1046400086EE0E947322882359F08091EA0183FB51 +:10465000222720F991E0922790FB83F98093EA01C9 +:1046600083EE0E947322882359F08091EA0184FB33 +:10467000222720F991E0922790FB84F98093EA01A8 +:1046800085E30E947322882359F08091EA0185FB1B +:10469000222720F991E0922790FB85F98093EA0187 +:1046A00081E30E947322882359F08091EA0186FBFE +:1046B000222720F991E0922790FB86F98093EA0166 +:1046C00081E10E947322882359F08091EA0187FBDF +:1046D000222720F991E0922790FB87F98093EA0145 +:1046E0008091EA010E94F1238091EA0187FB8827EB +:1046F00080F980930D0187E20E947322C82F8EE11A +:104700000E9473228111C2608FE10E947322811185 +:10471000C46080E20E9473228111C86081E20E941D +:1047200073228111C06182E20E9473228111C062F2 +:1047300083E20E9473228111C06484E20E9473228A +:10474000882311F0C06802C0CC2329F08C2F0E946E +:10475000E8236C2F03C00E94E423682F70E080E000 +:1047600090E0CF910C94791ECF9108956DEE7EEF7D +:1047700080E090E00E94B92D60E082E090E00E942D +:10478000AB2D60E083E090E00E94AB2D60E084E020 +:1047900090E00E94AB2D60E085E090E00C94AB2DA2 +:1047A00080E090E00E94A52D21E08D3E9E4F09F013 +:1047B00020E0822F089582E090E00C949D2D682FD8 +:1047C00082E090E00C94AB2D83E090E00C949D2D62 +:1047D000682F83E090E00C94AB2D84E090E00C9483 +:1047E0009D2D682F84E090E00C94AB2D8091DF012B +:1047F00080FF0BC06091130185E0689FB001112418 +:1048000075956795759567952BC081FF09C0609177 +:10481000130185E0689FB00111247595679520C04C +:1048200082FF07C06091130185E0689FB0011124E9 +:1048300017C09091E0019923D1F060911201961771 +:1048400088F72091130185E0289F90011124929F01 +:10485000A001939F500D112470E0CA010E946F2D9A +:104860006038710540F46115710539F002C065E0EA +:1048700070E0862F08958FE7089581E00895809174 +:10488000DF0180FF08C06091110170E075956795A8 +:104890007595679521C081FF06C06091110170E098 +:1048A0007595679519C082FF04C06091110170E091 +:1048B00010C09091E0019923C1F06091100196170A +:1048C000A0F780911101899FC001112470E00E941E +:1048D0006F2D6038710528F46115710521F0862F60 +:1048E00008958FE7089581E0089561E070E0F4CFC6 +:1048F000803F21F40E94F623819504C0813F29F472 +:104900000E94F6238093E3010895823F21F40E94E0 +:10491000F623819504C0833F29F40E94F6238093F7 +:10492000E2010895893F19F40E943F2405C08A3F9F +:1049300031F40E943F2481958093E40108958B3FD8 +:1049400021F40E943F24819504C08C3F29F40E94E9 +:104950003F248093E5010895843F21F48091E10193 +:10496000816017C0853F21F48091E101826011C010 +:10497000863F21F48091E10184600BC0873F21F4E0 +:104980008091E101886005C0883F31F48091E101A8 +:1049900080618093E10108958D3F21F48091DF01D2 +:1049A00081600BC08E3F21F48091DF01826005C0E1 +:1049B0008F3F29F48091DF0184608093DF010895A7 +:1049C000803F39F48091E30187FF6CC01092E301CE +:1049D00069C0813F29F48091E3011816BCF362C0DD +:1049E0009091E201823F29F497FF5CC01092E201AE +:1049F00059C0833F19F41916CCF354C0893F41F4D0 +:104A00008091E40118160CF04DC01092E4014AC0E8 +:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 +:104A200039F48091E50187FF3DC01092E5013AC05D +:104A30008C3F29F48091E5011816BCF333C0843F04 +:104A400021F48091E1018E7F17C0853F21F4809190 +:104A5000E1018D7F11C0863F21F48091E1018B7FC0 +:104A60000BC0873F21F48091E101877F05C0883F1B +:104A700031F48091E1018F7E8093E10113C08D3F7D +:104A800021F48091DF018E7F0BC08E3F21F4809155 +:104A9000DF018D7F05C08F3F29F48091DF018B7F7F +:104AA0008093DF018091E20181110EC08091E301CA +:104AB00081110AC08091E401811106C08091E50155 +:104AC000811102C01092E00108958091D70183FF07 +:104AD0007EC088E396E00E9452078091E1011F9218 +:104AE0008F9383E396E09F938F930E94EB0781E37C +:104AF00096E00E9452078091E201282F332727FD7C +:104B000030953F938F938EE296E09F938F930E9410 +:104B1000EB078CE296E00E9452078091E301282F78 +:104B2000332727FD30953F938F9389E296E09F933B +:104B30008F930E94EB0787E296E00E9452078091D4 +:104B4000E401282F332727FD30953F938F9384E28C +:104B500096E09F938F930E94EB0782E296E00E947B +:104B600052078091E501282F332727FD30953F9389 +:104B70008F938FE196E09F938F930E94EB078CE1D8 +:104B800096E00E9452078091E0011F928F9389E185 +:104B900096E09F938F930E94EB0787E196E00E9437 +:104BA00052078091DF011F928F9384E196E09F93DB +:104BB0008F930E94EB0781E196E00E9452078DB728 +:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 +:104BD00091E00E9434150E94C4219093DE018093DD +:104BE000DD0108951F93CF93DF938091DD019091B4 +:104BF000DE010E94D021AC019091E001992321F0C7 +:104C00002091140130E006C0209115018AE0289F10 +:104C1000900111244217530708F486C08091E201E5 +:104C2000C091E301D091E4011091E501811107C029 +:104C3000C11176C0D11174C0111172C075C09F3FEF +:104C400019F09F5F9093E001181624F40E94F62358 +:104C50008093E2018091E20187FF05C00E94F62364 +:104C600081958093E2011C1624F40E94F623809320 +:104C7000E3018091E30187FF05C00E94F62381953F +:104C80008093E3016091E201662339F1C091E30171 +:104C9000CC2319F1772767FD7095872F972F0E94F6 +:104CA000742C23E333E343E35FE30E94D82C0E9498 +:104CB000412C6093E2016C2F772767FD7095872F59 +:104CC000972F0E94742C23E333E343E35FE30E94B6 +:104CD000D82C0E94412C6093E3011D1624F40E94FD +:104CE0003F248093E4018091E40187FF05C00E9486 +:104CF0003F2481958093E401111624F40E943F24FF +:104D00008093E5018091E50187FF05C00E943F2463 +:104D100081958093E501DF91CF911F910C946525DA +:104D20009F3F09F08ECF96CFDF91CF911F910895CD +:104D3000E1EEF1E085E0DF011D928A95E9F710923E +:104D4000E0011092DF0108958BE598E00E94520780 +:104D50001F9281E08F931F9285E08F938DE098E002 +:104D60009F938F930E94EB070F900F900F900F90DF +:104D70000F900F9008958330E9F128F4813061F0AD +:104D8000823009F10895853009F462C008F449C001 +:104D9000863009F474C0089580911501262F30E003 +:104DA000280F311D2F3F310524F4680F6093150142 +:104DB00003C08FEF80931501809115011F928F938F +:104DC00086E497E072C080911401262F30E0280F0E +:104DD000311D2F3F310524F4680F6093140103C087 +:104DE0008FEF80931401809114011F928F9384E3BD +:104DF00097E05BC080911301262F30E0280F311D12 +:104E00002F3F310524F4680F6093130103C08FEF27 +:104E100080931301809113011F928F9381E297E099 +:104E200044C080911201262F30E0280F311D2F3F02 +:104E3000310524F4680F6093120103C08FEF809353 +:104E40001201809112011F928F938CE097E02DC088 +:104E500080911101262F30E0280F311D2F3F3105A1 +:104E600024F4680F6093110103C08FEF8093110148 +:104E7000809111011F928F9383EF96E016C080916D +:104E80001001262F30E0280F311D2F3F310524F46B +:104E9000680F6093100103C08FEF80931001809121 +:104EA00010011F928F9388ED96E09F938F930E943D +:104EB000EB070F900F900F900F900895833081F1C2 +:104EC00028F4813059F08230D1F00895853009F40A +:104ED00049C0B8F1863009F456C008958091150193 +:104EE000681720F4861B8093150102C010921501EB +:104EF000809115011F928F9389EC96E054C08091A8 +:104F00001401681720F4861B8093140102C01092CC +:104F10001401809114011F928F9387EB96E043C098 +:104F200080911301681720F4861B8093130102C03F +:104F300010921301809113011F928F9384EA96E0DF +:104F400032C080911201681720F4861B80931201F1 +:104F500002C010921201809112011F928F938FE86C +:104F600096E021C080911101681720F4861B809380 +:104F7000110102C010921101809111011F928F93B3 +:104F800086E796E010C080911001681720F4861B18 +:104F90008093100102C010921001809110011F92A5 +:104FA0008F938BE596E09F938F930E94EB070F9072 +:104FB0000F900F900F900895CF93C82F1F928F934B +:104FC00080E699E09F938F930E94EB0781E090E049 +:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 +:104FE000991FCA95D2F70E94791E0F900F900F90CB +:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 +:10500000B0F58E3009F4CCC100F5873009F49BC1AE +:10501000A8F4863009F06DC28091D701817F8E7F20 +:105020008093D70185E699E00E94520781EA9DE0CE +:105030000E94520781E08093E70180C1883009F423 +:105040004FC08B3009F47CC154C2863109F4F0C1E1 +:1050500038F4803109F4B8C1813109F430C249C251 +:10506000893109F4CEC18B3109F486C142C285333E +:1050700009F437C248F4873209F433C208F433C262 +:10508000893209F42EC235C2833438F48A3308F0E9 +:105090002CC2883309F454C12CC2833409F421C2D0 +:1050A000883409F026C20E94BD1A80E99DE00E9462 +:1050B00052079FEF23ED80E3915020408040E1F7BD +:1050C00000C000000E941F2239C180EB9DE00E94B9 +:1050D00052070E94FB2B0E94DF140E94110D2EC16B +:1050E00085EA9DE00E94520786E79BE00E945207F6 +:1050F0000E94E4231F928F9383E79BE09F938F93FB +:105100000E94EB0781E79BE00E9452070E94DB238D +:10511000C82F8EE59BE00E9452071F92CF9389E52E +:105120009BE09F938F930E94EB0787E59BE00E9493 +:1051300052078DE49BE00E9452078C2F81701F92D2 +:105140008F938AE49BE09F938F930E94EB0788E400 +:105150009BE00E9452078EE39BE00E945207C1FB36 +:10516000882780F91F928F938BE39BE09F938F9307 +:105170000E94EB0789E39BE00E9452078DE29BE0CF +:105180000E945207C2FB882780F91F928F938AE200 +:105190009BE09F938F930E94EB0788E29BE00E9425 +:1051A00052078FE19BE00E945207C3FBCC27C0F956 +:1051B0001F92CF938CE19BE09F938F930E94EB070C +:1051C0008AE19BE00E9452070E94ED23C82F86E0EF +:1051D0009BE00E9452071F92CF9381E09BE09F9338 +:1051E0008F930E94EB078FEF9AE00E94520786EEA2 +:1051F0009AE00E9452078C2F81701F928F9383EE4A +:105200009AE09F938F930E94EB078DB79EB780968D +:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C +:1052200052078AEC9AE00E945207C1FB882780F956 +:105230001F928F9387EC9AE09F938F930E94EB07C6 +:1052400085EC9AE00E94520783EB9AE00E94520795 +:10525000C2FB882780F91F928F9380EB9AE09F937F +:105260008F930E94EB078EEA9AE00E9452078CE926 +:105270009AE00E945207C3FB882780F91F928F9300 +:1052800089E99AE09F938F930E94EB0787E99AE060 +:105290000E9452078DE89AE00E945207C4FB8827BB +:1052A00080F91F928F938AE89AE09F938F930E94D0 +:1052B000EB0788E89AE00E94520786E79AE00E948E +:1052C0005207C5FB882780F91F928F9383E79AE0E6 +:1052D0009F938F930E94EB0781E79AE00E94520709 +:1052E00085E59AE00E945207C6FB882780F91F9245 +:1052F0008F9382E59AE09F938F930E94EB0780E55E +:105300009AE00E94520788E49AE00E945207C7FB85 +:10531000CC27C0F91F92CF9385E49AE09F938F9397 +:105320000E94EB0783E49AE00E9452078DB79EB774 +:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 +:105340008CE899E05BC08091D701C82FC17080FFC5 +:1053500009C083E89DE00E9452078091D701817FB8 +:105360008E7F47C087E79DE00E9452078091D7015A +:1053700081608093D701E2CF9091D70191FBCC2738 +:10538000C0F981E0C827892FC0FB81F98093D7013C +:10539000CC2319F08AE69DE027C08CE59DE02EC065 +:1053A0009091D70192FBCC27C0F981E0C827892FC3 +:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 +:1053C00013C08DE39DE01AC09091D70193FBCC27C9 +:1053D000C0F981E0C827892FC0FB83F98093D701EA +:1053E000CC2351F081E39DE00E9452078091D701C8 +:1053F00081608093D70182C084E29DE00E945207C1 +:105400009DCF85E19DE00E94520789EE9CE00E94BD +:1054100052078CEA9CE00E94520785E89CE00E94BB +:10542000520781E49CE00E94520786E19CE0E6CFAF +:1054300088E09CE00E9452070E94DF141F928F9325 +:105440008EEE9BE09F938F930E94EB0780910C015F +:105450001F928F9387ED9BE09F938F930E94EB07A2 +:1054600080916E011F928F9384EC9BE09F938F93AA +:105470000E94EB0780910D011F928F9381EB9BE0BF +:105480009F938F930E94EB078091D9019091DA014D +:10549000A091DB01B091DC01BF93AF939F938F93F9 +:1054A0008DE99BE09F938F930E94EB078DB79EB78A +:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 +:1054C000BD1AC0910D0181E0C827C0930D01CC2306 +:1054D00029F083E99BE00E94520710C088E89BE016 +:1054E0008DCF80E003C08D5101C089530E94DC271D +:1054F00025CF86E89BE00E945207C0E08C2FCF9119 +:10550000089580E0089580E00895CF93C82F80919A +:10551000E701813081F020F0823009F44FC045C1AD +:10552000E0910E01F0910F018081813169F08232AA +:1055300009F03DC109C0E0910E01F0910F01808199 +:10554000813111F0823261F48C2F0E94812A811105 +:1055500004C08C2F0E94FC272FC081E090E02CC05B +:105560008C2F0E94832A811126C0C431E1F070F48F +:10557000CB3081F0C031D1F40E94A42688E599E0B7 +:105580000E94520782E08093E70115C0C93259F0AA +:10559000C83361F485E699E00E9452078CE599E0F2 +:1055A0000E94520708C01092E70103C186E599E006 +:1055B0000E945207FEC081E08170FDC0C43220F518 +:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 +:1055D000D2C08AE08093150194E19093140193E086 +:1055E000909313018093120188E08093110188E267 +:1055F000809310018CEF97E00E945207BFC0C33127 +:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 +:10561000C93289F0C83361F0AEC0C13509F49EC00B +:10562000C23509F499C0CE3409F0A5C06AE09EC025 +:105630000E94A426A3C08091E601882319F010924D +:10564000E6019CC089E098E00E94520781E08093C7 +:10565000E701B1C083EE97E00E94520781ED97E029 +:105660000E945207809115011F928F938EEC97E054 +:105670009F938F930E94EB078CEC97E00E94520758 +:105680008AEB97E00E945207809114011F928F933A +:1056900087EB97E09F938F930E94EB0785EB97E052 +:1056A0000E94520786EA97E00E94520780911301F8 +:1056B0001F928F9383EA97E09F938F930E94EB074B +:1056C00081EA97E00E94520780E997E00E94520722 +:1056D000809112011F928F938DE897E09F938F9393 +:1056E0000E94EB078BE897E00E94520786E797E05D +:1056F0000E945207809111011F928F9383E797E0D8 +:105700009F938F930E94EB0781E797E00E945207D7 +:105710008AE597E00E945207809110011F928F93B3 +:1057200087E597E09F938F930E94EB0785E597E0CD +:105730000E9452078DB79EB748960FB6F8949EBF49 +:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 +:1057500080818093E60112C061E003C061E006C071 +:105760006AE08091E6010E94BB2608C08091E601B4 +:105770000E945E2703C08AEF97E013C08091E60184 +:10578000882369F01F928F9384EF97E09F938F9304 +:105790000E94EB070F900F900F900F9004C081EFC5 +:1057A00097E00E94520781E006C01092E70180E076 +:1057B00002C080E001CFCF910895E1E8F0E0808160 +:1057C000886080838081816080838FB7F89493E0C4 +:1057D0009093890090ED909388008FBF0895EFE635 +:1057E000F0E08081826080830895EFE6F0E08081C0 +:1057F0008D7F80830895EFE6F0E0908182E0892735 +:10580000808308951F920F920FB60F9211242F9349 +:105810003F934F935F936F937F938F939F93AF9338 +:10582000BF93EF93FF938091E8019091E901019676 +:105830009093E9018093E801811103C082E00E9406 +:10584000110DE091E901E695E695F0E0E054F24FA4 +:10585000E4918091E8018E1303C080E00E94110D55 +:10586000FF91EF91BF91AF919F918F917F916F9138 +:105870005F914F913F912F910F900FBE0F901F900E +:10588000189504D06894B1118DC0089570D088F037 +:105890009F5790F0B92F9927B751A0F0D1F0660F1C +:1058A000771F881F991F1AF0BA95C9F712C0B13037 +:1058B00081F077D0B1E0089574C0672F782F8827E2 +:1058C000B85F39F0B93FCCF3869577956795B39576 +:1058D000D9F73EF490958095709561957F4F8F4FE5 +:1058E0009F4F0895E89409C097FB3EF490958095EA +:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 +:1059000096E9BB279395F695879577956795B79513 +:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 +:105920007F4F8F4F9F4F16C0882311F096E911C00B +:10593000772321F09EE8872F762F05C0662371F02C +:1059400096E8862F70E060E02AF09A95660F771F40 +:10595000881FDAF7880F9695879597F9089557FD70 +:105960009058440F551F59F05F3F71F04795880FCD +:1059700097FB991F61F09F3F79F087950895121664 +:1059800013061406551FF2CF4695F1DF08C0161610 +:1059900017061806991FF1CF8695710561050894C1 +:1059A0000895E894BB2766277727CB0197F90895D8 +:1059B0000BD078C069D028F06ED018F0952309F08C +:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 +:1059D000950F50E0551F629FF001729FBB27F00D9D +:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 +:1059F000B00DA11D661F829F2227B00DA11D621F41 +:105A0000739FB00DA11D621F839FA00D611D221FFA +:105A1000749F3327A00D611D231F849F600D211DDE +:105A2000822F762F6A2F11249F5750408AF0E1F081 +:105A300088234AF0EE0FFF1FBB1F661F771F881FCA +:105A400091505040A9F79E3F510570F014C0AACF65 +:105A50005F3FECF3983EDCF3869577956795B795B5 +:105A6000F795E7959F5FC1F7FE2B880F911D9695DF +:105A7000879597F9089597F99F6780E870E060E04F +:105A800008959FEF80EC089500240A9416161706D7 +:105A900018060906089500240A941216130614061F +:105AA00005060895092E0394000C11F4882352F082 +:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A +:105AC0008F4F9F4F0895991B79E004C0991F961737 +:105AD00008F0961B881F7A95C9F78095089597FB63 +:105AE000072E16F4009407D077FD09D00E94892D67 +:105AF00007FC05D03EF4909581959F4F08957095D1 +:105B000061957F4F0895EE0FFF1F0590F491E02DF2 +:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 +:105B2000B70710F0A61BB70B881F991F5A95A9F746 +:105B300080959095BC01CD010895F999FECF92BD55 +:105B400081BDF89A992780B50895A8E1B0E042E0B8 +:105B500050E00C94C02D262FF999FECF1FBA92BDAC +:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E +:105B700008950E94AB2D272F0C94AC2DDC01CB0196 +:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D +:105B900000B40D9241505040B8F70895F894FFCFEB +:105BA0002002120D030EE00DAC0D780D0101C501B0 +:105BB00028080A03140A3F4D3620394605F904C364 +:105BC00004A3046A04DD03F6030F04280448040157 +:0A5BD000020304050607080900009F +:00000001FF -- cgit v1.2.3 From a4a4952f4b07821eaa2fd8b51743615b8efc02c5 Mon Sep 17 00:00:00 2001 From: Andrew Fecheyr Date: Tue, 5 Jan 2016 11:44:08 +0100 Subject: Andrew's OSX ergodox ez keymap --- keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c | 187 +++ keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex | 1471 +++++++++++++++++++++ 2 files changed, 1658 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c create mode 100644 keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex diff --git a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c new file mode 100644 index 0000000000..48f8c5d2ff --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c @@ -0,0 +1,187 @@ +// 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" + +#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 | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| / | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| Alt |AltShf| Left | Right| | Up | Down | [ | ] | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Esc |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | ( | | { | | | + * | Space| LGui |------| |------| RGui |Enter | + * | | | ) | | } | | | + * `--------------------' `----------------------' + */ +// 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_QUOT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_FN1, + CTL_T(KC_ESC), 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), + LT(SYMB,KC_GRV),KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_LPRN, + KC_SPC,KC_LGUI,KC_RPRN, + // right hand + KC_QUOT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_FN1, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_BSLS, + 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, TG(1), + KC_ESC, CTL_T(KC_ESC), + KC_LCBR, + KC_RCBR,KC_RGUI, 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/keymap_andrew_osx.hex b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex new file mode 100644 index 0000000000..e3ee9afd3e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex @@ -0,0 +1,1471 @@ +:100000000C9400070C9444070C9444070C94440788 +:100010000C9444070C9444070C9444070C94440734 +:100020000C9444070C9444070C9458120C942A1313 +:100030000C9444070C9444070C9444070C94440714 +:100040000C9444070C94022C0C9444070C94440721 +:100050000C9444070C94FA210C9444070C94440724 +:100060000C9444070C9444070C9444070C944407E4 +:100070000C9444070C9444070C9444070C944407D4 +:100080000C9444070C9444070C9444070C944407C4 +:100090000C9444070C9444070C9444070C944407B4 +:1000A0000C9444070C9444070C9444079713B91319 +:1000B000A714B913A714FE132114A71476148914D6 +:1000C000D017D017FF17FF17431881189B1A9B1AD8 +:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE +:1000E0000000F0A12E002B002971E10035810000F5 +:1000F0001E00140004001D71E20027021F001A00F8 +:1001000016001B00E104E3002000080007000600C1 +:1001100050002C0021001500090019004F00260294 +:10012000220017000A000500000065743400C100B9 +:100130000000007F0000E3003400C10000000077F1 +:100140000000290023001C000B0011000000297191 +:10015000240018000D00100052002F0225000C0092 +:100160000E00360051002800260012000F00370054 +:100170002F00E7002700130033823871300030026F +:100180002A002D003100E5000154000001000100AB +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE000100010000000A0025300D +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20342E392E3372 +:100C2000204156522D4C4942433A20312E382E3124 +:100C3000204156525F415243483A20617672350A4C +:100C4000004F5054494F4E533A204C554641204294 +:100C50004F4F544D41474943204D4F5553454B4508 +:100C6000592045585452414B455920434F4E534FFC +:100C70004C4520434F4D4D414E44204E4B524F204A +:100C80003531320A004255494C443A2030663263CD +:100C9000373733202831313A30393A3531204A61FB +:100CA0006E2020352032303136290A005649443A28 +:100CB00020307846454544284572676F446F782058 +:100CC000455A29205049443A20307831333037286A +:100CD0004572676F446F7820455A29205645523A2D +:100CE000203078303030310A00444553433A207484 +:100CF0002E6D2E6B2E206B6579626F61726420669B +:100D000069726D7761726520666F72204572676FD8 +:100D1000646F780A000A092D2056657273696F6E38 +:100D2000202D0A000A6D6F7573653A206F66660A9A +:100D3000000A6D6F7573653A206F6E0A000A6B6565 +:100D400079626F6172643A206F66660A000A6B65A9 +:100D500079626F6172643A206F6E0A000A6D617485 +:100D60007269783A206F66660A000A6D617472696A +:100D7000783A206F6E0A000A64656275673A206FE0 +:100D80006E0A000A64656275673A206F66660A003B +:100D90000A0A626F6F746C6F616465722E2E2E206A +:100DA00000433E20006565636F6E6669673A0A001E +:100DB000536C656570204C454420746573740A005B +:100DC0000000000000000000000000010204060A0C +:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD +:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD +:100DF0000F0A0604020100000000000000000000CD +:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 +:100E100024C08091F9019091FA01A091FB01B09159 +:100E2000FC018730904BA740B04BB9F41092F90108 +:100E30001092FA011092FB011092FC0114BE84B7CB +:100E4000877F84BF88E10FB6F8948093600010928A +:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 +:100E6000E0EAFBE502C005900D92AA33B107D9F77D +:100E700011E0AAE3B1E001C01D92A93FB107E1F77B +:100E80000E94900F0C94CE2D0C940000FF93EF93D2 +:100E9000E0913A01F0913B01309709F00995EF910B +:100EA000FF910895FC018591803011F0EFDFFBCFB9 +:100EB0000895FF27E0E230E247FF0CC0419597FF1D +:100EC00009C0EDE26095709580959095611D711D4A +:100ED000811D911D27FF02C0219530E350E2AA2712 +:100EE000660F771F881F991FAA1FA41710F0A41B55 +:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 +:100F0000F395611571058105910541F7ED3211F4F5 +:100F1000EF93F395F21718F43F93F395FBCF8F916E +:100F2000B5DFFA95E1F70895E991F991859180305F +:100F300021F0853219F0AADFF9CF089520E0E89476 +:100F400055915532C1F3503311F4689455915A3389 +:100F500048F4505390F3220F022E220F220F200D3F +:100F6000250FF4CF0EF4219589919991533619F3F9 +:100F7000533729F1533559F1BC0188279927E89453 +:100F80005C3621F48991999168945591543639F4DD +:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 +:100FA0004AE039F0583540E121F0523642E009F08C +:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC +:100FC000EF93FC0181918030B9F360DFFBCFFF9399 +:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 +:100FE000A3DFCF91DF91089561110BC0FC018281D5 +:100FF000882321F085EE0E946D1603C085EE0E94C5 +:10100000351780E090E0089508956091BC017091DB +:10101000BD018091BE019091BF010E94FD205698B4 +:101020005E9825982D9826982E9827982F9881308D +:1010300019F0823021F00895259A2D9A0895269A64 +:101040002E9A089585E098E0892B11F00E940508FA +:1010500080E090E0089556985E9825982D982698FF +:101060002E9827982F988FEF90E090938900809387 +:10107000880090938B0080938A0090938D008093DA +:101080008C00259A2D9A2FEF80E792E02150804026 +:101090009040E1F700C00000269A2E9A2FEF80E7DB +:1010A00092E0215080409040E1F700C00000279A74 +:1010B0002F9A2FEF80E792E0215080409040E1F797 +:1010C00000C0000025982D982FEF80E792E0215076 +:1010D00080409040E1F700C0000026982E982FEF46 +:1010E00080E792E0215080409040E1F700C000008E +:1010F00027982F9856985E9825982D9826982E9880 +:1011000027982F98089589EA8093800089E080933A +:10111000810024982C983F988AB18F748AB96E9870 +:10112000479A8BB1806B8BB9769A0E942B0884E02A +:1011300098E0892B11F00E94040880E090E0089567 +:1011400080E28093000180913C0181110EC00E94D9 +:10115000EF0881E080933C012FEF83ED90E3215075 +:1011600080409040E1F700C0000080E40E94F50854 +:101170008093000181112EC00E941F0980930001FD +:10118000811128C00E941F0980930001811122C093 +:101190008FE30E941F098093000181111BC00E94F0 +:1011A000170980E40E94F50880930001811112C0A4 +:1011B0008CE00E941F098093000181110BC00E94E6 +:1011C0001F0980930001811105C08FE30E941F0950 +:1011D000809300010E9417098091000108951092E8 +:1011E000B9008AE08093B800089594EA9093BC0017 +:1011F0009091BC0097FFFCCF9091B900987F9830F8 +:1012000021F0903111F081E008958093BB0084E8D3 +:101210008093BC008091BC0087FFFCCF8091B90017 +:10122000887F883111F0803471F780E0089584E977 +:101230008093BC008091BC0084FDFCCF0895809316 +:10124000BB0084E88093BC008091BC0087FFFCCF8A +:101250009091B900987F81E0983209F480E0089578 +:1012600084E88093BC008091BC0087FFFCCF809114 +:10127000BB00089580910001811115C080E40E9497 +:10128000F5088093000181110CC082E10E941F09C2 +:1012900080930001811105C08FEF0E941F09809388 +:1012A00000010E94170984B1807F84B985B1807FD5 +:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 +:1012C000469808950E94A008809300010E943A0960 +:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 +:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 +:1012F00083E898E0892B11F00C94830808959F925D +:10130000AF92BF92CF92DF92EF92FF920F931F9313 +:10131000CF93DF93809100018823E1F080913D011C +:101320008F5F80933D01811115C082E493E00E949C +:1013300052070E94A00880930001882329F088E2C8 +:1013400093E00E94520706C084E193E00E94520796 +:101350000E942B080EE311E0C0E0D0E0BB24B39460 +:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 +:10137000F22EC730D10500F580910001811164C0C3 +:1013800080E40E94F50880930001811112C082E17F +:101390000E941F098093000181110BC0C6010C2E11 +:1013A00001C0880F0A94EAF780950E941F09809374 +:1013B00000010E94170948C0CA30A1F028F4C830C3 +:1013C00059F0C93061F005C0CC3089F070F0CD30F3 +:1013D00089F0209A289810C0219A29980DC0229A45 +:1013E0002A980AC0239A2B9807C0529A01C0539A90 +:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 +:10140000799902C082E001C080E091709B25982B01 +:101410007C9902C084E001C080E0892B7D9902C0E4 +:1014200038E001C030E0832B7E9902C020E101C08A +:1014300020E0822B9FB19095991F9927991F929533 +:10144000990F907E892B10C080910001811174C08A +:1014500080E40E94F50880930001882309F459C0B4 +:10146000912C0E941709892DF8019081981739F164 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9452078091D70180FF58 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EB070F900F900F900F908091D70180FF66 +:1014B00004C083E093E00E945207A09201010E94C1 +:1014C0003A0921960F5F1F4FCE30D10509F051CF59 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 +:101500008E13FCCF82E298E0892BC1F00E94220862 +:1015100015C083E10E941F09809300018111A0CFB3 +:1015200081E40E94F50880930001811199CF0E9407 +:101530003009982E909495CF80E096CF81E0DF918E +:10154000CF911F910F91FF90EF90DF90CF90BF90C0 +:10155000AF909F900895E82FF0E0E45BFE4F80810C +:101560000895CF92DF92EF92FF920F931F93CF9344 +:10157000DF938CEE92E00E9452078CE4E82E81E02B +:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 +:1015900012E0DF93CF93DF92CF920E94EB0784EEAD +:1015A00092E00E945207F70181917F0190E00E9432 +:1015B00063219F938F931F930F930E94EB078CEDF2 +:1015C00092E00E94520721968DB79EB708960FB6FB +:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE +:1015E000CF911F910F91FF90EF90DF90CF900895D2 +:1015F0008B3B910578F4883A910540F5853A910541 +:10160000D0F48430910508F0B1C08130910509F41F +:10161000ADC06BC0803E910508F467C0883E91055F +:1016200008F4A4C09C01205F31092031310508F085 +:101630005CC090650895853A910509F459C0863AD1 +:10164000910509F058C082E890E40895883A910520 +:1016500009F454C0893A910509F453C08A3A9105B6 +:1016600009F452C08B3A910509F451C08C3A9105A6 +:1016700009F450C08D3A910509F44FC0803B9105A3 +:1016800009F44EC08E3A910509F44DC08F3A910588 +:1016900009F44CC0813B910509F44BC0823B910594 +:1016A00009F44AC0833B910509F449C0843B910584 +:1016B00009F448C0853B910509F447C0863B910574 +:1016C00009F446C0873B910509F445C0883B910564 +:1016D00009F444C0893B910509F443C08A3B910554 +:1016E00009F442C080E094E4089580E090E0089519 +:1016F00081E890E4089583E890E4089582EE94E40C +:10170000089589EE94E408958AEE94E4089585EBB3 +:1017100094E4089586EB94E4089587EB94E40895A7 +:101720008CEC94E408958DEC94E4089583E895E4BA +:1017300008958AE895E4089582E995E4089584E996 +:1017400095E4089581E296E4089583E296E408958D +:1017500084E296E4089585E296E4089586E296E4AC +:10176000089587E296E408958AE296E4089508953C +:1017700096E0799FF001112494E5899FE00DF11D19 +:101780001124E60FF11DEE0FFF1FEC51FF4F859165 +:1017900094910895880F991FFC01E05AF0408591BB +:1017A00094910895880F991FFC01E052FF4F859195 +:1017B0009491089526E0729FF001112444E5849FDE +:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E +:1017D000FF4F859194919C013A9521154FE1340773 +:1017E00008F41EC13F512115304120F49F700E9422 +:1017F000D20B08959C0130532115304118F49927DC +:10180000906C0895811520E5920769F40E94BD1A35 +:101810004FEF84E39CE0415080409040E1F700C0EE +:1018200000000C941F22813020E5920751F48CE5D2 +:1018300093E00E9452078091D70181608093D70185 +:1018400008959C0130552115304108F051C0292FD1 +:1018500033272F70332721303105D9F4AC01437081 +:10186000552702C0220F331F4A95E2F73C68AC01AE +:1018700064E0440F551F6A95E1F744275370242B09 +:10188000352B73E0880F991F7A95E1F780769927B9 +:101890001DC02230310529F4982F8827816F906A66 +:1018A000089523303105A9F4AC014370552721E098 +:1018B00030E002C0220F331F4A95E2F73C6843E054 +:1018C000880F991F4A95E1F7807E9770822B932BA2 +:1018D000089524303105E1F4AC014370552721E02F +:1018E00030E002C0220F331F4A95E2F73A68E7CF93 +:1018F0009C0130572115304118F49F709062089573 +:101900009C0130582115304118F49F70906A089559 +:10191000803E9105E0F4803C910558F581339105B6 +:1019200009F46FC048F48932910509F463C08A3222 +:10193000910509F46DC072C089339105E9F08238D0 +:101940009105D1F08533910509F44DC067C0833E00 +:10195000910581F138F4803E9105B9F0823E910500 +:10196000D9F05CC0863E910561F1873E9105A1F1F9 +:1019700055C00E94CA0B08952091EA0120FD02C0C3 +:1019800021FF4CC080EE90E049C08091EA0180FFC9 +:10199000F9CF89E390E042C08091EA0182FF0EC056 +:1019A0008091EA0184FF03C080E090E037C083EEBD +:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 +:1019C0002DC08091EA0183FF0BC08091EA0184FD64 +:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 +:1019E00086EE90E01BC08091EA0185FF07C089E286 +:1019F00090E014C08091EA0185FFF9CF85E390E083 +:101A00000DC08091EA0186FF07C08AE290E006C01F +:101A10008091EA0186FFF9CF81E390E00E94F80A05 +:101A20000895089580916D0108959FB7F8941092DC +:101A30005C019FBF9091F001943009F057C09091E4 +:101A4000E9009F703091EC00232F217030FD20E8D9 +:101A5000922B24E02093E9002091EB0020FF43C06B +:101A60002091EE0027FF3FC020915A01222321F050 +:101A70002091E80025FF37C010925A0126E03091EE +:101A8000E80035FD15C03091F001343061F530913A +:101A9000EB0035FD28C0215021F481E080935A01EC +:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 +:101AB0008093F1008091E80085FD0AC08091E800E4 +:101AC00080FFFCCF8091E8008E778093E80006C00D +:101AD0008FB7F89421E020935C018FBF9F709093A3 +:101AE000E90080E008959F709093E9008FEF0895DA +:101AF000CF93DF9300D01F92CDB7DEB79C018091CA +:101B0000F001843019F593E099833B832A83909305 +:101B1000E9008FEF9091E800815095FD06C095EDAA +:101B20009A95F1F700008111F5CF8091E80085FFCB +:101B30000DC040E050E063E070E0CE0101960E94ED +:101B400048108091E8008E778093E8000F900F9006 +:101B50000F90DF91CF910895CF93DF9300D01F9224 +:101B6000CDB7DEB72091F001243021F522E02983A2 +:101B70009B838A8383E08093E9008FEF9091E80054 +:101B8000815095FD06C095ED9A95F1F70000811101 +:101B9000F5CF8091E80085FF0DC040E050E063E0A4 +:101BA00070E0CE0101960E9448108091E8008E7787 +:101BB0008093E8000F900F900F90DF91CF910895E0 +:101BC0002091F0012430F1F422E02093E9002FEF7E +:101BD0003091E800215035FD06C035ED3A95F1F71A +:101BE00000002111F5CF2091E80025FF0BC040E057 +:101BF00050E065E070E00E9448108091E8008E7728 +:101C00008093E8000895CF93DF932091F001243072 +:101C100009F048C0EC0180910C018823E1F080912B +:101C20000D018823C1F085E08093E9008FEF90914A +:101C3000E800815095FD06C095E19A95F1F7000006 +:101C40008111F5CF8091E80085FF2CC040E050E085 +:101C500060E170E017C081E08093E9008FEF909120 +:101C6000E800815095FD06C095ED9A95F1F70000CA +:101C70008111F5CF8091E80085FF14C040E050E06D +:101C800068E070E0CE010E9448108091E8008E77F5 +:101C90008093E80080E1FE01ADE5B1E001900D9296 +:101CA0008A95E1F7DF91CF91089583E993E00E944F +:101CB00052078091EF01811109C00E94DD110E943D +:101CC0003A128091E20084608093E20008958FE8E8 +:101CD00093E00E9452071092EF0108958BE893E081 +:101CE0000C94520787E893E00E9452070C94EF2B64 +:101CF00083E893E00E9452070E94B9210E94F52BCD +:101D00000E94DF140C94110D20915B012F5F822F34 +:101D100062E30E94632D992319F020935B010895DB +:101D200010925B0180915C01882371F18091F00138 +:101D3000843041F58091E9008F702091EC00922F62 +:101D4000917020FD90E8892B94E09093E9009091A8 +:101D5000EB0090FF14C09091EE0097FF10C090919F +:101D6000E80095FF03C01092F100F9CF9091E800D0 +:101D700090FF05C09091E8009E779093E8008F70E7 +:101D80008093E90010925C01089542E061EC81E0EB +:101D90000E94571142E061EC82E00E94571142E03C +:101DA00061EC83E00E94571142E261EC84E00E9402 +:101DB000571142E161EC85E00C9457118091F201DA +:101DC000833009F455C030F4813071F0823009F469 +:101DD0008EC008958A3009F47AC08B3009F460C04F +:101DE000893009F09CC020C08091F101813A09F04E +:101DF00096C08091E800877F8093E8008091F5018C +:101E00009091F601892B21F460E18DE591E003C00A +:101E100060E080E090E070E00E9493108091E80024 +:101E20008B778093E80008958091F101813209F069 +:101E300076C08091F5019091F601009719F0049712 +:101E400009F06DC08091E800877F8093E800809161 +:101E5000E80082FD05C08091F0018111F8CF5FC0DC +:101E60008091F10080936D018091E8008B7753C0E1 +:101E70008091F101813A09F052C08091F501909171 +:101E8000F601892B09F04BC08091E800877F809391 +:101E9000E8008091E80080FFFCCF80910C0136C003 +:101EA0008091F1018132D9F58091F5019091F6018F +:101EB000892BA9F58091E800877F8093E8000E9434 +:101EC0008C118091F30180930C010C94BD1A8091C8 +:101ED000F101813221F58091E800877F8093E8004D +:101EE0000E948C118091F40180936E01089580917D +:101EF000F101813AA1F48091E800877F8093E800A6 +:101F00008091E80080FFFCCF80916E018093F1000A +:101F10008091E8008E778093E8000C948C110895EE +:101F200084B7877F84BF88E10FB6F8948093600000 +:101F3000109260000FBE90E080E80FB6F894809396 +:101F40006100909361000FBE0E946C150E94DD112C +:101F50000E943A128091E20084608093E20085E161 +:101F60009DE00E94F82078940E94BF140E946E1594 +:101F700082E091E00E94DA140E94DD2B82E793E078 +:101F80000E9452078091F001853089F48EE693E03B +:101F90000E9452070E947D218091EE01882391F3D7 +:101FA0000E94A521882371F30E943210EBCF0E947A +:101FB0009C15E8CF292F332723303105C9F064F46D +:101FC0002130310581F02230310509F043C08DE820 +:101FD00090E02BEC33E042C021323105F1F02232A7 +:101FE000310541F137C082E190E028E534E036C0A8 +:101FF00099278130910541F08230910541F0892B7C +:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 +:10201000F3E0849190E09F0121C06530D8F4E62F71 +:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 +:1020300090E014C0653070F470E0FB01EE0FFF1FFC +:10204000E55EFE4F20813181FB01EA5EFE4F80811B +:1020500090E004C080E090E020E030E0FA013183BD +:102060002083089580E189BD82E189BD09B400FE25 +:10207000FDCF8091D8008F7D8093D8008091E000C3 +:1020800082608093E0008091E00081FDFCCF0895A4 +:10209000CF92DF92EF92FF920F931F93CF93DF9334 +:1020A000EC018B016A010E94AB11811133C0C11494 +:1020B000D10439F0F60180819181081B190BC80FFA +:1020C000D91FE12CF12C0115110519F18091E800BF +:1020D00085FD16C08091E8008E778093E800C114DA +:1020E000D10449F0F60180819181E80EF91EF18258 +:1020F000E08285E00FC00E94AB11882321F30AC063 +:1021000089918093F10001501109FFEFEF1AFF0A46 +:10211000DACF80E0DF91CF911F910F91FF90EF9088 +:10212000DF90CF9008952091F7013091F8012617A4 +:10213000370748F06115710539F42091E8002E77D2 +:102140002093E80001C0B90140E061157105A9F1D3 +:102150002091F001222309F443C0253009F442C044 +:102160002091E80023FD40C02091E80022FD32C00C +:102170002091E80020FFE9CF4091F3002091F20088 +:1021800030E0342BFC01CF016115710559F0283086 +:10219000310540F481918093F100615071092F5F06 +:1021A0003F4FF1CF41E02830310509F040E0209168 +:1021B000E8002E772093E800C8CF4111C9CF0AC0AC +:1021C0008091F001882361F0853061F08091E80012 +:1021D00083FD0AC08091E80082FFF2CF80E008957D +:1021E00082E0089583E0089581E008952091F70149 +:1021F0003091F8012617370748F06115710539F459 +:102200002091E8002E772093E80001C0B901FC017D +:1022100020E06115710591F18091F001882309F4A6 +:1022200040C0853009F43FC08091E80083FD3DC087 +:102230008091E80082FD2FC08091E80080FFE9CF07 +:102240002091F3008091F20090E0922B61157105CE +:1022500059F08830910540F424912093F100319693 +:10226000615071090196F2CF21E0089709F020E052 +:102270008091E8008E778093E800CBCF2111CCCFFE +:102280000AC08091F001882361F0853061F080916F +:10229000E80083FD0AC08091E80082FFF2CF80E071 +:1022A000089582E0089583E0089581E00895982FCD +:1022B000973058F59093E900981739F07091EC0039 +:1022C0002091ED005091F00003C0242F762F50E0B4 +:1022D00021FF19C03091EB003E7F3093EB0030912D +:1022E000ED003D7F3093ED003091EB003160309395 +:1022F000EB007093EC002093ED005093F0002091E0 +:10230000EE0027FF07C09F5FD3CF8F708093E90057 +:1023100081E0089580E008958091F10187FF11C068 +:102320008091E80082FD05C08091F0018111F8CF15 +:1023300011C08091E8008B770BC08091F001882359 +:1023400049F08091E80080FFF8CF8091E8008E7717 +:102350008093E80008952091E4003091E50095E62F +:102360004091EC00842F817040FF22C08091E800F2 +:1023700080FD1CC08091F001882391F0853091F0A0 +:102380008091EB0085FD10C04091E4005091E50084 +:102390004217530729F39A01915011F784E00895E9 +:1023A00082E0089583E0089581E0089580E0089533 +:1023B0004091E80042FFDECF08950E944B120E9438 +:1023C0005312E0EEF0E0808181608083E8EDF0E080 +:1023D00080818F77808319BCA7EDB0E08C918E7FD0 +:1023E0008C9380818F7E80831092EF0108950F93EC +:1023F0001F93CF93DF930E944B120E945312C8ED9C +:10240000D0E088818F7788838881806888838881FD +:102410008F7D888319BC1092F0011092EC0110920C +:10242000EE011092ED0100EE10E0F80180818B7F4B +:10243000808388818160888342E060E080E00E9440 +:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 +:10245000808181608083808188608083F8018081B1 +:102460008E7F8083888180618883DF91CF911F91E7 +:102470000F910895E8EDF0E080818F7E8083E7ED95 +:10248000F0E080818160808384E082BF81E080937E +:10249000EF010C94F711E8EDF0E080818E7F8083EE +:1024A0001092E20008951092DA001092E10008956F +:1024B0001F920F920FB60F9211242F933F934F93B9 +:1024C0005F936F937F938F939F93AF93BF93EF939C +:1024D000FF938091E10082FF0BC08091E20082FFB8 +:1024E00007C08091E1008B7F8093E1000E94840E01 +:1024F0008091DA0080FF1FC08091D80080FF1BC050 +:102500008091DA008E7F8093DA008091D90080FF7D +:102510000DC080E189BD82E189BD09B400FEFDCF17 +:1025200081E08093F0010E94550E05C019BC109205 +:10253000F0010E94670E8091E10080FF19C0809138 +:10254000E20080FF15C08091E2008E7F8093E20060 +:102550008091E20080618093E2008091D8008062E7 +:102560008093D80019BC85E08093F0010E94720E20 +:102570008091E10084FF30C08091E20084FF2CC094 +:1025800080E189BD82E189BD09B400FEFDCF809163 +:10259000D8008F7D8093D8008091E1008F7E80935A +:1025A000E1008091E2008F7E8093E2008091E20062 +:1025B00081608093E2008091EC01882311F084E037 +:1025C00007C08091E30087FD02C081E001C083E085 +:1025D0008093F0010E94780E8091E10083FF29C072 +:1025E0008091E20083FF25C08091E100877F809386 +:1025F000E10082E08093F0011092EC018091E10013 +:102600008E7F8093E1008091E2008E7F8093E200D4 +:102610008091E20080618093E20042E060E080E02F +:102620000E9457118091F00088608093F0000E9412 +:102630006E0EFF91EF91BF91AF919F918F917F911E +:102640006F915F914F913F912F910F900FBE0F901F +:102650001F9018951F920F920FB60F9211242F936F +:102660003F934F935F936F937F938F939F93AF931A +:10267000BF93CF93DF93EF93FF93C091E900CF70A7 +:102680008091EC00D82FD17080FDD0E81092E90045 +:102690008091F000877F8093F00078940E946E1301 +:1026A0001092E9008091F00088608093F000CD2BBB +:1026B000CF70C093E900FF91EF91DF91CF91BF916F +:1026C000AF919F918F917F916F915F914F913F91CA +:1026D0002F910F900FBE0F901F9018951F93CF93BF +:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 +:1026F000CDBFE1EFF1E088E08E0F9091F100919372 +:102700008E13FBCF0E94DE0E8091E80083FF1FC175 +:102710008091F1019091F201492F50E04A3051052A +:1027200008F015C1FA01EA5AFF4F0C94832D803846 +:1027300081F0823809F00BC18091F5018F70809390 +:10274000E9008091EB0085FB882780F91092E90071 +:1027500006C08091ED019091EE01911182609091FF +:10276000E800977F9093E8008093F1001092F100C9 +:10277000C8C0282F2D7F09F0EAC0882319F08230C5 +:1027800061F0E5C08091F301813009F0E0C0933041 +:1027900009F080E08093EE012BC08091F30181115C +:1027A00027C08091F5018F7009F4D1C08093E900B2 +:1027B0002091EB0020FF1CC0933021F48091EB00AE +:1027C000806214C09091EB0090619093EB0021E047 +:1027D00030E0A90102C0440F551F8A95E2F74093EB +:1027E000EA001092EA008091EB0088608093EB0091 +:1027F0001092E9008091E800877F86C08111A7C010 +:102800001091F3011F778091E3008078812B8093F2 +:10281000E3008091E800877F8093E8000E948C119C +:102820008091E80080FFFCCF8091E3008068809376 +:10283000E300111102C082E001C083E08093F00147 +:1028400086C08058823008F082C08091F301909158 +:10285000F4018C3D53E0950779F583E08A838AE2A1 +:1028600089834FB7F894DE01139620E03EE051E2F1 +:10287000E32FF0E050935700E49120FF03C0E2956E +:10288000EF703F5FEF708E2F90E0EA3010F0C79648 +:1028900001C0C0968D939D932F5F243149F74FBFA0 +:1028A0008091E800877F8093E8006AE270E0CE01C3 +:1028B00001960E94931014C0AE014F5F5F4F60916C +:1028C000F5010E94DA0FBC01892B09F440C09091F8 +:1028D000E800977F9093E80089819A810E94F61022 +:1028E0008091E8008B778093E80031C0803879F5DB +:1028F0008091E800877F8093E8008091EC018093CD +:10290000F1008091E8008E778093E8000E948C119E +:102910001EC081111CC09091F3019230C0F48091CF +:10292000E800877F8093E8009093EC010E948C116F +:102930008091EC01811106C08091E30087FD02C007 +:1029400081E001C084E08093F0010E94C50E809177 +:10295000E80083FF0AC08091E800877F8093E80049 +:102960008091EB0080628093EB00AA960FB6F894FA +:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 +:102980008091F0018823A1F0C091E900CF7090916F +:10299000EC00892F817090FD80E8C82B1092E9002F +:1029A0008091E80083FD0E946E13CF70C093E90010 +:1029B000CF91089590937401809373010895E091ED +:1029C0007301F0917401309721F00190F081E02DB6 +:1029D000099480E00895EF92FF920F931F93CF9395 +:1029E000DF93E0917301F09174013097B1F18C01A4 +:1029F0000280F381E02D09958091D70182FF2DC0DF +:102A000080FF04C08DE895E00E945207E80110E1C4 +:102A100087E8E82E85E0F82E8091D70180FF0BC073 +:102A200088811F928F93FF92EF920E94EB070F9085 +:102A30000F900F900F90115021961111EDCF8091B2 +:102A4000D70180FF0AC085E895E0DF91CF911F9103 +:102A50000F91FF90EF900C945207DF91CF911F914F +:102A60000F91FF90EF900895E0917301F091740140 +:102A7000309721F00480F581E02D0994089520918C +:102A80007101309172018217930771F09093720176 +:102A900080937101E0917301F0917401309721F0FE +:102AA0000680F781E02D0994089520916F013091FF +:102AB00070018217930771F09093700180936F01FA +:102AC000E0917301F0917401309721F00084F18559 +:102AD000E02D0994089508950C946B150E94BB2174 +:102AE0000E9462090C948122CF93C82F8091D70154 +:102AF00082FF1EC080FF04C086EA95E00E94520754 +:102B00008091D70180FF0CC01F92CF9381EA95E09E +:102B10009F938F930E94EB070F900F900F900F9051 +:102B20008091D70180FF04C08FE995E00E94520791 +:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 +:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD +:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 +:102B600081E0D82E00E010E0E02E802F0E94AB0A1A +:102B7000F60141916F01F42EF826B1F40F5F1F4F5B +:102B80000E30110589F78FEF89838A831B820E949B +:102B9000C4218160782F9D838C8349815A816B8108 +:102BA0008D810E943F1640C09091D70191FF04C0D3 +:102BB0008B870E94B10A8B8520E030E04F2D50E0DA +:102BC000922FBA01022E02C0759567950A94E2F71A +:102BD00060FF24C02E83EF8221E030E0690102C053 +:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D +:102BF00009F420E028870E94C4218160782F9A87F9 +:102C000089874E815F8168858A850E943F16F80119 +:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 +:102C20002630310569F6AACF0E94F2251091750170 +:102C30000E94DF141817A1F00E94DF148093750121 +:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC +:102C50001F910F91FF90EF90DF90CF900C9474151F +:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C +:102C70001F910F91FF90EF90DF90CF900895CF9329 +:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C +:102C9000CDBF4F83588769877A878B87DE0111966E +:102CA00086E0FD0111928A95E9F785E0FE013796ED +:102CB00001900D928A95E1F749815A816B817C815F +:102CC0008D819E810E94571D2B960FB6F894DEBF12 +:102CD0000FBECDBFDF91CF910895CF93882309F424 +:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 +:102CF00089E30E94F31F0E94D22089E30CC083382D +:102D000079F40E94DF1480FDAEC083E50E94F31FBA +:102D10000E94D22083E50E944620CF910C94D220BD +:102D2000843859F40E94DF1482FD9DC087E40E941C +:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 +:102D400048F48C2F0E94852A81118DC08C2F0E94FF +:102D5000F31FE3CF80E28C0F883048F4C77081E026 +:102D600001C0880FCA95EAF70E949B20D6CF8BE559 +:102D70008C0F833078F4C53A29F0C63A31F083E8F5 +:102D800090E005C081E890E002C082E890E0CF9139 +:102D90000C943F1588E58C0F833108F064C0C83A65 +:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 +:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 +:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 +:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 +:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC +:102DF00082EE90E035C089EE90E032C08AEE90E03D +:102E00002FC085EB90E02CC086EB90E029C087EBCB +:102E100090E026C08CEC90E023C08DEC90E020C0C8 +:102E200083E891E01DC08AE891E01AC082E991E050 +:102E300017C084E991E014C081E292E011C083E2FE +:102E400092E00EC084E292E00BC085E292E008C0FE +:102E500086E292E005C087E292E002C08AE292E058 +:102E6000CF910C945515CF910895882309F44BC048 +:102E7000823859F40E94DF1481FF45C089E30E9423 +:102E8000F31F0E94D22089E30CC0833871F40E94A2 +:102E9000DF1480FF38C083E50E94F31F0E94D22018 +:102EA00083E50E9446200C94D220843859F40E9475 +:102EB000DF1482FF28C087E40E94F31F0E94D22003 +:102EC00087E4EFCF9CEF980F913A58F390E2980F78 +:102ED000983050F4877091E001C0990F8A95EAF715 +:102EE000892F0E94A120DFCF9BE5980F933020F41B +:102EF00080E090E00C943F15885A833120F480E004 +:102F000090E00C9455150895882321F00E949B2091 +:102F10000C94D2200895882321F00E94A1200C94C3 +:102F2000D2200895BF92CF92DF92EF92FF920F933B +:102F30001F93CF93DF9300D000D000D0CDB7DEB782 +:102F400025E0FC01DE01119601900D922A95E1F732 +:102F5000FC01408131810281258122952F7063819E +:102F60007481672B09F4E7C23F3F19F44F3F09F41E +:102F7000E2C27C0149833A8389819A812E830E942F +:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 +:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 +:102FA0008B2D807F9B2D9F70F92E882319F0F29432 +:102FB00080EFF822002349F0FF2009F469C28F2D29 +:102FC0000E94AB200E94D22063C2812F0E9435173D +:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 +:102FE000F894DEBF0FBECDBFDF91CF911F910F913F +:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC +:10300000307F8B2D8F70303211F08295807F1123AD +:1030100019F0113021F12DC00023B9F0222309F459 +:10302000A1C1213009F09EC126960FB6F894DEBFEB +:103030000FBECDBFDF91CF911F910F91FF90EF9009 +:10304000DF90CF90BF900C94BB20222319F0213049 +:1030500009F471C28E830E94BE208E8197C1002325 +:1030600021F0263008F067C27DC1253008F063C228 +:103070008DC1002321F0222309F474C109C2222347 +:1030800009F484C11AC22B2D26952695237030E0B1 +:103090002115310521F021303105D1F04CC200233A +:1030A00021F0812F9B2D937002C080E090E0269646 +:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1030C0000F91FF90EF90DF90CF90BF900C943F1541 +:1030D000002321F0812F9B2D937002C080E090E0AF +:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D +:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 +:103100005515812F002319F00E94782402C00E94D7 +:10311000E02426960FB6F894DEBF0FBECDBFDF9138 +:10312000CF911F910F91FF90EF90DF90CF90BF90C4 +:103130000C9465258B2D837009F07BC00111FBC1B8 +:10314000812F829586958770880F880F912F9F70A9 +:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 +:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F +:1031700060E070E004C0440F551F661F771F8A95FA +:10318000D2F7CB01BA01609570958095909503C0F8 +:1031900060E070E0CB012B2D269526952370422F01 +:1031A00050E042305105D9F04330510569F16C29A6 +:1031B0007D298E299F294130510551F126960FB660 +:1031C000F894DEBF0FBECDBFDF91CF911F910F915D +:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 +:1031E0007D298E299F2926960FB6F894DEBF0FBE43 +:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 +:10320000CF90BF900C94BB1E0E949F1EC701B601B9 +:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB +:103220001F910F91FF90EF90DF90CF90BF900C9483 +:10323000831E002319F08B2D817001C08695882391 +:1032400009F479C1812F829586958770880F880F40 +:10325000912F9F70C92ED12CE12CF12C082E04C087 +:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C +:103270004FE050E060E070E004C0440F551F661F4F +:10328000771F8A95D2F7CB01BA016095709580952A +:10329000909503C060E070E0CB012B2D269526951C +:1032A0002370422F50E042305105D9F04330510590 +:1032B00069F16C297D298E299F294130510551F1F1 +:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B +:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 +:1032E000791F6C297D298E299F2926960FB6F8947F +:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 +:10330000EF90DF90CF90BF900C94951F0E94791F93 +:10331000C701B60126960FB6F894DEBF0FBECDBF2B +:10332000DF91CF911F910F91FF90EF90DF90CF90A1 +:10333000BF900C945D1F103FD1F118F4103E50F473 +:10334000A2C0123F09F464C008F44DC0133F09F451 +:1033500074C099C01F708B2D8F710023A1F00E9443 +:10336000F61E812F26960FB6F894DEBF0FBECDBF96 +:10337000DF91CF911F910F91FF90EF90DF90CF9051 +:10338000BF900C9484170E94171F812F26960FB6AA +:10339000F894DEBF0FBECDBFDF91CF911F910F918B +:1033A000FF90EF90DF90CF90BF900C948B1700238D +:1033B000B1F0253008F0BFC08B2D8F7126960FB667 +:1033C000F894DEBF0FBECDBFDF91CF911F910F915B +:1033D000FF90EF90DF90CF90BF900C943C1F263071 +:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 +:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 +:103400000F91FF90EF90DF90CF90BF900C94F61E3D +:10341000002359F38B2D8F7126960FB6F894DEBFDB +:103420000FBECDBFDF91CF911F910F91FF90EF9015 +:10343000DF90CF90BF900C94171F002399F08B2D35 +:103440008F7126960FB6F894DEBF0FBECDBFDF9109 +:10345000CF911F910F91FF90EF90DF90CF90BF9091 +:103460000C94E11E26960FB6F894DEBF0FBECDBFBA +:10347000DF91CF911F910F91FF90EF90DF90CF9050 +:10348000BF900C94D71E0023A9F0222309F4ADCFDE +:10349000812F26960FB6F894DEBF0FBECDBFDF9109 +:1034A000CF911F910F91FF90EF90DF90CF90BF9041 +:1034B0000C946D16222309F4ADCF812F26960FB6FA +:1034C000F894DEBF0FBECDBFDF91CF911F910F915A +:1034D000FF90EF90DF90CF90BF900C9435174B2D5D +:1034E0004F70612FC7010E94F40726960FB6F8941B +:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 +:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 +:10351000612FC70126960FB6F894DEBF0FBECDBF50 +:10352000DF91CF911F910F91FF90EF90DF90CF909F +:10353000BF900C94B70B26960FB6F894DEBF0FBE63 +:10354000CDBFDF91CF911F910F91FF90EF90DF9052 +:10355000CF90BF9008950E94B8200E948D200E94B5 +:10356000D2200E9498260E94652580E090E00E946B +:103570003F1580E090E00C9455150E94A8200C9413 +:10358000AB1A0E94B21F292F22952F7030E02C30E9 +:1035900031054CF42A3031056CF4225031092230C7 +:1035A000310588F407C02C30310549F02F30310542 +:1035B00031F009C0803E48F0803F29F406C093FBFB +:1035C000882780F9089580E0089581E00895CF93D9 +:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 +:1035E0000F900F900F90DF91CF910895CF93DF93BD +:1035F00000D000D000D0CDB7DEB726960FB6F89435 +:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 +:10361000DF93C091840116E080918501C81799F06D +:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 +:103630004081518162817381848195810E94F61A53 +:103640002196C770E9CFDF91CF911F9108954091E6 +:10365000B6015091B7016091B8017091B9018091A4 +:10366000BA019091BB010C94F61A8091BB0182952E +:103670008F7009F054C08091B801882309F44FC0BD +:1036800080918401A09185016091B6017091B7018C +:103690004091B9015091BA01B6E08A1709F43FC0D0 +:1036A00090E041155105C1F17F3F11F46F3FA1F149 +:1036B000B89FF001B99FF00D1124EA57FE4F218108 +:1036C00072132AC02081621327C02281211124C0D5 +:1036D000238134812417350710F421503109241B2C +:1036E000350B283C3105C0F42091BB012F702061BF +:1036F0002093BB0126E0289FF001299FF00D1124A3 +:10370000E557FE4F80818F708061808386EB91E06A +:103710000E9492170C94061B01968770BECF0895E5 +:10372000CF92DF92EF92FF920F931F93CF93DF938D +:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 +:103740008C0185E0F801DE011D9601900D928A95AD +:10375000E1F7D8014C9111965C91119712966C91FA +:1037600012971396CD90DC9014973091B60170911A +:10377000B7018091B9019091BA01009709F46BC12A +:103780007F3F19F43F3F09F466C1E090B801EE2095 +:1037900009F4C0C02091BB01C816D90628F0F60173 +:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 +:1037B000FF24F394883C910578F0F12C207F09F0E8 +:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF +:1037D00091E00E949217B1C0822F807F09F046C00D +:1037E000751314C0341312C0611110C02F70206102 +:1037F0002093BB010E94271B86EB91E00E94921749 +:103800008091BB01D80115968C932EC0CD2819F15B +:103810005F3F11F44F3FF9F0F62E61111CC080910B +:1038200084012091850136E0821709F45AC090E0A6 +:10383000389FF001399FF00D1124EA57FE4F718136 +:10384000571306C07081471303C07281711103C002 +:1038500001968770E9CFF62E662309F418C180918E +:10386000BB0181608093BB01F12C11C1751308C0AD +:10387000341306C0611104C08091BB01D801C3C0DC +:103880004D875E878D859E856A8B0E94C11A6A89E5 +:103890008823E1F16623D1F12091BB01822F82952B +:1038A0008F7090E0029774F08091B6019091B7010B +:1038B00098878F831986DB86CA862C87CE01079668 +:1038C0000E94921786E0F801A6EBB1E001900D92FC +:1038D0008A95E1F70E94351B0E94271BFF24F39471 +:1038E000D6C04D875E878D859E850E94B21F292F89 +:1038F00022952F7030E0223031050CF0BCC09F7053 +:1039000009F0B6C0805E883008F4C1C0C8010E94CA +:103910009217E4CFC816D90608F453C0F601E81B85 +:10392000F90BCF01883C910508F450C0F12C7C2D97 +:10393000D98AC88A89890E94E71AE6EBF1E086E015 +:10394000DF011D928A95E9F70E94271BA0C075131D +:1039500014C0341312C0611110C08091BB01F80172 +:103960008583C8010E94921786E0E6EBF1E0DF0153 +:103970001D928A95E9F7FE2C8AC04D875E878D855A +:103980009E856A8B0E94C11A6A89882309F4BECF7A +:10399000662309F4BBCF2091BB01822F82958F70E3 +:1039A00090E002970CF48ECF8091B6019091B70110 +:1039B0009A8389831B82DD82CC822E83CE0101967D +:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 +:1039D00009F49CCF75132EC034132CC02091BB0169 +:1039E00020FD1FC0822F82958F70D9F0D8011596C7 +:1039F0002C9315978F3049F08F5F982F9295907F79 +:103A0000822F8F70892B15968C93C8010E94921774 +:103A100086E0F801A6EBB1E001900D928A95E1F7FE +:103A200093CF86E0F801A6EBB1E001900D928A9564 +:103A3000E1F72DC04D875E878D859E850E94C11A56 +:103A4000811140CF8091BB0181608093BB01C8018F +:103A50000E9492171CC0662309F458CF4D875E87D9 +:103A60008D859E850E94C11A882309F44FCF2ACFE5 +:103A7000811148CF0CC0243031050CF047CF9F7026 +:103A800009F440CFF8019581907F09F03BCF8F2D4D +:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 +:103AA0001F910F91FF90EF90DF90CF9008951F939B +:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 +:103AC0000FBECDBF4F83588769877A878B879C87C6 +:103AD000CE0107960E94901B882369F08F819885FC +:103AE0002A853B85232BF1F19F3F09F063C08F3F6F +:103AF00009F060C037C086E0FE013796DE011196FE +:103B000001900D928A95E1F76F817885EA85FB85B2 +:103B1000309741F17F3F11F46F3F21F120918501F2 +:103B200030E0C9010196877099274091840150E0E7 +:103B30008417950709F447C069837A83FD83EC8372 +:103B400096E0929FD001939FB00D1124AA57BE4FCB +:103B5000FE01319601900D929A95E1F780938501CF +:103B60000E94061B16E080918401909185018917BF +:103B7000C1F1189FC00111248A579E4F0E94901BCB +:103B8000882379F1E09184011E9FF0011124EA5706 +:103B9000FE4F4081518162817381848195810E94B1 +:103BA000F61A8091840190E001968770992780939E +:103BB0008401D9CF4F81588569857A858B859C850D +:103BC0000E94F61ACFCF0E94BD1A10928501109262 +:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA +:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC +:103BF000CF911F910895EF92FF920F931F93CF9350 +:103C0000DF938C01892B09F46CC0F12CEE24E39432 +:103C1000E8012196F8018491843740F4843008F05B +:103C200051C0813081F0823019F15BC0853709F4D1 +:103C300044C0A8F19CE7980F903708F052C08F77E6 +:103C40000E94351741C00E5F1F4FFE01C49180E2F4 +:103C50008C0F883048F4C7708E2D01C0880FCA952C +:103C6000EAF70E94AB2014C08C2F0E946D162DC065 +:103C70000E5F1F4FFE01C49180E28C0F883058F414 +:103C8000C7708E2D01C0880FCA95EAF70E94B12037 +:103C90000E94D2201AC08C2F0E94351716C00E5FCA +:103CA0001F4FFE01C491CC2381F08FE99FE0019763 +:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC +:103CC000F49003C00E946D168E018F2D882309F495 +:103CD0009FCFEFE9FFE03197F1F700C0000081507E +:103CE000F5CFDF91CF911F910F91FF90EF90089545 +:103CF00008956093C0017093C1018093C2019093B5 +:103D0000C3010C94AB1A0F931F930091C001109143 +:103D1000C1012091C2013091C301DC01CB01802B94 +:103D2000912BA22BB32B8093C0019093C101A09340 +:103D3000C201B093C3011F910F910C94AB1A0F9362 +:103D40001F930091C0011091C1012091C2013091D7 +:103D5000C301DC01CB0180239123A223B3238093F1 +:103D6000C0019093C101A093C201B093C3011F9100 +:103D70000F910C94AB1A0F931F930091C0011091F7 +:103D8000C1012091C2013091C301DC01CB01802728 +:103D90009127A227B3278093C0019093C101A093DC +:103DA000C201B093C3011F910F910C94AB1A1092F2 +:103DB000BC011092BD011092BE011092BF010C9483 +:103DC000AB1A41E050E060E070E004C0440F551FC2 +:103DD000661F771F8A95D2F74093BC015093BD01AF +:103DE0006093BE017093BF010C94AB1A41E050E0A8 +:103DF00060E070E004C0440F551F661F771F8A956E +:103E0000D2F78091BC019091BD01A091BE01B0910B +:103E1000BF01482B592B6A2B7B2B4093BC0150933D +:103E2000BD016093BE017093BF010C94AB1A41E0D9 +:103E300050E060E070E004C0440F551F661F771F1C +:103E40008A95D2F740955095609570958091BC0108 +:103E50009091BD01A091BE01B091BF0148235923AB +:103E60006A237B234093BC015093BD016093BE0144 +:103E70007093BF010C94AB1A41E050E060E070E039 +:103E800004C0440F551F661F771F8A95D2F7809193 +:103E9000BC019091BD01A091BE01B091BF01482726 +:103EA00059276A277B274093BC015093BD0160933B +:103EB000BE017093BF010C94AB1A0F931F93009136 +:103EC000BC011091BD012091BE013091BF01DC0108 +:103ED000CB01802B912BA22BB32B8093BC01909311 +:103EE000BD01A093BE01B093BF011F910F910C942F +:103EF000AB1A0F931F930091BC011091BD0120914B +:103F0000BE013091BF01DC01CB0180239123A223AC +:103F1000B3238093BC019093BD01A093BE01B093E5 +:103F2000BF011F910F910C94AB1A0F931F93009137 +:103F3000BC011091BD012091BE013091BF01DC0197 +:103F4000CB0180279127A227B3278093BC019093B0 +:103F5000BD01A093BE01B093BF011F910F910C94BE +:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 +:103F7000CF93DF938C01C090C001D090C101E0903D +:103F8000C201F090C3014091BC015091BD0160910C +:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 +:103FA000D0E0D701C6010C2E04C0B695A795979511 +:103FB00087950A94D2F780FF07C0B8018C2F0E9422 +:103FC000DA0B8130910531F4219758F7B80180E080 +:103FD0000E94DA0BDF91CF911F910F91FF90EF902C +:103FE000DF90CF90089590910C01992321F090914A +:103FF0000D01911109C020910E0130910F01F901BD +:1040000032969FEF40E030C0982F96959695969502 +:104010009F30A0F4E0910E01F0910F01E90FF11D26 +:10402000877021E030E0A90102C0440F551F8A9536 +:10403000E2F7CA019181892B818308959091D7017C +:1040400090FF23C01F928F9387ED95E09F938F93EE +:104050000E94EB070F900F900F900F9008959F3FD5 +:1040600039F04F5F4E3041F051915813F8CF0DC0E9 +:104070005111F7CF942FF5CF9F3F39F0F901E90F98 +:10408000F11D97FDFA9582830895089590910C0192 +:10409000992321F090910D01911109C020910E01F9 +:1040A00030910F01F9013296205F3F4F30C0982FB9 +:1040B0009695969596959F30A8F4E0910E01F09113 +:1040C0000F01E90FF11D877021E030E0A90102C066 +:1040D000440F551F8A95E2F7CA0180959181892383 +:1040E000818308959091D70190FF16C01F928F93FE +:1040F00089EB95E09F938F930E94EB070F900F90B1 +:104100000F900F9008953196E217F30729F09081F0 +:104110009813F9CF1082F7CF089581E090E0E091F5 +:104120000E01F0910F01E80FF91F10820196803106 +:104130009105A9F708959091D601892B8093D60116 +:10414000089580959091D60189238093D601089592 +:104150001092D60108959091D501892B8093D501B5 +:10416000089580959091D50189238093D501089574 +:104170001092D50108958093C40108951092C4014E +:10418000089580910E0190910F01FC0131969C01E0 +:10419000205F3F4F80E0919191118F5FE217F3070D +:1041A000D1F70895E0910E01F0910F018091D601B1 +:1041B0008083E0910E01F0910F0190818091D501F3 +:1041C000892B80838091C401882361F0E0910E01E6 +:1041D000F0910F019081892B80830E94C120811171 +:1041E0001092C40180910E0190910F010C94EB1478 +:1041F00090933B0180933A010895CF92DF92EF9222 +:10420000FF926C01EE24FF24C114D104E104F104F7 +:1042100021F0C701B60120E101C020E0C72ED82E51 +:10422000E92EFF24C114D104E104F10419F0285F40 +:10423000C701B6016B017C0154E0F694E794D79472 +:10424000C7945A95D1F7C114D104E104F10419F0CF +:104250002C5FC701B6016B017C0142E0F694E79444 +:10426000D794C7944A95D1F7C114D104E104F1045D +:1042700019F02E5FC701B601DC01CB01B695A795F9 +:1042800097958795892B8A2B8B2B09F02F5F822F8F +:10429000FF90EF90DF90CF9008958295982F9C7CAF +:1042A000392F36953695282F237344E0249FC0017B +:1042B0001124932F982B292F2A7A2695892F8575DB +:1042C000880F822B08951F93CF93DF931F92CDB752 +:1042D000DEB799830E944D21182F9981892F0E9462 +:1042E0004D21212F30E0322F2227A901482BCA016E +:1042F0000F90DF91CF911F9108958091F00184304C +:1043000009F11092D80120E488E190E00FB6F8940A +:10431000A895809360000FBE2093600083B7817FD3 +:10432000846083BF83B7816083BF7894889583B7A7 +:104330008E7F83BF88E10FB6F8948093600010925F +:1043400060000FBE089508950895CF930E94A321A1 +:104350000E947F090E94A421C0E08C2F0E94AB0A1A +:10436000811104C0CF5FCE30C1F701C081E0CF9191 +:1043700008950C94BD1A82E084BD93E095BD9AEF38 +:1043800097BD80936E0008952FB7F8948091D9015E +:104390009091DA01A091DB01B091DC012FBF08956B +:1043A000CF92DF92EF92FF920F931F932FB7F89463 +:1043B0004091D9015091DA016091DB017091DC01EB +:1043C0002FBF6A017B01EE24FF248C0120E030E046 +:1043D000C016D106E206F30610F4415051099A01C5 +:1043E000281B390BC9011F910F91FF90EF90DF90AF +:1043F000CF9008951F920F920FB60F9211248F93B2 +:104400009F93AF93BF938091D9019091DA01A091CE +:10441000DB01B091DC010196A11DB11D8093D90192 +:104420009093DA01A093DB01B093DC01BF91AF91CF +:104430009F918F910F900FBE0F901F9018950E9423 +:10444000DD11F8942FEF87EA91E6215080409040EB +:10445000E1F700C0000087E090EBDC018093F901F8 +:104460009093FA01A093FB01B093FC019CE088E1DA +:104470000FB6F894A895809360000FBE90936000EB +:10448000FFCFEF92FF920F931F93CF93DF93D82F1D +:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 +:1044A000C701002E02C0959587950A94E2F780FD1A +:1044B00006C00F5F1F4F0630110591F709C0602F2E +:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA +:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 +:1044E000FF90EF900895CF93C82F8CE20E94412255 +:1044F000882321F08C2FCF910C94412280E0CF9122 +:104500000895CF930E94D023811102C00E94B62348 +:104510008CEF95E00E945207C5E6C15049F00E9419 +:104520007F098FE39CE90197F1F700C00000F5CF08 +:1045300085EF95E00E94520789E20E947322811163 +:1045400013C18AE20E94732281110E94B62385E082 +:104550000E94732281110E941F220E94DB238093FC +:10456000D70187E00E9473228823A9F18BE10E9482 +:104570007322882351F08091D70181FB222720F9F3 +:1045800091E0922790FB81F90EC08EE00E94732289 +:10459000882361F08091D70182FB222720F991E0E6 +:1045A000922790FB82F98093D70115C080E10E9489 +:1045B00073229091D701882341F093FB222720F9A1 +:1045C00081E0822780FB93F904C0892F809580FBCE +:1045D00090F99093D7018091D7010E94DF230E9428 +:1045E000ED238093EA0180EE0E947322882341F03C +:1045F0008091EA01982F909590FB80F98093EA01D1 +:1046000089E30E947322882359F08091EA0181FB9B +:10461000222720F991E0922790FB81F98093EA010B +:1046200082EE0E947322882359F08091EA0182FB76 +:10463000222720F991E0922790FB82F98093EA01EA +:1046400086EE0E947322882359F08091EA0183FB51 +:10465000222720F991E0922790FB83F98093EA01C9 +:1046600083EE0E947322882359F08091EA0184FB33 +:10467000222720F991E0922790FB84F98093EA01A8 +:1046800085E30E947322882359F08091EA0185FB1B +:10469000222720F991E0922790FB85F98093EA0187 +:1046A00081E30E947322882359F08091EA0186FBFE +:1046B000222720F991E0922790FB86F98093EA0166 +:1046C00081E10E947322882359F08091EA0187FBDF +:1046D000222720F991E0922790FB87F98093EA0145 +:1046E0008091EA010E94F1238091EA0187FB8827EB +:1046F00080F980930D0187E20E947322C82F8EE11A +:104700000E9473228111C2608FE10E947322811185 +:10471000C46080E20E9473228111C86081E20E941D +:1047200073228111C06182E20E9473228111C062F2 +:1047300083E20E9473228111C06484E20E9473228A +:10474000882311F0C06802C0CC2329F08C2F0E946E +:10475000E8236C2F03C00E94E423682F70E080E000 +:1047600090E0CF910C94791ECF9108956DEE7EEF7D +:1047700080E090E00E94B92D60E082E090E00E942D +:10478000AB2D60E083E090E00E94AB2D60E084E020 +:1047900090E00E94AB2D60E085E090E00C94AB2DA2 +:1047A00080E090E00E94A52D21E08D3E9E4F09F013 +:1047B00020E0822F089582E090E00C949D2D682FD8 +:1047C00082E090E00C94AB2D83E090E00C949D2D62 +:1047D000682F83E090E00C94AB2D84E090E00C9483 +:1047E0009D2D682F84E090E00C94AB2D8091DF012B +:1047F00080FF0BC06091130185E0689FB001112418 +:1048000075956795759567952BC081FF09C0609177 +:10481000130185E0689FB00111247595679520C04C +:1048200082FF07C06091130185E0689FB0011124E9 +:1048300017C09091E0019923D1F060911201961771 +:1048400088F72091130185E0289F90011124929F01 +:10485000A001939F500D112470E0CA010E946F2D9A +:104860006038710540F46115710539F002C065E0EA +:1048700070E0862F08958FE7089581E00895809174 +:10488000DF0180FF08C06091110170E075956795A8 +:104890007595679521C081FF06C06091110170E098 +:1048A0007595679519C082FF04C06091110170E091 +:1048B00010C09091E0019923C1F06091100196170A +:1048C000A0F780911101899FC001112470E00E941E +:1048D0006F2D6038710528F46115710521F0862F60 +:1048E00008958FE7089581E0089561E070E0F4CFC6 +:1048F000803F21F40E94F623819504C0813F29F472 +:104900000E94F6238093E3010895823F21F40E94E0 +:10491000F623819504C0833F29F40E94F6238093F7 +:10492000E2010895893F19F40E943F2405C08A3F9F +:1049300031F40E943F2481958093E40108958B3FD8 +:1049400021F40E943F24819504C08C3F29F40E94E9 +:104950003F248093E5010895843F21F48091E10193 +:10496000816017C0853F21F48091E101826011C010 +:10497000863F21F48091E10184600BC0873F21F4E0 +:104980008091E101886005C0883F31F48091E101A8 +:1049900080618093E10108958D3F21F48091DF01D2 +:1049A00081600BC08E3F21F48091DF01826005C0E1 +:1049B0008F3F29F48091DF0184608093DF010895A7 +:1049C000803F39F48091E30187FF6CC01092E301CE +:1049D00069C0813F29F48091E3011816BCF362C0DD +:1049E0009091E201823F29F497FF5CC01092E201AE +:1049F00059C0833F19F41916CCF354C0893F41F4D0 +:104A00008091E40118160CF04DC01092E4014AC0E8 +:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 +:104A200039F48091E50187FF3DC01092E5013AC05D +:104A30008C3F29F48091E5011816BCF333C0843F04 +:104A400021F48091E1018E7F17C0853F21F4809190 +:104A5000E1018D7F11C0863F21F48091E1018B7FC0 +:104A60000BC0873F21F48091E101877F05C0883F1B +:104A700031F48091E1018F7E8093E10113C08D3F7D +:104A800021F48091DF018E7F0BC08E3F21F4809155 +:104A9000DF018D7F05C08F3F29F48091DF018B7F7F +:104AA0008093DF018091E20181110EC08091E301CA +:104AB00081110AC08091E401811106C08091E50155 +:104AC000811102C01092E00108958091D70183FF07 +:104AD0007EC088E396E00E9452078091E1011F9218 +:104AE0008F9383E396E09F938F930E94EB0781E37C +:104AF00096E00E9452078091E201282F332727FD7C +:104B000030953F938F938EE296E09F938F930E9410 +:104B1000EB078CE296E00E9452078091E301282F78 +:104B2000332727FD30953F938F9389E296E09F933B +:104B30008F930E94EB0787E296E00E9452078091D4 +:104B4000E401282F332727FD30953F938F9384E28C +:104B500096E09F938F930E94EB0782E296E00E947B +:104B600052078091E501282F332727FD30953F9389 +:104B70008F938FE196E09F938F930E94EB078CE1D8 +:104B800096E00E9452078091E0011F928F9389E185 +:104B900096E09F938F930E94EB0787E196E00E9437 +:104BA00052078091DF011F928F9384E196E09F93DB +:104BB0008F930E94EB0781E196E00E9452078DB728 +:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 +:104BD00091E00E9434150E94C4219093DE018093DD +:104BE000DD0108951F93CF93DF938091DD019091B4 +:104BF000DE010E94D021AC019091E001992321F0C7 +:104C00002091140130E006C0209115018AE0289F10 +:104C1000900111244217530708F486C08091E201E5 +:104C2000C091E301D091E4011091E501811107C029 +:104C3000C11176C0D11174C0111172C075C09F3FEF +:104C400019F09F5F9093E001181624F40E94F62358 +:104C50008093E2018091E20187FF05C00E94F62364 +:104C600081958093E2011C1624F40E94F623809320 +:104C7000E3018091E30187FF05C00E94F62381953F +:104C80008093E3016091E201662339F1C091E30171 +:104C9000CC2319F1772767FD7095872F972F0E94F6 +:104CA000742C23E333E343E35FE30E94D82C0E9498 +:104CB000412C6093E2016C2F772767FD7095872F59 +:104CC000972F0E94742C23E333E343E35FE30E94B6 +:104CD000D82C0E94412C6093E3011D1624F40E94FD +:104CE0003F248093E4018091E40187FF05C00E9486 +:104CF0003F2481958093E401111624F40E943F24FF +:104D00008093E5018091E50187FF05C00E943F2463 +:104D100081958093E501DF91CF911F910C946525DA +:104D20009F3F09F08ECF96CFDF91CF911F910895CD +:104D3000E1EEF1E085E0DF011D928A95E9F710923E +:104D4000E0011092DF0108958BE598E00E94520780 +:104D50001F9281E08F931F9285E08F938DE098E002 +:104D60009F938F930E94EB070F900F900F900F90DF +:104D70000F900F9008958330E9F128F4813061F0AD +:104D8000823009F10895853009F462C008F449C001 +:104D9000863009F474C0089580911501262F30E003 +:104DA000280F311D2F3F310524F4680F6093150142 +:104DB00003C08FEF80931501809115011F928F938F +:104DC00086E497E072C080911401262F30E0280F0E +:104DD000311D2F3F310524F4680F6093140103C087 +:104DE0008FEF80931401809114011F928F9384E3BD +:104DF00097E05BC080911301262F30E0280F311D12 +:104E00002F3F310524F4680F6093130103C08FEF27 +:104E100080931301809113011F928F9381E297E099 +:104E200044C080911201262F30E0280F311D2F3F02 +:104E3000310524F4680F6093120103C08FEF809353 +:104E40001201809112011F928F938CE097E02DC088 +:104E500080911101262F30E0280F311D2F3F3105A1 +:104E600024F4680F6093110103C08FEF8093110148 +:104E7000809111011F928F9383EF96E016C080916D +:104E80001001262F30E0280F311D2F3F310524F46B +:104E9000680F6093100103C08FEF80931001809121 +:104EA00010011F928F9388ED96E09F938F930E943D +:104EB000EB070F900F900F900F900895833081F1C2 +:104EC00028F4813059F08230D1F00895853009F40A +:104ED00049C0B8F1863009F456C008958091150193 +:104EE000681720F4861B8093150102C010921501EB +:104EF000809115011F928F9389EC96E054C08091A8 +:104F00001401681720F4861B8093140102C01092CC +:104F10001401809114011F928F9387EB96E043C098 +:104F200080911301681720F4861B8093130102C03F +:104F300010921301809113011F928F9384EA96E0DF +:104F400032C080911201681720F4861B80931201F1 +:104F500002C010921201809112011F928F938FE86C +:104F600096E021C080911101681720F4861B809380 +:104F7000110102C010921101809111011F928F93B3 +:104F800086E796E010C080911001681720F4861B18 +:104F90008093100102C010921001809110011F92A5 +:104FA0008F938BE596E09F938F930E94EB070F9072 +:104FB0000F900F900F900895CF93C82F1F928F934B +:104FC00080E699E09F938F930E94EB0781E090E049 +:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 +:104FE000991FCA95D2F70E94791E0F900F900F90CB +:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 +:10500000B0F58E3009F4CCC100F5873009F49BC1AE +:10501000A8F4863009F06DC28091D701817F8E7F20 +:105020008093D70185E699E00E94520781EA9DE0CE +:105030000E94520781E08093E70180C1883009F423 +:105040004FC08B3009F47CC154C2863109F4F0C1E1 +:1050500038F4803109F4B8C1813109F430C249C251 +:10506000893109F4CEC18B3109F486C142C285333E +:1050700009F437C248F4873209F433C208F433C262 +:10508000893209F42EC235C2833438F48A3308F0E9 +:105090002CC2883309F454C12CC2833409F421C2D0 +:1050A000883409F026C20E94BD1A80E99DE00E9462 +:1050B00052079FEF23ED80E3915020408040E1F7BD +:1050C00000C000000E941F2239C180EB9DE00E94B9 +:1050D00052070E94FB2B0E94DF140E94110D2EC16B +:1050E00085EA9DE00E94520786E79BE00E945207F6 +:1050F0000E94E4231F928F9383E79BE09F938F93FB +:105100000E94EB0781E79BE00E9452070E94DB238D +:10511000C82F8EE59BE00E9452071F92CF9389E52E +:105120009BE09F938F930E94EB0787E59BE00E9493 +:1051300052078DE49BE00E9452078C2F81701F92D2 +:105140008F938AE49BE09F938F930E94EB0788E400 +:105150009BE00E9452078EE39BE00E945207C1FB36 +:10516000882780F91F928F938BE39BE09F938F9307 +:105170000E94EB0789E39BE00E9452078DE29BE0CF +:105180000E945207C2FB882780F91F928F938AE200 +:105190009BE09F938F930E94EB0788E29BE00E9425 +:1051A00052078FE19BE00E945207C3FBCC27C0F956 +:1051B0001F92CF938CE19BE09F938F930E94EB070C +:1051C0008AE19BE00E9452070E94ED23C82F86E0EF +:1051D0009BE00E9452071F92CF9381E09BE09F9338 +:1051E0008F930E94EB078FEF9AE00E94520786EEA2 +:1051F0009AE00E9452078C2F81701F928F9383EE4A +:105200009AE09F938F930E94EB078DB79EB780968D +:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C +:1052200052078AEC9AE00E945207C1FB882780F956 +:105230001F928F9387EC9AE09F938F930E94EB07C6 +:1052400085EC9AE00E94520783EB9AE00E94520795 +:10525000C2FB882780F91F928F9380EB9AE09F937F +:105260008F930E94EB078EEA9AE00E9452078CE926 +:105270009AE00E945207C3FB882780F91F928F9300 +:1052800089E99AE09F938F930E94EB0787E99AE060 +:105290000E9452078DE89AE00E945207C4FB8827BB +:1052A00080F91F928F938AE89AE09F938F930E94D0 +:1052B000EB0788E89AE00E94520786E79AE00E948E +:1052C0005207C5FB882780F91F928F9383E79AE0E6 +:1052D0009F938F930E94EB0781E79AE00E94520709 +:1052E00085E59AE00E945207C6FB882780F91F9245 +:1052F0008F9382E59AE09F938F930E94EB0780E55E +:105300009AE00E94520788E49AE00E945207C7FB85 +:10531000CC27C0F91F92CF9385E49AE09F938F9397 +:105320000E94EB0783E49AE00E9452078DB79EB774 +:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 +:105340008CE899E05BC08091D701C82FC17080FFC5 +:1053500009C083E89DE00E9452078091D701817FB8 +:105360008E7F47C087E79DE00E9452078091D7015A +:1053700081608093D701E2CF9091D70191FBCC2738 +:10538000C0F981E0C827892FC0FB81F98093D7013C +:10539000CC2319F08AE69DE027C08CE59DE02EC065 +:1053A0009091D70192FBCC27C0F981E0C827892FC3 +:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 +:1053C00013C08DE39DE01AC09091D70193FBCC27C9 +:1053D000C0F981E0C827892FC0FB83F98093D701EA +:1053E000CC2351F081E39DE00E9452078091D701C8 +:1053F00081608093D70182C084E29DE00E945207C1 +:105400009DCF85E19DE00E94520789EE9CE00E94BD +:1054100052078CEA9CE00E94520785E89CE00E94BB +:10542000520781E49CE00E94520786E19CE0E6CFAF +:1054300088E09CE00E9452070E94DF141F928F9325 +:105440008EEE9BE09F938F930E94EB0780910C015F +:105450001F928F9387ED9BE09F938F930E94EB07A2 +:1054600080916E011F928F9384EC9BE09F938F93AA +:105470000E94EB0780910D011F928F9381EB9BE0BF +:105480009F938F930E94EB078091D9019091DA014D +:10549000A091DB01B091DC01BF93AF939F938F93F9 +:1054A0008DE99BE09F938F930E94EB078DB79EB78A +:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 +:1054C000BD1AC0910D0181E0C827C0930D01CC2306 +:1054D00029F083E99BE00E94520710C088E89BE016 +:1054E0008DCF80E003C08D5101C089530E94DC271D +:1054F00025CF86E89BE00E945207C0E08C2FCF9119 +:10550000089580E0089580E00895CF93C82F80919A +:10551000E701813081F020F0823009F44FC045C1AD +:10552000E0910E01F0910F018081813169F08232AA +:1055300009F03DC109C0E0910E01F0910F01808199 +:10554000813111F0823261F48C2F0E94812A811105 +:1055500004C08C2F0E94FC272FC081E090E02CC05B +:105560008C2F0E94832A811126C0C431E1F070F48F +:10557000CB3081F0C031D1F40E94A42688E599E0B7 +:105580000E94520782E08093E70115C0C93259F0AA +:10559000C83361F485E699E00E9452078CE599E0F2 +:1055A0000E94520708C01092E70103C186E599E006 +:1055B0000E945207FEC081E08170FDC0C43220F518 +:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 +:1055D000D2C08AE08093150194E19093140193E086 +:1055E000909313018093120188E08093110188E267 +:1055F000809310018CEF97E00E945207BFC0C33127 +:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 +:10561000C93289F0C83361F0AEC0C13509F49EC00B +:10562000C23509F499C0CE3409F0A5C06AE09EC025 +:105630000E94A426A3C08091E601882319F010924D +:10564000E6019CC089E098E00E94520781E08093C7 +:10565000E701B1C083EE97E00E94520781ED97E029 +:105660000E945207809115011F928F938EEC97E054 +:105670009F938F930E94EB078CEC97E00E94520758 +:105680008AEB97E00E945207809114011F928F933A +:1056900087EB97E09F938F930E94EB0785EB97E052 +:1056A0000E94520786EA97E00E94520780911301F8 +:1056B0001F928F9383EA97E09F938F930E94EB074B +:1056C00081EA97E00E94520780E997E00E94520722 +:1056D000809112011F928F938DE897E09F938F9393 +:1056E0000E94EB078BE897E00E94520786E797E05D +:1056F0000E945207809111011F928F9383E797E0D8 +:105700009F938F930E94EB0781E797E00E945207D7 +:105710008AE597E00E945207809110011F928F93B3 +:1057200087E597E09F938F930E94EB0785E597E0CD +:105730000E9452078DB79EB748960FB6F8949EBF49 +:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 +:1057500080818093E60112C061E003C061E006C071 +:105760006AE08091E6010E94BB2608C08091E601B4 +:105770000E945E2703C08AEF97E013C08091E60184 +:10578000882369F01F928F9384EF97E09F938F9304 +:105790000E94EB070F900F900F900F9004C081EFC5 +:1057A00097E00E94520781E006C01092E70180E076 +:1057B00002C080E001CFCF910895E1E8F0E0808160 +:1057C000886080838081816080838FB7F89493E0C4 +:1057D0009093890090ED909388008FBF0895EFE635 +:1057E000F0E08081826080830895EFE6F0E08081C0 +:1057F0008D7F80830895EFE6F0E0908182E0892735 +:10580000808308951F920F920FB60F9211242F9349 +:105810003F934F935F936F937F938F939F93AF9338 +:10582000BF93EF93FF938091E8019091E901019676 +:105830009093E9018093E801811103C082E00E9406 +:10584000110DE091E901E695E695F0E0E054F24FA4 +:10585000E4918091E8018E1303C080E00E94110D55 +:10586000FF91EF91BF91AF919F918F917F916F9138 +:105870005F914F913F912F910F900FBE0F901F900E +:10588000189504D06894B1118DC0089570D088F037 +:105890009F5790F0B92F9927B751A0F0D1F0660F1C +:1058A000771F881F991F1AF0BA95C9F712C0B13037 +:1058B00081F077D0B1E0089574C0672F782F8827E2 +:1058C000B85F39F0B93FCCF3869577956795B39576 +:1058D000D9F73EF490958095709561957F4F8F4FE5 +:1058E0009F4F0895E89409C097FB3EF490958095EA +:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 +:1059000096E9BB279395F695879577956795B79513 +:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 +:105920007F4F8F4F9F4F16C0882311F096E911C00B +:10593000772321F09EE8872F762F05C0662371F02C +:1059400096E8862F70E060E02AF09A95660F771F40 +:10595000881FDAF7880F9695879597F9089557FD70 +:105960009058440F551F59F05F3F71F04795880FCD +:1059700097FB991F61F09F3F79F087950895121664 +:1059800013061406551FF2CF4695F1DF08C0161610 +:1059900017061806991FF1CF8695710561050894C1 +:1059A0000895E894BB2766277727CB0197F90895D8 +:1059B0000BD078C069D028F06ED018F0952309F08C +:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 +:1059D000950F50E0551F629FF001729FBB27F00D9D +:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 +:1059F000B00DA11D661F829F2227B00DA11D621F41 +:105A0000739FB00DA11D621F839FA00D611D221FFA +:105A1000749F3327A00D611D231F849F600D211DDE +:105A2000822F762F6A2F11249F5750408AF0E1F081 +:105A300088234AF0EE0FFF1FBB1F661F771F881FCA +:105A400091505040A9F79E3F510570F014C0AACF65 +:105A50005F3FECF3983EDCF3869577956795B795B5 +:105A6000F795E7959F5FC1F7FE2B880F911D9695DF +:105A7000879597F9089597F99F6780E870E060E04F +:105A800008959FEF80EC089500240A9416161706D7 +:105A900018060906089500240A941216130614061F +:105AA00005060895092E0394000C11F4882352F082 +:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A +:105AC0008F4F9F4F0895991B79E004C0991F961737 +:105AD00008F0961B881F7A95C9F78095089597FB63 +:105AE000072E16F4009407D077FD09D00E94892D67 +:105AF00007FC05D03EF4909581959F4F08957095D1 +:105B000061957F4F0895EE0FFF1F0590F491E02DF2 +:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 +:105B2000B70710F0A61BB70B881F991F5A95A9F746 +:105B300080959095BC01CD010895F999FECF92BD55 +:105B400081BDF89A992780B50895A8E1B0E042E0B8 +:105B500050E00C94C02D262FF999FECF1FBA92BDAC +:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E +:105B700008950E94AB2D272F0C94AC2DDC01CB0196 +:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D +:105B900000B40D9241505040B8F70895F894FFCFEB +:105BA0002002120D030EE00DAC0D780D0101C501B0 +:105BB00028080A03140A3F4D3620394605F904C364 +:105BC00004A3046A04DD03F6030F04280448040157 +:0A5BD000020304050607080900009F +:00000001FF -- cgit v1.2.3 From 1d463d961f5f185cac5402ba2eb80fb3c9a56c8a Mon Sep 17 00:00:00 2001 From: Seth Herr Date: Wed, 6 Jan 2016 09:41:42 -0600 Subject: Fix homebrew references Replaces #64 --- keyboard/ergodox_ez/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/README.md b/keyboard/ergodox_ez/README.md index 27568323b9..51f1e2aa5a 100644 --- a/keyboard/ergodox_ez/README.md +++ b/keyboard/ergodox_ez/README.md @@ -15,7 +15,8 @@ This requires a little bit of familiarity with coding. 1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :) 2. Clone the repository (download it) -3. Set up a build environment as per https://www.pjrc.com/teensy/gcc.html +3. Set up a build environment as per [pjrc.com/teensy/gcc.html](https://www.pjrc.com/teensy/gcc.html) + - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` 4. Copy `keymaps/keymap_default.c` into `keymaps/keymap_your_name.c` (for example, `keymaps/keymap_german.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. 6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. Note that you must omit the `keymap_` prefix for your filename in this command -- 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. -- cgit v1.2.3 From 92dcabe099d0b904a5aa06d823749e6262e6d4cd Mon Sep 17 00:00:00 2001 From: chwilk Date: Fri, 8 Jan 2016 10:47:14 -0600 Subject: Moving around modifiers to match KA better --- keyboard/ergodox_ez/keymaps/keymap_kastyle.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_kastyle.c b/keyboard/ergodox_ez/keymaps/keymap_kastyle.c index 0957ec4683..ecf1be8724 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_kastyle.c +++ b/keyboard/ergodox_ez/keymaps/keymap_kastyle.c @@ -10,7 +10,7 @@ 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 | - | + * | = | 1 | 2 | 3 | 4 | 5 | LGUI | | App | 6 | 7 | 8 | 9 | 0 | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -20,28 +20,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * |Backsp| Del |------| |------| Enter | Space| - * | | | End | | PgDn | | | - * `--------------------' `----------------------' + * ,---------------. ,---------------. + * |Ctrl/Esc| Alt | | Alt |Ctrl/Esc| + * ,------|--------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| 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 - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_LCTL, 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), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - ALT_T(KC_APP), KC_LGUI, + CTL_T(KC_ESC), ALT_T(KC_APP), KC_HOME, KC_BSPC,KC_DEL,KC_END, // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_APP, 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),KC_QUOT, MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, -- cgit v1.2.3 From 25b4a98a75729738fed8ae034123c132445e70fa Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sat, 9 Jan 2016 12:35:42 -0500 Subject: Refer to SYMB and MDIA in default ergodox_ez keymap. --- keyboard/ergodox_ez/keymaps/keymap_default.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/keymap_default.c index 762e118b05..b2f0a051d5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.c +++ b/keyboard/ergodox_ez/keymaps/keymap_default.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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), + 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), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, + 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),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, @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( +[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, -- cgit v1.2.3 From 8607859c77ed9219875cbd26d56fd7b5565290c1 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sat, 9 Jan 2016 13:17:25 -0500 Subject: Add ergodox_ez keymap to match Kinesis Contoured. This keymap attempts to match the Kinesis Contoured (aka Advantage) default layout as closely as possible. See http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf Apart from the obvious mappings, this keymap also: * removes the dual-purpose momentary layer/normal keys: Z, /, and Grv; because the author--coming from a Kinesis keyboard--finds the delays and accidental modifiers to be more disconcerting than helpful. * puts Esc in the bottom left since there's no place for it in the top left to match the Kinesis. * changes the bottom-right key into an L2 toggle since there's otherwise no way to get to L2. * adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since they're present on the Kinesis but not available in the default ergodox_ez keymap. --- keyboard/ergodox_ez/keymaps/keymap_kinesis.c | 184 +++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kinesis.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c b/keyboard/ergodox_ez/keymaps/keymap_kinesis.c new file mode 100644 index 0000000000..20cb53241f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kinesis.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 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Ctrl | Alt | | LGui | Ctrl | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_CAPS, 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), + KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,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, KC_J, KC_K, KC_L, KC_SCLN, 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_FN2, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_PAUS,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 +[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(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; + } + +}; -- cgit v1.2.3 From 6ccf3d2da106e76af6283bd43b8c233c84512ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Sat, 9 Jan 2016 23:47:26 +0100 Subject: removed left space key in favor of a backspace --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 6 +- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 2438 +++++++++++++------------ 2 files changed, 1225 insertions(+), 1219 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index b1d773625f..ded7c67923 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | MDIA | Meh | | Hyper| NUM | * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Enter | Space| - * | |ace | End | | PgDn | | | + * | Back-| Del |------| |------| Enter | Space| + * | Space| | End | | PgDn | | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT, TG(2), MEH_T(LSFT(DE_ACUT)), KC_HOME, - KC_SPC,KC_BSPC,KC_END, + KC_BSPC,KC_DEL,KC_END, // right hand KC_RCTL, 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, diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex index 42346dceef..fd2a022599 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex @@ -1,21 +1,21 @@ :100000000C94AC070C94F0070C94F0070C94F007D8 :100010000C94F0070C94F0070C94F0070C94F00784 -:100020000C94F0070C94F0070C94E6120C94B8139F +:100020000C94F0070C94F0070C9412130C94E41346 :100030000C94F0070C94F0070C94F0070C94F00764 -:100040000C94F0070C94902C0C94F0070C94F0078F -:100050000C94F0070C9488220C94F0070C94F00791 +:100040000C94F0070C94BC2C0C94F0070C94F00763 +:100050000C94F0070C94B4220C94F0070C94F00765 :100060000C94F0070C94F0070C94F0070C94F00734 :100070000C94F0070C94F0070C94F0070C94F00724 :100080000C94F0070C94F0070C94F0070C94F00714 :100090000C94F0070C94F0070C94F0070C94F00704 -:1000A0000C94F0070C94F0070C94F00725144714F7 -:1000B0003515471435158C14AF143515041517155F -:1000C0005E185E188D188D18D1180F19291B291B61 -:1000D0002819291B291A291AFD1A291B291B141B47 +:1000A0000C94F0070C94F0070C94F007511473149F +:1000B000611573146115B814DB14611530154315FF +:1000C0008A188A18B918B918FD183B19551B551B01 +:1000D0005419551B551A551A291B551B551B401BE6 :1000E0000000F0A1F0A329002B000354E1003581AA :1000F00000001E00140004001D7164004D001F006C -:100100001A0016001B00E1042A0020000800070066 -:10011000060050002C0021001500090019004F00B6 +:100100001A0016001B00E1044C0020000800070044 +:10011000060050002A0021001500090019004F00B8 :100120004A00220017000A00050000000254E00007 :10013000E3000000E20000002E77E400E70000008A :10014000E60000002E7F23001C000B0011000000C1 @@ -219,10 +219,10 @@ :100DA00020424F4F544D41474943204D4F555345E5 :100DB0004B45592045585452414B455920434F4EBD :100DC000534F4C4520434F4D4D414E44204E4B52C6 -:100DD0004F203531320A004255494C443A203337CE -:100DE00030653930322D6469727479202832333A93 -:100DF00033343A3037204465632032322032303188 -:100E000035290A005649443A203078464545442859 +:100DD0004F203531320A004255494C443A2064379D +:100DE00034333332632D6469727479202831343A94 +:100DF00033383A3536204A616E2020362032303181 +:100E000036290A005649443A203078464545442858 :100E10004572676F446F7820455A29205049443AFB :100E200020307831333037284572676F446F78202F :100E3000455A29205645523A203078303030310A10 @@ -249,9 +249,9 @@ :100F8000B04BB9F41092F9011092FA011092FB01E2 :100F90001092FC0114BE84B7877F84BF88E10FB62E :100FA000F89480936000109260000FBEE0E0FFE3D1 -:100FB000099511E0A0E0B1E0ECEBFCE502C0059082 +:100FB000099511E0A0E0B1E0E4E1FDE502C0059093 :100FC0000D92AA33B107D9F711E0AAE3B1E001C04D -:100FD0001D92A93FB107E1F70E941E100C945C2EF0 +:100FD0001D92A93FB107E1F70E944A100C94882E98 :100FE0000C940000FF93EF93E0913A01F0913B01E4 :100FF000309709F00995EF91FF910895FC018591D3 :10100000803011F0EFDFFBCF0895FF27E0E230E200 @@ -275,1215 +275,1221 @@ :10112000B9F360DFFBCFFF93EF9368DFF1CFDF937D :10113000CF93CDB7DEB72596A3DFCF91DF9108958A :1011400061110BC0FC018281882321F085EE0E9491 -:10115000FB1603C085EE0E94C31780E090E008955F +:10115000271703C085EE0E94EF1780E090E0089506 :1011600008956091BC017091BD018091BE01909184 -:10117000BF010E948B2156985E9825982D9826983D +:10117000BF010E94B72156985E9825982D98269811 :101180002E9827982F98823061F018F4813031F032 :101190000895833049F0843051F00895259A2D9AAE :1011A0000895269A2E9A0895279A2F9A0895259A97 :1011B0002D9A279A2F9A089581EB98E0892B11F0A8 -:1011C0000C94B108089556985E9825982D98269805 -:1011D0002E9827982F988FEF90E090938900809316 -:1011E000880090938B0080938A0090938D00809369 -:1011F0008C00569A5E9A259A2D9A269A2E9A279AAC -:101200002F9A2FE782E490E1215080409040E1F74F -:1012100000C0000056985E9825982D9826982E9824 -:1012200027982F98089589EA8093800089E0809319 -:10123000810024982C983F988AB18F748AB96E984F -:10124000479A8BB1806B8BB9769A0E94E30880EB4A -:1012500098E0892B11F00C94B008089580E28093F7 -:10126000000180913C0181110EC00E947D0981E046 -:1012700080933C012FEF83ED90E32150804090401C -:10128000E1F700C0000080E40E9483098093000120 -:1012900081112EC00E94AD0980930001811128C0E8 -:1012A0000E94AD0980930001811122C08FE30E944A -:1012B000AD098093000181111BC00E94A50980E443 -:1012C0000E94830980930001811112C08CE00E946A -:1012D000AD098093000181110BC00E94AD0980937C -:1012E0000001811105C08FE30E94AD0980930001C8 -:1012F0000E94A5098091000108951092B9008AE02A -:101300008093B800089594EA9093BC009091BC003B -:1013100097FFFCCF9091B900987F983021F09031E1 -:1013200011F081E008958093BB0084E88093BC00B5 -:101330008091BC0087FFFCCF8091B900887F883105 -:1013400011F0803471F780E0089584E98093BC0047 -:101350008091BC0084FDFCCF08958093BB0084E89D -:101360008093BC008091BC0087FFFCCF9091B900B6 -:10137000987F81E0983209F480E0089584E88093B2 -:10138000BC008091BC0087FFFCCF8091BB0008951A -:1013900080910001811115C080E40E94830980932F -:1013A000000181110CC082E10E94AD09809300010F -:1013B000811105C08FEF0E94AD09809300010E944A -:1013C000A50984B1807F84B985B1807F85B98AB150 -:1013D000837F8AB98BB1837F8BB93E9846980895F5 -:1013E0000E942E09809300010E94C80980B38C706E -:1013F00080BB81B3836F81BBAEE3B1E0ECE4F1E08D -:101400008EE08E0F11921D928E13FCCF83E199E036 -:10141000892B11F00C94130908959F92AF92BF92FB -:10142000CF92DF92EF92FF920F931F93CF93DF93B0 -:10143000809100018823E1F080913D018F5F8093CE -:101440003D01811115C084E994E00E94FE070E94CD -:101450002E0980930001882329F08AE794E00E94F6 -:10146000FE0706C086E694E00E94FE070E94E3089D -:101470000EE311E0C0E0D0E0BB24B39482E0A82EDC -:10148000CC24C394D12C27E5E22E24E0F22EC730E1 -:10149000D10500F580910001811164C080E40E94B3 -:1014A000830980930001811112C082E10E94AD097D -:1014B0008093000181110BC0C6010C2E01C0880F62 -:1014C0000A94EAF780950E94AD09809300010E947A -:1014D000A50948C0CA30A1F028F4C83059F0C93075 -:1014E00061F005C0CC3089F070F0CD3089F0209AE1 -:1014F000289810C0219A29980DC0229A2A980AC0CB -:10150000239A2B9807C0529A01C0539A5B9802C045 -:101510003E9A469890EA9A95F1F79FB1799902C060 -:1015200082E001C080E091709B25982B7C9902C0DD -:1015300084E001C080E0892B7D9902C038E001C0C1 -:1015400030E0832B7E9902C020E101C020E0822B95 -:101550009FB19095991F9927991F9295990F907E09 -:10156000892B10C080910001811174C080E40E9419 -:10157000830980930001882309F459C0912C0E94AB -:10158000A509892DF8019081981739F18083809100 -:101590000101882301F18091D70180FF04C08CE50F -:1015A00094E00E94FE078091D70180FF0CC08091DB -:1015B00001011F928F93FF92EF920E9497080F9064 -:1015C0000F900F900F908091D70180FF04C085E5A8 -:1015D00094E00E94FE07A09201010E94C809219692 -:1015E0000F5F1F4FCE30D10509F051CF809101011F -:1015F0008823B1F0815080930101882339F08FE96D -:101600009FE00197F1F700C000000AC0ACE4B1E030 -:10161000EEE3F1E0CF01825F91919D938E13FCCFB9 -:101620008CED98E0892BC1F00E94DC0815C083E1A5 -:101630000E94AD09809300018111A0CF81E40E9436 -:10164000830980930001811199CF0E94BE09982ED1 -:10165000909495CF80E096CF81E0DF91CF911F915C -:101660000F91FF90EF90DF90CF90BF90AF909F9041 -:101670000895E82FF0E0E45BFE4F80810895CF925B -:10168000DF92EF92FF920F931F93CF93DF938EE33E -:1016900094E00E94FE078CE4E82E81E0F82EC0E082 -:1016A000D0E099E3C92E94E0D92E00E314E0DF9353 -:1016B000CF93DF92CF920E94970886E394E00E9436 -:1016C000FE07F70181917F0190E00E94F1219F9335 -:1016D0008F931F930F930E9497088EE294E00E94CD -:1016E000FE0721968DB79EB708960FB6F8949EBF59 -:1016F0000FBE8DBFCE30D105D1F6DF91CF911F91B6 -:101700000F91FF90EF90DF90CF9008958B3B910564 -:1017100078F4883A910540F5853A9105D0F4843003 -:10172000910508F0B1C08130910509F4ADC06BC0DE -:10173000803E910508F467C0883E910508F4A4C076 -:101740009C01205F31092031310508F05CC09065B3 -:101750000895853A910509F459C0863A910509F032 -:1017600058C082E890E40895883A910509F454C07D -:10177000893A910509F453C08A3A910509F452C097 -:101780008B3A910509F451C08C3A910509F450C087 -:101790008D3A910509F44FC0803B910509F44EC084 -:1017A0008E3A910509F44DC08F3A910509F44CC069 -:1017B000813B910509F44BC0823B910509F44AC075 -:1017C000833B910509F449C0843B910509F448C065 -:1017D000853B910509F447C0863B910509F446C055 -:1017E000873B910509F445C0883B910509F444C045 -:1017F000893B910509F443C08A3B910509F442C035 -:1018000080E094E4089580E090E0089581E890E419 -:10181000089583E890E4089582EE94E4089589EEB3 -:1018200094E408958AEE94E4089585EB94E4089591 -:1018300086EB94E4089587EB94E408958CEC94E4AB -:1018400008958DEC94E4089583E895E408958AE87A -:1018500095E4089582E995E4089584E995E408956E -:1018600081E296E4089583E296E4089584E296E4A2 -:10187000089585E296E4089586E296E4089587E265 -:1018800096E408958AE296E40895089596E0799F93 -:10189000F001112494E5899FE00DF11D1124E60F5C -:1018A000F11DEE0FFF1FEA51FF4F859194910895AE -:1018B000880F991FFC01E05AF0408591949108959A -:1018C000880F991FFC01E052FF4F85919491089574 -:1018D00026E0729FF001112444E5849FE00DF11D84 -:1018E0001124E60FF11DEE0FFF1FEA51FF4F859106 -:1018F00094919C013A9521154FE1340708F41EC1DB -:101900003F512115304120F49F700E94600C0895D2 -:101910009C0130532115304118F49927906C08959B -:10192000811520E5920769F40E944B1B4FEF84E379 -:101930009CE0415080409040E1F700C000000C94D2 -:10194000AD22813020E5920751F48EEA94E00E94A6 -:10195000FE078091D70181608093D70108959C0193 -:1019600030552115304108F051C0292F33272F70F1 -:10197000332721303105D9F4AC014370552702C01B -:10198000220F331F4A95E2F73C68AC0164E0440F34 -:10199000551F6A95E1F744275370242B352B73E0CC -:1019A000880F991F7A95E1F7807699271DC022301C -:1019B000310529F4982F8827816F906A0895233084 -:1019C0003105A9F4AC014370552721E030E002C095 -:1019D000220F331F4A95E2F73C6843E0880F991FB6 -:1019E0004A95E1F7807E9770822B932B08952430DF -:1019F0003105E1F4AC014370552721E030E002C02D -:101A0000220F331F4A95E2F73A68E7CF9C0130571F -:101A10002115304118F49F70906208959C01305850 -:101A20002115304118F49F70906A0895803E910509 -:101A3000E0F4803C910558F58133910509F46FC0BD -:101A400048F48932910509F463C08A32910509F49A -:101A50006DC072C089339105E9F082389105D1F0EB -:101A60008533910509F44DC067C0833E910581F12E -:101A700038F4803E9105B9F0823E9105D9F05CC002 -:101A8000863E910561F1873E9105A1F155C00E9406 -:101A9000580C08952091EA0120FD02C021FF4CC09E -:101AA00080EE90E049C08091EA0180FFF9CF89E3A0 -:101AB00090E042C08091EA0182FF0EC08091EA016D -:101AC00084FF03C080E090E037C083EE90E034C034 -:101AD0008091EA0182FFF2CF82EE90E02DC08091EA -:101AE000EA0183FF0BC08091EA0184FDEBCF87EE12 -:101AF00090E022C08091EA0183FFF5CF86EE90E06E -:101B00001BC08091EA0185FF07C089E290E014C004 -:101B10008091EA0185FFF9CF85E390E00DC08091C7 -:101B2000EA0186FF07C08AE290E006C08091EA01E0 -:101B300086FFF9CF81E390E00E94860B0895089517 -:101B400080916D0108959FB7F89410925C019FBF3A -:101B50009091F001943009F057C09091E9009F7086 -:101B60003091EC00232F217030FD20E8922B24E0EF -:101B70002093E9002091EB0020FF43C02091EE006C -:101B800027FF3FC020915A01222321F02091E80035 -:101B900025FF37C010925A0126E03091E80035FD4C -:101BA00015C03091F001343061F53091EB0035FD16 -:101BB00028C0215021F481E080935A0122C0EFE92E -:101BC000FFE03197F1F700C00000E7CF8093F1000C -:101BD0008091E80085FD0AC08091E80080FFFCCF7D -:101BE0008091E8008E778093E80006C08FB7F89464 -:101BF00021E020935C018FBF9F709093E90080E00B -:101C000008959F709093E9008FEF0895CF93DF932D -:101C100000D01F92CDB7DEB79C018091F0018430D7 -:101C200019F593E099833B832A839093E9008FEF22 -:101C30009091E800815095FD06C095ED9A95F1F7D9 -:101C400000008111F5CF8091E80085FF0DC040E0D4 -:101C500050E063E070E0CE0101960E94D6108091C2 -:101C6000E8008E778093E8000F900F900F90DF913F -:101C7000CF910895CF93DF9300D01F92CDB7DEB7F9 -:101C80002091F001243021F522E029839B838A836F -:101C900083E08093E9008FEF9091E800815095FDFB -:101CA00006C095ED9A95F1F700008111F5CF80916E -:101CB000E80085FF0DC040E050E063E070E0CE0139 -:101CC00001960E94D6108091E8008E778093E800FC -:101CD0000F900F900F90DF91CF9108952091F00118 -:101CE0002430F1F422E02093E9002FEF3091E80056 -:101CF000215035FD06C035ED3A95F1F70000211170 -:101D0000F5CF2091E80025FF0BC040E050E065E0F2 -:101D100070E00E94D6108091E8008E778093E800F2 -:101D20000895CF93DF932091F001243009F048C04B -:101D3000EC0180910C018823E1F080910D01882352 -:101D4000C1F085E08093E9008FEF9091E800815029 -:101D500095FD06C095E19A95F1F700008111F5CF48 -:101D60008091E80085FF2CC040E050E060E170E029 -:101D700017C081E08093E9008FEF9091E8008150D7 -:101D800095FD06C095ED9A95F1F700008111F5CF0C -:101D90008091E80085FF14C040E050E068E070E00A -:101DA000CE010E94D6108091E8008E778093E800E3 -:101DB00080E1FE01ADE5B1E001900D928A95E1F779 -:101DC000DF91CF91089585EE94E00E94FE07809107 -:101DD000EF01811109C00E946B120E94C81280910C -:101DE000E20084608093E200089581EE94E00E9416 -:101DF000FE071092EF0108958DED94E00C94FE071C -:101E000089ED94E00E94FE070C947D2C85ED94E012 -:101E10000E94FE070E9447220E94832C0E946D159B -:101E20000C949F0D20915B012F5F822F62E30E9433 -:101E3000F12D992319F020935B01089510925B0115 -:101E400080915C01882371F18091F001843041F52B -:101E50008091E9008F702091EC00922F917020FD0D -:101E600090E8892B94E09093E9009091EB0090FF2B -:101E700014C09091EE0097FF10C09091E80095FF7C -:101E800003C01092F100F9CF9091E80090FF05C0D7 -:101E90009091E8009E779093E8008F708093E9001E -:101EA00010925C01089542E061EC81E00E94E5112E -:101EB00042E061EC82E00E94E51142E061EC83E0E7 -:101EC0000E94E51142E261EC84E00E94E51142E1EA -:101ED00061EC85E00C94E5118091F201833009F406 -:101EE00055C030F4813071F0823009F48EC008950D -:101EF0008A3009F47AC08B3009F460C0893009F067 -:101F00009CC020C08091F101813A09F096C0809177 -:101F1000E800877F8093E8008091F5019091F601B9 -:101F2000892B21F460E18DE591E003C060E080E061 -:101F300090E070E00E9421118091E8008B778093FF -:101F4000E80008958091F101813209F076C0809116 -:101F5000F5019091F601009719F0049709F06DC012 -:101F60008091E800877F8093E8008091E80082FDFF -:101F700005C08091F0018111F8CF5FC08091F10020 -:101F800080936D018091E8008B7753C08091F101BF -:101F9000813A09F052C08091F5019091F601892BA8 -:101FA00009F04BC08091E800877F8093E800809122 -:101FB000E80080FFFCCF80910C0136C08091F101D8 -:101FC0008132D9F58091F5019091F601892BA9F51F -:101FD0008091E800877F8093E8000E941A12809128 -:101FE000F30180930C010C944B1B8091F101813221 -:101FF00021F58091E800877F8093E8000E941A1203 -:102000008091F40180936E0108958091F101813AED -:10201000A1F48091E800877F8093E8008091E80038 -:1020200080FFFCCF80916E018093F1008091E800E9 -:102030008E778093E8000C941A12089584B7877FF6 -:1020400084BF88E10FB6F89480936000109260001E -:102050000FBE90E080E80FB6F894809361009093F3 -:1020600061000FBE0E94FA150E946B120E94C812F6 -:102070008091E20084608093E20083EA9DE00E9408 -:10208000862178940E944D150E94FC1582E091E013 -:102090000E9468150E946B2C84EC94E00E94FE075D -:1020A0008091F001853089F480EC94E00E94FE0775 -:1020B0000E940B228091EE01882391F30E9433222B -:1020C000882371F30E94C010EBCF0E942A16E8CF3C -:1020D000292F332723303105C9F064F4213031052D -:1020E00081F02230310509F043C08DE890E02DE108 -:1020F00035E042C021323105F1F02232310541F1A3 -:1021000037C082E190E02AEA35E036C09927813075 -:10211000910541F08230910541F0892B49F5E9E1C3 -:10212000F5E005C0E1E0F5E002C0E9EEF4E08491FD -:1021300090E09F0121C06530D8F4E62FF0E0EE0F6B -:10214000FF1FEB5DFE4F2081318189E090E014C0DC -:10215000653070F470E0FB01EE0FFF1FE55EFE4F8F -:1021600020813181FB01EA5EFE4F808190E004C056 -:1021700080E090E020E030E0FA0131832083089590 -:1021800080E189BD82E189BD09B400FEFDCF809167 -:10219000D8008F7D8093D8008091E000826080938A -:1021A000E0008091E00081FDFCCF0895CF92DF92A6 -:1021B000EF92FF920F931F93CF93DF93EC018B016C -:1021C0006A010E943912811133C0C114D10439F05F -:1021D000F60180819181081B190BC80FD91FE12CD2 -:1021E000F12C0115110519F18091E80085FD16C04B -:1021F0008091E8008E778093E800C114D10449F003 -:10220000F60180819181E80EF91EF182E08285E07D -:102210000FC00E943912882321F30AC0899180934C -:10222000F10001501109FFEFEF1AFF0ADACF80E049 -:10223000DF91CF911F910F91FF90EF90DF90CF90A2 -:1022400008952091F7013091F8012617370748F0DB -:102250006115710539F42091E8002E772093E8008C -:1022600001C0B90140E061157105A9F12091F001AB -:10227000222309F443C0253009F442C02091E8002C -:1022800023FD40C02091E80022FD32C02091E800EB -:1022900020FFE9CF4091F3002091F20030E0342B91 -:1022A000FC01CF016115710559F02830310540F46A -:1022B00081918093F100615071092F5F3F4FF1CF01 -:1022C00041E02830310509F040E02091E8002E7708 -:1022D0002093E800C8CF4111C9CF0AC08091F00116 -:1022E000882361F0853061F08091E80083FD0AC0A9 -:1022F0008091E80082FFF2CF80E0089582E00895A7 -:1023000083E0089581E008952091F7013091F8016C -:102310002617370748F06115710539F42091E80058 -:102320002E772093E80001C0B901FC0120E061157F -:10233000710591F18091F001882309F440C0853046 -:1023400009F43FC08091E80083FD3DC08091E80022 -:1023500082FD2FC08091E80080FFE9CF2091F3003B -:102360008091F20090E0922B6115710559F0883050 -:10237000910540F424912093F10031966150710948 -:102380000196F2CF21E0089709F020E08091E80063 -:102390008E778093E800CBCF2111CCCF0AC08091FB -:1023A000F001882361F0853061F08091E80083FDC1 -:1023B0000AC08091E80082FFF2CF80E0089582E0B9 -:1023C000089583E0089581E00895982F973058F597 -:1023D0009093E900981739F07091EC002091ED008E -:1023E0005091F00003C0242F762F50E021FF19C038 -:1023F0003091EB003E7F3093EB003091ED003D7F5C -:102400003093ED003091EB0031603093EB0070932E -:10241000EC002093ED005093F0002091EE0027FF98 -:1024200007C09F5FD3CF8F708093E90081E008954C -:1024300080E008958091F10187FF11C08091E8004C -:1024400082FD05C08091F0018111F8CF11C080910B -:10245000E8008B770BC08091F001882349F08091D0 -:10246000E80080FFF8CF8091E8008E778093E80045 -:1024700008952091E4003091E50095E64091EC004C -:10248000842F817040FF22C08091E80080FD1CC035 -:102490008091F001882391F0853091F08091EB00DC -:1024A00085FD10C04091E4005091E50042175307AC -:1024B00029F39A01915011F784E0089582E008957C -:1024C00083E0089581E0089580E008954091E80058 -:1024D00042FFDECF08950E94D9120E94E112E0EE81 -:1024E000F0E0808181608083E8EDF0E080818F778B -:1024F000808319BCA7EDB0E08C918E7F8C93808196 -:102500008F7E80831092EF0108950F931F93CF93D6 -:10251000DF930E94D9120E94E112C8EDD0E08881B9 -:102520008F77888388818068888388818F7D88837E -:1025300019BC1092F0011092EC011092EE01109271 -:10254000ED0100EE10E0F80180818B7F80838881AF -:102550008160888342E060E080E00E94E511E1EE66 -:10256000F0E080818E7F8083E2EEF0E08081816008 -:102570008083808188608083F80180818E7F808362 -:10258000888180618883DF91CF911F910F91089599 -:10259000E8EDF0E080818F7E8083E7EDF0E08081E0 -:1025A0008160808384E082BF81E08093EF010C949E -:1025B0008512E8EDF0E080818E7F80831092E2004A -:1025C00008951092DA001092E10008951F920F9280 -:1025D0000FB60F9211242F933F934F935F936F93F6 -:1025E0007F938F939F93AF93BF93EF93FF938091CC -:1025F000E10082FF0BC08091E20082FF07C0809162 -:10260000E1008B7F8093E1000E94120F8091DA003D -:1026100080FF1FC08091D80080FF1BC08091DA002E -:102620008E7F8093DA008091D90080FF0DC080E119 -:1026300089BD82E189BD09B400FEFDCF81E08093B0 -:10264000F0010E94E30E05C019BC1092F0010E9437 -:10265000F50E8091E10080FF19C08091E20080FFBB -:1026600015C08091E2008E7F8093E2008091E200AD -:1026700080618093E2008091D80080628093D800CE -:1026800019BC85E08093F0010E94000F8091E10069 -:1026900084FF30C08091E20084FF2CC080E189BDBE -:1026A00082E189BD09B400FEFDCF8091D8008F7D05 -:1026B0008093D8008091E1008F7E8093E10080912B -:1026C000E2008F7E8093E2008091E200816080933F -:1026D000E2008091EC01882311F084E007C0809132 -:1026E000E30087FD02C081E001C083E08093F00138 -:1026F0000E94060F8091E10083FF29C08091E200D3 -:1027000083FF25C08091E100877F8093E10082E014 -:102710008093F0011092EC018091E1008E7F809314 -:10272000E1008091E2008E7F8093E2008091E200E0 -:1027300080618093E20042E060E080E00E94E51169 -:102740008091F00088608093F0000E94FC0EFF9161 -:10275000EF91BF91AF919F918F917F916F915F9119 -:102760004F913F912F910F900FBE0F901F90189592 -:102770001F920F920FB60F9211242F933F934F93F6 -:102780005F936F937F938F939F93AF93BF93CF93F9 -:10279000DF93EF93FF93C091E900CF708091EC003D -:1027A000D82FD17080FDD0E81092E9008091F00020 -:1027B000877F8093F00078940E94FC131092E900C8 -:1027C0008091F00088608093F000CD2BCF70C09393 -:1027D000E900FF91EF91DF91CF91BF91AF919F9170 -:1027E0008F917F916F915F914F913F912F910F90BA -:1027F0000FBE0F901F9018951F93CF93DF93CDB707 -:10280000DEB7AA970FB6F894DEBF0FBECDBFE1EFDB -:10281000F1E088E08E0F9091F10091938E13FBCF41 -:102820000E946C0F8091E80083FF1FC18091F1012D -:102830009091F201492F50E04A30510508F015C13E -:10284000FA01EA5AFF4F0C94112E803881F0823839 -:1028500009F00BC18091F5018F708093E9008091A0 -:10286000EB0085FB882780F91092E90006C0809173 -:10287000ED019091EE01911182609091E800977FB7 -:102880009093E8008093F1001092F100C8C0282FC7 -:102890002D7F09F0EAC0882319F0823061F0E5C08D -:1028A0008091F301813009F0E0C0933009F080E0BD -:1028B0008093EE012BC08091F301811127C080919C -:1028C000F5018F7009F4D1C08093E9002091EB00ED -:1028D00020FF1CC0933021F48091EB00806214C073 -:1028E0009091EB0090619093EB0021E030E0A90122 -:1028F00002C0440F551F8A95E2F74093EA001092F8 -:10290000EA008091EB0088608093EB001092E90070 -:102910008091E800877F86C08111A7C01091F301E4 -:102920001F778091E3008078812B8093E300809172 -:10293000E800877F8093E8000E941A128091E800E7 -:1029400080FFFCCF8091E30080688093E300111149 -:1029500002C082E001C083E08093F00186C080580D -:10296000823008F082C08091F3019091F4018C3D97 -:1029700053E0950779F583E08A838AE289834FB72C -:10298000F894DE01139620E03EE051E2E32FF0E000 -:1029900050935700E49120FF03C0E295EF703F5F32 -:1029A000EF708E2F90E0EA3010F0C79601C0C0960D -:1029B0008D939D932F5F243149F74FBF8091E8009D -:1029C000877F8093E8006AE270E0CE0101960E9462 -:1029D000211114C0AE014F5F5F4F6091F5010E945D -:1029E0006810BC01892B09F440C09091E800977FE2 -:1029F0009093E80089819A810E9484118091E80077 -:102A00008B778093E80031C0803879F58091E800B9 -:102A1000877F8093E8008091EC018093F1008091A2 -:102A2000E8008E778093E8000E941A121EC0811180 -:102A30001CC09091F3019230C0F48091E800877F30 -:102A40008093E8009093EC010E941A128091EC01AF -:102A5000811106C08091E30087FD02C081E001C0C2 -:102A600084E08093F0010E94530F8091E80083FF7F -:102A70000AC08091E800877F8093E8008091EB0096 -:102A800080628093EB00AA960FB6F894DEBF0FBE6B -:102A9000CDBFDF91CF911F910895CF938091F00129 -:102AA0008823A1F0C091E900CF709091EC00892FAC -:102AB000817090FD80E8C82B1092E9008091E800B9 -:102AC00083FD0E94FC13CF70C093E900CF9108955D -:102AD00090937401809373010895E0917301F091D4 -:102AE0007401309721F00190F081E02D099480E08D -:102AF0000895EF92FF920F931F93CF93DF93E0918E -:102B00007301F09174013097B1F18C010280F3816F -:102B1000E02D09958091D70182FF2DC080FF04C070 -:102B20008FED96E00E94FE07E80110E189EDE82EA6 -:102B300086E0F82E8091D70180FF0BC088811F921C -:102B40008F93FF92EF920E9497080F900F900F9033 -:102B50000F90115021961111EDCF8091D70180FF78 -:102B60000AC087ED96E0DF91CF911F910F91FF9002 -:102B7000EF900C94FE07DF91CF911F910F91FF9082 -:102B8000EF900895E0917301F0917401309721F076 -:102B90000480F581E02D0994089520917101309110 -:102BA00072018217930771F0909372018093710103 -:102BB000E0917301F0917401309721F00680F78164 -:102BC000E02D0994089520916F01309170018217D2 -:102BD000930771F09093700180936F01E0917301FE -:102BE000F0917401309721F00084F185E02D099473 -:102BF000089508950C94F9150E9449220E94F00945 -:102C00000C940F23CF93C82F8091D70182FF1EC051 -:102C100080FF04C088EF96E00E94FE078091D701F4 -:102C200080FF0CC01F92CF9383EF96E09F938F930A -:102C30000E9497080F900F900F900F908091D701EE -:102C400080FF04C081EF96E00E94FE078C2FCF9199 -:102C50000C949F0DCF92DF92EF92FF920F931F93F0 -:102C6000CF93DF93CDB7DEB72B970FB6F894DEBFC7 -:102C70000FBECDBF0E940D0A86E7C82E81E0D82E78 -:102C800000E010E0E02E802F0E94390BF601419108 -:102C90006F01F42EF826B1F40F5F1F4F0E301105AF -:102CA00089F78FEF89838A831B820E945222816079 -:102CB000782F9D838C8349815A816B818D810E94FD -:102CC000CD1640C09091D70191FF04C08B870E9420 -:102CD0003F0B8B8520E030E04F2D50E0922FBA0162 -:102CE000022E02C0759567950A94E2F760FF24C032 -:102CF0002E83EF8221E030E0690102C0CC0CDD1CA4 -:102D00009A95E2F790E08C219D21892B09F420E02F -:102D100028870E9452228160782F9A8789874E8166 -:102D20005F8168858A850E94CD16F801EA58FE4FBA -:102D30008081C826C08206C02F5F3F4F26303105F4 -:102D400069F6AACF0E948026109175010E946D1528 -:102D50001817A1F00E946D15809375012B960FB680 -:102D6000F894DEBF0FBECDBFDF91CF911F910F91C1 -:102D7000FF90EF90DF90CF900C9402162B960FB639 -:102D8000F894DEBF0FBECDBFDF91CF911F910F91A1 -:102D9000FF90EF90DF90CF900895CF93DF93CDB762 -:102DA000DEB72B970FB6F894DEBF0FBECDBF4F83B3 -:102DB000588769877A878B87DE01119686E0FD0147 -:102DC00011928A95E9F785E0FE01379601900D9200 -:102DD0008A95E1F749815A816B817C818D819E8141 -:102DE0000E94E51D2B960FB6F894DEBF0FBECDBF37 -:102DF000DF91CF910895CF93882309F4C2C0C82FE3 -:102E0000823859F40E946D1581FDBBC089E30E9490 -:102E100081200E94602189E30CC0833879F40E94EC -:102E20006D1580FDAEC083E50E9481200E94602167 -:102E300083E50E94D420CF910C946021843859F40A -:102E40000E946D1582FD9DC087E40E9481200E9432 -:102E5000602187E4EECF8CEF8C0F813A48F48C2F01 -:102E60000E94132B81118DC08C2F0E948120E3CFF3 -:102E700080E28C0F883048F4C77081E001C0880F71 -:102E8000CA95EAF70E942921D6CF8BE58C0F8330B3 -:102E900078F4C53A29F0C63A31F083E890E005C0ED -:102EA00081E890E002C082E890E0CF910C94CD15CB -:102EB00088E58C0F833108F064C0C83A39F1C93A0B -:102EC00041F1CA3A49F1CB3A51F1CC3A59F1CD3AF4 -:102ED00061F1C03B69F1CE3A71F1CF3A79F1C13B72 -:102EE00081F1C23B89F1C33B91F1C43B99F1C53BF0 -:102EF000A1F1C63BA9F1C73BB1F1C83BB9F1C93B50 -:102F0000C1F1CA3BC9F180E090E038C082EE90E0A8 -:102F100035C089EE90E032C08AEE90E02FC085EB9C -:102F200090E02CC086EB90E029C087EB90E026C0B3 -:102F30008CEC90E023C08DEC90E020C083E891E021 -:102F40001DC08AE891E01AC082E991E017C084E9C7 -:102F500091E014C081E292E011C083E292E00EC0E1 -:102F600084E292E00BC085E292E008C086E292E043 -:102F700005C087E292E002C08AE292E0CF910C9411 -:102F8000E315CF910895882309F44BC0823859F492 -:102F90000E946D1581FF45C089E30E9481200E9437 -:102FA000602189E30CC0833871F40E946D1580FFA5 -:102FB00038C083E50E9481200E94602183E50E9441 -:102FC000D4200C946021843859F40E946D1582FF3E -:102FD00028C087E40E9481200E94602187E4EFCF0F -:102FE0009CEF980F913A58F390E2980F983050F474 -:102FF000877091E001C0990F8A95EAF7892F0E94A6 -:103000002F21DFCF9BE5980F933020F480E090E0F4 -:103010000C94CD15885A833120F480E090E00C9414 -:10302000E3150895882321F00E9429210C94602142 -:103030000895882321F00E942F210C946021089587 -:10304000BF92CF92DF92EF92FF920F931F93CF9395 -:10305000DF9300D000D000D0CDB7DEB725E0FC0173 -:10306000DE01119601900D922A95E1F7FC01408155 -:1030700031810281258122952F7063817481672BB4 -:1030800009F4E7C23F3F19F44F3F09F4E2C27C0163 -:1030900049833A8389819A812E830E944020182F88 -:1030A000B92E0E943F200E94061FEB2DE295EF7083 -:1030B000F0E0E05AFF4F2E810C94112E8B2D807F73 -:1030C0009B2D9F70F92E882319F0F29480EFF8223F -:1030D000002349F0FF2009F469C28F2D0E94392195 -:1030E0000E94602163C2812F0E94C317FF2009F450 -:1030F000B0C28F2D0E943F2126960FB6F894DEBFF6 -:103100000FBECDBFDF91CF911F910F91FF90EF9038 -:10311000DF90CF90BF900C9460213B2D307F8B2DA2 -:103120008F70303211F08295807F112319F01130A9 -:1031300021F12DC00023B9F0222309F4A1C12130CF -:1031400009F09EC126960FB6F894DEBF0FBECDBF24 -:10315000DF91CF911F910F91FF90EF90DF90CF9073 -:10316000BF900C944921222319F0213009F471C237 -:103170008E830E944C218E8197C1002321F026303E -:1031800008F067C27DC1253008F063C28DC10023FD -:1031900021F0222309F474C109C2222309F484C155 -:1031A0001AC22B2D26952695237030E02115310566 -:1031B00021F021303105D1F04CC2002321F0812FC4 -:1031C0009B2D937002C080E090E026960FB6F89495 -:1031D000DEBF0FBECDBFDF91CF911F910F91FF904A -:1031E000EF90DF90CF90BF900C94CD15002321F08D -:1031F000812F9B2D937002C080E090E026960FB641 -:10320000F894DEBF0FBECDBFDF91CF911F910F911C -:10321000FF90EF90DF90CF90BF900C94E315812F3B -:10322000002319F00E94062502C00E946E252696F2 -:103230000FB6F894DEBF0FBECDBFDF91CF911F91C7 -:103240000F91FF90EF90DF90CF90BF900C94F325FB -:103250008B2D837009F07BC00111FBC1812F8295FA -:1032600086958770880F880F912F9F70C92ED12C5B -:10327000E12CF12C082E04C0CC0CDD1CEE1CFF1C34 -:103280000A94D2F714FF12C04FE050E060E070E003 -:1032900004C0440F551F661F771F8A95D2F7CB01D4 -:1032A000BA01609570958095909503C060E070E0DC -:1032B000CB012B2D269526952370422F50E04230CE -:1032C0005105D9F04330510569F16C297D298E29CA -:1032D0009F294130510551F126960FB6F894DEBF73 -:1032E0000FBECDBFDF91CF911F910F91FF90EF9057 -:1032F000DF90CF90BF900C942D1F6C297D298E29D3 -:103300009F2926960FB6F894DEBF0FBECDBFDF9182 -:10331000CF911F910F91FF90EF90DF90CF90BF90D2 -:103320000C94491F0E942D1FC701B60126960FB6A7 -:10333000F894DEBF0FBECDBFDF91CF911F910F91EB -:10334000FF90EF90DF90CF90BF900C94111F00235F -:1033500019F08B2D817001C08695882309F479C1FD -:10336000812F829586958770880F880F912F9F7087 -:10337000C92ED12CE12CF12C082E04C0CC0CDD1C64 -:10338000EE1CFF1C0A94D2F714FF12C04FE050E06D -:1033900060E070E004C0440F551F661F771F8A95D8 -:1033A000D2F7CB01BA01609570958095909503C0D6 -:1033B00060E070E0CB012B2D269526952370422FDF -:1033C00050E042305105D9F04330510569F16C2984 -:1033D0007D298E299F294130510551F126960FB63E -:1033E000F894DEBF0FBECDBFDF91CF911F910F913B -:1033F000FF90EF90DF90CF90BF900C9407206C2946 -:103400007D298E299F2926960FB6F894DEBF0FBE20 -:10341000CDBFDF91CF911F910F91FF90EF90DF9083 -:10342000CF90BF900C9423200E940720C701B601C3 -:1034300026960FB6F894DEBF0FBECDBFDF91CF91B9 -:103440001F910F91FF90EF90DF90CF90BF900C9461 -:10345000EB1F103FD1F118F4103E50F4A2C0123F00 -:1034600009F464C008F44DC0133F09F474C099C056 -:103470001F708B2D8F710023A1F00E94841F812F5C -:1034800026960FB6F894DEBF0FBECDBFDF91CF9169 -:103490001F910F91FF90EF90DF90CF90BF900C9411 -:1034A00012180E94A51F812F26960FB6F894DEBF32 -:1034B0000FBECDBFDF91CF911F910F91FF90EF9085 -:1034C000DF90CF90BF900C9419180023B1F02530F5 -:1034D00008F0BFC08B2D8F7126960FB6F894DEBF13 +:1011C0000E94B10880E090E0089556985E982598B6 +:1011D0002D9826982E9827982F988FEF90E090932F +:1011E00089008093880090938B0080938A0090936D +:1011F0008D0080938C00259A2D9A2FEF80E792E046 +:10120000215080409040E1F700C00000269A2E9ABD +:101210002FEF80E792E0215080409040E1F700C03E +:101220000000279A2F9A2FEF80E792E0215080400C +:101230009040E1F700C0000025982D982FEF80E73F +:1012400092E0215080409040E1F700C000002698D5 +:101250002E982FEF80E792E0215080409040E1F7F8 +:1012600000C0000027982F9856985E9825982D98D2 +:1012700026982E9827982F98089589EA80938000C1 +:1012800089E08093810024982C983F988AB18F74CC +:101290008AB96E98479A8BB1806B8BB9769A0E9407 +:1012A000E50880EB98E0892B11F00E94B00880E0FF +:1012B00090E0089580E28093000180913C018111CB +:1012C0000EC00E94A90981E080933C012FEF83EDBD +:1012D00090E3215080409040E1F700C0000080E49E +:1012E0000E94AF098093000181112EC00E94D9098C +:1012F00080930001811128C00E94D90980930001C8 +:10130000811122C08FE30E94D909809300018111CD +:101310001BC00E94D10980E40E94AF0980930001A4 +:10132000811112C08CE00E94D909809300018111C3 +:101330000BC00E94D90980930001811105C08FE381 +:101340000E94D909809300010E94D1098091000177 +:1013500008951092B9008AE08093B800089594EA45 +:101360009093BC009091BC0097FFFCCF9091B90086 +:10137000987F983021F0903111F081E008958093AA +:10138000BB0084E88093BC008091BC0087FFFCCF49 +:101390008091B900887F883111F0803471F780E046 +:1013A000089584E98093BC008091BC0084FDFCCF4B +:1013B00008958093BB0084E88093BC008091BC00BA +:1013C00087FFFCCF9091B900987F81E0983209F4B3 +:1013D00080E0089584E88093BC008091BC0087FF82 +:1013E000FCCF8091BB00089580910001811115C050 +:1013F00080E40E94AF098093000181110CC082E15A +:101400000E94D90980930001811105C08FEF0E94CD +:10141000D909809300010E94D10984B1807F84B9E9 +:1014200085B1807F85B98AB1837F8AB98BB1837F8B +:101430008BB93E98469808950E945A0980930001FE +:101440000E94F40980B38C7080BB81B3836F81BB31 +:10145000AEE3B1E0ECE4F1E08EE08E0F11921D926C +:101460008E13FCCF8DE399E0892B11F00C943D098C +:1014700008959F92AF92BF92CF92DF92EF92FF9228 +:101480000F931F93CF93DF93809100018823E1F0A6 +:1014900080913D018F5F80933D01811115C084E9EA +:1014A00094E00E94FE070E945A098093000188235D +:1014B00029F08AE794E00E94FE0706C086E694E0E1 +:1014C0000E94FE070E94E5080EE311E0C0E0D0E0B4 +:1014D000BB24B39482E0A82ECC24C394D12C27E55E +:1014E000E22E24E0F22EC730D10500F580910001F4 +:1014F000811164C080E40E94AF09809300018111D2 +:1015000012C082E10E94D9098093000181110BC0B1 +:10151000C6010C2E01C0880F0A94EAF780950E943C +:10152000D909809300010E94D10948C0CA30A1F0B6 +:1015300028F4C83059F0C93061F005C0CC3089F0CA +:1015400070F0CD3089F0209A289810C0219A2998FF +:101550000DC0229A2A980AC0239A2B9807C0529A43 +:1015600001C0539A5B9802C03E9A469890EA9A95B9 +:10157000F1F79FB1799902C082E001C080E09170DB +:101580009B25982B7C9902C084E001C080E0892BC8 +:101590007D9902C038E001C030E0832B7E9902C003 +:1015A00020E101C020E0822B9FB19095991F9927DF +:1015B000991F9295990F907E892B10C08091000100 +:1015C000811174C080E40E94AF09809300018823D8 +:1015D00009F459C0912C0E94D109892DF8019081FC +:1015E000981739F1808380910101882301F180915E +:1015F000D70180FF04C08CE594E00E94FE07809133 +:10160000D70180FF0CC0809101011F928F93FF9240 +:10161000EF920E9497080F900F900F900F9080917B +:10162000D70180FF04C085E594E00E94FE07A092E8 +:1016300001010E94F40921960F5F1F4FCE30D105A2 +:1016400009F051CF809101018823B1F0815080933E +:101650000101882339F08FE99FE00197F1F700C07D +:1016600000000AC0ACE4B1E0EEE3F1E0CF01825F3C +:1016700091919D938E13FCCF8CED98E0892BC1F056 +:101680000E94DC0815C083E10E94D9098093000103 +:101690008111A0CF81E40E94AF09809300018111E4 +:1016A00099CF0E94EA09982E909495CF80E096CF2A +:1016B00081E0DF91CF911F910F91FF90EF90DF902C +:1016C000CF90BF90AF909F900895E82FF0E0E45B3B +:1016D000FE4F80810895CF92DF92EF92FF920F9399 +:1016E0001F93CF93DF938EE394E00E94FE078CE478 +:1016F000E82E81E0F82EC0E0D0E099E3C92E94E016 +:10170000D92E00E314E0DF93CF93DF92CF920E94B3 +:10171000970886E394E00E94FE07F70181917F011C +:1017200090E00E941D229F938F931F930F930E941E +:1017300097088EE294E00E94FE0721968DB79EB72F +:1017400008960FB6F8949EBF0FBE8DBFCE30D10560 +:10175000D1F6DF91CF911F910F91FF90EF90DF9025 +:10176000CF9008958B3B910578F4883A910540F528 +:10177000853A9105D0F48430910508F0B1C08130EC +:10178000910509F4ADC06BC0803E910508F467C0B7 +:10179000883E910508F4A4C09C01205F31092031E6 +:1017A000310508F05CC090650895853A910509F40B +:1017B00059C0863A910509F058C082E890E408952E +:1017C000883A910509F454C0893A910509F453C047 +:1017D0008A3A910509F452C08B3A910509F451C037 +:1017E0008C3A910509F450C08D3A910509F44FC027 +:1017F000803B910509F44EC08E3A910509F44DC025 +:101800008F3A910509F44CC0813B910509F44BC016 +:10181000823B910509F44AC0833B910509F449C014 +:10182000843B910509F448C0853B910509F447C004 +:10183000863B910509F446C0873B910509F445C0F4 +:10184000883B910509F444C0893B910509F443C0E4 +:101850008A3B910509F442C080E094E4089580E059 +:1018600090E0089581E890E4089583E890E4089575 +:1018700082EE94E4089589EE94E408958AEE94E467 +:10188000089585EB94E4089586EB94E4089587EB3E +:1018900094E408958CEC94E408958DEC94E4089518 +:1018A00083E895E408958AE895E4089582E995E44B +:1018B000089584E995E4089581E296E4089583E229 +:1018C00096E4089584E296E4089585E296E4089506 +:1018D00086E296E4089587E296E408958AE296E423 +:1018E0000895089596E0799FF001112494E5899F69 +:1018F000E00DF11D1124E60FF11DEE0FFF1FEA515F +:10190000FF4F859194910895880F991FFC01E05A2B +:10191000F040859194910895880F991FFC01E05241 +:10192000FF4F85919491089526E0729FF001112454 +:1019300044E5849FE00DF11D1124E60FF11DEE0F2B +:10194000FF1FEA51FF4F859194919C013A95211513 +:101950004FE1340708F41EC13F512115304120F4F6 +:101960009F700E948C0C08959C01305321153041CA +:1019700018F49927906C0895811520E5920769F471 +:101980000E94771B4FEF84E39CE0415080409040E1 +:10199000E1F700C000000C94D922813020E59207C5 +:1019A00051F48EEA94E00E94FE078091D701816095 +:1019B0008093D70108959C0130552115304108F0DE +:1019C00051C0292F33272F70332721303105D9F407 +:1019D000AC014370552702C0220F331F4A95E2F72E +:1019E0003C68AC0164E0440F551F6A95E1F7442759 +:1019F0005370242B352B73E0880F991F7A95E1F7EC +:101A0000807699271DC02230310529F4982F882728 +:101A1000816F906A089523303105A9F4AC014370B9 +:101A2000552721E030E002C0220F331F4A95E2F72C +:101A30003C6843E0880F991F4A95E1F7807E9770D4 +:101A4000822B932B089524303105E1F4AC014370CF +:101A5000552721E030E002C0220F331F4A95E2F7FC +:101A60003A68E7CF9C0130572115304118F49F7038 +:101A7000906208959C0130582115304118F49F70F0 +:101A8000906A0895803E9105E0F4803C910558F5F8 +:101A90008133910509F46FC048F48932910509F446 +:101AA00063C08A32910509F46DC072C08933910513 +:101AB000E9F082389105D1F08533910509F44DC0E4 +:101AC00067C0833E910581F138F4803E9105B9F0FD +:101AD000823E9105D9F05CC0863E910561F1873E5A +:101AE0009105A1F155C00E94840C08952091EA014E +:101AF00020FD02C021FF4CC080EE90E049C08091E3 +:101B0000EA0180FFF9CF89E390E042C08091EA01C9 +:101B100082FF0EC08091EA0184FF03C080E090E064 +:101B200037C083EE90E034C08091EA0182FFF2CFAB +:101B300082EE90E02DC08091EA0183FF0BC080917E +:101B4000EA0184FDEBCF87EE90E022C08091EA01AC +:101B500083FFF5CF86EE90E01BC08091EA0185FF00 +:101B600007C089E290E014C08091EA0185FFF9CFB7 +:101B700085E390E00DC08091EA0186FF07C08AE20C +:101B800090E006C08091EA0186FFF9CF81E390E002 +:101B90000E94B20B0895089580916D0108959FB73A +:101BA000F89410925C019FBF9091F001943009F07D +:101BB00057C09091E9009F703091EC00232F217065 +:101BC00030FD20E8922B24E02093E9002091EB00E7 +:101BD00020FF43C02091EE0027FF3FC020915A0113 +:101BE000222321F02091E80025FF37C010925A01EE +:101BF00026E03091E80035FD15C03091F001343019 +:101C000061F53091EB0035FD28C0215021F481E0D1 +:101C100080935A0122C0EFE9FFE03197F1F700C04D +:101C20000000E7CF8093F1008091E80085FD0AC0B5 +:101C30008091E80080FFFCCF8091E8008E77809350 +:101C4000E80006C08FB7F89421E020935C018FBFB5 +:101C50009F709093E90080E008959F709093E90051 +:101C60008FEF0895CF93DF9300D01F92CDB7DEB7EB +:101C70009C018091F001843019F593E099833B83B6 +:101C80002A839093E9008FEF9091E800815095FDB1 +:101C900006C095ED9A95F1F700008111F5CF80917E +:101CA000E80085FF0DC040E050E063E070E0CE0149 +:101CB00001960E9402118091E8008E778093E800DF +:101CC0000F900F900F90DF91CF910895CF93DF93F6 +:101CD00000D01F92CDB7DEB72091F001243021F55E +:101CE00022E029839B838A8383E08093E9008FEF3E +:101CF0009091E800815095FD06C095ED9A95F1F719 +:101D000000008111F5CF8091E80085FF0DC040E013 +:101D100050E063E070E0CE0101960E9402118091D4 +:101D2000E8008E778093E8000F900F900F90DF917E +:101D3000CF9108952091F0012430F1F422E0209316 +:101D4000E9002FEF3091E800215035FD06C035ED58 +:101D50003A95F1F700002111F5CF2091E80025FF19 +:101D60000BC040E050E065E070E00E9402118091FD +:101D7000E8008E778093E8000895CF93DF93209159 +:101D8000F001243009F048C0EC0180910C01882357 +:101D9000E1F080910D018823C1F085E08093E90096 +:101DA0008FEF9091E800815095FD06C095E19A95DE +:101DB000F1F700008111F5CF8091E80085FF2CC07C +:101DC00040E050E060E170E017C081E08093E900FE +:101DD0008FEF9091E800815095FD06C095ED9A95A2 +:101DE000F1F700008111F5CF8091E80085FF14C064 +:101DF00040E050E068E070E0CE010E940211809166 +:101E0000E8008E778093E80080E1FE01ADE5B1E067 +:101E100001900D928A95E1F7DF91CF91089585EEBB +:101E200094E00E94FE078091EF01811109C00E9499 +:101E300097120E94F4128091E20084608093E20085 +:101E4000089581EE94E00E94FE071092EF0108953C +:101E50008DED94E00C94FE0789ED94E00E94FE075E +:101E60000C94A92C85ED94E00E94FE070E94732239 +:101E70000E94AF2C0E9499150C94CB0D20915B0110 +:101E80002F5F822F62E30E941D2E992319F0209369 +:101E90005B01089510925B0180915C01882371F1D0 +:101EA0008091F001843041F58091E9008F7020919C +:101EB000EC00922F917020FD90E8892B94E0909394 +:101EC000E9009091EB0090FF14C09091EE0097FF15 +:101ED00010C09091E80095FF03C01092F100F9CF77 +:101EE0009091E80090FF05C09091E8009E77909354 +:101EF000E8008F708093E90010925C01089542E041 +:101F000061EC81E00E94111242E061EC82E00E94EB +:101F1000111242E061EC83E00E94111242E261EC96 +:101F200084E00E94111242E161EC85E00C941112F0 +:101F30008091F201833009F455C030F4813071F0A2 +:101F4000823009F48EC008958A3009F47AC08B304B +:101F500009F460C0893009F09CC020C08091F10173 +:101F6000813A09F096C08091E800877F8093E8006D +:101F70008091F5019091F601892B21F460E18DE5C6 +:101F800091E003C060E080E090E070E00E944D11BD +:101F90008091E8008B778093E80008958091F101AB +:101FA000813209F076C08091F5019091F601009799 +:101FB00019F0049709F06DC08091E800877F809345 +:101FC000E8008091E80082FD05C08091F001811158 +:101FD000F8CF5FC08091F10080936D018091E8009F +:101FE0008B7753C08091F101813A09F052C0809102 +:101FF000F5019091F601892B09F04BC08091E80022 +:10200000877F8093E8008091E80080FFFCCF80917B +:102010000C0136C08091F1018132D9F58091F50132 +:102020009091F601892BA9F58091E800877F809334 +:10203000E8000E9446128091F30180930C010C94F9 +:10204000771B8091F101813221F58091E800877F33 +:102050008093E8000E9446128091F40180936E0103 +:1020600008958091F101813AA1F48091E800877F81 +:102070008093E8008091E80080FFFCCF80916E01A2 +:102080008093F1008091E8008E778093E8000C94B3 +:102090004612089584B7877F84BF88E10FB6F8940D +:1020A00080936000109260000FBE90E080E80FB651 +:1020B000F89480936100909361000FBE0E942616F1 +:1020C0000E9497120E94F4128091E2008460809333 +:1020D000E2008FEC9DE00E94B22178940E94791575 +:1020E0000E94281682E091E00E9494150E94972C8D +:1020F00084EC94E00E94FE078091F001853089F421 +:1021000080EC94E00E94FE070E9437228091EE014D +:10211000882391F30E945F22882371F30E94EC10C0 +:10212000EBCF0E945616E8CF292F332723303105F5 +:10213000C9F064F42130310581F02230310509F015 +:1021400043C08DE890E02DE135E042C021323105F9 +:10215000F1F02232310541F137C082E190E02AEA04 +:1021600035E036C099278130910541F082309105E4 +:1021700041F0892B49F5E9E1F5E005C0E1E0F5E042 +:1021800002C0E9EEF4E0849190E09F0121C0653047 +:10219000D8F4E62FF0E0EE0FFF1FEB5DFE4F20813D +:1021A000318189E090E014C0653070F470E0FB018B +:1021B000EE0FFF1FE55EFE4F20813181FB01EA5EDD +:1021C000FE4F808190E004C080E090E020E030E0AD +:1021D000FA0131832083089580E189BD82E189BDC0 +:1021E00009B400FEFDCF8091D8008F7D8093D80088 +:1021F0008091E00082608093E0008091E00081FDAA +:10220000FCCF0895CF92DF92EF92FF920F931F932E +:10221000CF93DF93EC018B016A010E94651281115B +:1022200033C0C114D10439F0F60180819181081BBB +:10223000190BC80FD91FE12CF12C0115110519F14B +:102240008091E80085FD16C08091E8008E7780932C +:10225000E800C114D10449F0F60180819181E80EB3 +:10226000F91EF182E08285E00FC00E94651288238A +:1022700021F30AC089918093F10001501109FFEF09 +:10228000EF1AFF0ADACF80E0DF91CF911F910F9113 +:10229000FF90EF90DF90CF9008952091F70130915B +:1022A000F8012617370748F06115710539F42091B8 +:1022B000E8002E772093E80001C0B90140E06115E5 +:1022C0007105A9F12091F001222309F443C02530C2 +:1022D00009F442C02091E80023FD40C02091E800AD +:1022E00022FD32C02091E80020FFE9CF4091F300A9 +:1022F0002091F20030E0342BFC01CF016115710513 +:1023000059F02830310540F481918093F1006150FB +:1023100071092F5F3F4FF1CF41E02830310509F0BF +:1023200040E02091E8002E772093E800C8CF4111CB +:10233000C9CF0AC08091F001882361F0853061F037 +:102340008091E80083FD0AC08091E80082FFF2CF0F +:1023500080E0089582E0089583E0089581E0089583 +:102360002091F7013091F8012617370748F06115E1 +:10237000710539F42091E8002E772093E80001C020 +:10238000B901FC0120E06115710591F18091F00126 +:10239000882309F440C0853009F43FC08091E800EB +:1023A00083FD3DC08091E80082FD2FC08091E80050 +:1023B00080FFE9CF2091F3008091F20090E0922B12 +:1023C0006115710559F08830910540F424912093EE +:1023D000F1003196615071090196F2CF21E0089722 +:1023E00009F020E08091E8008E778093E800CBCF61 +:1023F0002111CCCF0AC08091F001882361F0853093 +:1024000061F08091E80083FD0AC08091E80082FFBE +:10241000F2CF80E0089582E0089583E0089581E09E +:102420000895982F973058F59093E900981739F050 +:102430007091EC002091ED005091F00003C0242F2A +:10244000762F50E021FF19C03091EB003E7F309392 +:10245000EB003091ED003D7F3093ED003091EB00CB +:1024600031603093EB007093EC002093ED005093BB +:10247000F0002091EE0027FF07C09F5FD3CF8F7041 +:102480008093E90081E0089580E008958091F10152 +:1024900087FF11C08091E80082FD05C08091F001A6 +:1024A0008111F8CF11C08091E8008B770BC080912B +:1024B000F001882349F08091E80080FFF8CF8091F7 +:1024C000E8008E778093E80008952091E400309131 +:1024D000E50095E64091EC00842F817040FF22C01A +:1024E0008091E80080FD1CC08091F001882391F06C +:1024F000853091F08091EB0085FD10C04091E400A3 +:102500005091E5004217530729F39A01915011F7B2 +:1025100084E0089582E0089583E0089581E00895BD +:1025200080E008954091E80042FFDECF08950E94C8 +:1025300005130E940D13E0EEF0E08081816080833E +:10254000E8EDF0E080818F77808319BCA7EDB0E0E3 +:102550008C918E7F8C9380818F7E80831092EF018F +:1025600008950F931F93CF93DF930E9405130E944A +:102570000D13C8EDD0E088818F77888388818068CB +:10258000888388818F7D888319BC1092F001109216 +:10259000EC011092EE011092ED0100EE10E0F80156 +:1025A00080818B7F808388818160888342E060E0C6 +:1025B00080E00E941112E1EEF0E080818E7F808346 +:1025C000E2EEF0E08081816080838081886080839A +:1025D000F80180818E7F8083888180618883DF918C +:1025E000CF911F910F910895E8EDF0E080818F7EEB +:1025F0008083E7EDF0E080818160808384E082BFAA +:1026000081E08093EF010C94B112E8EDF0E080815D +:102610008E7F80831092E20008951092DA0010926B +:10262000E10008951F920F920FB60F9211242F937D +:102630003F934F935F936F937F938F939F93AF934A +:10264000BF93EF93FF938091E10082FF0BC08091D5 +:10265000E20082FF07C08091E1008B7F8093E10060 +:102660000E943E0F8091DA0080FF1FC08091D80049 +:1026700080FF1BC08091DA008E7F8093DA0080910A +:10268000D90080FF0DC080E189BD82E189BD09B418 +:1026900000FEFDCF81E08093F0010E940F0F05C086 +:1026A00019BC1092F0010E94210F8091E10080FF7F +:1026B00019C08091E20080FF15C08091E2008E7FFA +:1026C0008093E2008091E20080618093E20080913B +:1026D000D80080628093D80019BC85E08093F00117 +:1026E0000E942C0F8091E10084FF30C08091E200B5 +:1026F00084FF2CC080E189BD82E189BD09B400FE60 +:10270000FDCF8091D8008F7D8093D8008091E1002B +:102710008F7E8093E1008091E2008F7E8093E200C3 +:102720008091E20081608093E2008091EC01882337 +:1027300011F084E007C08091E30087FD02C081E0D2 +:1027400001C083E08093F0010E94320F8091E1008C +:1027500083FF29C08091E20083FF25C08091E100C2 +:10276000877F8093E10082E08093F0011092EC017A +:102770008091E1008E7F8093E1008091E2008E7F66 +:102780008093E2008091E20080618093E20042E069 +:1027900060E080E00E9411128091F00088608093D8 +:1027A000F0000E94280FFF91EF91BF91AF919F9190 +:1027B0008F917F916F915F914F913F912F910F90EA +:1027C0000FBE0F901F9018951F920F920FB60F9289 +:1027D00011242F933F934F935F936F937F938F9326 +:1027E0009F93AF93BF93CF93DF93EF93FF93C091EA +:1027F000E900CF708091EC00D82FD17080FDD0E837 +:102800001092E9008091F000877F8093F000789427 +:102810000E9428141092E9008091F0008860809353 +:10282000F000CD2BCF70C093E900FF91EF91DF91C5 +:10283000CF91BF91AF919F918F917F916F915F9158 +:102840004F913F912F910F900FBE0F901F901895B1 +:102850001F93CF93DF93CDB7DEB7AA970FB6F89447 +:10286000DEBF0FBECDBFE1EFF1E088E08E0F9091AB +:10287000F10091938E13FBCF0E94980F8091E80096 +:1028800083FF1FC18091F1019091F201492F50E027 +:102890004A30510508F015C1FA01EA5AFF4F0C946D +:1028A0003D2E803881F0823809F00BC18091F5010E +:1028B0008F708093E9008091EB0085FB882780F979 +:1028C0001092E90006C08091ED019091EE01911106 +:1028D00082609091E800977F9093E8008093F100E8 +:1028E0001092F100C8C0282F2D7F09F0EAC088237C +:1028F00019F0823061F0E5C08091F301813009F078 +:10290000E0C0933009F080E08093EE012BC080910D +:10291000F301811127C08091F5018F7009F4D1C0B6 +:102920008093E9002091EB0020FF1CC0933021F43C +:102930008091EB00806214C09091EB0090619093C5 +:10294000EB0021E030E0A90102C0440F551F8A9539 +:10295000E2F74093EA001092EA008091EB00886071 +:102960008093EB001092E9008091E800877F86C099 +:102970008111A7C01091F3011F778091E300807847 +:10298000812B8093E3008091E800877F8093E800AB +:102990000E9446128091E80080FFFCCF8091E30006 +:1029A00080688093E300111102C082E001C083E0DF +:1029B0008093F00186C08058823008F082C08091F8 +:1029C000F3019091F4018C3D53E0950779F583E094 +:1029D0008A838AE289834FB7F894DE01139620E058 +:1029E0003EE051E2E32FF0E050935700E49120FFE6 +:1029F00003C0E295EF703F5FEF708E2F90E0EA30FA +:102A000010F0C79601C0C0968D939D932F5F24311F +:102A100049F74FBF8091E800877F8093E8006AE222 +:102A200070E0CE0101960E944D1114C0AE014F5FBF +:102A30005F4F6091F5010E949410BC01892B09F44D +:102A400040C09091E800977F9093E80089819A8137 +:102A50000E94B0118091E8008B778093E80031C02C +:102A6000803879F58091E800877F8093E800809135 +:102A7000EC018093F1008091E8008E778093E8006C +:102A80000E9446121EC081111CC09091F301923029 +:102A9000C0F48091E800877F8093E8009093EC0178 +:102AA0000E9446128091EC01811106C08091E300E2 +:102AB00087FD02C081E001C084E08093F0010E94A4 +:102AC0007F0F8091E80083FF0AC08091E800877F34 +:102AD0008093E8008091EB0080628093EB00AA96DF +:102AE0000FB6F894DEBF0FBECDBFDF91CF911F911F +:102AF0000895CF938091F0018823A1F0C091E9005F +:102B0000CF709091EC00892F817090FD80E8C82BE8 +:102B10001092E9008091E80083FD0E942814CF7094 +:102B2000C093E900CF91089590937401809373014D +:102B30000895E0917301F0917401309721F00190B4 +:102B4000F081E02D099480E00895EF92FF920F93B9 +:102B50001F93CF93DF93E0917301F091740130974D +:102B6000B1F18C010280F381E02D09958091D701AC +:102B700082FF2DC080FF04C08FED96E00E94FE070B +:102B8000E80110E189EDE82E86E0F82E8091D7016A +:102B900080FF0BC088811F928F93FF92EF920E945B +:102BA00097080F900F900F900F90115021961111D0 +:102BB000EDCF8091D70180FF0AC087ED96E0DF91CD +:102BC000CF911F910F91FF90EF900C94FE07DF9132 +:102BD000CF911F910F91FF90EF900895E0917301B5 +:102BE000F0917401309721F00480F581E02D099473 +:102BF000089520917101309172018217930771F04D +:102C00009093720180937101E0917301F0917401CE +:102C1000309721F00680F781E02D099408952091E6 +:102C20006F01309170018217930771F090937001DA +:102C300080936F01E0917301F0917401309721F05E +:102C40000084F185E02D0994089508950C942516CB +:102C50000E9475220E941C0A0C943B23CF93C82F1C +:102C60008091D70182FF1EC080FF04C088EF96E0EC +:102C70000E94FE078091D70180FF0CC01F92CF9366 +:102C800083EF96E09F938F930E9497080F900F9089 +:102C90000F900F908091D70180FF04C081EF96E0E4 +:102CA0000E94FE078C2FCF910C94CB0DCF92DF9218 +:102CB000EF92FF920F931F93CF93DF93CDB7DEB7C1 +:102CC0002B970FB6F894DEBF0FBECDBF0E94390A16 +:102CD00086E7C82E81E0D82E00E010E0E02E802F9D +:102CE0000E94650BF60141916F01F42EF826B1F4B4 +:102CF0000F5F1F4F0E30110589F78FEF89838A838D +:102D00001B820E947E228160782F9D838C83498163 +:102D10005A816B818D810E94F91640C09091D70134 +:102D200091FF04C08B870E946B0B8B8520E030E005 +:102D30004F2D50E0922FBA01022E02C07595679573 +:102D40000A94E2F760FF24C02E83EF8221E030E096 +:102D5000690102C0CC0CDD1C9A95E2F790E08C2151 +:102D60009D21892B09F420E028870E947E22816022 +:102D7000782F9A8789874E815F8168858A850E942E +:102D8000F916F801EA58FE4F8081C826C08206C0B5 +:102D90002F5F3F4F2630310569F6AACF0E94AC263F +:102DA000109175010E9499151817A1F00E949915AC +:102DB000809375012B960FB6F894DEBF0FBECDBF82 +:102DC000DF91CF911F910F91FF90EF90DF90CF9007 +:102DD0000C942E162B960FB6F894DEBF0FBECDBF07 +:102DE000DF91CF911F910F91FF90EF90DF90CF90E7 +:102DF0000895CF93DF93CDB7DEB72B970FB6F89436 +:102E0000DEBF0FBECDBF4F83588769877A878B8718 +:102E1000DE01119686E0FD0111928A95E9F785E0C1 +:102E2000FE01379601900D928A95E1F749815A810A +:102E30006B817C818D819E810E94111E2B960FB625 +:102E4000F894DEBF0FBECDBFDF91CF910895CF9331 +:102E5000882309F4C2C0C82F823859F40E949915FA +:102E600081FDBBC089E30E94AD200E948C2189E3D3 +:102E70000CC0833879F40E94991580FDAEC083E5BB +:102E80000E94AD200E948C2183E50E940021CF91F9 +:102E90000C948C21843859F40E94991582FD9DC0B0 +:102EA00087E40E94AD200E948C2187E4EECF8CEF56 +:102EB0008C0F813A48F48C2F0E943F2B81118DC0DA +:102EC0008C2F0E94AD20E3CF80E28C0F883048F435 +:102ED000C77081E001C0880FCA95EAF70E945521AA +:102EE000D6CF8BE58C0F833078F4C53A29F0C63AFB +:102EF00031F083E890E005C081E890E002C082E80C +:102F000090E0CF910C94F91588E58C0F833108F08F +:102F100064C0C83A39F1C93A41F1CA3A49F1CB3AE9 +:102F200051F1CC3A59F1CD3A61F1C03B69F1CE3A59 +:102F300071F1CF3A79F1C13B81F1C23B89F1C33BD9 +:102F400091F1C43B99F1C53BA1F1C63BA9F1C73B47 +:102F5000B1F1C83BB9F1C93BC1F1CA3BC9F180E04D +:102F600090E038C082EE90E035C089EE90E032C04B +:102F70008AEE90E02FC085EB90E02CC086EB90E0CD +:102F800029C087EB90E026C08CEC90E023C08DEC4C +:102F900090E020C083E891E01DC08AE891E01AC06B +:102FA00082E991E017C084E991E014C081E292E0E7 +:102FB00011C083E292E00EC084E292E00BC085E291 +:102FC00092E008C086E292E005C087E292E002C08B +:102FD0008AE292E0CF910C940F16CF910895882346 +:102FE00009F44BC0823859F40E94991581FF45C0FD +:102FF00089E30E94AD200E948C2189E30CC08338B4 +:1030000071F40E94991580FF38C083E50E94AD20BD +:103010000E948C2183E50E9400210C948C2184382D +:1030200059F40E94991582FF28C087E40E94AD20C0 +:103030000E948C2187E4EFCF9CEF980F913A58F3D0 +:1030400090E2980F983050F4877091E001C0990F8A +:103050008A95EAF7892F0E945B21DFCF9BE5980FC5 +:10306000933020F480E090E00C94F915885A833175 +:1030700020F480E090E00C940F160895882321F04E +:103080000E9455210C948C210895882321F00E94E0 +:103090005B210C948C210895BF92CF92DF92EF9226 +:1030A000FF920F931F93CF93DF9300D000D000D0F7 +:1030B000CDB7DEB725E0FC01DE01119601900D923F +:1030C0002A95E1F7FC014081318102812581229519 +:1030D0002F7063817481672B09F4E7C23F3F19F4B5 +:1030E0004F3F09F4E2C27C0149833A8389819A8186 +:1030F0002E830E946C20182FB92E0E946B200E94F4 +:10310000321FEB2DE295EF70F0E0E05AFF4F2E8179 +:103110000C943D2E8B2D807F9B2D9F70F92E882344 +:1031200019F0F29480EFF822002349F0FF2009F40F +:1031300069C28F2D0E9465210E948C2163C2812F5C +:103140000E94EF17FF2009F4B0C28F2D0E946B215F +:1031500026960FB6F894DEBF0FBECDBFDF91CF919C +:103160001F910F91FF90EF90DF90CF90BF900C9444 +:103170008C213B2D307F8B2D8F70303211F082955A +:10318000807F112319F0113021F12DC00023B9F0F7 +:10319000222309F4A1C1213009F09EC126960FB661 +:1031A000F894DEBF0FBECDBFDF91CF911F910F917D +:1031B000FF90EF90DF90CF90BF900C947521222369 +:1031C00019F0213009F471C28E830E9478218E811A +:1031D00097C1002321F0263008F067C27DC1253059 +:1031E00008F063C28DC1002321F0222309F474C1C9 +:1031F00009C2222309F484C11AC22B2D26952695D3 +:10320000237030E02115310521F021303105D1F056 +:103210004CC2002321F0812F9B2D937002C080E0CF +:1032200090E026960FB6F894DEBF0FBECDBFDF91BB +:10323000CF911F910F91FF90EF90DF90CF90BF90B3 +:103240000C94F915002321F0812F9B2D937002C05F +:1032500080E090E026960FB6F894DEBF0FBECDBF9B +:10326000DF91CF911F910F91FF90EF90DF90CF9062 +:10327000BF900C940F16812F002319F00E94322565 +:1032800002C00E949A2526960FB6F894DEBF0FBEA4 +:10329000CDBFDF91CF911F910F91FF90EF90DF9005 +:1032A000CF90BF900C941F268B2D837009F07BC0AC +:1032B0000111FBC1812F829586958770880F880F39 +:1032C000912F9F70C92ED12CE12CF12C082E04C017 +:1032D000CC0CDD1CEE1CFF1C0A94D2F714FF12C0AC +:1032E0004FE050E060E070E004C0440F551F661FDF +:1032F000771F8A95D2F7CB01BA01609570958095BA +:10330000909503C060E070E0CB012B2D26952695AB +:103310002370422F50E042305105D9F0433051051F +:1033200069F16C297D298E299F294130510551F180 +:1033300026960FB6F894DEBF0FBECDBFDF91CF91BA +:103340001F910F91FF90EF90DF90CF90BF900C9462 +:10335000591F6C297D298E299F2926960FB6F8942E +:10336000DEBF0FBECDBFDF91CF911F910F91FF90B8 +:10337000EF90DF90CF90BF900C94751F0E94591F63 +:10338000C701B60126960FB6F894DEBF0FBECDBFBB +:10339000DF91CF911F910F91FF90EF90DF90CF9031 +:1033A000BF900C943D1F002319F08B2D817001C03C +:1033B0008695882309F479C1812F82958695877037 +:1033C000880F880F912F9F70C92ED12CE12CF12CE2 +:1033D000082E04C0CC0CDD1CEE1CFF1C0A94D2F796 +:1033E00014FF12C04FE050E060E070E004C0440FF2 +:1033F000551F661F771F8A95D2F7CB01BA016095DA +:1034000070958095909503C060E070E0CB012B2D06 +:10341000269526952370422F50E042305105D9F071 +:103420004330510569F16C297D298E299F2941304E +:10343000510551F126960FB6F894DEBF0FBECDBFF1 +:10344000DF91CF911F910F91FF90EF90DF90CF9080 +:10345000BF900C9433206C297D298E299F292696B4 +:103460000FB6F894DEBF0FBECDBFDF91CF911F9195 +:103470000F91FF90EF90DF90CF90BF900C944F2072 +:103480000E943320C701B60126960FB6F894DEBF1E +:103490000FBECDBFDF91CF911F910F91FF90EF90A5 +:1034A000DF90CF90BF900C941720103FD1F118F40B +:1034B000103E50F4A2C0123F09F464C008F44DC09D +:1034C000133F09F474C099C01F708B2D8F710023B6 +:1034D000A1F00E94B01F812F26960FB6F894DEBF90 :1034E0000FBECDBFDF91CF911F910F91FF90EF9055 -:1034F000DF90CF90BF900C94CA1F263008F0A9C06F -:10350000E9CF0023A9F08B2D8F7126960FB6F89482 -:10351000DEBF0FBECDBFDF91CF911F910F91FF9006 -:10352000EF90DF90CF90BF900C94841F002359F34D -:103530008B2D8F7126960FB6F894DEBF0FBECDBFD0 -:10354000DF91CF911F910F91FF90EF90DF90CF907F -:10355000BF900C94A51F002399F08B2D8F71269698 -:103560000FB6F894DEBF0FBECDBFDF91CF911F9194 -:103570000F91FF90EF90DF90CF90BF900C946F1F52 -:1035800026960FB6F894DEBF0FBECDBFDF91CF9168 -:103590001F910F91FF90EF90DF90CF90BF900C9410 -:1035A000651F0023A9F0222309F4ADCF812F2696B1 -:1035B0000FB6F894DEBF0FBECDBFDF91CF911F9144 -:1035C0000F91FF90EF90DF90CF90BF900C94FB167F -:1035D000222309F4ADCF812F26960FB6F894DEBFD3 +:1034F000DF90CF90BF900C943E180E94D11F812F77 +:1035000026960FB6F894DEBF0FBECDBFDF91CF91E8 +:103510001F910F91FF90EF90DF90CF90BF900C9490 +:1035200045180023B1F0253008F0BFC08B2D8F71F6 +:1035300026960FB6F894DEBF0FBECDBFDF91CF91B8 +:103540001F910F91FF90EF90DF90CF90BF900C9460 +:10355000F61F263008F0A9C0E9CF0023A9F08B2D73 +:103560008F7126960FB6F894DEBF0FBECDBFDF91E8 +:10357000CF911F910F91FF90EF90DF90CF90BF9070 +:103580000C94B01F002359F38B2D8F7126960FB624 +:10359000F894DEBF0FBECDBFDF91CF911F910F9189 +:1035A000FF90EF90DF90CF90BF900C94D11F00233D +:1035B00099F08B2D8F7126960FB6F894DEBF0FBE53 +:1035C000CDBFDF91CF911F910F91FF90EF90DF90D2 +:1035D000CF90BF900C949B1F26960FB6F894DEBF39 :1035E0000FBECDBFDF91CF911F910F91FF90EF9054 -:1035F000DF90CF90BF900C94C3174B2D4F70612F6D -:10360000C7010E94A00826960FB6F894DEBF0FBE31 +:1035F000DF90CF90BF900C94911F0023A9F022235D +:1036000009F4ADCF812F26960FB6F894DEBF0FBE1A :10361000CDBFDF91CF911F910F91FF90EF90DF9081 -:10362000CF90BF900C94891E4B2D4F70612FC70116 +:10362000CF90BF900C942717222309F4ADCF812FA0 :1036300026960FB6F894DEBF0FBECDBFDF91CF91B7 :103640001F910F91FF90EF90DF90CF90BF900C945F -:10365000450C26960FB6F894DEBF0FBECDBFDF91A6 -:10366000CF911F910F91FF90EF90DF90CF90BF907F -:1036700008950E9446210E941B210E9460210E9401 -:1036800026270E94F32580E090E00E94CD1580E07F -:1036900090E00C94E3150E9436210C94391B0E9493 -:1036A0004020292F22952F7030E02C3031054CF42A -:1036B0002A3031056CF4225031092230310588F46A -:1036C00007C02C30310549F02F30310531F009C0E9 -:1036D000803E48F0803F29F406C093FB882780F99C -:1036E000089580E0089581E00895CF93DF9300D09E -:1036F00000D01F92CDB7DEB70F900F900F900F90B4 -:103700000F90DF91CF910895CF93DF9300D000D039 -:1037100000D0CDB7DEB726960FB6F894DEBF0FBE49 -:10372000CDBFDF91CF9108951F93CF93DF93C091C9 -:10373000840116E080918501C81799F0D0E01C9FA4 -:10374000F0011D9FF00D1124EA57FE4F4081518179 -:1037500062817381848195810E94841B2196C77048 -:10376000E9CFDF91CF911F9108954091B60150911B -:10377000B7016091B8017091B9018091BA0190913F -:10378000BB010C94841B8091BB0182958F7009F062 -:1037900054C08091B801882309F44FC080918401FE -:1037A000A09185016091B6017091B7014091B90176 -:1037B0005091BA01B6E08A1709F43FC090E0411574 -:1037C0005105C1F17F3F11F46F3FA1F1B89FF001A6 -:1037D000B99FF00D1124EA57FE4F218172132AC0C0 -:1037E0002081621327C02281211124C023813481CA -:1037F0002417350710F421503109241B350B283CC0 -:103800003105C0F42091BB012F7020612093BB01D2 -:1038100026E0289FF001299FF00D1124E557FE4F67 -:1038200080818F708061808386EB91E00E942018F8 -:103830000C94941B01968770BECF0895CF92DF92AF -:10384000EF92FF920F931F93CF93DF93CDB7DEB725 -:1038500062970FB6F894DEBF0FBECDBF8C0185E036 -:10386000F801DE011D9601900D928A95E1F7D801CD -:103870004C9111965C91119712966C911297139638 -:10388000CD90DC9014973091B6017091B701809182 -:10389000B9019091BA01009709F46BC17F3F19F407 -:1038A0003F3F09F466C1E090B801EE2009F4C0C0C2 -:1038B0002091BB01C816D90628F0F601E81BF90BC8 -:1038C000CF0104C0809590958C0D9D1DFF24F3942D -:1038D000883C910578F0F12C207F09F0C6C07C2D42 -:1038E000D98AC88A89890E94751B86EB91E00E945B -:1038F0002018B1C0822F807F09F046C0751314C014 -:10390000341312C0611110C02F7020612093BB01CD -:103910000E94B51B86EB91E00E9420188091BB01AC -:10392000D80115968C932EC0CD2819F15F3F11F464 -:103930004F3FF9F0F62E61111CC080918401209157 -:10394000850136E0821709F45AC090E0389FF001F3 -:10395000399FF00D1124EA57FE4F7181571306C0AD -:103960007081471303C07281711103C00196877083 -:10397000E9CFF62E662309F418C18091BB0181605E -:103980008093BB01F12C11C1751308C0341306C01C -:10399000611104C08091BB01D801C3C04D875E870F -:1039A0008D859E856A8B0E944F1B6A898823E1F171 -:1039B0006623D1F12091BB01822F82958F7090E018 -:1039C000029774F08091B6019091B70198878F8328 -:1039D0001986DB86CA862C87CE0107960E9420189E -:1039E00086E0F801A6EBB1E001900D928A95E1F72F -:1039F0000E94C31B0E94B51BFF24F394D6C04D87C1 -:103A00005E878D859E850E944020292F22952F70EC -:103A100030E0223031050CF0BCC09F7009F0B6C018 -:103A2000805E883008F4C1C0C8010E942018E4CF2D -:103A3000C816D90608F453C0F601E81BF90BCF01EC -:103A4000883C910508F450C0F12C7C2DD98AC88A95 -:103A500089890E94751BE6EBF1E086E0DF011D928B -:103A60008A95E9F70E94B51BA0C0751314C03413E2 -:103A700012C0611110C08091BB01F8018583C8019B -:103A80000E94201886E0E6EBF1E0DF011D928A95A6 -:103A9000E9F7FE2C8AC04D875E878D859E856A8BEF -:103AA0000E944F1B6A89882309F4BECF662309F45C -:103AB000BBCF2091BB01822F82958F7090E002973F -:103AC0000CF48ECF8091B6019091B7019A838983CF -:103AD0001B82DD82CC822E83CE0101967FCF809522 -:103AE00090958C0D9D1DACCFF62E662309F49CCFCE -:103AF00075132EC034132CC02091BB0120FD1FC0B4 -:103B0000822F82958F70D9F0D80115962C93159736 -:103B10008F3049F08F5F982F9295907F822F8F7012 -:103B2000892B15968C93C8010E94201886E0F80115 -:103B3000A6EBB1E001900D928A95E1F793CF86E074 -:103B4000F801A6EBB1E001900D928A95E1F72DC046 -:103B50004D875E878D859E850E944F1B811140CFCA -:103B60008091BB0181608093BB01C8010E94201835 -:103B70001CC0662309F458CF4D875E878D859E85CE -:103B80000E944F1B882309F44FCF2ACF811148CFC1 -:103B90000CC0243031050CF047CF9F7009F440CFA2 -:103BA000F8019581907F09F03BCF8F2D62960FB67B -:103BB000F894DEBF0FBECDBFDF91CF911F910F9163 -:103BC000FF90EF90DF90CF9008951F93CF93DF93F6 -:103BD000CDB7DEB72C970FB6F894DEBF0FBECDBFC2 -:103BE0004F83588769877A878B879C87CE01079692 -:103BF0000E941E1C882369F08F8198852A853B8549 -:103C0000232BF1F19F3F09F063C08F3F09F060C0A3 -:103C100037C086E0FE013796DE01119601900D92C5 -:103C20008A95E1F76F817885EA85FB85309741F1C8 -:103C30007F3F11F46F3F21F12091850130E0C901F0 -:103C40000196877099274091840150E08417950769 -:103C500009F447C069837A83FD83EC8396E0929FE1 -:103C6000D001939FB00D1124AA57BE4FFE0131968B -:103C700001900D929A95E1F7809385010E94941B23 -:103C800016E080918401909185018917C1F1189FF8 -:103C9000C00111248A579E4F0E941E1C882379F16F -:103CA000E09184011E9FF0011124EA57FE4F4081EC -:103CB000518162817381848195810E94841B8091EE -:103CC000840190E001968770992780938401D9CF71 -:103CD0004F81588569857A858B859C850E94841BD8 -:103CE000CFCF0E944B1B1092850110928401E6EB0E -:103CF000F1E086E0DF011D928A95E9F7C1CF2C96AD -:103D00000FB6F894DEBF0FBECDBFDF91CF911F91EC -:103D10000895EF92FF920F931F93CF93DF938C013F -:103D2000892B09F46CC0F12CEE24E394E801219670 -:103D3000F8018491843740F4843008F051C0813018 -:103D400081F0823019F15BC0853709F444C0A8F1D5 -:103D50009CE7980F903708F052C08F770E94C317E6 -:103D600041C00E5F1F4FFE01C49180E28C0F88306E -:103D700048F4C7708E2D01C0880FCA95EAF70E94DB -:103D8000392114C08C2F0E94FB162DC00E5F1F4FCF -:103D9000FE01C49180E28C0F883058F4C7708E2DDC -:103DA00001C0880FCA95EAF70E943F210E94602156 -:103DB0001AC08C2F0E94C31716C00E5F1F4FFE0142 -:103DC000C491CC2381F08FE99FE00197F1F700C007 -:103DD0000000C150F6CF0E5F1F4FFE01F49003C0EC -:103DE0000E94FB168E018F2D882309F49FCFEFE9E7 -:103DF000FFE03197F1F700C000008150F5CFDF916F -:103E0000CF911F910F91FF90EF90089508956093C7 -:103E1000C0017093C1018093C2019093C3010C94BF -:103E2000391B0F931F930091C0011091C101209184 -:103E3000C2013091C301DC01CB01802B912BA22B5D -:103E4000B32B8093C0019093C101A093C201B093A2 -:103E5000C3011F910F910C94391B0F931F93009175 -:103E6000C0011091C1012091C2013091C301DC0158 -:103E7000CB0180239123A223B3238093C00190938D -:103E8000C101A093C201B093C3011F910F910C9483 -:103E9000391B0F931F930091C0011091C101209114 -:103EA000C2013091C301DC01CB0180279127A227F9 -:103EB000B3278093C0019093C101A093C201B09336 -:103EC000C3011F910F910C94391B1092BC011092E9 -:103ED000BD011092BE011092BF010C94391B41E04C -:103EE00050E060E070E004C0440F551F661F771F6C -:103EF0008A95D2F74093BC015093BD016093BE01F7 -:103F00007093BF010C94391B41E050E060E070E019 -:103F100004C0440F551F661F771F8A95D2F7809102 -:103F2000BC019091BD01A091BE01B091BF01482B91 -:103F3000592B6A2B7B2B4093BC015093BD0160939E -:103F4000BE017093BF010C94391B41E050E060E06A -:103F500070E004C0440F551F661F771F8A95D2F783 -:103F600040955095609570958091BC019091BD01F0 -:103F7000A091BE01B091BF01482359236A237B233E -:103F80004093BC015093BD016093BE017093BF018B -:103F90000C94391B41E050E060E070E004C0440F35 -:103FA000551F661F771F8A95D2F78091BC019091AB -:103FB000BD01A091BE01B091BF01482759276A27D2 -:103FC0007B274093BC015093BD016093BE01709369 -:103FD000BF010C94391B0F931F930091BC011091EA -:103FE000BD012091BE013091BF01DC01CB01802BCE -:103FF000912BA22BB32B8093BC019093BD01A09376 -:10400000BE01B093BF011F910F910C94391B0F9308 -:104010001F930091BC011091BD012091BE01309110 -:10402000BF01DC01CB0180239123A223B323809322 -:10403000BC019093BD01A093BE01B093BF011F913D -:104040000F910C94391B0F931F930091BC01109199 -:10405000BD012091BE013091BF01DC01CB01802761 -:104060009127A227B3278093BC019093BD01A09311 -:10407000BE01B093BF011F910F910C94391B08959D -:10408000CF92DF92EF92FF920F931F93CF93DF9324 -:104090008C01C090C001D090C101E090C201F090AD -:1040A000C3014091BC015091BD016091BE0170916E -:1040B000BF01C42AD52AE62AF72ACFE1D0E0D701EA -:1040C000C6010C2E04C0B695A795979587950A94BE -:1040D000D2F780FF07C0B8018C2F0E94680C813096 -:1040E000910531F4219758F7B80180E00E94680CDF -:1040F000DF91CF911F910F91FF90EF90DF90CF90C4 -:10410000089590910C01992321F090910D01911146 -:1041100009C020910E0130910F01F90132969FEFF5 -:1041200040E030C0982F9695969596959F30A0F4D4 -:10413000E0910E01F0910F01E90FF11D877021E070 -:1041400030E0A90102C0440F551F8A95E2F7CA0169 -:104150009181892B818308959091D70190FF23C08D -:104160001F928F9389E297E09F938F930E94970805 -:104170000F900F900F900F9008959F3F39F04F5F71 -:104180004E3041F051915813F8CF0DC05111F7CF77 -:10419000942FF5CF9F3F39F0F901E90FF11D97FDFD -:1041A000FA9582830895089590910C01992321F046 -:1041B00090910D01911109C020910E0130910F01D4 -:1041C000F9013296205F3F4F30C0982F9695969513 -:1041D00096959F30A8F4E0910E01F0910F01E90F40 -:1041E000F11D877021E030E0A90102C0440F551F86 -:1041F0008A95E2F7CA018095918189238183089588 -:104200009091D70190FF16C01F928F938BE097E09B -:104210009F938F930E9497080F900F900F900F908D -:1042200008953196E217F30729F090819813F9CF9A -:104230001082F7CF089581E090E0E0910E01F091B7 -:104240000F01E80FF91F1082019680319105A9F73F -:1042500008959091D601892B8093D6010895809579 -:104260009091D60189238093D60108951092D601AA -:1042700008959091D501892B8093D501089580955B -:104280009091D50189238093D50108951092D5018D -:1042900008958093C40108951092C40108958091F7 -:1042A0000E0190910F01FC0131969C01205F3F4F60 -:1042B00080E0919191118F5FE217F307D1F7089594 -:1042C000E0910E01F0910F018091D6018083E09181 -:1042D0000E01F0910F0190818091D501892B80838F -:1042E0008091C401882361F0E0910E01F0910F01EB -:1042F0009081892B80830E944F2181111092C401EB -:1043000080910E0190910F010C94791590933B01CF -:1043100080933A010895CF92DF92EF92FF926C0161 -:10432000EE24FF24C114D104E104F10421F0C701FB -:10433000B60120E101C020E0C72ED82EE92EFF24CF -:10434000C114D104E104F10419F0285FC701B601DA -:104350006B017C0154E0F694E794D794C7945A9586 -:10436000D1F7C114D104E104F10419F02C5FC701A5 -:10437000B6016B017C0142E0F694E794D794C794B0 -:104380004A95D1F7C114D104E104F10419F02E5F6C -:10439000C701B601DC01CB01B695A7959795879526 -:1043A000892B8A2B8B2B09F02F5F822FFF90EF90A8 -:1043B000DF90CF9008958295982F9C7C392F369569 -:1043C0003695282F237344E0249FC0011124932F96 -:1043D000982B292F2A7A2695892F8575880F822B6D -:1043E00008951F93CF93DF931F92CDB7DEB79983C4 -:1043F0000E94DB21182F9981892F0E94DB21212F18 -:1044000030E0322F2227A901482BCA010F90DF91FB -:10441000CF911F9108958091F001843009F110929D -:10442000D80120E488E190E00FB6F894A895809335 -:1044300060000FBE2093600083B7817F846083BFDC -:1044400083B7816083BF7894889583B78E7F83BF5D -:1044500088E10FB6F89480936000109260000FBE60 -:10446000089508950895CF930E9431220E940D0A65 -:104470000E943222C0E08C2F0E94390B811104C0AF -:10448000CF5FCE30C1F701C081E0CF9108950C9489 -:104490004B1B82E084BD93E095BD9AEF97BD80935E -:1044A0006E0008952FB7F8948091D9019091DA01A8 -:1044B000A091DB01B091DC012FBF0895CF92DF9274 -:1044C000EF92FF920F931F932FB7F8944091D90169 -:1044D0005091DA016091DB017091DC012FBF6A011C -:1044E0007B01EE24FF248C0120E030E0C016D106D1 -:1044F000E206F30610F4415051099A01281B390BCA -:10450000C9011F910F91FF90EF90DF90CF90089518 -:104510001F920F920FB60F9211248F939F93AF9318 -:10452000BF938091D9019091DA01A091DB01B09104 -:10453000DC010196A11DB11D8093D9019093DA0190 -:10454000A093DB01B093DC01BF91AF919F918F915C -:104550000F900FBE0F901F9018950E946B12F89449 -:104560002FEF87EA91E6215080409040E1F700C0AC -:10457000000087E090EBDC018093F9019093FA0151 -:10458000A093FB01B093FC019CE088E10FB6F89486 -:10459000A895809360000FBE90936000FFCFEF92CC -:1045A000FF920F931F93CF93DF93D82FC0E08C2FF0 -:1045B0000E94390B00E010E0E82EF12CC701002E1C -:1045C00002C0959587950A94E2F780FD06C00F5FBB -:1045D0001F4F0630110591F709C0602F7C2F80E036 -:1045E0000E94460CD813F3CF81E004C0CF5FCE30D9 -:1045F000F1F680E0DF91CF911F910F91FF90EF9046 -:104600000895CF93C82F8CE20E94CF22882321F0F7 -:104610008C2FCF910C94CF2280E0CF910895CF932F -:104620000E945E24811102C00E9444248EE497E01F -:104630000E94FE07C5E6C15049F00E940D0A8FE3B3 -:104640009CE90197F1F700C00000F5CF87E497E0FF -:104650000E94FE0789E20E940123811113C18AE2B0 -:104660000E94012381110E94442485E00E940123BD -:1046700081110E94AD220E9469248093D70187E0B6 -:104680000E9401238823A9F18BE10E940123882342 -:1046900051F08091D70181FB222720F991E09227E8 -:1046A00090FB81F90EC08EE00E940123882361F007 -:1046B0008091D70182FB222720F991E0922790FB7D -:1046C00082F98093D70115C080E10E940123909167 -:1046D000D701882341F093FB222720F981E082272C -:1046E00080FB93F904C0892F809580FB90F990930B -:1046F000D7018091D7010E946D240E947B24809372 -:10470000EA0180EE0E940123882341F08091EA01B2 -:10471000982F909590FB80F98093EA0189E30E949D -:104720000123882359F08091EA0181FB222720F997 -:1047300091E0922790FB81F98093EA0182EE0E943A -:104740000123882359F08091EA0182FB222720F976 -:1047500091E0922790FB82F98093EA0186EE0E9415 -:104760000123882359F08091EA0183FB222720F955 -:1047700091E0922790FB83F98093EA0183EE0E94F7 -:104780000123882359F08091EA0184FB222720F934 -:1047900091E0922790FB84F98093EA0185E30E94DF -:1047A0000123882359F08091EA0185FB222720F913 -:1047B00091E0922790FB85F98093EA0181E30E94C2 -:1047C0000123882359F08091EA0186FB222720F9F2 -:1047D00091E0922790FB86F98093EA0181E10E94A3 -:1047E0000123882359F08091EA0187FB222720F9D1 -:1047F00091E0922790FB87F98093EA018091EA018A -:104800000E947F248091EA0187FB882780F98093AA -:104810000D0187E20E940123C82F8EE10E9401232F -:104820008111C2608FE10E9401238111C46080E286 -:104830000E9401238111C86081E20E94012381113D -:10484000C06182E20E9401238111C06283E20E9462 -:1048500001238111C06484E20E940123882311F0A6 -:10486000C06802C0CC2329F08C2F0E9476246C2FC4 -:1048700003C00E947224682F70E080E090E0CF9126 -:104880000C94071FCF9108956DEE7EEF80E090E0CD -:104890000E94472E60E082E090E00E94392E60E0A6 -:1048A00083E090E00E94392E60E084E090E00E9476 -:1048B000392E60E085E090E00C94392E80E090E0A5 -:1048C0000E94332E21E08D3E9E4F09F020E0822F82 -:1048D000089582E090E00C942B2E682F82E090E007 -:1048E0000C94392E83E090E00C942B2E682F83E0FB -:1048F00090E00C94392E84E090E00C942B2E682FDD -:1049000084E090E00C94392E8091DF0180FF0BC091 -:104910006091130185E0689FB0011124759567953A -:10492000759567952BC081FF09C06091130185E0E3 -:10493000689FB00111247595679520C082FF07C05C -:104940006091130185E0689FB001112417C0909118 -:10495000E0019923D1F060911201961788F7209118 -:10496000130185E0289F90011124929FA001939F3D -:10497000500D112470E0CA010E94FD2D60387105B0 -:1049800040F46115710539F002C065E070E0862FD2 -:1049900008958FE7089581E008958091DF0180FFF9 -:1049A00008C06091110170E07595679575956795E0 -:1049B00021C081FF06C06091110170E07595679577 -:1049C00019C082FF04C06091110170E010C0909185 -:1049D000E0019923C1F0609110019617A0F7809132 -:1049E0001101899FC001112470E00E94FD2D6038E3 -:1049F000710528F46115710521F0862F08958FE760 -:104A0000089581E0089561E070E0F4CF803F21F4E3 -:104A10000E948424819504C0813F29F40E9484244B -:104A20008093E3010895823F21F40E9484248195BC -:104A300004C0833F29F40E9484248093E2010895F6 -:104A4000893F19F40E94CD2405C08A3F31F40E94A9 -:104A5000CD2481958093E40108958B3F21F40E9439 -:104A6000CD24819504C08C3F29F40E94CD248093ED -:104A7000E5010895843F21F48091E101816017C030 -:104A8000853F21F48091E101826011C0863F21F4CD -:104A90008091E10184600BC0873F21F48091E101A6 -:104AA000886005C0883F31F48091E1018061809386 -:104AB000E10108958D3F21F48091DF0181600BC0F9 -:104AC0008E3F21F48091DF01826005C08F3F29F481 -:104AD0008091DF0184608093DF010895803F39F485 -:104AE0008091E30187FF6CC01092E30169C0813FB0 -:104AF00029F48091E3011816BCF362C09091E201A1 -:104B0000823F29F497FF5CC01092E20159C0833FB5 -:104B100019F41916CCF354C0893F41F48091E40193 -:104B200018160CF04DC01092E4014AC08A3F29F4D7 -:104B30008091E40187FF44C0F6CF8B3F39F4809128 -:104B4000E50187FF3DC01092E5013AC08C3F29F492 -:104B50008091E5011816BCF333C0843F21F48091A5 -:104B6000E1018E7F17C0853F21F48091E1018D7FA7 -:104B700011C0863F21F48091E1018B7F0BC0873FFC -:104B800021F48091E101877F05C0883F31F4809155 -:104B9000E1018F7E8093E10113C08D3F21F480916C -:104BA000DF018E7F0BC08E3F21F48091DF018D7F6E -:104BB00005C08F3F29F48091DF018B7F8093DF0157 -:104BC0008091E20181110EC08091E30181110AC040 -:104BD0008091E401811106C08091E501811102C03C -:104BE0001092E00108958091D70183FF7EC08AE88A -:104BF00097E00E94FE078091E1011F928F9385E864 -:104C000097E09F938F930E94970883E897E00E9414 -:104C1000FE078091E201282F332727FD30953F932F -:104C20008F9380E897E09F938F930E9497088EE779 -:104C300097E00E94FE078091E301282F332727FD8C -:104C400030953F938F938BE797E09F938F930E94CC -:104C5000970889E797E00E94FE078091E401282FDA -:104C6000332727FD30953F938F9386E797E09F93F7 -:104C70008F930E94970884E797E00E94FE07809137 -:104C8000E501282F332727FD30953F938F9381E748 -:104C900097E09F938F930E9497088EE697E00E947B -:104CA000FE078091E0011F928F938BE697E09F9320 -:104CB0008F930E94970889E697E00E94FE078091F3 -:104CC000DF011F928F9386E697E09F938F930E9458 -:104CD000970883E697E00E94FE078DB79EB74C9633 -:104CE0000FB6F8949EBF0FBE8DBF81EE91E00E947B -:104CF000C2150E9452229093DE018093DD01089537 -:104D00001F93CF93DF938091DD019091DE010E948C -:104D10005E22AC019091E001992321F020911401D1 -:104D200030E006C0209115018AE0289F90011124EF -:104D30004217530708F486C08091E201C091E30155 -:104D4000D091E4011091E501811107C0C11176C035 -:104D5000D11174C0111172C075C09F3F19F09F5FCF -:104D60009093E001181624F40E9484248093E201B9 -:104D70008091E20187FF05C00E9484248195809381 -:104D8000E2011C1624F40E9484248093E3018091A4 -:104D9000E30187FF05C00E94842481958093E3018D -:104DA0006091E201662339F1C091E301CC2319F14E -:104DB000772767FD7095872F972F0E94022D23E399 -:104DC00033E343E35FE30E94662D0E94CF2C6093A0 -:104DD000E2016C2F772767FD7095872F972F0E9430 -:104DE000022D23E333E343E35FE30E94662D0E9439 -:104DF000CF2C6093E3011D1624F40E94CD248093F0 -:104E0000E4018091E40187FF05C00E94CD248195D3 -:104E10008093E401111624F40E94CD248093E501CF -:104E20008091E50187FF05C00E94CD248195809384 -:104E3000E501DF91CF911F910C94F3259F3F09F07D -:104E40008ECF96CFDF91CF911F910895E1EEF1E0E3 -:104E500085E0DF011D928A95E9F71092E00110923A -:104E6000DF0108958DEA99E00E94FE071F9281E01C -:104E70008F931F9285E08F938FE599E09F938F9397 -:104E80000E9497080F900F900F900F900F900F9027 -:104E900008958330E9F128F4813061F0823009F11E -:104EA0000895853009F462C008F449C0863009F4D9 -:104EB00074C0089580911501262F30E0280F311D10 -:104EC0002F3F310524F4680F6093150103C08FEF65 -:104ED00080931501809115011F928F9388E998E0C6 -:104EE00072C080911401262F30E0280F311D2F3F12 -:104EF000310524F4680F6093140103C08FEF809391 -:104F00001401809114011F928F9386E898E05BC092 -:104F100080911301262F30E0280F311D2F3F3105DE -:104F200024F4680F6093130103C08FEF8093130183 -:104F3000809113011F928F9383E798E044C0809182 -:104F40001201262F30E0280F311D2F3F310524F4A8 -:104F5000680F6093120103C08FEF8093120180915C -:104F600012011F928F938EE598E02DC08091110160 -:104F7000262F30E0280F311D2F3F310524F4680F14 -:104F80006093110103C08FEF809311018091110193 -:104F90001F928F9385E498E016C080911001262F10 -:104FA00030E0280F311D2F3F310524F4680F609346 -:104FB000100103C08FEF80931001809110011F92A8 -:104FC0008F938AE298E09F938F930E9497080F90A7 -:104FD0000F900F900F900895833081F128F4813065 -:104FE00059F08230D1F00895853009F449C0B8F104 -:104FF000863009F456C0089580911501681720F491 -:10500000861B8093150102C0109215018091150135 -:105010001F928F938BE198E054C080911401681720 -:1050200020F4861B8093140102C010921401809119 -:1050300014011F928F9389E098E043C0809113017F -:10504000681720F4861B8093130102C0109213018D -:10505000809113011F928F9386EF97E032C0809169 -:105060001201681720F4861B8093120102C010926F -:105070001201809112011F928F9381EE97E021C05F -:1050800080911101681720F4861B8093110102C0E2 -:1050900010921101809111011F928F9388EC97E07B -:1050A00010C080911001681720F4861B80931001B6 -:1050B00002C010921001809110011F928F938DEA0F -:1050C00097E09F938F930E9497080F900F900F90F7 -:1050D0000F900895CF93C82F1F928F9382EB9AE081 -:1050E0009F938F930E94970881E090E0A0E0B0E04A -:1050F000BC01CD0104C0660F771F881F991FCA9598 -:10510000D2F70E94071F0F900F900F900F90CF9132 -:105110000C944B1BCF938D3109F465C0B0F58E30E4 -:1051200009F4CCC100F5873009F49BC1A8F486309E -:1051300009F06DC28091D701817F8E7F8093D70166 -:1051400087EB9AE00E94FE0789EF9EE00E94FE072F -:1051500081E08093E70180C1883009F44FC08B3033 -:1051600009F47CC154C2863109F4F0C138F48031AD -:1051700009F4B8C1813109F430C249C2893109F456 -:10518000CEC18B3109F486C142C2853309F437C2DE -:1051900048F4873209F433C208F433C2893209F47F -:1051A0002EC235C2833438F48A3308F02CC28833D7 -:1051B00009F454C12CC2833409F421C2883409F0A3 -:1051C00026C20E944B1B88EE9EE00E94FE079FEFC6 -:1051D00023ED80E3915020408040E1F700C00000C3 -:1051E0000E94AD2239C188E09FE00E94FE070E9424 -:1051F000892C0E946D150E949F0D2EC18DEF9EE09F -:105200000E94FE0788EC9CE00E94FE070E94722428 -:105210001F928F9385EC9CE09F938F930E94970839 -:1052200083EC9CE00E94FE070E946924C82F80EB5B -:105230009CE00E94FE071F92CF938BEA9CE09F9315 -:105240008F930E94970889EA9CE00E94FE078FE9ED -:105250009CE00E94FE078C2F81701F928F938CE937 -:105260009CE09F938F930E9497088AE99CE00E949C -:10527000FE0780E99CE00E94FE07C1FB882780F9B9 -:105280001F928F938DE89CE09F938F930E949708C5 -:105290008BE89CE00E94FE078FE79CE00E94FE07DF -:1052A000C2FB882780F91F928F938CE79CE09F9325 -:1052B0008F930E9497088AE79CE00E94FE0781E78F -:1052C0009CE00E94FE07C3FBCC27C0F91F92CF933E -:1052D0008EE69CE09F938F930E9497088CE69CE05B -:1052E0000E94FE070E947B24C82F88E59CE00E9454 -:1052F000FE071F92CF9383E59CE09F938F930E94BC -:10530000970881E59CE00E94FE0788E39CE00E94EC -:10531000FE078C2F81701F928F9385E39CE09F93F3 -:105320008F930E9497088DB79EB780960FB6F8941A -:105330009EBF0FBE8DBF83E39CE00E94FE078CE101 -:105340009CE00E94FE07C1FB882780F91F928F9383 -:1053500089E19CE09F938F930E94970887E19CE0EE -:105360000E94FE0785E09CE00E94FE07C2FB8827A2 -:1053700080F91F928F9382E09CE09F938F930E940D -:10538000970880E09CE00E94FE078EEE9BE00E9462 -:10539000FE07C3FB882780F91F928F938BEE9BE05B -:1053A0009F938F930E94970889EE9BE00E94FE07CF -:1053B0008FED9BE00E94FE07C4FB882780F91F92B7 -:1053C0008F938CED9BE09F938F930E9497088AEDBB -:1053D0009BE00E94FE0788EC9BE00E94FE07C5FB55 -:1053E000882780F91F928F9385EC9BE09F938F9382 -:1053F0000E94970883EC9BE00E94FE0787EA9BE0EF -:105400000E94FE07C6FB882780F91F928F9384EACB -:105410009BE09F938F930E94970882EA9BE00E94F3 -:10542000FE078AE99BE00E94FE07C7FBCC27C0F974 -:105430001F92CF9387E99BE09F938F930E949708D9 -:1054400085E99BE00E94FE078DB79EB74C960FB68C -:10545000F8949EBF0FBE8DBFC1E0DEC08EED9AE016 -:105460005BC08091D701C82FC17080FF09C08BED50 -:105470009EE00E94FE078091D701817F8E7F47C00A -:105480008FEC9EE00E94FE078091D701816080939F -:10549000D701E2CF9091D70191FBCC27C0F981E0F1 -:1054A000C827892FC0FB81F98093D701CC2319F03D -:1054B00082EC9EE027C084EB9EE02EC09091D70145 -:1054C00092FBCC27C0F981E0C827892FC0FB82F965 -:1054D0008093D701CC2319F085EA9EE013C085E9BB -:1054E0009EE01AC09091D70193FBCC27C0F981E0D0 -:1054F000C827892FC0FB83F98093D701CC2351F0B3 -:1055000089E89EE00E94FE078091D7018160809328 -:10551000D70182C08CE79EE00E94FE079DCF8DE6FA -:105520009EE00E94FE0781E49EE00E94FE0784E068 -:105530009EE00E94FE0787ED9DE00E94FE0783E942 -:105540009DE00E94FE0788E69DE0E6CF8AE59DE0AB -:105550000E94FE070E946D151F928F9380E49DE0CC -:105560009F938F930E94970880910C011F928F93B5 -:1055700089E29DE09F938F930E94970880916E012E -:105580001F928F9386E19DE09F938F930E949708CF -:1055900080910D011F928F9383E09DE09F938F93E5 -:1055A0000E9497088091D9019091DA01A091DB01C6 -:1055B000B091DC01BF93AF939F938F938FEE9CE0EC -:1055C0009F938F930E9497088DB79EB746960FB60C -:1055D000F8949EBF0FBE8DBF3FCF0E944B1BC09162 -:1055E0000D0181E0C827C0930D01CC2329F085EE81 -:1055F0009CE00E94FE0710C08AED9CE08DCF80E009 -:1056000003C08D5101C089530E946A2825CF88EDBF -:105610009CE00E94FE07C0E08C2FCF91089580E0AF -:10562000089580E00895CF93C82F8091E7018130DD -:1056300081F020F0823009F44FC045C1E0910E01A5 -:10564000F0910F018081813169F0823209F03DC112 -:1056500009C0E0910E01F0910F018081813111F0BC -:10566000823261F48C2F0E940F2B811104C08C2F89 -:105670000E948A282FC081E090E02CC08C2F0E94CD -:10568000112B811126C0C431E1F070F4CB3081F0D0 -:10569000C031D1F40E9432278AEA9AE00E94FE07C4 -:1056A00082E08093E70115C0C93259F0C83361F434 -:1056B00087EB9AE00E94FE078EEA9AE00E94FE07BE -:1056C00008C01092E70103C188EA9AE00E94FE0731 -:1056D000FEC081E08170FDC0C43220F5CE3108F0FB -:1056E000C0C0CB3099F1C8F4C73009F0D2C08AE00D -:1056F0008093150194E19093140193E0909313012A -:105700008093120188E08093110188E28093100158 -:105710008EE499E00E94FE07BFC0C33149F1C43155 -:10572000C1F0B7C0CB3409F4A9C028F4C93289F05C -:10573000C83361F0AEC0C13509F49EC0C23509F46A -:1057400099C0CE3409F0A5C06AE09EC00E943227FD -:10575000A3C08091E601882319F01092E6019CC055 -:105760008BE599E00E94FE0781E08093E701B1C0DC -:1057700085E399E00E94FE0783E299E00E94FE071C -:10578000809115011F928F9380E299E09F938F93F0 -:105790000E9497088EE199E00E94FE078CE099E054 -:1057A0000E94FE07809114011F928F9389E099E077 -:1057B0009F938F930E94970887E099E00E94FE07CD -:1057C00088EF98E00E94FE07809113011F928F934B -:1057D00085EF98E09F938F930E94970883EF98E05E -:1057E0000E94FE0782EE98E00E94FE07809112015F -:1057F0001F928F938FED98E09F938F930E9497084D -:105800008DED98E00E94FE0788EC98E00E94FE076C -:10581000809111011F928F9385EC98E09F938F9355 -:105820000E94970883EC98E00E94FE078CEA98E0BB -:105830000E94FE07809110011F928F9389EA98E0E1 -:105840009F938F930E94970887EA98E00E94FE0733 -:105850008DB79EB748960FB6F8949EBF0FBE8DBF0A -:105860001BC0CE51EC2FF0E0E15DFE4F80818093B4 -:10587000E60112C061E003C061E006C06AE0809109 -:10588000E6010E94492708C08091E6010E94EC27AA -:1058900003C08CE499E013C08091E601882369F08D -:1058A0001F928F9386E499E09F938F930E949708AD -:1058B0000F900F900F900F9004C083E499E00E9426 -:1058C000FE0781E006C01092E70180E002C080E0A0 -:1058D00001CFCF910895E1E8F0E080818860808376 -:1058E0008081816080838FB7F89493E090938900E2 -:1058F00090ED909388008FBF0895EFE6F0E08081EF -:10590000826080830895EFE6F0E080818D7F808360 -:105910000895EFE6F0E0908182E089278083089582 -:105920001F920F920FB60F9211242F933F934F9314 -:105930005F936F937F938F939F93AF93BF93EF93F7 -:10594000FF938091E8019091E90101969093E9011C -:105950008093E801811103C082E00E949F0DE091D5 -:10596000E901E695E695F0E0E85EF04FE49180917C -:10597000E8018E1303C080E00E949F0DFF91EF911C -:10598000BF91AF919F918F917F916F915F914F9157 -:105990003F912F910F900FBE0F901F90189504D03C -:1059A0006894B1118DC0089570D088F09F5790F021 -:1059B000B92F9927B751A0F0D1F0660F771F881F34 -:1059C000991F1AF0BA95C9F712C0B13081F077D09B -:1059D000B1E0089574C0672F782F8827B85F39F039 -:1059E000B93FCCF3869577956795B395D9F73EF493 -:1059F00090958095709561957F4F8F4F9F4F08953B -:105A0000E89409C097FB3EF4909580957095619558 -:105A10007F4F8F4F9F4F9923A9F0F92F96E9BB270E -:105A20009395F695879577956795B795F111F8CF8A -:105A3000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF5 -:105A40009F4F16C0882311F096E911C0772321F0EB -:105A50009EE8872F762F05C0662371F096E8862F83 -:105A600070E060E02AF09A95660F771F881FDAF7DA -:105A7000880F9695879597F9089557FD9058440F8C -:105A8000551F59F05F3F71F04795880F97FB991F9D -:105A900061F09F3F79F0879508951216130614065A -:105AA000551FF2CF4695F1DF08C0161617061806E7 -:105AB000991FF1CF86957105610508940895E894C2 -:105AC000BB2766277727CB0197F908950BD078C0BD -:105AD00069D028F06ED018F0952309F05AC05FC045 -:105AE0001124EECFCADFA0F3959FD1F3950F50E0BC -:105AF000551F629FF001729FBB27F00DB11D639F80 -:105B0000AA27F00DB11DAA1F649F6627B00DA11D25 -:105B1000661F829F2227B00DA11D621F739FB00DCB -:105B2000A11D621F839FA00D611D221F749F33273B -:105B3000A00D611D231F849F600D211D822F762FD4 -:105B40006A2F11249F5750408AF0E1F088234AF0D1 -:105B5000EE0FFF1FBB1F661F771F881F915050401D -:105B6000A9F79E3F510570F014C0AACF5F3FECF338 -:105B7000983EDCF3869577956795B795F795E79509 -:105B80009F5FC1F7FE2B880F911D9695879597F91A -:105B9000089597F99F6780E870E060E008959FEFAF -:105BA00080EC089500240A941616170618060906B4 -:105BB000089500240A941216130614060506089583 -:105BC000092E0394000C11F4882352F0BB0F40F40B -:105BD000BF2B11F460FF04C06F5F7F4F8F4F9F4F4B -:105BE0000895991B79E004C0991F961708F0961B39 -:105BF000881F7A95C9F78095089597FB072E16F4AC -:105C0000009407D077FD09D00E94172E07FC05D01D -:105C10003EF4909581959F4F0895709561957F4FC3 -:105C20000895EE0FFF1F0590F491E02D0994AA1B33 -:105C3000BB1B51E107C0AA1FBB1FA617B70710F077 -:105C4000A61BB70B881F991F5A95A9F780959095A9 -:105C5000BC01CD010895F999FECF92BD81BDF89A9E -:105C6000992780B50895A8E1B0E042E050E00C9497 -:105C70004E2E262FF999FECF1FBA92BD81BD20BDB1 -:105C80000FB6F894FA9AF99A0FBE019608950E94F9 -:105C9000392E272F0C943A2EDC01CB01FC01F99907 -:105CA000FECF06C0F2BDE1BDF89A319600B40D9268 -:0C5CB00041505040B8F70895F894FFCF21 -:105CBC002002A00D910E6E0E3A0E060E0101C501CA -:105CCC0028080A03140A3F4D36203998064B06154E -:105CDC0006F505BC052F05480561057A059A0501F1 -:0A5CEC000203040506070809000082 +:10365000EF174B2D4F70612FC7010E94A0082696CF +:103660000FB6F894DEBF0FBECDBFDF91CF911F9193 +:103670000F91FF90EF90DF90CF90BF900C94B51E0C +:103680004B2D4F70612FC70126960FB6F894DEBF01 +:103690000FBECDBFDF91CF911F910F91FF90EF90A3 +:1036A000DF90CF90BF900C94710C26960FB6F894D3 +:1036B000DEBF0FBECDBFDF91CF911F910F91FF9065 +:1036C000EF90DF90CF90BF9008950E9472210E94EA +:1036D00047210E948C210E9452270E941F2680E0D1 +:1036E00090E00E94F91580E090E00C940F160E9483 +:1036F00062210C94651B0E946C20292F22952F704B +:1037000030E02C3031054CF42A3031056CF4225075 +:1037100031092230310588F407C02C30310549F0D9 +:103720002F30310531F009C0803E48F0803F29F448 +:1037300006C093FB882780F9089580E0089581E012 +:103740000895CF93DF9300D000D01F92CDB7DEB79E +:103750000F900F900F900F900F90DF91CF910895E1 +:10376000CF93DF9300D000D000D0CDB7DEB7269640 +:103770000FB6F894DEBF0FBECDBFDF91CF91089595 +:103780001F93CF93DF93C091840116E08091850150 +:10379000C81799F0D0E01C9FF0011D9FF00D112477 +:1037A000EA57FE4F40815181628173818481958106 +:1037B0000E94B01B2196C770E9CFDF91CF911F9176 +:1037C00008954091B6015091B7016091B801709190 +:1037D000B9018091BA019091BB010C94B01B80910A +:1037E000BB0182958F7009F054C08091B801882385 +:1037F00009F44FC080918401A09185016091B601C8 +:103800007091B7014091B9015091BA01B6E08A17A1 +:1038100009F43FC090E041155105C1F17F3F11F41B +:103820006F3FA1F1B89FF001B99FF00D1124EA5745 +:10383000FE4F218172132AC02081621327C022818A +:10384000211124C0238134812417350710F421501D +:103850003109241B350B283C3105C0F42091BB01F4 +:103860002F7020612093BB0126E0289FF001299F43 +:10387000F00D1124E557FE4F80818F7080618083A9 +:1038800086EB91E00E944C180C94C01B0196877047 +:10389000BECF0895CF92DF92EF92FF920F931F93C6 +:1038A000CF93DF93CDB7DEB762970FB6F894DEBF44 +:1038B0000FBECDBF8C0185E0F801DE011D960190A1 +:1038C0000D928A95E1F7D8014C9111965C91119770 +:1038D00012966C9112971396CD90DC9014973091BC +:1038E000B6017091B7018091B9019091BA0100972A +:1038F00009F46BC17F3F19F43F3F09F466C1E090C2 +:10390000B801EE2009F4C0C02091BB01C816D90649 +:1039100028F0F601E81BF90BCF0104C080959095C3 +:103920008C0D9D1DFF24F394883C910578F0F12CBB +:10393000207F09F0C6C07C2DD98AC88A89890E9457 +:10394000A11B86EB91E00E944C18B1C0822F807FB2 +:1039500009F046C0751314C0341312C0611110C0B1 +:103960002F7020612093BB010E94E11B86EB91E048 +:103970000E944C188091BB01D80115968C932EC0E3 +:10398000CD2819F15F3F11F44F3FF9F0F62E611188 +:103990001CC0809184012091850136E0821709F4D2 +:1039A0005AC090E0389FF001399FF00D1124EA577A +:1039B000FE4F7181571306C07081471303C0728197 +:1039C000711103C001968770E9CFF62E662309F4C2 +:1039D00018C18091BB0181608093BB01F12C11C1A2 +:1039E000751308C0341306C0611104C08091BB0177 +:1039F000D801C3C04D875E878D859E856A8B0E94E6 +:103A00007B1B6A898823E1F16623D1F12091BB01F8 +:103A1000822F82958F7090E0029774F08091B601AA +:103A20009091B70198878F831986DB86CA862C8789 +:103A3000CE0107960E944C1886E0F801A6EBB1E093 +:103A400001900D928A95E1F70E94EF1B0E94E11B05 +:103A5000FF24F394D6C04D875E878D859E850E9496 +:103A60006C20292F22952F7030E0223031050CF088 +:103A7000BCC09F7009F0B6C0805E883008F4C1C039 +:103A8000C8010E944C18E4CFC816D90608F453C0E8 +:103A9000F601E81BF90BCF01883C910508F450C0F2 +:103AA000F12C7C2DD98AC88A89890E94A11BE6EB5A +:103AB000F1E086E0DF011D928A95E9F70E94E11BA3 +:103AC000A0C0751314C0341312C0611110C08091CE +:103AD000BB01F8018583C8010E944C1886E0E6EB23 +:103AE000F1E0DF011D928A95E9F7FE2C8AC04D872F +:103AF0005E878D859E856A8B0E947B1B6A898823E1 +:103B000009F4BECF662309F4BBCF2091BB01822FFD +:103B100082958F7090E002970CF48ECF8091B60161 +:103B20009091B7019A8389831B82DD82CC822E8398 +:103B3000CE0101967FCF809590958C0D9D1DACCFC9 +:103B4000F62E662309F49CCF75132EC034132CC0B7 +:103B50002091BB0120FD1FC0822F82958F70D9F06C +:103B6000D80115962C9315978F3049F08F5F982FB9 +:103B70009295907F822F8F70892B15968C93C80118 +:103B80000E944C1886E0F801A6EBB1E001900D927E +:103B90008A95E1F793CF86E0F801A6EBB1E00190BA +:103BA0000D928A95E1F72DC04D875E878D859E85A4 +:103BB0000E947B1B811140CF8091BB01816080936B +:103BC000BB01C8010E944C181CC0662309F458CFE1 +:103BD0004D875E878D859E850E947B1B882309F417 +:103BE0004FCF2ACF811148CF0CC0243031050CF0C3 +:103BF00047CF9F7009F440CFF8019581907F09F07D +:103C00003BCF8F2D62960FB6F894DEBF0FBECDBFAF +:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 +:103C200008951F93CF93DF93CDB7DEB72C970FB6D0 +:103C3000F894DEBF0FBECDBF4F83588769877A8760 +:103C40008B879C87CE0107960E944A1C882369F0C7 +:103C50008F8198852A853B85232BF1F19F3F09F0C1 +:103C600063C08F3F09F060C037C086E0FE01379621 +:103C7000DE01119601900D928A95E1F76F817885AA +:103C8000EA85FB85309741F17F3F11F46F3F21F1C9 +:103C90002091850130E0C9010196877099274091F4 +:103CA000840150E08417950709F447C069837A833B +:103CB000FD83EC8396E0929FD001939FB00D112479 +:103CC000AA57BE4FFE01319601900D929A95E1F7E9 +:103CD000809385010E94C01B16E080918401909121 +:103CE00085018917C1F1189FC00111248A579E4F81 +:103CF0000E944A1C882379F1E09184011E9FF00103 +:103D00001124EA57FE4F4081518162817381848181 +:103D100095810E94B01B8091840190E0019687708C +:103D2000992780938401D9CF4F81588569857A85F9 +:103D30008B859C850E94B01BCFCF0E94771B109271 +:103D4000850110928401E6EBF1E086E0DF011D922F +:103D50008A95E9F7C1CF2C960FB6F894DEBF0FBE57 +:103D6000CDBFDF91CF911F910895EF92FF920F93F6 +:103D70001F93CF93DF938C01892B09F46CC0F12C36 +:103D8000EE24E394E8012196F8018491843740F40D +:103D9000843008F051C0813081F0823019F15BC06D +:103DA000853709F444C0A8F19CE7980F903708F0D4 +:103DB00052C08F770E94EF1741C00E5F1F4FFE0168 +:103DC000C49180E28C0F883048F4C7708E2D01C0FA +:103DD000880FCA95EAF70E94652114C08C2F0E94B3 +:103DE00027172DC00E5F1F4FFE01C49180E28C0F7C +:103DF000883058F4C7708E2D01C0880FCA95EAF735 +:103E00000E946B210E948C211AC08C2F0E94EF17F8 +:103E100016C00E5F1F4FFE01C491CC2381F08FE9C5 +:103E20009FE00197F1F700C00000C150F6CF0E5F90 +:103E30001F4FFE01F49003C00E9427178E018F2DA3 +:103E4000882309F49FCFEFE9FFE03197F1F700C035 +:103E500000008150F5CFDF91CF911F910F91FF901E +:103E6000EF90089508956093C0017093C10180930D +:103E7000C2019093C3010C94651B0F931F93009193 +:103E8000C0011091C1012091C2013091C301DC0138 +:103E9000CB01802B912BA22BB32B8093C00190934D +:103EA000C101A093C201B093C3011F910F910C9463 +:103EB000651B0F931F930091C0011091C1012091C8 +:103EC000C2013091C301DC01CB0180239123A223E5 +:103ED000B3238093C0019093C101A093C201B0931A +:103EE000C3011F910F910C94651B0F931F930091B9 +:103EF000C0011091C1012091C2013091C301DC01C8 +:103F0000CB0180279127A227B3278093C0019093EC +:103F1000C101A093C201B093C3011F910F910C94F2 +:103F2000651B1092BC011092BD011092BE0110924F +:103F3000BF010C94651B41E050E060E070E004C0FC +:103F4000440F551F661F771F8A95D2F74093BC0117 +:103F50005093BD016093BE017093BF010C94651B2B +:103F600041E050E060E070E004C0440F551F661F60 +:103F7000771F8A95D2F78091BC019091BD01A091E5 +:103F8000BE01B091BF01482B592B6A2B7B2B40936C +:103F9000BC015093BD016093BE017093BF010C94AE +:103FA000651B41E050E060E070E004C0440F551F25 +:103FB000661F771F8A95D2F740955095609570954A +:103FC0008091BC019091BD01A091BE01B091BF0153 +:103FD000482359236A237B234093BC015093BD019E +:103FE0006093BE017093BF010C94651B41E050E0EB +:103FF00060E070E004C0440F551F661F771F8A956C +:10400000D2F78091BC019091BD01A091BE01B09109 +:10401000BF01482759276A277B274093BC0150934B +:10402000BD016093BE017093BF010C94651B0F939B +:104030001F930091BC011091BD012091BE013091F0 +:10404000BF01DC01CB01802B912BA22BB32B8093E2 +:10405000BC019093BD01A093BE01B093BF011F911D +:104060000F910C94651B0F931F930091BC0110914D +:10407000BD012091BE013091BF01DC01CB01802345 +:104080009123A223B3238093BC019093BD01A093FD +:10409000BE01B093BF011F910F910C94651B0F934C +:1040A0001F930091BC011091BD012091BE01309180 +:1040B000BF01DC01CB0180279127A227B327809382 +:1040C000BC019093BD01A093BE01B093BF011F91AD +:1040D0000F910C94651B0895CF92DF92EF92FF929F +:1040E0000F931F93CF93DF938C01C090C001D090AA +:1040F000C101E090C201F090C3014091BC01509118 +:10410000BD016091BE017091BF01C42AD52AE62A83 +:10411000F72ACFE1D0E0D701C6010C2E04C0B69536 +:10412000A795979587950A94D2F780FF07C0B801A5 +:104130008C2F0E94940C8130910531F4219758F70F +:10414000B80180E00E94940CDF91CF911F910F91F4 +:10415000FF90EF90DF90CF90089590910C019923FC +:1041600021F090910D01911109C020910E01309123 +:104170000F01F90132969FEF40E030C0982F9695DD +:10418000969596959F30A0F4E0910E01F0910F0165 +:10419000E90FF11D877021E030E0A90102C0440F52 +:1041A000551F8A95E2F7CA019181892B8183089571 +:1041B0009091D70190FF23C01F928F9389E297E0DF +:1041C0009F938F930E9497080F900F900F900F90DE +:1041D00008959F3F39F04F5F4E3041F05191581391 +:1041E000F8CF0DC05111F7CF942FF5CF9F3F39F085 +:1041F000F901E90FF11D97FDFA958283089508955D +:1042000090910C01992321F090910D01911109C019 +:1042100020910E0130910F01F9013296205F3F4F3E +:1042200030C0982F9695969596959F30A8F4E0917A +:104230000E01F0910F01E90FF11D877021E030E0D0 +:10424000A90102C0440F551F8A95E2F7CA01809563 +:1042500091818923818308959091D70190FF16C0A1 +:104260001F928F938BE097E09F938F930E94970804 +:104270000F900F900F900F9008953196E217F3076B +:1042800029F090819813F9CF1082F7CF089581E03B +:1042900090E0E0910E01F0910F01E80FF91F1082FC +:1042A000019680319105A9F708959091D601892B47 +:1042B0008093D601089580959091D60189238093AB +:1042C000D60108951092D60108959091D501892BB9 +:1042D0008093D501089580959091D501892380938D +:1042E000D50108951092D50108958093C4010895D1 +:1042F0001092C401089580910E0190910F01FC016C +:1043000031969C01205F3F4F80E0919191118F5F2A +:10431000E217F307D1F70895E0910E01F0910F0134 +:104320008091D6018083E0910E01F0910F01908180 +:104330008091D501892B80838091C401882361F00D +:10434000E0910E01F0910F019081892B80830E94F2 +:104350007B2181111092C40180910E0190910F0177 +:104360000C94A51590933B0180933A010895CF9248 +:10437000DF92EF92FF926C01EE24FF24C114D1046E +:10438000E104F10421F0C701B60120E101C020E001 +:10439000C72ED82EE92EFF24C114D104E104F10464 +:1043A00019F0285FC701B6016B017C0154E0F69457 +:1043B000E794D794C7945A95D1F7C114D104E10476 +:1043C000F10419F02C5FC701B6016B017C0142E0DA +:1043D000F694E794D794C7944A95D1F7C114D104C1 +:1043E000E104F10419F02E5FC701B601DC01CB0135 +:1043F000B695A79597958795892B8A2B8B2B09F0D6 +:104400002F5F822FFF90EF90DF90CF9008958295DD +:10441000982F9C7C392F36953695282F237344E0AE +:10442000249FC0011124932F982B292F2A7A269597 +:10443000892F8575880F822B08951F93CF93DF9363 +:104440001F92CDB7DEB799830E940722182F99815A +:10445000892F0E940722212F30E0322F2227A90125 +:10446000482BCA010F90DF91CF911F910895809141 +:10447000F001843009F11092D80120E488E190E045 +:104480000FB6F894A895809360000FBE209360004B +:1044900083B7817F846083BF83B7816083BF789453 +:1044A000889583B78E7F83BF88E10FB6F894809399 +:1044B0006000109260000FBE089508950895CF9394 +:1044C0000E945D220E94390A0E945E22C0E08C2F69 +:1044D0000E94650B811104C0CF5FCE30C1F701C0CF +:1044E00081E0CF9108950C94771B82E084BD93E026 +:1044F00095BD9AEF97BD80936E0008952FB7F894FD +:104500008091D9019091DA01A091DB01B091DC0199 +:104510002FBF0895CF92DF92EF92FF920F931F93D8 +:104520002FB7F8944091D9015091DA016091DB01E5 +:104530007091DC012FBF6A017B01EE24FF248C0106 +:1045400020E030E0C016D106E206F30610F4415038 +:1045500051099A01281B390BC9011F910F91FF9036 +:10456000EF90DF90CF9008951F920F920FB60F92A9 +:1045700011248F939F93AF93BF938091D901909112 +:10458000DA01A091DB01B091DC010196A11DB11D02 +:104590008093D9019093DA01A093DB01B093DC0101 +:1045A000BF91AF919F918F910F900FBE0F901F9071 +:1045B00018950E949712F8942FEF87EA91E6215000 +:1045C00080409040E1F700C0000087E090EBDC0104 +:1045D0008093F9019093FA01A093FB01B093FC0141 +:1045E0009CE088E10FB6F894A895809360000FBE18 +:1045F00090936000FFCFEF92FF920F931F93CF93A2 +:10460000DF93D82FC0E08C2F0E94650B00E010E0F4 +:10461000E82EF12CC701002E02C0959587950A94CB +:10462000E2F780FD06C00F5F1F4F0630110591F7BE +:1046300009C0602F7C2F80E00E94720CD813F3CF4A +:1046400081E004C0CF5FCE30F1F680E0DF91CF9102 +:104650001F910F91FF90EF900895CF93C82F8CE298 +:104660000E94FB22882321F08C2FCF910C94FB22F7 +:1046700080E0CF910895CF930E948A24811102C0D7 +:104680000E9470248EE497E00E94FE07C5E6C150A8 +:1046900049F00E94390A8FE39CE90197F1F700C0C5 +:1046A0000000F5CF87E497E00E94FE0789E20E94B0 +:1046B0002D23811113C18AE20E942D2381110E94B2 +:1046C000702485E00E942D2381110E94D9220E942E +:1046D00095248093D70187E00E942D238823A9F198 +:1046E0008BE10E942D23882351F08091D70181FB1B +:1046F000222720F991E0922790FB81F90EC08EE0ED +:104700000E942D23882361F08091D70182FB22270C +:1047100020F991E0922790FB82F98093D70115C090 +:1047200080E10E942D239091D701882341F093FBD3 +:10473000222720F981E0822780FB93F904C0892F8A +:10474000809580FB90F99093D7018091D7010E94CA +:1047500099240E94A7248093EA0180EE0E942D23D1 +:10476000882341F08091EA01982F909590FB80F981 +:104770008093EA0189E30E942D23882359F08091D8 +:10478000EA0181FB222720F991E0922790FB81F931 +:104790008093EA0182EE0E942D23882359F08091B4 +:1047A000EA0182FB222720F991E0922790FB82F90F +:1047B0008093EA0186EE0E942D23882359F0809190 +:1047C000EA0183FB222720F991E0922790FB83F9ED +:1047D0008093EA0183EE0E942D23882359F0809173 +:1047E000EA0184FB222720F991E0922790FB84F9CB +:1047F0008093EA0185E30E942D23882359F080915C +:10480000EA0185FB222720F991E0922790FB85F9A8 +:104810008093EA0181E30E942D23882359F080913F +:10482000EA0186FB222720F991E0922790FB86F986 +:104830008093EA0181E10E942D23882359F0809121 +:10484000EA0187FB222720F991E0922790FB87F964 +:104850008093EA018091EA010E94AB248091EA01F1 +:1048600087FB882780F980930D0187E20E942D2322 +:10487000C82F8EE10E942D238111C2608FE10E941A +:104880002D238111C46080E20E942D238111C86014 +:1048900081E20E942D238111C06182E20E942D23BA +:1048A0008111C06283E20E942D238111C06484E2E1 +:1048B0000E942D23882311F0C06802C0CC2329F068 +:1048C0008C2F0E94A2246C2F03C00E949E24682F6C +:1048D00070E080E090E0CF910C94331FCF91089569 +:1048E0006DEE7EEF80E090E00E94732E60E082E04B +:1048F00090E00E94652E60E083E090E00E94652ECB +:1049000060E084E090E00E94652E60E085E090E049 +:104910000C94652E80E090E00E945F2E21E08D3E99 +:104920009E4F09F020E0822F089582E090E00C94E1 +:10493000572E682F82E090E00C94652E83E090E083 +:104940000C94572E682F83E090E00C94652E84E041 +:1049500090E00C94572E682F84E090E00C94652E24 +:104960008091DF0180FF0BC06091130185E0689F9B +:10497000B001112475956795759567952BC081FFDA +:1049800009C06091130185E0689FB00111247595FD +:10499000679520C082FF07C06091130185E0689F82 +:1049A000B001112417C09091E0019923D1F06091DA +:1049B0001201961788F72091130185E0289F900136 +:1049C0001124929FA001939F500D112470E0CA0101 +:1049D0000E94292E6038710540F46115710539F087 +:1049E00002C065E070E0862F08958FE7089581E0AA +:1049F00008958091DF0180FF08C06091110170E08F +:104A0000759567957595679521C081FF06C0609182 +:104A1000110170E07595679519C082FF04C060911F +:104A2000110170E010C09091E0019923C1F06091F4 +:104A300010019617A0F780911101899FC0011124E0 +:104A400070E00E94292E6038710528F46115710507 +:104A500021F0862F08958FE7089581E0089561E0A1 +:104A600070E0F4CF803F21F40E94B024819504C00F +:104A7000813F29F40E94B0248093E3010895823F8E +:104A800021F40E94B024819504C0833F29F40E9440 +:104A9000B0248093E2010895893F19F40E94F9241B +:104AA00005C08A3F31F40E94F92481958093E40186 +:104AB00008958B3F21F40E94F924819504C08C3F16 +:104AC00029F40E94F9248093E5010895843F21F49C +:104AD0008091E101816017C0853F21F48091E1015F +:104AE000826011C0863F21F48091E10184600BC097 +:104AF000873F21F48091E101886005C0883F31F44F +:104B00008091E10180618093E10108958D3F21F45E +:104B10008091DF0181600BC08E3F21F48091DF0125 +:104B2000826005C08F3F29F48091DF01846080930B +:104B3000DF010895803F39F48091E30187FF6CC065 +:104B40001092E30169C0813F29F48091E3011816B6 +:104B5000BCF362C09091E201823F29F497FF5CC0F0 +:104B60001092E20159C0833F19F41916CCF354C0D6 +:104B7000893F41F48091E40118160CF04DC0109269 +:104B8000E4014AC08A3F29F48091E40187FF44C0D0 +:104B9000F6CF8B3F39F48091E50187FF3DC010923D +:104BA000E5013AC08C3F29F48091E5011816BCF369 +:104BB00033C0843F21F48091E1018E7F17C0853F8F +:104BC00021F48091E1018D7F11C0863F21F4809115 +:104BD000E1018B7F0BC0873F21F48091E101877F4A +:104BE00005C0883F31F48091E1018F7E8093E1011F +:104BF00013C08D3F21F48091DF018E7F0BC08E3F6B +:104C000021F48091DF018D7F05C08F3F29F48091D1 +:104C1000DF018B7F8093DF018091E20181110EC063 +:104C20008091E30181110AC08091E401811106C0E5 +:104C30008091E501811102C01092E00108958091F8 +:104C4000D70183FF7EC08AE897E00E94FE0780912B +:104C5000E1011F928F9385E897E09F938F930E94C5 +:104C6000970883E897E00E94FE078091E201282FD1 +:104C7000332727FD30953F938F9380E897E09F93EC +:104C80008F930E9497088EE797E00E94FE0780911D +:104C9000E301282F332727FD30953F938F938BE730 +:104CA00097E09F938F930E94970889E797E00E946F +:104CB000FE078091E401282F332727FD30953F938D +:104CC0008F9386E797E09F938F930E94970884E7DE +:104CD00097E00E94FE078091E501282F332727FDEA +:104CE00030953F938F9381E797E09F938F930E9436 +:104CF00097088EE697E00E94FE078091E0011F92E0 +:104D00008F938BE697E09F938F930E94970889E695 +:104D100097E00E94FE078091DF011F928F9386E645 +:104D200097E09F938F930E94970883E697E00E94F5 +:104D3000FE078DB79EB74C960FB6F8949EBF0FBE78 +:104D40008DBF81EE91E00E94EE150E947E2290932D +:104D5000DE018093DD0108951F93CF93DF9380914F +:104D6000DD019091DE010E948A22AC019091E00168 +:104D7000992321F02091140130E006C02091150103 +:104D80008AE0289F900111244217530708F486C037 +:104D90008091E201C091E301D091E4011091E5011D +:104DA000811107C0C11176C0D11174C0111172C038 +:104DB00075C09F3F19F09F5F9093E001181624F48F +:104DC0000E94B0248093E2018091E20187FF05C038 +:104DD0000E94B02481958093E2011C1624F40E9465 +:104DE000B0248093E3018091E30187FF05C00E9416 +:104DF000B02481958093E3016091E201662339F14B +:104E0000C091E301CC2319F1772767FD7095872FB7 +:104E1000972F0E942E2D23E333E343E35FE30E94A9 +:104E2000922D0E94FB2C6093E2016C2F772767FD87 +:104E30007095872F972F0E942E2D23E333E343E3B2 +:104E40005FE30E94922D0E94FB2C6093E3011D16EC +:104E500024F40E94F9248093E4018091E40187FF07 +:104E600005C00E94F92481958093E401111624F471 +:104E70000E94F9248093E5018091E50187FF05C038 +:104E80000E94F92481958093E501DF91CF911F91D4 +:104E90000C941F269F3F09F08ECF96CFDF91CF91C4 +:104EA0001F910895E1EEF1E085E0DF011D928A9502 +:104EB000E9F71092E0011092DF0108958DEA99E080 +:104EC0000E94FE071F9281E08F931F9285E08F93CF +:104ED0008FE599E09F938F930E9497080F900F9012 +:104EE0000F900F900F900F9008958330E9F128F400 +:104EF000813061F0823009F10895853009F462C093 +:104F000008F449C0863009F474C0089580911501F1 +:104F1000262F30E0280F311D2F3F310524F4680F74 +:104F20006093150103C08FEF8093150180911501E7 +:104F30001F928F9388E998E072C080911401262F08 +:104F400030E0280F311D2F3F310524F4680F6093A6 +:104F5000140103C08FEF80931401809114011F92FC +:104F60008F9386E898E05BC080911301262F30E094 +:104F7000280F311D2F3F310524F4680F6093130172 +:104F800003C08FEF80931301809113011F928F93C1 +:104F900083E798E044C080911201262F30E0280F6B +:104FA000311D2F3F310524F4680F6093120103C0B7 +:104FB0008FEF80931201809112011F928F938EE5E3 +:104FC00098E02DC080911101262F30E0280F311D6F +:104FD0002F3F310524F4680F6093110103C08FEF58 +:104FE00080931101809111011F928F9385E498E0C5 +:104FF00016C080911001262F30E0280F311D2F3F61 +:10500000310524F4680F6093100103C08FEF809383 +:105010001001809110011F928F938AE298E09F9374 +:105020008F930E9497080F900F900F900F90089504 +:10503000833081F128F4813059F08230D1F0089525 +:10504000853009F449C0B8F1863009F456C0089596 +:1050500080911501681720F4861B8093150102C00A +:1050600010921501809115011F928F938BE198E0AA +:1050700054C080911401681720F4861B809314019A +:1050800002C010921401809114011F928F9389E045 +:1050900098E043C080911301681720F4861B809329 +:1050A000130102C010921301809113011F928F937C +:1050B00086EF97E032C080911201681720F4861BBA +:1050C0008093120102C010921201809112011F926E +:1050D0008F9381EE97E021C080911101681720F431 +:1050E000861B8093110102C0109211018091110161 +:1050F0001F928F9388EC97E010C080911001681781 +:1051000020F4861B8093100102C010921001809140 +:1051100010011F928F938DEA97E09F938F930E94C7 +:1051200097080F900F900F900F900895CF93C82F6E +:105130001F928F9382EB9AE09F938F930E94970820 +:1051400081E090E0A0E0B0E0BC01CD0104C0660FBA +:10515000771F881F991FCA95D2F70E94331F0F909F +:105160000F900F900F90CF910C94771BCF938D31B0 +:1051700009F465C0B0F58E3009F4CCC100F5873074 +:1051800009F49BC1A8F4863009F06DC28091D70163 +:10519000817F8E7F8093D70187EB9AE00E94FE0784 +:1051A00089EF9EE00E94FE0781E08093E70180C1C5 +:1051B000883009F44FC08B3009F47CC154C2863169 +:1051C00009F4F0C138F4803109F4B8C1813109F42F +:1051D00030C249C2893109F4CEC18B3109F486C18C +:1051E00042C2853309F437C248F4873209F433C226 +:1051F00008F433C2893209F42EC235C2833438F43C +:105200008A3308F02CC2883309F454C12CC2833489 +:1052100009F421C2883409F026C20E94771B88EE67 +:105220009EE00E94FE079FEF23ED80E39150204017 +:105230008040E1F700C000000E94D92239C188E017 +:105240009FE00E94FE070E94B52C0E9499150E94C3 +:10525000CB0D2EC18DEF9EE00E94FE0788EC9CE0F6 +:105260000E94FE070E949E241F928F9385EC9CE073 +:105270009F938F930E94970883EC9CE00E94FE0707 +:105280000E949524C82F80EB9CE00E94FE071F928D +:10529000CF938BEA9CE09F938F930E94970889EAB3 +:1052A0009CE00E94FE078FE99CE00E94FE078C2F85 +:1052B00081701F928F938CE99CE09F938F930E9443 +:1052C00097088AE99CE00E94FE0780E99CE00E9422 +:1052D000FE07C1FB882780F91F928F938DE89CE021 +:1052E0009F938F930E9497088BE89CE00E94FE0793 +:1052F0008FE79CE00E94FE07C2FB882780F91F927F +:105300008F938CE79CE09F938F930E9497088AE786 +:105310009CE00E94FE0781E79CE00E94FE07C3FB21 +:10532000CC27C0F91F92CF938EE69CE09F938F937A +:105330000E9497088CE69CE00E94FE070E94A7242A +:10534000C82F88E59CE00E94FE071F92CF9383E55B +:105350009CE09F938F930E94970881E59CE00E94B8 +:10536000FE0788E39CE00E94FE078C2F81701F924D +:105370008F9385E39CE09F938F930E9497088DB74E +:105380009EB780960FB6F8949EBF0FBE8DBF83E385 +:105390009CE00E94FE078CE19CE00E94FE07C1FB9E +:1053A000882780F91F928F9389E19CE09F938F93C8 +:1053B0000E94970887E19CE00E94FE0785E09CE040 +:1053C0000E94FE07C2FB882780F91F928F9382E01C +:1053D0009CE09F938F930E94970880E09CE00E943E +:1053E000FE078EEE9BE00E94FE07C3FB882780F934 +:1053F0001F928F938BEE9BE09F938F930E94970851 +:1054000089EE9BE00E94FE078FED9BE00E94FE0765 +:10541000C4FB882780F91F928F938CED9BE09F93AC +:105420008F930E9497088AED9BE00E94FE0788EC0C +:105430009BE00E94FE07C5FB882780F91F928F938F +:1054400085EC9BE09F938F930E94970883EC9BE0F1 +:105450000E94FE0787EA9BE00E94FE07C6FB8827A2 +:1054600080F91F928F9384EA9BE09F938F930E9411 +:10547000970882EA9BE00E94FE078AE99BE00E946F +:10548000FE07C7FBCC27C0F91F92CF9387E99BE0AB +:105490009F938F930E94970885E99BE00E94FE07E7 +:1054A0008DB79EB74C960FB6F8949EBF0FBE8DBFBA +:1054B000C1E0DEC08EED9AE05BC08091D701C82FBD +:1054C000C17080FF09C08BED9EE00E94FE078091B5 +:1054D000D701817F8E7F47C08FEC9EE00E94FE0740 +:1054E0008091D70181608093D701E2CF9091D7015D +:1054F00091FBCC27C0F981E0C827892FC0FB81F937 +:105500008093D701CC2319F082EC9EE027C084EB76 +:105510009EE02EC09091D70192FBCC27C0F981E08C +:10552000C827892FC0FB82F98093D701CC2319F0BB +:1055300085EA9EE013C085E99EE01AC09091D701EC +:1055400093FBCC27C0F981E0C827892FC0FB83F9E2 +:105550008093D701CC2351F089E89EE00E94FE079A +:105560008091D70181608093D70182C08CE79EE053 +:105570000E94FE079DCF8DE69EE00E94FE0781E41B +:105580009EE00E94FE0784E09EE00E94FE0787EDF9 +:105590009DE00E94FE0783E99DE00E94FE0788E6E9 +:1055A0009DE0E6CF8AE59DE00E94FE070E949915E6 +:1055B0001F928F9380E49DE09F938F930E949708A2 +:1055C00080910C011F928F9389E29DE09F938F93AE +:1055D0000E94970880916E011F928F9386E19DE053 +:1055E0009F938F930E94970880910D011F928F9334 +:1055F00083E09DE09F938F930E9497088091D9014B +:105600009091DA01A091DB01B091DC01BF93AF93DF +:105610009F938F938FEE9CE09F938F930E949708A8 +:105620008DB79EB746960FB6F8949EBF0FBE8DBF3E +:105630003FCF0E94771BC0910D0181E0C827C09326 +:105640000D01CC2329F085EE9CE00E94FE0710C0DE +:105650008AED9CE08DCF80E003C08D5101C089535D +:105660000E94962825CF88ED9CE00E94FE07C0E0AE +:105670008C2FCF91089580E0089580E00895CF9316 +:10568000C82F8091E701813081F020F0823009F449 +:105690004FC045C1E0910E01F0910F018081813131 +:1056A00069F0823209F03DC109C0E0910E01F0912C +:1056B0000F018081813111F0823261F48C2F0E94C0 +:1056C0003B2B811104C08C2F0E94B6282FC081E093 +:1056D00090E02CC08C2F0E943D2B811126C0C4313C +:1056E000E1F070F4CB3081F0C031D1F40E945E273C +:1056F0008AEA9AE00E94FE0782E08093E70115C0E3 +:10570000C93259F0C83361F487EB9AE00E94FE0772 +:105710008EEA9AE00E94FE0708C01092E70103C1DA +:1057200088EA9AE00E94FE07FEC081E08170FDC019 +:10573000C43220F5CE3108F0C0C0CB3099F1C8F4A6 +:10574000C73009F0D2C08AE08093150194E19093AC +:10575000140193E0909313018093120188E08093E9 +:10576000110188E2809310018EE499E00E94FE0707 +:10577000BFC0C33149F1C431C1F0B7C0CB3409F463 +:10578000A9C028F4C93289F0C83361F0AEC0C13570 +:1057900009F49EC0C23509F499C0CE3409F0A5C001 +:1057A0006AE09EC00E945E27A3C08091E601882324 +:1057B00019F01092E6019CC08BE599E00E94FE076B +:1057C00081E08093E701B1C085E399E00E94FE0784 +:1057D00083E299E00E94FE07809115011F928F934A +:1057E00080E299E09F938F930E9497088EE199E061 +:1057F0000E94FE078CE099E00E94FE078091140150 +:105800001F928F9389E099E09F938F930E9497084E +:1058100087E099E00E94FE0788EF98E00E94FE076B +:10582000809113011F928F9385EF98E09F938F9340 +:105830000E94970883EF98E00E94FE0782EE98E0AE +:105840000E94FE07809112011F928F938FED98E0C6 +:105850009F938F930E9497088DED98E00E94FE071A +:1058600088EC98E00E94FE07809111011F928F93AF +:1058700085EC98E09F938F930E94970883EC98E0C3 +:105880000E94FE078CEA98E00E94FE0780911001BA +:105890001F928F9389EA98E09F938F930E949708B5 +:1058A00087EA98E00E94FE078DB79EB748960FB62C +:1058B000F8949EBF0FBE8DBF1BC0CE51EC2FF0E001 +:1058C000E15DFE4F80818093E60112C061E003C07C +:1058D00061E006C06AE08091E6010E94752708C079 +:1058E0008091E6010E94182803C08CE499E013C05F +:1058F0008091E601882369F01F928F9386E499E0F6 +:105900009F938F930E9497080F900F900F900F9086 +:1059100004C083E499E00E94FE0781E006C0109273 +:10592000E70180E002C080E001CFCF910895E1E877 +:10593000F0E08081886080838081816080838FB780 +:10594000F89493E09093890090ED909388008FBF36 +:105950000895EFE6F0E08081826080830895EFE6AD +:10596000F0E080818D7F80830895EFE6F0E0908104 +:1059700082E08927808308951F920F920FB60F92BD +:1059800011242F933F934F935F936F937F938F9344 +:105990009F93AF93BF93EF93FF938091E801909112 +:1059A000E90101969093E9018093E801811103C018 +:1059B00082E00E94CB0DE091E901E695E695F0E0EA +:1059C000E85EF04FE4918091E8018E1303C080E01F +:1059D0000E94CB0DFF91EF91BF91AF919F918F915D +:1059E0007F916F915F914F913F912F910F900FBEDB +:1059F0000F901F90189504D06894B1118DC0089530 +:105A000070D088F09F5790F0B92F9927B751A0F028 +:105A1000D1F0660F771F881F991F1AF0BA95C9F742 +:105A200012C0B13081F077D0B1E0089574C0672F13 +:105A3000782F8827B85F39F0B93FCCF386957795F2 +:105A40006795B395D9F73EF49095809570956195DB +:105A50007F4F8F4F9F4F0895E89409C097FB3EF406 +:105A600090958095709561957F4F8F4F9F4F9923AB +:105A7000A9F0F92F96E9BB279395F6958795779529 +:105A80006795B795F111F8CFFAF4BB0F11F460FFE9 +:105A90001BC06F5F7F4F8F4F9F4F16C0882311F041 +:105AA00096E911C0772321F09EE8872F762F05C055 +:105AB000662371F096E8862F70E060E02AF09A95F0 +:105AC000660F771F881FDAF7880F9695879597F9E5 +:105AD000089557FD9058440F551F59F05F3F71F0DE +:105AE0004795880F97FB991F61F09F3F79F0879545 +:105AF0000895121613061406551FF2CF4695F1DFCE +:105B000008C0161617061806991FF1CF869571055D +:105B1000610508940895E894BB2766277727CB0191 +:105B200097F908950BD078C069D028F06ED018F09E +:105B3000952309F05AC05FC01124EECFCADFA0F34D +:105B4000959FD1F3950F50E0551F629FF001729F12 +:105B5000BB27F00DB11D639FAA27F00DB11DAA1F31 +:105B6000649F6627B00DA11D661F829F2227B00D7E +:105B7000A11D621F739FB00DA11D621F839FA00D09 +:105B8000611D221F749F3327A00D611D231F849F59 +:105B9000600D211D822F762F6A2F11249F575040B0 +:105BA0008AF0E1F088234AF0EE0FFF1FBB1F661F4B +:105BB000771F881F91505040A9F79E3F510570F004 +:105BC00014C0AACF5F3FECF3983EDCF3869577953F +:105BD0006795B795F795E7959F5FC1F7FE2B880FFF +:105BE000911D9695879597F9089597F99F6780E895 +:105BF00070E060E008959FEF80EC089500240A941F +:105C00001616170618060906089500240A94121697 +:105C10001306140605060895092E0394000C11F4CA +:105C2000882352F0BB0F40F4BF2B11F460FF04C077 +:105C30006F5F7F4F8F4F9F4F0895991B79E004C08E +:105C4000991F961708F0961B881F7A95C9F78095BB +:105C5000089597FB072E16F4009407D077FD09D01E +:105C60000E94432E07FC05D03EF4909581959F4FEE +:105C70000895709561957F4F0895EE0FFF1F059071 +:105C8000F491E02D0994AA1BBB1B51E107C0AA1F88 +:105C9000BB1FA617B70710F0A61BB70B881F991FCD +:105CA0005A95A9F780959095BC01CD010895F99971 +:105CB000FECF92BD81BDF89A992780B50895A8E1DD +:105CC000B0E042E050E00C947A2E262FF999FECFF6 +:105CD0001FBA92BD81BD20BD0FB6F894FA9AF99A09 +:105CE0000FBE019608950E94652E272F0C94662EF4 +:105CF000DC01CB01FC01F999FECF06C0F2BDE1BD8C +:105D0000F89A319600B40D9241505040B8F708957A +:045D1000F894FFCF35 +:105D14002002CC0DBD0E9A0E660E320E0101C50195 +:105D240028080A03140A3F4D36203998064B0615F5 +:105D340006F505BC052F05480561057A059A050198 +:0A5D44000203040506070809000029 :00000001FF -- cgit v1.2.3 From 2311754a897751b5a46a280d895ae58105729b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Sun, 10 Jan 2016 00:02:05 +0100 Subject: added mouse wheel support, CMD-V/CMD-C instead of CTRL --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index ded7c67923..19c0b4b5f6 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + 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, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_BSPC,KC_DEL,KC_END, // right hand - KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + 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, @@ -126,7 +126,7 @@ 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_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, -- cgit v1.2.3 From 386ca6531bfc2a9ab4ddecfa105bcc10890fabc9 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sun, 10 Jan 2016 10:25:16 -0500 Subject: Rename to keymap_kines-ish.c and add README --- keyboard/ergodox_ez/keymaps/keymap_kines-ish.c | 184 +++++++++++++++++++++ .../ergodox_ez/keymaps/keymap_kines-ish_README.md | 19 +++ keyboard/ergodox_ez/keymaps/keymap_kinesis.c | 184 --------------------- 3 files changed, 203 insertions(+), 184 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish.c create mode 100644 keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_kinesis.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c b/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c new file mode 100644 index 0000000000..20cb53241f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kines-ish.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 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Ctrl | Alt | | LGui | Ctrl | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_CAPS, 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), + KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,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, KC_J, KC_K, KC_L, KC_SCLN, 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_FN2, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_PAUS,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 +[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(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/keymap_kines-ish_README.md b/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md new file mode 100644 index 0000000000..5d39a0590d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md @@ -0,0 +1,19 @@ +This keymap attempts to match the Kinesis Contoured (aka Advantage) default +layout as closely as possible. See +http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf + +Apart from the obvious mappings, this keymap also: + +* removes the dual-purpose momentary layer/normal keys: Z, /, and Grv; + because the author--coming from a Kinesis keyboard--finds the delays and + accidental modifiers to be more disconcerting than helpful. + +* puts Esc in the bottom left since there's no place for it in the top + left to match the Kinesis. + +* changes the bottom-right key into an L2 toggle since there's otherwise no + way to get to L2. + +* adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since + they're present on the Kinesis but not available in the default + ergodox_ez keymap. diff --git a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c b/keyboard/ergodox_ez/keymaps/keymap_kinesis.c deleted file mode 100644 index 20cb53241f..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_kinesis.c +++ /dev/null @@ -1,184 +0,0 @@ -#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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Ctrl | Alt | | LGui | Ctrl | - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * |Backsp| Del |------| |------| 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_CAPS, 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), - KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - KC_LCTL,KC_LALT, - KC_HOME, - KC_BSPC,KC_DEL,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, KC_J, KC_K, KC_L, KC_SCLN, 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_FN2, - KC_LGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_SLCK,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_PAUS,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 -[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(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; - } - -}; -- cgit v1.2.3 From 6050971d01606a05ad34e1eec402b8aab4c5606d Mon Sep 17 00:00:00 2001 From: coderkun Date: Tue, 12 Jan 2016 06:28:24 +0100 Subject: add neo2 keymap for ergodoxEZ --- keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c new file mode 100644 index 0000000000..5f24db8fe2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c @@ -0,0 +1,94 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Layer 0 (default) + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────┼─────┼─────┤ E │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────┼─────┼─────┤ TL2 │ │ TL3 ├─────┼─────┼─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[BASE] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, + NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, + KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, KC_TRNS, + KC_LCTL, KC_LALT,KC_TRNS,KC_LGUI,NEO_L2_L, + KC_LEFT, KC_UP, + KC_MINS, + KC_SPC, KC_ENT, ALL_T(KC_NO), + // right hand + DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, + NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, + KC_TRNS, NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, + NEO_L2_R,KC_RGUI,KC_TRNS,KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), +}; + +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) { + default: + ergodox_board_led_off(); + break; + } + +}; -- cgit v1.2.3 From e4d087c7c0f1e337e8db89326fc14d9f80c09b86 Mon Sep 17 00:00:00 2001 From: coderkun Date: Tue, 12 Jan 2016 07:01:02 +0100 Subject: add basic layer 1 --- keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c | 47 +++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c index 5f24db8fe2..d020c5ad11 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c +++ b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c @@ -5,6 +5,7 @@ // Layer names #define BASE 0 // default layer +#define FMU 1 // FMU layer const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -33,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, KC_TRNS, - KC_LCTL, KC_LALT,KC_TRNS,KC_LGUI,NEO_L2_L, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, KC_LEFT, KC_UP, KC_MINS, KC_SPC, KC_ENT, ALL_T(KC_NO), @@ -42,14 +43,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, KC_TRNS, NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, - NEO_L2_R,KC_RGUI,KC_TRNS,KC_RALT,KC_RCTL, + NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, KC_DOWN, KC_RGHT, KC_MINS, MEH_T(KC_NO),KC_ENT,KC_SPC ), +/* Layer 1 (F-keys, Mouse and Unicode) + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ ├─────┤ ├─────┤ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[FMU] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_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_U, + KC_BTN1, + KC_TRNS,KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_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_D, KC_MS_R, + KC_BTN2, + KC_TRNS, KC_TRNS,KC_TRNS + ), }; const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FMU) }; @@ -86,6 +127,8 @@ void * matrix_scan_user(void) ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { + case FMU: + ergodox_right_led_1_on(); default: ergodox_board_led_off(); break; -- cgit v1.2.3 From a085265aaa18cbaedfd7ff21364877b9c018083c Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 12 Jan 2016 22:32:29 +0200 Subject: Disables debug console by default for improved performance --- keyboard/ergodox_ez/Makefile | 4 +- keyboard/ergodox_ez/keymaps/keymap_default.hex | 2443 ++++++++++++------------ 2 files changed, 1226 insertions(+), 1221 deletions(-) diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index 3b70258402..03c806131d 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -94,13 +94,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 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 CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ 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 # MIDI_ENABLE = yes # MIDI controls -# uNICODE_ENABLE = yes # Unicode +# UNICODE_ENABLE = yes # Unicode # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.hex b/keyboard/ergodox_ez/keymaps/keymap_default.hex index 72e7da00cc..eedabc2db5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_default.hex @@ -1,17 +1,17 @@ :100000000C9403070C9447070C9447070C9447077C :100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C9432120C94041359 +:100020000C9447070C9447070C945E120C94301301 :100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94DC2B0C9447070C9447073F -:100050000C9447070C94E3210C9447070C94470732 +:100040000C9447070C94082C0C9447070C94470712 +:100050000C9447070C940F220C9447070C94470705 :100060000C9447070C9447070C9447070C944707D8 :100070000C9447070C9447070C9447070C944707C8 :100080000C9447070C9447070C9447070C944707B8 :100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C94470769138B136C -:1000B00076148B137614CD13F0137614451458145C -:1000C000A617A617D417D41717185318541A541A6A -:1000D0006B18541A621962192E1A541A541A421AB9 +:1000A0000C9447070C9447070C9447079513B71314 +:1000B000A214B713A214F9131C14A21471148414FB +:1000C000D217D2170018001843187F18801A801A08 +:1000D0009718801A8E198E195A1A801A801A6E1A59 :1000E0000000F0A12E004C002A00E1003581000044 :1000F0001E00140004001D7134004D001F001A0082 :1001000016001B00E1042A0020000800070006007A @@ -198,9 +198,9 @@ :100C50004F4F544D41474943204D4F5553454B4508 :100C6000592045585452414B455920434F4E534FFC :100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2034663435F5 -:100C90003533632D6469727479202830333A3430E7 -:100CA0003A353320446563203138203230313529DC +:100C80003531320A004255494C443A2035653337F4 +:100C90003663622D6469727479202832323A3239AF +:100CA0003A3538204A616E203132203230313629CF :100CB0000A005649443A2030784645454428457252 :100CC000676F446F7820455A29205049443A2030B4 :100CD0007831333037284572676F446F7820455A32 @@ -228,9 +228,9 @@ :100E3000B9F41092F9011092FA011092FB0110928C :100E4000FC0114BE84B7877F84BF88E10FB6F89495 :100E500080936000109260000FBEE0E0FFE3099510 -:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1 +:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4 :100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8 +:100E8000A93FB107E1F70E94980F0C94D42D0C9460 :100E90000000FF93EF93E0913A01F0913B0130970E :100EA00009F00995EF91FF910895FC01859180303B :100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC @@ -253,1215 +253,1220 @@ :100FC000FF91B7CFFF93EF93FC0181918030B9F38C :100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 :100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E943A1605 -:1010000003C085EE0E94021780E090E008950895E5 +:100FF0000BC0FC018281882321F085EE0E946616D9 +:1010000003C085EE0E942E1780E090E008950895B9 :101010006091BC017091BD018091BE019091BF01B2 -:101020000E94E72056985E9825982D9826982E982D +:101020000E94132156985E9825982D9826982E9800 :1010300027982F98813019F0823021F00895259A51 :101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00C940808089556985E9825982D98DC -:1010600026982E9827982F988FEF90E090938900DC -:101070008093880090938B0080938A0090938D00DA -:1010800080938C00569A5E9A259A2D9A269A2E9ACB -:10109000279A2F9A2FE782E490E1215080409040D8 -:1010A000E1F700C0000056985E9825982D98269884 -:1010B0002E9827982F98089589EA8093800089E0D8 -:1010C0008093810024982C983F988AB18F748AB9B4 -:1010D0006E98479A8BB1806B8BB9769A0E942C08D8 -:1010E00087E098E0892B11F00C940708089580E2BE -:1010F0008093000180913C0181110EC00E94C608BE -:1011000081E080933C012FEF83ED90E321508040FC -:101110009040E1F700C0000080E40E94CC0880937A -:10112000000181112EC00E94F608809300018111F8 -:1011300028C00E94F60880930001811122C08FE32D -:101140000E94F6088093000181111BC00E94EE08E6 -:1011500080E40E94CC0880930001811112C08CE0D1 -:101160000E94F6088093000181110BC00E94F608CE -:1011700080930001811105C08FE30E94F6088093DF -:1011800000010E94EE088091000108951092B900BC -:101190008AE08093B800089594EA9093BC009091FF -:1011A000BC0097FFFCCF9091B900987F983021F058 -:1011B000903111F081E008958093BB0084E8809322 -:1011C000BC008091BC0087FFFCCF8091B900887F74 -:1011D000883111F0803471F780E0089584E98093BC -:1011E000BC008091BC0084FDFCCF08958093BB00BF -:1011F00084E88093BC008091BC0087FFFCCF909175 -:10120000B900987F81E0983209F480E0089584E87D -:101210008093BC008091BC0087FFFCCF8091BB0015 -:10122000089580910001811115C080E40E94CC08CE -:101230008093000181110CC082E10E94F608809326 -:101240000001811105C08FEF0E94F6088093000114 -:101250000E94EE0884B1807F84B985B1807F85B912 -:101260008AB1837F8AB98BB1837F8BB93E984698C8 -:1012700008950E947708809300010E94110980B3AD -:101280008C7080BB81B3836F81BBECE4F1E0AEE393 -:10129000B1E011921D9281E0EA35F807D1F78CE5B3 -:1012A00098E0892B11F00C945C0808959F92AF92FE -:1012B000BF92CF92DF92EF92FF920F931F93CF9343 -:1012C000DF93809100018823E1F080913D018F5FE1 -:1012D00080933D01811115C082E493E00E9455077F -:1012E0000E94770880930001882329F088E293E028 -:1012F0000E94550706C084E193E00E9455070E94B2 -:101300002C080EE311E0C0E0D0E0BB24B39482E0EF -:10131000A82ECC24C394D12C25E0E22E23E0F22E7B -:10132000C73000F580910001811162C080E40E9405 -:10133000CC0880930001811112C082E10E94F6085E -:101340008093000181110BC0C6010C2E01C0880FD3 -:101350000A94EAF780950E94F608809300010E94A3 -:10136000EE0846C0CA30A1F028F4C83059F0C930A0 -:1013700061F005C0CC3089F070F0CD3089F0209A52 -:10138000289810C0219A29980DC0229A2A980AC03C -:10139000239A2B9807C0529A01C0539A5B9802C0B7 -:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF -:1013B00092E081708B25892B7C9B02C090E001C05C -:1013C00094E0892B7D9B02C090E001C098E0892BBE -:1013D0007E9B02C090E001C090E1892B9FB1909567 -:1013E000991F9927991F9295990F907E892B10C06C -:1013F00080910001811176C080E40E94CC08809326 -:101400000001882309F45BC0912C0E94EE08892D0D -:10141000F8019081981739F1808380910101882328 -:1014200001F18091D70180FF04C08AE093E00E941F -:1014300055078091D70180FF0CC0809101011F9258 -:101440008F93FF92EF920E94EE070F900F900F90F4 -:101450000F908091D70180FF04C083E093E00E9449 -:101460005507A09201010E94110921960F5F1F4F9D -:10147000CE30D10509F054CF809101018823B1F01D -:10148000815080930101882339F08FE99FE0019713 -:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017 -:1014A00081918D9391E0EC34F907D1F785E298E0D2 -:1014B000892BD1F00E94250817C090E07ACF83E1F4 -:1014C0000E94F6088093000181119ECF81E40E9462 -:1014D000CC0880930001811197CF0E940709982EB4 -:1014E000909493CF80E094CF81E0DF91CF911F91D2 -:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3 -:101500000895E82FF0E0E45BFE4F80810895CF92CC -:10151000DF92EF92FF920F931F93CF93DF938CEEA6 -:1015200092E00E9455073CE4E32E31E0F32EC0E048 -:10153000D0E047EEC42E42E0D42E0EED12E0DF9351 -:10154000CF93DF92CF920E94EE0784EE92E00E944A -:101550005507F70181917F0190E00E944C219F93F4 -:101560008F931F930F930E94EE078CED92E00E94E1 -:10157000550721968DB79EB708960FB6F8949EBF73 -:101580000FBE8DBFCE30D105D1F6DF91CF911F9127 -:101590000F91FF90EF90DF90CF9008958B3B9105D6 -:1015A00078F4883A910540F5853A9105D0F4843075 -:1015B000910508F0B1C08130910509F4ADC06BC050 -:1015C000803E910508F467C0883E910508F4A4C0E8 -:1015D0009C01205F31092031310508F05CC0906525 -:1015E0000895853A910509F459C0863A910509F4A0 -:1015F00058C083E890E40895883A910509F454C0EE -:10160000893A910509F453C08A3A910509F452C008 -:101610008B3A910509F451C08C3A910509F450C0F8 -:101620008D3A910509F44FC0803B910509F44EC0F5 -:101630008E3A910509F44DC08F3A910509F44CC0DA -:10164000813B910509F44BC0823B910509F44AC0E6 -:10165000833B910509F449C0843B910509F448C0D6 -:10166000853B910509F447C0863B910509F446C0C6 -:10167000873B910509F445C0883B910509F444C0B6 -:10168000893B910509F443C08A3B910509F042C0AA -:101690008AE296E4089580E090E0089581E890E47D -:1016A000089582E890E4089582EE94E4089589EE26 -:1016B00094E408958AEE94E4089585EB94E4089503 -:1016C00086EB94E4089587EB94E408958CEC94E41D -:1016D00008958DEC94E4089583E895E408958AE8EC -:1016E00095E4089582E995E4089584E995E40895E0 -:1016F00081E296E4089583E296E4089584E296E414 -:10170000089585E296E4089586E296E4089587E2D6 -:1017100096E4089580E094E40895089596E0799F12 -:10172000F001112494E5899FE00DF11D1124E60FCD -:10173000F11DEE0FFF1FEC51FF4F8591949108951D -:10174000880F991F805A9040FC01859194910895CB -:10175000880F991F80529F4FFC01859194910895A5 -:1017600026E0729FF001112444E5849FE00DF11DF5 -:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5 -:101780003491C9019A9581159F4110F4C9010895BA -:10179000C90190528115904128F4C9019F700E949F -:1017A000A80B0895C90190538115904120F4C901F7 -:1017B0009927906C0895211580E5380769F40E94F7 -:1017C000751A9FEF24E34CE0915020404040E1F730 -:1017D00000C000000C940822213080E5380751F445 -:1017E0008CE593E00E9455078091D701816080933A -:1017F000D7010895C90190558115904108F050C056 -:10180000832F99278F70992781309105D9F4A901E9 -:101810004370552702C0880F991F4A95E2F79C68CC -:10182000A90164E0440F551F6A95E1F744275370FE -:10183000842B952B73E0220F331F7A95E1F72076E6 -:1018400033271DC08230910529F4922F8827816F9C -:10185000906A089583309105A9F4A9014370552732 -:1018600081E090E002C0880F991F4A95E2F79C68DA -:1018700043E0220F331F4A95E1F7207E3770822B19 -:10188000932B08950497F1F4A9014370552781E043 -:1018900090E002C0880F991F4A95E2F79A68E8CF56 -:1018A000C90190578115904120F4C9019F70906241 -:1018B0000895C90190588115904120F4C9019F7085 -:1018C000906A0895203E3105E0F4203C310558F53A -:1018D0002133310509F470C048F42932310509F487 -:1018E00064C02A32310509F46EC074C02933310551 -:1018F000F1F022383105D9F02533310509F44EC015 -:1019000069C0233E310589F138F4203E3105C1F02C -:10191000223E3105E1F05EC0263E310569F1273EE9 -:101920003105A9F157C0C9010E94A00B089580910B -:10193000EA0180FD02C081FF4DC080EE90E04BC007 -:101940008091EA0180FFF9CF89E390E044C0809163 -:10195000EA0182FF0EC08091EA0184FF03C080E0AB -:1019600090E039C083EE90E036C08091EA0182FFBA -:10197000F2CF82EE90E02FC08091EA0183FF0BC08E -:101980008091EA0184FDEBCF87EE90E024C0809146 -:10199000EA0183FFF5CF86EE90E01DC08091EA0159 -:1019A00085FF07C089E290E016C08091EA0185FFBB -:1019B000F9CF85E390E00FC08091EA0186FF07C070 -:1019C0008AE290E008C08091EA0186FFF9CF81E3C6 -:1019D00090E001C0C9010E94CE0A08950895809147 -:1019E0006D0108959FB7F89410925C019FBF90918C -:1019F000F001943009F058C09091E9009F70209157 -:101A0000EC0020FF02C020E801C020E0292B94E078 -:101A10009093E9009091EB0090FF43C09091EE000D -:101A200097FF3FC090915A01992321F09091E800CF -:101A300095FF37C010925A0196E03091E80035FDCD -:101A400015C03091F001343061F53091EB0035FD77 -:101A500028C0915021F481E080935A0122C0EFE91F -:101A6000FFE03197F1F700C00000E7CF8093F1006D -:101A70008091E80085FD0AC08091E80080FFFCCFDE -:101A80008091E8008E778093E80006C08FB7F894C5 -:101A900091E090935C018FBF2F702093E90080E06C -:101AA00008952F702093E9008FEF0895CF93DF936F -:101AB00000D01F92CDB7DEB72091F001243019F588 -:101AC00023E029839B838A832093E9008FEF909101 -:101AD000E800815095FD06C095ED9A95F1F700005C -:101AE0008111F5CF8091E80085FF0DC040E050E006 -:101AF00063E070E0CE0101960E9425108091E8001D -:101B00008E778093E8000F900F900F90DF91CF9128 -:101B10000895CF93DF9300D01F92CDB7DEB7209109 -:101B2000F001243021F522E029839B838A8383E01E -:101B30008093E9008FEF9091E800815095FD06C0F9 -:101B400095ED9A95F1F700008111F5CF8091E800AD -:101B500085FF0DC040E050E063E070E0CE010196EB -:101B60000E9425108091E8008E778093E8000F9006 -:101B70000F900F90DF91CF9108952091F0012430C4 -:101B8000F1F422E02093E9002FEF3091E80021509A -:101B900035FD06C035ED3A95F1F700002111F5CF7E -:101BA0002091E80025FF0BC040E050E065E070E0C8 -:101BB0000E9425108091E8008E778093E8000895B8 -:101BC000CF93DF93EC018091F001843009F047C09E -:101BD00080910C018823E1F080910D018823C1F0F0 -:101BE00085E08093E9008FEF9091E800815095FDAA -:101BF00006C095E19A95F1F700008111F5CF80912B -:101C0000E80085FF2CC040E050E060E170E017C0C4 -:101C100081E08093E9008FEF9091E800815095FD7D -:101C200006C095ED9A95F1F700008111F5CF8091EE -:101C3000E80085FF14C040E050E068E070E0CE01AD -:101C40000E9425108091E8008E778093E80080E163 -:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB -:101C6000CF91089583E993E00E9455078091EF0199 -:101C7000811109C00E94B7110E9414128091E200E4 -:101C800084608093E20008958FE893E00E945507F6 -:101C90001092EF0108958BE893E00C94550787E8C4 -:101CA00093E00E9455070C94C92B83E893E00E94AF -:101CB00055070E94A3210E94CF2B0E94B0140C94C0 -:101CC000EE0C80915B018F5F80935B0162E30E9469 -:101CD0003D2D911135C010925B0180915C018823EC -:101CE00079F18091F001843049F58091E9008F709D -:101CF0009091EC0090FF02C090E801C090E0982B1A -:101D000084E08093E9008091EB0080FF14C0809113 -:101D1000EE0087FF10C08091E80085FF03C010929D -:101D2000F100F9CF8091E80080FF05C08091E800C4 -:101D30008E778093E8009F709093E90010925C0189 -:101D4000089542E061EC81E00E94311142E061ECD3 -:101D500082E00E94311142E061EC83E00E94311187 -:101D600042E261EC84E00E94311142E161EC85E0E5 -:101D70000C9431118091F201833009F455C030F494 -:101D8000813071F0823009F48EC008958A3009F4F0 -:101D90007AC08B3009F460C0893009F09CC020C043 -:101DA0008091F101813A09F096C08091E800877F27 -:101DB0008093E8008091F5019091F601892B21F044 -:101DC00060E080E090E003C060E18DE591E070E0CC -:101DD0000E946E108091E8008B778093E800089550 -:101DE0008091F101813209F076C08091F5019091E6 -:101DF000F601009719F0049709F06DC08091E80092 -:101E0000877F8093E8008091E80082FD05C0809183 -:101E1000F0018111F8CF5FC08091F10080936D01D6 -:101E20008091E8008B7753C08091F101813A09F0ED -:101E300052C08091F5019091F601892B09F04BC0B9 -:101E40008091E800877F8093E8008091E80080FF20 -:101E5000FCCF80910C0136C08091F1018132D9F51F -:101E60008091F5019091F601892BA9F58091E80008 -:101E7000877F8093E8000E9466118091F301809330 -:101E80000C010C94751A8091F101813221F5809139 -:101E9000E800877F8093E8000E9466118091F4013A -:101EA00080936E0108958091F101813AA1F48091AF -:101EB000E800877F8093E8008091E80080FFFCCFF6 -:101EC00080916E018093F1008091E8008E7780937D -:101ED000E8000C946611089584B7877F84BF88E179 -:101EE0000FB6F89480936000109260000FBE90E0EF -:101EF00080E80FB6F89480936100909361000FBE64 -:101F00000E9439150E94B7110E9414128091E200BC -:101F100084608093E20082EF9CE00E94E22078944B -:101F20000E948E140E943B1582E091E00E94AB1447 -:101F30000E94B72B82E793E00E9455078091F00141 -:101F4000853089F48EE693E00E9455070E94662151 -:101F50008091EE01882391F30E948E21882371F3F2 -:101F60000E940F10EBCF0E946915E8CF292F33276D -:101F700023303105A9F06CF42130310509F442C059 -:101F80002230310509F043C08DE890E02BEC33E0BE -:101F900042C021323105C9F02232310519F137C072 -:101FA00099278130910541F08230910541F0892BCC -:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912 -:101FC000F3E0849190E09F0126C0653000F5E62F94 -:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5 -:101FE00090E019C0653098F4E62FF0E0DF01AA0F09 -:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6 -:1020000090E009C082E190E028E534E004C080E07F -:1020100090E020E030E0FA0131832083089580E1F0 -:1020200089BD82E189BD09B400FEFDCF8091D80051 -:102030008F7D8093D8008091E00082608093E000E3 -:102040008091E00081FDFCCF0895CF92DF92EF9266 -:10205000FF920F931F93CF93DF937C018B01EA01D3 -:102060000E948711811131C0209731F088819981B8 -:10207000081B190BE80EF91EC12CD12C01151105F6 -:1020800019F18091E80085FD14C08091E8008E77F9 -:102090008093E800209741F0888199818C0D9D1DE7 -:1020A0009983888385E011C00E948711882331F3CA -:1020B0000CC0F70181917F018093F100015011095B -:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7 -:1020D0000F91FF90EF90DF90CF9008952091F7013E -:1020E0003091F8012617370748F06115710539F46A -:1020F0002091E8002E772093E80001C0B901FC018F -:1021000020E061157105B9F18091F001882309F48F -:1021100040C0853009F43FC08091E80083FD3DC098 -:102120008091E80082FF06C08091E80082FF26C00F -:1021300080E008958091E80080FFE3CF2091F300D4 -:102140008091F20090E0922B6115710551F088307A -:10215000910538F421912093F100615071090196A5 -:10216000F3CF21E0089709F020E08091E8008E7716 -:102170008093E800C6CF2111C7CFD6CF8091F00160 -:10218000882339F0853039F08091E80083FFCCCF87 -:1021900004C082E0089583E0089581E008952091CD -:1021A000F7013091F8012617370748F061157105DE -:1021B00039F42091E8002E772093E80001C0B9019E -:1021C000FC0120E061157105C1F18091F0018823C7 -:1021D00009F441C0853009F440C08091E80083FDD6 -:1021E0003EC08091E80082FF06C08091E80082FF37 -:1021F00027C080E008958091E80080FFE3CF209120 -:10220000F3008091F20090E0922B6115710559F076 -:102210008830910540F424912093F100319661506B -:1022200071090196F2CF21E0089709F020E0809132 -:10223000E8008E778093E800C5CF2111C6CFD5CFB7 -:102240008091F001882339F0853039F08091E800E1 -:1022500083FFCBCF04C082E0089583E0089581E03E -:102260000895982F973058F59093E900981739F012 -:102270007091EC002091ED005091F00003C0242FEC -:10228000762F50E021FF19C03091EB003E7F309354 -:10229000EB003091ED003D7F3093ED003091EB008D -:1022A00031603093EB007093EC002093ED0050937D -:1022B000F0002091EE0027FF07C09F5FD3CF8F7003 -:1022C0008093E90081E0089580E008958091F10114 -:1022D00087FD05C08091E80080FF0EC012C080918C -:1022E000E80082FD05C08091F0018111F8CF0895CA -:1022F0008091E8008B7708C08091F0018111EACFCE -:1023000008958091E8008E778093E8000895809189 -:10231000E4009091E50045E62091EC0020FF21C00B -:102320002091E80020FD21C02091F001222389F0B6 -:10233000253089F02091EB0025FD0FC02091E400AD -:102340003091E5002817390739F3415041F0C901B0 -:10235000E3CF82E0089583E0089581E0089584E06A -:1023600008952091E80022FFDFCF80E008950E94C9 -:1023700025120E942D12E0EEF0E0808181608083C2 -:10238000E8EDF0E080818F77808319BCA7EDB0E0A5 -:102390008C918E7F8C9380818F7E80831092EF0151 -:1023A00008950F931F93CF93DF930E9425120E94ED -:1023B0002D12C8EDD0E088818F778883888180686E -:1023C000888388818F7D888319BC1092F0011092D8 -:1023D000EC011092EE011092ED0100EE10E0F80118 -:1023E00080818B7F808388818160888342E060E088 -:1023F00080E00E943111E1EEF0E080818E7F8083E9 -:10240000E2EEF0E08081816080838081886080835B -:10241000F80180818E7F8083888180618883DF914D -:10242000CF911F910F910895E8EDF0E080818F7EAC -:102430008083E7EDF0E080818160808384E082BF6B -:1024400081E08093EF010C94D111E8EDF0E0808100 -:102450008E7F80831092E20008951092DA0010922D -:10246000E10008951F920F920FB60F9211242F933F -:102470003F934F935F936F937F938F939F93AF930C -:10248000BF93EF93FF938091E10082FF0BC0809197 -:10249000E20082FF07C08091E1008B7F8093E10022 -:1024A0000E94610E8091DA0080FF1FC08091D800E9 -:1024B00080FF1BC08091DA008E7F8093DA008091CC -:1024C000D90080FF0DC080E189BD82E189BD09B4DA -:1024D00000FEFDCF81E08093F0010E94320E05C026 -:1024E00019BC1092F0010E94440E8091E10080FF1F -:1024F00019C08091E20080FF15C08091E2008E7FBC -:102500008093E2008091E20080618093E2008091FC -:10251000D80080628093D80019BC85E08093F001D8 -:102520000E944F0E8091E10084FF30C08091E20054 -:1025300084FF2CC080E189BD82E189BD09B400FE21 -:10254000FDCF8091D8008F7D8093D8008091E100ED -:102550008F7E8093E1008091E2008F7E8093E20085 -:102560008091E20081608093E2008091EC018823F9 -:1025700011F084E007C08091E30087FF02C083E090 -:1025800001C081E08093F0010E94550E8091E1002E -:1025900083FF29C08091E20083FF25C08091E10084 -:1025A000877F8093E10082E08093F0011092EC013C -:1025B0008091E1008E7F8093E1008091E2008E7F28 -:1025C0008093E2008091E20080618093E20042E02B -:1025D00060E080E00E9431118091F000886080937B -:1025E000F0000E944B0EFF91EF91BF91AF919F9130 -:1025F0008F917F916F915F914F913F912F910F90AC -:102600000FBE0F901F9018951F920F920FB60F924A -:1026100011242F933F934F935F936F937F938F93E7 -:102620009F93AF93BF93CF93EF93FF93C091E90034 -:10263000CF708091EC001092E9008091F000877FCC -:102640008093F00078940E9440131092E9008091EA -:10265000F00088608093F000C093E900FF91EF9153 -:10266000CF91BF91AF919F918F917F916F915F912A -:102670004F913F912F910F900FBE0F901F90189583 -:102680001F93CF93DF93CDB7DEB7AA970FB6F89419 -:10269000DEBF0FBECDBFE1EFF1E08091F10081938D -:1026A00021E0E93FF207C9F70E94BA0E8091E800E5 -:1026B00083FF1CC12091F1013091F201832F90E042 -:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0 -:1026D0005D2D203881F0223809F008C18091F50184 -:1026E0008F708093E9008091EB0085FB882780F94B -:1026F0001092E90006C08091ED019091EE019111D8 -:1027000082609091E800977F9093E8008093F100B9 -:102710001092F100C5C0822F8D7F09F0E7C02223FF -:1027200019F0223061F0E2C08091F301813009F0AC -:10273000DDC0333009F080E08093EE0128C0809145 -:10274000F301811124C02091F5012F7009F4CEC04E -:102750002093E9008091EB0080FF19C08091EB008D -:10276000333011F4806211C080618093EB0081E00E -:1027700090E0022E01C0880F0A94EAF78093EA00E5 -:102780001092EA008091EB0088608093EB00109239 -:10279000E9008091E800877F86C02111A7C01091D1 -:1027A000F3011F778091E3008078812B8093E30011 -:1027B0008091E800877F8093E8000E9466118091F5 -:1027C000E80080FFFCCF8091E30080688093E30005 -:1027D000112311F083E001C082E08093F00186C0F4 -:1027E0002058223008F082C08091F3019091F401CA -:1027F0008C3D23E0920779F583E08A838AE289831E -:102800004FB7F894DE01139620E03EE051E2E32F4B -:10281000F0E050935700E49120FF03C0E295EF7081 -:102820003F5FEF708E2F90E0EA3010F0C79601C046 -:10283000C0968D939D932F5F243149F74FBF8091B0 -:10284000E800877F8093E8006AE270E0CE0101969D -:102850000E946E1014C0AE014F5F5F4F6091F50192 -:102860000E94B60F009709F441C02091E800277F2D -:102870002093E800BC0189819A810E94CF10809149 -:10288000E8008B778093E80031C0203879F580919B -:10289000E800877F8093E8008091EC018093F1004D -:1028A0008091E8008E778093E8000E9466111EC038 -:1028B00021111CC09091F3019230C0F48091E80086 -:1028C000877F8093E8009093EC010E9466118091CD -:1028D000EC01811104C08091E30087FF02C084E015 -:1028E00001C081E08093F0010E94A10E8091E80078 -:1028F00083FF0AC08091E800877F8093E800809181 -:10290000EB0080628093EB00AA960FB6F894DEBFCE -:102910000FBECDBFDF91CF911F910895CF938091CE -:10292000F0018823B1F08091E9008F709091EC0064 -:1029300090FF02C090E801C090E0C92FC82B109210 -:10294000E9008091E80083FD0E944013CF70C0939E -:10295000E900CF91089590937401809373010895D5 -:10296000E0917301F0917401309721F00190F081B2 -:10297000E02D099480E00895FF920F931F93CF9369 -:10298000DF938C01E0917301F0917401309799F11C -:102990000280F381E02D09958091D70182FF2BC041 -:1029A00080FF04C08DE895E00E945507E80180E1B2 -:1029B000F82E07E815E08091D70180FF0BC08881D1 -:1029C0001F928F931F930F930E94EE070F900F900B -:1029D0000F900F90FA942196F110EDCF8091D701CE -:1029E00080FF09C085E895E0DF91CF911F910F919D -:1029F000FF900C945507DF91CF911F910F91FF909D -:102A00000895E0917301F0917401309721F00480F2 -:102A1000F581E02D099408952091710130917201A2 -:102A20008217930771F09093720180937101E09186 -:102A30007301F0917401309721F00680F781E02D49 -:102A40000994089520916F013091700182179307C6 -:102A500071F09093700180936F01E0917301F09198 -:102A60007401309721F00084F185E02D09940895D8 -:102A700008950C9438150E94A5210E9439090C94E0 -:102A80006B22CF93C82F8091D70182FF1EC080FF99 -:102A900004C086EA95E00E9455078091D70180FF27 -:102AA0000CC01F92CF9321EA35E03F932F930E94F1 -:102AB000EE070F900F900F900F908091D70180FF3D -:102AC00004C08FE995E00E9455078C2FCF910C949C -:102AD000EE0CCF92DF92EF92FF920F931F93CF9362 -:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE -:102AF000CDBF0E94560936E7E32E31E0F32E00E009 -:102B000010E0C02E802F0E94810AF701D1907F0132 -:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC -:102B200089838A831B820E94AE218160782F9D83D6 -:102B30008C8349815A816B818D810E940C1641C022 -:102B40009091D70191FF04C08B870E94870A8B85E3 -:102B500020E030E04D2D50E0922FBA01022E02C04D -:102B6000759567950A94E2F760FF25C02E83CF82A2 -:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0 -:102B800090E08E219F2121E0892B09F420E0288705 -:102B90000E94AE218160782F9A8789874E815F815C -:102BA00068858A850E940C16F801EA58FE4F8081DC -:102BB0008E25808306C02F5F3F4F2630310561F69A -:102BC000A9CF0E94D925109175010E94B014181741 -:102BD000A1F00E94B014809375012B960FB6F89463 -:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040 -:102BF000EF90DF90CF900C9441152B960FB6F89480 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD -:102C20002B970FB6F894DEBF0FBECDBF4F835887EA -:102C300069877A878B87DE01119686E0FD01119204 -:102C40008A95E9F785E0FE01379601900D928A9505 -:102C5000E1F749815A816B817C818D819E810E943F -:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E -:102C7000CF910895CF93C82F882309F4C1C082381B -:102C800059F40E94B01481FDBBC089E30E94E01F8B -:102C90000E94BC2089E30CC0833879F40E94B014F0 -:102CA00080FDAEC083E50E94E01F0E94BC2083E54A -:102CB0000E943120CF910C94BC20843859F40E949A -:102CC000B01482FD9DC087E40E94E01F0E94BC20DA -:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462 -:102CE000622A81118DC08C2F0E94E01FE3CF80E209 -:102CF0008C0F883048F4C77081E001C0880FCA95F6 -:102D0000EAF70E948320D6CF8BE58C0F833078F4CE -:102D1000C53A29F0C63A31F482E890E005C081E86E -:102D200090E002C083E890E0CF910C940C1588E508 -:102D30008C0F833108F064C0C83A39F1C93A41F1C7 -:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155 -:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3 -:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151 -:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1 -:102D8000CA3BC9F58AE292E038C082EE90E035C0D5 -:102D900089EE90E032C08AEE90E02FC085EB90E0A3 -:102DA0002CC086EB90E029C087EB90E026C08CEC2D -:102DB00090E023C08DEC90E020C083E891E01DC03E -:102DC0008AE891E01AC082E991E017C084E991E0B5 -:102DD00014C081E292E011C083E292E00EC084E26E -:102DE00092E00BC085E292E008C086E292E005C066 -:102DF00087E292E002C080E090E0CF910C9422152F -:102E0000CF910895882309F44BC0823859F40E9469 -:102E1000B01481FF45C089E30E94E01F0E94BC20DE -:102E200089E30CC0833871F40E94B01480FF38C06D -:102E300083E50E94E01F0E94BC2083E50E943120B0 -:102E40000C94BC20843859F40E94B01482FF28C02E -:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34 -:102E6000980F913A58F390E2980F983050F4877089 -:102E700091E001C0990F8A95EAF7892F0E94892075 -:102E8000DFCF9BE5980F933020F480E090E00C9426 -:102E90000C15885A833120F480E090E00C942215C0 -:102EA0000895882321F00E9483200C94BC2008956B -:102EB000882321F00E9489200C94BC200895CF9291 -:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3 -:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA -:102EE00085E0F801DE01119601900D928A95E1F7D7 -:102EF000F80140813181F280258122952F708381F4 -:102F00009481892B31F03F3F31F481E04F3F19F438 -:102F100003C081E001C080E080FDC6C249833A83DE -:102F200089819A812F830E949E1F9E8388870E9499 -:102F30009D1F0E94701E4E81E42FE295EF70F0E01D -:102F4000E05AFF4F2F8168850C945D2D842F807F80 -:102F5000142F1F70882311F01295107FFF2059F055 -:102F6000112309F456C2812F68870E9493200E9482 -:102F7000BC2068854EC2862F0E940217112309F4D7 -:102F800093C2812F0E94992028960FB6F894DEBF35 -:102F90000FBECDBFDF91CF911F910F91FF90EF90AA -:102FA000DF90CF900C94BC20342F307F842F8F7013 -:102FB000303211F08295807F662319F0613019F16B -:102FC0002CC0FF20B1F0222309F494C1213009F074 -:102FD00091C128960FB6F894DEBF0FBECDBFDF912A -:102FE000CF911F910F91FF90EF90DF90CF900C94B5 -:102FF000A320222319F0213009F456C28E830E94A7 -:10300000A6208E818AC1FF2021F0263008F04CC214 -:1030100071C1253008F048C280C1FF2021F0222371 -:1030200009F468C1F6C1222309F477C106C2242F2E -:1030300026952695237030E02115310521F02130A9 -:103040003105C9F031C2FF2021F0862F942F9370F3 -:1030500002C080E090E028960FB6F894DEBF0FBE65 -:10306000CDBFDF91CF911F910F91FF90EF90DF9037 -:10307000CF900C940C15FF2021F0862F942F937085 -:1030800002C080E090E028960FB6F894DEBF0FBE35 -:10309000CDBFDF91CF911F910F91FF90EF90DF9007 -:1030A000CF900C942215862FFF2019F00E945F24E8 -:1030B00002C00E94C72428960FB6F894DEBF0FBE48 -:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7 -:1030D000CF900C944C25842F837009F076C0F110AA -:1030E000E3C1262F229526952770220F220F862FC7 -:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8 -:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8 -:1031100070E080E090E004C0660F771F881F991F61 -:103120002A95D2F7609570958095909503C060E0E0 -:1031300070E0CB01242F269526952370422F50E076 -:1031400042305105D1F04330510559F16C297D29A8 -:103150008E299F294130510541F128960FB6F894E8 -:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10317000EF90DF90CF900C94951E6C297D298E29BD -:103180009F2928960FB6F894DEBF0FBECDBFDF9102 -:10319000CF911F910F91FF90EF90DF90CF900C9403 -:1031A000AF1E0E94951EC701B60128960FB6F8946F -:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A -:1031C000EF90DF90CF900C947B1EFF2019F0842F9E -:1031D000817001C08695882309F466C1262F229547 -:1031E00026952770220F220F862F8F70C82ED12C84 -:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB -:103200000A94D2F764FF10C06FE070E080E090E0B5 -:1032100004C0660F771F881F991F2A95D2F7609503 -:1032200070958095909503C060E070E0CB01242FED -:10323000269526952370422F50E042305105D1F05B -:103240004330510559F16C297D298E299F29413040 -:10325000510541F128960FB6F894DEBF0FBECDBFE1 -:10326000DF91CF911F910F91FF90EF90DF90CF9062 -:103270000C94691F6C297D298E299F2928960FB6E9 -:10328000F894DEBF0FBECDBFDF91CF911F910F919C -:10329000FF90EF90DF90CF900C94831F0E94691FE6 -:1032A000C701B60128960FB6F894DEBF0FBECDBF9A -:1032B000DF91CF911F910F91FF90EF90DF90CF9012 -:1032C0000C944F1F603FC9F118F4603E50F49CC04D -:1032D000623F09F461C008F44BC0633F09F470C059 -:1032E00093C0162F1F70842F8F71FF2099F00E94BA -:1032F000E81E812F28960FB6F894DEBF0FBECDBF13 -:10330000DF91CF911F910F91FF90EF90DF90CF90C1 -:103310000C9451170E94091F812F28960FB6F8941C -:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8 -:10333000EF90DF90CF900C945817FF20A9F0253024 -:1033400008F0B2C0842F8F7128960FB6F894DEBFB4 -:103350000FBECDBFDF91CF911F910F91FF90EF90E6 -:10336000DF90CF900C942E1F263008F09DC0EACF3E -:10337000FF20A1F0842F8F7128960FB6F894DEBF3E -:103380000FBECDBFDF91CF911F910F91FF90EF90B6 -:10339000DF90CF900C94E81EFF2061F3842F8F7193 +:1010500011F00E94080880E090E0089556985E988C +:1010600025982D9826982E9827982F988FEF90E006 +:10107000909389008093880090938B0080938A00DE +:1010800090938D0080938C00259A2D9A2FEF80E706 +:1010900092E0215080409040E1F700C00000269A85 +:1010A0002E9A2FEF80E792E0215080409040E1F7A8 +:1010B00000C00000279A2F9A2FEF80E792E021507E +:1010C00080409040E1F700C0000025982D982FEF58 +:1010D00080E792E0215080409040E1F700C000009E +:1010E00026982E982FEF80E792E021508040904084 +:1010F000E1F700C0000027982F9856985E98259831 +:101100002D9826982E9827982F98089589EA8093ED +:10111000800089E08093810024982C983F988AB1C0 +:101120008F748AB96E98479A8BB1806B8BB9769A17 +:101130000E942E0887E098E0892B11F00E94070892 +:1011400080E090E0089580E28093000180913C016E +:1011500081110EC00E94F20881E080933C012FEFC4 +:1011600083ED90E3215080409040E1F700C0000003 +:1011700080E40E94F8088093000181112EC00E9433 +:10118000220980930001811128C00E9422098093C6 +:101190000001811122C08FE30E9422098093000187 +:1011A00081111BC00E941A0980E40E94F8088093F4 +:1011B0000001811112C08CE00E942209809300017D +:1011C00081110BC00E94220980930001811105C08A +:1011D0008FE30E942209809300010E941A098091E6 +:1011E000000108951092B9008AE08093B800089534 +:1011F00094EA9093BC009091BC0097FFFCCF909133 +:10120000B900987F983021F0903111F081E0089575 +:101210008093BB0084E88093BC008091BC0087FF72 +:10122000FCCF8091B900887F883111F0803471F74C +:1012300080E0089584E98093BC008091BC0084FD27 +:10124000FCCF08958093BB0084E88093BC0080911C +:10125000BC0087FFFCCF9091B900987F81E0983265 +:1012600009F480E0089584E88093BC008091BC007C +:1012700087FFFCCF8091BB00089580910001811110 +:1012800015C080E40E94F8088093000181110CC011 +:1012900082E10E94220980930001811105C08FEF35 +:1012A0000E942209809300010E941A0984B1807F64 +:1012B00084B985B1807F85B98AB1837F8AB98BB1C2 +:1012C000837F8BB93E98469808950E94A308809327 +:1012D00000010E943D0980B38C7080BB81B3836F95 +:1012E00081BBECE4F1E0AEE3B1E011921D9281E04C +:1012F000EA35F807D1F786E898E0892B11F00C94CD +:10130000860808959F92AF92BF92CF92DF92EF929C +:10131000FF920F931F93CF93DF9380910001882357 +:10132000E1F080913D018F5F80933D01811115C0F7 +:1013300082E493E00E9455070E94A3088093000175 +:10134000882329F088E293E00E94550706C084E1D3 +:1013500093E00E9455070E942E080EE311E0C0E0C2 +:10136000D0E0BB24B39482E0A82ECC24C394D12C2B +:1013700025E0E22E23E0F22EC73000F58091000137 +:10138000811162C080E40E94F808809300018111FD +:1013900012C082E10E9422098093000181110BC0DA +:1013A000C6010C2E01C0880F0A94EAF780950E94AE +:1013B0002209809300010E941A0946C0CA30A1F098 +:1013C00028F4C83059F0C93061F005C0CC3089F03C +:1013D00070F0CD3089F0209A289810C0219A299871 +:1013E0000DC0229A2A980AC0239A2B9807C0529AB5 +:1013F00001C0539A5B9802C03E9A4698E0EAEA958B +:10140000F1F78FB1799985C092E081708B25892B96 +:101410007C9B02C090E001C094E0892B7D9B02C0C0 +:1014200090E001C098E0892B7E9B02C090E001C053 +:1014300090E1892B9FB19095991F9927991F9295BB +:10144000990F907E892B10C080910001811176C088 +:1014500080E40E94F80880930001882309F45BC0AF +:10146000912C0E941A09892DF8019081981739F161 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9455078091D70180FF55 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EE070F900F900F900F908091D70180FF63 +:1014B00004C083E093E00E945507A09201010E94BE +:1014C0003D0921960F5F1F4FCE30D10509F054CF53 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E081918D9391E0EC3466 +:10150000F907D1F785E298E0892BD1F00E942508F0 +:1015100017C090E07ACF83E10E94220980930001F6 +:1015200081119ECF81E40E94F8088093000181110F +:1015300097CF0E943309982E909493CF80E094CF58 +:1015400081E0DF91CF911F910F91FF90EF90DF909D +:10155000CF90BF90AF909F900895E82FF0E0E45BAC +:10156000FE4F80810895CF92DF92EF92FF920F930A +:101570001F93CF93DF938CEE92E00E9455073CE4DB +:10158000E32E31E0F32EC0E0D0E047EEC42E42E07F +:10159000D42E0EED12E0DF93CF93DF92CF920E9414 +:1015A000EE0784EE92E00E945507F70181917F01DA +:1015B00090E00E9478219F938F931F930F930E9436 +:1015C000EE078CED92E00E94550721968DB79EB7ED +:1015D00008960FB6F8949EBF0FBE8DBFCE30D105D2 +:1015E000D1F6DF91CF911F910F91FF90EF90DF9097 +:1015F000CF9008958B3B910578F4883A910540F59A +:10160000853A9105D0F48430910508F0B1C081305D +:10161000910509F4ADC06BC0803E910508F467C028 +:10162000883E910508F4A4C09C01205F3109203157 +:10163000310508F05CC090650895853A910509F47C +:1016400059C0863A910509F458C083E890E408959A +:10165000883A910509F454C0893A910509F453C0B8 +:101660008A3A910509F452C08B3A910509F451C0A8 +:101670008C3A910509F450C08D3A910509F44FC098 +:10168000803B910509F44EC08E3A910509F44DC096 +:101690008F3A910509F44CC0813B910509F44BC088 +:1016A000823B910509F44AC0833B910509F449C086 +:1016B000843B910509F448C0853B910509F447C076 +:1016C000863B910509F446C0873B910509F445C066 +:1016D000883B910509F444C0893B910509F443C056 +:1016E0008A3B910509F042C08AE296E4089580E0C1 +:1016F00090E0089581E890E4089582E890E40895E8 +:1017000082EE94E4089589EE94E408958AEE94E4D8 +:10171000089585EB94E4089586EB94E4089587EBAF +:1017200094E408958CEC94E408958DEC94E4089589 +:1017300083E895E408958AE895E4089582E995E4BC +:10174000089584E995E4089581E296E4089583E29A +:1017500096E4089584E296E4089585E296E4089577 +:1017600086E296E4089587E296E4089580E094E4A2 +:101770000895089596E0799FF001112494E5899FDA +:10178000E00DF11D1124E60FF11DEE0FFF1FEC51CE +:10179000FF4F859194910895880F991F805A90402A +:1017A000FC01859194910895880F991F80529F4F55 +:1017B000FC0185919491089526E0729FF001112417 +:1017C00044E5849FE00DF11D1124E60FF11DEE0F9D +:1017D000FF1FEC51FF4F25913491C9019A95811556 +:1017E0009F4110F4C9010895C9019052811590419B +:1017F00028F4C9019F700E94D40B0895C901905329 +:101800008115904120F4C9019927906C0895211504 +:1018100080E5380769F40E94A11A9FEF24E34CE0A9 +:10182000915020404040E1F700C000000C94342269 +:10183000213080E5380751F48CE593E00E9455078C +:101840008091D70181608093D7010895C901905597 +:101850008115904108F050C0832F99278F709927E8 +:1018600081309105D9F4A9014370552702C0880F32 +:10187000991F4A95E2F79C68A90164E0440F551F3F +:101880006A95E1F744275370842B952B73E0220F60 +:10189000331F7A95E1F7207633271DC082309105FA +:1018A00029F4922F8827816F906A089583309105DB +:1018B000A9F4A9014370552781E090E002C0880F88 +:1018C000991F4A95E2F79C6843E0220F331F4A951F +:1018D000E1F7207E3770822B932B08950497F1F463 +:1018E000A9014370552781E090E002C0880F991F3D +:1018F0004A95E2F79A68E8CFC9019057811590415F +:1019000020F4C9019F7090620895C9019058811513 +:10191000904120F4C9019F70906A0895203E3105DE +:10192000E0F4203C310558F52133310509F470C04D +:1019300048F42932310509F464C02A32310509F42A +:101940006EC074C029333105F1F022383105D9F069 +:101950002533310509F44EC069C0233E310589F1B4 +:1019600038F4203E3105C1F0223E3105E1F05EC081 +:10197000263E310569F1273E3105A9F157C0C9015D +:101980000E94CC0B08958091EA0180FD02C081FF86 +:101990004DC080EE90E04BC08091EA0180FFF9CF0E +:1019A00089E390E044C08091EA0182FF0EC08091FB +:1019B000EA0184FF03C080E090E039C083EE90E04C +:1019C00036C08091EA0182FFF2CF82EE90E02FC014 +:1019D0008091EA0183FF0BC08091EA0184FDEBCF87 +:1019E00087EE90E024C08091EA0183FFF5CF86EE78 +:1019F00090E01DC08091EA0185FF07C089E290E078 +:101A000016C08091EA0185FFF9CF85E390E00FC011 +:101A10008091EA0186FF07C08AE290E008C08091C9 +:101A2000EA0186FFF9CF81E390E001C0C9010E947D +:101A3000FA0A0895089580916D0108959FB7F8946A +:101A400010925C019FBF9091F001943009F058C052 +:101A50009091E9009F702091EC0020FF02C020E8E7 +:101A600001C020E0292B94E09093E9009091EB00D5 +:101A700090FF43C09091EE0097FF3FC090915A01B4 +:101A8000992321F09091E80095FF37C010925A01F8 +:101A900096E03091E80035FD15C03091F00134300A +:101AA00061F53091EB0035FD28C0915021F481E0C3 +:101AB00080935A0122C0EFE9FFE03197F1F700C0AF +:101AC0000000E7CF8093F1008091E80085FD0AC017 +:101AD0008091E80080FFFCCF8091E8008E778093B2 +:101AE000E80006C08FB7F89491E090935C018FBF37 +:101AF0002F702093E90080E008952F702093E90073 +:101B00008FEF0895CF93DF9300D01F92CDB7DEB74C +:101B10002091F001243019F523E029839B838A83E7 +:101B20002093E9008FEF9091E800815095FD06C069 +:101B300095ED9A95F1F700008111F5CF8091E800BD +:101B400085FF0DC040E050E063E070E0CE010196FB +:101B50000E9451108091E8008E778093E8000F90EA +:101B60000F900F90DF91CF910895CF93DF9300D026 +:101B70001F92CDB7DEB72091F001243021F522E08D +:101B800029839B838A8383E08093E9008FEF909180 +:101B9000E800815095FD06C095ED9A95F1F700009B +:101BA0008111F5CF8091E80085FF0DC040E050E045 +:101BB00063E070E0CE0101960E9451108091E80030 +:101BC0008E778093E8000F900F900F90DF91CF9168 +:101BD00008952091F0012430F1F422E02093E900EF +:101BE0002FEF3091E800215035FD06C035ED3A95D4 +:101BF000F1F700002111F5CF2091E80025FF0BC07F +:101C000040E050E065E070E00E9451108091E800F3 +:101C10008E778093E8000895CF93DF93EC01809155 +:101C2000F001843009F047C080910C018823E1F075 +:101C300080910D018823C1F085E08093E9008FEF4A +:101C40009091E800815095FD06C095E19A95F1F7D5 +:101C500000008111F5CF8091E80085FF2CC040E0A5 +:101C600050E060E170E017C081E08093E9008FEF01 +:101C70009091E800815095FD06C095ED9A95F1F799 +:101C800000008111F5CF8091E80085FF14C040E08D +:101C900050E068E070E0CE010E9451108091E800B1 +:101CA0008E778093E80080E1FE01ADE5B1E0019020 +:101CB0000D928A95E1F7DF91CF91089583E993E042 +:101CC0000E9455078091EF01811109C00E94E31124 +:101CD0000E9440128091E20084608093E2000895A7 +:101CE0008FE893E00E9455071092EF0108958BE86A +:101CF00093E00C94550787E893E00E9455070C94F5 +:101D0000F52B83E893E00E9455070E94CF210E94A3 +:101D1000FB2B0E94DC140C941A0D80915B018F5FE9 +:101D200080935B0162E30E94692D911135C010928E +:101D30005B0180915C01882379F18091F00184300E +:101D400049F58091E9008F709091EC0090FF02C0FE +:101D500090E801C090E0982B84E08093E9008091A6 +:101D6000EB0080FF14C08091EE0087FF10C08091CF +:101D7000E80085FF03C01092F100F9CF8091E800E0 +:101D800080FF05C08091E8008E778093E8009F7007 +:101D90009093E90010925C01089542E061EC81E0CB +:101DA0000E945D1142E061EC82E00E945D1142E020 +:101DB00061EC83E00E945D1142E261EC84E00E94EC +:101DC0005D1142E161EC85E00C945D118091F201BE +:101DD000833009F455C030F4813071F0823009F459 +:101DE0008EC008958A3009F47AC08B3009F460C03F +:101DF000893009F09CC020C08091F101813A09F03E +:101E000096C08091E800877F8093E8008091F5017B +:101E10009091F601892B21F060E080E090E003C012 +:101E200060E18DE591E070E00E949A108091E800F9 +:101E30008B778093E80008958091F101813209F059 +:101E400076C08091F5019091F601009719F0049702 +:101E500009F06DC08091E800877F8093E800809151 +:101E6000E80082FD05C08091F0018111F8CF5FC0CC +:101E70008091F10080936D018091E8008B7753C0D1 +:101E80008091F101813A09F052C08091F501909161 +:101E9000F601892B09F04BC08091E800877F809381 +:101EA000E8008091E80080FFFCCF80910C0136C0F3 +:101EB0008091F1018132D9F58091F5019091F6017F +:101EC000892BA9F58091E800877F8093E8000E9424 +:101ED00092118091F30180930C010C94A11A8091CE +:101EE000F101813221F58091E800877F8093E8003D +:101EF0000E9492118091F40180936E010895809167 +:101F0000F101813AA1F48091E800877F8093E80095 +:101F10008091E80080FFFCCF80916E018093F100FA +:101F20008091E8008E778093E8000C9492110895D8 +:101F300084B7877F84BF88E10FB6F89480936000F0 +:101F4000109260000FBE90E080E80FB6F894809386 +:101F50006100909361000FBE0E9465150E94E3111D +:101F60000E9440128091E20084608093E2008EE142 +:101F70009DE00E940E2178940E94BA140E94671579 +:101F800082E091E00E94D7140E94E32B82E793E065 +:101F90000E9455078091F001853089F48EE693E028 +:101FA0000E9455070E9492218091EE01882391F3AF +:101FB0000E94BA21882371F30E943B10EBCF0E944C +:101FC0009515E8CF292F332723303105A9F06CF47C +:101FD0002130310509F442C02230310509F043C0F7 +:101FE0008DE890E02BEC33E042C021323105C9F09E +:101FF0002232310519F137C099278130910541F01E +:102000008230910541F0892B71F5E7ECF3E005C0D2 +:10201000EFEAF3E002C0E7E9F3E0849190E09F018A +:1020200026C0653000F5E62FF0E0EE0FFF1FEB5DF8 +:10203000FE4F2081318189E090E019C0653098F42D +:10204000E62FF0E0DF01AA0FBB1FA55EBE4F2D916A +:102050003C91EA5EFE4F808190E009C082E190E011 +:1020600028E534E004C080E090E020E030E0FA01B0 +:1020700031832083089580E189BD82E189BD09B45F +:1020800000FEFDCF8091D8008F7D8093D800809195 +:10209000E00082608093E0008091E00081FDFCCF51 +:1020A0000895CF92DF92EF92FF920F931F93CF93F9 +:1020B000DF937C018B01EA010E94B311811131C0D1 +:1020C000209731F088819981081B190BE80EF91EC1 +:1020D000C12CD12C0115110519F18091E80085FD65 +:1020E00014C08091E8008E778093E800209741F03B +:1020F000888199818C0D9D1D9983888385E011C00D +:102100000E94B311882331F30CC0F70181917F0144 +:102110008093F10001501109FFEFCF1ADF0ADACFE7 +:1021200080E0DF91CF911F910F91FF90EF90DF90B2 +:10213000CF9008952091F7013091F80126173707C5 +:1021400048F06115710539F42091E8002E7720934D +:10215000E80001C0B901FC0120E061157105B9F189 +:102160008091F001882309F440C0853009F43FC014 +:102170008091E80083FD3DC08091E80082FF06C0A9 +:102180008091E80082FF26C080E008958091E800F9 +:1021900080FFE3CF2091F3008091F20090E0922B3A +:1021A0006115710551F08830910538F42191209323 +:1021B000F100615071090196F3CF21E0089709F011 +:1021C00020E08091E8008E778093E800C6CF21114F +:1021D000C7CFD6CF8091F001882339F0853039F010 +:1021E0008091E80083FFCCCF04C082E0089583E0B3 +:1021F000089581E008952091F7013091F8012617A4 +:10220000370748F06115710539F42091E8002E7701 +:102210002093E80001C0B901FC0120E061157105BF +:10222000C1F18091F001882309F441C0853009F49F +:1022300040C08091E80083FD3EC08091E80082FFAD +:1022400006C08091E80082FF27C080E00895809159 +:10225000E80080FFE3CF2091F3008091F20090E04E +:10226000922B6115710559F08830910540F4249145 +:102270002093F1003196615071090196F2CF21E06F +:10228000089709F020E08091E8008E778093E800BD +:10229000C5CF2111C6CFD5CF8091F001882339F069 +:1022A000853039F08091E80083FFCBCF04C082E015 +:1022B000089583E0089581E00895982F973058F5A8 +:1022C0009093E900981739F07091EC002091ED009F +:1022D0005091F00003C0242F762F50E021FF19C049 +:1022E0003091EB003E7F3093EB003091ED003D7F6D +:1022F0003093ED003091EB0031603093EB00709340 +:10230000EC002093ED005093F0002091EE0027FFA9 +:1023100007C09F5FD3CF8F708093E90081E008955D +:1023200080E008958091F10187FD05C08091E8006B +:1023300080FF0EC012C08091E80082FD05C0809130 +:10234000F0018111F8CF08958091E8008B7708C0E3 +:102350008091F0018111EACF08958091E8008E7795 +:102360008093E80008958091E4009091E50045E6AF +:102370002091EC0020FF21C02091E80020FD21C029 +:102380002091F001222389F0253089F02091EB0083 +:1023900025FD0FC02091E4003091E5002817390792 +:1023A00039F3415041F0C901E3CF82E0089583E061 +:1023B000089581E0089584E008952091E80022FFC7 +:1023C000DFCF80E008950E9451120E945912E0EE82 +:1023D000F0E0808181608083E8EDF0E080818F779C +:1023E000808319BCA7EDB0E08C918E7F8C938081A7 +:1023F0008F7E80831092EF0108950F931F93CF93E8 +:10240000DF930E9451120E945912C8EDD0E08881DA +:102410008F77888388818068888388818F7D88838F +:1024200019BC1092F0011092EC011092EE01109282 +:10243000ED0100EE10E0F80180818B7F80838881C0 +:102440008160888342E060E080E00E945D11E1EEFF +:10245000F0E080818E7F8083E2EEF0E08081816019 +:102460008083808188608083F80180818E7F808373 +:10247000888180618883DF91CF911F910F910895AA +:10248000E8EDF0E080818F7E8083E7EDF0E08081F1 +:102490008160808384E082BF81E08093EF010C94AF +:1024A000FD11E8EDF0E080818E7F80831092E200E4 +:1024B00008951092DA001092E10008951F920F9291 +:1024C0000FB60F9211242F933F934F935F936F9307 +:1024D0007F938F939F93AF93BF93EF93FF938091DD +:1024E000E10082FF0BC08091E20082FF07C0809173 +:1024F000E1008B7F8093E1000E948D0E8091DA00D5 +:1025000080FF1FC08091D80080FF1BC08091DA003F +:102510008E7F8093DA008091D90080FF0DC080E12A +:1025200089BD82E189BD09B400FEFDCF81E08093C1 +:10253000F0010E945E0E05C019BC1092F0010E94CD +:10254000700E8091E10080FF19C08091E20080FF51 +:1025500015C08091E2008E7F8093E2008091E200BE +:1025600080618093E2008091D80080628093D800DF +:1025700019BC85E08093F0010E947B0E8091E10000 +:1025800084FF30C08091E20084FF2CC080E189BDCF +:1025900082E189BD09B400FEFDCF8091D8008F7D16 +:1025A0008093D8008091E1008F7E8093E10080913C +:1025B000E2008F7E8093E2008091E2008160809350 +:1025C000E2008091EC01882311F084E007C0809143 +:1025D000E30087FF02C083E001C081E08093F00147 +:1025E0000E94810E8091E10083FF29C08091E2006A +:1025F00083FF25C08091E100877F8093E10082E026 +:102600008093F0011092EC018091E1008E7F809325 +:10261000E1008091E2008E7F8093E2008091E200F1 +:1026200080618093E20042E060E080E00E945D1102 +:102630008091F00088608093F0000E94770EFF91F7 +:10264000EF91BF91AF919F918F917F916F915F912A +:102650004F913F912F910F900FBE0F901F901895A3 +:102660001F920F920FB60F9211242F933F934F9307 +:102670005F936F937F938F939F93AF93BF93CF930A +:10268000EF93FF93C091E900CF708091EC0010921E +:10269000E9008091F000877F8093F00078940E9499 +:1026A0006C131092E9008091F00088608093F00034 +:1026B000C093E900FF91EF91CF91BF91AF919F91AE +:1026C0008F917F916F915F914F913F912F910F90DB +:1026D0000FBE0F901F9018951F93CF93DF93CDB728 +:1026E000DEB7AA970FB6F894DEBF0FBECDBFE1EFFD +:1026F000F1E08091F100819321E0E93FF207C9F711 +:102700000E94E60E8091E80083FF1CC12091F10138 +:102710003091F201832F90E08A30910508F012C1C8 +:10272000FC01EA5AFF4F0C94892D203881F02238A1 +:1027300009F008C18091F5018F708093E9008091C4 +:10274000EB0085FB882780F91092E90006C0809194 +:10275000ED019091EE01911182609091E800977FD8 +:102760009093E8008093F1001092F100C5C0822F91 +:102770008D7F09F0E7C0222319F0223061F0E2C01A +:102780008091F301813009F0DDC0333009F080E041 +:102790008093EE0128C08091F301811124C0209123 +:1027A000F5012F7009F4CEC02093E9008091EB0071 +:1027B00080FF19C08091EB00333011F4806211C0AA +:1027C00080618093EB0081E090E0022E01C0880FD1 +:1027D0000A94EAF78093EA001092EA008091EB00F5 +:1027E00088608093EB001092E9008091E800877F79 +:1027F00086C02111A7C01091F3011F778091E300DB +:102800008078812B8093E3008091E800877F80931C +:10281000E8000E9492118091E80080FFFCCF809137 +:10282000E30080688093E300112311F083E001C08E +:1028300082E08093F00186C02058223008F082C0E8 +:102840008091F3019091F4018C3D23E0920779F59A +:1028500083E08A838AE289834FB7F894DE01139676 +:1028600020E03EE051E2E32FF0E050935700E49186 +:1028700020FF03C0E295EF703F5FEF708E2F90E076 +:10288000EA3010F0C79601C0C0968D939D932F5FDC +:10289000243149F74FBF8091E800877F8093E8009B +:1028A0006AE270E0CE0101960E949A1014C0AE0157 +:1028B0004F5F5F4F6091F5010E94E20F009709F4AE +:1028C00041C02091E800277F2093E800BC01898166 +:1028D0009A810E94FB108091E8008B778093E8003A +:1028E00031C0203879F58091E800877F8093E80037 +:1028F0008091EC018093F1008091E8008E778093C5 +:10290000E8000E9492111EC021111CC09091F30199 +:102910009230C0F48091E800877F8093E800909324 +:10292000EC010E9492118091EC01811104C0809110 +:10293000E30087FF02C084E001C081E08093F001E2 +:102940000E94CD0E8091E80083FF0AC08091E800CC +:10295000877F8093E8008091EB0080628093EB009A +:10296000AA960FB6F894DEBF0FBECDBFDF91CF9110 +:102970001F910895CF938091F0018823B1F0809149 +:10298000E9008F709091EC0090FF02C090E801C0C8 +:1029900090E0C92FC82B1092E9008091E80083FDD8 +:1029A0000E946C13CF70C093E900CF91089590936B +:1029B0007401809373010895E0917301F0917401A3 +:1029C000309721F00190F081E02D099480E0089586 +:1029D000FF920F931F93CF93DF938C01E0917301CC +:1029E000F0917401309799F10280F381E02D0995FF +:1029F0008091D70182FF2BC080FF04C08DE895E055 +:102A00000E945507E80180E1F82E07E815E0809163 +:102A1000D70180FF0BC088811F928F931F930F9364 +:102A20000E94EE070F900F900F900F90FA9421964E +:102A3000F110EDCF8091D70180FF09C085E895E0C6 +:102A4000DF91CF911F910F91FF900C945507DF916B +:102A5000CF911F910F91FF900895E0917301F09134 +:102A60007401309721F00480F581E02D09940895D8 +:102A700020917101309172018217930771F0909348 +:102A8000720180937101E0917301F09174013097AC +:102A900021F00680F781E02D0994089520916F01BF +:102AA000309170018217930771F0909370018093B9 +:102AB0006F01E0917301F0917401309721F000846F +:102AC000F185E02D0994089508950C9464150E94F1 +:102AD000D1210E9465090C949722CF93C82F809131 +:102AE000D70182FF1EC080FF04C086EA95E00E94E5 +:102AF00055078091D70180FF0CC01F92CF9321EA28 +:102B000035E03F932F930E94EE070F900F900F90A8 +:102B10000F908091D70180FF04C08FE995E00E945B +:102B200055078C2FCF910C941A0DCF92DF92EF9214 +:102B3000FF920F931F93CF93DF93CDB7DEB72B9701 +:102B40000FB6F894DEBF0FBECDBF0E94820936E7F4 +:102B5000E32E31E0F32E00E010E0C02E802F0E9423 +:102B6000AD0AF701D1907F01D826B1F40F5F1F4F56 +:102B70000E30110591F78FEF89838A831B820E94A3 +:102B8000DA218160782F9D838C8349815A816B8102 +:102B90008D810E94381641C09091D70191FF04C0E9 +:102BA0008B870E94B30A8B8520E030E04D2D50E0EA +:102BB000922FBA01022E02C0759567950A94E2F72A +:102BC00060FF25C02E83CF82EE24E394F12C02C057 +:102BD000EE0CFF1C9A95E2F790E08E219F2121E0F8 +:102BE000892B09F420E028870E94DA218160782F60 +:102BF0009A8789874E815F8168858A850E94381609 +:102C0000F801EA58FE4F80818E25808306C02F5F31 +:102C10003F4F2630310561F6A9CF0E94052610915D +:102C200075010E94DC141817A1F00E94DC14809337 +:102C300075012B960FB6F894DEBF0FBECDBFDF91A6 +:102C4000CF911F910F91FF90EF90DF90CF900C9458 +:102C50006D152B960FB6F894DEBF0FBECDBFDF917A +:102C6000CF911F910F91FF90EF90DF90CF9008953B +:102C7000CF93DF93CDB7DEB72B970FB6F894DEBFB7 +:102C80000FBECDBF4F83588769877A878B87DE0158 +:102C9000119686E0FD0111928A95E9F785E0FE0123 +:102CA000379601900D928A95E1F749815A816B819F +:102CB0007C818D819E810E946D1D2B960FB6F894AC +:102CC000DEBF0FBECDBFDF91CF910895CF93C82F48 +:102CD000882309F4C1C0823859F40E94DC1481FDB4 +:102CE000BBC089E30E940C200E94E82089E30CC04D +:102CF000833879F40E94DC1480FDAEC083E50E9425 +:102D00000C200E94E82083E50E945D20CF910C9466 +:102D1000E820843859F40E94DC1482FD9DC087E4C9 +:102D20000E940C200E94E82087E4EECF8CEF8C0FED +:102D3000813A48F48C2F0E948E2A81118DC08C2FED +:102D40000E940C20E3CF80E28C0F883048F4C770DB +:102D500081E001C0880FCA95EAF70E94AF20D6CF64 +:102D60008BE58C0F833078F4C53A29F0C63A31F4FC +:102D700082E890E005C081E890E002C083E890E03E +:102D8000CF910C94381588E58C0F833108F064C01E +:102D9000C83A39F1C93A41F1CA3A49F1CB3A51F14D +:102DA000CC3A59F1CD3A61F1C03B69F1CE3A71F1BB +:102DB000CF3A79F1C13B81F1C23B89F1C33B91F13B +:102DC000C43B99F1C53BA1F1C63BA9F1C73BB1F1A9 +:102DD000C83BB9F1C93BC1F1CA3BC9F58AE292E0EF +:102DE00038C082EE90E035C089EE90E032C08AEEC5 +:102DF00090E02FC085EB90E02CC086EB90E029C0DE +:102E000087EB90E026C08CEC90E023C08DEC90E046 +:102E100020C083E891E01DC08AE891E01AC082E9F1 +:102E200091E017C084E991E014C081E292E011C002 +:102E300083E292E00EC084E292E00BC085E292E071 +:102E400008C086E292E005C087E292E002C080E01E +:102E500090E0CF910C944E15CF910895882309F4FA +:102E60004BC0823859F40E94DC1481FF45C089E3CD +:102E70000E940C200E94E82089E30CC0833871F482 +:102E80000E94DC1480FF38C083E50E940C200E9461 +:102E9000E82083E50E945D200C94E820843859F4F2 +:102EA0000E94DC1482FF28C087E40E940C200E944C +:102EB000E82087E4EFCF9CEF980F913A58F390E227 +:102EC000980F983050F4877091E001C0990F8A955F +:102ED000EAF7892F0E94B520DFCF9BE5980F93304A +:102EE00020F480E090E00C943815885A833120F467 +:102EF00080E090E00C944E150895882321F00E9404 +:102F0000AF200C94E8200895882321F00E94B5207A +:102F10000C94E8200895CF92DF92EF92FF920F93E6 +:102F20001F93CF93DF93CDB7DEB728970FB6F894F2 +:102F3000DEBF0FBECDBF8C0185E0F801DE0111962A +:102F400001900D928A95E1F7F80140813181F2807C +:102F5000258122952F7083819481892B31F03F3F09 +:102F600031F481E04F3F19F403C081E001C080E0FB +:102F700080FDC6C249833A8389819A812F830E944A +:102F8000CA1F9E8388870E94C91F0E949C1E4E8173 +:102F9000E42FE295EF70F0E0E05AFF4F2F81688553 +:102FA0000C94892D842F807F142F1F70882311F09B +:102FB0001295107FFF2059F0112309F456C2812F7A +:102FC00068870E94BF200E94E82068854EC2862F35 +:102FD0000E942E17112309F493C2812F0E94C5204D +:102FE00028960FB6F894DEBF0FBECDBFDF91CF910C +:102FF0001F910F91FF90EF90DF90CF900C94E820FD +:10300000342F307F842F8F70303211F08295807F83 +:10301000662319F0613019F12CC0FF20B1F0222392 +:1030200009F494C1213009F091C128960FB6F894A3 +:10303000DEBF0FBECDBFDF91CF911F910F91FF90EB +:10304000EF90DF90CF900C94CF20222319F0213005 +:1030500009F456C28E830E94D2208E818AC1FF203D +:1030600021F0263008F04CC271C1253008F048C26A +:1030700080C1FF2021F0222309F468C1F6C1222378 +:1030800009F477C106C2242F26952695237030E0D7 +:103090002115310521F021303105C9F031C2FF2061 +:1030A00021F0862F942F937002C080E090E0289644 +:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1030C0000F91FF90EF90DF90CF900C943815FF2078 +:1030D00021F0862F942F937002C080E090E0289614 +:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 +:1030F0000F91FF90EF90DF90CF900C944E15862F9C +:10310000FF2019F00E948B2402C00E94F32428960D +:103110000FB6F894DEBF0FBECDBFDF91CF911F91E8 +:103120000F91FF90EF90DF90CF900C947825842F33 +:10313000837009F076C0F110E3C1262F2295269501 +:103140002770220F220F862F8F70C82ED12CE12CD2 +:10315000F12C022E04C0CC0CDD1CEE1CFF1C0A94CA +:10316000D2F764FF10C06FE070E080E090E004C030 +:10317000660F771F881F991F2A95D2F76095709563 +:103180008095909503C060E070E0CB01242F2695D8 +:1031900026952370422F50E042305105D1F0433044 +:1031A000510559F16C297D298E299F2941305105FE +:1031B00041F128960FB6F894DEBF0FBECDBFDF9168 +:1031C000CF911F910F91FF90EF90DF90CF900C94D3 +:1031D000C11E6C297D298E299F2928960FB6F89447 +:1031E000DEBF0FBECDBFDF91CF911F910F91FF903A +:1031F000EF90DF90CF900C94DB1E0E94C11EC701A0 +:10320000B60128960FB6F894DEBF0FBECDBFDF9192 +:10321000CF911F910F91FF90EF90DF90CF900C9482 +:10322000A71EFF2019F0842F817001C08695882386 +:1032300009F466C1262F229526952770220F220FAA +:10324000862F8F70C82ED12CE12CF12C022E04C0B9 +:10325000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DE +:103260006FE070E080E090E004C0660F771F881F79 +:10327000991F2A95D2F7609570958095909503C017 +:1032800060E070E0CB01242F269526952370422F15 +:1032900050E042305105D1F04330510559F16C29CD +:1032A0007D298E299F294130510541F128960FB67D +:1032B000F894DEBF0FBECDBFDF91CF911F910F916C +:1032C000FF90EF90DF90CF900C94951F6C297D2993 +:1032D0008E299F2928960FB6F894DEBF0FBECDBF6A +:1032E000DF91CF911F910F91FF90EF90DF90CF90E2 +:1032F0000C94AF1F0E94951FC701B60128960FB608 +:10330000F894DEBF0FBECDBFDF91CF911F910F911B +:10331000FF90EF90DF90CF900C947B1F603FC9F13E +:1033200018F4603E50F49CC0623F09F461C008F498 +:103330004BC0633F09F470C093C0162F1F70842FD9 +:103340008F71FF2099F00E94141F812F28960FB6CD +:10335000F894DEBF0FBECDBFDF91CF911F910F91CB +:10336000FF90EF90DF90CF900C947D170E94351F57 +:10337000812F28960FB6F894DEBF0FBECDBFDF9128 +:10338000CF911F910F91FF90EF90DF90CF900C9411 +:103390008417FF20A9F0253008F0B2C0842F8F7168 :1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C94091F19 -:1033C000FF2091F0842F8F7128960FB6F894DEBFFE -:1033D0000FBECDBFDF91CF911F910F91FF90EF9066 -:1033E000DF90CF900C94D31E28960FB6F894DEBFD2 -:1033F0000FBECDBFDF91CF911F910F91FF90EF9046 -:10340000DF90CF900C94C91EFF20A1F0222309F475 -:10341000B1CF862F28960FB6F894DEBF0FBECDBF72 -:10342000DF91CF911F910F91FF90EF90DF90CF90A0 -:103430000C943A16222309F4B1CF862F28960FB6A2 -:10344000F894DEBF0FBECDBFDF91CF911F910F91DA -:10345000FF90EF90DF90CF900C9402174F70C8014F -:103460000E94F70728960FB6F894DEBF0FBECDBFB7 -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:103480000C94EE1D4F70C80128960FB6F894DEBF5D -:103490000FBECDBFDF91CF911F910F91FF90EF90A5 -:1034A000DF90CF900C948D0B28960FB6F894DEBF6A -:1034B0000FBECDBFDF91CF911F910F91FF90EF9085 -:1034C000DF90CF9008950E94A0200E9475200E9456 -:1034D000BC200E947A260E944C2580E090E00E9449 -:1034E0000C1580E090E00C9422150E9490200C9422 -:1034F000631A0E949E1F292F22952F7030E02C30D6 -:1035000031054CF42A3031056CF422503109223057 -:10351000310590F407C02C30310551F02F303105C2 -:1035200039F00AC0803E10F0803F31F481E0089508 -:1035300093FB882780F9089580E00895CF93DF9367 -:1035400000D000D01F92CDB7DEB70F900F900F9034 -:103550000F900F90DF91CF910895CF93DF9300D01C -:1035600000D000D0CDB7DEB726960FB6F894DEBFF8 -:103570000FBECDBFDF91CF9108951F93CF93DF93FF -:10358000C091840116E080918501C81799F0D0E0C0 -:103590001C9FF0011D9FF00D1124EA57FE4F408142 -:1035A000518162817381848195810E94AD1A219637 -:1035B000C770E9CFDF91CF911F9108954091B60177 -:1035C0005091B7016091B8017091B9018091BA0131 -:1035D0009091BB010C94AD1ACF938091BB01829561 -:1035E0008F7009F05FC08091B801882309F45AC038 -:1035F00020918401A09185016091B6017091B7017D -:103600008091B9019091BA0131E06F3F09F030E04B -:10361000B32FC6E02A1709F445C0009721F07F3F79 -:1036200021F44B2F03C041E001C040E030E040FDF9 -:1036300035C0C29FF001C39FF00D1124EA57FE4F21 -:10364000418174132BC04081641328C04281411111 -:1036500025C0438154814817590710F4415051093E -:10366000481B590B483C5105C8F48091BB018F7031 -:1036700080618093BB0186E0829FF001839FF00D03 -:103680001124E557FE4F80818F708061808386EB27 -:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE -:1036A0002770B8CFCF910895CF92DF92EF92FF921B -:1036B0000F931F93CF93DF93CDB7DEB762970FB60B -:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE -:1036D0001D9601900D928A95E1F7D8014C911196B3 -:1036E0005C91119712966C9112971396ED90FC9045 -:1036F00014977091B601E091B7012091B901309112 -:10370000BA012115310531F0EF3F31F481E07F3FFF -:1037100019F403C081E001C080E0B82FB170CB2E56 -:1037200080FD6CC1D090B801DD2009F4F5C0F091A6 -:10373000BB01E216F30638F0C701821B930B883CED -:10374000910548F09BC0209530952E0D3F1D283CDB -:10375000310508F093C08F2F807F09F052C0E51328 -:1037600014C0741312C0D62E61110FC0FF70F06127 -:10377000F093BB010E94DE1A86EB91E00E945F1776 -:103780008091BB01F80185836CC1EF2831F05F3F68 -:1037900031F481E04F3F19F403C081E001C080E0C3 -:1037A00080FD03C081E0862701C080E0F82FF17022 -:1037B000FF2E80FF1CC0809184012091850136E09E -:1037C000821709F428C190E0389FF001399FF00D6D -:1037D0001124EA57FE4F7181571306C070814713B9 -:1037E00003C07281671303C001968770E9CFD62E9C -:1037F000662309F436C18091BB0181608093BB01CF -:1038000053C0E51308C0741306C0611104C0D80189 -:103810001596FC93AEC04D875E878D859E856A8B1D -:103820000E94791A6A89882329F1D62E662311F11C -:103830002091BB01822F82958F7090E002970CF44B -:1038400060C08091B6019091B70198878F831986E7 -:10385000FB86EA862C87CE01079651C0E51731F129 -:103860004D875E878D859E856A8B0E94791A6A894D -:1038700081112EC0C8010E945F17A4C08F2F807FC6 -:1038800069F77E2DF98AE88A89890E949E1A86EB5B -:1038900091E00E945F17E6EBF1E086E0DF011D9208 -:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9 -:1038B0006111D6CFD8011596FC93C8010E945F17FD -:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9 -:1038D000D62E662379F22091BB01822F82958F70BC -:1038E00090E0029774F08091B6019091B7019A83AD -:1038F00089831B82FD82EC822E83CE0101960E9479 -:103900005F1786E0F801A6EBB1E001900D928A9571 -:10391000E1F70E94EC1A6FC0E216F30628F0C70127 -:10392000821B930B9C0104C0209530952E0D3F1DEA -:10393000283C310508F052C0D62E662309F49ACFF0 -:10394000E5132CC074132AC08091BB0180FD1DC0FB -:10395000982F92959F70C9F0D80115968C93159762 -:103960009F3039F09F5F9295907F8F70892B1596CD -:103970008C93C8010E945F1786E0F801A6EBB1E0C6 -:1039800001900D928A95E1F736C086E0F801A6EB2A -:10399000B1E001900D928A95E1F763C04D875E8793 -:1039A0008D859E850E94791A882379F086E0F8013A -:1039B000A6EBB1E001900D928A95E1F70E94EC1A16 -:1039C0000E94DE1ADD24D3944CC08091BB0181603B -:1039D0008093BB01C8010E945F1743C07E2DF98A06 -:1039E000E88A89890E949E1AE6EBF1E086E0DF0111 -:1039F0001D928A95E9F70E94DE1A33C0662309F406 -:103A000039CF4D875E878D859E850E94791A8823E0 -:103A100009F430CFCBCF4D875E878D859E850E9480 -:103A20009E1F292F22952F7030E0223031052CF473 -:103A30009F7041F0811106C00CC0243031052CF478 -:103A40009F7049F4805E883020F0C8010E945F17A3 -:103A5000CF2CDC2C06C0D80115969C91907F91F755 -:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96 -:103A7000DF91CF911F910F91FF90EF90DF90CF904A -:103A800008951F93CF93DF93CDB7DEB72C970FB672 -:103A9000F894DEBF0FBECDBF4F83588769877A8702 -:103AA0008B879C87CE0107960E94541B8823C1F008 -:103AB0002F8138858A859B85892B31F03F3F11F016 -:103AC00080E003C02F3FE1F781E0811147C04F81C3 -:103AD000588569857A858B859C850E94AD1A3EC084 -:103AE00086E0FE013796DE01119601900D928A95CF -:103AF000E1F7FF81E8854A855B854115510531F085 -:103B0000EF3F31F481E0FF3F19F403C081E001C0D1 -:103B100080E080FD23C02091850130E0C90101963D -:103B2000877099276091840170E086179707F1F1FB -:103B3000F983EA835D834C8396E0929FD001939F43 -:103B4000B00D1124AA57BE4FFE01319601900D927F -:103B50009A95E1F7809385010E94BD1A16E0809145 -:103B6000840190918501891779F1189FC001112472 -:103B70008A579E4F0E94541B882331F1E0918401A3 -:103B80001E9FF0011124EA57FE4F4081518162814E -:103B90007381848195810E94AD1A8091840190E0A7 -:103BA00001968770992780938401D9CF0E94751A56 -:103BB0001092850110928401E6EBF1E086E0DF01CE -:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE -:103BD0000FBECDBFDF91CF911F910895EF92FF925D -:103BE0000F931F93CF93DF939C01009709F471C04B -:103BF000F12CEE24E394E9012196F90184918437B4 -:103C000040F4843008F056C0813081F0823021F1D8 -:103C100060C0853709F449C0C0F19CE7980F903720 -:103C200008F057C08F770E94021746C089010E5FC7 -:103C30001F4FFE01849190E2980F983050F48770E6 -:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067 -:103C500015C00E943A1614C089010E5F1F4FFE0165 -:103C6000849190E2980F983068F48770FE2D01C01F -:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F -:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2 -:103C9000C491CC2341F08FE99FE00197F1F700C078 -:103CA0000000C150F6CFE90107C0FE01F490E90120 -:103CB000229602C00E943A168F2D882341F0EFE928 -:103CC000FFE03197F1F700C000008150F6CF9E0170 -:103CD00092CFDF91CF911F910F91FF90EF900895B8 -:103CE00008956093C0017093C1018093C2019093C5 -:103CF000C3010C94631A0F931F930091C00110919C -:103D0000C1012091C2013091C301062B172B282B32 -:103D1000392B0093C0011093C1012093C20130934D -:103D2000C3011F910F910C94631A0F931F9300917D -:103D3000C0011091C1012091C2013091C30106233D -:103D40001723282339230093C0011093C101209326 -:103D5000C2013093C3011F910F910C94631A0F930A -:103D60001F930091C0011091C1012091C2013091B7 -:103D7000C30106271727282739270093C00110936E -:103D8000C1012093C2013093C3011F910F910C9484 -:103D9000631A1092BC011092BD011092BE011092E4 -:103DA000BF010C94631A41E050E060E070E004C091 -:103DB000440F551F661F771F8A95D2F74093BC01A9 -:103DC0005093BD016093BE017093BF010C94631AC0 -:103DD00041E050E060E070E004C0440F551F661FF2 -:103DE000771F8A95D2F78091BC019091BD01A09177 -:103DF000BE01B091BF01842B952BA62BB72B8093CE -:103E0000BC019093BD01A093BE01B093BF010C947F -:103E1000631A41E050E060E070E004C0440F551FB9 -:103E2000661F771F8A95D2F74095509560957095DB -:103E30008091BC019091BD01A091BE01B091BF01E4 -:103E400084239523A623B7238093BC019093BD01BF -:103E5000A093BE01B093BF010C94631A41E050E0FF -:103E600060E070E004C0440F551F661F771F8A95FD -:103E7000D2F78091BC019091BD01A091BE01B0919B -:103E8000BF0184279527A627B7278093BC0190936D -:103E9000BD01A093BE01B093BF010C94631A0F93B0 -:103EA0001F930091BC011091BD012091BE01309182 -:103EB000BF01062B172B282B392B0093BC01109325 -:103EC000BD012093BE013093BF011F910F910C944F -:103ED000631A0F931F930091BC011091BD012091B3 -:103EE000BE013091BF0106231723282339230093F5 -:103EF000BC011093BD012093BE013093BF011F91FF -:103F00000F910C94631A0F931F930091BC011091B1 -:103F1000BD012091BE013091BF0106271727282738 -:103F200039270093BC011093BD012093BE0130934B -:103F3000BF011F910F910C94631A0895CF92DF92E5 -:103F4000EF92FF920F931F93CF93DF93EC01C090FA -:103F5000C001D090C101E090C201F090C3018091F6 -:103F6000BC019091BD01A091BE01B091BF01C82AD2 -:103F7000D92AEA2AFB2A0FE110E0B701A601002E98 -:103F800004C076956795579547950A94D2F740FFF8 -:103F900007C0BE01802F0E94B00B8130910539F41B -:103FA0000150110950F7BE0180E00E94B00BDF9173 -:103FB000CF911F910F91FF90EF90DF90CF900895D8 -:103FC00090910C01992361F190910D01992341F198 -:103FD000982F9695969596959F3088F4E0910E01CE -:103FE000F0910F01E90FF11D877021E030E001C071 -:103FF000220F8A95EAF78181822B8183089590911F -:10400000D70190FF2DC01F928F9387ED95E09F936E -:104010008F930E94EE070F900F900F900F900895CE -:1040200040910E0150910F0120E030E09FEFFA0126 -:10403000E20FF31F6281681799F09F3F19F4611135 -:1040400001C0922F2F5F3F4F2E30310581F79F3FE8 -:1040500039F0FA01E90FF11D97FDFA958283089571 -:10406000089590910C01992369F190910D01992384 -:1040700049F1982F9695969596959F3090F4E091FA -:104080000E01F0910F01E90FF11D877021E030E082 -:1040900001C0220F8A95EAF7209581812823218388 -:1040A00008959091D70190FF1FC01F928F9389EBC5 -:1040B00095E09F938F930E94EE070F900F900F90C3 -:1040C0000F90089540910E0150910F0120E030E0D3 -:1040D000FA01E20FF31F9281981301C012822F5F41 -:1040E0003F4F2E303105A1F7089581E090E0E09137 -:1040F0000E01F0910F01E80FF91F10820196803137 -:104100009105A9F708959091D601982B9093D60127 -:10411000089580959091D60198239093D6010895A3 -:104120001092D60108959091D501982B9093D501C6 -:10413000089580959091D50198239093D501089585 -:104140001092D50108958093C40108951092C4017E -:10415000089540910E0150910F0120E030E080E081 -:10416000FA01E20FF31F918191118F5F2F5F3F4F93 -:104170002F303105A9F70895E0910E01F0910F015C -:104180008091D6018083E0910E01F0910F01808132 -:104190009091D501892B80839091C401992361F07E -:1041A000E0910E01F0910F018081892B80830E94A4 -:1041B000A92081111092C40180910E0190910F01EC -:1041C0000C94BC1490933B0180933A010895CF92D4 -:1041D000DF92EF92FF920F931F936C01EE24FF2466 -:1041E000C114D104E104F10421F46B017C0180E0ED -:1041F00001C080E133272F2D1E2D0D2D0115110536 -:104200002105310519F0885F680179019701860160 -:10421000A4E03695279517950795AA95D1F701152E -:1042200011052105310519F08C5F680179019701AD -:104230008601F2E03695279517950795FA95D1F7FF -:10424000011511052105310519F08E5F680179010D -:10425000B701A6017695679557954795452B462B4F -:10426000472B09F08F5F1F910F91FF90EF90DF9028 -:10427000CF9008958295982F9C7C96959695837300 -:1042800044E0849F90011124922B892F8A7A86958D -:104290009575990F892B08951F93CF93DF931F92E4 -:1042A000CDB7DEB799830E943A21182F9981892FC3 -:1042B0000E943A21212F30E0322F2227A901482BDA -:1042C000CA010F90DF91CF911F9108958091F00165 -:1042D000843009F11092D80120E488E190E00FB613 -:1042E000F894A895809360000FBE2093600083B778 -:1042F000817F846083BF83B7816083BF7894889512 -:1043000083B78E7F83BF88E10FB6F89480936000F7 -:10431000109260000FBE089508950895CF930E94F3 -:104320008C210E9456090E948D21C0E08C2F0E9492 -:10433000810A811105C0CF5FCE30C1F780E001C096 -:1043400081E0CF9108950C94751A82E084BD93E0CA -:1043500095BD9AEF97BD80936E0008952FB7F8949E -:104360008091D9019091DA01A091DB01B091DC013B -:104370002FBF0895CF92DF92EF92FF920F931F937A -:104380002FB7F8944091D9015091DA016091DB0187 -:104390007091DC012FBF6A017B01EE24FF248C01A8 -:1043A00020E030E0C016D106E206F30610F44150DA -:1043B0005109481B590BCA011F910F91FF90EF90B3 -:1043C000DF90CF9008951F920F920FB60F92112495 -:1043D0008F939F93AF93BF938091D9019091DA010E -:1043E000A091DB01B091DC010196A11DB11D80936C -:1043F000D9019093DA01A093DB01B093DC01BF9166 -:10440000AF919F918F910F900FBE0F901F901895B5 -:104410000E94B711F8942FEF87EA91E6215080406F -:104420009040E1F700C0000087E090EBDC01809352 -:10443000F9019093FA01A093FB01B093FC012CE0E9 -:1044400088E190E00FB6F894A895809360000FBEC5 -:1044500020936000FFCFEF92FF920F931F93CF93B3 -:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E -:10447000082F10E098010C2E02C0359527950A945C -:10448000E2F720FD05C02196C630D10599F709C095 -:104490006C2F7F2D80E00E948E0BE812F4CF81E01C -:1044A00005C0F3948EE0F812DECF80E0DF91CF916B -:1044B0001F910F91FF90EF900895CF93C82F8CE23A -:1044C0000E942B22882321F08C2FCF910C942B2239 -:1044D00080E0CF910895CF930E94B823811102C04C -:1044E0000E949E238CEF95E00E945507C5E6C150BF -:1044F00049F00E9456098FE39CE90197F1F700C04B -:104500000000F5CF85EF95E00E94550789E20E94F3 -:104510005D22811111C18AE20E945D2281110E94F7 -:104520009E2385E00E945D2281110E9408220E9444 -:10453000C3238093D70187E00E945D22882399F1ED -:104540008BE10E945D22882351F09091D70191FB6D -:10455000882780F921E0822780FB91F922C08EE034 -:104560000E945D22882351F09091D70192FB882709 -:1045700080F921E0822780FB92F913C080E10E943C -:104580005D229091D701882341F093FB882780F921 -:1045900021E0822780FB93F904C0892F809580FB5E -:1045A00090F99093D7018091D7010E94C7230E9470 -:1045B000D5238093EA0180EE0E945D22882341F09A -:1045C0008091EA01982F909590FB80F98093EA0101 -:1045D00089E30E945D22882359F09091EA0191FBC2 -:1045E000882780F921E0822780FB91F99093EA01E6 -:1045F00082EE0E945D22882359F09091EA0192FB9D -:10460000882780F921E0822780FB92F99093EA01C4 -:1046100086EE0E945D22882359F09091EA0193FB77 -:10462000882780F921E0822780FB93F99093EA01A3 -:1046300083EE0E945D22882359F09091EA0194FB59 -:10464000882780F921E0822780FB94F99093EA0182 -:1046500085E30E945D22882359F09091EA0195FB41 -:10466000882780F921E0822780FB95F99093EA0161 -:1046700081E30E945D22882359F09091EA0196FB24 -:10468000882780F921E0822780FB96F99093EA0140 -:1046900081E10E945D22882359F09091EA0197FB05 -:1046A000882780F921E0822780FB97F99093EA011F -:1046B0008091EA010E94D9238091EA0187FB882733 -:1046C00080F980930D0187E20E945D22C82F8EE160 -:1046D0000E945D228111C2608FE10E945D228111E2 -:1046E000C46080E20E945D228111C86081E20E9464 -:1046F0005D228111C06182E20E945D228111C0624F -:1047000083E20E945D228111C06484E20E945D22E6 -:10471000882311F0C06802C0CC2329F08C2F0E949E -:10472000D0236C2F03C00E94CC23682F70E080E060 -:1047300090E0CF910C94711ECF9108956DEE7EEFB5 -:1047400080E090E00E94932D60E082E090E00E9483 -:10475000852D60E083E090E00E94852D60E084E09C -:1047600090E00E94852D60E085E090E00C94852D1E -:1047700080E090E00E947F2D21E08D3E9E4F09F069 -:1047800020E0822F089582E090E00C94772D682F2E -:1047900082E090E00C94852D83E090E00C94772DDE -:1047A000682F83E090E00C94852D84E090E00C94D9 -:1047B000772D682F84E090E00C94852D8091DF01A7 -:1047C00080FF0BC06091130185E0689FB001112448 -:1047D00075956795759567952AC081FF09C06091A9 -:1047E000130185E0689FB0011124759567951FC07E -:1047F00082FF07C06091130185E0689FB00111241A -:1048000016C04091E0014423C9F06091120146179F -:1048100088F72091130185E0289F90011124429F81 -:10482000C001439F900D112470E00E94492D603813 -:10483000710540F46115710539F002C065E070E062 -:10484000862F08958FE7089581E008958091DF0114 -:1048500080FF08C06091110170E0759567957595AE -:10486000679521C081FF06C06091110170E07595C8 -:10487000679519C082FF04C06091110170E010C0FB -:104880008091E0018823C1F0609110018617A0F7A4 -:1048900090911101989FC001112470E00E94492D50 -:1048A0006038710528F46115710521F0862F08958F -:1048B0008FE7089581E0089561E070E0F4CF803FD4 -:1048C00021F40E94DE23819504C0813F29F40E94D7 -:1048D000DE238093E3010895823F21F40E94DE23CA -:1048E000819504C0833F29F40E94DE238093E20176 -:1048F0000895893F19F40E94262405C08A3F31F4A7 -:104900000E94262481958093E40108958B3F21F431 -:104910000E942624819504C08C3F29F40E942624FD -:104920008093E5010895843F21F48091E101816045 -:1049300017C0853F21F48091E101826011C0863F5C -:1049400021F48091E10184600BC0873F21F48091C4 -:10495000E101886005C0883F31F48091E101806108 -:104960008093E10108958D3F21F48091DF01816002 -:104970000BC08E3F21F48091DF01826005C08F3F24 -:1049800029F48091DF0184608093DF010895803FE6 -:1049900039F48091E30187FF6CC01092E30169C094 -:1049A000813F29F48091E3011816BCF362C0909115 -:1049B000E201823F29F497FF5CC01092E20159C0E6 -:1049C000833F19F41916CCF354C0893F41F4809108 -:1049D000E40118160CF04DC01092E4014AC08A3F61 -:1049E00029F48091E40187FF44C0F6CF8B3F39F46E -:1049F0008091E50187FF3DC01092E5013AC08C3FF0 -:104A000029F48091E5011816BCF333C0843F21F4EA -:104A10008091E1018E7F17C0853F21F48091E101F3 -:104A20008D7F11C0863F21F48091E1018B7F0BC007 -:104A3000873F21F48091E101877F05C0883F31F4F1 -:104A40008091E1018F7E8093E10113C08D3F21F4BD -:104A50008091DF018E7F0BC08E3F21F48091DF01BA -:104A60008D7F05C08F3F29F48091DF018B7F80937C -:104A7000DF018091E20181110EC08091E30181117B -:104A80000AC08091E401811106C08091E501811185 -:104A900002C01092E00108958091D70183FF7EC08B -:104AA00088E396E00E9455078091E1011F928F9361 -:104AB00083E396E09F938F930E94EE0781E396E055 -:104AC0000E9455072091E201822F992787FD90953A -:104AD0009F932F938EE296E09F938F930E94EE0711 -:104AE0008CE296E00E9455072091E301822F9927DE -:104AF00087FD90959F932F9389E296E09F938F93E4 -:104B00000E94EE0787E296E00E9455072091E4019B -:104B1000822F992787FD90959F932F9384E296E0AB -:104B20009F938F930E94EE0782E296E00E945507C2 -:104B30002091E501822F992787FD90959F932F93D0 -:104B40008FE196E09F938F930E94EE078CE196E0B1 -:104B50000E9455078091E0011F928F9389E196E0B2 -:104B60009F938F930E94EE0787E196E00E9455077E -:104B70008091DF011F928F9384E196E09F938F9342 -:104B80000E94EE0781E196E00E9455078DB79EB71F -:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C -:104BA0000E9401150E94AE219093DE018093DD01E9 -:104BB00008951F93CF93DF938091DD019091DE01E3 -:104BC0000E94BA214091E001442321F02091140178 -:104BD00030E006C0209115015AE0259F9001112474 -:104BE0008217930708F482C08091E2011091E301DB -:104BF000D091E401C091E501811107C0111105C0F8 -:104C0000D11103C0CC2309F471C04F3F19F04F5F9D -:104C10004093E001181624F40E94DE238093E20101 -:104C20008091E20187FF05C00E94DE238195809379 -:104C3000E201111624F40E94DE238093E3018091A7 -:104C4000E30187FF05C00E94DE2381958093E30185 -:104C50006091E201662339F11091E301112319F10A -:104C6000772767FD7095872F972F0E944E2C23E39F -:104C700033E343E35FE30E94B22C0E941B2C60935A -:104C8000E201612F772767FD7095872F972F0E948C -:104C90004E2C23E333E343E35FE30E94B22C0E94F4 -:104CA0001B2C6093E3011D1624F40E94262480939C -:104CB000E4018091E40187FF05C00E9426248195CC -:104CC0008093E4011C1624F40E9426248093E501BD -:104CD0008091E50187FF05C00E942624819580937D -:104CE000E501DF91CF911F910C944C25DF91CF917D -:104CF0001F910895E1EEF1E085E0DF011D928A95B4 -:104D0000E9F71092E0011092DF0108958BE598E039 -:104D10000E9455071F9281E08F931F9285E08F9329 -:104D20008DE098E09F938F930E94EE070F900F9075 -:104D30000F900F900F900F9008958330E9F128F4B1 -:104D4000813061F0823009F10895853009F462C044 -:104D500008F449C0863009F474C008952091150103 -:104D6000862F90E0820F911D8F3F910520F4620FF6 -:104D70006093150103C08FEF809315018091150199 -:104D80001F928F9386E497E072C020911401862FC2 -:104D900090E0820F911D8F3F910520F4620F609388 -:104DA000140103C08FEF80931401809114011F92AE -:104DB0008F9384E397E05BC020911301862F90E0EE -:104DC000820F911D8F3F910520F4620F60931301B4 -:104DD00003C08FEF80931301809113011F928F9373 -:104DE00081E297E044C020911201862F90E0820F6B -:104DF000911D8F3F910520F4620F6093120103C053 -:104E00008FEF80931201809112011F928F938CE09B -:104E100097E02DC020911101862F90E0820F911D07 -:104E20008F3F910520F4620F6093110103C08FEF53 -:104E300080931101809111011F928F9383EF96E06F -:104E400016C020911001862F90E0820F911D8F3F98 -:104E5000910520F4620F6093100103C08FEF8093DF -:104E60001001809110011F928F9388ED96E09F931F -:104E70008F930E94EE070F900F900F900F90089560 -:104E8000833081F128F4813059F08230D1F00895D7 -:104E9000853009F449C0B8F1863009F456C0089548 -:104EA00080911501681720F4861B8093150102C0BC -:104EB00010921501809115011F928F9389EC96E055 -:104EC00054C080911401681720F4861B809314014C -:104ED00002C010921401809114011F928F9387EBEE -:104EE00096E043C080911301681720F4861B8093DD -:104EF000130102C010921301809113011F928F932E -:104F000084EA96E032C080911201681720F4861B73 -:104F10008093120102C010921201809112011F921F -:104F20008F938FE896E021C080911101681720F4DB -:104F3000861B8093110102C0109211018091110112 -:104F40001F928F9386E796E010C08091100168173A -:104F500020F4861B8093100102C0109210018091F2 -:104F600010011F928F938BE596E09F938F930E9481 -:104F7000EE070F900F900F900F900895CF93C82FCA -:104F80001F928F9320E639E03F932F930E94EE0704 -:104F900061E070E080E090E004C0660F771F881F3A -:104FA000991FCA95D2F70E94711E0F900F900F9013 -:104FB0000F90CF910C94751ACF938D3109F465C081 -:104FC000B0F58E3009F4CBC100F5873009F49BC1F0 -:104FD000A8F4863009F06AC28091D701817F8E7F64 -:104FE0008093D70185E699E00E94550787EA9DE006 -:104FF0000E94550781E08093E70180C1883009F461 -:105000004FC08B3009F47CC151C2863109F4EDC127 -:1050100038F4803109F4B6C1813109F42DC246C299 -:10502000893109F4CBC18B3109F486C13FC2853384 -:1050300009F434C248F4873209F430C208F430C2AB -:10504000893209F42BC232C2833438F48A3308F02F -:1050500029C2883309F454C129C2833409F41EC219 -:10506000883409F023C20E94751A86E99DE00E94E7 -:1050700055079FEF23ED80E3915020408040E1F7FA -:1050800000C000000E94082239C186EB9DE00E940A -:1050900055070E94D52B0E94B0140E94EE0C2EC121 -:1050A0008BEA9DE00E94550786E79BE00E9455072A -:1050B0000E94CC231F928F9383E79BE09F938F9353 -:1050C0000E94EE0781E79BE00E9455070E94C323E0 -:1050D000C82F8EE59BE00E9455071F92CF9329E5CC -:1050E0003BE03F932F930E94EE0787E59BE00E94F1 -:1050F00055078DE49BE00E9455078C2F81701F920D -:105100008F932AE43BE03F932F930E94EE0788E4BD -:105110009BE00E9455078EE39BE00E945507C1FB70 -:10512000882780F91F928F932BE33BE03F932F93C7 -:105130000E94EE0789E39BE00E9455078DE29BE009 -:105140000E945507C2FB882780F91F928F932AE29D -:105150003BE03F932F930E94EE0788E29BE00E9482 -:1051600055078FE19BE00E945507C3FBCC27C0F990 -:105170001F92CF938CE19BE09F938F930E94EE0749 -:105180008AE19BE00E9455070E94D523C82F86E044 -:105190009BE00E9455071F92CF9321E03BE03F9395 -:1051A0002F930E94EE078FEF9AE00E94550786EE3C -:1051B0009AE00E9455078C2F81701F928F9323EEE7 -:1051C0003AE03F932F930E94EE078DB79EB78096EB -:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D -:1051E00055078AEC9AE00E945507C1FB882780F991 -:1051F0001F928F9327EC3AE03F932F930E94EE0784 -:1052000085EC9AE00E94550783EB9AE00E945507CF -:10521000C2FB882780F91F928F9320EB3AE03F93DF -:105220002F930E94EE078EEA9AE00E9455078CE9C0 -:105230009AE00E945507C3FB882780F91F928F933D -:1052400029E93AE03F932F930E94EE0787E99AE01D -:105250000E9455078DE89AE00E945507C4FB8827F5 -:1052600080F91F928F932AE83AE03F932F930E9490 -:10527000EE0788E89AE00E94550786E79AE00E94C8 -:105280005507C5FB882780F91F928F9323E73AE0E3 -:105290003F932F930E94EE0781E79AE00E94550703 -:1052A00085E59AE00E945507C6FB882780F91F9282 -:1052B0008F9322E53AE03F932F930E94EE0780E51B -:1052C0009AE00E94550788E49AE00E945507C7FBC0 -:1052D000CC27C0F91F92CF9385E49AE09F938F93D8 -:1052E0000E94EE0783E49AE00E9455078DB79EB7AF -:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9 -:105300008CE899E058C08091D701C82FC17080FF08 -:1053100009C089E89DE00E9455078091D701817FEF -:105320008E7F44C08DE79DE00E9455078091D70194 -:1053300081608093D701E2CF8091D70181FBCC2798 -:10534000C0F991E0C927C0FB81F98093D701CC2334 -:1053500019F080E79DE025C082E69DE02CC0809199 -:10536000D70182FBCC27C0F991E0C927C0FB82F9A5 -:105370008093D701CC2319F083E59DE012C083E42C -:105380009DE019C08091D70183FBCC27C0F991E043 -:10539000C927C0FB83F98093D701CC2351F087E361 -:1053A0009DE00E9455078091D70181608093D701CD -:1053B00082C08AE29DE00E945507A0CF8BE19DE06C -:1053C0000E9455078FEE9CE00E94550782EB9CE0FF -:1053D0000E94550785E89CE00E94550781E49CE007 -:1053E0000E94550786E19CE0E6CF88E09CE00E94A1 -:1053F00055070E94B0141F928F938EEE9BE09F93EF -:105400008F930E94EE0780910C011F928F9387ED7E -:105410009BE09F938F930E94EE0780916E011F92F5 -:105420008F9384EC9BE09F938F930E94EE07809173 -:105430000D011F928F9381EB9BE09F938F930E94AE -:10544000EE078091D9019091DA01A091DB01B09132 -:10545000DC01BF93AF939F938F938DE99BE09F9364 -:105460008F930E94EE078DB79EB746960FB6F894BD -:105470009EBF0FBE8DBF42CF0E94751AC0910D0115 -:1054800081E0C827C0930D01CC2329F083E99BE07C -:105490000E94550710C088E89BE08DCF80E003C0D4 -:1054A0008D5101C089530E94BE2728CF86E89BE01A -:1054B0000E945507C0E08C2FCF91089580E0089599 -:1054C00080E00895CF93C82F8091E701813081F06B -:1054D00020F0823009F44CC042C1A0910E01B0917D -:1054E0000F018C91813169F0823209F03AC109C013 -:1054F000A0910E01B0910F018C91813111F0823297 -:1055000049F48C2F0E945E2A81112FC08C2F0E949B -:10551000DC272CC08C2F0E94602A811126C0C43148 -:10552000E1F070F4CB3081F0C031D1F40E948626D6 -:1055300088E599E00E94550782E08093E70115C055 -:10554000C93259F0C83361F485E699E00E945507E5 -:105550008CE599E00E94550708C01092E70103C14D -:1055600086E599E00E945507FEC081E08170FDC08C -:10557000C43220F5CE3108F0C0C0CB3099F1C8F468 -:10558000C73009F0D2C08AE08093150194E190936E -:10559000140193E0909313018093120188E08093AB -:1055A000110188E2809310018CEF97E00E9455076B -:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425 -:1055C000A9C028F4C93289F0C83361F0AEC0C13532 -:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3 -:1055E0006AE09EC00E948626A3C08091E6018823BF -:1055F00019F01092E6019CC089E098E00E945507DE -:1056000081E08093E701B1C083EE97E00E945507E7 -:1056100081ED97E00E945507809115011F928F93AD -:105620008EEC97E09F938F930E94EE078CEC97E0AF -:105630000E9455078AEB97E00E945507809114015C -:105640001F928F9387EB97E09F938F930E94EE07B3 -:1056500085EB97E00E94550786EA97E00E94550780 -:10566000809113011F928F9383EA97E09F938F930A -:105670000E94EE0781EA97E00E94550780E997E0D3 -:105680000E945507809112011F928F938DE897E039 -:105690009F938F930E94EE078BE897E00E94550737 -:1056A00086E797E00E945507809111011F928F9322 -:1056B00083E797E09F938F930E94EE0781E797E03F -:1056C0000E9455078AE597E00E94550780911001D6 -:1056D0001F928F9387E597E09F938F930E94EE0729 -:1056E00085E597E00E9455078DB79EB748960FB69F -:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3 -:10570000E15DFE4F80818093E60112C061E003C03D -:1057100061E006C06AE08091E6010E949D2608C013 -:105720008091E6010E94402703C08AEF97E013C0F2 -:105730008091E601882369F01F928F9384EF97E0B0 -:105740009F938F930E94EE070F900F900F900F90F2 -:1057500004C081EF97E00E94550781E006C01092D7 -:10576000E70180E002C080E001CFCF910895E1E839 -:10577000F0E08081886080838081816080838FB742 -:10578000F89493E09093890090ED909388008FBFF8 -:105790000895EFE6F0E08081826080830895EFE66F -:1057A000F0E080818D7F80830895EFE6F0E08081D6 -:1057B00092E08927808308951F920F920FB60F926F -:1057C00011242F933F934F935F936F937F938F9306 -:1057D0009F93AF93BF93EF93FF938091E8019091D4 -:1057E000E90101969093E9018093E801811103C0DA -:1057F00082E00E94EE0CE091E901E695E695F0E08A -:10580000EA53F24FE4918091E8018E1303C080E0E7 -:105810000E94EE0CFF91EF91BF91AF919F918F91FC -:105820007F916F915F914F913F912F910F900FBE9C -:105830000F901F90189504D06894B1118DC00895F1 -:1058400070D088F09F5790F0B92F9927B751A0F0EA -:10585000D1F0660F771F881F991F1AF0BA95C9F704 -:1058600012C0B13081F077D0B1E0089574C0672FD5 -:10587000782F8827B85F39F0B93FCCF386957795B4 -:105880006795B395D9F73EF490958095709561959D -:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8 -:1058A00090958095709561957F4F8F4F9F4F99236D -:1058B000A9F0F92F96E9BB279395F69587957795EB -:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB -:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003 -:1058E00096E911C0772321F09EE8872F762F05C017 -:1058F000662371F096E8862F70E060E02AF09A95B2 -:10590000660F771F881FDAF7880F9695879597F9A6 -:10591000089557FD9058440F551F59F05F3F71F09F -:105920004795880F97FB991F61F09F3F79F0879506 -:105930000895121613061406551FF2CF4695F1DF8F -:1059400008C0161617061806991FF1CF869571051F -:10595000610508940895E894BB2766277727CB0153 -:1059600097F908950BD078C069D028F06ED018F060 -:10597000952309F05AC05FC01124EECFCADFA0F30F -:10598000959FD1F3950F50E0551F629FF001729FD4 -:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3 -:1059A000649F6627B00DA11D661F829F2227B00D40 -:1059B000A11D621F739FB00DA11D621F839FA00DCB -:1059C000611D221F749F3327A00D611D231F849F1B -:1059D000600D211D822F762F6A2F11249F57504072 -:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D -:1059F000771F881F91505040A9F79E3F510570F0C6 -:105A000014C0AACF5F3FECF3983EDCF38695779500 -:105A10006795B795F795E7959F5FC1F7FE2B880FC0 -:105A2000911D9695879597F9089597F99F6780E856 -:105A300070E060E008959FEF80EC089500240A94E0 -:105A40001616170618060906089500240A94121659 -:105A50001306140605060895092E0394000C11F48C -:105A6000882352F0BB0F40F4BF2B11F460FF04C039 -:105A70006F5F7F4F8F4F9F4F0895991B79E004C050 -:105A8000991F961708F0961B881F7A95C9F780957D -:105A9000089597FB072E16F4009407D077FD09D0E0 -:105AA0000E94632D07FC05D03EF4909581959F4F91 -:105AB0000895709561957F4F0895EE0FFF1F059033 -:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A -:105AD000BB1FA617B70710F0A61BB70B881F991F8F -:105AE0005A95A9F780959095BC01CD010895F99933 -:105AF000FECF92BD81BDF89A992780B50895A8E19F -:105B0000B0E042E050E00C949A2D262FF999FECF98 -:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA -:105B20000FBE019608950E94852D272F0C94862D77 -:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D -:105B4000F89A319600B40D9241505040B8F708953C -:045B5000F894FFCFF7 -:105B54002002EF0CE00DBD0D890D560D0101C501AC -:105B640028080A03140A3F4D3620394605F904C3B0 -:105B740004A3046A04DD03F6030F042804480401A3 -:0A5B840002030405060708090000EB +:1033B0001F910F91FF90EF90DF90CF900C945A1FC8 +:1033C000263008F09DC0EACFFF20A1F0842F8F7136 +:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118 +:1033E0001F910F91FF90EF90DF90CF900C94141FDE +:1033F000FF2061F3842F8F7128960FB6F894DEBFFB +:103400000FBECDBFDF91CF911F910F91FF90EF9035 +:10341000DF90CF900C94351FFF2091F0842F8F7197 +:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7 +:103430001F910F91FF90EF90DF90CF900C94FF1EA3 +:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7 +:103450001F910F91FF90EF90DF90CF900C94F51E8D +:10346000FF20A1F0222309F4B1CF862F28960FB6B2 +:10347000F894DEBF0FBECDBFDF91CF911F910F91AA +:10348000FF90EF90DF90CF900C946616222309F402 +:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2 +:1034A000DF91CF911F910F91FF90EF90DF90CF9020 +:1034B0000C942E174F70C8010E94F70728960FB67C +:1034C000F894DEBF0FBECDBFDF91CF911F910F915A +:1034D000FF90EF90DF90CF900C941A1E4F70C801B0 +:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107 +:1034F0001F910F91FF90EF90DF90CF900C94B90B3C +:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6 +:103510001F910F91FF90EF90DF90CF9008950E9440 +:10352000CC200E94A1200E94E8200E94A6260E9492 +:10353000782580E090E00E94381580E090E00C94BF +:103540004E150E94BC200C948F1A0E94CA1F292F6E +:1035500022952F7030E02C3031054CF42A303105A3 +:103560006CF4225031092230310590F407C02C3020 +:10357000310551F02F30310539F00AC0803E10F08E +:10358000803F31F481E0089593FB882780F9089506 +:1035900080E00895CF93DF9300D000D01F92CDB785 +:1035A000DEB70F900F900F900F900F90DF91CF919B +:1035B0000895CF93DF9300D000D000D0CDB7DEB711 +:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128 +:1035D00008951F93CF93DF93C091840116E08091EB +:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8 +:1035F0001124EA57FE4F4081518162817381848199 +:1036000095810E94D91A2196C770E9CFDF91CF9199 +:103610001F9108954091B6015091B7016091B80192 +:103620007091B9018091BA019091BB010C94D91AA3 +:10363000CF938091BB0182958F7009F05FC080911C +:10364000B801882309F45AC020918401A091850112 +:103650006091B6017091B7018091B9019091BA0162 +:1036600031E06F3F09F030E0B32FC6E02A1709F4CC +:1036700045C0009721F07F3F21F44B2F03C041E06C +:1036800001C040E030E040FD35C0C29FF001C39F63 +:10369000F00D1124EA57FE4F418174132BC0408175 +:1036A000641328C04281411125C0438154814817C9 +:1036B000590710F441505109481B590B483C51051A +:1036C000C8F48091BB018F7080618093BB0186E05C +:1036D000829FF001839FF00D1124E557FE4F8081FA +:1036E0008F708061808386EB91E00E948B17CF9171 +:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0 +:10370000CF92DF92EF92FF920F931F93CF93DF93AD +:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50 +:103720008C0185E0F801DE011D9601900D928A95CD +:10373000E1F7D8014C9111965C91119712966C911A +:1037400012971396ED90FC9014977091B601E0914A +:10375000B7012091B9013091BA012115310531F03D +:10376000EF3F31F481E07F3F19F403C081E001C0F5 +:1037700080E0B82FB170CB2E80FD6CC1D090B80125 +:10378000DD2009F4F5C0F091BB01E216F30638F034 +:10379000C701821B930B883C910548F09BC0209584 +:1037A00030952E0D3F1D283C310508F093C08F2F1A +:1037B000807F09F052C0E51314C0741312C0D62ED6 +:1037C00061110FC0FF70F061F093BB010E940A1BF2 +:1037D00086EB91E00E948B178091BB01F8018583F5 +:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5 +:1037F00003C081E001C080E080FD03C081E0862736 +:1038000001C080E0F82FF170FF2E80FF1CC0809176 +:1038100084012091850136E0821709F428C190E0E7 +:10382000389FF001399FF00D1124EA57FE4F718146 +:10383000571306C07081471303C07281671303C01A +:1038400001968770E9CFD62E662309F436C18091A0 +:10385000BB0181608093BB0153C0E51308C07413A2 +:1038600006C0611104C0D8011596FC93AEC04D8707 +:103870005E878D859E856A8B0E94A51A6A8988233A +:1038800029F1D62E662311F12091BB01822F82955A +:103890008F7090E002970CF460C08091B601909117 +:1038A000B70198878F831986FB86EA862C87CE011D +:1038B000079651C0E51731F14D875E878D859E854E +:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4 +:1038D0008B17A4C08F2F807F69F77E2DF98AE88A25 +:1038E00089890E94CA1A86EB91E00E948B17E6EB49 +:1038F000F1E086E0DF011D928A95E9F70E940A1B3C +:10390000D12CDBC07413D8CF6111D6CFD801159656 +:10391000FC93C8010E948B17E6EBF1E086E0DF0123 +:103920001D928A95E9F7C9C0D62E662379F22091B7 +:10393000BB01822F82958F7090E0029774F0809186 +:10394000B6019091B7019A8389831B82FD82EC8234 +:103950002E83CE0101960E948B1786E0F801A6EB1C +:10396000B1E001900D928A95E1F70E94181B6FC09B +:10397000E216F30628F0C701821B930B9C0104C0DA +:10398000209530952E0D3F1D283C310508F052C082 +:10399000D62E662309F49ACFE5132CC074132AC0DF +:1039A0008091BB0180FD1DC0982F92959F70C9F03A +:1039B000D80115968C9315979F3039F09F5F92959B +:1039C000907F8F70892B15968C93C8010E948B175E +:1039D00086E0F801A6EBB1E001900D928A95E1F73F +:1039E00036C086E0F801A6EBB1E001900D928A9511 +:1039F000E1F763C04D875E878D859E850E94A51A7D +:103A0000882379F086E0F801A6EBB1E001900D92F1 +:103A10008A95E1F70E94181B0E940A1BDD24D394AB +:103A20004CC08091BB0181608093BB01C8010E94A2 +:103A30008B1743C07E2DF98AE88A89890E94CA1AA9 +:103A4000E6EBF1E086E0DF011D928A95E9F70E943E +:103A50000A1B33C0662309F439CF4D875E878D85F5 +:103A60009E850E94A51A882309F430CFCBCF4D87BD +:103A70005E878D859E850E94CA1F292F22952F70F3 +:103A800030E0223031052CF49F7041F0811106C0E6 +:103A90000CC0243031052CF49F7049F4805E8830CE +:103AA00020F0C8010E948B17CF2CDC2C06C0D80157 +:103AB00015969C91907F91F7F8CF8D2D62960FB659 +:103AC000F894DEBF0FBECDBFDF91CF911F910F9154 +:103AD000FF90EF90DF90CF9008951F93CF93DF93E7 +:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3 +:103AF0004F83588769877A878B879C87CE01079683 +:103B00000E94801B8823C1F02F8138858A859B8580 +:103B1000892B31F03F3F11F080E003C02F3FE1F7E8 +:103B200081E0811147C04F81588569857A858B85F1 +:103B30009C850E94D91A3EC086E0FE013796DE01C0 +:103B4000119601900D928A95E1F7FF81E8854A85EB +:103B50005B854115510531F0EF3F31F481E0FF3FC6 +:103B600019F403C081E001C080E080FD23C02091F2 +:103B7000850130E0C9010196877099276091840121 +:103B800070E086179707F1F1F983EA835D834C8330 +:103B900096E0929FD001939FB00D1124AA57BE4F7B +:103BA000FE01319601900D929A95E1F7809385017F +:103BB0000E94E91A16E0809184019091850189178D +:103BC00079F1189FC00111248A579E4F0E94801BD3 +:103BD000882331F1E09184011E9FF0011124EA57FE +:103BE000FE4F4081518162817381848195810E9461 +:103BF000D91A8091840190E001968770992780936B +:103C00008401D9CF0E94A11A1092850110928401DB +:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75 +:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB +:103C30001F910895EF92FF920F931F93CF93DF93FD +:103C40009C01009709F471C0F12CEE24E394E90182 +:103C50002196F9018491843740F4843008F056C0ED +:103C6000813081F0823021F160C0853709F449C08C +:103C7000C0F19CE7980F903708F057C08F770E94EB +:103C80002E1746C089010E5F1F4FFE01849190E2FE +:103C9000980F983050F48770FE2D01C0FF0F8A9561 +:103CA000EAF78F2F0E94BF2015C00E94661614C02D +:103CB00089010E5F1F4FFE01849190E2980F9830AA +:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9 +:103CD0000E94C5200E94E820E8011AC00E942E1709 +:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903 +:103CF0009FE00197F1F700C00000C150F6CFE90145 +:103D000007C0FE01F490E901229602C00E946616E7 +:103D10008F2D882341F0EFE9FFE03197F1F700C0E4 +:103D200000008150F6CF9E0192CFDF91CF911F917D +:103D30000F91FF90EF90089508956093C0017093E4 +:103D4000C1018093C2019093C3010C948F1A0F9309 +:103D50001F930091C0011091C1012091C2013091C7 +:103D6000C301062B172B282B392B0093C00110936E +:103D7000C1012093C2013093C3011F910F910C9494 +:103D80008F1A0F931F930091C0011091C1012091D0 +:103D9000C2013091C301062317232823392300933E +:103DA000C0011093C1012093C2013093C3011F9140 +:103DB0000F910C948F1A0F931F930091C0011091D3 +:103DC000C1012091C2013091C3010627172728277E +:103DD00039270093C0011093C1012093C201309391 +:103DE000C3011F910F910C948F1A1092BC01109275 +:103DF000BD011092BE011092BF010C948F1A41E0D8 +:103E000050E060E070E004C0440F551F661F771F4C +:103E10008A95D2F74093BC015093BD016093BE01D7 +:103E20007093BF010C948F1A41E050E060E070E0A5 +:103E300004C0440F551F661F771F8A95D2F78091E3 +:103E4000BC019091BD01A091BE01B091BF01842B36 +:103E5000952BA62BB72B8093BC019093BD01A0930B +:103E6000BE01B093BF010C948F1A41E050E060E0B6 +:103E700070E004C0440F551F661F771F8A95D2F764 +:103E800040955095609570958091BC019091BD01D1 +:103E9000A091BE01B091BF0184239523A623B7232F +:103EA0008093BC019093BD01A093BE01B093BF016C +:103EB0000C948F1A41E050E060E070E004C0440FC1 +:103EC000551F661F771F8A95D2F78091BC0190918C +:103ED000BD01A091BE01B091BF0184279527A627FF +:103EE000B7278093BC019093BD01A093BE01B0930E +:103EF000BF010C948F1A0F931F930091BC01109176 +:103F0000BD012091BE013091BF01062B172B282B3C +:103F1000392B0093BC011093BD012093BE01309357 +:103F2000BF011F910F910C948F1A0F931F93009153 +:103F3000BC011091BD012091BE013091BF0106234B +:103F40001723282339230093BC011093BD0120932C +:103F5000BE013093BF011F910F910C948F1A0F93E4 +:103F60001F930091BC011091BD012091BE013091C1 +:103F7000BF0106271727282739270093BC01109374 +:103F8000BD012093BE013093BF011F910F910C948E +:103F90008F1A0895CF92DF92EF92FF920F931F93A3 +:103FA000CF93DF93EC01C090C001D090C101E090AD +:103FB000C201F090C3018091BC019091BD01A0911C +:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113 +:103FD00010E0B701A601002E04C0769567955795AD +:103FE00047950A94D2F740FF07C0BE01802F0E9478 +:103FF000DC0B8130910539F40150110950F7BE01F5 +:1040000080E00E94DC0BDF91CF911F910F91FF9018 +:10401000EF90DF90CF90089590910C01992361F17A +:1040200090910D01992341F1982F9695969596952B +:104030009F3088F4E0910E01F0910F01E90FF11D1E +:10404000877021E030E001C0220F8A95EAF7818174 +:10405000822B818308959091D70190FF2DC01F92EC +:104060008F9387ED95E09F938F930E94EE070F90BB +:104070000F900F900F90089540910E0150910F01F5 +:1040800020E030E09FEFFA01E20FF31F6281681732 +:1040900099F09F3F19F4611101C0922F2F5F3F4F9C +:1040A0002E30310581F79F3F39F0FA01E90FF11DFC +:1040B00097FDFA9582830895089590910C019923B4 +:1040C00069F190910D01992349F1982F9695969554 +:1040D00096959F3090F4E0910E01F0910F01E90F59 +:1040E000F11D877021E030E001C0220F8A95EAF7C8 +:1040F000209581812823218308959091D70190FFF5 +:104100001FC01F928F9389EB95E09F938F930E941E +:10411000EE070F900F900F900F90089540910E01B1 +:1041200050910F0120E030E0FA01E20FF31F92817D +:10413000981301C012822F5F3F4F2E303105A1F737 +:10414000089581E090E0E0910E01F0910F01E80FF9 +:10415000F91F1082019680319105A9F70895909179 +:10416000D601982B9093D601089580959091D60111 +:1041700098239093D60108951092D60108959091B6 +:10418000D501982B9093D501089580959091D501F4 +:1041900098239093D50108951092D50108958093A6 +:1041A000C40108951092C401089540910E015091E8 +:1041B0000F0120E030E080E0FA01E20FF31F91816F +:1041C00091118F5F2F5F3F4F2F303105A9F7089571 +:1041D000E0910E01F0910F018091D6018083E09172 +:1041E0000E01F0910F0180819091D501892B808380 +:1041F0009091C401992361F0E0910E01F0910F01BB +:104200008081892B80830E94D52081111092C40166 +:1042100080910E0190910F010C94E81490933B0152 +:1042200080933A010895CF92DF92EF92FF920F931D +:104230001F936C01EE24FF24C114D104E104F104A6 +:1042400021F46B017C0180E001C080E133272F2D38 +:104250001E2D0D2D011511052105310519F0885F61 +:104260006801790197018601A4E036952795179595 +:104270000795AA95D1F7011511052105310519F00A +:104280008C5F6801790197018601F2E036952795E8 +:1042900017950795FA95D1F70115110521053105F7 +:1042A00019F08E5F68017901B701A60176956795CF +:1042B00057954795452B462B472B09F08F5F1F914C +:1042C0000F91FF90EF90DF90CF9008958295982FF7 +:1042D0009C7C96959695837344E0849F900111246D +:1042E000922B892F8A7A86959575990F892B089537 +:1042F0001F93CF93DF931F92CDB7DEB799830E94B0 +:104300006621182F9981892F0E946621212F30E084 +:10431000322F2227A901482BCA010F90DF91CF919C +:104320001F9108958091F001843009F11092D80115 +:1043300020E488E190E00FB6F894A895809360009F +:104340000FBE2093600083B7817F846083BF83B7F3 +:10435000816083BF7894889583B78E7F83BF88E11F +:104360000FB6F89480936000109260000FBE08951D +:1043700008950895CF930E94B8210E9482090E9457 +:10438000B921C0E08C2F0E94AD0A811105C0CF5F1A +:10439000CE30C1F780E001C081E0CF9108950C9448 +:1043A000A11A82E084BD93E095BD9AEF97BD8093FA +:1043B0006E0008952FB7F8948091D9019091DA0199 +:1043C000A091DB01B091DC012FBF0895CF92DF9265 +:1043D000EF92FF920F931F932FB7F8944091D9015A +:1043E0005091DA016091DB017091DC012FBF6A010D +:1043F0007B01EE24FF248C0120E030E0C016D106C2 +:10440000E206F30610F441505109481B590BCA014A +:104410001F910F91FF90EF90DF90CF9008951F9222 +:104420000F920FB60F9211248F939F93AF93BF9368 +:104430008091D9019091DA01A091DB01B091DC016A +:104440000196A11DB11D8093D9019093DA01A0932B +:10445000DB01B093DC01BF91AF919F918F910F90E1 +:104460000FBE0F901F9018950E94E311F8942FEF44 +:1044700087EA91E6215080409040E1F700C00000BB +:1044800087E090EBDC018093F9019093FA01A0930F +:10449000FB01B093FC012CE088E190E00FB6F894AA +:1044A000A895809360000FBE20936000FFCFEF922D +:1044B000FF920F931F93CF93DF93E82EF12C8F2D54 +:1044C0000E94AD0AC0E0D0E0082F10E098010C2E49 +:1044D00002C0359527950A94E2F720FD05C0219684 +:1044E000C630D10599F709C06C2F7F2D80E00E945E +:1044F000BA0BE812F4CF81E005C0F3948EE0F81215 +:10450000DECF80E0DF91CF911F910F91FF90EF9070 +:104510000895CF93C82F8CE20E945722882321F060 +:104520008C2FCF910C94572280E0CF910895CF9398 +:104530000E94E423811102C00E94CA238CEF95E0FF +:104540000E945507C5E6C15049F00E9482098FE3D9 +:104550009CE90197F1F700C00000F5CF85EF95E0E9 +:104560000E94550789E20E948922811111C18AE2C5 +:104570000E94892281110E94CA2385E00E9489221B +:1045800081110E9434220E94EF238093D70187E09B +:104590000E948922882399F18BE10E948922882335 +:1045A00051F09091D70191FB882780F921E0822773 +:1045B00080FB91F922C08EE00E948922882351F06D +:1045C0009091D70192FB882780F921E0822780FB18 +:1045D00092F913C080E10E9489229091D70188232B +:1045E00041F093FB882780F921E0822780FB93F933 +:1045F00004C0892F809580FB90F99093D70180911A +:10460000D7010E94F3230E9401248093EA0180EEE7 +:104610000E948922882341F08091EA01982F909589 +:1046200090FB80F98093EA0189E30E948922882324 +:1046300059F09091EA0191FB882780F921E08227C7 +:1046400080FB91F99093EA0182EE0E9489228823EF +:1046500059F09091EA0192FB882780F921E08227A6 +:1046600080FB92F99093EA0186EE0E9489228823CA +:1046700059F09091EA0193FB882780F921E0822785 +:1046800080FB93F99093EA0183EE0E9489228823AC +:1046900059F09091EA0194FB882780F921E0822764 +:1046A00080FB94F99093EA0185E30E948922882394 +:1046B00059F09091EA0195FB882780F921E0822743 +:1046C00080FB95F99093EA0181E30E948922882377 +:1046D00059F09091EA0196FB882780F921E0822722 +:1046E00080FB96F99093EA0181E10E948922882358 +:1046F00059F09091EA0197FB882780F921E0822701 +:1047000080FB97F99093EA018091EA010E940524C9 +:104710008091EA0187FB882780F980930D0187E269 +:104720000E948922C82F8EE10E9489228111C260D5 +:104730008FE10E9489228111C46080E20E94892257 +:104740008111C86081E20E9489228111C06182E2E8 +:104750000E9489228111C06283E20E948922811114 +:10476000C06484E20E948922882311F0C06802C0DC +:10477000CC2329F08C2F0E94FC236C2F03C00E94B5 +:10478000F823682F70E080E090E0CF910C949D1E9C +:10479000CF9108956DEE7EEF80E090E00E94BF2DF6 +:1047A00060E082E090E00E94B12D60E083E090E064 +:1047B0000E94B12D60E084E090E00E94B12D60E0A5 +:1047C00085E090E00C94B12D80E090E00E94AB2D4C +:1047D00021E08D3E9E4F09F020E0822F089582E077 +:1047E00090E00C94A32D682F82E090E00C94B12D02 +:1047F00083E090E00C94A32D682F83E090E00C946C +:10480000B12D84E090E00C94A32D682F84E090E01B +:104810000C94B12D8091DF0180FF0BC060911301DA +:1048200085E0689FB001112475956795759567952A +:104830002AC081FF09C06091130185E0689FB00123 +:104840001124759567951FC082FF07C06091130101 +:1048500085E0689FB001112416C04091E001442317 +:10486000C9F060911201461788F72091130185E085 +:10487000289F90011124429FC001439F900D112455 +:1048800070E00E94752D6038710540F46115710566 +:1048900039F002C065E070E0862F08958FE7089533 +:1048A00081E008958091DF0180FF08C060911101CF +:1048B00070E0759567957595679521C081FF06C075 +:1048C0006091110170E07595679519C082FF04C071 +:1048D0006091110170E010C08091E0018823C1F067 +:1048E000609110018617A0F790911101989FC00167 +:1048F000112470E00E94752D6038710528F461154F +:10490000710521F0862F08958FE7089581E00895BD +:1049100061E070E0F4CF803F21F40E940A24819589 +:1049200004C0813F29F40E940A248093E301089582 +:10493000823F21F40E940A24819504C0833F29F418 +:104940000E940A248093E2010895893F19F40E948D +:10495000522405C08A3F31F40E94522481958093ED +:10496000E40108958B3F21F40E945224819504C0F4 +:104970008C3F29F40E9452248093E5010895843FDE +:1049800021F48091E101816017C0853F21F480917D +:10499000E101826011C0863F21F48091E1018460D1 +:1049A0000BC0873F21F48091E101886005C0883FFA +:1049B00031F48091E10180618093E10108958D3FA0 +:1049C00021F48091DF0181600BC08E3F21F4809142 +:1049D000DF01826005C08F3F29F48091DF01846090 +:1049E0008093DF010895803F39F48091E30187FFD0 +:1049F0006CC01092E30169C0813F29F48091E3010A +:104A00001816BCF362C09091E201823F29F497FF2F +:104A10005CC01092E20159C0833F19F41916CCF31F +:104A200054C0893F41F48091E40118160CF04DC048 +:104A30001092E4014AC08A3F29F48091E40187FF83 +:104A400044C0F6CF8B3F39F48091E50187FF3DC02C +:104A50001092E5013AC08C3F29F48091E5011816C7 +:104A6000BCF333C0843F21F48091E1018E7F17C0F5 +:104A7000853F21F48091E1018D7F11C0863F21F4B3 +:104A80008091E1018B7F0BC0873F21F48091E10190 +:104A9000877F05C0883F31F48091E1018F7E80934C +:104AA000E10113C08D3F21F48091DF018E7F0BC0A7 +:104AB0008E3F21F48091DF018D7F05C08F3F29F467 +:104AC0008091DF018B7F8093DF018091E201811172 +:104AD0000EC08091E30181110AC08091E40181112F +:104AE00006C08091E501811102C01092E001089595 +:104AF0008091D70183FF7EC088E396E00E9455072E +:104B00008091E1011F928F9383E396E09F938F93AF +:104B10000E94EE0781E396E00E9455072091E20192 +:104B2000822F992787FD90959F932F938EE296E091 +:104B30009F938F930E94EE078CE296E00E945507A8 +:104B40002091E301822F992787FD90959F932F93C2 +:104B500089E296E09F938F930E94EE0787E296E0AA +:104B60000E9455072091E401822F992787FD909597 +:104B70009F932F9384E296E09F938F930E94EE077A +:104B800082E296E00E9455072091E501822F992745 +:104B900087FD90959F932F938FE196E09F938F933E +:104BA0000E94EE078CE196E00E9455078091E0019B +:104BB0001F928F9389E196E09F938F930E94EE0757 +:104BC00087E196E00E9455078091DF011F928F9345 +:104BD00084E196E09F938F930E94EE0781E196E037 +:104BE0000E9455078DB79EB74C960FB6F8949EBF9E +:104BF0000FBE8DBF81EE91E00E942D150E94DA213B +:104C00009093DE018093DD0108951F93CF93DF938E +:104C10008091DD019091DE010E94E6214091E0014A +:104C2000442321F02091140130E006C020911501A9 +:104C30005AE0259F900111248217930708F482C03F +:104C40008091E2011091E301D091E401C091E5016E +:104C5000811107C0111105C0D11103C0CC2309F483 +:104C600071C04F3F19F04F5F4093E001181624F4D4 +:104C70000E940A248093E2018091E20187FF05C02F +:104C80000E940A2481958093E201111624F40E9467 +:104C90000A248093E3018091E30187FF05C00E940D +:104CA0000A2481958093E3016091E201662339F142 +:104CB0001091E301112319F1772767FD7095872F74 +:104CC000972F0E947A2C23E333E343E35FE30E94B0 +:104CD000DE2C0E94472C6093E201612F772767FD4D +:104CE0007095872F972F0E947A2C23E333E343E3B9 +:104CF0005FE30E94DE2C0E94472C6093E3011D16A7 +:104D000024F40E9452248093E4018091E40187FFFF +:104D100005C00E94522481958093E4011C1624F45E +:104D20000E9452248093E5018091E50187FF05C030 +:104D30000E94522481958093E501DF91CF911F91CC +:104D40000C947825DF91CF911F910895E1EEF1E069 +:104D500085E0DF011D928A95E9F71092E00110923B +:104D6000DF0108958BE598E00E9455071F9281E0CE +:104D70008F931F9285E08F938DE098E09F938F93A0 +:104D80000E94EE070F900F900F900F900F900F90D2 +:104D900008958330E9F128F4813061F0823009F11F +:104DA0000895853009F462C008F449C0863009F4DA +:104DB00074C0089520911501862F90E0820F911DF7 +:104DC0008F3F910520F4620F6093150103C08FEFB0 +:104DD00080931501809115011F928F9386E497E0CF +:104DE00072C020911401862F90E0820F911D8F3F99 +:104DF000910520F4620F6093140103C08FEF80933C +:104E00001401809114011F928F9384E397E05BC09B +:104E100020911301862F90E0820F911D8F3F910505 +:104E200020F4620F6093130103C08FEF809313018E +:104E3000809113011F928F9381E297E044C02091EB +:104E40001201862F90E0820F911D8F3F910520F473 +:104E5000620F6093120103C08FEF80931201809163 +:104E600012011F928F938CE097E02DC020911101C9 +:104E7000862F90E0820F911D8F3F910520F4620FE5 +:104E80006093110103C08FEF809311018091110194 +:104E90001F928F9383EF96E016C020911001862F0A +:104EA00090E0820F911D8F3F910520F4620F609377 +:104EB000100103C08FEF80931001809110011F92A9 +:104EC0008F9388ED96E09F938F930E94EE070F904B +:104ED0000F900F900F900895833081F128F4813066 +:104EE00059F08230D1F00895853009F449C0B8F105 +:104EF000863009F456C0089580911501681720F492 +:104F0000861B8093150102C0109215018091150136 +:104F10001F928F9389EC96E054C08091140168171A +:104F200020F4861B8093140102C01092140180911A +:104F300014011F928F9387EB96E043C08091130179 +:104F4000681720F4861B8093130102C0109213018E +:104F5000809113011F928F9384EA96E032C0809172 +:104F60001201681720F4861B8093120102C0109270 +:104F70001201809112011F928F938FE896E021C059 +:104F800080911101681720F4861B8093110102C0E3 +:104F900010921101809111011F928F9386E796E084 +:104FA00010C080911001681720F4861B80931001B7 +:104FB00002C010921001809110011F928F938BE517 +:104FC00096E09F938F930E94EE070F900F900F90A3 +:104FD0000F900895CF93C82F1F928F9320E639E04A +:104FE0003F932F930E94EE0761E070E080E090E035 +:104FF00004C0660F771F881F991FCA95D2F70E94B9 +:105000009D1E0F900F900F900F90CF910C94A11AAE +:10501000CF938D3109F465C0B0F58E3009F4CBC162 +:1050200000F5873009F49BC1A8F4863009F06AC204 +:105030008091D701817F8E7F8093D70185E699E0AB +:105040000E94550787EA9DE00E94550781E0809302 +:10505000E70180C1883009F44FC08B3009F47CC16E +:1050600051C2863109F4EDC138F4803109F4B6C17A +:10507000813109F42DC246C2893109F4CBC18B318B +:1050800009F486C13FC2853309F434C248F487323B +:1050900009F430C208F430C2893209F42BC232C29A +:1050A000833438F48A3308F029C2883309F454C1B0 +:1050B00029C2833409F41EC2883409F023C20E9435 +:1050C000A11A86E99DE00E9455079FEF23ED80E33A +:1050D000915020408040E1F700C000000E9434223F +:1050E00039C186EB9DE00E9455070E94012C0E9469 +:1050F000DC140E941A0D2EC18BEA9DE00E94550718 +:1051000086E79BE00E9455070E94F8231F928F9329 +:1051100083E79BE09F938F930E94EE0781E79BE0DC +:105120000E9455070E94EF23C82F8EE59BE00E9446 +:1051300055071F92CF9329E53BE03F932F930E94A1 +:10514000EE0787E59BE00E9455078DE49BE00E94F7 +:1051500055078C2F81701F928F932AE43BE03F9379 +:105160002F930E94EE0788E49BE00E9455078EE390 +:105170009BE00E945507C1FB882780F91F928F93FF +:105180002BE33BE03F932F930E94EE0789E39BE0E4 +:105190000E9455078DE29BE00E945507C2FB8827BD +:1051A00080F91F928F932AE23BE03F932F930E9456 +:1051B000EE0788E29BE00E9455078FE19BE00E948A +:1051C0005507C3FBCC27C0F91F92CF938CE19BE01E +:1051D0009F938F930E94EE078AE19BE00E94550700 +:1051E0000E940124C82F86E09BE00E9455071F9271 +:1051F000CF9321E03BE03F932F930E94EE078FEF88 +:105200009AE00E94550786EE9AE00E9455078C2F7F +:1052100081701F928F9323EE3AE03F932F930E9469 +:10522000EE078DB79EB780960FB6F8949EBF0FBE5F +:105230008DBF81EE9AE00E9455078AEC9AE00E94A9 +:105240005507C1FB882780F91F928F9327EC3AE01E +:105250003F932F930E94EE0785EC9AE00E9455073A +:1052600083EB9AE00E945507C2FB882780F91F92C2 +:105270008F9320EB3AE03F932F930E94EE078EEA44 +:105280009AE00E9455078CE99AE00E945507C3FBFB +:10529000882780F91F928F9329E93AE03F932F9353 +:1052A0000E94EE0787E99AE00E9455078DE89AE090 +:1052B0000E945507C4FB882780F91F928F932AE824 +:1052C0003AE03F932F930E94EE0788E89AE00E940D +:1052D000550786E79AE00E945507C5FB882780F9A5 +:1052E0001F928F9323E73AE03F932F930E94EE079C +:1052F00081E79AE00E94550785E59AE00E945507EC +:10530000C6FB882780F91F928F9322E53AE03F93EE +:105310002F930E94EE0780E59AE00E94550788E4EB +:105320009AE00E945507C7FBCC27C0F91F92CF9384 +:1053300085E49AE09F938F930E94EE0783E49AE0BE +:105340000E9455078DB79EB74C960FB6F8949EBF36 +:105350000FBE8DBFC1E0DBC08CE899E058C08091E2 +:10536000D701C82FC17080FF09C089E89DE00E9465 +:1053700055078091D701817F8E7F44C08DE79DE0E6 +:105380000E9455078091D70181608093D701E2CFB9 +:105390008091D70181FBCC27C0F991E0C927C0FBE0 +:1053A00081F98093D701CC2319F080E79DE025C0D7 +:1053B00082E69DE02CC08091D70182FBCC27C0F90A +:1053C00091E0C927C0FB82F98093D701CC2319F063 +:1053D00083E59DE012C083E49DE019C08091D70170 +:1053E00083FBCC27C0F991E0C927C0FB83F98093E8 +:1053F000D701CC2351F087E39DE00E9455078091AF +:10540000D70181608093D70182C08AE29DE00E942B +:105410005507A0CF8BE19DE00E9455078FEE9CE0E1 +:105420000E94550782EB9CE00E94550785E89CE0AE +:105430000E94550781E49CE00E94550786E19CE0AC +:10544000E6CF88E09CE00E9455070E94DC141F9282 +:105450008F938EEE9BE09F938F930E94EE07809137 +:105460000C011F928F9387ED9BE09F938F930E9477 +:10547000EE0780916E011F928F9384EC9BE09F93C7 +:105480008F930E94EE0780910D011F928F9381EB05 +:105490009BE09F938F930E94EE078091D90190919A +:1054A000DA01A091DB01B091DC01BF93AF939F9330 +:1054B0008F938DE99BE09F938F930E94EE078DB7AA +:1054C0009EB746960FB6F8949EBF0FBE8DBF42CFD3 +:1054D0000E94A11AC0910D0181E0C827C0930D015F +:1054E000CC2329F083E99BE00E94550710C088E88F +:1054F0009BE08DCF80E003C08D5101C089530E9495 +:10550000EA2728CF86E89BE00E945507C0E08C2F51 +:10551000CF91089580E0089580E00895CF93C82F3B +:105520008091E701813081F020F0823009F44CC095 +:1055300042C1A0910E01B0910F018C91813169F0AF +:10554000823209F03AC109C0A0910E01B0910F0159 +:105550008C91813111F0823249F48C2F0E948A2A79 +:1055600081112FC08C2F0E9408282CC08C2F0E94E4 +:105570008C2A811126C0C431E1F070F4CB3081F067 +:10558000C031D1F40E94B22688E599E00E94550707 +:1055900082E08093E70115C0C93259F0C83361F445 +:1055A00085E699E00E9455078CE599E00E94550731 +:1055B00008C01092E70103C186E599E00E945507F3 +:1055C000FEC081E08170FDC0C43220F5CE3108F00C +:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E +:1055E0008093150194E19093140193E0909313013B +:1055F0008093120188E08093110188E2809310016A +:105600008CEF97E00E945507BFC0C33149F1C43108 +:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D +:10562000C83361F0AEC0C13509F49EC0C23509F47B +:1056300099C0CE3409F0A5C06AE09EC00E94B2268F +:10564000A3C08091E601882319F01092E6019CC066 +:1056500089E098E00E94550781E08093E701B1C09E +:1056600083EE97E00E94550781ED97E00E94550771 +:10567000809115011F928F938EEC97E09F938F93EB +:105680000E94EE078CEC97E00E9455078AEB97E0AA +:105690000E945507809114011F928F9387EB97E02A +:1056A0009F938F930E94EE0785EB97E00E9455072A +:1056B00086EA97E00E945507809113011F928F930D +:1056C00083EA97E09F938F930E94EE0781EA97E029 +:1056D0000E94550780E997E00E94550780911201CA +:1056E0001F928F938DE897E09F938F930E94EE0710 +:1056F0008BE897E00E94550786E797E00E945507E0 +:10570000809111011F928F9383E797E09F938F936E +:105710000E94EE0781E797E00E9455078AE597E02F +:105720000E945507809110011F928F9387E597E0A3 +:105730009F938F930E94EE0785E597E00E9455079F +:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B +:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5 +:10576000E60112C061E003C061E006C06AE080911A +:10577000E6010E94C92608C08091E6010E946C27BC +:1057800003C08AEF97E013C08091E601882369F097 +:105790001F928F9384EF97E09F938F930E94EE0761 +:1057A0000F900F900F900F9004C081EF97E00E9430 +:1057B000550781E006C01092E70180E002C080E05A +:1057C00001CFCF910895E1E8F0E080818860808387 +:1057D0008081816080838FB7F89493E090938900F3 +:1057E00090ED909388008FBF0895EFE6F0E0808100 +:1057F000826080830895EFE6F0E080818D7F808372 +:105800000895EFE6F0E0808192E089278083089593 +:105810001F920F920FB60F9211242F933F934F9325 +:105820005F936F937F938F939F93AF93BF93EF9308 +:10583000FF938091E8019091E90101969093E9012D +:105840008093E801811103C082E00E941A0DE0916B +:10585000E901E695E695F0E0EA53F24FE491809194 +:10586000E8018E1303C080E00E941A0DFF91EF91B2 +:10587000BF91AF919F918F917F916F915F914F9168 +:105880003F912F910F900FBE0F901F90189504D04D +:105890006894B1118DC0089570D088F09F5790F032 +:1058A000B92F9927B751A0F0D1F0660F771F881F45 +:1058B000991F1AF0BA95C9F712C0B13081F077D0AC +:1058C000B1E0089574C0672F782F8827B85F39F04A +:1058D000B93FCCF3869577956795B395D9F73EF4A4 +:1058E00090958095709561957F4F8F4F9F4F08954C +:1058F000E89409C097FB3EF490958095709561956A +:105900007F4F8F4F9F4F9923A9F0F92F96E9BB271F +:105910009395F695879577956795B795F111F8CF9B +:10592000FAF4BB0F11F460FF1BC06F5F7F4F8F4F06 +:105930009F4F16C0882311F096E911C0772321F0FC +:105940009EE8872F762F05C0662371F096E8862F94 +:1059500070E060E02AF09A95660F771F881FDAF7EB +:10596000880F9695879597F9089557FD9058440F9D +:10597000551F59F05F3F71F04795880F97FB991FAE +:1059800061F09F3F79F0879508951216130614066B +:10599000551FF2CF4695F1DF08C0161617061806F8 +:1059A000991FF1CF86957105610508940895E894D3 +:1059B000BB2766277727CB0197F908950BD078C0CE +:1059C00069D028F06ED018F0952309F05AC05FC056 +:1059D0001124EECFCADFA0F3959FD1F3950F50E0CD +:1059E000551F629FF001729FBB27F00DB11D639F91 +:1059F000AA27F00DB11DAA1F649F6627B00DA11D37 +:105A0000661F829F2227B00DA11D621F739FB00DDC +:105A1000A11D621F839FA00D611D221F749F33274C +:105A2000A00D611D231F849F600D211D822F762FE5 +:105A30006A2F11249F5750408AF0E1F088234AF0E2 +:105A4000EE0FFF1FBB1F661F771F881F915050402E +:105A5000A9F79E3F510570F014C0AACF5F3FECF349 +:105A6000983EDCF3869577956795B795F795E7951A +:105A70009F5FC1F7FE2B880F911D9695879597F92B +:105A8000089597F99F6780E870E060E008959FEFC0 +:105A900080EC089500240A941616170618060906C5 +:105AA000089500240A941216130614060506089594 +:105AB000092E0394000C11F4882352F0BB0F40F41C +:105AC000BF2B11F460FF04C06F5F7F4F8F4F9F4F5C +:105AD0000895991B79E004C0991F961708F0961B4A +:105AE000881F7A95C9F78095089597FB072E16F4BD +:105AF000009407D077FD09D00E948F2D07FC05D0B8 +:105B00003EF4909581959F4F0895709561957F4FD4 +:105B10000895EE0FFF1F0590F491E02D0994AA1B44 +:105B2000BB1B51E107C0AA1FBB1FA617B70710F088 +:105B3000A61BB70B881F991F5A95A9F780959095BA +:105B4000BC01CD010895F999FECF92BD81BDF89AAF +:105B5000992780B50895A8E1B0E042E050E00C94A8 +:105B6000C62D262FF999FECF1FBA92BD81BD20BD4B +:105B70000FB6F894FA9AF99A0FBE019608950E940A +:105B8000B12D272F0C94B22DDC01CB01FC01F9992A +:105B9000FECF06C0F2BDE1BDF89A319600B40D9279 +:0C5BA00041505040B8F70895F894FFCF32 +:105BAC0020021B0D0C0EE90DB50D820D0101C50176 +:105BBC0028080A03140A3F4D3620394605F904C358 +:105BCC0004A3046A04DD03F6030F0428044804014B +:0A5BDC000203040506070809000093 :00000001FF -- cgit v1.2.3 From 0c9227f6911990fb3329ac3abed16f6bb09d624e Mon Sep 17 00:00:00 2001 From: Alex Olkhovskiy Date: Tue, 12 Jan 2016 18:42:46 +0000 Subject: migrate hhkb to QMK firmware --- keyboard/hhkb_qmk/Makefile | 149 +++++++++++++++++++++ keyboard/hhkb_qmk/README.md | 180 +++++++++++++++++++++++++ keyboard/hhkb_qmk/config.h | 71 ++++++++++ keyboard/hhkb_qmk/hhkb_avr.h | 167 +++++++++++++++++++++++ keyboard/hhkb_qmk/hhkb_qmk.c | 29 ++++ keyboard/hhkb_qmk/hhkb_qmk.h | 30 +++++ keyboard/hhkb_qmk/keymaps/keymap_default.c | 78 +++++++++++ keyboard/hhkb_qmk/keymaps/keymap_lxol.c | 208 +++++++++++++++++++++++++++++ keyboard/hhkb_qmk/matrix.c | 196 +++++++++++++++++++++++++++ 9 files changed, 1108 insertions(+) create mode 100644 keyboard/hhkb_qmk/Makefile create mode 100644 keyboard/hhkb_qmk/README.md create mode 100644 keyboard/hhkb_qmk/config.h create mode 100644 keyboard/hhkb_qmk/hhkb_avr.h create mode 100644 keyboard/hhkb_qmk/hhkb_qmk.c create mode 100644 keyboard/hhkb_qmk/hhkb_qmk.h create mode 100644 keyboard/hhkb_qmk/keymaps/keymap_default.c create mode 100644 keyboard/hhkb_qmk/keymaps/keymap_lxol.c create mode 100644 keyboard/hhkb_qmk/matrix.c diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile new file mode 100644 index 0000000000..8bd44100b7 --- /dev/null +++ b/keyboard/hhkb_qmk/Makefile @@ -0,0 +1,149 @@ +#---------------------------------------------------------------------------- +# 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 = hhkb_qmk + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = hhkb_qmk.c \ + matrix.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 + +# as per original hasu settings +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 +CUSTOM_MATRIX = yes # Custom matrix file for the HHKB +# 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) + +debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION +debug-on: all + +debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT +debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) +debug-off: all + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md new file mode 100644 index 0000000000..606025c411 --- /dev/null +++ b/keyboard/hhkb_qmk/README.md @@ -0,0 +1,180 @@ +hhkb_qmk keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +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: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### 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_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +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 `keymap_.c` 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|] +``` +Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/config.h b/keyboard/hhkb_qmk/config.h new file mode 100644 index 0000000000..ee66e44571 --- /dev/null +++ b/keyboard/hhkb_qmk/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xCAFE +#define DEVICE_VER 0x0104 +#define MANUFACTURER q.m.k +#define PRODUCT HHKB mod +#define DESCRIPTION q.m.k keyboard firmware for HHKB + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define TAPPING_TERM 200 + +/* 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)) \ +) + +/* + * 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/hhkb_qmk/hhkb_avr.h b/keyboard/hhkb_qmk/hhkb_avr.h new file mode 100644 index 0000000000..7ea6322c73 --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_avr.h @@ -0,0 +1,167 @@ +#ifndef HHKB_AVR_H +#define HHKB_AVR_H + +#include +#include +#include +#include +#include + + +// Timer resolution check +#if (1000000/TIMER_RAW_FREQ > 20) +# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." +#endif + + +/* + * HHKB Matrix I/O + * + * row: HC4051[A,B,C] selects scan row0-7 + * row-ext: [En0,En1] row extention for JP + * col: LS145[A,B,C,D] selects scan col0-7 and enable(D) + * key: on: 0/off: 1 + * prev: hysteresis control: assert(1) when previous key state is on + */ + + +#if defined(__AVR_ATmega32U4__) +/* + * For TMK HHKB alt controller(ATMega32U4) + * + * row: PB0-2 + * col: PB3-5,6 + * key: PD7(pull-uped) + * prev: PB7 + * power: PD4(L:off/H:on) + * row-ext: PC6,7 for HHKB JP(active low) + */ +static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } +static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } +static inline bool KEY_STATE(void) { return (PIND & (1<<7)); } +static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } +static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } +#ifdef HHKB_POWER_SAVING +static inline void KEY_POWER_ON(void) { + DDRB = 0xFF; PORTB = 0x40; // change pins output + DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on + /* Without this wait you will miss or get false key events. */ + _delay_ms(5); // wait for powering up +} +static inline void KEY_POWER_OFF(void) { + /* input with pull-up consumes less than without it when pin is open. */ + DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up + DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off +} +static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } +#else +static inline void KEY_POWER_ON(void) {} +static inline void KEY_POWER_OFF(void) {} +static inline bool KEY_POWER_STATE(void) { return true; } +#endif +static inline void KEY_INIT(void) +{ + /* row,col,prev: output */ + DDRB = 0xFF; + PORTB = 0x40; // unable + /* key: input with pull-up */ + DDRD &= ~0x80; + PORTD |= 0x80; +#ifdef HHKB_JP + /* row extention for HHKB JP */ + DDRC |= (1<<6|1<<7); + PORTC |= (1<<6|1<<7); +#endif + KEY_UNABLE(); + KEY_PREV_OFF(); + + KEY_POWER_OFF(); +} +static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) +{ + PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); +#ifdef HHKB_JP + if ((ROW) & 0x08) PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<6); + else PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<7); +#endif +} + + +#elif defined(__AVR_AT90USB1286__) +/* + * For Teensy++(AT90USB1286) + * + * HHKB pro HHKB pro2 + * row: PB0-2 (6-8) (5-7) + * col: PB3-5,6 (9-12) (8-11) + * key: PE6(pull-uped) (4) (3) + * prev: PE7 (5) (4) + * + * TODO: convert into 'staitc inline' function + */ +#define KEY_INIT() do { \ + DDRB |= 0x7F; \ + DDRE |= (1<<7); \ + DDRE &= ~(1<<6); \ + PORTE |= (1<<6); \ +} while (0) +#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \ + (((COL) & 0x07)<<3) | \ + ((ROW) & 0x07)) +#define KEY_ENABLE() (PORTB &= ~(1<<6)) +#define KEY_UNABLE() (PORTB |= (1<<6)) +#define KEY_STATE() (PINE & (1<<6)) +#define KEY_PREV_ON() (PORTE |= (1<<7)) +#define KEY_PREV_OFF() (PORTE &= ~(1<<7)) +#define KEY_POWER_ON() +#define KEY_POWER_OFF() +#define KEY_POWER_STATE() true + + +#else +# error "define code for matrix scan" +#endif + + +#if 0 +// For ATMega328P with V-USB +// +// #elif defined(__AVR_ATmega328P__) +// Ports for V-USB +// key: PB0(pull-uped) +// prev: PB1 +// row: PB2-4 +// col: PC0-2,3 +// power: PB5(Low:on/Hi-z:off) +#define KEY_INIT() do { \ + DDRB |= 0x3E; \ + DDRB &= ~(1<<0); \ + PORTB |= 1<<0; \ + DDRC |= 0x0F; \ + KEY_UNABLE(); \ + KEY_PREV_OFF(); \ +} while (0) +#define KEY_SELECT(ROW, COL) do { \ + PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \ + PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \ +} while (0) +#define KEY_ENABLE() (PORTC &= ~(1<<3)) +#define KEY_UNABLE() (PORTC |= (1<<3)) +#define KEY_STATE() (PINB & (1<<0)) +#define KEY_PREV_ON() (PORTB |= (1<<1)) +#define KEY_PREV_OFF() (PORTB &= ~(1<<1)) +// Power supply switching +#define KEY_POWER_ON() do { \ + KEY_INIT(); \ + PORTB &= ~(1<<5); \ + _delay_ms(1); \ +} while (0) +#define KEY_POWER_OFF() do { \ + DDRB &= ~0x3F; \ + PORTB &= ~0x3F; \ + DDRC &= ~0x0F; \ + PORTC &= ~0x0F; \ +} while (0) +#endif + +#endif diff --git a/keyboard/hhkb_qmk/hhkb_qmk.c b/keyboard/hhkb_qmk/hhkb_qmk.c new file mode 100644 index 0000000000..9c90e6eb44 --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_qmk.c @@ -0,0 +1,29 @@ +#include "hhkb_qmk.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)(); + } +}; + +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/hhkb_qmk/hhkb_qmk.h b/keyboard/hhkb_qmk/hhkb_qmk.h new file mode 100644 index 0000000000..f6bf20f43b --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_qmk.h @@ -0,0 +1,30 @@ +#ifndef HHKB_QMK_H +#define HHKB_QMK_H + +#include "matrix.h" +#include "keymap_common.h" +//#include "backlight.h" +#include + +#define KEYMAP( \ + K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ + K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ + K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ + K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ + K35, K36, K37, K57, K56) \ + \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ +} + +void * matrix_init_user(void); +void * matrix_scan_user(void); + +#endif diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/keymap_default.c new file mode 100644 index 0000000000..bcd8ead377 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/keymap_default.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + 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_ENT, \ + 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(HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + KC_PWR, 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_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, 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; +}; diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c new file mode 100644 index 0000000000..3256fda516 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c @@ -0,0 +1,208 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * lxol HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define WIN 1 +#define HHKB 2 +#define RGUILEV 3 +#define LGUILEV 4 +#define RALTLEV 5 +#define LALTLEV 6 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [BASE] = KEYMAP( // layer 0 : default + + + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ + 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(HHKB), \ + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer 1: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |---+---+---+---+---| + | | | | | | + |---+---+---+---+---| + */ + + [HHKB] = KEYMAP( + KC_PWR, 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_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + /* Layer LGUI: All keys with RGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RGUILEV] = KEYMAP( // Right GUI layer by KC_L + + RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ + RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ + RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ + RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LGUI: All keys with LGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LGUILEV] = KEYMAP( // Right GUI layer by KC_L + + LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ + LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ + LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ + KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), + + /* Layer LALT: All keys with RALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RALTLEV] = KEYMAP( // Right ALT layer by KC_L + + RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ + RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ + RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ + RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LALT: All keys with LALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LALTLEV] = KEYMAP( // Right ALT layer by KC_L + + LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ + LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ + LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ + KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), + + + /* Layer WIN: Win layer + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + + |------+------+-------+------+------| + | LGui | LAlt | Space | RGui | Ralt | + |------+------+-------+------+------| + */ + + [WIN] = KEYMAP( // BASE level with swapped GUI/ALT + + + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ + 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(HHKB), \ + KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* +}; + +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; +}; diff --git a/keyboard/hhkb_qmk/matrix.c b/keyboard/hhkb_qmk/matrix.c new file mode 100644 index 0000000000..14fae0b82c --- /dev/null +++ b/keyboard/hhkb_qmk/matrix.c @@ -0,0 +1,196 @@ +/* +Copyright 2011 Jun Wako + +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 . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "timer.h" +#include "matrix.h" +#include "hhkb_avr.h" +#include +#include "suspend.h" +#include "lufa.h" + + +// matrix power saving +#define MATRIX_POWER_SAVE 10000 +static uint32_t matrix_last_modified = 0; + +// matrix state buffer(1:on, 0:off) +static matrix_row_t *matrix; +static matrix_row_t *matrix_prev; +static matrix_row_t _matrix0[MATRIX_ROWS]; +static matrix_row_t _matrix1[MATRIX_ROWS]; + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ +#ifdef DEBUG + debug_enable = true; + debug_keyboard = true; +#endif + + KEY_INIT(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; + matrix = _matrix0; + matrix_prev = _matrix1; +} + +uint8_t matrix_scan(void) +{ + uint8_t *tmp; + + tmp = matrix_prev; + matrix_prev = matrix; + matrix = tmp; + + // power on + if (!KEY_POWER_STATE()) KEY_POWER_ON(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + KEY_SELECT(row, col); + _delay_us(5); + + // Not sure this is needed. This just emulates HHKB controller's behaviour. + if (matrix_prev[row] & (1< 20/(1000000/TIMER_RAW_FREQ)) { + matrix[row] = matrix_prev[row]; + } + + _delay_us(5); + KEY_PREV_OFF(); + KEY_UNABLE(); + + // NOTE: KEY_STATE keep its state in 20us after KEY_ENABLE. + // This takes 25us or more to make sure KEY_STATE returns to idle state. +#ifdef HHKB_JP + // Looks like JP needs faster scan due to its twice larger matrix + // or it can drop keys in fast key typing + _delay_us(30); +#else + _delay_us(75); +#endif + } + if (matrix[row] ^ matrix_prev[row]) matrix_last_modified = timer_read32(); + } + // power off + if (KEY_POWER_STATE() && + (USB_DeviceState == DEVICE_STATE_Suspended || + USB_DeviceState == DEVICE_STATE_Unattached ) && + timer_elapsed32(matrix_last_modified) > MATRIX_POWER_SAVE) { + KEY_POWER_OFF(); + suspend_power_down(); + } + return 1; +} + +bool matrix_is_modified(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + if (matrix[i] != matrix_prev[i]) + return true; + } + return false; +} + +inline +bool matrix_has_ghost(void) +{ + return false; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1< Date: Wed, 13 Jan 2016 11:21:55 +0100 Subject: andw layout added --- .../ergodox_ez/keymaps/keymap_osx_de_andw_koy.c | 259 +++++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c new file mode 100644 index 0000000000..2eba57f367 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c @@ -0,0 +1,259 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define CRSR 3 // media keys +#define NUMB 4 // number keys + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ANDW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_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_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: ANDW-Koy layer + * ANDW-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 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ANDW | 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |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; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; -- cgit v1.2.3 From ddab0dc32cab391e0567c07a766f631878fb710e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 11:38:24 +0100 Subject: updated ANDW layout --- keyboard/ergodox_ez/keymaps/keymap_default_osx.png | Bin 185123 -> 0 bytes .../ergodox_ez/keymaps/keymap_osx_de_andw_koy.c | 31 +++++++++++---------- 2 files changed, 17 insertions(+), 14 deletions(-) delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_osx.png diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx.png b/keyboard/ergodox_ez/keymaps/keymap_default_osx.png deleted file mode 100644 index f8f6eb9a72..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default_osx.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c index 2eba57f367..d32e01ddc4 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c @@ -1,3 +1,6 @@ +// 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" @@ -6,7 +9,7 @@ #define BASE 0 // default layer #define SYMB 1 // symbols #define MDIA 2 // media keys -#define CRSR 3 // media keys +#define ANDW 3 // media keys #define NUMB 4 // number keys @@ -15,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | ß | + * | 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 | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -25,28 +28,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | Date: Wed, 13 Jan 2016 11:45:35 +0100 Subject: bugfix --- keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c index d32e01ddc4..0d7b713ae6 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c @@ -173,7 +173,7 @@ KEYMAP( 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_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, -- cgit v1.2.3 From 06bdd4869fb693ad805e6681390a7d0b05325436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 11:53:09 +0100 Subject: minor fix --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 19c0b4b5f6..3ace8b76e7 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -1,6 +1,3 @@ -// 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" @@ -18,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | ß | + * | 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 | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -40,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, CTL_T(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, -- cgit v1.2.3 From 7ef03c59dbf59ceb5d494eff79abf4339c253051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 13:16:05 +0100 Subject: typo and copy past fix --- .../ergodox_ez/keymaps/keymap_osx_de_andw_koy.c | 262 --------------------- 1 file changed, 262 deletions(-) delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c deleted file mode 100644 index 0d7b713ae6..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_andw_koy.c +++ /dev/null @@ -1,262 +0,0 @@ -// 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_german.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define ANDW 3 // media keys -#define NUMB 4 // number keys - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic 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 | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ANDW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// 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: ANDW-Koy layer - * ANDW-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 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ANDW | 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 | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |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; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } - -}; -- cgit v1.2.3 From eea41339b92504b40da57af039b6a3345957b21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 13:17:28 +0100 Subject: added adnw layout --- .../ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c | 262 +++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c new file mode 100644 index 0000000000..7e9defafa7 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c @@ -0,0 +1,262 @@ +// 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_german.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 + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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: 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |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; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; -- cgit v1.2.3 From 2bde3f550f287e752fdd6f70e7fc499b9cf00e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 13:30:01 +0100 Subject: typo fix --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 3ace8b76e7..91f2c33f31 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, CTL_T(LGUI(KC_V)), + 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, -- cgit v1.2.3 From 6215ce2a89d1755fe9d84e21c27830f853b65f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 13:37:29 +0100 Subject: adding fixed hex file --- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex index fd2a022599..43e328b1cf 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex @@ -16,8 +16,8 @@ :1000F00000001E00140004001D7164004D001F006C :100100001A0016001B00E1044C0020000800070044 :10011000060050002A0021001500090019004F00B8 -:100120004A00220017000A00050000000254E00007 -:10013000E3000000E20000002E77E400E70000008A +:100120004A00220017000A000500000002541908C6 +:10013000E3000000E20000002E770608E700000060 :10014000E60000002E7F23001C000B0011000000C1 :100150000454240018000D00100052004B0025002C :100160000C000E00360051002C00260012000F007B @@ -34,10 +34,10 @@ :1002100001004200240425041F021E0201004300C5 :1002200031002604310201000100440045000100B4 :100230002D02010000000100010001000100010089 -:1002400000000100010001000100010001000100A7 -:100250000100F2000100010001000100F000F100C6 -:100260000100F400010001000100F3000100F500AD -:100270000100010001000100010000000100010077 +:100240000000010001000100FB00010001000100AD +:100250000100F200F900010001000100F000F100CE +:10026000FA00F400010001000100F300FC00F500B9 +:100270000100010001000100F60000000100010082 :100280000100000001000000010001000100000069 :100290000100000001000100010001000100000058 :1002A0000100010001000100A800A90001000100F7 @@ -219,9 +219,9 @@ :100DA00020424F4F544D41474943204D4F555345E5 :100DB0004B45592045585452414B455920434F4EBD :100DC000534F4C4520434F4D4D414E44204E4B52C6 -:100DD0004F203531320A004255494C443A2064379D -:100DE00034333332632D6469727479202831343A94 -:100DF00033383A3536204A616E2020362032303181 +:100DD0004F203531320A004255494C443A206130A7 +:100DE00038353236352D6469727479202830393AB5 +:100DF00034343A3137204A616E2031332032303179 :100E000036290A005649443A203078464545442858 :100E10004572676F446F7820455A29205049443AFB :100E200020307831333037284572676F446F78202F -- cgit v1.2.3 From 831a21899fac495dd63f0c33da0f7e8f3f90c986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 13 Jan 2016 14:04:46 +0100 Subject: updating layout png --- .../ergodox_ez/keymaps/keymap_osx_de_highres.png | Bin 755855 -> 756294 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png index c16436f2c3..1682c7b6d7 100644 Binary files a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png differ -- cgit v1.2.3 From e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Fri, 15 Jan 2016 15:55:00 +0100 Subject: using keymap_german_osx.h more, adding macros for CTRL/CMD-V combination --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 89 ++++++++++++++++++------- quantum/keymap_extras/keymap_german_osx.h | 100 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 25 deletions(-) create mode 100644 quantum/keymap_extras/keymap_german_osx.h diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 91f2c33f31..cc9076eec8 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -1,7 +1,7 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" -#include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_german_osx.h" #define BASE 0 // default layer #define SYMB 1 // symbols @@ -9,7 +9,9 @@ #define CRSR 3 // media keys #define NUMB 4 // number keys - +#define M_CTRL_CMDV 1 +#define M_CTRL_CMDC 2 +#define M_MEH_SH_ACUT 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -37,21 +39,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // 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, + KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTRL_CMDV), + KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, + TG(3), DE_A, DE_S, DE_D, DE_F, DE_G, + KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_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, + TG(2), M(M_MEH_SH_ACUT), //MEH_T(LSFT(DE_ACUT)), //need to create macro for that + 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), + M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, + KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, + DE_H, DE_J, DE_K, DE_L, DE_OE,LT(MDIA,DE_AE), + KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, + KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH), + ALL_T(DE_ACUT), TG(4), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC ), @@ -60,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -80,9 +82,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, + KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, @@ -187,15 +189,52 @@ 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; // MACRODOWN only works in this function switch(id) { case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + 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) { + 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(C),U(LGUI),END); + } + } + break; + case 3: + 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); //cannot use DE_ACUT here, as macro needs KC_ prefix + } + } + break; } return MACRO_NONE; }; diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h new file mode 100644 index 0000000000..b011561e2f --- /dev/null +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -0,0 +1,100 @@ +#ifndef KEYMAP_GERMAN_OSX +#define KEYMAP_GERMAN_OSX + +#ifdef KEYMAP_GERMAN + #warning redefining german keys +#endif +#include "keymap_common.h" + +// Alt gr + +// normal characters +#define DE_Z KC_Y +#define DE_Y KC_Z + +#define DE_A KC_A +#define DE_B KC_B +#define DE_C KC_C +#define DE_D KC_D +#define DE_E KC_E +#define DE_F KC_F +#define DE_G KC_G +#define DE_H KC_H +#define DE_I KC_I +#define DE_J KC_J +#define DE_K KC_K +#define DE_L KC_L +#define DE_M KC_M +#define DE_N KC_N +#define DE_O KC_O +#define DE_P KC_P +#define DE_Q KC_Q +#define DE_R KC_R +#define DE_S KC_S +#define DE_T KC_T +#define DE_U KC_U +#define DE_V KC_V +#define DE_W KC_W +#define DE_X KC_X + +#define DE_0 KC_0 +#define DE_1 KC_1 +#define DE_2 KC_2 +#define DE_3 KC_3 +#define DE_4 KC_4 +#define DE_5 KC_5 +#define DE_6 KC_6 +#define DE_7 KC_7 +#define DE_8 KC_8 +#define DE_9 KC_9 + +#define DE_DOT KC_DOT +#define DE_COMM KC_COMM + +#define DE_SS KC_MINS +#define DE_AE KC_QUOT +#define DE_UE KC_LBRC +#define DE_OE KC_SCLN + +#define DE_CIRC KC_NUBS // accent circumflex ^ and ring ° +#define DE_ACUT KC_EQL // accent acute ´ and grave ` +#define DE_PLUS KC_RBRC // + and * and ~ +#define DE_HASH KC_BSLS // # and ' +#define DE_LESS KC_GRV // < and > and | +#define DE_MINS KC_SLSH // - and _ + +// shifted characters +#define DE_RING LSFT(DE_CIRC) // ° +#define DE_EXLM LSFT(KC_1) // ! +#define DE_DQOT LSFT(KC_2) // " +#define DE_PARA LSFT(KC_3) // § +#define DE_DLR LSFT(KC_4) // $ +#define DE_PERC LSFT(KC_5) // % +#define DE_AMPR LSFT(KC_6) // & +#define DE_SLSH LSFT(KC_7) // / +#define DE_LPRN LSFT(KC_8) // ( +#define DE_RPRN LSFT(KC_9) // ) +#define DE_EQL LSFT(KC_0) // = +#define DE_QST LSFT(DE_SS) // ? +#define DE_GRV LSFT(DE_ACUT) // ` +#define DE_ASTR LSFT(DE_PLUS) // * +#define DE_QUOT LSFT(DE_HASH) // ' +#define DE_MORE LSFT(DE_LESS) // > +#define DE_COLN LSFT(KC_DOT) // : +#define DE_SCLN LSFT(KC_COMM) // ; +#define DE_UNDS LSFT(DE_MINS) // _ + +// Alt-ed characters +#define DE_SQ2 LALT(KC_2) // ² +#define DE_SQ3 LALT(KC_3) // ³ +#define DE_LCBR LALT(KC_7) // { +#define DE_LBRC LALT(KC_5) // [ +#define DE_RBRC LALT(KC_6) // ] +#define DE_RCBR LALT(KC_9) // } +#define DE_BSLS LALT(LSFT(KC_7)) // backslash +#define DE_AT LALT(DE_L) // @ +#define DE_EURO LALT(KC_E) // € +#define DE_TILD LALT(DE_N) // ~ +#define DE_PIPE LALT(DE_7) // | + +#endif -- cgit v1.2.3 From 7783b47b8bad660503a035b2ac1f55e64326047a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Fri, 15 Jan 2016 16:04:55 +0100 Subject: updated cheat sheet, hex file --- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 3002 ++++++++++---------- .../ergodox_ez/keymaps/keymap_osx_de_highres.png | Bin 756294 -> 749565 bytes 2 files changed, 1508 insertions(+), 1494 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex index 43e328b1cf..eb82384d54 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex @@ -1,1495 +1,1509 @@ -:100000000C94AC070C94F0070C94F0070C94F007D8 -:100010000C94F0070C94F0070C94F0070C94F00784 -:100020000C94F0070C94F0070C9412130C94E41346 -:100030000C94F0070C94F0070C94F0070C94F00764 -:100040000C94F0070C94BC2C0C94F0070C94F00763 -:100050000C94F0070C94B4220C94F0070C94F00765 -:100060000C94F0070C94F0070C94F0070C94F00734 -:100070000C94F0070C94F0070C94F0070C94F00724 -:100080000C94F0070C94F0070C94F0070C94F00714 -:100090000C94F0070C94F0070C94F0070C94F00704 -:1000A0000C94F0070C94F0070C94F007511473149F -:1000B000611573146115B814DB14611530154315FF -:1000C0008A188A18B918B918FD183B19551B551B01 -:1000D0005419551B551A551A291B551B551B401BE6 -:1000E0000000F0A1F0A329002B000354E1003581AA -:1000F00000001E00140004001D7164004D001F006C -:100100001A0016001B00E1044C0020000800070044 -:10011000060050002A0021001500090019004F00B8 -:100120004A00220017000A000500000002541908C6 -:10013000E3000000E20000002E770608E700000060 -:10014000E60000002E7F23001C000B0011000000C1 -:100150000454240018000D00100052004B0025002C -:100160000C000E00360051002C00260012000F007B -:100170003700E108280027001300330038713000F1 -:100180004E002D002F003482E50031810000010077 -:10019000010001000100010000003A0035003100BB -:1001A0000100010001003B00350221026400010052 -:1001B0004C003C001E0224062202010001003D000A -:1001C0002D0224022404010001003E00010037003A -:1001D0001104000001000100010000000100000006 -:1001E00001000100010000000100000001003F00CB -:1001F00024062402230200000100400022042502FC -:1002000035000100010041002304260235023700B9 -:1002100001004200240425041F021E0201004300C5 -:1002200031002604310201000100440045000100B4 -:100230002D02010000000100010001000100010089 -:100240000000010001000100FB00010001000100AD -:100250000100F200F900010001000100F000F100CE -:10026000FA00F400010001000100F300FC00F500B9 -:100270000100010001000100F60000000100010082 -:100280000100000001000000010001000100000069 -:100290000100000001000100010001000100000058 -:1002A0000100010001000100A800A90001000100F7 -:1002B00001000100AC00AA00B6000100010001002D -:1002C000AB0050000100010001000100520051008C -:1002D0000100AE000100010001004F00000001001C -:1002E0000100010001000100000001000100010007 -:1002F00001000100010001000100010001000100F6 -:1003000001000100010001000100010001000100E5 -:1003100001000100010001000100010001000100D5 -:1003200001000000010001000100000001000000C8 -:1003300001000100010000000100000001000100B7 -:1003400001000100010000000100010001000100A6 -:100350000100010001000100010001000100010095 -:100360000100010001000100010050000100010036 -:1003700001000100520051000100010001000100D4 -:1003800001004F0000000100010001000100010018 -:100390000000010001000100010001000100010056 -:1003A0000100500001000100010001005200510055 -:1003B000010001000100010001004F0001000100E7 -:1003C0000100010001000100010000000100010026 -:1003D0000100000001000000010001000100000018 -:1003E0000100000001003F00520051002302000004 -:1003F00001004000240021001E00270001004100F0 -:10040000250022001F0037000100420026002300C3 -:1004100020002700010043003002300024022E009B -:1004200001004400450001000100010000000A0035 -:100430002530313662003A200025303258000A72E9 -:100440002F63203031323334353637383941424327 -:100450004445460A000A002530325800626F756E26 -:100460006365213A20006C656674207369646520B9 -:1004700061747461636865640A006C6566742073F6 -:10048000696465206E6F7420726573706F6E646945 -:100490006E670A00747279696E6720746F207265E6 -:1004A000736574206D637032333031380A000A444A -:1004B000454255473A20656E61626C65642E0A00BC -:1004C0005B735D004B6579626F6172642073746168 -:1004D00072742E0A005B575D005B535D005B525DDA -:1004E000005B445D005B435D0016034500720067DE -:1004F000006F0044006F007800200045005A0000A3 -:100500000016034500720067006F0044006F00781A -:1005100000200045005A0000000403090409028D70 -:1005200000050100A0FA090400000103010100090F -:100530002111010001223F000705810308000A097B -:100540000401000103010200092111010001224DF3 -:10055000000705820308000A0904020001030000E5 -:10056000000921110100012236000705830308005C -:100570000A0904030002030000000921110100011F -:100580002220000705840320000107050403200042 -:100590000109040400010300000009211101000108 -:1005A0002239000705850310000112011001000027 -:1005B0000008EDFE07130100010200010501090614 -:1005C000A101050719E029E7150025019508750126 -:1005D000810205081901290595057501910295010A -:1005E00075039101050719002977150025019578F4 -:1005F00075018102C00631FF0974A101097515005A -:1006000025FF9520750881020976150025FF9520A4 -:1006100075089102C005010980A10185021601003B -:1006200026B7001A01002AB700751095018100C095 -:10063000050C0901A1018503160100269C021A017F -:10064000002A9C02751095018100C005010902A1D4 -:10065000010901A1000509190129051500250195C8 -:1006600005750181029501750381010501093009B4 -:10067000311581257F950275088106093815812578 -:100680007F950175088106050C0A38021581257FC2 -:10069000950175088106C0C005010906A10105077D -:1006A00019E029E7150025019508750181029501DA -:1006B0007508810105081901290595057501910243 -:1006C0009501750391010507190029FF150025FF04 -:1006D000950675088100C00A002530325820006B4D -:1006E0006579626F6172645F7265706F72743A20CF -:1006F000000A0025303258006B6579626F617264C0 -:100700005F7365745F6C65643A200064656C5F6B51 -:1007100065795F6269743A2063616E27742064654D -:100720006C3A20253032580A006164645F6B657949 -:100730005F6269743A2063616E2774206164643A71 -:1007400020253032580A00646F6E652E0A00626FF1 -:100750006F676D61676963207363616E3A202E2E47 -:100760002E2000290A002575002F002575005D2820 -:10077000002564002000256400200025640020007E -:100780002564007C0025303258006D6F7573656BF1 -:100790006579205B62746E7C782079207620685DB4 -:1007A000287265702F61636C293A205B006D6B5F66 -:1007B000776865656C5F74696D655F746F5F6D61A7 -:1007C00078203D2025640A006D6B5F776865656C55 -:1007D0005F6D61785F7370656564203D2025640AF4 -:1007E000006D6B5F74696D655F746F5F6D6178201C -:1007F0003D2025640A006D6B5F6D61785F737065E5 -:100800006564203D2025640A006D6B5F696E746528 -:100810007276616C203D2025640A006D6B5F646513 -:100820006C6179203D2025640A006D6B5F776865F7 -:10083000656C5F74696D655F746F5F6D6178203D95 -:100840002025640A006D6B5F776865656C5F6D617C -:10085000785F7370656564203D2025640A006D6BC8 -:100860005F74696D655F746F5F6D6178203D2025F1 -:10087000640A006D6B5F6D61785F737065656420FD -:100880003D2025640A006D6B5F696E746572766148 -:100890006C203D2025640A006D6B5F64656C617996 -:1008A000203D2025640A000A00257500363A20778D -:1008B0006865656C5F74696D655F746F5F6D6178A5 -:1008C0003A20000A00257500353A20776865656C86 -:1008D0005F6D61785F73706565643A20000A00257A -:1008E0007500343A2074696D655F746F5F6D61786F -:1008F0003A20000A00257500333A206D61785F7355 -:10090000706565643A20000A00257500323A206956 -:100910006E74657276616C286D73293A20000A0046 -:10092000257500313A2064656C6179282A31306D73 -:1009300073293A20000A092D2056616C75657320D1 -:100940002D0A004D3E004D25643E20003F0073659A -:10095000742064656661756C740A00433E200077FC -:10096000686572652064656C74613A2063757273A2 -:100970006F723D25642C20776865656C3D25640A9F -:1009800053656520687474703A2F2F656E2E7769F1 -:100990006B6970656469612E6F72672F77696B6927 -:1009A0002F4D6F7573655F6B6579730A000A092DAA -:1009B000204D6F7573656B6579202D0A4553432F64 -:1009C000713A09717569740A313A0964656C617923 -:1009D000282A31306D73290A323A09696E746572BA -:1009E00076616C286D73290A333A096D61785F73FB -:1009F000706565640A343A0974696D655F746F5F88 -:100A00006D61780A353A09776865656C5F6D617864 -:100A10005F73706565640A363A09776865656C5F6F -:100A200074696D655F746F5F6D61780A0A703A0969 -:100A30007072696E742076616C7565730A643A0928 -:100A40007365742064656661756C74730A75703AB9 -:100A5000092B310A646F776E3A092D310A70677578 -:100A6000703A092B31300A7067646F776E3A092D3E -:100A700031300A0A7370656564203D2064656C74CA -:100A800061202A206D61785F7370656564202A207B -:100A900028726570656174202F2074696D655F74BC -:100AA0006F5F6D6178290A003F004D3E2000433E94 -:100AB00020004C25640A000A092D20436F6E736FD5 -:100AC0006C65202D0A4553432F713A09717569747D -:100AD0000A6D3A096D6F7573656B65790A000A09CD -:100AE0002D204D61676963202D0A643A09646562AF -:100AF00075670A783A096465627567206D6174727A -:100B000069780A6B3A096465627567206B6579627A -:100B10006F6172640A6D3A096465627567206D6F72 -:100B20007573650A763A0976657273696F6E0A7332 -:100B30003A097374617475730A633A09636F6E736B -:100B40006F6C65206D6F64650A302D343A096C61F5 -:100B5000796572302D34284631302D4634290A50BB -:100B60006175733A09626F6F746C6F616465720AC4 -:100B7000653A09656570726F6D0A6E3A094E4B529F -:100B80004F0A7A3A09736C656570204C45442074AD -:100B90006573740A000A002575002E6E6B726F3A39 -:100BA00020000A002575002E737761705F62616313 -:100BB0006B736C6173685F6261636B7370616365B3 -:100BC0003A20000A002575002E737761705F677206 -:100BD0006176655F6573633A20000A002575002E13 -:100BE0006E6F5F6775693A20000A002575002E73E5 -:100BF0007761705F72616C745F726775693A20002B -:100C00000A002575002E737761705F6C616C745FEC -:100C10006C6775693A20000A002575002E636170C3 -:100C2000736C6F636B5F746F5F636F6E74726F6C06 -:100C30003A20000A002575002E737761705F636F9C -:100C40006E74726F6C5F636170736C6F636B3A206C -:100C5000000A0025303258006B65796D61705F6362 -:100C60006F6E6669672E7261773A20000A002575FB -:100C7000002E6D6F7573653A20000A002575002EF1 -:100C80006B6579626F6172643A20000A0025750015 -:100C90002E6D61747269783A20000A002575002E65 -:100CA000656E61626C653A20000A0025303258009A -:100CB00064656275675F636F6E6669672E726177E0 -:100CC0003A20000A0025750064656661756C745FE2 -:100CD0006C617965723A20003F004E4B524F3A20CA -:100CE0006F66660A004E4B524F3A206F6E0A0074D0 -:100CF000696D65725F636F756E743A202530346C70 -:100D0000580A006B6579626F6172645F6E6B726F17 -:100D10003A2025580A006B6579626F6172645F69D9 -:100D2000646C653A2025580A006B6579626F6172C0 -:100D3000645F70726F746F636F6C3A2025580A009D -:100D4000686F73745F6B6579626F6172645F6C6505 -:100D5000647328293A2025580A000A092D20537463 -:100D600061747573202D0A004743433A20342E39AD -:100D70002E33204156522D4C4942433A20312E38D1 -:100D80002E31204156525F415243483A20617672DB -:100D9000350A004F5054494F4E533A204C55464166 -:100DA00020424F4F544D41474943204D4F555345E5 -:100DB0004B45592045585452414B455920434F4EBD -:100DC000534F4C4520434F4D4D414E44204E4B52C6 -:100DD0004F203531320A004255494C443A206130A7 -:100DE00038353236352D6469727479202830393AB5 -:100DF00034343A3137204A616E2031332032303179 -:100E000036290A005649443A203078464545442858 -:100E10004572676F446F7820455A29205049443AFB -:100E200020307831333037284572676F446F78202F -:100E3000455A29205645523A203078303030310A10 -:100E400000444553433A20742E6D2E6B2E206B6563 -:100E500079626F617264206669726D776172652074 -:100E6000666F72204572676F646F780A000A092DF9 -:100E70002056657273696F6E202D0A000A6D6F75BA -:100E800073653A206F66660A000A6D6F7573653A7E -:100E9000206F6E0A000A6B6579626F6172643A2096 -:100EA0006F66660A000A6B6579626F6172643A2048 -:100EB0006F6E0A000A6D61747269783A206F666617 -:100EC0000A000A6D61747269783A206F6E0A000A2E -:100ED00064656275673A206F6E0A000A6465627520 -:100EE000673A206F66660A000A0A626F6F746C6F59 -:100EF000616465722E2E2E2000433E2000656563DE -:100F00006F6E6669673A0A00536C656570204C45E0 -:100F10004420746573740A000000000000000000A3 -:100F2000000000010204060A0F17202C3A4A5D71E6 -:100F3000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D95 -:100F400087715D4A3A2C20170F0A0604020100003F -:100F5000000000000000000011241FBECFEFDAE007 -:100F6000DEBFCDBF04B603FE24C08091F90190918D -:100F7000FA01A091FB01B091FC018730904BA74092 -:100F8000B04BB9F41092F9011092FA011092FB01E2 -:100F90001092FC0114BE84B7877F84BF88E10FB62E -:100FA000F89480936000109260000FBEE0E0FFE3D1 -:100FB000099511E0A0E0B1E0E4E1FDE502C0059093 -:100FC0000D92AA33B107D9F711E0AAE3B1E001C04D -:100FD0001D92A93FB107E1F70E944A100C94882E98 -:100FE0000C940000FF93EF93E0913A01F0913B01E4 -:100FF000309709F00995EF91FF910895FC018591D3 -:10100000803011F0EFDFFBCF0895FF27E0E230E200 -:1010100047FF0CC0419597FF09C0EDE260957095C0 -:1010200080959095611D711D811D911D27FF02C046 -:10103000219530E350E2AA27660F771F881F991F7A -:10104000AA1FA41710F0A41B63955A95A9F7AA30FC -:1010500008F0A95FA05DAF93F39561157105810557 -:10106000910541F7ED3211F4EF93F395F21718F46F -:101070003F93F395FBCF8F91B5DFFA95E1F7089594 -:10108000E991F9918591803021F0853219F0AADF3C -:10109000F9CF089520E0E89455915532C1F35033CB -:1010A00011F4689455915A3348F4505390F3220F39 -:1010B000022E220F220F200D250FF4CF0EF42195C2 -:1010C00089919991533619F3533729F1533559F1D1 -:1010D000BC0188279927E8945C3621F4899199917D -:1010E00068945591543639F446EF7EF077FF0DC081 -:1010F0008FEF9FEF0AC055374AE039F0583540E18D -:1011000021F0523642E009F00895FF93EF937DDF1E -:10111000EF91FF91B7CFFF93EF93FC018191803066 -:10112000B9F360DFFBCFFF93EF9368DFF1CFDF937D -:10113000CF93CDB7DEB72596A3DFCF91DF9108958A -:1011400061110BC0FC018281882321F085EE0E9491 -:10115000271703C085EE0E94EF1780E090E0089506 -:1011600008956091BC017091BD018091BE01909184 -:10117000BF010E94B72156985E9825982D98269811 -:101180002E9827982F98823061F018F4813031F032 -:101190000895833049F0843051F00895259A2D9AAE -:1011A0000895269A2E9A0895279A2F9A0895259A97 -:1011B0002D9A279A2F9A089581EB98E0892B11F0A8 -:1011C0000E94B10880E090E0089556985E982598B6 -:1011D0002D9826982E9827982F988FEF90E090932F -:1011E00089008093880090938B0080938A0090936D -:1011F0008D0080938C00259A2D9A2FEF80E792E046 -:10120000215080409040E1F700C00000269A2E9ABD -:101210002FEF80E792E0215080409040E1F700C03E -:101220000000279A2F9A2FEF80E792E0215080400C -:101230009040E1F700C0000025982D982FEF80E73F -:1012400092E0215080409040E1F700C000002698D5 -:101250002E982FEF80E792E0215080409040E1F7F8 -:1012600000C0000027982F9856985E9825982D98D2 -:1012700026982E9827982F98089589EA80938000C1 -:1012800089E08093810024982C983F988AB18F74CC -:101290008AB96E98479A8BB1806B8BB9769A0E9407 -:1012A000E50880EB98E0892B11F00E94B00880E0FF -:1012B00090E0089580E28093000180913C018111CB -:1012C0000EC00E94A90981E080933C012FEF83EDBD -:1012D00090E3215080409040E1F700C0000080E49E -:1012E0000E94AF098093000181112EC00E94D9098C -:1012F00080930001811128C00E94D90980930001C8 -:10130000811122C08FE30E94D909809300018111CD -:101310001BC00E94D10980E40E94AF0980930001A4 -:10132000811112C08CE00E94D909809300018111C3 -:101330000BC00E94D90980930001811105C08FE381 -:101340000E94D909809300010E94D1098091000177 -:1013500008951092B9008AE08093B800089594EA45 -:101360009093BC009091BC0097FFFCCF9091B90086 -:10137000987F983021F0903111F081E008958093AA -:10138000BB0084E88093BC008091BC0087FFFCCF49 -:101390008091B900887F883111F0803471F780E046 -:1013A000089584E98093BC008091BC0084FDFCCF4B -:1013B00008958093BB0084E88093BC008091BC00BA -:1013C00087FFFCCF9091B900987F81E0983209F4B3 -:1013D00080E0089584E88093BC008091BC0087FF82 -:1013E000FCCF8091BB00089580910001811115C050 -:1013F00080E40E94AF098093000181110CC082E15A -:101400000E94D90980930001811105C08FEF0E94CD -:10141000D909809300010E94D10984B1807F84B9E9 -:1014200085B1807F85B98AB1837F8AB98BB1837F8B -:101430008BB93E98469808950E945A0980930001FE -:101440000E94F40980B38C7080BB81B3836F81BB31 -:10145000AEE3B1E0ECE4F1E08EE08E0F11921D926C -:101460008E13FCCF8DE399E0892B11F00C943D098C -:1014700008959F92AF92BF92CF92DF92EF92FF9228 -:101480000F931F93CF93DF93809100018823E1F0A6 -:1014900080913D018F5F80933D01811115C084E9EA -:1014A00094E00E94FE070E945A098093000188235D -:1014B00029F08AE794E00E94FE0706C086E694E0E1 -:1014C0000E94FE070E94E5080EE311E0C0E0D0E0B4 -:1014D000BB24B39482E0A82ECC24C394D12C27E55E -:1014E000E22E24E0F22EC730D10500F580910001F4 -:1014F000811164C080E40E94AF09809300018111D2 -:1015000012C082E10E94D9098093000181110BC0B1 -:10151000C6010C2E01C0880F0A94EAF780950E943C -:10152000D909809300010E94D10948C0CA30A1F0B6 -:1015300028F4C83059F0C93061F005C0CC3089F0CA -:1015400070F0CD3089F0209A289810C0219A2998FF -:101550000DC0229A2A980AC0239A2B9807C0529A43 -:1015600001C0539A5B9802C03E9A469890EA9A95B9 -:10157000F1F79FB1799902C082E001C080E09170DB -:101580009B25982B7C9902C084E001C080E0892BC8 -:101590007D9902C038E001C030E0832B7E9902C003 -:1015A00020E101C020E0822B9FB19095991F9927DF -:1015B000991F9295990F907E892B10C08091000100 -:1015C000811174C080E40E94AF09809300018823D8 -:1015D00009F459C0912C0E94D109892DF8019081FC -:1015E000981739F1808380910101882301F180915E -:1015F000D70180FF04C08CE594E00E94FE07809133 -:10160000D70180FF0CC0809101011F928F93FF9240 -:10161000EF920E9497080F900F900F900F9080917B -:10162000D70180FF04C085E594E00E94FE07A092E8 -:1016300001010E94F40921960F5F1F4FCE30D105A2 -:1016400009F051CF809101018823B1F0815080933E -:101650000101882339F08FE99FE00197F1F700C07D -:1016600000000AC0ACE4B1E0EEE3F1E0CF01825F3C -:1016700091919D938E13FCCF8CED98E0892BC1F056 -:101680000E94DC0815C083E10E94D9098093000103 -:101690008111A0CF81E40E94AF09809300018111E4 -:1016A00099CF0E94EA09982E909495CF80E096CF2A -:1016B00081E0DF91CF911F910F91FF90EF90DF902C -:1016C000CF90BF90AF909F900895E82FF0E0E45B3B -:1016D000FE4F80810895CF92DF92EF92FF920F9399 -:1016E0001F93CF93DF938EE394E00E94FE078CE478 -:1016F000E82E81E0F82EC0E0D0E099E3C92E94E016 -:10170000D92E00E314E0DF93CF93DF92CF920E94B3 -:10171000970886E394E00E94FE07F70181917F011C -:1017200090E00E941D229F938F931F930F930E941E -:1017300097088EE294E00E94FE0721968DB79EB72F -:1017400008960FB6F8949EBF0FBE8DBFCE30D10560 -:10175000D1F6DF91CF911F910F91FF90EF90DF9025 -:10176000CF9008958B3B910578F4883A910540F528 -:10177000853A9105D0F48430910508F0B1C08130EC -:10178000910509F4ADC06BC0803E910508F467C0B7 -:10179000883E910508F4A4C09C01205F31092031E6 -:1017A000310508F05CC090650895853A910509F40B -:1017B00059C0863A910509F058C082E890E408952E -:1017C000883A910509F454C0893A910509F453C047 -:1017D0008A3A910509F452C08B3A910509F451C037 -:1017E0008C3A910509F450C08D3A910509F44FC027 -:1017F000803B910509F44EC08E3A910509F44DC025 -:101800008F3A910509F44CC0813B910509F44BC016 -:10181000823B910509F44AC0833B910509F449C014 -:10182000843B910509F448C0853B910509F447C004 -:10183000863B910509F446C0873B910509F445C0F4 -:10184000883B910509F444C0893B910509F443C0E4 -:101850008A3B910509F442C080E094E4089580E059 -:1018600090E0089581E890E4089583E890E4089575 -:1018700082EE94E4089589EE94E408958AEE94E467 -:10188000089585EB94E4089586EB94E4089587EB3E -:1018900094E408958CEC94E408958DEC94E4089518 -:1018A00083E895E408958AE895E4089582E995E44B -:1018B000089584E995E4089581E296E4089583E229 -:1018C00096E4089584E296E4089585E296E4089506 -:1018D00086E296E4089587E296E408958AE296E423 -:1018E0000895089596E0799FF001112494E5899F69 -:1018F000E00DF11D1124E60FF11DEE0FFF1FEA515F -:10190000FF4F859194910895880F991FFC01E05A2B -:10191000F040859194910895880F991FFC01E05241 -:10192000FF4F85919491089526E0729FF001112454 -:1019300044E5849FE00DF11D1124E60FF11DEE0F2B -:10194000FF1FEA51FF4F859194919C013A95211513 -:101950004FE1340708F41EC13F512115304120F4F6 -:101960009F700E948C0C08959C01305321153041CA -:1019700018F49927906C0895811520E5920769F471 -:101980000E94771B4FEF84E39CE0415080409040E1 -:10199000E1F700C000000C94D922813020E59207C5 -:1019A00051F48EEA94E00E94FE078091D701816095 -:1019B0008093D70108959C0130552115304108F0DE -:1019C00051C0292F33272F70332721303105D9F407 -:1019D000AC014370552702C0220F331F4A95E2F72E -:1019E0003C68AC0164E0440F551F6A95E1F7442759 -:1019F0005370242B352B73E0880F991F7A95E1F7EC -:101A0000807699271DC02230310529F4982F882728 -:101A1000816F906A089523303105A9F4AC014370B9 -:101A2000552721E030E002C0220F331F4A95E2F72C -:101A30003C6843E0880F991F4A95E1F7807E9770D4 -:101A4000822B932B089524303105E1F4AC014370CF -:101A5000552721E030E002C0220F331F4A95E2F7FC -:101A60003A68E7CF9C0130572115304118F49F7038 -:101A7000906208959C0130582115304118F49F70F0 -:101A8000906A0895803E9105E0F4803C910558F5F8 -:101A90008133910509F46FC048F48932910509F446 -:101AA00063C08A32910509F46DC072C08933910513 -:101AB000E9F082389105D1F08533910509F44DC0E4 -:101AC00067C0833E910581F138F4803E9105B9F0FD -:101AD000823E9105D9F05CC0863E910561F1873E5A -:101AE0009105A1F155C00E94840C08952091EA014E -:101AF00020FD02C021FF4CC080EE90E049C08091E3 -:101B0000EA0180FFF9CF89E390E042C08091EA01C9 -:101B100082FF0EC08091EA0184FF03C080E090E064 -:101B200037C083EE90E034C08091EA0182FFF2CFAB -:101B300082EE90E02DC08091EA0183FF0BC080917E -:101B4000EA0184FDEBCF87EE90E022C08091EA01AC -:101B500083FFF5CF86EE90E01BC08091EA0185FF00 -:101B600007C089E290E014C08091EA0185FFF9CFB7 -:101B700085E390E00DC08091EA0186FF07C08AE20C -:101B800090E006C08091EA0186FFF9CF81E390E002 -:101B90000E94B20B0895089580916D0108959FB73A -:101BA000F89410925C019FBF9091F001943009F07D -:101BB00057C09091E9009F703091EC00232F217065 -:101BC00030FD20E8922B24E02093E9002091EB00E7 -:101BD00020FF43C02091EE0027FF3FC020915A0113 -:101BE000222321F02091E80025FF37C010925A01EE -:101BF00026E03091E80035FD15C03091F001343019 -:101C000061F53091EB0035FD28C0215021F481E0D1 -:101C100080935A0122C0EFE9FFE03197F1F700C04D -:101C20000000E7CF8093F1008091E80085FD0AC0B5 -:101C30008091E80080FFFCCF8091E8008E77809350 -:101C4000E80006C08FB7F89421E020935C018FBFB5 -:101C50009F709093E90080E008959F709093E90051 -:101C60008FEF0895CF93DF9300D01F92CDB7DEB7EB -:101C70009C018091F001843019F593E099833B83B6 -:101C80002A839093E9008FEF9091E800815095FDB1 -:101C900006C095ED9A95F1F700008111F5CF80917E -:101CA000E80085FF0DC040E050E063E070E0CE0149 -:101CB00001960E9402118091E8008E778093E800DF -:101CC0000F900F900F90DF91CF910895CF93DF93F6 -:101CD00000D01F92CDB7DEB72091F001243021F55E -:101CE00022E029839B838A8383E08093E9008FEF3E -:101CF0009091E800815095FD06C095ED9A95F1F719 -:101D000000008111F5CF8091E80085FF0DC040E013 -:101D100050E063E070E0CE0101960E9402118091D4 -:101D2000E8008E778093E8000F900F900F90DF917E -:101D3000CF9108952091F0012430F1F422E0209316 -:101D4000E9002FEF3091E800215035FD06C035ED58 -:101D50003A95F1F700002111F5CF2091E80025FF19 -:101D60000BC040E050E065E070E00E9402118091FD -:101D7000E8008E778093E8000895CF93DF93209159 -:101D8000F001243009F048C0EC0180910C01882357 -:101D9000E1F080910D018823C1F085E08093E90096 -:101DA0008FEF9091E800815095FD06C095E19A95DE -:101DB000F1F700008111F5CF8091E80085FF2CC07C -:101DC00040E050E060E170E017C081E08093E900FE -:101DD0008FEF9091E800815095FD06C095ED9A95A2 -:101DE000F1F700008111F5CF8091E80085FF14C064 -:101DF00040E050E068E070E0CE010E940211809166 -:101E0000E8008E778093E80080E1FE01ADE5B1E067 -:101E100001900D928A95E1F7DF91CF91089585EEBB -:101E200094E00E94FE078091EF01811109C00E9499 -:101E300097120E94F4128091E20084608093E20085 -:101E4000089581EE94E00E94FE071092EF0108953C -:101E50008DED94E00C94FE0789ED94E00E94FE075E -:101E60000C94A92C85ED94E00E94FE070E94732239 -:101E70000E94AF2C0E9499150C94CB0D20915B0110 -:101E80002F5F822F62E30E941D2E992319F0209369 -:101E90005B01089510925B0180915C01882371F1D0 -:101EA0008091F001843041F58091E9008F7020919C -:101EB000EC00922F917020FD90E8892B94E0909394 -:101EC000E9009091EB0090FF14C09091EE0097FF15 -:101ED00010C09091E80095FF03C01092F100F9CF77 -:101EE0009091E80090FF05C09091E8009E77909354 -:101EF000E8008F708093E90010925C01089542E041 -:101F000061EC81E00E94111242E061EC82E00E94EB -:101F1000111242E061EC83E00E94111242E261EC96 -:101F200084E00E94111242E161EC85E00C941112F0 -:101F30008091F201833009F455C030F4813071F0A2 -:101F4000823009F48EC008958A3009F47AC08B304B -:101F500009F460C0893009F09CC020C08091F10173 -:101F6000813A09F096C08091E800877F8093E8006D -:101F70008091F5019091F601892B21F460E18DE5C6 -:101F800091E003C060E080E090E070E00E944D11BD -:101F90008091E8008B778093E80008958091F101AB -:101FA000813209F076C08091F5019091F601009799 -:101FB00019F0049709F06DC08091E800877F809345 -:101FC000E8008091E80082FD05C08091F001811158 -:101FD000F8CF5FC08091F10080936D018091E8009F -:101FE0008B7753C08091F101813A09F052C0809102 -:101FF000F5019091F601892B09F04BC08091E80022 -:10200000877F8093E8008091E80080FFFCCF80917B -:102010000C0136C08091F1018132D9F58091F50132 -:102020009091F601892BA9F58091E800877F809334 -:10203000E8000E9446128091F30180930C010C94F9 -:10204000771B8091F101813221F58091E800877F33 -:102050008093E8000E9446128091F40180936E0103 -:1020600008958091F101813AA1F48091E800877F81 -:102070008093E8008091E80080FFFCCF80916E01A2 -:102080008093F1008091E8008E778093E8000C94B3 -:102090004612089584B7877F84BF88E10FB6F8940D -:1020A00080936000109260000FBE90E080E80FB651 -:1020B000F89480936100909361000FBE0E942616F1 -:1020C0000E9497120E94F4128091E2008460809333 -:1020D000E2008FEC9DE00E94B22178940E94791575 -:1020E0000E94281682E091E00E9494150E94972C8D -:1020F00084EC94E00E94FE078091F001853089F421 -:1021000080EC94E00E94FE070E9437228091EE014D -:10211000882391F30E945F22882371F30E94EC10C0 -:10212000EBCF0E945616E8CF292F332723303105F5 -:10213000C9F064F42130310581F02230310509F015 -:1021400043C08DE890E02DE135E042C021323105F9 -:10215000F1F02232310541F137C082E190E02AEA04 -:1021600035E036C099278130910541F082309105E4 -:1021700041F0892B49F5E9E1F5E005C0E1E0F5E042 -:1021800002C0E9EEF4E0849190E09F0121C0653047 -:10219000D8F4E62FF0E0EE0FFF1FEB5DFE4F20813D -:1021A000318189E090E014C0653070F470E0FB018B -:1021B000EE0FFF1FE55EFE4F20813181FB01EA5EDD -:1021C000FE4F808190E004C080E090E020E030E0AD -:1021D000FA0131832083089580E189BD82E189BDC0 -:1021E00009B400FEFDCF8091D8008F7D8093D80088 -:1021F0008091E00082608093E0008091E00081FDAA -:10220000FCCF0895CF92DF92EF92FF920F931F932E -:10221000CF93DF93EC018B016A010E94651281115B -:1022200033C0C114D10439F0F60180819181081BBB -:10223000190BC80FD91FE12CF12C0115110519F14B -:102240008091E80085FD16C08091E8008E7780932C -:10225000E800C114D10449F0F60180819181E80EB3 -:10226000F91EF182E08285E00FC00E94651288238A -:1022700021F30AC089918093F10001501109FFEF09 -:10228000EF1AFF0ADACF80E0DF91CF911F910F9113 -:10229000FF90EF90DF90CF9008952091F70130915B -:1022A000F8012617370748F06115710539F42091B8 -:1022B000E8002E772093E80001C0B90140E06115E5 -:1022C0007105A9F12091F001222309F443C02530C2 -:1022D00009F442C02091E80023FD40C02091E800AD -:1022E00022FD32C02091E80020FFE9CF4091F300A9 -:1022F0002091F20030E0342BFC01CF016115710513 -:1023000059F02830310540F481918093F1006150FB -:1023100071092F5F3F4FF1CF41E02830310509F0BF -:1023200040E02091E8002E772093E800C8CF4111CB -:10233000C9CF0AC08091F001882361F0853061F037 -:102340008091E80083FD0AC08091E80082FFF2CF0F -:1023500080E0089582E0089583E0089581E0089583 -:102360002091F7013091F8012617370748F06115E1 -:10237000710539F42091E8002E772093E80001C020 -:10238000B901FC0120E06115710591F18091F00126 -:10239000882309F440C0853009F43FC08091E800EB -:1023A00083FD3DC08091E80082FD2FC08091E80050 -:1023B00080FFE9CF2091F3008091F20090E0922B12 -:1023C0006115710559F08830910540F424912093EE -:1023D000F1003196615071090196F2CF21E0089722 -:1023E00009F020E08091E8008E778093E800CBCF61 -:1023F0002111CCCF0AC08091F001882361F0853093 -:1024000061F08091E80083FD0AC08091E80082FFBE -:10241000F2CF80E0089582E0089583E0089581E09E -:102420000895982F973058F59093E900981739F050 -:102430007091EC002091ED005091F00003C0242F2A -:10244000762F50E021FF19C03091EB003E7F309392 -:10245000EB003091ED003D7F3093ED003091EB00CB -:1024600031603093EB007093EC002093ED005093BB -:10247000F0002091EE0027FF07C09F5FD3CF8F7041 -:102480008093E90081E0089580E008958091F10152 -:1024900087FF11C08091E80082FD05C08091F001A6 -:1024A0008111F8CF11C08091E8008B770BC080912B -:1024B000F001882349F08091E80080FFF8CF8091F7 -:1024C000E8008E778093E80008952091E400309131 -:1024D000E50095E64091EC00842F817040FF22C01A -:1024E0008091E80080FD1CC08091F001882391F06C -:1024F000853091F08091EB0085FD10C04091E400A3 -:102500005091E5004217530729F39A01915011F7B2 -:1025100084E0089582E0089583E0089581E00895BD -:1025200080E008954091E80042FFDECF08950E94C8 -:1025300005130E940D13E0EEF0E08081816080833E -:10254000E8EDF0E080818F77808319BCA7EDB0E0E3 -:102550008C918E7F8C9380818F7E80831092EF018F -:1025600008950F931F93CF93DF930E9405130E944A -:102570000D13C8EDD0E088818F77888388818068CB -:10258000888388818F7D888319BC1092F001109216 -:10259000EC011092EE011092ED0100EE10E0F80156 -:1025A00080818B7F808388818160888342E060E0C6 -:1025B00080E00E941112E1EEF0E080818E7F808346 -:1025C000E2EEF0E08081816080838081886080839A -:1025D000F80180818E7F8083888180618883DF918C -:1025E000CF911F910F910895E8EDF0E080818F7EEB -:1025F0008083E7EDF0E080818160808384E082BFAA -:1026000081E08093EF010C94B112E8EDF0E080815D -:102610008E7F80831092E20008951092DA0010926B -:10262000E10008951F920F920FB60F9211242F937D -:102630003F934F935F936F937F938F939F93AF934A -:10264000BF93EF93FF938091E10082FF0BC08091D5 -:10265000E20082FF07C08091E1008B7F8093E10060 -:102660000E943E0F8091DA0080FF1FC08091D80049 -:1026700080FF1BC08091DA008E7F8093DA0080910A -:10268000D90080FF0DC080E189BD82E189BD09B418 -:1026900000FEFDCF81E08093F0010E940F0F05C086 -:1026A00019BC1092F0010E94210F8091E10080FF7F -:1026B00019C08091E20080FF15C08091E2008E7FFA -:1026C0008093E2008091E20080618093E20080913B -:1026D000D80080628093D80019BC85E08093F00117 -:1026E0000E942C0F8091E10084FF30C08091E200B5 -:1026F00084FF2CC080E189BD82E189BD09B400FE60 -:10270000FDCF8091D8008F7D8093D8008091E1002B -:102710008F7E8093E1008091E2008F7E8093E200C3 -:102720008091E20081608093E2008091EC01882337 -:1027300011F084E007C08091E30087FD02C081E0D2 -:1027400001C083E08093F0010E94320F8091E1008C -:1027500083FF29C08091E20083FF25C08091E100C2 -:10276000877F8093E10082E08093F0011092EC017A -:102770008091E1008E7F8093E1008091E2008E7F66 -:102780008093E2008091E20080618093E20042E069 -:1027900060E080E00E9411128091F00088608093D8 -:1027A000F0000E94280FFF91EF91BF91AF919F9190 -:1027B0008F917F916F915F914F913F912F910F90EA -:1027C0000FBE0F901F9018951F920F920FB60F9289 -:1027D00011242F933F934F935F936F937F938F9326 -:1027E0009F93AF93BF93CF93DF93EF93FF93C091EA -:1027F000E900CF708091EC00D82FD17080FDD0E837 -:102800001092E9008091F000877F8093F000789427 -:102810000E9428141092E9008091F0008860809353 -:10282000F000CD2BCF70C093E900FF91EF91DF91C5 -:10283000CF91BF91AF919F918F917F916F915F9158 -:102840004F913F912F910F900FBE0F901F901895B1 -:102850001F93CF93DF93CDB7DEB7AA970FB6F89447 -:10286000DEBF0FBECDBFE1EFF1E088E08E0F9091AB -:10287000F10091938E13FBCF0E94980F8091E80096 -:1028800083FF1FC18091F1019091F201492F50E027 -:102890004A30510508F015C1FA01EA5AFF4F0C946D -:1028A0003D2E803881F0823809F00BC18091F5010E -:1028B0008F708093E9008091EB0085FB882780F979 -:1028C0001092E90006C08091ED019091EE01911106 -:1028D00082609091E800977F9093E8008093F100E8 -:1028E0001092F100C8C0282F2D7F09F0EAC088237C -:1028F00019F0823061F0E5C08091F301813009F078 -:10290000E0C0933009F080E08093EE012BC080910D -:10291000F301811127C08091F5018F7009F4D1C0B6 -:102920008093E9002091EB0020FF1CC0933021F43C -:102930008091EB00806214C09091EB0090619093C5 -:10294000EB0021E030E0A90102C0440F551F8A9539 -:10295000E2F74093EA001092EA008091EB00886071 -:102960008093EB001092E9008091E800877F86C099 -:102970008111A7C01091F3011F778091E300807847 -:10298000812B8093E3008091E800877F8093E800AB -:102990000E9446128091E80080FFFCCF8091E30006 -:1029A00080688093E300111102C082E001C083E0DF -:1029B0008093F00186C08058823008F082C08091F8 -:1029C000F3019091F4018C3D53E0950779F583E094 -:1029D0008A838AE289834FB7F894DE01139620E058 -:1029E0003EE051E2E32FF0E050935700E49120FFE6 -:1029F00003C0E295EF703F5FEF708E2F90E0EA30FA -:102A000010F0C79601C0C0968D939D932F5F24311F -:102A100049F74FBF8091E800877F8093E8006AE222 -:102A200070E0CE0101960E944D1114C0AE014F5FBF -:102A30005F4F6091F5010E949410BC01892B09F44D -:102A400040C09091E800977F9093E80089819A8137 -:102A50000E94B0118091E8008B778093E80031C02C -:102A6000803879F58091E800877F8093E800809135 -:102A7000EC018093F1008091E8008E778093E8006C -:102A80000E9446121EC081111CC09091F301923029 -:102A9000C0F48091E800877F8093E8009093EC0178 -:102AA0000E9446128091EC01811106C08091E300E2 -:102AB00087FD02C081E001C084E08093F0010E94A4 -:102AC0007F0F8091E80083FF0AC08091E800877F34 -:102AD0008093E8008091EB0080628093EB00AA96DF -:102AE0000FB6F894DEBF0FBECDBFDF91CF911F911F -:102AF0000895CF938091F0018823A1F0C091E9005F -:102B0000CF709091EC00892F817090FD80E8C82BE8 -:102B10001092E9008091E80083FD0E942814CF7094 -:102B2000C093E900CF91089590937401809373014D -:102B30000895E0917301F0917401309721F00190B4 -:102B4000F081E02D099480E00895EF92FF920F93B9 -:102B50001F93CF93DF93E0917301F091740130974D -:102B6000B1F18C010280F381E02D09958091D701AC -:102B700082FF2DC080FF04C08FED96E00E94FE070B -:102B8000E80110E189EDE82E86E0F82E8091D7016A -:102B900080FF0BC088811F928F93FF92EF920E945B -:102BA00097080F900F900F900F90115021961111D0 -:102BB000EDCF8091D70180FF0AC087ED96E0DF91CD -:102BC000CF911F910F91FF90EF900C94FE07DF9132 -:102BD000CF911F910F91FF90EF900895E0917301B5 -:102BE000F0917401309721F00480F581E02D099473 -:102BF000089520917101309172018217930771F04D -:102C00009093720180937101E0917301F0917401CE -:102C1000309721F00680F781E02D099408952091E6 -:102C20006F01309170018217930771F090937001DA -:102C300080936F01E0917301F0917401309721F05E -:102C40000084F185E02D0994089508950C942516CB -:102C50000E9475220E941C0A0C943B23CF93C82F1C -:102C60008091D70182FF1EC080FF04C088EF96E0EC -:102C70000E94FE078091D70180FF0CC01F92CF9366 -:102C800083EF96E09F938F930E9497080F900F9089 -:102C90000F900F908091D70180FF04C081EF96E0E4 -:102CA0000E94FE078C2FCF910C94CB0DCF92DF9218 -:102CB000EF92FF920F931F93CF93DF93CDB7DEB7C1 -:102CC0002B970FB6F894DEBF0FBECDBF0E94390A16 -:102CD00086E7C82E81E0D82E00E010E0E02E802F9D -:102CE0000E94650BF60141916F01F42EF826B1F4B4 -:102CF0000F5F1F4F0E30110589F78FEF89838A838D -:102D00001B820E947E228160782F9D838C83498163 -:102D10005A816B818D810E94F91640C09091D70134 -:102D200091FF04C08B870E946B0B8B8520E030E005 -:102D30004F2D50E0922FBA01022E02C07595679573 -:102D40000A94E2F760FF24C02E83EF8221E030E096 -:102D5000690102C0CC0CDD1C9A95E2F790E08C2151 -:102D60009D21892B09F420E028870E947E22816022 -:102D7000782F9A8789874E815F8168858A850E942E -:102D8000F916F801EA58FE4F8081C826C08206C0B5 -:102D90002F5F3F4F2630310569F6AACF0E94AC263F -:102DA000109175010E9499151817A1F00E949915AC -:102DB000809375012B960FB6F894DEBF0FBECDBF82 -:102DC000DF91CF911F910F91FF90EF90DF90CF9007 -:102DD0000C942E162B960FB6F894DEBF0FBECDBF07 -:102DE000DF91CF911F910F91FF90EF90DF90CF90E7 -:102DF0000895CF93DF93CDB7DEB72B970FB6F89436 -:102E0000DEBF0FBECDBF4F83588769877A878B8718 -:102E1000DE01119686E0FD0111928A95E9F785E0C1 -:102E2000FE01379601900D928A95E1F749815A810A -:102E30006B817C818D819E810E94111E2B960FB625 -:102E4000F894DEBF0FBECDBFDF91CF910895CF9331 -:102E5000882309F4C2C0C82F823859F40E949915FA -:102E600081FDBBC089E30E94AD200E948C2189E3D3 -:102E70000CC0833879F40E94991580FDAEC083E5BB -:102E80000E94AD200E948C2183E50E940021CF91F9 -:102E90000C948C21843859F40E94991582FD9DC0B0 -:102EA00087E40E94AD200E948C2187E4EECF8CEF56 -:102EB0008C0F813A48F48C2F0E943F2B81118DC0DA -:102EC0008C2F0E94AD20E3CF80E28C0F883048F435 -:102ED000C77081E001C0880FCA95EAF70E945521AA -:102EE000D6CF8BE58C0F833078F4C53A29F0C63AFB -:102EF00031F083E890E005C081E890E002C082E80C -:102F000090E0CF910C94F91588E58C0F833108F08F -:102F100064C0C83A39F1C93A41F1CA3A49F1CB3AE9 -:102F200051F1CC3A59F1CD3A61F1C03B69F1CE3A59 -:102F300071F1CF3A79F1C13B81F1C23B89F1C33BD9 -:102F400091F1C43B99F1C53BA1F1C63BA9F1C73B47 -:102F5000B1F1C83BB9F1C93BC1F1CA3BC9F180E04D -:102F600090E038C082EE90E035C089EE90E032C04B -:102F70008AEE90E02FC085EB90E02CC086EB90E0CD -:102F800029C087EB90E026C08CEC90E023C08DEC4C -:102F900090E020C083E891E01DC08AE891E01AC06B -:102FA00082E991E017C084E991E014C081E292E0E7 -:102FB00011C083E292E00EC084E292E00BC085E291 -:102FC00092E008C086E292E005C087E292E002C08B -:102FD0008AE292E0CF910C940F16CF910895882346 -:102FE00009F44BC0823859F40E94991581FF45C0FD -:102FF00089E30E94AD200E948C2189E30CC08338B4 -:1030000071F40E94991580FF38C083E50E94AD20BD -:103010000E948C2183E50E9400210C948C2184382D -:1030200059F40E94991582FF28C087E40E94AD20C0 -:103030000E948C2187E4EFCF9CEF980F913A58F3D0 -:1030400090E2980F983050F4877091E001C0990F8A -:103050008A95EAF7892F0E945B21DFCF9BE5980FC5 -:10306000933020F480E090E00C94F915885A833175 -:1030700020F480E090E00C940F160895882321F04E -:103080000E9455210C948C210895882321F00E94E0 -:103090005B210C948C210895BF92CF92DF92EF9226 -:1030A000FF920F931F93CF93DF9300D000D000D0F7 -:1030B000CDB7DEB725E0FC01DE01119601900D923F -:1030C0002A95E1F7FC014081318102812581229519 -:1030D0002F7063817481672B09F4E7C23F3F19F4B5 -:1030E0004F3F09F4E2C27C0149833A8389819A8186 -:1030F0002E830E946C20182FB92E0E946B200E94F4 -:10310000321FEB2DE295EF70F0E0E05AFF4F2E8179 -:103110000C943D2E8B2D807F9B2D9F70F92E882344 -:1031200019F0F29480EFF822002349F0FF2009F40F -:1031300069C28F2D0E9465210E948C2163C2812F5C -:103140000E94EF17FF2009F4B0C28F2D0E946B215F -:1031500026960FB6F894DEBF0FBECDBFDF91CF919C -:103160001F910F91FF90EF90DF90CF90BF900C9444 -:103170008C213B2D307F8B2D8F70303211F082955A -:10318000807F112319F0113021F12DC00023B9F0F7 -:10319000222309F4A1C1213009F09EC126960FB661 -:1031A000F894DEBF0FBECDBFDF91CF911F910F917D -:1031B000FF90EF90DF90CF90BF900C947521222369 -:1031C00019F0213009F471C28E830E9478218E811A -:1031D00097C1002321F0263008F067C27DC1253059 -:1031E00008F063C28DC1002321F0222309F474C1C9 -:1031F00009C2222309F484C11AC22B2D26952695D3 -:10320000237030E02115310521F021303105D1F056 -:103210004CC2002321F0812F9B2D937002C080E0CF -:1032200090E026960FB6F894DEBF0FBECDBFDF91BB -:10323000CF911F910F91FF90EF90DF90CF90BF90B3 -:103240000C94F915002321F0812F9B2D937002C05F -:1032500080E090E026960FB6F894DEBF0FBECDBF9B -:10326000DF91CF911F910F91FF90EF90DF90CF9062 -:10327000BF900C940F16812F002319F00E94322565 -:1032800002C00E949A2526960FB6F894DEBF0FBEA4 -:10329000CDBFDF91CF911F910F91FF90EF90DF9005 -:1032A000CF90BF900C941F268B2D837009F07BC0AC -:1032B0000111FBC1812F829586958770880F880F39 -:1032C000912F9F70C92ED12CE12CF12C082E04C017 -:1032D000CC0CDD1CEE1CFF1C0A94D2F714FF12C0AC -:1032E0004FE050E060E070E004C0440F551F661FDF -:1032F000771F8A95D2F7CB01BA01609570958095BA -:10330000909503C060E070E0CB012B2D26952695AB -:103310002370422F50E042305105D9F0433051051F -:1033200069F16C297D298E299F294130510551F180 -:1033300026960FB6F894DEBF0FBECDBFDF91CF91BA -:103340001F910F91FF90EF90DF90CF90BF900C9462 -:10335000591F6C297D298E299F2926960FB6F8942E -:10336000DEBF0FBECDBFDF91CF911F910F91FF90B8 -:10337000EF90DF90CF90BF900C94751F0E94591F63 -:10338000C701B60126960FB6F894DEBF0FBECDBFBB -:10339000DF91CF911F910F91FF90EF90DF90CF9031 -:1033A000BF900C943D1F002319F08B2D817001C03C -:1033B0008695882309F479C1812F82958695877037 -:1033C000880F880F912F9F70C92ED12CE12CF12CE2 -:1033D000082E04C0CC0CDD1CEE1CFF1C0A94D2F796 -:1033E00014FF12C04FE050E060E070E004C0440FF2 -:1033F000551F661F771F8A95D2F7CB01BA016095DA -:1034000070958095909503C060E070E0CB012B2D06 -:10341000269526952370422F50E042305105D9F071 -:103420004330510569F16C297D298E299F2941304E -:10343000510551F126960FB6F894DEBF0FBECDBFF1 -:10344000DF91CF911F910F91FF90EF90DF90CF9080 -:10345000BF900C9433206C297D298E299F292696B4 -:103460000FB6F894DEBF0FBECDBFDF91CF911F9195 -:103470000F91FF90EF90DF90CF90BF900C944F2072 -:103480000E943320C701B60126960FB6F894DEBF1E -:103490000FBECDBFDF91CF911F910F91FF90EF90A5 -:1034A000DF90CF90BF900C941720103FD1F118F40B -:1034B000103E50F4A2C0123F09F464C008F44DC09D -:1034C000133F09F474C099C01F708B2D8F710023B6 -:1034D000A1F00E94B01F812F26960FB6F894DEBF90 -:1034E0000FBECDBFDF91CF911F910F91FF90EF9055 -:1034F000DF90CF90BF900C943E180E94D11F812F77 -:1035000026960FB6F894DEBF0FBECDBFDF91CF91E8 -:103510001F910F91FF90EF90DF90CF90BF900C9490 -:1035200045180023B1F0253008F0BFC08B2D8F71F6 -:1035300026960FB6F894DEBF0FBECDBFDF91CF91B8 -:103540001F910F91FF90EF90DF90CF90BF900C9460 -:10355000F61F263008F0A9C0E9CF0023A9F08B2D73 -:103560008F7126960FB6F894DEBF0FBECDBFDF91E8 -:10357000CF911F910F91FF90EF90DF90CF90BF9070 -:103580000C94B01F002359F38B2D8F7126960FB624 -:10359000F894DEBF0FBECDBFDF91CF911F910F9189 -:1035A000FF90EF90DF90CF90BF900C94D11F00233D -:1035B00099F08B2D8F7126960FB6F894DEBF0FBE53 -:1035C000CDBFDF91CF911F910F91FF90EF90DF90D2 -:1035D000CF90BF900C949B1F26960FB6F894DEBF39 -:1035E0000FBECDBFDF91CF911F910F91FF90EF9054 -:1035F000DF90CF90BF900C94911F0023A9F022235D -:1036000009F4ADCF812F26960FB6F894DEBF0FBE1A -:10361000CDBFDF91CF911F910F91FF90EF90DF9081 -:10362000CF90BF900C942717222309F4ADCF812FA0 -:1036300026960FB6F894DEBF0FBECDBFDF91CF91B7 -:103640001F910F91FF90EF90DF90CF90BF900C945F -:10365000EF174B2D4F70612FC7010E94A0082696CF -:103660000FB6F894DEBF0FBECDBFDF91CF911F9193 -:103670000F91FF90EF90DF90CF90BF900C94B51E0C -:103680004B2D4F70612FC70126960FB6F894DEBF01 -:103690000FBECDBFDF91CF911F910F91FF90EF90A3 -:1036A000DF90CF90BF900C94710C26960FB6F894D3 -:1036B000DEBF0FBECDBFDF91CF911F910F91FF9065 -:1036C000EF90DF90CF90BF9008950E9472210E94EA -:1036D00047210E948C210E9452270E941F2680E0D1 -:1036E00090E00E94F91580E090E00C940F160E9483 -:1036F00062210C94651B0E946C20292F22952F704B -:1037000030E02C3031054CF42A3031056CF4225075 -:1037100031092230310588F407C02C30310549F0D9 -:103720002F30310531F009C0803E48F0803F29F448 -:1037300006C093FB882780F9089580E0089581E012 -:103740000895CF93DF9300D000D01F92CDB7DEB79E -:103750000F900F900F900F900F90DF91CF910895E1 -:10376000CF93DF9300D000D000D0CDB7DEB7269640 -:103770000FB6F894DEBF0FBECDBFDF91CF91089595 -:103780001F93CF93DF93C091840116E08091850150 -:10379000C81799F0D0E01C9FF0011D9FF00D112477 -:1037A000EA57FE4F40815181628173818481958106 -:1037B0000E94B01B2196C770E9CFDF91CF911F9176 -:1037C00008954091B6015091B7016091B801709190 -:1037D000B9018091BA019091BB010C94B01B80910A -:1037E000BB0182958F7009F054C08091B801882385 -:1037F00009F44FC080918401A09185016091B601C8 -:103800007091B7014091B9015091BA01B6E08A17A1 -:1038100009F43FC090E041155105C1F17F3F11F41B -:103820006F3FA1F1B89FF001B99FF00D1124EA5745 -:10383000FE4F218172132AC02081621327C022818A -:10384000211124C0238134812417350710F421501D -:103850003109241B350B283C3105C0F42091BB01F4 -:103860002F7020612093BB0126E0289FF001299F43 -:10387000F00D1124E557FE4F80818F7080618083A9 -:1038800086EB91E00E944C180C94C01B0196877047 -:10389000BECF0895CF92DF92EF92FF920F931F93C6 -:1038A000CF93DF93CDB7DEB762970FB6F894DEBF44 -:1038B0000FBECDBF8C0185E0F801DE011D960190A1 -:1038C0000D928A95E1F7D8014C9111965C91119770 -:1038D00012966C9112971396CD90DC9014973091BC -:1038E000B6017091B7018091B9019091BA0100972A -:1038F00009F46BC17F3F19F43F3F09F466C1E090C2 -:10390000B801EE2009F4C0C02091BB01C816D90649 -:1039100028F0F601E81BF90BCF0104C080959095C3 -:103920008C0D9D1DFF24F394883C910578F0F12CBB -:10393000207F09F0C6C07C2DD98AC88A89890E9457 -:10394000A11B86EB91E00E944C18B1C0822F807FB2 -:1039500009F046C0751314C0341312C0611110C0B1 -:103960002F7020612093BB010E94E11B86EB91E048 -:103970000E944C188091BB01D80115968C932EC0E3 -:10398000CD2819F15F3F11F44F3FF9F0F62E611188 -:103990001CC0809184012091850136E0821709F4D2 -:1039A0005AC090E0389FF001399FF00D1124EA577A -:1039B000FE4F7181571306C07081471303C0728197 -:1039C000711103C001968770E9CFF62E662309F4C2 -:1039D00018C18091BB0181608093BB01F12C11C1A2 -:1039E000751308C0341306C0611104C08091BB0177 -:1039F000D801C3C04D875E878D859E856A8B0E94E6 -:103A00007B1B6A898823E1F16623D1F12091BB01F8 -:103A1000822F82958F7090E0029774F08091B601AA -:103A20009091B70198878F831986DB86CA862C8789 -:103A3000CE0107960E944C1886E0F801A6EBB1E093 -:103A400001900D928A95E1F70E94EF1B0E94E11B05 -:103A5000FF24F394D6C04D875E878D859E850E9496 -:103A60006C20292F22952F7030E0223031050CF088 -:103A7000BCC09F7009F0B6C0805E883008F4C1C039 -:103A8000C8010E944C18E4CFC816D90608F453C0E8 -:103A9000F601E81BF90BCF01883C910508F450C0F2 -:103AA000F12C7C2DD98AC88A89890E94A11BE6EB5A -:103AB000F1E086E0DF011D928A95E9F70E94E11BA3 -:103AC000A0C0751314C0341312C0611110C08091CE -:103AD000BB01F8018583C8010E944C1886E0E6EB23 -:103AE000F1E0DF011D928A95E9F7FE2C8AC04D872F -:103AF0005E878D859E856A8B0E947B1B6A898823E1 -:103B000009F4BECF662309F4BBCF2091BB01822FFD -:103B100082958F7090E002970CF48ECF8091B60161 -:103B20009091B7019A8389831B82DD82CC822E8398 -:103B3000CE0101967FCF809590958C0D9D1DACCFC9 -:103B4000F62E662309F49CCF75132EC034132CC0B7 -:103B50002091BB0120FD1FC0822F82958F70D9F06C -:103B6000D80115962C9315978F3049F08F5F982FB9 -:103B70009295907F822F8F70892B15968C93C80118 -:103B80000E944C1886E0F801A6EBB1E001900D927E -:103B90008A95E1F793CF86E0F801A6EBB1E00190BA -:103BA0000D928A95E1F72DC04D875E878D859E85A4 -:103BB0000E947B1B811140CF8091BB01816080936B -:103BC000BB01C8010E944C181CC0662309F458CFE1 -:103BD0004D875E878D859E850E947B1B882309F417 -:103BE0004FCF2ACF811148CF0CC0243031050CF0C3 -:103BF00047CF9F7009F440CFF8019581907F09F07D -:103C00003BCF8F2D62960FB6F894DEBF0FBECDBFAF -:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 -:103C200008951F93CF93DF93CDB7DEB72C970FB6D0 -:103C3000F894DEBF0FBECDBF4F83588769877A8760 -:103C40008B879C87CE0107960E944A1C882369F0C7 -:103C50008F8198852A853B85232BF1F19F3F09F0C1 -:103C600063C08F3F09F060C037C086E0FE01379621 -:103C7000DE01119601900D928A95E1F76F817885AA -:103C8000EA85FB85309741F17F3F11F46F3F21F1C9 -:103C90002091850130E0C9010196877099274091F4 -:103CA000840150E08417950709F447C069837A833B -:103CB000FD83EC8396E0929FD001939FB00D112479 -:103CC000AA57BE4FFE01319601900D929A95E1F7E9 -:103CD000809385010E94C01B16E080918401909121 -:103CE00085018917C1F1189FC00111248A579E4F81 -:103CF0000E944A1C882379F1E09184011E9FF00103 -:103D00001124EA57FE4F4081518162817381848181 -:103D100095810E94B01B8091840190E0019687708C -:103D2000992780938401D9CF4F81588569857A85F9 -:103D30008B859C850E94B01BCFCF0E94771B109271 -:103D4000850110928401E6EBF1E086E0DF011D922F -:103D50008A95E9F7C1CF2C960FB6F894DEBF0FBE57 -:103D6000CDBFDF91CF911F910895EF92FF920F93F6 -:103D70001F93CF93DF938C01892B09F46CC0F12C36 -:103D8000EE24E394E8012196F8018491843740F40D -:103D9000843008F051C0813081F0823019F15BC06D -:103DA000853709F444C0A8F19CE7980F903708F0D4 -:103DB00052C08F770E94EF1741C00E5F1F4FFE0168 -:103DC000C49180E28C0F883048F4C7708E2D01C0FA -:103DD000880FCA95EAF70E94652114C08C2F0E94B3 -:103DE00027172DC00E5F1F4FFE01C49180E28C0F7C -:103DF000883058F4C7708E2D01C0880FCA95EAF735 -:103E00000E946B210E948C211AC08C2F0E94EF17F8 -:103E100016C00E5F1F4FFE01C491CC2381F08FE9C5 -:103E20009FE00197F1F700C00000C150F6CF0E5F90 -:103E30001F4FFE01F49003C00E9427178E018F2DA3 -:103E4000882309F49FCFEFE9FFE03197F1F700C035 -:103E500000008150F5CFDF91CF911F910F91FF901E -:103E6000EF90089508956093C0017093C10180930D -:103E7000C2019093C3010C94651B0F931F93009193 -:103E8000C0011091C1012091C2013091C301DC0138 -:103E9000CB01802B912BA22BB32B8093C00190934D -:103EA000C101A093C201B093C3011F910F910C9463 -:103EB000651B0F931F930091C0011091C1012091C8 -:103EC000C2013091C301DC01CB0180239123A223E5 -:103ED000B3238093C0019093C101A093C201B0931A -:103EE000C3011F910F910C94651B0F931F930091B9 -:103EF000C0011091C1012091C2013091C301DC01C8 -:103F0000CB0180279127A227B3278093C0019093EC -:103F1000C101A093C201B093C3011F910F910C94F2 -:103F2000651B1092BC011092BD011092BE0110924F -:103F3000BF010C94651B41E050E060E070E004C0FC -:103F4000440F551F661F771F8A95D2F74093BC0117 -:103F50005093BD016093BE017093BF010C94651B2B -:103F600041E050E060E070E004C0440F551F661F60 -:103F7000771F8A95D2F78091BC019091BD01A091E5 -:103F8000BE01B091BF01482B592B6A2B7B2B40936C -:103F9000BC015093BD016093BE017093BF010C94AE -:103FA000651B41E050E060E070E004C0440F551F25 -:103FB000661F771F8A95D2F740955095609570954A -:103FC0008091BC019091BD01A091BE01B091BF0153 -:103FD000482359236A237B234093BC015093BD019E -:103FE0006093BE017093BF010C94651B41E050E0EB -:103FF00060E070E004C0440F551F661F771F8A956C -:10400000D2F78091BC019091BD01A091BE01B09109 -:10401000BF01482759276A277B274093BC0150934B -:10402000BD016093BE017093BF010C94651B0F939B -:104030001F930091BC011091BD012091BE013091F0 -:10404000BF01DC01CB01802B912BA22BB32B8093E2 -:10405000BC019093BD01A093BE01B093BF011F911D -:104060000F910C94651B0F931F930091BC0110914D -:10407000BD012091BE013091BF01DC01CB01802345 -:104080009123A223B3238093BC019093BD01A093FD -:10409000BE01B093BF011F910F910C94651B0F934C -:1040A0001F930091BC011091BD012091BE01309180 -:1040B000BF01DC01CB0180279127A227B327809382 -:1040C000BC019093BD01A093BE01B093BF011F91AD -:1040D0000F910C94651B0895CF92DF92EF92FF929F -:1040E0000F931F93CF93DF938C01C090C001D090AA -:1040F000C101E090C201F090C3014091BC01509118 -:10410000BD016091BE017091BF01C42AD52AE62A83 -:10411000F72ACFE1D0E0D701C6010C2E04C0B69536 -:10412000A795979587950A94D2F780FF07C0B801A5 -:104130008C2F0E94940C8130910531F4219758F70F -:10414000B80180E00E94940CDF91CF911F910F91F4 -:10415000FF90EF90DF90CF90089590910C019923FC -:1041600021F090910D01911109C020910E01309123 -:104170000F01F90132969FEF40E030C0982F9695DD -:10418000969596959F30A0F4E0910E01F0910F0165 -:10419000E90FF11D877021E030E0A90102C0440F52 -:1041A000551F8A95E2F7CA019181892B8183089571 -:1041B0009091D70190FF23C01F928F9389E297E0DF -:1041C0009F938F930E9497080F900F900F900F90DE -:1041D00008959F3F39F04F5F4E3041F05191581391 -:1041E000F8CF0DC05111F7CF942FF5CF9F3F39F085 -:1041F000F901E90FF11D97FDFA958283089508955D -:1042000090910C01992321F090910D01911109C019 -:1042100020910E0130910F01F9013296205F3F4F3E -:1042200030C0982F9695969596959F30A8F4E0917A -:104230000E01F0910F01E90FF11D877021E030E0D0 -:10424000A90102C0440F551F8A95E2F7CA01809563 -:1042500091818923818308959091D70190FF16C0A1 -:104260001F928F938BE097E09F938F930E94970804 -:104270000F900F900F900F9008953196E217F3076B -:1042800029F090819813F9CF1082F7CF089581E03B -:1042900090E0E0910E01F0910F01E80FF91F1082FC -:1042A000019680319105A9F708959091D601892B47 -:1042B0008093D601089580959091D60189238093AB -:1042C000D60108951092D60108959091D501892BB9 -:1042D0008093D501089580959091D501892380938D -:1042E000D50108951092D50108958093C4010895D1 -:1042F0001092C401089580910E0190910F01FC016C -:1043000031969C01205F3F4F80E0919191118F5F2A -:10431000E217F307D1F70895E0910E01F0910F0134 -:104320008091D6018083E0910E01F0910F01908180 -:104330008091D501892B80838091C401882361F00D -:10434000E0910E01F0910F019081892B80830E94F2 -:104350007B2181111092C40180910E0190910F0177 -:104360000C94A51590933B0180933A010895CF9248 -:10437000DF92EF92FF926C01EE24FF24C114D1046E -:10438000E104F10421F0C701B60120E101C020E001 -:10439000C72ED82EE92EFF24C114D104E104F10464 -:1043A00019F0285FC701B6016B017C0154E0F69457 -:1043B000E794D794C7945A95D1F7C114D104E10476 -:1043C000F10419F02C5FC701B6016B017C0142E0DA -:1043D000F694E794D794C7944A95D1F7C114D104C1 -:1043E000E104F10419F02E5FC701B601DC01CB0135 -:1043F000B695A79597958795892B8A2B8B2B09F0D6 -:104400002F5F822FFF90EF90DF90CF9008958295DD -:10441000982F9C7C392F36953695282F237344E0AE -:10442000249FC0011124932F982B292F2A7A269597 -:10443000892F8575880F822B08951F93CF93DF9363 -:104440001F92CDB7DEB799830E940722182F99815A -:10445000892F0E940722212F30E0322F2227A90125 -:10446000482BCA010F90DF91CF911F910895809141 -:10447000F001843009F11092D80120E488E190E045 -:104480000FB6F894A895809360000FBE209360004B -:1044900083B7817F846083BF83B7816083BF789453 -:1044A000889583B78E7F83BF88E10FB6F894809399 -:1044B0006000109260000FBE089508950895CF9394 -:1044C0000E945D220E94390A0E945E22C0E08C2F69 -:1044D0000E94650B811104C0CF5FCE30C1F701C0CF -:1044E00081E0CF9108950C94771B82E084BD93E026 -:1044F00095BD9AEF97BD80936E0008952FB7F894FD -:104500008091D9019091DA01A091DB01B091DC0199 -:104510002FBF0895CF92DF92EF92FF920F931F93D8 -:104520002FB7F8944091D9015091DA016091DB01E5 -:104530007091DC012FBF6A017B01EE24FF248C0106 -:1045400020E030E0C016D106E206F30610F4415038 -:1045500051099A01281B390BC9011F910F91FF9036 -:10456000EF90DF90CF9008951F920F920FB60F92A9 -:1045700011248F939F93AF93BF938091D901909112 -:10458000DA01A091DB01B091DC010196A11DB11D02 -:104590008093D9019093DA01A093DB01B093DC0101 -:1045A000BF91AF919F918F910F900FBE0F901F9071 -:1045B00018950E949712F8942FEF87EA91E6215000 -:1045C00080409040E1F700C0000087E090EBDC0104 -:1045D0008093F9019093FA01A093FB01B093FC0141 -:1045E0009CE088E10FB6F894A895809360000FBE18 -:1045F00090936000FFCFEF92FF920F931F93CF93A2 -:10460000DF93D82FC0E08C2F0E94650B00E010E0F4 -:10461000E82EF12CC701002E02C0959587950A94CB -:10462000E2F780FD06C00F5F1F4F0630110591F7BE -:1046300009C0602F7C2F80E00E94720CD813F3CF4A -:1046400081E004C0CF5FCE30F1F680E0DF91CF9102 -:104650001F910F91FF90EF900895CF93C82F8CE298 -:104660000E94FB22882321F08C2FCF910C94FB22F7 -:1046700080E0CF910895CF930E948A24811102C0D7 -:104680000E9470248EE497E00E94FE07C5E6C150A8 -:1046900049F00E94390A8FE39CE90197F1F700C0C5 -:1046A0000000F5CF87E497E00E94FE0789E20E94B0 -:1046B0002D23811113C18AE20E942D2381110E94B2 -:1046C000702485E00E942D2381110E94D9220E942E -:1046D00095248093D70187E00E942D238823A9F198 -:1046E0008BE10E942D23882351F08091D70181FB1B -:1046F000222720F991E0922790FB81F90EC08EE0ED -:104700000E942D23882361F08091D70182FB22270C -:1047100020F991E0922790FB82F98093D70115C090 -:1047200080E10E942D239091D701882341F093FBD3 -:10473000222720F981E0822780FB93F904C0892F8A -:10474000809580FB90F99093D7018091D7010E94CA -:1047500099240E94A7248093EA0180EE0E942D23D1 -:10476000882341F08091EA01982F909590FB80F981 -:104770008093EA0189E30E942D23882359F08091D8 -:10478000EA0181FB222720F991E0922790FB81F931 -:104790008093EA0182EE0E942D23882359F08091B4 -:1047A000EA0182FB222720F991E0922790FB82F90F -:1047B0008093EA0186EE0E942D23882359F0809190 -:1047C000EA0183FB222720F991E0922790FB83F9ED -:1047D0008093EA0183EE0E942D23882359F0809173 -:1047E000EA0184FB222720F991E0922790FB84F9CB -:1047F0008093EA0185E30E942D23882359F080915C -:10480000EA0185FB222720F991E0922790FB85F9A8 -:104810008093EA0181E30E942D23882359F080913F -:10482000EA0186FB222720F991E0922790FB86F986 -:104830008093EA0181E10E942D23882359F0809121 -:10484000EA0187FB222720F991E0922790FB87F964 -:104850008093EA018091EA010E94AB248091EA01F1 -:1048600087FB882780F980930D0187E20E942D2322 -:10487000C82F8EE10E942D238111C2608FE10E941A -:104880002D238111C46080E20E942D238111C86014 -:1048900081E20E942D238111C06182E20E942D23BA -:1048A0008111C06283E20E942D238111C06484E2E1 -:1048B0000E942D23882311F0C06802C0CC2329F068 -:1048C0008C2F0E94A2246C2F03C00E949E24682F6C -:1048D00070E080E090E0CF910C94331FCF91089569 -:1048E0006DEE7EEF80E090E00E94732E60E082E04B -:1048F00090E00E94652E60E083E090E00E94652ECB -:1049000060E084E090E00E94652E60E085E090E049 -:104910000C94652E80E090E00E945F2E21E08D3E99 -:104920009E4F09F020E0822F089582E090E00C94E1 -:10493000572E682F82E090E00C94652E83E090E083 -:104940000C94572E682F83E090E00C94652E84E041 -:1049500090E00C94572E682F84E090E00C94652E24 -:104960008091DF0180FF0BC06091130185E0689F9B -:10497000B001112475956795759567952BC081FFDA -:1049800009C06091130185E0689FB00111247595FD -:10499000679520C082FF07C06091130185E0689F82 -:1049A000B001112417C09091E0019923D1F06091DA -:1049B0001201961788F72091130185E0289F900136 -:1049C0001124929FA001939F500D112470E0CA0101 -:1049D0000E94292E6038710540F46115710539F087 -:1049E00002C065E070E0862F08958FE7089581E0AA -:1049F00008958091DF0180FF08C06091110170E08F -:104A0000759567957595679521C081FF06C0609182 -:104A1000110170E07595679519C082FF04C060911F -:104A2000110170E010C09091E0019923C1F06091F4 -:104A300010019617A0F780911101899FC0011124E0 -:104A400070E00E94292E6038710528F46115710507 -:104A500021F0862F08958FE7089581E0089561E0A1 -:104A600070E0F4CF803F21F40E94B024819504C00F -:104A7000813F29F40E94B0248093E3010895823F8E -:104A800021F40E94B024819504C0833F29F40E9440 -:104A9000B0248093E2010895893F19F40E94F9241B -:104AA00005C08A3F31F40E94F92481958093E40186 -:104AB00008958B3F21F40E94F924819504C08C3F16 -:104AC00029F40E94F9248093E5010895843F21F49C -:104AD0008091E101816017C0853F21F48091E1015F -:104AE000826011C0863F21F48091E10184600BC097 -:104AF000873F21F48091E101886005C0883F31F44F -:104B00008091E10180618093E10108958D3F21F45E -:104B10008091DF0181600BC08E3F21F48091DF0125 -:104B2000826005C08F3F29F48091DF01846080930B -:104B3000DF010895803F39F48091E30187FF6CC065 -:104B40001092E30169C0813F29F48091E3011816B6 -:104B5000BCF362C09091E201823F29F497FF5CC0F0 -:104B60001092E20159C0833F19F41916CCF354C0D6 -:104B7000893F41F48091E40118160CF04DC0109269 -:104B8000E4014AC08A3F29F48091E40187FF44C0D0 -:104B9000F6CF8B3F39F48091E50187FF3DC010923D -:104BA000E5013AC08C3F29F48091E5011816BCF369 -:104BB00033C0843F21F48091E1018E7F17C0853F8F -:104BC00021F48091E1018D7F11C0863F21F4809115 -:104BD000E1018B7F0BC0873F21F48091E101877F4A -:104BE00005C0883F31F48091E1018F7E8093E1011F -:104BF00013C08D3F21F48091DF018E7F0BC08E3F6B -:104C000021F48091DF018D7F05C08F3F29F48091D1 -:104C1000DF018B7F8093DF018091E20181110EC063 -:104C20008091E30181110AC08091E401811106C0E5 -:104C30008091E501811102C01092E00108958091F8 -:104C4000D70183FF7EC08AE897E00E94FE0780912B -:104C5000E1011F928F9385E897E09F938F930E94C5 -:104C6000970883E897E00E94FE078091E201282FD1 -:104C7000332727FD30953F938F9380E897E09F93EC -:104C80008F930E9497088EE797E00E94FE0780911D -:104C9000E301282F332727FD30953F938F938BE730 -:104CA00097E09F938F930E94970889E797E00E946F -:104CB000FE078091E401282F332727FD30953F938D -:104CC0008F9386E797E09F938F930E94970884E7DE -:104CD00097E00E94FE078091E501282F332727FDEA -:104CE00030953F938F9381E797E09F938F930E9436 -:104CF00097088EE697E00E94FE078091E0011F92E0 -:104D00008F938BE697E09F938F930E94970889E695 -:104D100097E00E94FE078091DF011F928F9386E645 -:104D200097E09F938F930E94970883E697E00E94F5 -:104D3000FE078DB79EB74C960FB6F8949EBF0FBE78 -:104D40008DBF81EE91E00E94EE150E947E2290932D -:104D5000DE018093DD0108951F93CF93DF9380914F -:104D6000DD019091DE010E948A22AC019091E00168 -:104D7000992321F02091140130E006C02091150103 -:104D80008AE0289F900111244217530708F486C037 -:104D90008091E201C091E301D091E4011091E5011D -:104DA000811107C0C11176C0D11174C0111172C038 -:104DB00075C09F3F19F09F5F9093E001181624F48F -:104DC0000E94B0248093E2018091E20187FF05C038 -:104DD0000E94B02481958093E2011C1624F40E9465 -:104DE000B0248093E3018091E30187FF05C00E9416 -:104DF000B02481958093E3016091E201662339F14B -:104E0000C091E301CC2319F1772767FD7095872FB7 -:104E1000972F0E942E2D23E333E343E35FE30E94A9 -:104E2000922D0E94FB2C6093E2016C2F772767FD87 -:104E30007095872F972F0E942E2D23E333E343E3B2 -:104E40005FE30E94922D0E94FB2C6093E3011D16EC -:104E500024F40E94F9248093E4018091E40187FF07 -:104E600005C00E94F92481958093E401111624F471 -:104E70000E94F9248093E5018091E50187FF05C038 -:104E80000E94F92481958093E501DF91CF911F91D4 -:104E90000C941F269F3F09F08ECF96CFDF91CF91C4 -:104EA0001F910895E1EEF1E085E0DF011D928A9502 -:104EB000E9F71092E0011092DF0108958DEA99E080 -:104EC0000E94FE071F9281E08F931F9285E08F93CF -:104ED0008FE599E09F938F930E9497080F900F9012 -:104EE0000F900F900F900F9008958330E9F128F400 -:104EF000813061F0823009F10895853009F462C093 -:104F000008F449C0863009F474C0089580911501F1 -:104F1000262F30E0280F311D2F3F310524F4680F74 -:104F20006093150103C08FEF8093150180911501E7 -:104F30001F928F9388E998E072C080911401262F08 -:104F400030E0280F311D2F3F310524F4680F6093A6 -:104F5000140103C08FEF80931401809114011F92FC -:104F60008F9386E898E05BC080911301262F30E094 -:104F7000280F311D2F3F310524F4680F6093130172 -:104F800003C08FEF80931301809113011F928F93C1 -:104F900083E798E044C080911201262F30E0280F6B -:104FA000311D2F3F310524F4680F6093120103C0B7 -:104FB0008FEF80931201809112011F928F938EE5E3 -:104FC00098E02DC080911101262F30E0280F311D6F -:104FD0002F3F310524F4680F6093110103C08FEF58 -:104FE00080931101809111011F928F9385E498E0C5 -:104FF00016C080911001262F30E0280F311D2F3F61 -:10500000310524F4680F6093100103C08FEF809383 -:105010001001809110011F928F938AE298E09F9374 -:105020008F930E9497080F900F900F900F90089504 -:10503000833081F128F4813059F08230D1F0089525 -:10504000853009F449C0B8F1863009F456C0089596 -:1050500080911501681720F4861B8093150102C00A -:1050600010921501809115011F928F938BE198E0AA -:1050700054C080911401681720F4861B809314019A -:1050800002C010921401809114011F928F9389E045 -:1050900098E043C080911301681720F4861B809329 -:1050A000130102C010921301809113011F928F937C -:1050B00086EF97E032C080911201681720F4861BBA -:1050C0008093120102C010921201809112011F926E -:1050D0008F9381EE97E021C080911101681720F431 -:1050E000861B8093110102C0109211018091110161 -:1050F0001F928F9388EC97E010C080911001681781 -:1051000020F4861B8093100102C010921001809140 -:1051100010011F928F938DEA97E09F938F930E94C7 -:1051200097080F900F900F900F900895CF93C82F6E -:105130001F928F9382EB9AE09F938F930E94970820 -:1051400081E090E0A0E0B0E0BC01CD0104C0660FBA -:10515000771F881F991FCA95D2F70E94331F0F909F -:105160000F900F900F90CF910C94771BCF938D31B0 -:1051700009F465C0B0F58E3009F4CCC100F5873074 -:1051800009F49BC1A8F4863009F06DC28091D70163 -:10519000817F8E7F8093D70187EB9AE00E94FE0784 -:1051A00089EF9EE00E94FE0781E08093E70180C1C5 -:1051B000883009F44FC08B3009F47CC154C2863169 -:1051C00009F4F0C138F4803109F4B8C1813109F42F -:1051D00030C249C2893109F4CEC18B3109F486C18C -:1051E00042C2853309F437C248F4873209F433C226 -:1051F00008F433C2893209F42EC235C2833438F43C -:105200008A3308F02CC2883309F454C12CC2833489 -:1052100009F421C2883409F026C20E94771B88EE67 -:105220009EE00E94FE079FEF23ED80E39150204017 -:105230008040E1F700C000000E94D92239C188E017 -:105240009FE00E94FE070E94B52C0E9499150E94C3 -:10525000CB0D2EC18DEF9EE00E94FE0788EC9CE0F6 -:105260000E94FE070E949E241F928F9385EC9CE073 -:105270009F938F930E94970883EC9CE00E94FE0707 -:105280000E949524C82F80EB9CE00E94FE071F928D -:10529000CF938BEA9CE09F938F930E94970889EAB3 -:1052A0009CE00E94FE078FE99CE00E94FE078C2F85 -:1052B00081701F928F938CE99CE09F938F930E9443 -:1052C00097088AE99CE00E94FE0780E99CE00E9422 -:1052D000FE07C1FB882780F91F928F938DE89CE021 -:1052E0009F938F930E9497088BE89CE00E94FE0793 -:1052F0008FE79CE00E94FE07C2FB882780F91F927F -:105300008F938CE79CE09F938F930E9497088AE786 -:105310009CE00E94FE0781E79CE00E94FE07C3FB21 -:10532000CC27C0F91F92CF938EE69CE09F938F937A -:105330000E9497088CE69CE00E94FE070E94A7242A -:10534000C82F88E59CE00E94FE071F92CF9383E55B -:105350009CE09F938F930E94970881E59CE00E94B8 -:10536000FE0788E39CE00E94FE078C2F81701F924D -:105370008F9385E39CE09F938F930E9497088DB74E -:105380009EB780960FB6F8949EBF0FBE8DBF83E385 -:105390009CE00E94FE078CE19CE00E94FE07C1FB9E -:1053A000882780F91F928F9389E19CE09F938F93C8 -:1053B0000E94970887E19CE00E94FE0785E09CE040 -:1053C0000E94FE07C2FB882780F91F928F9382E01C -:1053D0009CE09F938F930E94970880E09CE00E943E -:1053E000FE078EEE9BE00E94FE07C3FB882780F934 -:1053F0001F928F938BEE9BE09F938F930E94970851 -:1054000089EE9BE00E94FE078FED9BE00E94FE0765 -:10541000C4FB882780F91F928F938CED9BE09F93AC -:105420008F930E9497088AED9BE00E94FE0788EC0C -:105430009BE00E94FE07C5FB882780F91F928F938F -:1054400085EC9BE09F938F930E94970883EC9BE0F1 -:105450000E94FE0787EA9BE00E94FE07C6FB8827A2 -:1054600080F91F928F9384EA9BE09F938F930E9411 -:10547000970882EA9BE00E94FE078AE99BE00E946F -:10548000FE07C7FBCC27C0F91F92CF9387E99BE0AB -:105490009F938F930E94970885E99BE00E94FE07E7 -:1054A0008DB79EB74C960FB6F8949EBF0FBE8DBFBA -:1054B000C1E0DEC08EED9AE05BC08091D701C82FBD -:1054C000C17080FF09C08BED9EE00E94FE078091B5 -:1054D000D701817F8E7F47C08FEC9EE00E94FE0740 -:1054E0008091D70181608093D701E2CF9091D7015D -:1054F00091FBCC27C0F981E0C827892FC0FB81F937 -:105500008093D701CC2319F082EC9EE027C084EB76 -:105510009EE02EC09091D70192FBCC27C0F981E08C -:10552000C827892FC0FB82F98093D701CC2319F0BB -:1055300085EA9EE013C085E99EE01AC09091D701EC -:1055400093FBCC27C0F981E0C827892FC0FB83F9E2 -:105550008093D701CC2351F089E89EE00E94FE079A -:105560008091D70181608093D70182C08CE79EE053 -:105570000E94FE079DCF8DE69EE00E94FE0781E41B -:105580009EE00E94FE0784E09EE00E94FE0787EDF9 -:105590009DE00E94FE0783E99DE00E94FE0788E6E9 -:1055A0009DE0E6CF8AE59DE00E94FE070E949915E6 -:1055B0001F928F9380E49DE09F938F930E949708A2 -:1055C00080910C011F928F9389E29DE09F938F93AE -:1055D0000E94970880916E011F928F9386E19DE053 -:1055E0009F938F930E94970880910D011F928F9334 -:1055F00083E09DE09F938F930E9497088091D9014B -:105600009091DA01A091DB01B091DC01BF93AF93DF -:105610009F938F938FEE9CE09F938F930E949708A8 -:105620008DB79EB746960FB6F8949EBF0FBE8DBF3E -:105630003FCF0E94771BC0910D0181E0C827C09326 -:105640000D01CC2329F085EE9CE00E94FE0710C0DE -:105650008AED9CE08DCF80E003C08D5101C089535D -:105660000E94962825CF88ED9CE00E94FE07C0E0AE -:105670008C2FCF91089580E0089580E00895CF9316 -:10568000C82F8091E701813081F020F0823009F449 -:105690004FC045C1E0910E01F0910F018081813131 -:1056A00069F0823209F03DC109C0E0910E01F0912C -:1056B0000F018081813111F0823261F48C2F0E94C0 -:1056C0003B2B811104C08C2F0E94B6282FC081E093 -:1056D00090E02CC08C2F0E943D2B811126C0C4313C -:1056E000E1F070F4CB3081F0C031D1F40E945E273C -:1056F0008AEA9AE00E94FE0782E08093E70115C0E3 -:10570000C93259F0C83361F487EB9AE00E94FE0772 -:105710008EEA9AE00E94FE0708C01092E70103C1DA -:1057200088EA9AE00E94FE07FEC081E08170FDC019 -:10573000C43220F5CE3108F0C0C0CB3099F1C8F4A6 -:10574000C73009F0D2C08AE08093150194E19093AC -:10575000140193E0909313018093120188E08093E9 -:10576000110188E2809310018EE499E00E94FE0707 -:10577000BFC0C33149F1C431C1F0B7C0CB3409F463 -:10578000A9C028F4C93289F0C83361F0AEC0C13570 -:1057900009F49EC0C23509F499C0CE3409F0A5C001 -:1057A0006AE09EC00E945E27A3C08091E601882324 -:1057B00019F01092E6019CC08BE599E00E94FE076B -:1057C00081E08093E701B1C085E399E00E94FE0784 -:1057D00083E299E00E94FE07809115011F928F934A -:1057E00080E299E09F938F930E9497088EE199E061 -:1057F0000E94FE078CE099E00E94FE078091140150 -:105800001F928F9389E099E09F938F930E9497084E -:1058100087E099E00E94FE0788EF98E00E94FE076B -:10582000809113011F928F9385EF98E09F938F9340 -:105830000E94970883EF98E00E94FE0782EE98E0AE -:105840000E94FE07809112011F928F938FED98E0C6 -:105850009F938F930E9497088DED98E00E94FE071A -:1058600088EC98E00E94FE07809111011F928F93AF -:1058700085EC98E09F938F930E94970883EC98E0C3 -:105880000E94FE078CEA98E00E94FE0780911001BA -:105890001F928F9389EA98E09F938F930E949708B5 -:1058A00087EA98E00E94FE078DB79EB748960FB62C -:1058B000F8949EBF0FBE8DBF1BC0CE51EC2FF0E001 -:1058C000E15DFE4F80818093E60112C061E003C07C -:1058D00061E006C06AE08091E6010E94752708C079 -:1058E0008091E6010E94182803C08CE499E013C05F -:1058F0008091E601882369F01F928F9386E499E0F6 -:105900009F938F930E9497080F900F900F900F9086 -:1059100004C083E499E00E94FE0781E006C0109273 -:10592000E70180E002C080E001CFCF910895E1E877 -:10593000F0E08081886080838081816080838FB780 -:10594000F89493E09093890090ED909388008FBF36 -:105950000895EFE6F0E08081826080830895EFE6AD -:10596000F0E080818D7F80830895EFE6F0E0908104 -:1059700082E08927808308951F920F920FB60F92BD -:1059800011242F933F934F935F936F937F938F9344 -:105990009F93AF93BF93EF93FF938091E801909112 -:1059A000E90101969093E9018093E801811103C018 -:1059B00082E00E94CB0DE091E901E695E695F0E0EA -:1059C000E85EF04FE4918091E8018E1303C080E01F -:1059D0000E94CB0DFF91EF91BF91AF919F918F915D -:1059E0007F916F915F914F913F912F910F900FBEDB -:1059F0000F901F90189504D06894B1118DC0089530 -:105A000070D088F09F5790F0B92F9927B751A0F028 -:105A1000D1F0660F771F881F991F1AF0BA95C9F742 -:105A200012C0B13081F077D0B1E0089574C0672F13 -:105A3000782F8827B85F39F0B93FCCF386957795F2 -:105A40006795B395D9F73EF49095809570956195DB -:105A50007F4F8F4F9F4F0895E89409C097FB3EF406 -:105A600090958095709561957F4F8F4F9F4F9923AB -:105A7000A9F0F92F96E9BB279395F6958795779529 -:105A80006795B795F111F8CFFAF4BB0F11F460FFE9 -:105A90001BC06F5F7F4F8F4F9F4F16C0882311F041 -:105AA00096E911C0772321F09EE8872F762F05C055 -:105AB000662371F096E8862F70E060E02AF09A95F0 -:105AC000660F771F881FDAF7880F9695879597F9E5 -:105AD000089557FD9058440F551F59F05F3F71F0DE -:105AE0004795880F97FB991F61F09F3F79F0879545 -:105AF0000895121613061406551FF2CF4695F1DFCE -:105B000008C0161617061806991FF1CF869571055D -:105B1000610508940895E894BB2766277727CB0191 -:105B200097F908950BD078C069D028F06ED018F09E -:105B3000952309F05AC05FC01124EECFCADFA0F34D -:105B4000959FD1F3950F50E0551F629FF001729F12 -:105B5000BB27F00DB11D639FAA27F00DB11DAA1F31 -:105B6000649F6627B00DA11D661F829F2227B00D7E -:105B7000A11D621F739FB00DA11D621F839FA00D09 -:105B8000611D221F749F3327A00D611D231F849F59 -:105B9000600D211D822F762F6A2F11249F575040B0 -:105BA0008AF0E1F088234AF0EE0FFF1FBB1F661F4B -:105BB000771F881F91505040A9F79E3F510570F004 -:105BC00014C0AACF5F3FECF3983EDCF3869577953F -:105BD0006795B795F795E7959F5FC1F7FE2B880FFF -:105BE000911D9695879597F9089597F99F6780E895 -:105BF00070E060E008959FEF80EC089500240A941F -:105C00001616170618060906089500240A94121697 -:105C10001306140605060895092E0394000C11F4CA -:105C2000882352F0BB0F40F4BF2B11F460FF04C077 -:105C30006F5F7F4F8F4F9F4F0895991B79E004C08E -:105C4000991F961708F0961B881F7A95C9F78095BB -:105C5000089597FB072E16F4009407D077FD09D01E -:105C60000E94432E07FC05D03EF4909581959F4FEE -:105C70000895709561957F4F0895EE0FFF1F059071 -:105C8000F491E02D0994AA1BBB1B51E107C0AA1F88 -:105C9000BB1FA617B70710F0A61BB70B881F991FCD -:105CA0005A95A9F780959095BC01CD010895F99971 -:105CB000FECF92BD81BDF89A992780B50895A8E1DD -:105CC000B0E042E050E00C947A2E262FF999FECFF6 -:105CD0001FBA92BD81BD20BD0FB6F894FA9AF99A09 -:105CE0000FBE019608950E94652E272F0C94662EF4 -:105CF000DC01CB01FC01F999FECF06C0F2BDE1BD8C -:105D0000F89A319600B40D9241505040B8F708957A -:045D1000F894FFCF35 -:105D14002002CC0DBD0E9A0E660E320E0101C50195 -:105D240028080A03140A3F4D36203998064B0615F5 -:105D340006F505BC052F05480561057A059A050198 -:0A5D44000203040506070809000029 +:100000000C94CA070C940E080C940E080C940E085D +:100010000C940E080C940E080C940E080C940E0808 +:100020000C940E080C940E080C9488130C945A141B +:100030000C940E080C940E080C940E080C940E08E8 +:100040000C940E080C94322D0C940E080C940E088F +:100050000C940E080C942A230C940E080C940E0891 +:100060000C940E080C940E080C940E080C940E08B8 +:100070000C940E080C940E080C940E080C940E08A8 +:100080000C940E080C940E080C940E080C940E0898 +:100090000C940E080C940E080C940E080C940E0888 +:1000A0000C940E080C940E080C940E08C714E91456 +:1000B000D715E914D7152E155115D715A615B9154D +:1000C000001900192F192F197319B119CB1BCB1B4C +:1000D000CA19CB1BCB1ACB1A9F1BCB1BCB1BB61B36 +:1000E00002E002E2012E022E02E10002E002E10241 +:1000F000E20001E001E101E20002E001E3010602A9 +:100100000602E30002E00001E00002E001E3011961 +:10011000021902E30002E00001E0000000F0A1F09B +:10012000A329002B000354E100358100001E0014B8 +:100130000004001D7135004D001F001A0016001B41 +:1001400000E1044C00200008000700060050002ACF +:100150000021001500090019004F004A0022001775 +:10016000000A000500000002540130E3000000E234 +:1001700000000003300230E7000000E60000002E1F +:100180007F23001C000B0011000000045424001801 +:10019000000D00100052004B0025000C000E003630 +:1001A0000051002C00260012000F003700E1082843 +:1001B00000270013003300387130004E002D002F4F +:1001C000003482E5003181000001000100010001DE +:1001D00000010000003A003500310001000100017B +:1001E000003B0035022102350001004C003C001E9E +:1001F0000224062202010001003D002D02240224F7 +:1002000004010001003E000100370011040000015C +:1002100000010001000000010000000100010001D8 +:100220000000000100000001003F0024062402231A +:1002300002000001004000220425023500010001F7 +:100240000041002304260235023700010042002449 +:100250000425041F021E0201004300310026043160 +:1002600002010001004400450001002D02010000D0 +:100270000001000100010001000100000001000177 +:10028000000100FB000100010001000100F200F983 +:1002900000010001000100F000F100FA00F400018B +:1002A0000001000100F300FC00F500010001000165 +:1002B000000100F600000001000100010000000143 +:1002C0000000000100010001000000010000000129 +:1002D0000001000100010001000000010001000117 +:1002E000000100A800A9000100010001000100AC0C +:1002F00000AA00B600010001000100AB005000019F +:1003000000010001000100520051000100AE000197 +:1003100000010001004F0000000100010001000188 +:1003200000010000000100010001000100010001C6 +:1003300000010001000100010001000100010001B5 +:1003400000010001000100010001000100010001A5 +:100350000001000100010001000100010000000196 +:100360000001000100000001000000010001000187 +:100370000000000100000001000100010001000177 +:100380000000000100010001000100010001000166 +:100390000001000100010001000100010001000155 +:1003A00000010001005000010001000100010052A5 +:1003B000005100010001000100010001004F000098 +:1003C0000001000100010001000100000001000126 +:1003D00000010001000100010001000100500001C6 +:1003E0000001000100010052005100010001000164 +:1003F00000010001004F00010001000100010001A7 +:1004000000010001000000010001000100000001E6 +:1004100000000001000100010000000100000001D7 +:10042000003F005200510023020000010040002460 +:100430000021001E00270001004100250022001FAE +:1004400000370001004200260023002000270001A1 +:100450000043003002300024022E00010044004519 +:100460000001000100010000000A00253031366261 +:10047000003A200025303258000A722F63203031B4 +:1004800032333435363738394142434445460A0021 +:100490000A002530325800626F756E6365213A207C +:1004A000006C6566742073696465206174746163AF +:1004B0006865640A006C6566742073696465206E03 +:1004C0006F7420726573706F6E64696E670A007472 +:1004D0007279696E6720746F207265736574206D20 +:1004E000637032333031380A000A44454255473A86 +:1004F00020656E61626C65642E0A005B735D004B63 +:100500006579626F6172642073746172742E0A007F +:100510005B575D005B535D005B525D005B445D00BB +:100520005B435D0016034500720067006F004400E6 +:100530006F007800200045005A00000016034500B7 +:10054000720067006F0044006F00780020004500D3 +:100550005A0000000403090409028D00050100A0EF +:10056000FA09040000010301010009211101000141 +:10057000223F000705810308000A09040100010366 +:10058000010200092111010001224D00070582032B +:1005900008000A09040200010300000009211101FA +:1005A00000012236000705830308000A090403003E +:1005B00002030000000921110100012220000705AB +:1005C000840320000107050403200001090404003E +:1005D0000103000000092111010001223900070573 +:1005E00085031000011201100100000008EDFE0754 +:1005F0001301000102000105010906A10105071907 +:10060000E029E71500250195087501810205081903 +:100610000129059505750191029501750391010563 +:10062000071900297715002501957875018102C009 +:100630000631FF0974A1010975150025FF95207584 +:100640000881020976150025FF952075089102C0E2 +:1006500005010980A101850216010026B7001A01D3 +:10066000002AB700751095018100C0050C0901A191 +:10067000018503160100269C021A01002A9C0275BE +:100680001095018100C005010902A1010901A10025 +:100690000509190129051500250195057501810236 +:1006A0009501750381010501093009311581257F07 +:1006B00095027508810609381581257F9501750811 +:1006C0008106050C0A38021581257F950175088180 +:1006D00006C0C005010906A101050719E029E715B3 +:1006E00000250195087501810295017508810105B4 +:1006F0000819012905950575019102950175039168 +:10070000010507190029FF150025FF9506750881C9 +:1007100000C00A002530325820006B6579626F6195 +:1007200072645F7265706F72743A20000A0025303F +:100730003258006B6579626F6172645F7365745FD4 +:100740006C65643A200064656C5F6B65795F626913 +:10075000743A2063616E27742064656C3A202530FA +:1007600032580A006164645F6B65795F6269743A4C +:100770002063616E2774206164643A20253032580A +:100780000A00646F6E652E0A00626F6F676D6167A5 +:100790006963207363616E3A202E2E2E2000290A91 +:1007A000002575002F002575005D280025640020B8 +:1007B00000256400200025640020002564007C00E2 +:1007C00025303258006D6F7573656B6579205B62FB +:1007D000746E7C782079207620685D287265702F91 +:1007E00061636C293A205B006D6B5F776865656CAF +:1007F0005F74696D655F746F5F6D6178203D202562 +:10080000640A006D6B5F776865656C5F6D61785F2A +:100810007370656564203D2025640A006D6B5F740C +:10082000696D655F746F5F6D6178203D2025640A96 +:10083000006D6B5F6D61785F7370656564203D204E +:1008400025640A006D6B5F696E74657276616C2059 +:100850003D2025640A006D6B5F64656C6179203D05 +:100860002025640A006D6B5F776865656C5F74694D +:100870006D655F746F5F6D6178203D2025640A00AF +:100880006D6B5F776865656C5F6D61785F737065D0 +:100890006564203D2025640A006D6B5F74696D6599 +:1008A0005F746F5F6D6178203D2025640A006D6B79 +:1008B0005F6D61785F7370656564203D2025640A13 +:1008C000006D6B5F696E74657276616C203D2025EA +:1008D000640A006D6B5F64656C6179203D2025645E +:1008E0000A000A00257500363A20776865656C5F56 +:1008F00074696D655F746F5F6D61783A20000A00FE +:10090000257500353A20776865656C5F6D61785FA5 +:1009100073706565643A20000A00257500343A203A +:1009200074696D655F746F5F6D61783A20000A00CD +:10093000257500333A206D61785F73706565643AA0 +:1009400020000A00257500323A20696E74657276BF +:10095000616C286D73293A20000A00257500313A30 +:100960002064656C6179282A31306D73293A200042 +:100970000A092D2056616C756573202D0A004D3EC5 +:10098000004D25643E20003F007365742064656659 +:1009900061756C740A00433E2000776865726520BB +:1009A00064656C74613A20637572736F723D25647F +:1009B0002C20776865656C3D25640A536565206861 +:1009C0007474703A2F2F656E2E77696B6970656449 +:1009D00069612E6F72672F77696B692F4D6F757321 +:1009E000655F6B6579730A000A092D204D6F757379 +:1009F000656B6579202D0A4553432F713A0971754E +:100A000069740A313A0964656C6179282A31306D5C +:100A100073290A323A09696E74657276616C286DC1 +:100A200073290A333A096D61785F73706565640AEA +:100A3000343A0974696D655F746F5F6D61780A356A +:100A40003A09776865656C5F6D61785F737065659D +:100A5000640A363A09776865656C5F74696D655F2D +:100A6000746F5F6D61780A0A703A097072696E740A +:100A70002076616C7565730A643A09736574206445 +:100A8000656661756C74730A75703A092B310A6476 +:100A90006F776E3A092D310A706775703A092B31FC +:100AA000300A7067646F776E3A092D31300A0A7325 +:100AB00070656564203D2064656C7461202A206D3A +:100AC00061785F7370656564202A2028726570659F +:100AD0006174202F2074696D655F746F5F6D61783C +:100AE000290A003F004D3E2000433E20004C256473 +:100AF0000A000A092D20436F6E736F6C65202D0A62 +:100B00004553432F713A09717569740A6D3A096D3D +:100B10006F7573656B65790A000A092D204D616751 +:100B20006963202D0A643A0964656275670A783A38 +:100B3000096465627567206D61747269780A6B3A41 +:100B4000096465627567206B6579626F6172640A1A +:100B50006D3A096465627567206D6F7573650A7615 +:100B60003A0976657273696F6E0A733A0973746134 +:100B70007475730A633A09636F6E736F6C65206DE9 +:100B80006F64650A302D343A096C61796572302DD5 +:100B900034284631302D4634290A506175733A099C +:100BA000626F6F746C6F616465720A653A0965659E +:100BB00070726F6D0A6E3A094E4B524F0A7A3A09BB +:100BC000736C656570204C454420746573740A002D +:100BD0000A002575002E6E6B726F3A20000A002500 +:100BE00075002E737761705F6261636B736C617304 +:100BF000685F6261636B73706163653A20000A002D +:100C00002575002E737761705F67726176655F6529 +:100C100073633A20000A002575002E6E6F5F6775BA +:100C2000693A20000A002575002E737761705F72A3 +:100C3000616C745F726775693A20000A002575005F +:100C40002E737761705F6C616C745F6C6775693A65 +:100C500020000A002575002E636170736C6F636B52 +:100C60005F746F5F636F6E74726F6C3A20000A007E +:100C70002575002E737761705F636F6E74726F6C91 +:100C80005F636170736C6F636B3A20000A002530FC +:100C90003258006B65796D61705F636F6E6669676E +:100CA0002E7261773A20000A002575002E6D6F754F +:100CB00073653A20000A002575002E6B6579626F16 +:100CC0006172643A20000A002575002E6D6174720D +:100CD00069783A20000A002575002E656E61626C05 +:100CE000653A20000A002530325800646562756755 +:100CF0005F636F6E6669672E7261773A20000A0043 +:100D000025750064656661756C745F6C61796572E8 +:100D10003A20003F004E4B524F3A206F66660A0061 +:100D20004E4B524F3A206F6E0A0074696D65725FC8 +:100D3000636F756E743A202530346C580A006B6509 +:100D400079626F6172645F6E6B726F3A2025580A28 +:100D5000006B6579626F6172645F69646C653A20EB +:100D600025580A006B6579626F6172645F70726FFB +:100D7000746F636F6C3A2025580A00686F73745F54 +:100D80006B6579626F6172645F6C65647328293A80 +:100D90002025580A000A092D2053746174757320A8 +:100DA0002D0A004743433A20342E392E3320415632 +:100DB000522D4C4942433A20312E382E3120415693 +:100DC000525F415243483A20617672350A004F50D3 +:100DD00054494F4E533A204C55464120424F4F54B0 +:100DE0004D41474943204D4F5553454B45592045AB +:100DF000585452414B455920434F4E534F4C452078 +:100E0000434F4D4D414E44204E4B524F20353132D1 +:100E10000A004255494C443A206130383532363563 +:100E20002D6469727479202830393A34343A313774 +:100E3000204A616E2031332032303136290A005683 +:100E400049443A20307846454544284572676F4406 +:100E50006F7820455A29205049443A203078313360 +:100E60003037284572676F446F7820455A292056DD +:100E700045523A203078303030310A0044455343EF +:100E80003A20742E6D2E6B2E206B6579626F617225 +:100E900064206669726D7761726520666F722045A5 +:100EA00072676F646F780A000A092D2056657273A5 +:100EB000696F6E202D0A000A6D6F7573653A206F99 +:100EC00066660A000A6D6F7573653A206F6E0A00D8 +:100ED0000A6B6579626F6172643A206F66660A0018 +:100EE0000A6B6579626F6172643A206F6E0A000A5C +:100EF0006D61747269783A206F66660A000A6D61E6 +:100F0000747269783A206F6E0A000A6465627567C8 +:100F10003A206F6E0A000A64656275673A206F6650 +:100F2000660A000A0A626F6F746C6F616465722EE4 +:100F30002E2E2000433E20006565636F6E66696754 +:100F40003A0A00536C656570204C45442074657303 +:100F5000740A000000000000000000000000010210 +:100F600004060A0F17202C3A4A5D71879DB3C7DA31 +:100F7000E9F5FCFFFCF5E9DAC7B39D87715D4A3AF4 +:100F80002C20170F0A0604020100000000000000D8 +:100F90000000000011241FBECFEFDAE0DEBFCDBF9E +:100FA00004B603FE24C08091FB019091FC01A09146 +:100FB000FD01B091FE018730904BA740B04BB9F4D2 +:100FC0001092FB011092FC011092FD011092FE01A3 +:100FD00014BE84B7877F84BF88E10FB6F8948093EE +:100FE0006000109260000FBEE0E0FFE3099511E0A1 +:100FF000A0E0B1E0E0E0FEE502C005900D92AA336A +:10100000B107D9F711E0AAE3B1E001C01D92AB3FEF +:10101000B107E1F70E94C0100C94FE2E0C94000062 +:10102000FF93EF93E0913A01F0913B01309709F083 +:101030000995EF91FF910895FC018591803011F0A1 +:10104000EFDFFBCF0895FF27E0E230E247FF0CC05F +:10105000419597FF09C0EDE2609570958095909558 +:10106000611D711D811D911D27FF02C0219530E377 +:1010700050E2AA27660F771F881F991FAA1FA4177F +:1010800010F0A41B63955A95A9F7AA3008F0A95F40 +:10109000A05DAF93F395611571058105910541F749 +:1010A000ED3211F4EF93F395F21718F43F93F395A3 +:1010B000FBCF8F91B5DFFA95E1F70895E991F991AA +:1010C0008591803021F0853219F0AADFF9CF08959B +:1010D00020E0E89455915532C1F3503311F46894EF +:1010E00055915A3348F4505390F3220F022E220F99 +:1010F000220F200D250FF4CF0EF42195899199919F +:10110000533619F3533729F1533559F1BC01882768 +:101110009927E8945C3621F48991999168945591C6 +:10112000543639F446EF7EF077FF0DC08FEF9FEF16 +:101130000AC055374AE039F0583540E121F05236BF +:1011400042E009F00895FF93EF937DDFEF91FF9167 +:10115000B7CFFF93EF93FC0181918030B9F360DF4B +:10116000FBCFFF93EF9368DFF1CFDF93CF93CDB742 +:10117000DEB72596A3DFCF91DF910895FC016130A2 +:1011800089F028F0623031F16330E1F153C082819F +:10119000882321F085EE0E949D174CC085EE0E94A9 +:1011A000651848C08281882349F00E94F4229093F8 +:1011B0003D0180933C0188E191E0089580913C01DC +:1011C00090913D010E94002387399105B4F58AE092 +:1011D00091E008958281882349F00E94F42290933F +:1011E0003D0180933C0187E091E0089580913C01AE +:1011F00090913D010E940023873991050CF589EFFC +:1012000090E008958281882349F00E94F42290930F +:101210003D0180933C0182EF90E0089580913C0174 +:1012200090913D010E9400238739910564F480EE7E +:1012300090E0089580E090E0089585E191E00895C0 +:1012400084E091E008958BEE90E008950895609118 +:10125000BE017091BF018091C0019091C1010E94B7 +:101260002D2256985E9825982D9826982E98279886 +:101270002F98823061F018F4813031F00895833076 +:1012800049F0843051F00895259A2D9A0895269AB0 +:101290002E9A0895279A2F9A0895259A2D9A279A7B +:1012A0002F9A089587E299E0892B11F00E9427096F +:1012B00080E090E0089556985E9825982D9826989D +:1012C0002E9827982F988FEF90E090938900809325 +:1012D000880090938B0080938A0090938D00809378 +:1012E0008C00259A2D9A2FEF80E792E021508040C4 +:1012F0009040E1F700C00000269A2E9A2FEF80E779 +:1013000092E0215080409040E1F700C00000279A11 +:101310002F9A2FEF80E792E0215080409040E1F734 +:1013200000C0000025982D982FEF80E792E0215013 +:1013300080409040E1F700C0000026982E982FEFE3 +:1013400080E792E0215080409040E1F700C000002B +:1013500027982F9856985E9825982D9826982E981D +:1013600027982F98089589EA8093800089E08093D8 +:10137000810024982C983F988AB18F748AB96E980E +:10138000479A8BB1806B8BB9769A0E945B0986E293 +:1013900099E0892B11F00E94260980E090E00895E1 +:1013A00080E28093000180913E0181110EC00E9475 +:1013B0001F0A81E080933E012FEF83ED90E32150DF +:1013C00080409040E1F700C0000080E40E94250AC0 +:1013D0008093000181112EC00E944F0A809300016A +:1013E000811128C00E944F0A80930001811122C000 +:1013F0008FE30E944F0A8093000181111BC00E945D +:10140000470A80E40E94250A80930001811112C0DE +:101410008CE00E944F0A8093000181110BC00E9452 +:101420004F0A80930001811105C08FE30E944F0A8B +:10143000809300010E94470A809100010895109254 +:10144000B9008AE08093B800089594EA9093BC00B4 +:101450009091BC0097FFFCCF9091B900987F983095 +:1014600021F0903111F081E008958093BB0084E871 +:101470008093BC008091BC0087FFFCCF8091B900B5 +:10148000887F883111F0803471F780E0089584E915 +:101490008093BC008091BC0084FDFCCF08958093B4 +:1014A000BB0084E88093BC008091BC0087FFFCCF28 +:1014B0009091B900987F81E0983209F480E0089516 +:1014C00084E88093BC008091BC0087FFFCCF8091B2 +:1014D000BB00089580910001811115C080E40E9435 +:1014E000250A8093000181110CC082E10E944F0AFD +:1014F00080930001811105C08FEF0E944F0A8093F5 +:1015000000010E94470A84B1807F84B985B1807F41 +:1015100085B98AB1837F8AB98BB1837F8BB93E98B5 +:10152000469808950E94D009809300010E946A0A9B +:1015300080B38C7080BB81B3836F81BBA0E4B1E0CA +:10154000EEE4F1E08EE08E0F11921D928E13FCCF2F +:1015500083EB99E0892B11F00C94B30908959F92C5 +:10156000AF92BF92CF92DF92EF92FF920F931F93B1 +:10157000CF93DF93809100018823E1F080913F01B8 +:101580008F5F80933F01811115C08FEC94E00E9422 +:101590001C080E94D00980930001882329F085EB64 +:1015A00094E00E941C0806C081EA94E00E941C0896 +:1015B0000E945B0900E411E0C0E0D0E0BB24B394DA +:1015C00082E0A82ECC24C394D12C22E9E22E24E080 +:1015D000F22EC730D10500F580910001811164C061 +:1015E00080E40E94250A80930001811112C082E1EB +:1015F0000E944F0A8093000181110BC0C6010C2E7E +:1016000001C0880F0A94EAF780950E944F0A8093E0 +:1016100000010E94470A48C0CA30A1F028F4C8302F +:1016200059F0C93061F005C0CC3089F070F0CD3090 +:1016300089F0209A289810C0219A29980DC0229AE2 +:101640002A980AC0239A2B9807C0529A01C0539A2D +:101650005B9802C03E9A469890EA9A95F1F79FB13E +:10166000799902C082E001C080E091709B25982B9F +:101670007C9902C084E001C080E0892B7D9902C082 +:1016800038E001C030E0832B7E9902C020E101C028 +:1016900020E0822B9FB19095991F9927991F9295D1 +:1016A000990F907E892B10C080910001811174C028 +:1016B00080E40E94250A80930001882309F459C020 +:1016C000912C0E94470A892DF8019081981739F1D1 +:1016D000808380910101882301F18091D90180FFED +:1016E00004C087E994E00E941C088091D90180FF22 +:1016F0000CC0809101011F928F93FF92EF920E9484 +:10170000B5080F900F900F900F908091D90180FF36 +:1017100004C080E994E00E941C08A09201010E948C +:101720006A0A21960F5F1F4FCE30D10509F051CFC5 +:10173000809101018823B1F08150809301018823B9 +:1017400039F08FE99FE00197F1F700C000000AC06F +:10175000AEE4B1E0E0E4F1E0CF01825F91919D93CE +:101760008E13FCCF82E599E0892BC1F00E945209CB +:1017700015C083E10E944F0A809300018111A0CF20 +:1017800081E40E94250A80930001811199CF0E9473 +:10179000600A982E909495CF80E096CF81E0DF91FB +:1017A000CF911F910F91FF90EF90DF90CF90BF905E +:1017B000AF909F900895E82FF0E0E25BFE4F8081AC +:1017C0000895CF92DF92EF92FF920F931F93CF93E2 +:1017D000DF9389E794E00E941C088EE4E82E81E004 +:1017E000F82EC0E0D0E094E7C92E94E0D92E0BE6A5 +:1017F00014E0DF93CF93DF92CF920E94B50881E788 +:1018000094E00E941C08F70181917F0190E00E9402 +:1018100093229F938F931F930F930E94B50889E69D +:1018200094E00E941C0821968DB79EB708960FB6CB +:10183000F8949EBF0FBE8DBFCE30D105D1F6DF919B +:10184000CF911F910F91FF90EF90DF90CF9008956F +:101850008B3B910578F4883A910540F5853A9105DE +:10186000D0F48430910508F0B1C08130910509F4BD +:10187000ADC06BC0803E910508F467C0883E9105FD +:1018800008F4A4C09C01205F31092031310508F023 +:101890005CC090650895853A910509F459C0863A6F +:1018A000910509F058C082E890E40895883A9105BE +:1018B00009F454C0893A910509F453C08A3A910554 +:1018C00009F452C08B3A910509F451C08C3A910544 +:1018D00009F450C08D3A910509F44FC0803B910541 +:1018E00009F44EC08E3A910509F44DC08F3A910526 +:1018F00009F44CC0813B910509F44BC0823B910532 +:1019000009F44AC0833B910509F449C0843B910521 +:1019100009F448C0853B910509F447C0863B910511 +:1019200009F446C0873B910509F445C0883B910501 +:1019300009F444C0893B910509F443C08A3B9105F1 +:1019400009F442C080E094E4089580E090E00895B6 +:1019500081E890E4089583E890E4089582EE94E4A9 +:10196000089589EE94E408958AEE94E4089585EB51 +:1019700094E4089586EB94E4089587EB94E4089545 +:101980008CEC94E408958DEC94E4089583E895E458 +:1019900008958AE895E4089582E995E4089584E934 +:1019A00095E4089581E296E4089583E296E408952B +:1019B00084E296E4089585E296E4089586E296E44A +:1019C000089587E296E408958AE296E408950895DA +:1019D00096E0799FF001112494E5899FE00DF11DB7 +:1019E0001124E60FF11DEE0FFF1FEF5DFE4F8591F5 +:1019F00094910895880F991FFC01E556F040859158 +:101A000094910895880F991FFC01E55EFE4F859122 +:101A10009491089526E0729FF001112444E5849F7B +:101A2000E00DF11D1124E60FF11DEE0FFF1FEF5D1C +:101A3000FE4F859194919C013A9521154FE1340711 +:101A400008F41EC13F512115304120F49F700E94BF +:101A5000020D08959C0130532115304118F4992747 +:101A6000906C0895811520E5920769F40E94ED1BA2 +:101A70004FEF84E39CE0415080409040E1F700C08C +:101A800000000C944F23813020E5920751F489EE39 +:101A900094E00E941C088091D90181608093D90153 +:101AA00008959C0130552115304108F051C0292F6F +:101AB00033272F70332721303105D9F4AC0143701F +:101AC000552702C0220F331F4A95E2F73C68AC014C +:101AD00064E0440F551F6A95E1F744275370242BA7 +:101AE000352B73E0880F991F7A95E1F78076992757 +:101AF0001DC02230310529F4982F8827816F906A04 +:101B0000089523303105A9F4AC014370552721E035 +:101B100030E002C0220F331F4A95E2F73C6843E0F1 +:101B2000880F991F4A95E1F7807E9770822B932B3F +:101B3000089524303105E1F4AC014370552721E0CC +:101B400030E002C0220F331F4A95E2F73A68E7CF30 +:101B50009C0130572115304118F49F709062089510 +:101B60009C0130582115304118F49F70906A0895F7 +:101B7000803E9105E0F4803C910558F58133910554 +:101B800009F46FC048F48932910509F463C08A32C0 +:101B9000910509F46DC072C089339105E9F082386E +:101BA0009105D1F08533910509F44DC067C0833E9E +:101BB000910581F138F4803E9105B9F0823E91059E +:101BC000D9F05CC0863E910561F1873E9105A1F197 +:101BD00055C00E94FA0C08952091EC0120FD02C02E +:101BE00021FF4CC080EE90E049C08091EC0180FF65 +:101BF000F9CF89E390E042C08091EC0182FF0EC0F2 +:101C00008091EC0184FF03C080E090E037C083EE58 +:101C100090E034C08091EC0182FFF2CF82EE90E040 +:101C20002DC08091EC0183FF0BC08091EC0184FDFD +:101C3000EBCF87EE90E022C08091EC0183FFF5CFDF +:101C400086EE90E01BC08091EC0185FF07C089E221 +:101C500090E014C08091EC0185FFF9CF85E390E01E +:101C60000DC08091EC0186FF07C08AE290E006C0BB +:101C70008091EC0186FFF9CF81E390E00E94280C6F +:101C80000895089580916F0108959FB7F894109278 +:101C90005E019FBF9091F201943009F057C090917E +:101CA000E9009F703091EC00232F217030FD20E877 +:101CB000922B24E02093E9002091EB0020FF43C009 +:101CC0002091EE0027FF3FC020915C01222321F0EC +:101CD0002091E80025FF37C010925C0126E030918A +:101CE000E80035FD15C03091F201343061F53091D6 +:101CF000EB0035FD28C0215021F481E080935C0188 +:101D000022C0EFE9FFE03197F1F700C00000E7CF14 +:101D10008093F1008091E80085FD0AC08091E80081 +:101D200080FFFCCF8091E8008E778093E80006C0AA +:101D30008FB7F89421E020935E018FBF9F7090933E +:101D4000E90080E008959F709093E9008FEF089577 +:101D5000CF93DF9300D01F92CDB7DEB79C01809167 +:101D6000F201843019F593E099833B832A839093A1 +:101D7000E9008FEF9091E800815095FD06C095ED48 +:101D80009A95F1F700008111F5CF8091E80085FF69 +:101D90000DC040E050E063E070E0CE0101960E948B +:101DA00078118091E8008E778093E8000F900F9073 +:101DB0000F90DF91CF910895CF93DF9300D01F92C2 +:101DC000CDB7DEB72091F201243021F522E029833E +:101DD0009B838A8383E08093E9008FEF9091E800F2 +:101DE000815095FD06C095ED9A95F1F7000081119F +:101DF000F5CF8091E80085FF0DC040E050E063E042 +:101E000070E0CE0101960E9478118091E8008E77F3 +:101E10008093E8000F900F900F90DF91CF9108957D +:101E20002091F2012430F1F422E02093E9002FEF19 +:101E30003091E800215035FD06C035ED3A95F1F7B7 +:101E400000002111F5CF2091E80025FF0BC040E0F4 +:101E500050E065E070E00E9478118091E8008E7794 +:101E60008093E8000895CF93DF932091F20124300E +:101E700009F048C0EC0180910C018823E1F08091C9 +:101E80000D018823C1F085E08093E9008FEF9091E8 +:101E9000E800815095FD06C095E19A95F1F70000A4 +:101EA0008111F5CF8091E80085FF2CC040E050E023 +:101EB00060E170E017C081E08093E9008FEF9091BE +:101EC000E800815095FD06C095ED9A95F1F7000068 +:101ED0008111F5CF8091E80085FF14C040E050E00B +:101EE00068E070E0CE010E9478118091E8008E7762 +:101EF0008093E80080E1FE01AFE5B1E001900D9232 +:101F00008A95E1F7DF91CF91089580E295E00E94F4 +:101F10001C088091F101811109C00E940D130E94DB +:101F20006A138091E20084608093E20008958CE15E +:101F300095E00E941C081092F101089588E195E057 +:101F40000C941C0884E195E00E941C080C941F2D41 +:101F500080E195E00E941C080E94E9220E94252D44 +:101F60000E940F160C94410E20915D012F5F822F6D +:101F700062E30E94932E992319F020935D01089546 +:101F800010925D0180915E01882371F18091F201D0 +:101F9000843041F58091E9008F702091EC00922F00 +:101FA000917020FD90E8892B94E09093E900909146 +:101FB000EB0090FF14C09091EE0097FF10C090913D +:101FC000E80095FF03C01092F100F9CF9091E8006E +:101FD00090FF05C09091E8009E779093E8008F7085 +:101FE0008093E90010925E01089542E061EC81E087 +:101FF0000E94871242E061EC82E00E94871242E078 +:1020000061EC83E00E94871242E261EC84E00E946E +:10201000871242E161EC85E00C9487128091F40113 +:10202000833009F455C030F4813071F0823009F406 +:102030008EC008958A3009F47AC08B3009F460C0EC +:10204000893009F09CC020C08091F301813A09F0E9 +:1020500096C08091E800877F8093E8008091F70127 +:102060009091F801892B21F460E18FE591E003C0A4 +:1020700060E080E090E070E00E94C3118091E80091 +:102080008B778093E80008958091F301813209F005 +:1020900076C08091F7019091F801009719F00497AC +:1020A00009F06DC08091E800877F8093E8008091FF +:1020B000E80082FD05C08091F2018111F8CF5FC078 +:1020C0008091F10080936F018091E8008B7753C07D +:1020D0008091F301813A09F052C08091F70190910B +:1020E000F801892B09F04BC08091E800877F80932D +:1020F000E8008091E80080FFFCCF80910C0136C0A1 +:102100008091F3018132D9F58091F7019091F80126 +:10211000892BA9F58091E800877F8093E8000E94D1 +:10212000BC128091F50180930C010C94ED1B809101 +:10213000F301813221F58091E800877F8093E800E8 +:102140000E94BC128091F6018093700108958091E5 +:10215000F301813AA1F48091E800877F8093E80041 +:102160008091E80080FFFCCF809170018093F100A6 +:102170008091E8008E778093E8000C94BC1208955B +:1021800084B7877F84BF88E10FB6F894809360009E +:10219000109260000FBE90E080E80FB6F894809334 +:1021A0006100909361000FBE0E949C160E940D1367 +:1021B0000E946A138091E20084608093E20085E4CB +:1021C0009EE00E94282278940E94EF150E949E169D +:1021D00082E091E00E940A160E940D2D8FEF94E09C +:1021E0000E941C088091F201853089F48BEF94E005 +:1021F0000E941C080E94AD228091F001882391F377 +:102200000E94D522882371F30E946211EBCF0E94B5 +:10221000CC16E8CF292F332723303105C9F064F4D9 +:102220002130310581F02230310509F043C08DE8BD +:1022300090E028E535E042C021323105F1F022324C +:10224000310541F137C082E190E025EE35E036C03E +:1022500099278130910541F08230910541F0892B19 +:1022600049F5E4E5F5E005C0ECE3F5E002C0E4E2A1 +:10227000F5E0849190E09F0121C06530D8F4E62F0D +:10228000F0E0EE0FFF1FEB5DFE4F2081318189E012 +:1022900090E014C0653070F470E0FB01EE0FFF1F9A +:1022A000E55EFE4F20813181FB01EA5EFE4F8081B9 +:1022B00090E004C080E090E020E030E0FA0131835B +:1022C0002083089580E189BD82E189BD09B400FEC3 +:1022D000FDCF8091D8008F7D8093D8008091E00061 +:1022E00082608093E0008091E00081FDFCCF089542 +:1022F000CF92DF92EF92FF920F931F93CF93DF93D2 +:10230000EC018B016A010E94DB12811133C0C11400 +:10231000D10439F0F60180819181081B190BC80F97 +:10232000D91FE12CF12C0115110519F18091E8005C +:1023300085FD16C08091E8008E778093E800C11477 +:10234000D10449F0F60180819181E80EF91EF182F5 +:10235000E08285E00FC00E94DB12882321F30AC0CF +:1023600089918093F10001501109FFEFEF1AFF0AE4 +:10237000DACF80E0DF91CF911F910F91FF90EF9026 +:10238000DF90CF9008952091F9013091FA0126173E +:10239000370748F06115710539F42091E8002E7770 +:1023A0002093E80001C0B90140E061157105A9F171 +:1023B0002091F201222309F443C0253009F442C0E0 +:1023C0002091E80023FD40C02091E80022FD32C0AA +:1023D0002091E80020FFE9CF4091F3002091F20026 +:1023E00030E0342BFC01CF016115710559F0283024 +:1023F000310540F481918093F100615071092F5FA4 +:102400003F4FF1CF41E02830310509F040E0209105 +:10241000E8002E772093E800C8CF4111C9CF0AC049 +:102420008091F201882361F0853061F08091E800AD +:1024300083FD0AC08091E80082FFF2CF80E008951A +:1024400082E0089583E0089581E008952091F901E4 +:102450003091FA012617370748F06115710539F4F4 +:102460002091E8002E772093E80001C0B901FC011B +:1024700020E06115710591F18091F201882309F442 +:1024800040C0853009F43FC08091E80083FD3DC025 +:102490008091E80082FD2FC08091E80080FFE9CFA5 +:1024A0002091F3008091F20090E0922B611571056C +:1024B00059F08830910540F424912093F100319631 +:1024C000615071090196F2CF21E0089709F020E0F0 +:1024D0008091E8008E778093E800CBCF2111CCCF9C +:1024E0000AC08091F201882361F0853061F080910B +:1024F000E80083FD0AC08091E80082FFF2CF80E00F +:10250000089582E0089583E0089581E00895982F6A +:10251000973058F59093E900981739F07091EC00D6 +:102520002091ED005091F00003C0242F762F50E051 +:1025300021FF19C03091EB003E7F3093EB003091CA +:10254000ED003D7F3093ED003091EB003160309332 +:10255000EB007093EC002093ED005093F00020917D +:10256000EE0027FF07C09F5FD3CF8F708093E900F5 +:1025700081E0089580E008958091F30187FF11C004 +:102580008091E80082FD05C08091F2018111F8CFB1 +:1025900011C08091E8008B770BC08091F2018823F5 +:1025A00049F08091E80080FFF8CF8091E8008E77B5 +:1025B0008093E80008952091E4003091E50095E6CD +:1025C0004091EC00842F817040FF22C08091E80090 +:1025D00080FD1CC08091F201882391F0853091F03C +:1025E0008091EB0085FD10C04091E4005091E50022 +:1025F0004217530729F39A01915011F784E0089587 +:1026000082E0089583E0089581E0089580E00895D0 +:102610004091E80042FFDECF08950E947B130E94A4 +:102620008313E0EEF0E0808181608083E8EDF0E0EC +:1026300080818F77808319BCA7EDB0E08C918E7F6D +:102640008C9380818F7E80831092F10108950F9387 +:102650001F93CF93DF930E947B130E948313C8EDD7 +:10266000D0E088818F77888388818068888388819B +:102670008F7D888319BC1092F2011092EE011092A6 +:10268000F0011092EF0100EE10E0F80180818B7FE5 +:10269000808388818160888342E060E080E00E94DE +:1026A0008712E1EEF0E080818E7F8083E2EEF0E041 +:1026B000808181608083808188608083F80180814F +:1026C0008E7F8083888180618883DF91CF911F9185 +:1026D0000F910895E8EDF0E080818F7E8083E7ED33 +:1026E000F0E080818160808384E082BF81E080931C +:1026F000F1010C942713E8EDF0E080818E7F808358 +:102700001092E20008951092DA001092E10008950C +:102710001F920F920FB60F9211242F933F934F9356 +:102720005F936F937F938F939F93AF93BF93EF9339 +:10273000FF938091E10082FF0BC08091E20082FF55 +:1027400007C08091E1008B7F8093E1000E94B40F6D +:102750008091DA0080FF1FC08091D80080FF1BC0ED +:102760008091DA008E7F8093DA008091D90080FF1B +:102770000DC080E189BD82E189BD09B400FEFDCFB5 +:1027800081E08093F2010E94850F05C019BC109270 +:10279000F2010E94970F8091E10080FF19C08091A3 +:1027A000E20080FF15C08091E2008E7F8093E200FE +:1027B0008091E20080618093E2008091D800806285 +:1027C0008093D80019BC85E08093F2010E94A20F8B +:1027D0008091E10084FF30C08091E20084FF2CC032 +:1027E00080E189BD82E189BD09B400FEFDCF809101 +:1027F000D8008F7D8093D8008091E1008F7E8093F8 +:10280000E1008091E2008F7E8093E2008091E200FF +:1028100081608093E2008091EE01882311F084E0D2 +:1028200007C08091E30087FD02C081E001C083E022 +:102830008093F2010E94A80F8091E10083FF29C0DC +:102840008091E20083FF25C08091E100877F809323 +:10285000E10082E08093F2011092EE018091E100AC +:102860008E7F8093E1008091E2008E7F8093E20072 +:102870008091E20080618093E20042E060E080E0CD +:102880000E9487128091F00088608093F0000E947F +:102890009E0FFF91EF91BF91AF919F918F917F918B +:1028A0006F915F914F913F912F910F900FBE0F90BD +:1028B0001F9018951F920F920FB60F9211242F930D +:1028C0003F934F935F936F937F938F939F93AF93B8 +:1028D000BF93CF93DF93EF93FF93C091E900CF7045 +:1028E0008091EC00D82FD17080FDD0E81092E900E3 +:1028F0008091F000877F8093F00078940E949E146E +:102900001092E9008091F00088608093F000CD2B58 +:10291000CF70C093E900FF91EF91DF91CF91BF910C +:10292000AF919F918F917F916F915F914F913F9167 +:102930002F910F900FBE0F901F9018951F93CF935C +:10294000DF93CDB7DEB7AA970FB6F894DEBF0FBE00 +:10295000CDBFE3EFF1E088E08E0F9091F10091930D +:102960008E13FBCF0E940E108091E80083FF1FC1E1 +:102970008091F3019091F401492F50E04A305105C4 +:1029800008F015C1FA01EA5AFF4F0C94B32E8038B3 +:1029900081F0823809F00BC18091F7018F7080932C +:1029A000E9008091EB0085FB882780F91092E9000F +:1029B00006C08091EF019091F00191118260909199 +:1029C000E800977F9093E8008093F1001092F10067 +:1029D000C8C0282F2D7F09F0EAC0882319F0823063 +:1029E00061F0E5C08091F501813009F0E0C09330DD +:1029F00009F080E08093F0012BC08091F5018111F6 +:102A000027C08091F7018F7009F4D1C08093E9004D +:102A10002091EB0020FF1CC0933021F48091EB004B +:102A2000806214C09091EB0090619093EB0021E0E4 +:102A300030E0A90102C0440F551F8A95E2F7409388 +:102A4000EA001092EA008091EB0088608093EB002E +:102A50001092E9008091E800877F86C08111A7C0AD +:102A60001091F5011F778091E3008078812B80938E +:102A7000E3008091E800877F8093E8000E94BC1209 +:102A80008091E80080FFFCCF8091E3008068809314 +:102A9000E300111102C082E001C083E08093F201E3 +:102AA00086C08058823008F082C08091F5019091F4 +:102AB000F6018C3D53E0950779F583E08A838AE23D +:102AC00089834FB7F894DE01139620E03EE051E28F +:102AD000E32FF0E050935700E49120FF03C0E2950C +:102AE000EF703F5FEF708E2F90E0EA3010F0C796E6 +:102AF00001C0C0968D939D932F5F243149F74FBF3E +:102B00008091E800877F8093E8006AE270E0CE0160 +:102B100001960E94C31114C0AE014F5F5F4F6091D8 +:102B2000F7010E940A11BC01892B09F440C0909161 +:102B3000E800977F9093E80089819A810E9426128D +:102B40008091E8008B778093E80031C0803879F578 +:102B50008091E800877F8093E8008091EE01809368 +:102B6000F1008091E8008E778093E8000E94BC120B +:102B70001EC081111CC09091F5019230C0F480916B +:102B8000E800877F8093E8009093EE010E94BC12DA +:102B90008091EE01811106C08091E30087FD02C0A3 +:102BA00081E001C084E08093F2010E94F50F8091E2 +:102BB000E80083FF0AC08091E800877F8093E800E7 +:102BC0008091EB0080628093EB00AA960FB6F89498 +:102BD000DEBF0FBECDBFDF91CF911F910895CF9380 +:102BE0008091F2018823A1F0C091E900CF7090910B +:102BF000EC00892F817090FD80E8C82B1092E900CD +:102C00008091E80083FD0E949E14CF70C093E9007C +:102C1000CF91089590937601809375010895E09186 +:102C20007501F0917601309721F00190F081E02D4F +:102C3000099480E00895EF92FF920F931F93CF9332 +:102C4000DF93E0917501F09176013097B1F18C013D +:102C50000280F381E02D09958091D90182FF2DC07A +:102C600080FF04C08AE197E00E941C08E80110E19F +:102C700084E1E82E87E0F82E8091D90180FF0BC017 +:102C800088811F928F93FF92EF920E94B5080F9058 +:102C90000F900F900F90115021961111EDCF809150 +:102CA000D90180FF0AC082E197E0DF91CF911F91A7 +:102CB0000F91FF90EF900C941C08DF91CF911F9122 +:102CC0000F91FF90EF900895E0917501F0917601DA +:102CD000309721F00480F581E02D0994089520912A +:102CE0007301309174018217930771F0909374010E +:102CF00080937301E0917501F0917601309721F096 +:102D00000680F781E02D099408952091710130919A +:102D100072018217930771F0909372018093710191 +:102D2000E0917501F0917601309721F00084F185F2 +:102D3000E02D0994089508950C949B160E94EB22AF +:102D40000E94920A0C94B123CF93C82F8091D9018D +:102D500082FF1EC080FF04C083E397E00E941C082E +:102D60008091D90180FF0CC01F92CF938EE297E033 +:102D70009F938F930E94B5080F900F900F900F9024 +:102D80008091D90180FF04C08CE297E00E941C086A +:102D90008C2FCF910C94410ECF92DF92EF92FF9245 +:102DA0000F931F93CF93DF93CDB7DEB72B970FB65B +:102DB000F894DEBF0FBECDBF0E94AF0A88E7C82ED1 +:102DC00081E0D82E00E010E0E02E802F0E94DB0B87 +:102DD000F60141916F01F42EF826B1F40F5F1F4FF9 +:102DE0000E30110589F78FEF89838A831B820E9439 +:102DF000F4228160782F9D838C8349815A816B8175 +:102E00008D810E946F1740C09091D90191FF04C03D +:102E10008B870E94E10B8B8520E030E04F2D50E046 +:102E2000922FBA01022E02C0759567950A94E2F7B7 +:102E300060FF24C02E83EF8221E030E0690102C0F0 +:102E4000CC0CDD1C9A95E2F790E08C219D21892B1A +:102E500009F420E028870E94F4228160782F9A8765 +:102E600089874E815F8168858A850E946F17F80186 +:102E7000E858FE4F8081C826C08206C02F5F3F4FB2 +:102E80002630310569F6AACF0E94222710917701DA +:102E90000E940F161817A1F00E940F168093770159 +:102EA0002B960FB6F894DEBF0FBECDBFDF91CF914A +:102EB0001F910F91FF90EF90DF90CF900C94A4168C +:102EC0002B960FB6F894DEBF0FBECDBFDF91CF912A +:102ED0001F910F91FF90EF90DF90CF900895CF93C7 +:102EE000DF93CDB7DEB72B970FB6F894DEBF0FBEDA +:102EF000CDBF4F83588769877A878B87DE0111960C +:102F000086E0FD0111928A95E9F785E0FE0137968A +:102F100001900D928A95E1F749815A816B817C81FC +:102F20008D819E810E94871E2B960FB6F894DEBF7E +:102F30000FBECDBFDF91CF910895CF93882309F4C1 +:102F4000C2C0C82F823859F40E940F1681FDBBC041 +:102F500089E30E9423210E94022289E30CC0833866 +:102F600079F40E940F1680FDAEC083E50E942321F4 +:102F70000E94022283E50E947621CF910C940222C6 +:102F8000843859F40E940F1682FD9DC087E40E9488 +:102F900023210E94022287E4EECF8CEF8C0F813A2E +:102FA00048F48C2F0E94B52B81118DC08C2F0E946C +:102FB0002321E3CF80E28C0F883048F4C77081E092 +:102FC00001C0880FCA95EAF70E94CB21D6CF8BE5C6 +:102FD0008C0F833078F4C53A29F0C63A31F083E893 +:102FE00090E005C081E890E002C082E890E0CF91D7 +:102FF0000C946F1688E58C0F833108F064C0C83AD2 +:1030000039F1C93A41F1CA3A49F1CB3A51F1CC3AD6 +:1030100059F1CD3A61F1C03B69F1CE3A71F1CF3A45 +:1030200079F1C13B81F1C23B89F1C33B91F1C43BD2 +:1030300099F1C53BA1F1C63BA9F1C73BB1F1C83B32 +:10304000B9F1C93BC1F1CA3BC9F180E090E038C099 +:1030500082EE90E035C089EE90E032C08AEE90E0DA +:103060002FC085EB90E02CC086EB90E029C087EB69 +:1030700090E026C08CEC90E023C08DEC90E020C066 +:1030800083E891E01DC08AE891E01AC082E991E0EE +:1030900017C084E991E014C081E292E011C083E29C +:1030A00092E00EC084E292E00BC085E292E008C09C +:1030B00086E292E005C087E292E002C08AE292E0F6 +:1030C000CF910C948516CF910895882309F44BC0B5 +:1030D000823859F40E940F1681FF45C089E30E948F +:1030E00023210E94022289E30CC0833871F40E94DC +:1030F0000F1680FF38C083E50E9423210E94022220 +:1031000083E50E9476210C940222843859F40E94AF +:103110000F1682FF28C087E40E9423210E9402220A +:1031200087E4EFCF9CEF980F913A58F390E2980F15 +:10313000983050F4877091E001C0990F8A95EAF7B2 +:10314000892F0E94D121DFCF9BE5980F933020F487 +:1031500080E090E00C946F16885A833120F480E070 +:1031600090E00C9485160895882321F00E94CB21CD +:103170000C9402220895882321F00E94D1210C94FE +:1031800002220895BF92CF92DF92EF92FF920F93A7 +:103190001F93CF93DF9300D000D000D0CDB7DEB720 +:1031A00025E0FC01DE01119601900D922A95E1F7D0 +:1031B000FC01408131810281258122952F7063813C +:1031C0007481672B09F4E7C23F3F19F44F3F09F4BC +:1031D000E2C27C0149833A8389819A812E830E94CD +:1031E000E220182FB92E0E94E1200E94A81FEB2D8B +:1031F000E295EF70F0E0E05AFF4F2E810C94B32E71 +:103200008B2D807F9B2D9F70F92E882319F0F294CF +:1032100080EFF822002349F0FF2009F469C28F2DC6 +:103220000E94DB210E94022263C2812F0E94651846 +:10323000FF2009F4B0C28F2D0E94E12126960FB61F +:10324000F894DEBF0FBECDBFDF91CF911F910F91DC +:10325000FF90EF90DF90CF90BF900C9402223B2D17 +:10326000307F8B2D8F70303211F08295807F11234B +:1032700019F0113021F12DC00023B9F0222309F4F7 +:10328000A1C1213009F09EC126960FB6F894DEBF89 +:103290000FBECDBFDF91CF911F910F91FF90EF90A7 +:1032A000DF90CF90BF900C94EB21222319F02130B6 +:1032B00009F471C28E830E94EE218E8197C1002392 +:1032C00021F0263008F067C27DC1253008F063C2C6 +:1032D0008DC1002321F0222309F474C109C22223E5 +:1032E00009F484C11AC22B2D26952695237030E04F +:1032F0002115310521F021303105D1F04CC20023D8 +:1033000021F0812F9B2D937002C080E090E02696E3 +:103310000FB6F894DEBF0FBECDBFDF91CF911F91E6 +:103320000F91FF90EF90DF90CF90BF900C946F16AD +:10333000002321F0812F9B2D937002C080E090E04C +:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA +:103350001F910F91FF90EF90DF90CF90BF900C9452 +:103360008516812F002319F00E94A82502C00E9413 +:10337000102626960FB6F894DEBF0FBECDBFDF91A4 +:10338000CF911F910F91FF90EF90DF90CF90BF9062 +:103390000C9495268B2D837009F07BC00111FBC125 +:1033A000812F829586958770880F880F912F9F7047 +:1033B000C92ED12CE12CF12C082E04C0CC0CDD1C24 +:1033C000EE1CFF1C0A94D2F714FF12C04FE050E02D +:1033D00060E070E004C0440F551F661F771F8A9598 +:1033E000D2F7CB01BA01609570958095909503C096 +:1033F00060E070E0CB012B2D269526952370422F9F +:1034000050E042305105D9F04330510569F16C2943 +:103410007D298E299F294130510551F126960FB6FD +:10342000F894DEBF0FBECDBFDF91CF911F910F91FA +:10343000FF90EF90DF90CF90BF900C94CF1F6C293E +:103440007D298E299F2926960FB6F894DEBF0FBEE0 +:10345000CDBFDF91CF911F910F91FF90EF90DF9043 +:10346000CF90BF900C94EB1F0E94CF1FC701B601F5 +:1034700026960FB6F894DEBF0FBECDBFDF91CF9179 +:103480001F910F91FF90EF90DF90CF90BF900C9421 +:10349000B31F002319F08B2D817001C086958823FE +:1034A00009F479C1812F829586958770880F880FDE +:1034B000912F9F70C92ED12CE12CF12C082E04C025 +:1034C000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA +:1034D0004FE050E060E070E004C0440F551F661FED +:1034E000771F8A95D2F7CB01BA01609570958095C8 +:1034F000909503C060E070E0CB012B2D26952695BA +:103500002370422F50E042305105D9F0433051052D +:1035100069F16C297D298E299F294130510551F18E +:1035200026960FB6F894DEBF0FBECDBFDF91CF91C8 +:103530001F910F91FF90EF90DF90CF90BF900C9470 +:10354000A9206C297D298E299F2926960FB6F894EB +:10355000DEBF0FBECDBFDF91CF911F910F91FF90C6 +:10356000EF90DF90CF90BF900C94C5200E94A920CF +:10357000C701B60126960FB6F894DEBF0FBECDBFC9 +:10358000DF91CF911F910F91FF90EF90DF90CF903F +:10359000BF900C948D20103FD1F118F4103E50F4E0 +:1035A000A2C0123F09F464C008F44DC0133F09F4EF +:1035B00074C099C01F708B2D8F710023A1F00E94E1 +:1035C0002620812F26960FB6F894DEBF0FBECDBF02 +:1035D000DF91CF911F910F91FF90EF90DF90CF90EF +:1035E000BF900C94B4180E944720812F26960FB6E6 +:1035F000F894DEBF0FBECDBFDF91CF911F910F9129 +:10360000FF90EF90DF90CF90BF900C94BB180023F9 +:10361000B1F0253008F0BFC08B2D8F7126960FB604 +:10362000F894DEBF0FBECDBFDF91CF911F910F91F8 +:10363000FF90EF90DF90CF90BF900C946C202630DD +:1036400008F0A9C0E9CF0023A9F08B2D8F71269631 +:103650000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:103660000F91FF90EF90DF90CF90BF900C942620A9 +:10367000002359F38B2D8F7126960FB6F894DEBF79 +:103680000FBECDBFDF91CF911F910F91FF90EF90B3 +:10369000DF90CF90BF900C944720002399F08B2DA2 +:1036A0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1036B000CF911F910F91FF90EF90DF90CF90BF902F +:1036C0000C94112026960FB6F894DEBF0FBECDBF26 +:1036D000DF91CF911F910F91FF90EF90DF90CF90EE +:1036E000BF900C9407200023A9F0222309F4ADCF4A +:1036F000812F26960FB6F894DEBF0FBECDBFDF91A7 +:10370000CF911F910F91FF90EF90DF90CF90BF90DE +:103710000C949D17222309F4ADCF812F26960FB666 +:10372000F894DEBF0FBECDBFDF91CF911F910F91F7 +:10373000FF90EF90DF90CF90BF900C9465184B2DC9 +:103740004F70612FC7010E94BE0826960FB6F894ED +:10375000DEBF0FBECDBFDF91CF911F910F91FF90C4 +:10376000EF90DF90CF90BF900C942B1F4B2D4F709C +:10377000612FC70126960FB6F894DEBF0FBECDBFEE +:10378000DF91CF911F910F91FF90EF90DF90CF903D +:10379000BF900C94E70C26960FB6F894DEBF0FBED0 +:1037A000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1037B000CF90BF9008950E94E8210E94BD210E94F1 +:1037C00002220E94C8270E94952680E090E00E9475 +:1037D0006F1680E090E00C9485160E94D8210C941E +:1037E000DB1B0E94E220292F22952F7030E02C3025 +:1037F00031054CF42A3031056CF422503109223065 +:10380000310588F407C02C30310549F02F303105DF +:1038100031F009C0803E48F0803F29F406C093FB98 +:10382000882780F9089580E0089581E00895CF9376 +:10383000DF9300D000D01F92CDB7DEB70F900F906E +:103840000F900F900F90DF91CF910895CF93DF935A +:1038500000D000D000D0CDB7DEB726960FB6F894D2 +:10386000DEBF0FBECDBFDF91CF9108951F93CF93E1 +:10387000DF93C091860116E080918701C81799F007 +:10388000D0E01C9FF0011D9FF00D1124E857FE4F62 +:103890004081518162817381848195810E94261CBF +:1038A0002196C770E9CFDF91CF911F910895409184 +:1038B000B8015091B9016091BA017091BB0180913A +:1038C000BC019091BD010C94261C8091BD01829594 +:1038D0008F7009F054C08091BA01882309F44FC059 +:1038E00080918601A09187016091B8017091B90122 +:1038F0004091BB015091BC01B6E08A1709F43FC06A +:1039000090E041155105C1F17F3F11F46F3FA1F1E6 +:10391000B89FF001B99FF00D1124E857FE4F2181A7 +:1039200072132AC02081621327C02281211124C072 +:10393000238134812417350710F421503109241BC9 +:10394000350B283C3105C0F42091BD012F7020615A +:103950002093BD0126E0289FF001299FF00D11243E +:10396000E357FE4F80818F708061808388EB91E008 +:103970000E94C2180C94361C01968770BECF089521 +:10398000CF92DF92EF92FF920F931F93CF93DF932B +:10399000CDB7DEB762970FB6F894DEBF0FBECDBFCE +:1039A0008C0185E0F801DE011D9601900D928A954B +:1039B000E1F7D8014C9111965C91119712966C9198 +:1039C00012971396CD90DC9014973091B8017091B6 +:1039D000B9018091BB019091BC01009709F46BC1C2 +:1039E0007F3F19F43F3F09F466C1E090BA01EE2031 +:1039F00009F4C0C02091BD01C816D90628F0F6010F +:103A0000E81BF90BCF0104C0809590958C0D9D1D8E +:103A1000FF24F394883C910578F0F12C207F09F085 +:103A2000C6C07C2DD98AC88A89890E94171C88EB58 +:103A300091E00E94C218B1C0822F807F09F046C079 +:103A4000751314C0341312C0611110C02F7020619F +:103A50002093BD010E94571C88EB91E00E94C21880 +:103A60008091BD01D80115968C932EC0CD2819F1F7 +:103A70005F3F11F44F3FF9F0F62E61111CC08091A9 +:103A800086012091870136E0821709F45AC090E040 +:103A9000389FF001399FF00D1124E857FE4F7181D6 +:103AA000571306C07081471303C07281711103C0A0 +:103AB00001968770E9CFF62E662309F418C180912C +:103AC000BD0181608093BD01F12C11C1751308C047 +:103AD000341306C0611104C08091BD01D801C3C078 +:103AE0004D875E878D859E856A8B0E94F11B6A8952 +:103AF0008823E1F16623D1F12091BD01822F8295C7 +:103B00008F7090E0029774F08091B8019091B901A4 +:103B100098878F831986DB86CA862C87CE01079605 +:103B20000E94C21886E0F801A8EBB1E001900D9266 +:103B30008A95E1F70E94651C0E94571CFF24F394AC +:103B4000D6C04D875E878D859E850E94E220292FF5 +:103B500022952F7030E0223031050CF0BCC09F70F0 +:103B600009F0B6C0805E883008F4C1C0C8010E9468 +:103B7000C218E4CFC816D90608F453C0F601E81BF2 +:103B8000F90BCF01883C910508F450C0F12C7C2D35 +:103B9000D98AC88A89890E94171CE8EBF1E086E07F +:103BA000DF011D928A95E9F70E94571CA0C075138A +:103BB00014C0341312C0611110C08091BD01F8010E +:103BC0008583C8010E94C21886E0E8EBF1E0DF01BE +:103BD0001D928A95E9F7FE2C8AC04D875E878D85F8 +:103BE0009E856A8B0E94F11B6A89882309F4BECFE7 +:103BF000662309F4BBCF2091BD01822F82958F707F +:103C000090E002970CF48ECF8091B8019091B901A9 +:103C10009A8389831B82DD82CC822E83CE0101961A +:103C20007FCF809590958C0D9D1DACCFF62E662391 +:103C300009F49CCF75132EC034132CC02091BD0104 +:103C400020FD1FC0822F82958F70D9F0D801159664 +:103C50002C9315978F3049F08F5F982F9295907F16 +:103C6000822F8F70892B15968C93C8010E94C218E1 +:103C700086E0F801A8EBB1E001900D928A95E1F79A +:103C800093CF86E0F801A8EBB1E001900D928A9500 +:103C9000E1F72DC04D875E878D859E850E94F11BC3 +:103CA000811140CF8091BD0181608093BD01C80129 +:103CB0000E94C2181CC0662309F458CF4D875E8746 +:103CC0008D859E850E94F11B882309F44FCF2ACF52 +:103CD000811148CF0CC0243031050CF047CF9F70C4 +:103CE00009F440CFF8019581907F09F03BCF8F2DEB +:103CF00062960FB6F894DEBF0FBECDBFDF91CF91B5 +:103D00001F910F91FF90EF90DF90CF9008951F9338 +:103D1000CF93DF93CDB7DEB72C970FB6F894DEBF05 +:103D20000FBECDBF4F83588769877A878B879C8763 +:103D3000CE0107960E94C01C882369F08F81988568 +:103D40002A853B85232BF1F19F3F09F063C08F3F0C +:103D500009F060C037C086E0FE013796DE0111969B +:103D600001900D928A95E1F76F817885EA85FB8550 +:103D7000309741F17F3F11F46F3F21F1209187018E +:103D800030E0C9010196877099274091860150E083 +:103D90008417950709F447C069837A83FD83EC8310 +:103DA00096E0929FD001939FB00D1124A857BE4F6B +:103DB000FE01319601900D929A95E1F7809387016B +:103DC0000E94361C16E08091860190918701891728 +:103DD000C1F1189FC001112488579E4F0E94C01C3A +:103DE000882379F1E09186011E9FF0011124E857A4 +:103DF000FE4F4081518162817381848195810E944F +:103E0000261C8091860190E0019687709927809307 +:103E10008601D9CF4F81588569857A858B859C85A8 +:103E20000E94261CCFCF0E94ED1B1092870110929A +:103E30008601E8EBF1E086E0DF011D928A95E9F763 +:103E4000C1CF2C960FB6F894DEBF0FBECDBFDF9169 +:103E5000CF911F910895EF92FF920F931F93CF93ED +:103E6000DF938C01892B09F46CC0F12CEE24E394D0 +:103E7000E8012196F8018491843740F4843008F0F9 +:103E800051C0813081F0823019F15BC0853709F46F +:103E900044C0A8F19CE7980F903708F052C08F7784 +:103EA0000E94651841C00E5F1F4FFE01C49180E261 +:103EB0008C0F883048F4C7708E2D01C0880FCA95CA +:103EC000EAF70E94DB2114C08C2F0E949D172DC0A1 +:103ED0000E5F1F4FFE01C49180E28C0F883058F4B2 +:103EE000C7708E2D01C0880FCA95EAF70E94E121A4 +:103EF0000E9402221AC08C2F0E94651816C00E5F05 +:103F00001F4FFE01C491CC2381F08FE99FE0019700 +:103F1000F1F700C00000C150F6CF0E5F1F4FFE0149 +:103F2000F49003C00E949D178E018F2D882309F401 +:103F30009FCFEFE9FFE03197F1F700C0000081501B +:103F4000F5CFDF91CF911F910F91FF90EF900895E2 +:103F500008956093C2017093C3018093C40190934C +:103F6000C5010C94DB1B0F931F930091C2011091AC +:103F7000C3012091C4013091C501DC01CB01802B2C +:103F8000912BA22BB32B8093C2019093C301A093DA +:103F9000C401B093C5011F910F910C94DB1B0F93CB +:103FA0001F930091C2011091C3012091C40130916F +:103FB000C501DC01CB0180239123A223B32380938D +:103FC000C2019093C301A093C401B093C5011F9196 +:103FD0000F910C94DB1B0F931F930091C201109162 +:103FE000C3012091C4013091C501DC01CB018027C0 +:103FF0009127A227B3278093C2019093C301A09376 +:10400000C401B093C5011F910F910C94DB1B10925A +:10401000BE011092BF011092C0011092C1010C9418 +:10402000DB1B41E050E060E070E004C0440F551F2E +:10403000661F771F8A95D2F74093BE015093BF0148 +:104040006093C0017093C1010C94DB1B41E050E010 +:1040500060E070E004C0440F551F661F771F8A950B +:10406000D2F78091BE019091BF01A091C001B091A3 +:10407000C101482B592B6A2B7B2B4093BE015093D7 +:10408000BF016093C0017093C1010C94DB1B41E040 +:1040900050E060E070E004C0440F551F661F771FBA +:1040A0008A95D2F740955095609570958091BE01A4 +:1040B0009091BF01A091C001B091C1014823592343 +:1040C0006A237B234093BE015093BF016093C001DC +:1040D0007093C1010C94DB1B41E050E060E070E0A4 +:1040E00004C0440F551F661F771F8A95D2F7809131 +:1040F000BE019091BF01A091C001B091C1014827BC +:1041000059276A277B274093BE015093BF016093D4 +:10411000C0017093C1010C94DB1B0F931F9300919E +:10412000BE011091BF012091C0013091C101DC019D +:10413000CB01802B912BA22BB32B8093BE019093AC +:10414000BF01A093C001B093C1011F910F910C94C6 +:10415000DB1B0F931F930091BE011091BF012091B3 +:10416000C0013091C101DC01CB0180239123A22346 +:10417000B3238093BE019093BF01A093C001B0937D +:10418000C1011F910F910C94DB1B0F931F930091A2 +:10419000BE011091BF012091C0013091C101DC012D +:1041A000CB0180279127A227B3278093BE0190934C +:1041B000BF01A093C001B093C1011F910F910C9456 +:1041C000DB1B0895CF92DF92EF92FF920F931F9324 +:1041D000CF93DF938C01C090C201D090C301E090D7 +:1041E000C401F090C5014091BE015091BF016091A2 +:1041F000C0017091C101C42AD52AE62AF72ACFE16D +:10420000D0E0D701C6010C2E04C0B695A7959795AE +:1042100087950A94D2F780FF07C0B8018C2F0E94BF +:104220000A0D8130910531F4219758F7B80180E0EB +:104230000E940A0DDF91CF911F910F91FF90EF9097 +:10424000DF90CF90089590910C01992321F09091E7 +:104250000D01911109C020910E0130910F01F9015A +:1042600032969FEF40E030C0982F969596959695A0 +:104270009F30A0F4E0910E01F0910F01E90FF11DC4 +:10428000877021E030E0A90102C0440F551F8A95D4 +:10429000E2F7CA019181892B818308959091D90118 +:1042A00090FF23C01F928F9384E697E09F938F9394 +:1042B0000E94B5080F900F900F900F9008959F3FA8 +:1042C00039F04F5F4E3041F051915813F8CF0DC087 +:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 +:1042E000F11D97FDFA9582830895089590910C0130 +:1042F000992321F090910D01911109C020910E0197 +:1043000030910F01F9013296205F3F4F30C0982F56 +:104310009695969596959F30A8F4E0910E01F091B0 +:104320000F01E90FF11D877021E030E0A90102C003 +:10433000440F551F8A95E2F7CA0180959181892320 +:10434000818308959091D90190FF16C01F928F9399 +:1043500086E497E09F938F930E94B5080F900F908B +:104360000F900F9008953196E217F30729F090818E +:104370009813F9CF1082F7CF089581E090E0E09193 +:104380000E01F0910F01E80FF91F108201968031A4 +:104390009105A9F708959091D801892B8093D801B0 +:1043A000089580959091D80189238093D80108952C +:1043B0001092D80108959091D701892B8093D7014D +:1043C000089580959091D70189238093D70108950E +:1043D0001092D70108958093C60108951092C601E6 +:1043E000089580910E0190910F01FC0131969C017E +:1043F000205F3F4F80E0919191118F5FE217F307AB +:10440000D1F70895E0910E01F0910F018091D8014C +:104410008083E0910E01F0910F0190818091D7018E +:10442000892B80838091C601882361F0E0910E0181 +:10443000F0910F019081892B80830E94F1218111DD +:104440001092C60180910E0190910F010C941B16E1 +:1044500090933B0180933A010895CF92DF92EF92BF +:10446000FF926C01EE24FF24C114D104E104F10495 +:1044700021F0C701B60120E101C020E0C72ED82EEF +:10448000E92EFF24C114D104E104F10419F0285FDE +:10449000C701B6016B017C0154E0F694E794D79410 +:1044A000C7945A95D1F7C114D104E104F10419F06D +:1044B0002C5FC701B6016B017C0142E0F694E794E2 +:1044C000D794C7944A95D1F7C114D104E104F104FB +:1044D00019F02E5FC701B601DC01CB01B695A79597 +:1044E00097958795892B8A2B8B2B09F02F5F822F2D +:1044F000FF90EF90DF90CF9008958295982F9C7C4D +:10450000392F36953695282F237344E0249FC00118 +:104510001124932F982B292F2A7A2695892F857578 +:10452000880F822B08951F93CF93DF931F92CDB7EF +:10453000DEB799830E947D22182F9981892F0E94CE +:104540007D22212F30E0322F2227A901482BCA01DA +:104550000F90DF91CF911F9108958091F2018430E7 +:1045600009F11092DA0120E488E190E00FB6F894A6 +:10457000A895809360000FBE2093600083B7817F71 +:10458000846083BF83B7816083BF7894889583B745 +:104590008E7F83BF88E10FB6F894809360001092FD +:1045A00060000FBE089508950895CF930E94D3220E +:1045B0000E94AF0A0E94D422C0E08C2F0E94DB0B25 +:1045C000811104C0CF5FCE30C1F701C081E0CF912F +:1045D00008950C94ED1B82E084BD93E095BD9AEFA5 +:1045E00097BD80936E0008952FB7F8948091DB01FA +:1045F0009091DC01A091DD01B091DE012FBF089503 +:10460000CF92DF92EF92FF920F931F932FB7F89400 +:104610004091DB015091DC016091DD017091DE0180 +:104620002FBF6A017B01EE24FF248C0120E030E0E3 +:10463000C016D106E206F30610F4415051099A0162 +:10464000281B390BC9011F910F91FF90EF90DF904C +:10465000CF9008951F920F920FB60F9211248F934F +:104660009F93AF93BF938091DB019091DC01A09168 +:10467000DD01B091DE010196A11DB11D8093DB012A +:104680009093DC01A093DD01B093DE01BF91AF9167 +:104690009F918F910F900FBE0F901F9018950E94C1 +:1046A0000D13F8942FEF87EA91E621508040904057 +:1046B000E1F700C0000087E090EBDC018093FB0194 +:1046C0009093FC01A093FD01B093FE019CE088E172 +:1046D0000FB6F894A895809360000FBE9093600089 +:1046E000FFCFEF92FF920F931F93CF93DF93D82FBB +:1046F000C0E08C2F0E94DB0B00E010E0E82EF12CD4 +:10470000C701002E02C0959587950A94E2F780FDB7 +:1047100006C00F5F1F4F0630110591F709C0602FCB +:104720007C2F80E00E94E80CD813F3CF81E004C016 +:10473000CF5FCE30F1F680E0DF91CF911F910F91E6 +:10474000FF90EF900895CF93C82F8CE20E947123C1 +:10475000882321F08C2FCF910C94712380E0CF918E +:104760000895CF930E940025811102C00E94E62483 +:1047700089E897E00E941C08C5E6C15049F00E94F4 +:10478000AF0A8FE39CE90197F1F700C00000F5CF75 +:1047900082E897E00E941C0889E20E94A32381110D +:1047A00013C18AE20E94A32381110E94E62485E0BE +:1047B0000E94A32381110E944F230E940B25809306 +:1047C000D90187E00E94A3238823A9F18BE10E94ED +:1047D000A323882351F08091D90181FB222720F95E +:1047E00091E0922790FB81F90EC08EE00E94A323F6 +:1047F000882361F08091D90182FB222720F991E082 +:10480000922790FB82F98093D90115C080E10E9424 +:10481000A3239091D901882341F093FB222720F90B +:1048200081E0822780FB93F904C0892F809580FB6B +:1048300090F99093D9018091D9010E940F250E948F +:104840001D258093EC0180EE0E94A323882341F074 +:104850008091EC01982F909590FB80F98093EC016A +:1048600089E30E94A323882359F08091EC0181FB06 +:10487000222720F991E0922790FB81F98093EC01A7 +:1048800082EE0E94A323882359F08091EC0182FBE1 +:10489000222720F991E0922790FB82F98093EC0186 +:1048A00086EE0E94A323882359F08091EC0183FBBC +:1048B000222720F991E0922790FB83F98093EC0165 +:1048C00083EE0E94A323882359F08091EC0184FB9E +:1048D000222720F991E0922790FB84F98093EC0144 +:1048E00085E30E94A323882359F08091EC0185FB86 +:1048F000222720F991E0922790FB85F98093EC0123 +:1049000081E30E94A323882359F08091EC0186FB68 +:10491000222720F991E0922790FB86F98093EC0101 +:1049200081E10E94A323882359F08091EC0187FB49 +:10493000222720F991E0922790FB87F98093EC01E0 +:104940008091EC010E9421258091EC0187FB882752 +:1049500080F980930D0187E20E94A323C82F8EE186 +:104960000E94A3238111C2608FE10E94A3238111C1 +:10497000C46080E20E94A3238111C86081E20E948A +:10498000A3238111C06182E20E94A3238111C0622E +:1049900083E20E94A3238111C06484E20E94A323C6 +:1049A000882311F0C06802C0CC2329F08C2F0E940C +:1049B00018256C2F03C00E941425682F70E080E03A +:1049C00090E0CF910C94A91FCF9108956DEE7EEFEA +:1049D00080E090E00E94E92E60E082E090E00E949A +:1049E000DB2E60E083E090E00E94DB2E60E084E05C +:1049F00090E00E94DB2E60E085E090E00C94DB2EDE +:104A000080E090E00E94D52E21E08D3E9E4F09F07F +:104A100020E0822F089582E090E00C94CD2E682F44 +:104A200082E090E00C94DB2E83E090E00C94CD2E9D +:104A3000682F83E090E00C94DB2E84E090E00C94EF +:104A4000CD2E682F84E090E00C94DB2E8091E10164 +:104A500080FF0BC06091130185E0689FB0011124B5 +:104A600075956795759567952BC081FF09C0609115 +:104A7000130185E0689FB00111247595679520C0EA +:104A800082FF07C06091130185E0689FB001112487 +:104A900017C09091E2019923D1F06091120196170D +:104AA00088F72091130185E0289F90011124929F9F +:104AB000A001939F500D112470E0CA010E949F2E07 +:104AC0006038710540F46115710539F002C065E088 +:104AD00070E0862F08958FE7089581E00895809112 +:104AE000E10180FF08C06091110170E07595679544 +:104AF0007595679521C081FF06C06091110170E036 +:104B00007595679519C082FF04C06091110170E02E +:104B100010C09091E2019923C1F0609110019617A5 +:104B2000A0F780911101899FC001112470E00E94BB +:104B30009F2E6038710528F46115710521F0862FCC +:104B400008958FE7089581E0089561E070E0F4CF63 +:104B5000803F21F40E942625819504C0813F29F4DD +:104B60000E9426258093E5010895823F21F40E944A +:104B70002625819504C0833F29F40E942625809331 +:104B8000E4010895893F19F40E946F2505C08A3F0A +:104B900031F40E946F2581958093E60108958B3F43 +:104BA00021F40E946F25819504C08C3F29F40E9456 +:104BB0006F258093E7010895843F21F48091E301FC +:104BC000816017C0853F21F48091E301826011C0AC +:104BD000863F21F48091E30184600BC0873F21F47C +:104BE0008091E301886005C0883F31F48091E30142 +:104BF00080618093E30108958D3F21F48091E1016C +:104C000081600BC08E3F21F48091E101826005C07C +:104C10008F3F29F48091E10184608093E101089540 +:104C2000803F39F48091E50187FF6CC01092E50167 +:104C300069C0813F29F48091E5011816BCF362C078 +:104C40009091E401823F29F497FF5CC01092E40147 +:104C500059C0833F19F41916CCF354C0893F41F46D +:104C60008091E60118160CF04DC01092E6014AC082 +:104C70008A3F29F48091E60187FF44C0F6CF8B3F3D +:104C800039F48091E70187FF3DC01092E7013AC0F7 +:104C90008C3F29F48091E7011816BCF333C0843FA0 +:104CA00021F48091E3018E7F17C0853F21F480912C +:104CB000E3018D7F11C0863F21F48091E3018B7F5A +:104CC0000BC0873F21F48091E301877F05C0883FB7 +:104CD00031F48091E3018F7E8093E30113C08D3F17 +:104CE00021F48091E1018E7F0BC08E3F21F48091F1 +:104CF000E1018D7F05C08F3F29F48091E1018B7F19 +:104D00008093E1018091E40181110EC08091E50161 +:104D100081110AC08091E601811106C08091E701EE +:104D2000811102C01092E20108958091D90183FFA0 +:104D30007EC085EC97E00E941C088091E3011F92E1 +:104D40008F9380EC97E09F938F930E94B5088EEB32 +:104D500097E00E941C088091E401282F332727FD4B +:104D600030953F938F938BEB97E09F938F930E94A7 +:104D7000B50889EB97E00E941C088091E501282F77 +:104D8000332727FD30953F938F9386EB97E09F93D2 +:104D90008F930E94B50884EB97E00E941C088091D5 +:104DA000E601282F332727FD30953F938F9381EB22 +:104DB00097E09F938F930E94B5088FEA97E00E9437 +:104DC0001C088091E701282F332727FD30953F935A +:104DD0008F938CEA97E09F938F930E94B50889EA9E +:104DE00097E00E941C088091E2011F928F9386EA4F +:104DF00097E09F938F930E94B50884EA97E00E9402 +:104E00001C088091E1011F928F9381EA97E09F93A4 +:104E10008F930E94B5088EE997E00E941C088DB719 +:104E20009EB74C960FB6F8949EBF0FBE8DBF83EE13 +:104E300091E00E9464160E94F4229093E001809316 +:104E4000DF0108951F93CF93DF938091DF0190914D +:104E5000E0010E940023AC019091E201992321F02E +:104E60002091140130E006C0209115018AE0289FAE +:104E7000900111244217530708F486C08091E40181 +:104E8000C091E501D091E6011091E701811107C0C1 +:104E9000C11176C0D11174C0111172C075C09F3F8D +:104EA00019F09F5F9093E201181624F40E942625C2 +:104EB0008093E4018091E40187FF05C00E942625CC +:104EC00081958093E4011C1624F40E94262580938A +:104ED000E5018091E50187FF05C00E9426258195A7 +:104EE0008093E5016091E401662339F1C091E50109 +:104EF000CC2319F1772767FD7095872F972F0E9494 +:104F0000A42D23E333E343E35FE30E94082E0E94D2 +:104F1000712D6093E4016C2F772767FD7095872FC3 +:104F2000972F0E94A42D23E333E343E35FE30E9422 +:104F3000082E0E94712D6093E5011D1624F40E9435 +:104F40006F258093E6018091E60187FF05C00E94EE +:104F50006F2581958093E601111624F40E946F2538 +:104F60008093E7018091E70187FF05C00E946F25CC +:104F700081958093E701DF91CF911F910C94952645 +:104F80009F3F09F08ECF96CFDF91CF911F9108956B +:104F9000E3EEF1E085E0DF011D928A95E9F71092DA +:104FA000E2011092E101089588EE99E00E941C0848 +:104FB0001F9281E08F931F9285E08F938AE999E099 +:104FC0009F938F930E94B5080F900F900F900F90B2 +:104FD0000F900F9008958330E9F128F4813061F04B +:104FE000823009F10895853009F462C008F449C09F +:104FF000863009F474C0089580911501262F30E0A1 +:10500000280F311D2F3F310524F4680F60931501DF +:1050100003C08FEF80931501809115011F928F932C +:1050200083ED98E072C080911401262F30E0280FA4 +:10503000311D2F3F310524F4680F6093140103C024 +:105040008FEF80931401809114011F928F9381EC54 +:1050500098E05BC080911301262F30E0280F311DAE +:105060002F3F310524F4680F6093130103C08FEFC5 +:1050700080931301809113011F928F938EEA98E021 +:1050800044C080911201262F30E0280F311D2F3FA0 +:10509000310524F4680F6093120103C08FEF8093F1 +:1050A0001201809112011F928F9389E998E02DC01F +:1050B00080911101262F30E0280F311D2F3F31053F +:1050C00024F4680F6093110103C08FEF80931101E6 +:1050D000809111011F928F9380E898E016C0809113 +:1050E0001001262F30E0280F311D2F3F310524F409 +:1050F000680F6093100103C08FEF809310018091BF +:1051000010011F928F9385E698E09F938F930E94E2 +:10511000B5080F900F900F900F900895833081F194 +:1051200028F4813059F08230D1F00895853009F4A7 +:1051300049C0B8F1863009F456C008958091150130 +:10514000681720F4861B8093150102C01092150188 +:10515000809115011F928F9386E598E054C080914D +:105160001401681720F4861B8093140102C010926A +:105170001401809114011F928F9384E498E043C03E +:1051800080911301681720F4861B8093130102C0DD +:1051900010921301809113011F928F9381E398E085 +:1051A00032C080911201681720F4861B809312018F +:1051B00002C010921201809112011F928F938CE114 +:1051C00098E021C080911101681720F4861B80931C +:1051D000110102C010921101809111011F928F9351 +:1051E00083E098E010C080911001681720F4861BBE +:1051F0008093100102C010921001809110011F9243 +:105200008F9388EE97E09F938F930E94B5080F903D +:105210000F900F900F900895CF93C82F1F928F93E8 +:105220008DEE9AE09F938F930E94B50881E090E005 +:10523000A0E0B0E0BC01CD0104C0660F771F881F5D +:10524000991FCA95D2F70E94A91F0F900F900F9037 +:105250000F90CF910C94ED1BCF938D3109F465C065 +:10526000B0F58E3009F4CCC100F5873009F49BC14C +:10527000A8F4863009F06DC28091D901817F8E7FBC +:105280008093D90182EF9AE00E941C0884E39FE09A +:105290000E941C0881E08093E90180C1883009F4F4 +:1052A0004FC08B3009F47CC154C2863109F4F0C17F +:1052B00038F4803109F4B8C1813109F430C249C2EF +:1052C000893109F4CEC18B3109F486C142C28533DC +:1052D00009F437C248F4873209F433C208F433C200 +:1052E000893209F42EC235C2833438F48A3308F087 +:1052F0002CC2883309F454C12CC2833409F421C26E +:10530000883409F026C20E94ED1B83E29FE00E94D0 +:105310001C089FEF23ED80E3915020408040E1F78F +:1053200000C000000E944F2339C183E49FE00E9427 +:105330001C080E942B2D0E940F160E94410E2EC1A8 +:1053400088E39FE00E941C0883E09DE00E941C0807 +:105350000E9414251F928F9380E09DE09F938F936E +:105360000E94B5088EEF9CE00E941C080E940B254D +:10537000C82F8BEE9CE00E941C081F92CF9386EEF4 +:105380009CE09F938F930E94B50884EE9CE00E945E +:105390001C088AED9CE00E941C088C2F81701F92D3 +:1053A0008F9387ED9CE09F938F930E94B50885EDC6 +:1053B0009CE00E941C088BEC9CE00E941C08C1FB36 +:1053C000882780F91F928F9388EC9CE09F938F939E +:1053D0000E94B50886EC9CE00E941C088AEB9CE0C9 +:1053E0000E941C08C2FB882780F91F928F9387EBCD +:1053F0009CE09F938F930E94B50885EB9CE00E94F0 +:105400001C088CEA9CE00E941C08C3FBCC27C0F956 +:105410001F92CF9389EA9CE09F938F930E94B508D7 +:1054200087EA9CE00E941C080E941D25C82F83E982 +:105430009CE00E941C081F92CF938EE89CE09F93F3 +:105440008F930E94B5088CE89CE00E941C0883E7BB +:105450009CE00E941C088C2F81701F928F9380E724 +:105460009CE09F938F930E94B5088DB79EB780965E +:105470000FB6F8949EBF0FBE8DBF8EE69CE00E94D3 +:105480001C0887E59CE00E941C08C1FB882780F966 +:105490001F928F9384E59CE09F938F930E94B508A1 +:1054A00082E59CE00E941C0880E49CE00E941C08AD +:1054B000C2FB882780F91F928F938DE39CE09F9316 +:1054C0008F930E94B5088BE39CE00E941C0889E240 +:1054D0009CE00E941C08C3FB882780F91F928F93D1 +:1054E00086E29CE09F938F930E94B50884E29CE043 +:1054F0000E941C088AE19CE00E941C08C4FB8827CB +:1055000080F91F928F9387E19CE09F938F930E9475 +:10551000B50885E19CE00E941C0883E09CE00E94A5 +:105520001C08C5FB882780F91F928F9380E09CE0C0 +:105530009F938F930E94B5088EEF9BE00E941C08FA +:1055400082EE9BE00E941C08C6FB882780F91F9210 +:105550008F938FED9BE09F938F930E94B5088DED05 +:105560009BE00E941C0885ED9BE00E941C08C7FB85 +:10557000CC27C0F91F92CF9382ED9BE09F938F932E +:105580000E94B50880ED9BE00E941C088DB79EB775 +:105590004C960FB6F8949EBF0FBE8DBFC1E0DEC023 +:1055A00089E19BE05BC08091D901C82FC17080FF69 +:1055B00009C086E19FE00E941C088091D901817F8B +:1055C0008E7F47C08AE09FE00E941C088091D9012D +:1055D00081608093D901E2CF9091D90191FBCC27D2 +:1055E000C0F981E0C827892FC0FB81F98093D901D8 +:1055F000CC2319F08DEF9EE027C08FEE9EE02EC0E9 +:105600009091D90192FBCC27C0F981E0C827892F5E +:10561000C0FB82F98093D901CC2319F080EE9EE083 +:1056200013C080ED9EE01AC09091D90193FBCC2766 +:10563000C0F981E0C827892FC0FB83F98093D90185 +:10564000CC2351F084EC9EE00E941C088091D9018B +:1056500081608093D90182C087EB9EE00E941C0884 +:105660009DCF88EA9EE00E941C088CE79EE00E9485 +:105670001C088FE39EE00E941C0882E19EE00E94CD +:105680001C088EEC9DE00E941C0883EA9DE0E6CF9A +:1056900085E99DE00E941C080E940F161F928F93BF +:1056A0008BE79DE09F938F930E94B50880910C013A +:1056B0001F928F9384E69DE09F938F930E94B5087D +:1056C000809170011F928F9381E59DE09F938F934E +:1056D0000E94B50880910D011F928F938EE39DE08B +:1056E0009F938F930E94B5088091DB019091DC011C +:1056F000A091DD01B091DE01BF93AF939F938F9393 +:105700008AE29DE09F938F930E94B5088DB79EB764 +:1057100046960FB6F8949EBF0FBE8DBF3FCF0E9436 +:10572000ED1BC0910D0181E0C827C0930D01CC2372 +:1057300029F080E29DE00E941C0810C085E19DE0F8 +:105740008DCF80E003C08D5101C089530E940C2988 +:1057500025CF83E19DE00E941C08C0E08C2FCF91F3 +:10576000089580E0089580E00895CF93C82F809138 +:10577000E901813081F020F0823009F44FC045C149 +:10578000E0910E01F0910F018081813169F0823248 +:1057900009F03DC109C0E0910E01F0910F01808137 +:1057A000813111F0823261F48C2F0E94B12B811172 +:1057B00004C08C2F0E942C292FC081E090E02CC0C7 +:1057C0008C2F0E94B32B811126C0C431E1F070F4FC +:1057D000CB3081F0C031D1F40E94D42785EE9AE01D +:1057E0000E941C0882E08093E90115C0C93259F07B +:1057F000C83361F482EF9AE00E941C0889EE9AE0B7 +:105800000E941C0808C01092E90103C183EE9AE0CF +:105810000E941C08FEC081E08170FDC0C43220F5EA +:10582000CE3108F0C0C0CB3099F1C8F4C73009F0D0 +:10583000D2C08AE08093150194E19093140193E023 +:10584000909313018093120188E08093110188E204 +:105850008093100189E899E00E941C08BFC0C33101 +:1058600049F1C431C1F0B7C0CB3409F4A9C028F460 +:10587000C93289F0C83361F0AEC0C13509F49EC0A9 +:10588000C23509F499C0CE3409F0A5C06AE09EC0C3 +:105890000E94D427A3C08091E801882319F01092B8 +:1058A000E8019CC086E999E00E941C0881E0809391 +:1058B000E901B1C080E799E00E941C088EE599E0FB +:1058C0000E941C08809115011F928F938BE599E02F +:1058D0009F938F930E94B50889E599E00E941C0868 +:1058E00087E499E00E941C08809114011F928F9315 +:1058F00084E499E09F938F930E94B50882E499E035 +:105900000E941C0883E399E00E941C088091130107 +:105910001F928F9380E399E09F938F930E94B50825 +:105920008EE299E00E941C088DE199E00E941C081B +:10593000809112011F928F938AE199E09F938F9338 +:105940000E94B50888E199E00E941C0883E099E074 +:105950000E941C08809111011F928F9380E099E0B2 +:105960009F938F930E94B5088EEF98E00E941C08C9 +:1059700087EE98E00E941C08809110011F928F937F +:1059800084EE98E09F938F930E94B50882EE98E092 +:105990000E941C088DB79EB748960FB6F8949EBF1C +:1059A0000FBE8DBF1BC0CE51EC2FF0E0E15DFE4F6E +:1059B00080818093E80112C061E003C061E006C00D +:1059C0006AE08091E8010E94EB2708C08091E8011D +:1059D0000E948E2803C087E899E013C08091E801F7 +:1059E000882369F01F928F9381E899E09F938F93AA +:1059F0000E94B5080F900F900F900F9004C08EE793 +:105A000099E00E941C0881E006C01092E90180E044 +:105A100002C080E001CFCF910895E1E8F0E08081FD +:105A2000886080838081816080838FB7F89493E061 +:105A30009093890090ED909388008FBF0895EFE6D2 +:105A4000F0E08081826080830895EFE6F0E080815D +:105A50008D7F80830895EFE6F0E0908182E08927D2 +:105A6000808308951F920F920FB60F9211242F93E7 +:105A70003F934F935F936F937F938F939F93AF93D6 +:105A8000BF93EF93FF938091EA019091EB01019610 +:105A90009093EB018093EA01811103C082E00E94A0 +:105AA000410EE091EB01E695E695F0E0ED5AF04FFE +:105AB000E4918091EA018E1303C080E00E94410EC0 +:105AC000FF91EF91BF91AF919F918F917F916F91D6 +:105AD0005F914F913F912F910F900FBE0F901F90AC +:105AE000189504D06894B1118DC0089570D088F0D5 +:105AF0009F5790F0B92F9927B751A0F0D1F0660FBA +:105B0000771F881F991F1AF0BA95C9F712C0B130D4 +:105B100081F077D0B1E0089574C0672F782F88277F +:105B2000B85F39F0B93FCCF3869577956795B39513 +:105B3000D9F73EF490958095709561957F4F8F4F82 +:105B40009F4F0895E89409C097FB3EF49095809587 +:105B5000709561957F4F8F4F9F4F9923A9F0F92F33 +:105B600096E9BB279395F695879577956795B795B1 +:105B7000F111F8CFFAF4BB0F11F460FF1BC06F5F97 +:105B80007F4F8F4F9F4F16C0882311F096E911C0A9 +:105B9000772321F09EE8872F762F05C0662371F0CA +:105BA00096E8862F70E060E02AF09A95660F771FDE +:105BB000881FDAF7880F9695879597F9089557FD0E +:105BC0009058440F551F59F05F3F71F04795880F6B +:105BD00097FB991F61F09F3F79F087950895121602 +:105BE00013061406551FF2CF4695F1DF08C01616AE +:105BF00017061806991FF1CF86957105610508945F +:105C00000895E894BB2766277727CB0197F9089575 +:105C10000BD078C069D028F06ED018F0952309F029 +:105C20005AC05FC01124EECFCADFA0F3959FD1F315 +:105C3000950F50E0551F629FF001729FBB27F00D3A +:105C4000B11D639FAA27F00DB11DAA1F649F66278F +:105C5000B00DA11D661F829F2227B00DA11D621FDE +:105C6000739FB00DA11D621F839FA00D611D221F98 +:105C7000749F3327A00D611D231F849F600D211D7C +:105C8000822F762F6A2F11249F5750408AF0E1F01F +:105C900088234AF0EE0FFF1FBB1F661F771F881F68 +:105CA00091505040A9F79E3F510570F014C0AACF03 +:105CB0005F3FECF3983EDCF3869577956795B79553 +:105CC000F795E7959F5FC1F7FE2B880F911D96957D +:105CD000879597F9089597F99F6780E870E060E0ED +:105CE00008959FEF80EC089500240A941616170675 +:105CF00018060906089500240A94121613061406BD +:105D000005060895092E0394000C11F4882352F01F +:105D1000BB0F40F4BF2B11F460FF04C06F5F7F4FD7 +:105D20008F4F9F4F0895991B79E004C0991F9617D4 +:105D300008F0961B881F7A95C9F78095089597FB00 +:105D4000072E16F4009407D077FD09D00E94B92ED3 +:105D500007FC05D03EF4909581959F4F089570956E +:105D600061957F4F0895EE0FFF1F0590F491E02D90 +:105D70000994AA1BBB1B51E107C0AA1FBB1FA61792 +:105D8000B70710F0A61BB70B881F991F5A95A9F7E4 +:105D900080959095BC01CD010895F999FECF92BDF3 +:105DA00081BDF89A992780B50895A8E1B0E042E056 +:105DB00050E00C94F02E262FF999FECF1FBA92BD19 +:105DC00081BD20BD0FB6F894FA9AF99A0FBE0196DC +:105DD00008950E94DB2E272F0C94DC2EDC01CB01D2 +:105DE000FC01F999FECF06C0F2BDE1BDF89A3196EB +:105DF00000B40D9241505040B8F70895F894FFCF89 +:105E00002002420E330F100FDC0EA80E0101C70155 +:105E100028080A03140A3F4D362039D30686065057 +:105E2000063006F7056A0583059C05B505D505010D +:0A5E3000020304050607080900003C :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png index 1682c7b6d7..1d5226974f 100644 Binary files a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png differ -- cgit v1.2.3 From 57bf227f6de9eac4dd3ae8f83fa75545de3b1d4e Mon Sep 17 00:00:00 2001 From: coderkun Date: Fri, 15 Jan 2016 19:09:13 +0100 Subject: add basic layer 2 --- keyboard/ergodox_ez/Makefile | 2 +- keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c | 30 +++++++++++----------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index 3b70258402..df7ce2ce04 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -100,7 +100,7 @@ CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ 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 # MIDI_ENABLE = yes # MIDI controls -# uNICODE_ENABLE = yes # Unicode +UNICODE_ENABLE = yes # Unicode # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c index d020c5ad11..bec67e7d4c 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c +++ b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ - * ├───────┼─────┼─────┼─────┼─────┼─────┤ E │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ - * ├───────┼─────┼─────┼─────┼─────┼─────┤ TL2 │ │ TL3 ├─────┼─────┼─────┼─────┼─────┼───────┤ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ @@ -50,38 +50,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Layer 1 (F-keys, Mouse and Unicode) * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ ├─────┤ ├─────┤ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┤ │ │ ├─────┼─────┼─────┼─────┼─────┼───────┤ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ │ │ │ │ │ + * │ │ │ MLC │ │ MRC │ │ │ * │ │ ├─────┤ ├─────┤ │ │ * │ │ │ │ │ │ │ │ * └─────┴─────┴─────┘ └─────┴─────┴─────┘ */ [FMU] = KEYMAP( // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS, KC_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_U, KC_BTN1, KC_TRNS,KC_TRNS, KC_TRNS, // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MS_D, KC_MS_R, KC_BTN2, -- cgit v1.2.3 From bd9aebc84a8b14d861244775e339a9bd36c69d22 Mon Sep 17 00:00:00 2001 From: coderkun Date: Fri, 15 Jan 2016 20:19:45 +0100 Subject: merge upstream --- keyboard/ergodox_ez/Makefile | 4 +- keyboard/ergodox_ez/keymaps/keymap_default.hex | 2443 +++++++++---------- keyboard/ergodox_ez/keymaps/keymap_default_osx.png | Bin 185123 -> 0 bytes keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 25 +- keyboard/ergodox_ez/keymaps/keymap_osx_de.hex | 2456 ++++++++++---------- .../ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c | 262 +++ .../ergodox_ez/keymaps/keymap_osx_de_highres.png | Bin 755855 -> 756294 bytes keyboard/hhkb_qmk/Makefile | 149 ++ keyboard/hhkb_qmk/README.md | 180 ++ keyboard/hhkb_qmk/config.h | 71 + keyboard/hhkb_qmk/hhkb_avr.h | 167 ++ keyboard/hhkb_qmk/hhkb_qmk.c | 29 + keyboard/hhkb_qmk/hhkb_qmk.h | 30 + keyboard/hhkb_qmk/keymaps/keymap_default.c | 78 + keyboard/hhkb_qmk/keymaps/keymap_lxol.c | 208 ++ keyboard/hhkb_qmk/matrix.c | 196 ++ 16 files changed, 3838 insertions(+), 2460 deletions(-) delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_default_osx.png create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c create mode 100644 keyboard/hhkb_qmk/Makefile create mode 100644 keyboard/hhkb_qmk/README.md create mode 100644 keyboard/hhkb_qmk/config.h create mode 100644 keyboard/hhkb_qmk/hhkb_avr.h create mode 100644 keyboard/hhkb_qmk/hhkb_qmk.c create mode 100644 keyboard/hhkb_qmk/hhkb_qmk.h create mode 100644 keyboard/hhkb_qmk/keymaps/keymap_default.c create mode 100644 keyboard/hhkb_qmk/keymaps/keymap_lxol.c create mode 100644 keyboard/hhkb_qmk/matrix.c diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index df7ce2ce04..03c806131d 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -94,13 +94,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 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 CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ 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 # MIDI_ENABLE = yes # MIDI controls -UNICODE_ENABLE = yes # Unicode +# UNICODE_ENABLE = yes # Unicode # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.hex b/keyboard/ergodox_ez/keymaps/keymap_default.hex index 72e7da00cc..eedabc2db5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.hex +++ b/keyboard/ergodox_ez/keymaps/keymap_default.hex @@ -1,17 +1,17 @@ :100000000C9403070C9447070C9447070C9447077C :100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C9432120C94041359 +:100020000C9447070C9447070C945E120C94301301 :100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94DC2B0C9447070C9447073F -:100050000C9447070C94E3210C9447070C94470732 +:100040000C9447070C94082C0C9447070C94470712 +:100050000C9447070C940F220C9447070C94470705 :100060000C9447070C9447070C9447070C944707D8 :100070000C9447070C9447070C9447070C944707C8 :100080000C9447070C9447070C9447070C944707B8 :100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C94470769138B136C -:1000B00076148B137614CD13F0137614451458145C -:1000C000A617A617D417D41717185318541A541A6A -:1000D0006B18541A621962192E1A541A541A421AB9 +:1000A0000C9447070C9447070C9447079513B71314 +:1000B000A214B713A214F9131C14A21471148414FB +:1000C000D217D2170018001843187F18801A801A08 +:1000D0009718801A8E198E195A1A801A801A6E1A59 :1000E0000000F0A12E004C002A00E1003581000044 :1000F0001E00140004001D7134004D001F001A0082 :1001000016001B00E1042A0020000800070006007A @@ -198,9 +198,9 @@ :100C50004F4F544D41474943204D4F5553454B4508 :100C6000592045585452414B455920434F4E534FFC :100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2034663435F5 -:100C90003533632D6469727479202830333A3430E7 -:100CA0003A353320446563203138203230313529DC +:100C80003531320A004255494C443A2035653337F4 +:100C90003663622D6469727479202832323A3239AF +:100CA0003A3538204A616E203132203230313629CF :100CB0000A005649443A2030784645454428457252 :100CC000676F446F7820455A29205049443A2030B4 :100CD0007831333037284572676F446F7820455A32 @@ -228,9 +228,9 @@ :100E3000B9F41092F9011092FA011092FB0110928C :100E4000FC0114BE84B7877F84BF88E10FB6F89495 :100E500080936000109260000FBEE0E0FFE3099510 -:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1 +:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4 :100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8 +:100E8000A93FB107E1F70E94980F0C94D42D0C9460 :100E90000000FF93EF93E0913A01F0913B0130970E :100EA00009F00995EF91FF910895FC01859180303B :100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC @@ -253,1215 +253,1220 @@ :100FC000FF91B7CFFF93EF93FC0181918030B9F38C :100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 :100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E943A1605 -:1010000003C085EE0E94021780E090E008950895E5 +:100FF0000BC0FC018281882321F085EE0E946616D9 +:1010000003C085EE0E942E1780E090E008950895B9 :101010006091BC017091BD018091BE019091BF01B2 -:101020000E94E72056985E9825982D9826982E982D +:101020000E94132156985E9825982D9826982E9800 :1010300027982F98813019F0823021F00895259A51 :101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00C940808089556985E9825982D98DC -:1010600026982E9827982F988FEF90E090938900DC -:101070008093880090938B0080938A0090938D00DA -:1010800080938C00569A5E9A259A2D9A269A2E9ACB -:10109000279A2F9A2FE782E490E1215080409040D8 -:1010A000E1F700C0000056985E9825982D98269884 -:1010B0002E9827982F98089589EA8093800089E0D8 -:1010C0008093810024982C983F988AB18F748AB9B4 -:1010D0006E98479A8BB1806B8BB9769A0E942C08D8 -:1010E00087E098E0892B11F00C940708089580E2BE -:1010F0008093000180913C0181110EC00E94C608BE -:1011000081E080933C012FEF83ED90E321508040FC -:101110009040E1F700C0000080E40E94CC0880937A -:10112000000181112EC00E94F608809300018111F8 -:1011300028C00E94F60880930001811122C08FE32D -:101140000E94F6088093000181111BC00E94EE08E6 -:1011500080E40E94CC0880930001811112C08CE0D1 -:101160000E94F6088093000181110BC00E94F608CE -:1011700080930001811105C08FE30E94F6088093DF -:1011800000010E94EE088091000108951092B900BC -:101190008AE08093B800089594EA9093BC009091FF -:1011A000BC0097FFFCCF9091B900987F983021F058 -:1011B000903111F081E008958093BB0084E8809322 -:1011C000BC008091BC0087FFFCCF8091B900887F74 -:1011D000883111F0803471F780E0089584E98093BC -:1011E000BC008091BC0084FDFCCF08958093BB00BF -:1011F00084E88093BC008091BC0087FFFCCF909175 -:10120000B900987F81E0983209F480E0089584E87D -:101210008093BC008091BC0087FFFCCF8091BB0015 -:10122000089580910001811115C080E40E94CC08CE -:101230008093000181110CC082E10E94F608809326 -:101240000001811105C08FEF0E94F6088093000114 -:101250000E94EE0884B1807F84B985B1807F85B912 -:101260008AB1837F8AB98BB1837F8BB93E984698C8 -:1012700008950E947708809300010E94110980B3AD -:101280008C7080BB81B3836F81BBECE4F1E0AEE393 -:10129000B1E011921D9281E0EA35F807D1F78CE5B3 -:1012A00098E0892B11F00C945C0808959F92AF92FE -:1012B000BF92CF92DF92EF92FF920F931F93CF9343 -:1012C000DF93809100018823E1F080913D018F5FE1 -:1012D00080933D01811115C082E493E00E9455077F -:1012E0000E94770880930001882329F088E293E028 -:1012F0000E94550706C084E193E00E9455070E94B2 -:101300002C080EE311E0C0E0D0E0BB24B39482E0EF -:10131000A82ECC24C394D12C25E0E22E23E0F22E7B -:10132000C73000F580910001811162C080E40E9405 -:10133000CC0880930001811112C082E10E94F6085E -:101340008093000181110BC0C6010C2E01C0880FD3 -:101350000A94EAF780950E94F608809300010E94A3 -:10136000EE0846C0CA30A1F028F4C83059F0C930A0 -:1013700061F005C0CC3089F070F0CD3089F0209A52 -:10138000289810C0219A29980DC0229A2A980AC03C -:10139000239A2B9807C0529A01C0539A5B9802C0B7 -:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF -:1013B00092E081708B25892B7C9B02C090E001C05C -:1013C00094E0892B7D9B02C090E001C098E0892BBE -:1013D0007E9B02C090E001C090E1892B9FB1909567 -:1013E000991F9927991F9295990F907E892B10C06C -:1013F00080910001811176C080E40E94CC08809326 -:101400000001882309F45BC0912C0E94EE08892D0D -:10141000F8019081981739F1808380910101882328 -:1014200001F18091D70180FF04C08AE093E00E941F -:1014300055078091D70180FF0CC0809101011F9258 -:101440008F93FF92EF920E94EE070F900F900F90F4 -:101450000F908091D70180FF04C083E093E00E9449 -:101460005507A09201010E94110921960F5F1F4F9D -:10147000CE30D10509F054CF809101018823B1F01D -:10148000815080930101882339F08FE99FE0019713 -:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017 -:1014A00081918D9391E0EC34F907D1F785E298E0D2 -:1014B000892BD1F00E94250817C090E07ACF83E1F4 -:1014C0000E94F6088093000181119ECF81E40E9462 -:1014D000CC0880930001811197CF0E940709982EB4 -:1014E000909493CF80E094CF81E0DF91CF911F91D2 -:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3 -:101500000895E82FF0E0E45BFE4F80810895CF92CC -:10151000DF92EF92FF920F931F93CF93DF938CEEA6 -:1015200092E00E9455073CE4E32E31E0F32EC0E048 -:10153000D0E047EEC42E42E0D42E0EED12E0DF9351 -:10154000CF93DF92CF920E94EE0784EE92E00E944A -:101550005507F70181917F0190E00E944C219F93F4 -:101560008F931F930F930E94EE078CED92E00E94E1 -:10157000550721968DB79EB708960FB6F8949EBF73 -:101580000FBE8DBFCE30D105D1F6DF91CF911F9127 -:101590000F91FF90EF90DF90CF9008958B3B9105D6 -:1015A00078F4883A910540F5853A9105D0F4843075 -:1015B000910508F0B1C08130910509F4ADC06BC050 -:1015C000803E910508F467C0883E910508F4A4C0E8 -:1015D0009C01205F31092031310508F05CC0906525 -:1015E0000895853A910509F459C0863A910509F4A0 -:1015F00058C083E890E40895883A910509F454C0EE -:10160000893A910509F453C08A3A910509F452C008 -:101610008B3A910509F451C08C3A910509F450C0F8 -:101620008D3A910509F44FC0803B910509F44EC0F5 -:101630008E3A910509F44DC08F3A910509F44CC0DA -:10164000813B910509F44BC0823B910509F44AC0E6 -:10165000833B910509F449C0843B910509F448C0D6 -:10166000853B910509F447C0863B910509F446C0C6 -:10167000873B910509F445C0883B910509F444C0B6 -:10168000893B910509F443C08A3B910509F042C0AA -:101690008AE296E4089580E090E0089581E890E47D -:1016A000089582E890E4089582EE94E4089589EE26 -:1016B00094E408958AEE94E4089585EB94E4089503 -:1016C00086EB94E4089587EB94E408958CEC94E41D -:1016D00008958DEC94E4089583E895E408958AE8EC -:1016E00095E4089582E995E4089584E995E40895E0 -:1016F00081E296E4089583E296E4089584E296E414 -:10170000089585E296E4089586E296E4089587E2D6 -:1017100096E4089580E094E40895089596E0799F12 -:10172000F001112494E5899FE00DF11D1124E60FCD -:10173000F11DEE0FFF1FEC51FF4F8591949108951D -:10174000880F991F805A9040FC01859194910895CB -:10175000880F991F80529F4FFC01859194910895A5 -:1017600026E0729FF001112444E5849FE00DF11DF5 -:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5 -:101780003491C9019A9581159F4110F4C9010895BA -:10179000C90190528115904128F4C9019F700E949F -:1017A000A80B0895C90190538115904120F4C901F7 -:1017B0009927906C0895211580E5380769F40E94F7 -:1017C000751A9FEF24E34CE0915020404040E1F730 -:1017D00000C000000C940822213080E5380751F445 -:1017E0008CE593E00E9455078091D701816080933A -:1017F000D7010895C90190558115904108F050C056 -:10180000832F99278F70992781309105D9F4A901E9 -:101810004370552702C0880F991F4A95E2F79C68CC -:10182000A90164E0440F551F6A95E1F744275370FE -:10183000842B952B73E0220F331F7A95E1F72076E6 -:1018400033271DC08230910529F4922F8827816F9C -:10185000906A089583309105A9F4A9014370552732 -:1018600081E090E002C0880F991F4A95E2F79C68DA -:1018700043E0220F331F4A95E1F7207E3770822B19 -:10188000932B08950497F1F4A9014370552781E043 -:1018900090E002C0880F991F4A95E2F79A68E8CF56 -:1018A000C90190578115904120F4C9019F70906241 -:1018B0000895C90190588115904120F4C9019F7085 -:1018C000906A0895203E3105E0F4203C310558F53A -:1018D0002133310509F470C048F42932310509F487 -:1018E00064C02A32310509F46EC074C02933310551 -:1018F000F1F022383105D9F02533310509F44EC015 -:1019000069C0233E310589F138F4203E3105C1F02C -:10191000223E3105E1F05EC0263E310569F1273EE9 -:101920003105A9F157C0C9010E94A00B089580910B -:10193000EA0180FD02C081FF4DC080EE90E04BC007 -:101940008091EA0180FFF9CF89E390E044C0809163 -:10195000EA0182FF0EC08091EA0184FF03C080E0AB -:1019600090E039C083EE90E036C08091EA0182FFBA -:10197000F2CF82EE90E02FC08091EA0183FF0BC08E -:101980008091EA0184FDEBCF87EE90E024C0809146 -:10199000EA0183FFF5CF86EE90E01DC08091EA0159 -:1019A00085FF07C089E290E016C08091EA0185FFBB -:1019B000F9CF85E390E00FC08091EA0186FF07C070 -:1019C0008AE290E008C08091EA0186FFF9CF81E3C6 -:1019D00090E001C0C9010E94CE0A08950895809147 -:1019E0006D0108959FB7F89410925C019FBF90918C -:1019F000F001943009F058C09091E9009F70209157 -:101A0000EC0020FF02C020E801C020E0292B94E078 -:101A10009093E9009091EB0090FF43C09091EE000D -:101A200097FF3FC090915A01992321F09091E800CF -:101A300095FF37C010925A0196E03091E80035FDCD -:101A400015C03091F001343061F53091EB0035FD77 -:101A500028C0915021F481E080935A0122C0EFE91F -:101A6000FFE03197F1F700C00000E7CF8093F1006D -:101A70008091E80085FD0AC08091E80080FFFCCFDE -:101A80008091E8008E778093E80006C08FB7F894C5 -:101A900091E090935C018FBF2F702093E90080E06C -:101AA00008952F702093E9008FEF0895CF93DF936F -:101AB00000D01F92CDB7DEB72091F001243019F588 -:101AC00023E029839B838A832093E9008FEF909101 -:101AD000E800815095FD06C095ED9A95F1F700005C -:101AE0008111F5CF8091E80085FF0DC040E050E006 -:101AF00063E070E0CE0101960E9425108091E8001D -:101B00008E778093E8000F900F900F90DF91CF9128 -:101B10000895CF93DF9300D01F92CDB7DEB7209109 -:101B2000F001243021F522E029839B838A8383E01E -:101B30008093E9008FEF9091E800815095FD06C0F9 -:101B400095ED9A95F1F700008111F5CF8091E800AD -:101B500085FF0DC040E050E063E070E0CE010196EB -:101B60000E9425108091E8008E778093E8000F9006 -:101B70000F900F90DF91CF9108952091F0012430C4 -:101B8000F1F422E02093E9002FEF3091E80021509A -:101B900035FD06C035ED3A95F1F700002111F5CF7E -:101BA0002091E80025FF0BC040E050E065E070E0C8 -:101BB0000E9425108091E8008E778093E8000895B8 -:101BC000CF93DF93EC018091F001843009F047C09E -:101BD00080910C018823E1F080910D018823C1F0F0 -:101BE00085E08093E9008FEF9091E800815095FDAA -:101BF00006C095E19A95F1F700008111F5CF80912B -:101C0000E80085FF2CC040E050E060E170E017C0C4 -:101C100081E08093E9008FEF9091E800815095FD7D -:101C200006C095ED9A95F1F700008111F5CF8091EE -:101C3000E80085FF14C040E050E068E070E0CE01AD -:101C40000E9425108091E8008E778093E80080E163 -:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB -:101C6000CF91089583E993E00E9455078091EF0199 -:101C7000811109C00E94B7110E9414128091E200E4 -:101C800084608093E20008958FE893E00E945507F6 -:101C90001092EF0108958BE893E00C94550787E8C4 -:101CA00093E00E9455070C94C92B83E893E00E94AF -:101CB00055070E94A3210E94CF2B0E94B0140C94C0 -:101CC000EE0C80915B018F5F80935B0162E30E9469 -:101CD0003D2D911135C010925B0180915C018823EC -:101CE00079F18091F001843049F58091E9008F709D -:101CF0009091EC0090FF02C090E801C090E0982B1A -:101D000084E08093E9008091EB0080FF14C0809113 -:101D1000EE0087FF10C08091E80085FF03C010929D -:101D2000F100F9CF8091E80080FF05C08091E800C4 -:101D30008E778093E8009F709093E90010925C0189 -:101D4000089542E061EC81E00E94311142E061ECD3 -:101D500082E00E94311142E061EC83E00E94311187 -:101D600042E261EC84E00E94311142E161EC85E0E5 -:101D70000C9431118091F201833009F455C030F494 -:101D8000813071F0823009F48EC008958A3009F4F0 -:101D90007AC08B3009F460C0893009F09CC020C043 -:101DA0008091F101813A09F096C08091E800877F27 -:101DB0008093E8008091F5019091F601892B21F044 -:101DC00060E080E090E003C060E18DE591E070E0CC -:101DD0000E946E108091E8008B778093E800089550 -:101DE0008091F101813209F076C08091F5019091E6 -:101DF000F601009719F0049709F06DC08091E80092 -:101E0000877F8093E8008091E80082FD05C0809183 -:101E1000F0018111F8CF5FC08091F10080936D01D6 -:101E20008091E8008B7753C08091F101813A09F0ED -:101E300052C08091F5019091F601892B09F04BC0B9 -:101E40008091E800877F8093E8008091E80080FF20 -:101E5000FCCF80910C0136C08091F1018132D9F51F -:101E60008091F5019091F601892BA9F58091E80008 -:101E7000877F8093E8000E9466118091F301809330 -:101E80000C010C94751A8091F101813221F5809139 -:101E9000E800877F8093E8000E9466118091F4013A -:101EA00080936E0108958091F101813AA1F48091AF -:101EB000E800877F8093E8008091E80080FFFCCFF6 -:101EC00080916E018093F1008091E8008E7780937D -:101ED000E8000C946611089584B7877F84BF88E179 -:101EE0000FB6F89480936000109260000FBE90E0EF -:101EF00080E80FB6F89480936100909361000FBE64 -:101F00000E9439150E94B7110E9414128091E200BC -:101F100084608093E20082EF9CE00E94E22078944B -:101F20000E948E140E943B1582E091E00E94AB1447 -:101F30000E94B72B82E793E00E9455078091F00141 -:101F4000853089F48EE693E00E9455070E94662151 -:101F50008091EE01882391F30E948E21882371F3F2 -:101F60000E940F10EBCF0E946915E8CF292F33276D -:101F700023303105A9F06CF42130310509F442C059 -:101F80002230310509F043C08DE890E02BEC33E0BE -:101F900042C021323105C9F02232310519F137C072 -:101FA00099278130910541F08230910541F0892BCC -:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912 -:101FC000F3E0849190E09F0126C0653000F5E62F94 -:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5 -:101FE00090E019C0653098F4E62FF0E0DF01AA0F09 -:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6 -:1020000090E009C082E190E028E534E004C080E07F -:1020100090E020E030E0FA0131832083089580E1F0 -:1020200089BD82E189BD09B400FEFDCF8091D80051 -:102030008F7D8093D8008091E00082608093E000E3 -:102040008091E00081FDFCCF0895CF92DF92EF9266 -:10205000FF920F931F93CF93DF937C018B01EA01D3 -:102060000E948711811131C0209731F088819981B8 -:10207000081B190BE80EF91EC12CD12C01151105F6 -:1020800019F18091E80085FD14C08091E8008E77F9 -:102090008093E800209741F0888199818C0D9D1DE7 -:1020A0009983888385E011C00E948711882331F3CA -:1020B0000CC0F70181917F018093F100015011095B -:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7 -:1020D0000F91FF90EF90DF90CF9008952091F7013E -:1020E0003091F8012617370748F06115710539F46A -:1020F0002091E8002E772093E80001C0B901FC018F -:1021000020E061157105B9F18091F001882309F48F -:1021100040C0853009F43FC08091E80083FD3DC098 -:102120008091E80082FF06C08091E80082FF26C00F -:1021300080E008958091E80080FFE3CF2091F300D4 -:102140008091F20090E0922B6115710551F088307A -:10215000910538F421912093F100615071090196A5 -:10216000F3CF21E0089709F020E08091E8008E7716 -:102170008093E800C6CF2111C7CFD6CF8091F00160 -:10218000882339F0853039F08091E80083FFCCCF87 -:1021900004C082E0089583E0089581E008952091CD -:1021A000F7013091F8012617370748F061157105DE -:1021B00039F42091E8002E772093E80001C0B9019E -:1021C000FC0120E061157105C1F18091F0018823C7 -:1021D00009F441C0853009F440C08091E80083FDD6 -:1021E0003EC08091E80082FF06C08091E80082FF37 -:1021F00027C080E008958091E80080FFE3CF209120 -:10220000F3008091F20090E0922B6115710559F076 -:102210008830910540F424912093F100319661506B -:1022200071090196F2CF21E0089709F020E0809132 -:10223000E8008E778093E800C5CF2111C6CFD5CFB7 -:102240008091F001882339F0853039F08091E800E1 -:1022500083FFCBCF04C082E0089583E0089581E03E -:102260000895982F973058F59093E900981739F012 -:102270007091EC002091ED005091F00003C0242FEC -:10228000762F50E021FF19C03091EB003E7F309354 -:10229000EB003091ED003D7F3093ED003091EB008D -:1022A00031603093EB007093EC002093ED0050937D -:1022B000F0002091EE0027FF07C09F5FD3CF8F7003 -:1022C0008093E90081E0089580E008958091F10114 -:1022D00087FD05C08091E80080FF0EC012C080918C -:1022E000E80082FD05C08091F0018111F8CF0895CA -:1022F0008091E8008B7708C08091F0018111EACFCE -:1023000008958091E8008E778093E8000895809189 -:10231000E4009091E50045E62091EC0020FF21C00B -:102320002091E80020FD21C02091F001222389F0B6 -:10233000253089F02091EB0025FD0FC02091E400AD -:102340003091E5002817390739F3415041F0C901B0 -:10235000E3CF82E0089583E0089581E0089584E06A -:1023600008952091E80022FFDFCF80E008950E94C9 -:1023700025120E942D12E0EEF0E0808181608083C2 -:10238000E8EDF0E080818F77808319BCA7EDB0E0A5 -:102390008C918E7F8C9380818F7E80831092EF0151 -:1023A00008950F931F93CF93DF930E9425120E94ED -:1023B0002D12C8EDD0E088818F778883888180686E -:1023C000888388818F7D888319BC1092F0011092D8 -:1023D000EC011092EE011092ED0100EE10E0F80118 -:1023E00080818B7F808388818160888342E060E088 -:1023F00080E00E943111E1EEF0E080818E7F8083E9 -:10240000E2EEF0E08081816080838081886080835B -:10241000F80180818E7F8083888180618883DF914D -:10242000CF911F910F910895E8EDF0E080818F7EAC -:102430008083E7EDF0E080818160808384E082BF6B -:1024400081E08093EF010C94D111E8EDF0E0808100 -:102450008E7F80831092E20008951092DA0010922D -:10246000E10008951F920F920FB60F9211242F933F -:102470003F934F935F936F937F938F939F93AF930C -:10248000BF93EF93FF938091E10082FF0BC0809197 -:10249000E20082FF07C08091E1008B7F8093E10022 -:1024A0000E94610E8091DA0080FF1FC08091D800E9 -:1024B00080FF1BC08091DA008E7F8093DA008091CC -:1024C000D90080FF0DC080E189BD82E189BD09B4DA -:1024D00000FEFDCF81E08093F0010E94320E05C026 -:1024E00019BC1092F0010E94440E8091E10080FF1F -:1024F00019C08091E20080FF15C08091E2008E7FBC -:102500008093E2008091E20080618093E2008091FC -:10251000D80080628093D80019BC85E08093F001D8 -:102520000E944F0E8091E10084FF30C08091E20054 -:1025300084FF2CC080E189BD82E189BD09B400FE21 -:10254000FDCF8091D8008F7D8093D8008091E100ED -:102550008F7E8093E1008091E2008F7E8093E20085 -:102560008091E20081608093E2008091EC018823F9 -:1025700011F084E007C08091E30087FF02C083E090 -:1025800001C081E08093F0010E94550E8091E1002E -:1025900083FF29C08091E20083FF25C08091E10084 -:1025A000877F8093E10082E08093F0011092EC013C -:1025B0008091E1008E7F8093E1008091E2008E7F28 -:1025C0008093E2008091E20080618093E20042E02B -:1025D00060E080E00E9431118091F000886080937B -:1025E000F0000E944B0EFF91EF91BF91AF919F9130 -:1025F0008F917F916F915F914F913F912F910F90AC -:102600000FBE0F901F9018951F920F920FB60F924A -:1026100011242F933F934F935F936F937F938F93E7 -:102620009F93AF93BF93CF93EF93FF93C091E90034 -:10263000CF708091EC001092E9008091F000877FCC -:102640008093F00078940E9440131092E9008091EA -:10265000F00088608093F000C093E900FF91EF9153 -:10266000CF91BF91AF919F918F917F916F915F912A -:102670004F913F912F910F900FBE0F901F90189583 -:102680001F93CF93DF93CDB7DEB7AA970FB6F89419 -:10269000DEBF0FBECDBFE1EFF1E08091F10081938D -:1026A00021E0E93FF207C9F70E94BA0E8091E800E5 -:1026B00083FF1CC12091F1013091F201832F90E042 -:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0 -:1026D0005D2D203881F0223809F008C18091F50184 -:1026E0008F708093E9008091EB0085FB882780F94B -:1026F0001092E90006C08091ED019091EE019111D8 -:1027000082609091E800977F9093E8008093F100B9 -:102710001092F100C5C0822F8D7F09F0E7C02223FF -:1027200019F0223061F0E2C08091F301813009F0AC -:10273000DDC0333009F080E08093EE0128C0809145 -:10274000F301811124C02091F5012F7009F4CEC04E -:102750002093E9008091EB0080FF19C08091EB008D -:10276000333011F4806211C080618093EB0081E00E -:1027700090E0022E01C0880F0A94EAF78093EA00E5 -:102780001092EA008091EB0088608093EB00109239 -:10279000E9008091E800877F86C02111A7C01091D1 -:1027A000F3011F778091E3008078812B8093E30011 -:1027B0008091E800877F8093E8000E9466118091F5 -:1027C000E80080FFFCCF8091E30080688093E30005 -:1027D000112311F083E001C082E08093F00186C0F4 -:1027E0002058223008F082C08091F3019091F401CA -:1027F0008C3D23E0920779F583E08A838AE289831E -:102800004FB7F894DE01139620E03EE051E2E32F4B -:10281000F0E050935700E49120FF03C0E295EF7081 -:102820003F5FEF708E2F90E0EA3010F0C79601C046 -:10283000C0968D939D932F5F243149F74FBF8091B0 -:10284000E800877F8093E8006AE270E0CE0101969D -:102850000E946E1014C0AE014F5F5F4F6091F50192 -:102860000E94B60F009709F441C02091E800277F2D -:102870002093E800BC0189819A810E94CF10809149 -:10288000E8008B778093E80031C0203879F580919B -:10289000E800877F8093E8008091EC018093F1004D -:1028A0008091E8008E778093E8000E9466111EC038 -:1028B00021111CC09091F3019230C0F48091E80086 -:1028C000877F8093E8009093EC010E9466118091CD -:1028D000EC01811104C08091E30087FF02C084E015 -:1028E00001C081E08093F0010E94A10E8091E80078 -:1028F00083FF0AC08091E800877F8093E800809181 -:10290000EB0080628093EB00AA960FB6F894DEBFCE -:102910000FBECDBFDF91CF911F910895CF938091CE -:10292000F0018823B1F08091E9008F709091EC0064 -:1029300090FF02C090E801C090E0C92FC82B109210 -:10294000E9008091E80083FD0E944013CF70C0939E -:10295000E900CF91089590937401809373010895D5 -:10296000E0917301F0917401309721F00190F081B2 -:10297000E02D099480E00895FF920F931F93CF9369 -:10298000DF938C01E0917301F0917401309799F11C -:102990000280F381E02D09958091D70182FF2BC041 -:1029A00080FF04C08DE895E00E945507E80180E1B2 -:1029B000F82E07E815E08091D70180FF0BC08881D1 -:1029C0001F928F931F930F930E94EE070F900F900B -:1029D0000F900F90FA942196F110EDCF8091D701CE -:1029E00080FF09C085E895E0DF91CF911F910F919D -:1029F000FF900C945507DF91CF911F910F91FF909D -:102A00000895E0917301F0917401309721F00480F2 -:102A1000F581E02D099408952091710130917201A2 -:102A20008217930771F09093720180937101E09186 -:102A30007301F0917401309721F00680F781E02D49 -:102A40000994089520916F013091700182179307C6 -:102A500071F09093700180936F01E0917301F09198 -:102A60007401309721F00084F185E02D09940895D8 -:102A700008950C9438150E94A5210E9439090C94E0 -:102A80006B22CF93C82F8091D70182FF1EC080FF99 -:102A900004C086EA95E00E9455078091D70180FF27 -:102AA0000CC01F92CF9321EA35E03F932F930E94F1 -:102AB000EE070F900F900F900F908091D70180FF3D -:102AC00004C08FE995E00E9455078C2FCF910C949C -:102AD000EE0CCF92DF92EF92FF920F931F93CF9362 -:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE -:102AF000CDBF0E94560936E7E32E31E0F32E00E009 -:102B000010E0C02E802F0E94810AF701D1907F0132 -:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC -:102B200089838A831B820E94AE218160782F9D83D6 -:102B30008C8349815A816B818D810E940C1641C022 -:102B40009091D70191FF04C08B870E94870A8B85E3 -:102B500020E030E04D2D50E0922FBA01022E02C04D -:102B6000759567950A94E2F760FF25C02E83CF82A2 -:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0 -:102B800090E08E219F2121E0892B09F420E0288705 -:102B90000E94AE218160782F9A8789874E815F815C -:102BA00068858A850E940C16F801EA58FE4F8081DC -:102BB0008E25808306C02F5F3F4F2630310561F69A -:102BC000A9CF0E94D925109175010E94B014181741 -:102BD000A1F00E94B014809375012B960FB6F89463 -:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040 -:102BF000EF90DF90CF900C9441152B960FB6F89480 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD -:102C20002B970FB6F894DEBF0FBECDBF4F835887EA -:102C300069877A878B87DE01119686E0FD01119204 -:102C40008A95E9F785E0FE01379601900D928A9505 -:102C5000E1F749815A816B817C818D819E810E943F -:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E -:102C7000CF910895CF93C82F882309F4C1C082381B -:102C800059F40E94B01481FDBBC089E30E94E01F8B -:102C90000E94BC2089E30CC0833879F40E94B014F0 -:102CA00080FDAEC083E50E94E01F0E94BC2083E54A -:102CB0000E943120CF910C94BC20843859F40E949A -:102CC000B01482FD9DC087E40E94E01F0E94BC20DA -:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462 -:102CE000622A81118DC08C2F0E94E01FE3CF80E209 -:102CF0008C0F883048F4C77081E001C0880FCA95F6 -:102D0000EAF70E948320D6CF8BE58C0F833078F4CE -:102D1000C53A29F0C63A31F482E890E005C081E86E -:102D200090E002C083E890E0CF910C940C1588E508 -:102D30008C0F833108F064C0C83A39F1C93A41F1C7 -:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155 -:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3 -:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151 -:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1 -:102D8000CA3BC9F58AE292E038C082EE90E035C0D5 -:102D900089EE90E032C08AEE90E02FC085EB90E0A3 -:102DA0002CC086EB90E029C087EB90E026C08CEC2D -:102DB00090E023C08DEC90E020C083E891E01DC03E -:102DC0008AE891E01AC082E991E017C084E991E0B5 -:102DD00014C081E292E011C083E292E00EC084E26E -:102DE00092E00BC085E292E008C086E292E005C066 -:102DF00087E292E002C080E090E0CF910C9422152F -:102E0000CF910895882309F44BC0823859F40E9469 -:102E1000B01481FF45C089E30E94E01F0E94BC20DE -:102E200089E30CC0833871F40E94B01480FF38C06D -:102E300083E50E94E01F0E94BC2083E50E943120B0 -:102E40000C94BC20843859F40E94B01482FF28C02E -:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34 -:102E6000980F913A58F390E2980F983050F4877089 -:102E700091E001C0990F8A95EAF7892F0E94892075 -:102E8000DFCF9BE5980F933020F480E090E00C9426 -:102E90000C15885A833120F480E090E00C942215C0 -:102EA0000895882321F00E9483200C94BC2008956B -:102EB000882321F00E9489200C94BC200895CF9291 -:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3 -:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA -:102EE00085E0F801DE01119601900D928A95E1F7D7 -:102EF000F80140813181F280258122952F708381F4 -:102F00009481892B31F03F3F31F481E04F3F19F438 -:102F100003C081E001C080E080FDC6C249833A83DE -:102F200089819A812F830E949E1F9E8388870E9499 -:102F30009D1F0E94701E4E81E42FE295EF70F0E01D -:102F4000E05AFF4F2F8168850C945D2D842F807F80 -:102F5000142F1F70882311F01295107FFF2059F055 -:102F6000112309F456C2812F68870E9493200E9482 -:102F7000BC2068854EC2862F0E940217112309F4D7 -:102F800093C2812F0E94992028960FB6F894DEBF35 -:102F90000FBECDBFDF91CF911F910F91FF90EF90AA -:102FA000DF90CF900C94BC20342F307F842F8F7013 -:102FB000303211F08295807F662319F0613019F16B -:102FC0002CC0FF20B1F0222309F494C1213009F074 -:102FD00091C128960FB6F894DEBF0FBECDBFDF912A -:102FE000CF911F910F91FF90EF90DF90CF900C94B5 -:102FF000A320222319F0213009F456C28E830E94A7 -:10300000A6208E818AC1FF2021F0263008F04CC214 -:1030100071C1253008F048C280C1FF2021F0222371 -:1030200009F468C1F6C1222309F477C106C2242F2E -:1030300026952695237030E02115310521F02130A9 -:103040003105C9F031C2FF2021F0862F942F9370F3 -:1030500002C080E090E028960FB6F894DEBF0FBE65 -:10306000CDBFDF91CF911F910F91FF90EF90DF9037 -:10307000CF900C940C15FF2021F0862F942F937085 -:1030800002C080E090E028960FB6F894DEBF0FBE35 -:10309000CDBFDF91CF911F910F91FF90EF90DF9007 -:1030A000CF900C942215862FFF2019F00E945F24E8 -:1030B00002C00E94C72428960FB6F894DEBF0FBE48 -:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7 -:1030D000CF900C944C25842F837009F076C0F110AA -:1030E000E3C1262F229526952770220F220F862FC7 -:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8 -:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8 -:1031100070E080E090E004C0660F771F881F991F61 -:103120002A95D2F7609570958095909503C060E0E0 -:1031300070E0CB01242F269526952370422F50E076 -:1031400042305105D1F04330510559F16C297D29A8 -:103150008E299F294130510541F128960FB6F894E8 -:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10317000EF90DF90CF900C94951E6C297D298E29BD -:103180009F2928960FB6F894DEBF0FBECDBFDF9102 -:10319000CF911F910F91FF90EF90DF90CF900C9403 -:1031A000AF1E0E94951EC701B60128960FB6F8946F -:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A -:1031C000EF90DF90CF900C947B1EFF2019F0842F9E -:1031D000817001C08695882309F466C1262F229547 -:1031E00026952770220F220F862F8F70C82ED12C84 -:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB -:103200000A94D2F764FF10C06FE070E080E090E0B5 -:1032100004C0660F771F881F991F2A95D2F7609503 -:1032200070958095909503C060E070E0CB01242FED -:10323000269526952370422F50E042305105D1F05B -:103240004330510559F16C297D298E299F29413040 -:10325000510541F128960FB6F894DEBF0FBECDBFE1 -:10326000DF91CF911F910F91FF90EF90DF90CF9062 -:103270000C94691F6C297D298E299F2928960FB6E9 -:10328000F894DEBF0FBECDBFDF91CF911F910F919C -:10329000FF90EF90DF90CF900C94831F0E94691FE6 -:1032A000C701B60128960FB6F894DEBF0FBECDBF9A -:1032B000DF91CF911F910F91FF90EF90DF90CF9012 -:1032C0000C944F1F603FC9F118F4603E50F49CC04D -:1032D000623F09F461C008F44BC0633F09F470C059 -:1032E00093C0162F1F70842F8F71FF2099F00E94BA -:1032F000E81E812F28960FB6F894DEBF0FBECDBF13 -:10330000DF91CF911F910F91FF90EF90DF90CF90C1 -:103310000C9451170E94091F812F28960FB6F8941C -:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8 -:10333000EF90DF90CF900C945817FF20A9F0253024 -:1033400008F0B2C0842F8F7128960FB6F894DEBFB4 -:103350000FBECDBFDF91CF911F910F91FF90EF90E6 -:10336000DF90CF900C942E1F263008F09DC0EACF3E -:10337000FF20A1F0842F8F7128960FB6F894DEBF3E -:103380000FBECDBFDF91CF911F910F91FF90EF90B6 -:10339000DF90CF900C94E81EFF2061F3842F8F7193 +:1010500011F00E94080880E090E0089556985E988C +:1010600025982D9826982E9827982F988FEF90E006 +:10107000909389008093880090938B0080938A00DE +:1010800090938D0080938C00259A2D9A2FEF80E706 +:1010900092E0215080409040E1F700C00000269A85 +:1010A0002E9A2FEF80E792E0215080409040E1F7A8 +:1010B00000C00000279A2F9A2FEF80E792E021507E +:1010C00080409040E1F700C0000025982D982FEF58 +:1010D00080E792E0215080409040E1F700C000009E +:1010E00026982E982FEF80E792E021508040904084 +:1010F000E1F700C0000027982F9856985E98259831 +:101100002D9826982E9827982F98089589EA8093ED +:10111000800089E08093810024982C983F988AB1C0 +:101120008F748AB96E98479A8BB1806B8BB9769A17 +:101130000E942E0887E098E0892B11F00E94070892 +:1011400080E090E0089580E28093000180913C016E +:1011500081110EC00E94F20881E080933C012FEFC4 +:1011600083ED90E3215080409040E1F700C0000003 +:1011700080E40E94F8088093000181112EC00E9433 +:10118000220980930001811128C00E9422098093C6 +:101190000001811122C08FE30E9422098093000187 +:1011A00081111BC00E941A0980E40E94F8088093F4 +:1011B0000001811112C08CE00E942209809300017D +:1011C00081110BC00E94220980930001811105C08A +:1011D0008FE30E942209809300010E941A098091E6 +:1011E000000108951092B9008AE08093B800089534 +:1011F00094EA9093BC009091BC0097FFFCCF909133 +:10120000B900987F983021F0903111F081E0089575 +:101210008093BB0084E88093BC008091BC0087FF72 +:10122000FCCF8091B900887F883111F0803471F74C +:1012300080E0089584E98093BC008091BC0084FD27 +:10124000FCCF08958093BB0084E88093BC0080911C +:10125000BC0087FFFCCF9091B900987F81E0983265 +:1012600009F480E0089584E88093BC008091BC007C +:1012700087FFFCCF8091BB00089580910001811110 +:1012800015C080E40E94F8088093000181110CC011 +:1012900082E10E94220980930001811105C08FEF35 +:1012A0000E942209809300010E941A0984B1807F64 +:1012B00084B985B1807F85B98AB1837F8AB98BB1C2 +:1012C000837F8BB93E98469808950E94A308809327 +:1012D00000010E943D0980B38C7080BB81B3836F95 +:1012E00081BBECE4F1E0AEE3B1E011921D9281E04C +:1012F000EA35F807D1F786E898E0892B11F00C94CD +:10130000860808959F92AF92BF92CF92DF92EF929C +:10131000FF920F931F93CF93DF9380910001882357 +:10132000E1F080913D018F5F80933D01811115C0F7 +:1013300082E493E00E9455070E94A3088093000175 +:10134000882329F088E293E00E94550706C084E1D3 +:1013500093E00E9455070E942E080EE311E0C0E0C2 +:10136000D0E0BB24B39482E0A82ECC24C394D12C2B +:1013700025E0E22E23E0F22EC73000F58091000137 +:10138000811162C080E40E94F808809300018111FD +:1013900012C082E10E9422098093000181110BC0DA +:1013A000C6010C2E01C0880F0A94EAF780950E94AE +:1013B0002209809300010E941A0946C0CA30A1F098 +:1013C00028F4C83059F0C93061F005C0CC3089F03C +:1013D00070F0CD3089F0209A289810C0219A299871 +:1013E0000DC0229A2A980AC0239A2B9807C0529AB5 +:1013F00001C0539A5B9802C03E9A4698E0EAEA958B +:10140000F1F78FB1799985C092E081708B25892B96 +:101410007C9B02C090E001C094E0892B7D9B02C0C0 +:1014200090E001C098E0892B7E9B02C090E001C053 +:1014300090E1892B9FB19095991F9927991F9295BB +:10144000990F907E892B10C080910001811176C088 +:1014500080E40E94F80880930001882309F45BC0AF +:10146000912C0E941A09892DF8019081981739F161 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9455078091D70180FF55 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EE070F900F900F900F908091D70180FF63 +:1014B00004C083E093E00E945507A09201010E94BE +:1014C0003D0921960F5F1F4FCE30D10509F054CF53 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E081918D9391E0EC3466 +:10150000F907D1F785E298E0892BD1F00E942508F0 +:1015100017C090E07ACF83E10E94220980930001F6 +:1015200081119ECF81E40E94F8088093000181110F +:1015300097CF0E943309982E909493CF80E094CF58 +:1015400081E0DF91CF911F910F91FF90EF90DF909D +:10155000CF90BF90AF909F900895E82FF0E0E45BAC +:10156000FE4F80810895CF92DF92EF92FF920F930A +:101570001F93CF93DF938CEE92E00E9455073CE4DB +:10158000E32E31E0F32EC0E0D0E047EEC42E42E07F +:10159000D42E0EED12E0DF93CF93DF92CF920E9414 +:1015A000EE0784EE92E00E945507F70181917F01DA +:1015B00090E00E9478219F938F931F930F930E9436 +:1015C000EE078CED92E00E94550721968DB79EB7ED +:1015D00008960FB6F8949EBF0FBE8DBFCE30D105D2 +:1015E000D1F6DF91CF911F910F91FF90EF90DF9097 +:1015F000CF9008958B3B910578F4883A910540F59A +:10160000853A9105D0F48430910508F0B1C081305D +:10161000910509F4ADC06BC0803E910508F467C028 +:10162000883E910508F4A4C09C01205F3109203157 +:10163000310508F05CC090650895853A910509F47C +:1016400059C0863A910509F458C083E890E408959A +:10165000883A910509F454C0893A910509F453C0B8 +:101660008A3A910509F452C08B3A910509F451C0A8 +:101670008C3A910509F450C08D3A910509F44FC098 +:10168000803B910509F44EC08E3A910509F44DC096 +:101690008F3A910509F44CC0813B910509F44BC088 +:1016A000823B910509F44AC0833B910509F449C086 +:1016B000843B910509F448C0853B910509F447C076 +:1016C000863B910509F446C0873B910509F445C066 +:1016D000883B910509F444C0893B910509F443C056 +:1016E0008A3B910509F042C08AE296E4089580E0C1 +:1016F00090E0089581E890E4089582E890E40895E8 +:1017000082EE94E4089589EE94E408958AEE94E4D8 +:10171000089585EB94E4089586EB94E4089587EBAF +:1017200094E408958CEC94E408958DEC94E4089589 +:1017300083E895E408958AE895E4089582E995E4BC +:10174000089584E995E4089581E296E4089583E29A +:1017500096E4089584E296E4089585E296E4089577 +:1017600086E296E4089587E296E4089580E094E4A2 +:101770000895089596E0799FF001112494E5899FDA +:10178000E00DF11D1124E60FF11DEE0FFF1FEC51CE +:10179000FF4F859194910895880F991F805A90402A +:1017A000FC01859194910895880F991F80529F4F55 +:1017B000FC0185919491089526E0729FF001112417 +:1017C00044E5849FE00DF11D1124E60FF11DEE0F9D +:1017D000FF1FEC51FF4F25913491C9019A95811556 +:1017E0009F4110F4C9010895C9019052811590419B +:1017F00028F4C9019F700E94D40B0895C901905329 +:101800008115904120F4C9019927906C0895211504 +:1018100080E5380769F40E94A11A9FEF24E34CE0A9 +:10182000915020404040E1F700C000000C94342269 +:10183000213080E5380751F48CE593E00E9455078C +:101840008091D70181608093D7010895C901905597 +:101850008115904108F050C0832F99278F709927E8 +:1018600081309105D9F4A9014370552702C0880F32 +:10187000991F4A95E2F79C68A90164E0440F551F3F +:101880006A95E1F744275370842B952B73E0220F60 +:10189000331F7A95E1F7207633271DC082309105FA +:1018A00029F4922F8827816F906A089583309105DB +:1018B000A9F4A9014370552781E090E002C0880F88 +:1018C000991F4A95E2F79C6843E0220F331F4A951F +:1018D000E1F7207E3770822B932B08950497F1F463 +:1018E000A9014370552781E090E002C0880F991F3D +:1018F0004A95E2F79A68E8CFC9019057811590415F +:1019000020F4C9019F7090620895C9019058811513 +:10191000904120F4C9019F70906A0895203E3105DE +:10192000E0F4203C310558F52133310509F470C04D +:1019300048F42932310509F464C02A32310509F42A +:101940006EC074C029333105F1F022383105D9F069 +:101950002533310509F44EC069C0233E310589F1B4 +:1019600038F4203E3105C1F0223E3105E1F05EC081 +:10197000263E310569F1273E3105A9F157C0C9015D +:101980000E94CC0B08958091EA0180FD02C081FF86 +:101990004DC080EE90E04BC08091EA0180FFF9CF0E +:1019A00089E390E044C08091EA0182FF0EC08091FB +:1019B000EA0184FF03C080E090E039C083EE90E04C +:1019C00036C08091EA0182FFF2CF82EE90E02FC014 +:1019D0008091EA0183FF0BC08091EA0184FDEBCF87 +:1019E00087EE90E024C08091EA0183FFF5CF86EE78 +:1019F00090E01DC08091EA0185FF07C089E290E078 +:101A000016C08091EA0185FFF9CF85E390E00FC011 +:101A10008091EA0186FF07C08AE290E008C08091C9 +:101A2000EA0186FFF9CF81E390E001C0C9010E947D +:101A3000FA0A0895089580916D0108959FB7F8946A +:101A400010925C019FBF9091F001943009F058C052 +:101A50009091E9009F702091EC0020FF02C020E8E7 +:101A600001C020E0292B94E09093E9009091EB00D5 +:101A700090FF43C09091EE0097FF3FC090915A01B4 +:101A8000992321F09091E80095FF37C010925A01F8 +:101A900096E03091E80035FD15C03091F00134300A +:101AA00061F53091EB0035FD28C0915021F481E0C3 +:101AB00080935A0122C0EFE9FFE03197F1F700C0AF +:101AC0000000E7CF8093F1008091E80085FD0AC017 +:101AD0008091E80080FFFCCF8091E8008E778093B2 +:101AE000E80006C08FB7F89491E090935C018FBF37 +:101AF0002F702093E90080E008952F702093E90073 +:101B00008FEF0895CF93DF9300D01F92CDB7DEB74C +:101B10002091F001243019F523E029839B838A83E7 +:101B20002093E9008FEF9091E800815095FD06C069 +:101B300095ED9A95F1F700008111F5CF8091E800BD +:101B400085FF0DC040E050E063E070E0CE010196FB +:101B50000E9451108091E8008E778093E8000F90EA +:101B60000F900F90DF91CF910895CF93DF9300D026 +:101B70001F92CDB7DEB72091F001243021F522E08D +:101B800029839B838A8383E08093E9008FEF909180 +:101B9000E800815095FD06C095ED9A95F1F700009B +:101BA0008111F5CF8091E80085FF0DC040E050E045 +:101BB00063E070E0CE0101960E9451108091E80030 +:101BC0008E778093E8000F900F900F90DF91CF9168 +:101BD00008952091F0012430F1F422E02093E900EF +:101BE0002FEF3091E800215035FD06C035ED3A95D4 +:101BF000F1F700002111F5CF2091E80025FF0BC07F +:101C000040E050E065E070E00E9451108091E800F3 +:101C10008E778093E8000895CF93DF93EC01809155 +:101C2000F001843009F047C080910C018823E1F075 +:101C300080910D018823C1F085E08093E9008FEF4A +:101C40009091E800815095FD06C095E19A95F1F7D5 +:101C500000008111F5CF8091E80085FF2CC040E0A5 +:101C600050E060E170E017C081E08093E9008FEF01 +:101C70009091E800815095FD06C095ED9A95F1F799 +:101C800000008111F5CF8091E80085FF14C040E08D +:101C900050E068E070E0CE010E9451108091E800B1 +:101CA0008E778093E80080E1FE01ADE5B1E0019020 +:101CB0000D928A95E1F7DF91CF91089583E993E042 +:101CC0000E9455078091EF01811109C00E94E31124 +:101CD0000E9440128091E20084608093E2000895A7 +:101CE0008FE893E00E9455071092EF0108958BE86A +:101CF00093E00C94550787E893E00E9455070C94F5 +:101D0000F52B83E893E00E9455070E94CF210E94A3 +:101D1000FB2B0E94DC140C941A0D80915B018F5FE9 +:101D200080935B0162E30E94692D911135C010928E +:101D30005B0180915C01882379F18091F00184300E +:101D400049F58091E9008F709091EC0090FF02C0FE +:101D500090E801C090E0982B84E08093E9008091A6 +:101D6000EB0080FF14C08091EE0087FF10C08091CF +:101D7000E80085FF03C01092F100F9CF8091E800E0 +:101D800080FF05C08091E8008E778093E8009F7007 +:101D90009093E90010925C01089542E061EC81E0CB +:101DA0000E945D1142E061EC82E00E945D1142E020 +:101DB00061EC83E00E945D1142E261EC84E00E94EC +:101DC0005D1142E161EC85E00C945D118091F201BE +:101DD000833009F455C030F4813071F0823009F459 +:101DE0008EC008958A3009F47AC08B3009F460C03F +:101DF000893009F09CC020C08091F101813A09F03E +:101E000096C08091E800877F8093E8008091F5017B +:101E10009091F601892B21F060E080E090E003C012 +:101E200060E18DE591E070E00E949A108091E800F9 +:101E30008B778093E80008958091F101813209F059 +:101E400076C08091F5019091F601009719F0049702 +:101E500009F06DC08091E800877F8093E800809151 +:101E6000E80082FD05C08091F0018111F8CF5FC0CC +:101E70008091F10080936D018091E8008B7753C0D1 +:101E80008091F101813A09F052C08091F501909161 +:101E9000F601892B09F04BC08091E800877F809381 +:101EA000E8008091E80080FFFCCF80910C0136C0F3 +:101EB0008091F1018132D9F58091F5019091F6017F +:101EC000892BA9F58091E800877F8093E8000E9424 +:101ED00092118091F30180930C010C94A11A8091CE +:101EE000F101813221F58091E800877F8093E8003D +:101EF0000E9492118091F40180936E010895809167 +:101F0000F101813AA1F48091E800877F8093E80095 +:101F10008091E80080FFFCCF80916E018093F100FA +:101F20008091E8008E778093E8000C9492110895D8 +:101F300084B7877F84BF88E10FB6F89480936000F0 +:101F4000109260000FBE90E080E80FB6F894809386 +:101F50006100909361000FBE0E9465150E94E3111D +:101F60000E9440128091E20084608093E2008EE142 +:101F70009DE00E940E2178940E94BA140E94671579 +:101F800082E091E00E94D7140E94E32B82E793E065 +:101F90000E9455078091F001853089F48EE693E028 +:101FA0000E9455070E9492218091EE01882391F3AF +:101FB0000E94BA21882371F30E943B10EBCF0E944C +:101FC0009515E8CF292F332723303105A9F06CF47C +:101FD0002130310509F442C02230310509F043C0F7 +:101FE0008DE890E02BEC33E042C021323105C9F09E +:101FF0002232310519F137C099278130910541F01E +:102000008230910541F0892B71F5E7ECF3E005C0D2 +:10201000EFEAF3E002C0E7E9F3E0849190E09F018A +:1020200026C0653000F5E62FF0E0EE0FFF1FEB5DF8 +:10203000FE4F2081318189E090E019C0653098F42D +:10204000E62FF0E0DF01AA0FBB1FA55EBE4F2D916A +:102050003C91EA5EFE4F808190E009C082E190E011 +:1020600028E534E004C080E090E020E030E0FA01B0 +:1020700031832083089580E189BD82E189BD09B45F +:1020800000FEFDCF8091D8008F7D8093D800809195 +:10209000E00082608093E0008091E00081FDFCCF51 +:1020A0000895CF92DF92EF92FF920F931F93CF93F9 +:1020B000DF937C018B01EA010E94B311811131C0D1 +:1020C000209731F088819981081B190BE80EF91EC1 +:1020D000C12CD12C0115110519F18091E80085FD65 +:1020E00014C08091E8008E778093E800209741F03B +:1020F000888199818C0D9D1D9983888385E011C00D +:102100000E94B311882331F30CC0F70181917F0144 +:102110008093F10001501109FFEFCF1ADF0ADACFE7 +:1021200080E0DF91CF911F910F91FF90EF90DF90B2 +:10213000CF9008952091F7013091F80126173707C5 +:1021400048F06115710539F42091E8002E7720934D +:10215000E80001C0B901FC0120E061157105B9F189 +:102160008091F001882309F440C0853009F43FC014 +:102170008091E80083FD3DC08091E80082FF06C0A9 +:102180008091E80082FF26C080E008958091E800F9 +:1021900080FFE3CF2091F3008091F20090E0922B3A +:1021A0006115710551F08830910538F42191209323 +:1021B000F100615071090196F3CF21E0089709F011 +:1021C00020E08091E8008E778093E800C6CF21114F +:1021D000C7CFD6CF8091F001882339F0853039F010 +:1021E0008091E80083FFCCCF04C082E0089583E0B3 +:1021F000089581E008952091F7013091F8012617A4 +:10220000370748F06115710539F42091E8002E7701 +:102210002093E80001C0B901FC0120E061157105BF +:10222000C1F18091F001882309F441C0853009F49F +:1022300040C08091E80083FD3EC08091E80082FFAD +:1022400006C08091E80082FF27C080E00895809159 +:10225000E80080FFE3CF2091F3008091F20090E04E +:10226000922B6115710559F08830910540F4249145 +:102270002093F1003196615071090196F2CF21E06F +:10228000089709F020E08091E8008E778093E800BD +:10229000C5CF2111C6CFD5CF8091F001882339F069 +:1022A000853039F08091E80083FFCBCF04C082E015 +:1022B000089583E0089581E00895982F973058F5A8 +:1022C0009093E900981739F07091EC002091ED009F +:1022D0005091F00003C0242F762F50E021FF19C049 +:1022E0003091EB003E7F3093EB003091ED003D7F6D +:1022F0003093ED003091EB0031603093EB00709340 +:10230000EC002093ED005093F0002091EE0027FFA9 +:1023100007C09F5FD3CF8F708093E90081E008955D +:1023200080E008958091F10187FD05C08091E8006B +:1023300080FF0EC012C08091E80082FD05C0809130 +:10234000F0018111F8CF08958091E8008B7708C0E3 +:102350008091F0018111EACF08958091E8008E7795 +:102360008093E80008958091E4009091E50045E6AF +:102370002091EC0020FF21C02091E80020FD21C029 +:102380002091F001222389F0253089F02091EB0083 +:1023900025FD0FC02091E4003091E5002817390792 +:1023A00039F3415041F0C901E3CF82E0089583E061 +:1023B000089581E0089584E008952091E80022FFC7 +:1023C000DFCF80E008950E9451120E945912E0EE82 +:1023D000F0E0808181608083E8EDF0E080818F779C +:1023E000808319BCA7EDB0E08C918E7F8C938081A7 +:1023F0008F7E80831092EF0108950F931F93CF93E8 +:10240000DF930E9451120E945912C8EDD0E08881DA +:102410008F77888388818068888388818F7D88838F +:1024200019BC1092F0011092EC011092EE01109282 +:10243000ED0100EE10E0F80180818B7F80838881C0 +:102440008160888342E060E080E00E945D11E1EEFF +:10245000F0E080818E7F8083E2EEF0E08081816019 +:102460008083808188608083F80180818E7F808373 +:10247000888180618883DF91CF911F910F910895AA +:10248000E8EDF0E080818F7E8083E7EDF0E08081F1 +:102490008160808384E082BF81E08093EF010C94AF +:1024A000FD11E8EDF0E080818E7F80831092E200E4 +:1024B00008951092DA001092E10008951F920F9291 +:1024C0000FB60F9211242F933F934F935F936F9307 +:1024D0007F938F939F93AF93BF93EF93FF938091DD +:1024E000E10082FF0BC08091E20082FF07C0809173 +:1024F000E1008B7F8093E1000E948D0E8091DA00D5 +:1025000080FF1FC08091D80080FF1BC08091DA003F +:102510008E7F8093DA008091D90080FF0DC080E12A +:1025200089BD82E189BD09B400FEFDCF81E08093C1 +:10253000F0010E945E0E05C019BC1092F0010E94CD +:10254000700E8091E10080FF19C08091E20080FF51 +:1025500015C08091E2008E7F8093E2008091E200BE +:1025600080618093E2008091D80080628093D800DF +:1025700019BC85E08093F0010E947B0E8091E10000 +:1025800084FF30C08091E20084FF2CC080E189BDCF +:1025900082E189BD09B400FEFDCF8091D8008F7D16 +:1025A0008093D8008091E1008F7E8093E10080913C +:1025B000E2008F7E8093E2008091E2008160809350 +:1025C000E2008091EC01882311F084E007C0809143 +:1025D000E30087FF02C083E001C081E08093F00147 +:1025E0000E94810E8091E10083FF29C08091E2006A +:1025F00083FF25C08091E100877F8093E10082E026 +:102600008093F0011092EC018091E1008E7F809325 +:10261000E1008091E2008E7F8093E2008091E200F1 +:1026200080618093E20042E060E080E00E945D1102 +:102630008091F00088608093F0000E94770EFF91F7 +:10264000EF91BF91AF919F918F917F916F915F912A +:102650004F913F912F910F900FBE0F901F901895A3 +:102660001F920F920FB60F9211242F933F934F9307 +:102670005F936F937F938F939F93AF93BF93CF930A +:10268000EF93FF93C091E900CF708091EC0010921E +:10269000E9008091F000877F8093F00078940E9499 +:1026A0006C131092E9008091F00088608093F00034 +:1026B000C093E900FF91EF91CF91BF91AF919F91AE +:1026C0008F917F916F915F914F913F912F910F90DB +:1026D0000FBE0F901F9018951F93CF93DF93CDB728 +:1026E000DEB7AA970FB6F894DEBF0FBECDBFE1EFFD +:1026F000F1E08091F100819321E0E93FF207C9F711 +:102700000E94E60E8091E80083FF1CC12091F10138 +:102710003091F201832F90E08A30910508F012C1C8 +:10272000FC01EA5AFF4F0C94892D203881F02238A1 +:1027300009F008C18091F5018F708093E9008091C4 +:10274000EB0085FB882780F91092E90006C0809194 +:10275000ED019091EE01911182609091E800977FD8 +:102760009093E8008093F1001092F100C5C0822F91 +:102770008D7F09F0E7C0222319F0223061F0E2C01A +:102780008091F301813009F0DDC0333009F080E041 +:102790008093EE0128C08091F301811124C0209123 +:1027A000F5012F7009F4CEC02093E9008091EB0071 +:1027B00080FF19C08091EB00333011F4806211C0AA +:1027C00080618093EB0081E090E0022E01C0880FD1 +:1027D0000A94EAF78093EA001092EA008091EB00F5 +:1027E00088608093EB001092E9008091E800877F79 +:1027F00086C02111A7C01091F3011F778091E300DB +:102800008078812B8093E3008091E800877F80931C +:10281000E8000E9492118091E80080FFFCCF809137 +:10282000E30080688093E300112311F083E001C08E +:1028300082E08093F00186C02058223008F082C0E8 +:102840008091F3019091F4018C3D23E0920779F59A +:1028500083E08A838AE289834FB7F894DE01139676 +:1028600020E03EE051E2E32FF0E050935700E49186 +:1028700020FF03C0E295EF703F5FEF708E2F90E076 +:10288000EA3010F0C79601C0C0968D939D932F5FDC +:10289000243149F74FBF8091E800877F8093E8009B +:1028A0006AE270E0CE0101960E949A1014C0AE0157 +:1028B0004F5F5F4F6091F5010E94E20F009709F4AE +:1028C00041C02091E800277F2093E800BC01898166 +:1028D0009A810E94FB108091E8008B778093E8003A +:1028E00031C0203879F58091E800877F8093E80037 +:1028F0008091EC018093F1008091E8008E778093C5 +:10290000E8000E9492111EC021111CC09091F30199 +:102910009230C0F48091E800877F8093E800909324 +:10292000EC010E9492118091EC01811104C0809110 +:10293000E30087FF02C084E001C081E08093F001E2 +:102940000E94CD0E8091E80083FF0AC08091E800CC +:10295000877F8093E8008091EB0080628093EB009A +:10296000AA960FB6F894DEBF0FBECDBFDF91CF9110 +:102970001F910895CF938091F0018823B1F0809149 +:10298000E9008F709091EC0090FF02C090E801C0C8 +:1029900090E0C92FC82B1092E9008091E80083FDD8 +:1029A0000E946C13CF70C093E900CF91089590936B +:1029B0007401809373010895E0917301F0917401A3 +:1029C000309721F00190F081E02D099480E0089586 +:1029D000FF920F931F93CF93DF938C01E0917301CC +:1029E000F0917401309799F10280F381E02D0995FF +:1029F0008091D70182FF2BC080FF04C08DE895E055 +:102A00000E945507E80180E1F82E07E815E0809163 +:102A1000D70180FF0BC088811F928F931F930F9364 +:102A20000E94EE070F900F900F900F90FA9421964E +:102A3000F110EDCF8091D70180FF09C085E895E0C6 +:102A4000DF91CF911F910F91FF900C945507DF916B +:102A5000CF911F910F91FF900895E0917301F09134 +:102A60007401309721F00480F581E02D09940895D8 +:102A700020917101309172018217930771F0909348 +:102A8000720180937101E0917301F09174013097AC +:102A900021F00680F781E02D0994089520916F01BF +:102AA000309170018217930771F0909370018093B9 +:102AB0006F01E0917301F0917401309721F000846F +:102AC000F185E02D0994089508950C9464150E94F1 +:102AD000D1210E9465090C949722CF93C82F809131 +:102AE000D70182FF1EC080FF04C086EA95E00E94E5 +:102AF00055078091D70180FF0CC01F92CF9321EA28 +:102B000035E03F932F930E94EE070F900F900F90A8 +:102B10000F908091D70180FF04C08FE995E00E945B +:102B200055078C2FCF910C941A0DCF92DF92EF9214 +:102B3000FF920F931F93CF93DF93CDB7DEB72B9701 +:102B40000FB6F894DEBF0FBECDBF0E94820936E7F4 +:102B5000E32E31E0F32E00E010E0C02E802F0E9423 +:102B6000AD0AF701D1907F01D826B1F40F5F1F4F56 +:102B70000E30110591F78FEF89838A831B820E94A3 +:102B8000DA218160782F9D838C8349815A816B8102 +:102B90008D810E94381641C09091D70191FF04C0E9 +:102BA0008B870E94B30A8B8520E030E04D2D50E0EA +:102BB000922FBA01022E02C0759567950A94E2F72A +:102BC00060FF25C02E83CF82EE24E394F12C02C057 +:102BD000EE0CFF1C9A95E2F790E08E219F2121E0F8 +:102BE000892B09F420E028870E94DA218160782F60 +:102BF0009A8789874E815F8168858A850E94381609 +:102C0000F801EA58FE4F80818E25808306C02F5F31 +:102C10003F4F2630310561F6A9CF0E94052610915D +:102C200075010E94DC141817A1F00E94DC14809337 +:102C300075012B960FB6F894DEBF0FBECDBFDF91A6 +:102C4000CF911F910F91FF90EF90DF90CF900C9458 +:102C50006D152B960FB6F894DEBF0FBECDBFDF917A +:102C6000CF911F910F91FF90EF90DF90CF9008953B +:102C7000CF93DF93CDB7DEB72B970FB6F894DEBFB7 +:102C80000FBECDBF4F83588769877A878B87DE0158 +:102C9000119686E0FD0111928A95E9F785E0FE0123 +:102CA000379601900D928A95E1F749815A816B819F +:102CB0007C818D819E810E946D1D2B960FB6F894AC +:102CC000DEBF0FBECDBFDF91CF910895CF93C82F48 +:102CD000882309F4C1C0823859F40E94DC1481FDB4 +:102CE000BBC089E30E940C200E94E82089E30CC04D +:102CF000833879F40E94DC1480FDAEC083E50E9425 +:102D00000C200E94E82083E50E945D20CF910C9466 +:102D1000E820843859F40E94DC1482FD9DC087E4C9 +:102D20000E940C200E94E82087E4EECF8CEF8C0FED +:102D3000813A48F48C2F0E948E2A81118DC08C2FED +:102D40000E940C20E3CF80E28C0F883048F4C770DB +:102D500081E001C0880FCA95EAF70E94AF20D6CF64 +:102D60008BE58C0F833078F4C53A29F0C63A31F4FC +:102D700082E890E005C081E890E002C083E890E03E +:102D8000CF910C94381588E58C0F833108F064C01E +:102D9000C83A39F1C93A41F1CA3A49F1CB3A51F14D +:102DA000CC3A59F1CD3A61F1C03B69F1CE3A71F1BB +:102DB000CF3A79F1C13B81F1C23B89F1C33B91F13B +:102DC000C43B99F1C53BA1F1C63BA9F1C73BB1F1A9 +:102DD000C83BB9F1C93BC1F1CA3BC9F58AE292E0EF +:102DE00038C082EE90E035C089EE90E032C08AEEC5 +:102DF00090E02FC085EB90E02CC086EB90E029C0DE +:102E000087EB90E026C08CEC90E023C08DEC90E046 +:102E100020C083E891E01DC08AE891E01AC082E9F1 +:102E200091E017C084E991E014C081E292E011C002 +:102E300083E292E00EC084E292E00BC085E292E071 +:102E400008C086E292E005C087E292E002C080E01E +:102E500090E0CF910C944E15CF910895882309F4FA +:102E60004BC0823859F40E94DC1481FF45C089E3CD +:102E70000E940C200E94E82089E30CC0833871F482 +:102E80000E94DC1480FF38C083E50E940C200E9461 +:102E9000E82083E50E945D200C94E820843859F4F2 +:102EA0000E94DC1482FF28C087E40E940C200E944C +:102EB000E82087E4EFCF9CEF980F913A58F390E227 +:102EC000980F983050F4877091E001C0990F8A955F +:102ED000EAF7892F0E94B520DFCF9BE5980F93304A +:102EE00020F480E090E00C943815885A833120F467 +:102EF00080E090E00C944E150895882321F00E9404 +:102F0000AF200C94E8200895882321F00E94B5207A +:102F10000C94E8200895CF92DF92EF92FF920F93E6 +:102F20001F93CF93DF93CDB7DEB728970FB6F894F2 +:102F3000DEBF0FBECDBF8C0185E0F801DE0111962A +:102F400001900D928A95E1F7F80140813181F2807C +:102F5000258122952F7083819481892B31F03F3F09 +:102F600031F481E04F3F19F403C081E001C080E0FB +:102F700080FDC6C249833A8389819A812F830E944A +:102F8000CA1F9E8388870E94C91F0E949C1E4E8173 +:102F9000E42FE295EF70F0E0E05AFF4F2F81688553 +:102FA0000C94892D842F807F142F1F70882311F09B +:102FB0001295107FFF2059F0112309F456C2812F7A +:102FC00068870E94BF200E94E82068854EC2862F35 +:102FD0000E942E17112309F493C2812F0E94C5204D +:102FE00028960FB6F894DEBF0FBECDBFDF91CF910C +:102FF0001F910F91FF90EF90DF90CF900C94E820FD +:10300000342F307F842F8F70303211F08295807F83 +:10301000662319F0613019F12CC0FF20B1F0222392 +:1030200009F494C1213009F091C128960FB6F894A3 +:10303000DEBF0FBECDBFDF91CF911F910F91FF90EB +:10304000EF90DF90CF900C94CF20222319F0213005 +:1030500009F456C28E830E94D2208E818AC1FF203D +:1030600021F0263008F04CC271C1253008F048C26A +:1030700080C1FF2021F0222309F468C1F6C1222378 +:1030800009F477C106C2242F26952695237030E0D7 +:103090002115310521F021303105C9F031C2FF2061 +:1030A00021F0862F942F937002C080E090E0289644 +:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1030C0000F91FF90EF90DF90CF900C943815FF2078 +:1030D00021F0862F942F937002C080E090E0289614 +:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 +:1030F0000F91FF90EF90DF90CF900C944E15862F9C +:10310000FF2019F00E948B2402C00E94F32428960D +:103110000FB6F894DEBF0FBECDBFDF91CF911F91E8 +:103120000F91FF90EF90DF90CF900C947825842F33 +:10313000837009F076C0F110E3C1262F2295269501 +:103140002770220F220F862F8F70C82ED12CE12CD2 +:10315000F12C022E04C0CC0CDD1CEE1CFF1C0A94CA +:10316000D2F764FF10C06FE070E080E090E004C030 +:10317000660F771F881F991F2A95D2F76095709563 +:103180008095909503C060E070E0CB01242F2695D8 +:1031900026952370422F50E042305105D1F0433044 +:1031A000510559F16C297D298E299F2941305105FE +:1031B00041F128960FB6F894DEBF0FBECDBFDF9168 +:1031C000CF911F910F91FF90EF90DF90CF900C94D3 +:1031D000C11E6C297D298E299F2928960FB6F89447 +:1031E000DEBF0FBECDBFDF91CF911F910F91FF903A +:1031F000EF90DF90CF900C94DB1E0E94C11EC701A0 +:10320000B60128960FB6F894DEBF0FBECDBFDF9192 +:10321000CF911F910F91FF90EF90DF90CF900C9482 +:10322000A71EFF2019F0842F817001C08695882386 +:1032300009F466C1262F229526952770220F220FAA +:10324000862F8F70C82ED12CE12CF12C022E04C0B9 +:10325000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DE +:103260006FE070E080E090E004C0660F771F881F79 +:10327000991F2A95D2F7609570958095909503C017 +:1032800060E070E0CB01242F269526952370422F15 +:1032900050E042305105D1F04330510559F16C29CD +:1032A0007D298E299F294130510541F128960FB67D +:1032B000F894DEBF0FBECDBFDF91CF911F910F916C +:1032C000FF90EF90DF90CF900C94951F6C297D2993 +:1032D0008E299F2928960FB6F894DEBF0FBECDBF6A +:1032E000DF91CF911F910F91FF90EF90DF90CF90E2 +:1032F0000C94AF1F0E94951FC701B60128960FB608 +:10330000F894DEBF0FBECDBFDF91CF911F910F911B +:10331000FF90EF90DF90CF900C947B1F603FC9F13E +:1033200018F4603E50F49CC0623F09F461C008F498 +:103330004BC0633F09F470C093C0162F1F70842FD9 +:103340008F71FF2099F00E94141F812F28960FB6CD +:10335000F894DEBF0FBECDBFDF91CF911F910F91CB +:10336000FF90EF90DF90CF900C947D170E94351F57 +:10337000812F28960FB6F894DEBF0FBECDBFDF9128 +:10338000CF911F910F91FF90EF90DF90CF900C9411 +:103390008417FF20A9F0253008F0B2C0842F8F7168 :1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C94091F19 -:1033C000FF2091F0842F8F7128960FB6F894DEBFFE -:1033D0000FBECDBFDF91CF911F910F91FF90EF9066 -:1033E000DF90CF900C94D31E28960FB6F894DEBFD2 -:1033F0000FBECDBFDF91CF911F910F91FF90EF9046 -:10340000DF90CF900C94C91EFF20A1F0222309F475 -:10341000B1CF862F28960FB6F894DEBF0FBECDBF72 -:10342000DF91CF911F910F91FF90EF90DF90CF90A0 -:103430000C943A16222309F4B1CF862F28960FB6A2 -:10344000F894DEBF0FBECDBFDF91CF911F910F91DA -:10345000FF90EF90DF90CF900C9402174F70C8014F -:103460000E94F70728960FB6F894DEBF0FBECDBFB7 -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:103480000C94EE1D4F70C80128960FB6F894DEBF5D -:103490000FBECDBFDF91CF911F910F91FF90EF90A5 -:1034A000DF90CF900C948D0B28960FB6F894DEBF6A -:1034B0000FBECDBFDF91CF911F910F91FF90EF9085 -:1034C000DF90CF9008950E94A0200E9475200E9456 -:1034D000BC200E947A260E944C2580E090E00E9449 -:1034E0000C1580E090E00C9422150E9490200C9422 -:1034F000631A0E949E1F292F22952F7030E02C30D6 -:1035000031054CF42A3031056CF422503109223057 -:10351000310590F407C02C30310551F02F303105C2 -:1035200039F00AC0803E10F0803F31F481E0089508 -:1035300093FB882780F9089580E00895CF93DF9367 -:1035400000D000D01F92CDB7DEB70F900F900F9034 -:103550000F900F90DF91CF910895CF93DF9300D01C -:1035600000D000D0CDB7DEB726960FB6F894DEBFF8 -:103570000FBECDBFDF91CF9108951F93CF93DF93FF -:10358000C091840116E080918501C81799F0D0E0C0 -:103590001C9FF0011D9FF00D1124EA57FE4F408142 -:1035A000518162817381848195810E94AD1A219637 -:1035B000C770E9CFDF91CF911F9108954091B60177 -:1035C0005091B7016091B8017091B9018091BA0131 -:1035D0009091BB010C94AD1ACF938091BB01829561 -:1035E0008F7009F05FC08091B801882309F45AC038 -:1035F00020918401A09185016091B6017091B7017D -:103600008091B9019091BA0131E06F3F09F030E04B -:10361000B32FC6E02A1709F445C0009721F07F3F79 -:1036200021F44B2F03C041E001C040E030E040FDF9 -:1036300035C0C29FF001C39FF00D1124EA57FE4F21 -:10364000418174132BC04081641328C04281411111 -:1036500025C0438154814817590710F4415051093E -:10366000481B590B483C5105C8F48091BB018F7031 -:1036700080618093BB0186E0829FF001839FF00D03 -:103680001124E557FE4F80818F708061808386EB27 -:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE -:1036A0002770B8CFCF910895CF92DF92EF92FF921B -:1036B0000F931F93CF93DF93CDB7DEB762970FB60B -:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE -:1036D0001D9601900D928A95E1F7D8014C911196B3 -:1036E0005C91119712966C9112971396ED90FC9045 -:1036F00014977091B601E091B7012091B901309112 -:10370000BA012115310531F0EF3F31F481E07F3FFF -:1037100019F403C081E001C080E0B82FB170CB2E56 -:1037200080FD6CC1D090B801DD2009F4F5C0F091A6 -:10373000BB01E216F30638F0C701821B930B883CED -:10374000910548F09BC0209530952E0D3F1D283CDB -:10375000310508F093C08F2F807F09F052C0E51328 -:1037600014C0741312C0D62E61110FC0FF70F06127 -:10377000F093BB010E94DE1A86EB91E00E945F1776 -:103780008091BB01F80185836CC1EF2831F05F3F68 -:1037900031F481E04F3F19F403C081E001C080E0C3 -:1037A00080FD03C081E0862701C080E0F82FF17022 -:1037B000FF2E80FF1CC0809184012091850136E09E -:1037C000821709F428C190E0389FF001399FF00D6D -:1037D0001124EA57FE4F7181571306C070814713B9 -:1037E00003C07281671303C001968770E9CFD62E9C -:1037F000662309F436C18091BB0181608093BB01CF -:1038000053C0E51308C0741306C0611104C0D80189 -:103810001596FC93AEC04D875E878D859E856A8B1D -:103820000E94791A6A89882329F1D62E662311F11C -:103830002091BB01822F82958F7090E002970CF44B -:1038400060C08091B6019091B70198878F831986E7 -:10385000FB86EA862C87CE01079651C0E51731F129 -:103860004D875E878D859E856A8B0E94791A6A894D -:1038700081112EC0C8010E945F17A4C08F2F807FC6 -:1038800069F77E2DF98AE88A89890E949E1A86EB5B -:1038900091E00E945F17E6EBF1E086E0DF011D9208 -:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9 -:1038B0006111D6CFD8011596FC93C8010E945F17FD -:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9 -:1038D000D62E662379F22091BB01822F82958F70BC -:1038E00090E0029774F08091B6019091B7019A83AD -:1038F00089831B82FD82EC822E83CE0101960E9479 -:103900005F1786E0F801A6EBB1E001900D928A9571 -:10391000E1F70E94EC1A6FC0E216F30628F0C70127 -:10392000821B930B9C0104C0209530952E0D3F1DEA -:10393000283C310508F052C0D62E662309F49ACFF0 -:10394000E5132CC074132AC08091BB0180FD1DC0FB -:10395000982F92959F70C9F0D80115968C93159762 -:103960009F3039F09F5F9295907F8F70892B1596CD -:103970008C93C8010E945F1786E0F801A6EBB1E0C6 -:1039800001900D928A95E1F736C086E0F801A6EB2A -:10399000B1E001900D928A95E1F763C04D875E8793 -:1039A0008D859E850E94791A882379F086E0F8013A -:1039B000A6EBB1E001900D928A95E1F70E94EC1A16 -:1039C0000E94DE1ADD24D3944CC08091BB0181603B -:1039D0008093BB01C8010E945F1743C07E2DF98A06 -:1039E000E88A89890E949E1AE6EBF1E086E0DF0111 -:1039F0001D928A95E9F70E94DE1A33C0662309F406 -:103A000039CF4D875E878D859E850E94791A8823E0 -:103A100009F430CFCBCF4D875E878D859E850E9480 -:103A20009E1F292F22952F7030E0223031052CF473 -:103A30009F7041F0811106C00CC0243031052CF478 -:103A40009F7049F4805E883020F0C8010E945F17A3 -:103A5000CF2CDC2C06C0D80115969C91907F91F755 -:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96 -:103A7000DF91CF911F910F91FF90EF90DF90CF904A -:103A800008951F93CF93DF93CDB7DEB72C970FB672 -:103A9000F894DEBF0FBECDBF4F83588769877A8702 -:103AA0008B879C87CE0107960E94541B8823C1F008 -:103AB0002F8138858A859B85892B31F03F3F11F016 -:103AC00080E003C02F3FE1F781E0811147C04F81C3 -:103AD000588569857A858B859C850E94AD1A3EC084 -:103AE00086E0FE013796DE01119601900D928A95CF -:103AF000E1F7FF81E8854A855B854115510531F085 -:103B0000EF3F31F481E0FF3F19F403C081E001C0D1 -:103B100080E080FD23C02091850130E0C90101963D -:103B2000877099276091840170E086179707F1F1FB -:103B3000F983EA835D834C8396E0929FD001939F43 -:103B4000B00D1124AA57BE4FFE01319601900D927F -:103B50009A95E1F7809385010E94BD1A16E0809145 -:103B6000840190918501891779F1189FC001112472 -:103B70008A579E4F0E94541B882331F1E0918401A3 -:103B80001E9FF0011124EA57FE4F4081518162814E -:103B90007381848195810E94AD1A8091840190E0A7 -:103BA00001968770992780938401D9CF0E94751A56 -:103BB0001092850110928401E6EBF1E086E0DF01CE -:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE -:103BD0000FBECDBFDF91CF911F910895EF92FF925D -:103BE0000F931F93CF93DF939C01009709F471C04B -:103BF000F12CEE24E394E9012196F90184918437B4 -:103C000040F4843008F056C0813081F0823021F1D8 -:103C100060C0853709F449C0C0F19CE7980F903720 -:103C200008F057C08F770E94021746C089010E5FC7 -:103C30001F4FFE01849190E2980F983050F48770E6 -:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067 -:103C500015C00E943A1614C089010E5F1F4FFE0165 -:103C6000849190E2980F983068F48770FE2D01C01F -:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F -:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2 -:103C9000C491CC2341F08FE99FE00197F1F700C078 -:103CA0000000C150F6CFE90107C0FE01F490E90120 -:103CB000229602C00E943A168F2D882341F0EFE928 -:103CC000FFE03197F1F700C000008150F6CF9E0170 -:103CD00092CFDF91CF911F910F91FF90EF900895B8 -:103CE00008956093C0017093C1018093C2019093C5 -:103CF000C3010C94631A0F931F930091C00110919C -:103D0000C1012091C2013091C301062B172B282B32 -:103D1000392B0093C0011093C1012093C20130934D -:103D2000C3011F910F910C94631A0F931F9300917D -:103D3000C0011091C1012091C2013091C30106233D -:103D40001723282339230093C0011093C101209326 -:103D5000C2013093C3011F910F910C94631A0F930A -:103D60001F930091C0011091C1012091C2013091B7 -:103D7000C30106271727282739270093C00110936E -:103D8000C1012093C2013093C3011F910F910C9484 -:103D9000631A1092BC011092BD011092BE011092E4 -:103DA000BF010C94631A41E050E060E070E004C091 -:103DB000440F551F661F771F8A95D2F74093BC01A9 -:103DC0005093BD016093BE017093BF010C94631AC0 -:103DD00041E050E060E070E004C0440F551F661FF2 -:103DE000771F8A95D2F78091BC019091BD01A09177 -:103DF000BE01B091BF01842B952BA62BB72B8093CE -:103E0000BC019093BD01A093BE01B093BF010C947F -:103E1000631A41E050E060E070E004C0440F551FB9 -:103E2000661F771F8A95D2F74095509560957095DB -:103E30008091BC019091BD01A091BE01B091BF01E4 -:103E400084239523A623B7238093BC019093BD01BF -:103E5000A093BE01B093BF010C94631A41E050E0FF -:103E600060E070E004C0440F551F661F771F8A95FD -:103E7000D2F78091BC019091BD01A091BE01B0919B -:103E8000BF0184279527A627B7278093BC0190936D -:103E9000BD01A093BE01B093BF010C94631A0F93B0 -:103EA0001F930091BC011091BD012091BE01309182 -:103EB000BF01062B172B282B392B0093BC01109325 -:103EC000BD012093BE013093BF011F910F910C944F -:103ED000631A0F931F930091BC011091BD012091B3 -:103EE000BE013091BF0106231723282339230093F5 -:103EF000BC011093BD012093BE013093BF011F91FF -:103F00000F910C94631A0F931F930091BC011091B1 -:103F1000BD012091BE013091BF0106271727282738 -:103F200039270093BC011093BD012093BE0130934B -:103F3000BF011F910F910C94631A0895CF92DF92E5 -:103F4000EF92FF920F931F93CF93DF93EC01C090FA -:103F5000C001D090C101E090C201F090C3018091F6 -:103F6000BC019091BD01A091BE01B091BF01C82AD2 -:103F7000D92AEA2AFB2A0FE110E0B701A601002E98 -:103F800004C076956795579547950A94D2F740FFF8 -:103F900007C0BE01802F0E94B00B8130910539F41B -:103FA0000150110950F7BE0180E00E94B00BDF9173 -:103FB000CF911F910F91FF90EF90DF90CF900895D8 -:103FC00090910C01992361F190910D01992341F198 -:103FD000982F9695969596959F3088F4E0910E01CE -:103FE000F0910F01E90FF11D877021E030E001C071 -:103FF000220F8A95EAF78181822B8183089590911F -:10400000D70190FF2DC01F928F9387ED95E09F936E -:104010008F930E94EE070F900F900F900F900895CE -:1040200040910E0150910F0120E030E09FEFFA0126 -:10403000E20FF31F6281681799F09F3F19F4611135 -:1040400001C0922F2F5F3F4F2E30310581F79F3FE8 -:1040500039F0FA01E90FF11D97FDFA958283089571 -:10406000089590910C01992369F190910D01992384 -:1040700049F1982F9695969596959F3090F4E091FA -:104080000E01F0910F01E90FF11D877021E030E082 -:1040900001C0220F8A95EAF7209581812823218388 -:1040A00008959091D70190FF1FC01F928F9389EBC5 -:1040B00095E09F938F930E94EE070F900F900F90C3 -:1040C0000F90089540910E0150910F0120E030E0D3 -:1040D000FA01E20FF31F9281981301C012822F5F41 -:1040E0003F4F2E303105A1F7089581E090E0E09137 -:1040F0000E01F0910F01E80FF91F10820196803137 -:104100009105A9F708959091D601982B9093D60127 -:10411000089580959091D60198239093D6010895A3 -:104120001092D60108959091D501982B9093D501C6 -:10413000089580959091D50198239093D501089585 -:104140001092D50108958093C40108951092C4017E -:10415000089540910E0150910F0120E030E080E081 -:10416000FA01E20FF31F918191118F5F2F5F3F4F93 -:104170002F303105A9F70895E0910E01F0910F015C -:104180008091D6018083E0910E01F0910F01808132 -:104190009091D501892B80839091C401992361F07E -:1041A000E0910E01F0910F018081892B80830E94A4 -:1041B000A92081111092C40180910E0190910F01EC -:1041C0000C94BC1490933B0180933A010895CF92D4 -:1041D000DF92EF92FF920F931F936C01EE24FF2466 -:1041E000C114D104E104F10421F46B017C0180E0ED -:1041F00001C080E133272F2D1E2D0D2D0115110536 -:104200002105310519F0885F680179019701860160 -:10421000A4E03695279517950795AA95D1F701152E -:1042200011052105310519F08C5F680179019701AD -:104230008601F2E03695279517950795FA95D1F7FF -:10424000011511052105310519F08E5F680179010D -:10425000B701A6017695679557954795452B462B4F -:10426000472B09F08F5F1F910F91FF90EF90DF9028 -:10427000CF9008958295982F9C7C96959695837300 -:1042800044E0849F90011124922B892F8A7A86958D -:104290009575990F892B08951F93CF93DF931F92E4 -:1042A000CDB7DEB799830E943A21182F9981892FC3 -:1042B0000E943A21212F30E0322F2227A901482BDA -:1042C000CA010F90DF91CF911F9108958091F00165 -:1042D000843009F11092D80120E488E190E00FB613 -:1042E000F894A895809360000FBE2093600083B778 -:1042F000817F846083BF83B7816083BF7894889512 -:1043000083B78E7F83BF88E10FB6F89480936000F7 -:10431000109260000FBE089508950895CF930E94F3 -:104320008C210E9456090E948D21C0E08C2F0E9492 -:10433000810A811105C0CF5FCE30C1F780E001C096 -:1043400081E0CF9108950C94751A82E084BD93E0CA -:1043500095BD9AEF97BD80936E0008952FB7F8949E -:104360008091D9019091DA01A091DB01B091DC013B -:104370002FBF0895CF92DF92EF92FF920F931F937A -:104380002FB7F8944091D9015091DA016091DB0187 -:104390007091DC012FBF6A017B01EE24FF248C01A8 -:1043A00020E030E0C016D106E206F30610F44150DA -:1043B0005109481B590BCA011F910F91FF90EF90B3 -:1043C000DF90CF9008951F920F920FB60F92112495 -:1043D0008F939F93AF93BF938091D9019091DA010E -:1043E000A091DB01B091DC010196A11DB11D80936C -:1043F000D9019093DA01A093DB01B093DC01BF9166 -:10440000AF919F918F910F900FBE0F901F901895B5 -:104410000E94B711F8942FEF87EA91E6215080406F -:104420009040E1F700C0000087E090EBDC01809352 -:10443000F9019093FA01A093FB01B093FC012CE0E9 -:1044400088E190E00FB6F894A895809360000FBEC5 -:1044500020936000FFCFEF92FF920F931F93CF93B3 -:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E -:10447000082F10E098010C2E02C0359527950A945C -:10448000E2F720FD05C02196C630D10599F709C095 -:104490006C2F7F2D80E00E948E0BE812F4CF81E01C -:1044A00005C0F3948EE0F812DECF80E0DF91CF916B -:1044B0001F910F91FF90EF900895CF93C82F8CE23A -:1044C0000E942B22882321F08C2FCF910C942B2239 -:1044D00080E0CF910895CF930E94B823811102C04C -:1044E0000E949E238CEF95E00E945507C5E6C150BF -:1044F00049F00E9456098FE39CE90197F1F700C04B -:104500000000F5CF85EF95E00E94550789E20E94F3 -:104510005D22811111C18AE20E945D2281110E94F7 -:104520009E2385E00E945D2281110E9408220E9444 -:10453000C3238093D70187E00E945D22882399F1ED -:104540008BE10E945D22882351F09091D70191FB6D -:10455000882780F921E0822780FB91F922C08EE034 -:104560000E945D22882351F09091D70192FB882709 -:1045700080F921E0822780FB92F913C080E10E943C -:104580005D229091D701882341F093FB882780F921 -:1045900021E0822780FB93F904C0892F809580FB5E -:1045A00090F99093D7018091D7010E94C7230E9470 -:1045B000D5238093EA0180EE0E945D22882341F09A -:1045C0008091EA01982F909590FB80F98093EA0101 -:1045D00089E30E945D22882359F09091EA0191FBC2 -:1045E000882780F921E0822780FB91F99093EA01E6 -:1045F00082EE0E945D22882359F09091EA0192FB9D -:10460000882780F921E0822780FB92F99093EA01C4 -:1046100086EE0E945D22882359F09091EA0193FB77 -:10462000882780F921E0822780FB93F99093EA01A3 -:1046300083EE0E945D22882359F09091EA0194FB59 -:10464000882780F921E0822780FB94F99093EA0182 -:1046500085E30E945D22882359F09091EA0195FB41 -:10466000882780F921E0822780FB95F99093EA0161 -:1046700081E30E945D22882359F09091EA0196FB24 -:10468000882780F921E0822780FB96F99093EA0140 -:1046900081E10E945D22882359F09091EA0197FB05 -:1046A000882780F921E0822780FB97F99093EA011F -:1046B0008091EA010E94D9238091EA0187FB882733 -:1046C00080F980930D0187E20E945D22C82F8EE160 -:1046D0000E945D228111C2608FE10E945D228111E2 -:1046E000C46080E20E945D228111C86081E20E9464 -:1046F0005D228111C06182E20E945D228111C0624F -:1047000083E20E945D228111C06484E20E945D22E6 -:10471000882311F0C06802C0CC2329F08C2F0E949E -:10472000D0236C2F03C00E94CC23682F70E080E060 -:1047300090E0CF910C94711ECF9108956DEE7EEFB5 -:1047400080E090E00E94932D60E082E090E00E9483 -:10475000852D60E083E090E00E94852D60E084E09C -:1047600090E00E94852D60E085E090E00C94852D1E -:1047700080E090E00E947F2D21E08D3E9E4F09F069 -:1047800020E0822F089582E090E00C94772D682F2E -:1047900082E090E00C94852D83E090E00C94772DDE -:1047A000682F83E090E00C94852D84E090E00C94D9 -:1047B000772D682F84E090E00C94852D8091DF01A7 -:1047C00080FF0BC06091130185E0689FB001112448 -:1047D00075956795759567952AC081FF09C06091A9 -:1047E000130185E0689FB0011124759567951FC07E -:1047F00082FF07C06091130185E0689FB00111241A -:1048000016C04091E0014423C9F06091120146179F -:1048100088F72091130185E0289F90011124429F81 -:10482000C001439F900D112470E00E94492D603813 -:10483000710540F46115710539F002C065E070E062 -:10484000862F08958FE7089581E008958091DF0114 -:1048500080FF08C06091110170E0759567957595AE -:10486000679521C081FF06C06091110170E07595C8 -:10487000679519C082FF04C06091110170E010C0FB -:104880008091E0018823C1F0609110018617A0F7A4 -:1048900090911101989FC001112470E00E94492D50 -:1048A0006038710528F46115710521F0862F08958F -:1048B0008FE7089581E0089561E070E0F4CF803FD4 -:1048C00021F40E94DE23819504C0813F29F40E94D7 -:1048D000DE238093E3010895823F21F40E94DE23CA -:1048E000819504C0833F29F40E94DE238093E20176 -:1048F0000895893F19F40E94262405C08A3F31F4A7 -:104900000E94262481958093E40108958B3F21F431 -:104910000E942624819504C08C3F29F40E942624FD -:104920008093E5010895843F21F48091E101816045 -:1049300017C0853F21F48091E101826011C0863F5C -:1049400021F48091E10184600BC0873F21F48091C4 -:10495000E101886005C0883F31F48091E101806108 -:104960008093E10108958D3F21F48091DF01816002 -:104970000BC08E3F21F48091DF01826005C08F3F24 -:1049800029F48091DF0184608093DF010895803FE6 -:1049900039F48091E30187FF6CC01092E30169C094 -:1049A000813F29F48091E3011816BCF362C0909115 -:1049B000E201823F29F497FF5CC01092E20159C0E6 -:1049C000833F19F41916CCF354C0893F41F4809108 -:1049D000E40118160CF04DC01092E4014AC08A3F61 -:1049E00029F48091E40187FF44C0F6CF8B3F39F46E -:1049F0008091E50187FF3DC01092E5013AC08C3FF0 -:104A000029F48091E5011816BCF333C0843F21F4EA -:104A10008091E1018E7F17C0853F21F48091E101F3 -:104A20008D7F11C0863F21F48091E1018B7F0BC007 -:104A3000873F21F48091E101877F05C0883F31F4F1 -:104A40008091E1018F7E8093E10113C08D3F21F4BD -:104A50008091DF018E7F0BC08E3F21F48091DF01BA -:104A60008D7F05C08F3F29F48091DF018B7F80937C -:104A7000DF018091E20181110EC08091E30181117B -:104A80000AC08091E401811106C08091E501811185 -:104A900002C01092E00108958091D70183FF7EC08B -:104AA00088E396E00E9455078091E1011F928F9361 -:104AB00083E396E09F938F930E94EE0781E396E055 -:104AC0000E9455072091E201822F992787FD90953A -:104AD0009F932F938EE296E09F938F930E94EE0711 -:104AE0008CE296E00E9455072091E301822F9927DE -:104AF00087FD90959F932F9389E296E09F938F93E4 -:104B00000E94EE0787E296E00E9455072091E4019B -:104B1000822F992787FD90959F932F9384E296E0AB -:104B20009F938F930E94EE0782E296E00E945507C2 -:104B30002091E501822F992787FD90959F932F93D0 -:104B40008FE196E09F938F930E94EE078CE196E0B1 -:104B50000E9455078091E0011F928F9389E196E0B2 -:104B60009F938F930E94EE0787E196E00E9455077E -:104B70008091DF011F928F9384E196E09F938F9342 -:104B80000E94EE0781E196E00E9455078DB79EB71F -:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C -:104BA0000E9401150E94AE219093DE018093DD01E9 -:104BB00008951F93CF93DF938091DD019091DE01E3 -:104BC0000E94BA214091E001442321F02091140178 -:104BD00030E006C0209115015AE0259F9001112474 -:104BE0008217930708F482C08091E2011091E301DB -:104BF000D091E401C091E501811107C0111105C0F8 -:104C0000D11103C0CC2309F471C04F3F19F04F5F9D -:104C10004093E001181624F40E94DE238093E20101 -:104C20008091E20187FF05C00E94DE238195809379 -:104C3000E201111624F40E94DE238093E3018091A7 -:104C4000E30187FF05C00E94DE2381958093E30185 -:104C50006091E201662339F11091E301112319F10A -:104C6000772767FD7095872F972F0E944E2C23E39F -:104C700033E343E35FE30E94B22C0E941B2C60935A -:104C8000E201612F772767FD7095872F972F0E948C -:104C90004E2C23E333E343E35FE30E94B22C0E94F4 -:104CA0001B2C6093E3011D1624F40E94262480939C -:104CB000E4018091E40187FF05C00E9426248195CC -:104CC0008093E4011C1624F40E9426248093E501BD -:104CD0008091E50187FF05C00E942624819580937D -:104CE000E501DF91CF911F910C944C25DF91CF917D -:104CF0001F910895E1EEF1E085E0DF011D928A95B4 -:104D0000E9F71092E0011092DF0108958BE598E039 -:104D10000E9455071F9281E08F931F9285E08F9329 -:104D20008DE098E09F938F930E94EE070F900F9075 -:104D30000F900F900F900F9008958330E9F128F4B1 -:104D4000813061F0823009F10895853009F462C044 -:104D500008F449C0863009F474C008952091150103 -:104D6000862F90E0820F911D8F3F910520F4620FF6 -:104D70006093150103C08FEF809315018091150199 -:104D80001F928F9386E497E072C020911401862FC2 -:104D900090E0820F911D8F3F910520F4620F609388 -:104DA000140103C08FEF80931401809114011F92AE -:104DB0008F9384E397E05BC020911301862F90E0EE -:104DC000820F911D8F3F910520F4620F60931301B4 -:104DD00003C08FEF80931301809113011F928F9373 -:104DE00081E297E044C020911201862F90E0820F6B -:104DF000911D8F3F910520F4620F6093120103C053 -:104E00008FEF80931201809112011F928F938CE09B -:104E100097E02DC020911101862F90E0820F911D07 -:104E20008F3F910520F4620F6093110103C08FEF53 -:104E300080931101809111011F928F9383EF96E06F -:104E400016C020911001862F90E0820F911D8F3F98 -:104E5000910520F4620F6093100103C08FEF8093DF -:104E60001001809110011F928F9388ED96E09F931F -:104E70008F930E94EE070F900F900F900F90089560 -:104E8000833081F128F4813059F08230D1F00895D7 -:104E9000853009F449C0B8F1863009F456C0089548 -:104EA00080911501681720F4861B8093150102C0BC -:104EB00010921501809115011F928F9389EC96E055 -:104EC00054C080911401681720F4861B809314014C -:104ED00002C010921401809114011F928F9387EBEE -:104EE00096E043C080911301681720F4861B8093DD -:104EF000130102C010921301809113011F928F932E -:104F000084EA96E032C080911201681720F4861B73 -:104F10008093120102C010921201809112011F921F -:104F20008F938FE896E021C080911101681720F4DB -:104F3000861B8093110102C0109211018091110112 -:104F40001F928F9386E796E010C08091100168173A -:104F500020F4861B8093100102C0109210018091F2 -:104F600010011F928F938BE596E09F938F930E9481 -:104F7000EE070F900F900F900F900895CF93C82FCA -:104F80001F928F9320E639E03F932F930E94EE0704 -:104F900061E070E080E090E004C0660F771F881F3A -:104FA000991FCA95D2F70E94711E0F900F900F9013 -:104FB0000F90CF910C94751ACF938D3109F465C081 -:104FC000B0F58E3009F4CBC100F5873009F49BC1F0 -:104FD000A8F4863009F06AC28091D701817F8E7F64 -:104FE0008093D70185E699E00E94550787EA9DE006 -:104FF0000E94550781E08093E70180C1883009F461 -:105000004FC08B3009F47CC151C2863109F4EDC127 -:1050100038F4803109F4B6C1813109F42DC246C299 -:10502000893109F4CBC18B3109F486C13FC2853384 -:1050300009F434C248F4873209F430C208F430C2AB -:10504000893209F42BC232C2833438F48A3308F02F -:1050500029C2883309F454C129C2833409F41EC219 -:10506000883409F023C20E94751A86E99DE00E94E7 -:1050700055079FEF23ED80E3915020408040E1F7FA -:1050800000C000000E94082239C186EB9DE00E940A -:1050900055070E94D52B0E94B0140E94EE0C2EC121 -:1050A0008BEA9DE00E94550786E79BE00E9455072A -:1050B0000E94CC231F928F9383E79BE09F938F9353 -:1050C0000E94EE0781E79BE00E9455070E94C323E0 -:1050D000C82F8EE59BE00E9455071F92CF9329E5CC -:1050E0003BE03F932F930E94EE0787E59BE00E94F1 -:1050F00055078DE49BE00E9455078C2F81701F920D -:105100008F932AE43BE03F932F930E94EE0788E4BD -:105110009BE00E9455078EE39BE00E945507C1FB70 -:10512000882780F91F928F932BE33BE03F932F93C7 -:105130000E94EE0789E39BE00E9455078DE29BE009 -:105140000E945507C2FB882780F91F928F932AE29D -:105150003BE03F932F930E94EE0788E29BE00E9482 -:1051600055078FE19BE00E945507C3FBCC27C0F990 -:105170001F92CF938CE19BE09F938F930E94EE0749 -:105180008AE19BE00E9455070E94D523C82F86E044 -:105190009BE00E9455071F92CF9321E03BE03F9395 -:1051A0002F930E94EE078FEF9AE00E94550786EE3C -:1051B0009AE00E9455078C2F81701F928F9323EEE7 -:1051C0003AE03F932F930E94EE078DB79EB78096EB -:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D -:1051E00055078AEC9AE00E945507C1FB882780F991 -:1051F0001F928F9327EC3AE03F932F930E94EE0784 -:1052000085EC9AE00E94550783EB9AE00E945507CF -:10521000C2FB882780F91F928F9320EB3AE03F93DF -:105220002F930E94EE078EEA9AE00E9455078CE9C0 -:105230009AE00E945507C3FB882780F91F928F933D -:1052400029E93AE03F932F930E94EE0787E99AE01D -:105250000E9455078DE89AE00E945507C4FB8827F5 -:1052600080F91F928F932AE83AE03F932F930E9490 -:10527000EE0788E89AE00E94550786E79AE00E94C8 -:105280005507C5FB882780F91F928F9323E73AE0E3 -:105290003F932F930E94EE0781E79AE00E94550703 -:1052A00085E59AE00E945507C6FB882780F91F9282 -:1052B0008F9322E53AE03F932F930E94EE0780E51B -:1052C0009AE00E94550788E49AE00E945507C7FBC0 -:1052D000CC27C0F91F92CF9385E49AE09F938F93D8 -:1052E0000E94EE0783E49AE00E9455078DB79EB7AF -:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9 -:105300008CE899E058C08091D701C82FC17080FF08 -:1053100009C089E89DE00E9455078091D701817FEF -:105320008E7F44C08DE79DE00E9455078091D70194 -:1053300081608093D701E2CF8091D70181FBCC2798 -:10534000C0F991E0C927C0FB81F98093D701CC2334 -:1053500019F080E79DE025C082E69DE02CC0809199 -:10536000D70182FBCC27C0F991E0C927C0FB82F9A5 -:105370008093D701CC2319F083E59DE012C083E42C -:105380009DE019C08091D70183FBCC27C0F991E043 -:10539000C927C0FB83F98093D701CC2351F087E361 -:1053A0009DE00E9455078091D70181608093D701CD -:1053B00082C08AE29DE00E945507A0CF8BE19DE06C -:1053C0000E9455078FEE9CE00E94550782EB9CE0FF -:1053D0000E94550785E89CE00E94550781E49CE007 -:1053E0000E94550786E19CE0E6CF88E09CE00E94A1 -:1053F00055070E94B0141F928F938EEE9BE09F93EF -:105400008F930E94EE0780910C011F928F9387ED7E -:105410009BE09F938F930E94EE0780916E011F92F5 -:105420008F9384EC9BE09F938F930E94EE07809173 -:105430000D011F928F9381EB9BE09F938F930E94AE -:10544000EE078091D9019091DA01A091DB01B09132 -:10545000DC01BF93AF939F938F938DE99BE09F9364 -:105460008F930E94EE078DB79EB746960FB6F894BD -:105470009EBF0FBE8DBF42CF0E94751AC0910D0115 -:1054800081E0C827C0930D01CC2329F083E99BE07C -:105490000E94550710C088E89BE08DCF80E003C0D4 -:1054A0008D5101C089530E94BE2728CF86E89BE01A -:1054B0000E945507C0E08C2FCF91089580E0089599 -:1054C00080E00895CF93C82F8091E701813081F06B -:1054D00020F0823009F44CC042C1A0910E01B0917D -:1054E0000F018C91813169F0823209F03AC109C013 -:1054F000A0910E01B0910F018C91813111F0823297 -:1055000049F48C2F0E945E2A81112FC08C2F0E949B -:10551000DC272CC08C2F0E94602A811126C0C43148 -:10552000E1F070F4CB3081F0C031D1F40E948626D6 -:1055300088E599E00E94550782E08093E70115C055 -:10554000C93259F0C83361F485E699E00E945507E5 -:105550008CE599E00E94550708C01092E70103C14D -:1055600086E599E00E945507FEC081E08170FDC08C -:10557000C43220F5CE3108F0C0C0CB3099F1C8F468 -:10558000C73009F0D2C08AE08093150194E190936E -:10559000140193E0909313018093120188E08093AB -:1055A000110188E2809310018CEF97E00E9455076B -:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425 -:1055C000A9C028F4C93289F0C83361F0AEC0C13532 -:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3 -:1055E0006AE09EC00E948626A3C08091E6018823BF -:1055F00019F01092E6019CC089E098E00E945507DE -:1056000081E08093E701B1C083EE97E00E945507E7 -:1056100081ED97E00E945507809115011F928F93AD -:105620008EEC97E09F938F930E94EE078CEC97E0AF -:105630000E9455078AEB97E00E945507809114015C -:105640001F928F9387EB97E09F938F930E94EE07B3 -:1056500085EB97E00E94550786EA97E00E94550780 -:10566000809113011F928F9383EA97E09F938F930A -:105670000E94EE0781EA97E00E94550780E997E0D3 -:105680000E945507809112011F928F938DE897E039 -:105690009F938F930E94EE078BE897E00E94550737 -:1056A00086E797E00E945507809111011F928F9322 -:1056B00083E797E09F938F930E94EE0781E797E03F -:1056C0000E9455078AE597E00E94550780911001D6 -:1056D0001F928F9387E597E09F938F930E94EE0729 -:1056E00085E597E00E9455078DB79EB748960FB69F -:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3 -:10570000E15DFE4F80818093E60112C061E003C03D -:1057100061E006C06AE08091E6010E949D2608C013 -:105720008091E6010E94402703C08AEF97E013C0F2 -:105730008091E601882369F01F928F9384EF97E0B0 -:105740009F938F930E94EE070F900F900F900F90F2 -:1057500004C081EF97E00E94550781E006C01092D7 -:10576000E70180E002C080E001CFCF910895E1E839 -:10577000F0E08081886080838081816080838FB742 -:10578000F89493E09093890090ED909388008FBFF8 -:105790000895EFE6F0E08081826080830895EFE66F -:1057A000F0E080818D7F80830895EFE6F0E08081D6 -:1057B00092E08927808308951F920F920FB60F926F -:1057C00011242F933F934F935F936F937F938F9306 -:1057D0009F93AF93BF93EF93FF938091E8019091D4 -:1057E000E90101969093E9018093E801811103C0DA -:1057F00082E00E94EE0CE091E901E695E695F0E08A -:10580000EA53F24FE4918091E8018E1303C080E0E7 -:105810000E94EE0CFF91EF91BF91AF919F918F91FC -:105820007F916F915F914F913F912F910F900FBE9C -:105830000F901F90189504D06894B1118DC00895F1 -:1058400070D088F09F5790F0B92F9927B751A0F0EA -:10585000D1F0660F771F881F991F1AF0BA95C9F704 -:1058600012C0B13081F077D0B1E0089574C0672FD5 -:10587000782F8827B85F39F0B93FCCF386957795B4 -:105880006795B395D9F73EF490958095709561959D -:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8 -:1058A00090958095709561957F4F8F4F9F4F99236D -:1058B000A9F0F92F96E9BB279395F69587957795EB -:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB -:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003 -:1058E00096E911C0772321F09EE8872F762F05C017 -:1058F000662371F096E8862F70E060E02AF09A95B2 -:10590000660F771F881FDAF7880F9695879597F9A6 -:10591000089557FD9058440F551F59F05F3F71F09F -:105920004795880F97FB991F61F09F3F79F0879506 -:105930000895121613061406551FF2CF4695F1DF8F -:1059400008C0161617061806991FF1CF869571051F -:10595000610508940895E894BB2766277727CB0153 -:1059600097F908950BD078C069D028F06ED018F060 -:10597000952309F05AC05FC01124EECFCADFA0F30F -:10598000959FD1F3950F50E0551F629FF001729FD4 -:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3 -:1059A000649F6627B00DA11D661F829F2227B00D40 -:1059B000A11D621F739FB00DA11D621F839FA00DCB -:1059C000611D221F749F3327A00D611D231F849F1B -:1059D000600D211D822F762F6A2F11249F57504072 -:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D -:1059F000771F881F91505040A9F79E3F510570F0C6 -:105A000014C0AACF5F3FECF3983EDCF38695779500 -:105A10006795B795F795E7959F5FC1F7FE2B880FC0 -:105A2000911D9695879597F9089597F99F6780E856 -:105A300070E060E008959FEF80EC089500240A94E0 -:105A40001616170618060906089500240A94121659 -:105A50001306140605060895092E0394000C11F48C -:105A6000882352F0BB0F40F4BF2B11F460FF04C039 -:105A70006F5F7F4F8F4F9F4F0895991B79E004C050 -:105A8000991F961708F0961B881F7A95C9F780957D -:105A9000089597FB072E16F4009407D077FD09D0E0 -:105AA0000E94632D07FC05D03EF4909581959F4F91 -:105AB0000895709561957F4F0895EE0FFF1F059033 -:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A -:105AD000BB1FA617B70710F0A61BB70B881F991F8F -:105AE0005A95A9F780959095BC01CD010895F99933 -:105AF000FECF92BD81BDF89A992780B50895A8E19F -:105B0000B0E042E050E00C949A2D262FF999FECF98 -:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA -:105B20000FBE019608950E94852D272F0C94862D77 -:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D -:105B4000F89A319600B40D9241505040B8F708953C -:045B5000F894FFCFF7 -:105B54002002EF0CE00DBD0D890D560D0101C501AC -:105B640028080A03140A3F4D3620394605F904C3B0 -:105B740004A3046A04DD03F6030F042804480401A3 -:0A5B840002030405060708090000EB +:1033B0001F910F91FF90EF90DF90CF900C945A1FC8 +:1033C000263008F09DC0EACFFF20A1F0842F8F7136 +:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118 +:1033E0001F910F91FF90EF90DF90CF900C94141FDE +:1033F000FF2061F3842F8F7128960FB6F894DEBFFB +:103400000FBECDBFDF91CF911F910F91FF90EF9035 +:10341000DF90CF900C94351FFF2091F0842F8F7197 +:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7 +:103430001F910F91FF90EF90DF90CF900C94FF1EA3 +:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7 +:103450001F910F91FF90EF90DF90CF900C94F51E8D +:10346000FF20A1F0222309F4B1CF862F28960FB6B2 +:10347000F894DEBF0FBECDBFDF91CF911F910F91AA +:10348000FF90EF90DF90CF900C946616222309F402 +:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2 +:1034A000DF91CF911F910F91FF90EF90DF90CF9020 +:1034B0000C942E174F70C8010E94F70728960FB67C +:1034C000F894DEBF0FBECDBFDF91CF911F910F915A +:1034D000FF90EF90DF90CF900C941A1E4F70C801B0 +:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107 +:1034F0001F910F91FF90EF90DF90CF900C94B90B3C +:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6 +:103510001F910F91FF90EF90DF90CF9008950E9440 +:10352000CC200E94A1200E94E8200E94A6260E9492 +:10353000782580E090E00E94381580E090E00C94BF +:103540004E150E94BC200C948F1A0E94CA1F292F6E +:1035500022952F7030E02C3031054CF42A303105A3 +:103560006CF4225031092230310590F407C02C3020 +:10357000310551F02F30310539F00AC0803E10F08E +:10358000803F31F481E0089593FB882780F9089506 +:1035900080E00895CF93DF9300D000D01F92CDB785 +:1035A000DEB70F900F900F900F900F90DF91CF919B +:1035B0000895CF93DF9300D000D000D0CDB7DEB711 +:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128 +:1035D00008951F93CF93DF93C091840116E08091EB +:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8 +:1035F0001124EA57FE4F4081518162817381848199 +:1036000095810E94D91A2196C770E9CFDF91CF9199 +:103610001F9108954091B6015091B7016091B80192 +:103620007091B9018091BA019091BB010C94D91AA3 +:10363000CF938091BB0182958F7009F05FC080911C +:10364000B801882309F45AC020918401A091850112 +:103650006091B6017091B7018091B9019091BA0162 +:1036600031E06F3F09F030E0B32FC6E02A1709F4CC +:1036700045C0009721F07F3F21F44B2F03C041E06C +:1036800001C040E030E040FD35C0C29FF001C39F63 +:10369000F00D1124EA57FE4F418174132BC0408175 +:1036A000641328C04281411125C0438154814817C9 +:1036B000590710F441505109481B590B483C51051A +:1036C000C8F48091BB018F7080618093BB0186E05C +:1036D000829FF001839FF00D1124E557FE4F8081FA +:1036E0008F708061808386EB91E00E948B17CF9171 +:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0 +:10370000CF92DF92EF92FF920F931F93CF93DF93AD +:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50 +:103720008C0185E0F801DE011D9601900D928A95CD +:10373000E1F7D8014C9111965C91119712966C911A +:1037400012971396ED90FC9014977091B601E0914A +:10375000B7012091B9013091BA012115310531F03D +:10376000EF3F31F481E07F3F19F403C081E001C0F5 +:1037700080E0B82FB170CB2E80FD6CC1D090B80125 +:10378000DD2009F4F5C0F091BB01E216F30638F034 +:10379000C701821B930B883C910548F09BC0209584 +:1037A00030952E0D3F1D283C310508F093C08F2F1A +:1037B000807F09F052C0E51314C0741312C0D62ED6 +:1037C00061110FC0FF70F061F093BB010E940A1BF2 +:1037D00086EB91E00E948B178091BB01F8018583F5 +:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5 +:1037F00003C081E001C080E080FD03C081E0862736 +:1038000001C080E0F82FF170FF2E80FF1CC0809176 +:1038100084012091850136E0821709F428C190E0E7 +:10382000389FF001399FF00D1124EA57FE4F718146 +:10383000571306C07081471303C07281671303C01A +:1038400001968770E9CFD62E662309F436C18091A0 +:10385000BB0181608093BB0153C0E51308C07413A2 +:1038600006C0611104C0D8011596FC93AEC04D8707 +:103870005E878D859E856A8B0E94A51A6A8988233A +:1038800029F1D62E662311F12091BB01822F82955A +:103890008F7090E002970CF460C08091B601909117 +:1038A000B70198878F831986FB86EA862C87CE011D +:1038B000079651C0E51731F14D875E878D859E854E +:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4 +:1038D0008B17A4C08F2F807F69F77E2DF98AE88A25 +:1038E00089890E94CA1A86EB91E00E948B17E6EB49 +:1038F000F1E086E0DF011D928A95E9F70E940A1B3C +:10390000D12CDBC07413D8CF6111D6CFD801159656 +:10391000FC93C8010E948B17E6EBF1E086E0DF0123 +:103920001D928A95E9F7C9C0D62E662379F22091B7 +:10393000BB01822F82958F7090E0029774F0809186 +:10394000B6019091B7019A8389831B82FD82EC8234 +:103950002E83CE0101960E948B1786E0F801A6EB1C +:10396000B1E001900D928A95E1F70E94181B6FC09B +:10397000E216F30628F0C701821B930B9C0104C0DA +:10398000209530952E0D3F1D283C310508F052C082 +:10399000D62E662309F49ACFE5132CC074132AC0DF +:1039A0008091BB0180FD1DC0982F92959F70C9F03A +:1039B000D80115968C9315979F3039F09F5F92959B +:1039C000907F8F70892B15968C93C8010E948B175E +:1039D00086E0F801A6EBB1E001900D928A95E1F73F +:1039E00036C086E0F801A6EBB1E001900D928A9511 +:1039F000E1F763C04D875E878D859E850E94A51A7D +:103A0000882379F086E0F801A6EBB1E001900D92F1 +:103A10008A95E1F70E94181B0E940A1BDD24D394AB +:103A20004CC08091BB0181608093BB01C8010E94A2 +:103A30008B1743C07E2DF98AE88A89890E94CA1AA9 +:103A4000E6EBF1E086E0DF011D928A95E9F70E943E +:103A50000A1B33C0662309F439CF4D875E878D85F5 +:103A60009E850E94A51A882309F430CFCBCF4D87BD +:103A70005E878D859E850E94CA1F292F22952F70F3 +:103A800030E0223031052CF49F7041F0811106C0E6 +:103A90000CC0243031052CF49F7049F4805E8830CE +:103AA00020F0C8010E948B17CF2CDC2C06C0D80157 +:103AB00015969C91907F91F7F8CF8D2D62960FB659 +:103AC000F894DEBF0FBECDBFDF91CF911F910F9154 +:103AD000FF90EF90DF90CF9008951F93CF93DF93E7 +:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3 +:103AF0004F83588769877A878B879C87CE01079683 +:103B00000E94801B8823C1F02F8138858A859B8580 +:103B1000892B31F03F3F11F080E003C02F3FE1F7E8 +:103B200081E0811147C04F81588569857A858B85F1 +:103B30009C850E94D91A3EC086E0FE013796DE01C0 +:103B4000119601900D928A95E1F7FF81E8854A85EB +:103B50005B854115510531F0EF3F31F481E0FF3FC6 +:103B600019F403C081E001C080E080FD23C02091F2 +:103B7000850130E0C9010196877099276091840121 +:103B800070E086179707F1F1F983EA835D834C8330 +:103B900096E0929FD001939FB00D1124AA57BE4F7B +:103BA000FE01319601900D929A95E1F7809385017F +:103BB0000E94E91A16E0809184019091850189178D +:103BC00079F1189FC00111248A579E4F0E94801BD3 +:103BD000882331F1E09184011E9FF0011124EA57FE +:103BE000FE4F4081518162817381848195810E9461 +:103BF000D91A8091840190E001968770992780936B +:103C00008401D9CF0E94A11A1092850110928401DB +:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75 +:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB +:103C30001F910895EF92FF920F931F93CF93DF93FD +:103C40009C01009709F471C0F12CEE24E394E90182 +:103C50002196F9018491843740F4843008F056C0ED +:103C6000813081F0823021F160C0853709F449C08C +:103C7000C0F19CE7980F903708F057C08F770E94EB +:103C80002E1746C089010E5F1F4FFE01849190E2FE +:103C9000980F983050F48770FE2D01C0FF0F8A9561 +:103CA000EAF78F2F0E94BF2015C00E94661614C02D +:103CB00089010E5F1F4FFE01849190E2980F9830AA +:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9 +:103CD0000E94C5200E94E820E8011AC00E942E1709 +:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903 +:103CF0009FE00197F1F700C00000C150F6CFE90145 +:103D000007C0FE01F490E901229602C00E946616E7 +:103D10008F2D882341F0EFE9FFE03197F1F700C0E4 +:103D200000008150F6CF9E0192CFDF91CF911F917D +:103D30000F91FF90EF90089508956093C0017093E4 +:103D4000C1018093C2019093C3010C948F1A0F9309 +:103D50001F930091C0011091C1012091C2013091C7 +:103D6000C301062B172B282B392B0093C00110936E +:103D7000C1012093C2013093C3011F910F910C9494 +:103D80008F1A0F931F930091C0011091C1012091D0 +:103D9000C2013091C301062317232823392300933E +:103DA000C0011093C1012093C2013093C3011F9140 +:103DB0000F910C948F1A0F931F930091C0011091D3 +:103DC000C1012091C2013091C3010627172728277E +:103DD00039270093C0011093C1012093C201309391 +:103DE000C3011F910F910C948F1A1092BC01109275 +:103DF000BD011092BE011092BF010C948F1A41E0D8 +:103E000050E060E070E004C0440F551F661F771F4C +:103E10008A95D2F74093BC015093BD016093BE01D7 +:103E20007093BF010C948F1A41E050E060E070E0A5 +:103E300004C0440F551F661F771F8A95D2F78091E3 +:103E4000BC019091BD01A091BE01B091BF01842B36 +:103E5000952BA62BB72B8093BC019093BD01A0930B +:103E6000BE01B093BF010C948F1A41E050E060E0B6 +:103E700070E004C0440F551F661F771F8A95D2F764 +:103E800040955095609570958091BC019091BD01D1 +:103E9000A091BE01B091BF0184239523A623B7232F +:103EA0008093BC019093BD01A093BE01B093BF016C +:103EB0000C948F1A41E050E060E070E004C0440FC1 +:103EC000551F661F771F8A95D2F78091BC0190918C +:103ED000BD01A091BE01B091BF0184279527A627FF +:103EE000B7278093BC019093BD01A093BE01B0930E +:103EF000BF010C948F1A0F931F930091BC01109176 +:103F0000BD012091BE013091BF01062B172B282B3C +:103F1000392B0093BC011093BD012093BE01309357 +:103F2000BF011F910F910C948F1A0F931F93009153 +:103F3000BC011091BD012091BE013091BF0106234B +:103F40001723282339230093BC011093BD0120932C +:103F5000BE013093BF011F910F910C948F1A0F93E4 +:103F60001F930091BC011091BD012091BE013091C1 +:103F7000BF0106271727282739270093BC01109374 +:103F8000BD012093BE013093BF011F910F910C948E +:103F90008F1A0895CF92DF92EF92FF920F931F93A3 +:103FA000CF93DF93EC01C090C001D090C101E090AD +:103FB000C201F090C3018091BC019091BD01A0911C +:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113 +:103FD00010E0B701A601002E04C0769567955795AD +:103FE00047950A94D2F740FF07C0BE01802F0E9478 +:103FF000DC0B8130910539F40150110950F7BE01F5 +:1040000080E00E94DC0BDF91CF911F910F91FF9018 +:10401000EF90DF90CF90089590910C01992361F17A +:1040200090910D01992341F1982F9695969596952B +:104030009F3088F4E0910E01F0910F01E90FF11D1E +:10404000877021E030E001C0220F8A95EAF7818174 +:10405000822B818308959091D70190FF2DC01F92EC +:104060008F9387ED95E09F938F930E94EE070F90BB +:104070000F900F900F90089540910E0150910F01F5 +:1040800020E030E09FEFFA01E20FF31F6281681732 +:1040900099F09F3F19F4611101C0922F2F5F3F4F9C +:1040A0002E30310581F79F3F39F0FA01E90FF11DFC +:1040B00097FDFA9582830895089590910C019923B4 +:1040C00069F190910D01992349F1982F9695969554 +:1040D00096959F3090F4E0910E01F0910F01E90F59 +:1040E000F11D877021E030E001C0220F8A95EAF7C8 +:1040F000209581812823218308959091D70190FFF5 +:104100001FC01F928F9389EB95E09F938F930E941E +:10411000EE070F900F900F900F90089540910E01B1 +:1041200050910F0120E030E0FA01E20FF31F92817D +:10413000981301C012822F5F3F4F2E303105A1F737 +:10414000089581E090E0E0910E01F0910F01E80FF9 +:10415000F91F1082019680319105A9F70895909179 +:10416000D601982B9093D601089580959091D60111 +:1041700098239093D60108951092D60108959091B6 +:10418000D501982B9093D501089580959091D501F4 +:1041900098239093D50108951092D50108958093A6 +:1041A000C40108951092C401089540910E015091E8 +:1041B0000F0120E030E080E0FA01E20FF31F91816F +:1041C00091118F5F2F5F3F4F2F303105A9F7089571 +:1041D000E0910E01F0910F018091D6018083E09172 +:1041E0000E01F0910F0180819091D501892B808380 +:1041F0009091C401992361F0E0910E01F0910F01BB +:104200008081892B80830E94D52081111092C40166 +:1042100080910E0190910F010C94E81490933B0152 +:1042200080933A010895CF92DF92EF92FF920F931D +:104230001F936C01EE24FF24C114D104E104F104A6 +:1042400021F46B017C0180E001C080E133272F2D38 +:104250001E2D0D2D011511052105310519F0885F61 +:104260006801790197018601A4E036952795179595 +:104270000795AA95D1F7011511052105310519F00A +:104280008C5F6801790197018601F2E036952795E8 +:1042900017950795FA95D1F70115110521053105F7 +:1042A00019F08E5F68017901B701A60176956795CF +:1042B00057954795452B462B472B09F08F5F1F914C +:1042C0000F91FF90EF90DF90CF9008958295982FF7 +:1042D0009C7C96959695837344E0849F900111246D +:1042E000922B892F8A7A86959575990F892B089537 +:1042F0001F93CF93DF931F92CDB7DEB799830E94B0 +:104300006621182F9981892F0E946621212F30E084 +:10431000322F2227A901482BCA010F90DF91CF919C +:104320001F9108958091F001843009F11092D80115 +:1043300020E488E190E00FB6F894A895809360009F +:104340000FBE2093600083B7817F846083BF83B7F3 +:10435000816083BF7894889583B78E7F83BF88E11F +:104360000FB6F89480936000109260000FBE08951D +:1043700008950895CF930E94B8210E9482090E9457 +:10438000B921C0E08C2F0E94AD0A811105C0CF5F1A +:10439000CE30C1F780E001C081E0CF9108950C9448 +:1043A000A11A82E084BD93E095BD9AEF97BD8093FA +:1043B0006E0008952FB7F8948091D9019091DA0199 +:1043C000A091DB01B091DC012FBF0895CF92DF9265 +:1043D000EF92FF920F931F932FB7F8944091D9015A +:1043E0005091DA016091DB017091DC012FBF6A010D +:1043F0007B01EE24FF248C0120E030E0C016D106C2 +:10440000E206F30610F441505109481B590BCA014A +:104410001F910F91FF90EF90DF90CF9008951F9222 +:104420000F920FB60F9211248F939F93AF93BF9368 +:104430008091D9019091DA01A091DB01B091DC016A +:104440000196A11DB11D8093D9019093DA01A0932B +:10445000DB01B093DC01BF91AF919F918F910F90E1 +:104460000FBE0F901F9018950E94E311F8942FEF44 +:1044700087EA91E6215080409040E1F700C00000BB +:1044800087E090EBDC018093F9019093FA01A0930F +:10449000FB01B093FC012CE088E190E00FB6F894AA +:1044A000A895809360000FBE20936000FFCFEF922D +:1044B000FF920F931F93CF93DF93E82EF12C8F2D54 +:1044C0000E94AD0AC0E0D0E0082F10E098010C2E49 +:1044D00002C0359527950A94E2F720FD05C0219684 +:1044E000C630D10599F709C06C2F7F2D80E00E945E +:1044F000BA0BE812F4CF81E005C0F3948EE0F81215 +:10450000DECF80E0DF91CF911F910F91FF90EF9070 +:104510000895CF93C82F8CE20E945722882321F060 +:104520008C2FCF910C94572280E0CF910895CF9398 +:104530000E94E423811102C00E94CA238CEF95E0FF +:104540000E945507C5E6C15049F00E9482098FE3D9 +:104550009CE90197F1F700C00000F5CF85EF95E0E9 +:104560000E94550789E20E948922811111C18AE2C5 +:104570000E94892281110E94CA2385E00E9489221B +:1045800081110E9434220E94EF238093D70187E09B +:104590000E948922882399F18BE10E948922882335 +:1045A00051F09091D70191FB882780F921E0822773 +:1045B00080FB91F922C08EE00E948922882351F06D +:1045C0009091D70192FB882780F921E0822780FB18 +:1045D00092F913C080E10E9489229091D70188232B +:1045E00041F093FB882780F921E0822780FB93F933 +:1045F00004C0892F809580FB90F99093D70180911A +:10460000D7010E94F3230E9401248093EA0180EEE7 +:104610000E948922882341F08091EA01982F909589 +:1046200090FB80F98093EA0189E30E948922882324 +:1046300059F09091EA0191FB882780F921E08227C7 +:1046400080FB91F99093EA0182EE0E9489228823EF +:1046500059F09091EA0192FB882780F921E08227A6 +:1046600080FB92F99093EA0186EE0E9489228823CA +:1046700059F09091EA0193FB882780F921E0822785 +:1046800080FB93F99093EA0183EE0E9489228823AC +:1046900059F09091EA0194FB882780F921E0822764 +:1046A00080FB94F99093EA0185E30E948922882394 +:1046B00059F09091EA0195FB882780F921E0822743 +:1046C00080FB95F99093EA0181E30E948922882377 +:1046D00059F09091EA0196FB882780F921E0822722 +:1046E00080FB96F99093EA0181E10E948922882358 +:1046F00059F09091EA0197FB882780F921E0822701 +:1047000080FB97F99093EA018091EA010E940524C9 +:104710008091EA0187FB882780F980930D0187E269 +:104720000E948922C82F8EE10E9489228111C260D5 +:104730008FE10E9489228111C46080E20E94892257 +:104740008111C86081E20E9489228111C06182E2E8 +:104750000E9489228111C06283E20E948922811114 +:10476000C06484E20E948922882311F0C06802C0DC +:10477000CC2329F08C2F0E94FC236C2F03C00E94B5 +:10478000F823682F70E080E090E0CF910C949D1E9C +:10479000CF9108956DEE7EEF80E090E00E94BF2DF6 +:1047A00060E082E090E00E94B12D60E083E090E064 +:1047B0000E94B12D60E084E090E00E94B12D60E0A5 +:1047C00085E090E00C94B12D80E090E00E94AB2D4C +:1047D00021E08D3E9E4F09F020E0822F089582E077 +:1047E00090E00C94A32D682F82E090E00C94B12D02 +:1047F00083E090E00C94A32D682F83E090E00C946C +:10480000B12D84E090E00C94A32D682F84E090E01B +:104810000C94B12D8091DF0180FF0BC060911301DA +:1048200085E0689FB001112475956795759567952A +:104830002AC081FF09C06091130185E0689FB00123 +:104840001124759567951FC082FF07C06091130101 +:1048500085E0689FB001112416C04091E001442317 +:10486000C9F060911201461788F72091130185E085 +:10487000289F90011124429FC001439F900D112455 +:1048800070E00E94752D6038710540F46115710566 +:1048900039F002C065E070E0862F08958FE7089533 +:1048A00081E008958091DF0180FF08C060911101CF +:1048B00070E0759567957595679521C081FF06C075 +:1048C0006091110170E07595679519C082FF04C071 +:1048D0006091110170E010C08091E0018823C1F067 +:1048E000609110018617A0F790911101989FC00167 +:1048F000112470E00E94752D6038710528F461154F +:10490000710521F0862F08958FE7089581E00895BD +:1049100061E070E0F4CF803F21F40E940A24819589 +:1049200004C0813F29F40E940A248093E301089582 +:10493000823F21F40E940A24819504C0833F29F418 +:104940000E940A248093E2010895893F19F40E948D +:10495000522405C08A3F31F40E94522481958093ED +:10496000E40108958B3F21F40E945224819504C0F4 +:104970008C3F29F40E9452248093E5010895843FDE +:1049800021F48091E101816017C0853F21F480917D +:10499000E101826011C0863F21F48091E1018460D1 +:1049A0000BC0873F21F48091E101886005C0883FFA +:1049B00031F48091E10180618093E10108958D3FA0 +:1049C00021F48091DF0181600BC08E3F21F4809142 +:1049D000DF01826005C08F3F29F48091DF01846090 +:1049E0008093DF010895803F39F48091E30187FFD0 +:1049F0006CC01092E30169C0813F29F48091E3010A +:104A00001816BCF362C09091E201823F29F497FF2F +:104A10005CC01092E20159C0833F19F41916CCF31F +:104A200054C0893F41F48091E40118160CF04DC048 +:104A30001092E4014AC08A3F29F48091E40187FF83 +:104A400044C0F6CF8B3F39F48091E50187FF3DC02C +:104A50001092E5013AC08C3F29F48091E5011816C7 +:104A6000BCF333C0843F21F48091E1018E7F17C0F5 +:104A7000853F21F48091E1018D7F11C0863F21F4B3 +:104A80008091E1018B7F0BC0873F21F48091E10190 +:104A9000877F05C0883F31F48091E1018F7E80934C +:104AA000E10113C08D3F21F48091DF018E7F0BC0A7 +:104AB0008E3F21F48091DF018D7F05C08F3F29F467 +:104AC0008091DF018B7F8093DF018091E201811172 +:104AD0000EC08091E30181110AC08091E40181112F +:104AE00006C08091E501811102C01092E001089595 +:104AF0008091D70183FF7EC088E396E00E9455072E +:104B00008091E1011F928F9383E396E09F938F93AF +:104B10000E94EE0781E396E00E9455072091E20192 +:104B2000822F992787FD90959F932F938EE296E091 +:104B30009F938F930E94EE078CE296E00E945507A8 +:104B40002091E301822F992787FD90959F932F93C2 +:104B500089E296E09F938F930E94EE0787E296E0AA +:104B60000E9455072091E401822F992787FD909597 +:104B70009F932F9384E296E09F938F930E94EE077A +:104B800082E296E00E9455072091E501822F992745 +:104B900087FD90959F932F938FE196E09F938F933E +:104BA0000E94EE078CE196E00E9455078091E0019B +:104BB0001F928F9389E196E09F938F930E94EE0757 +:104BC00087E196E00E9455078091DF011F928F9345 +:104BD00084E196E09F938F930E94EE0781E196E037 +:104BE0000E9455078DB79EB74C960FB6F8949EBF9E +:104BF0000FBE8DBF81EE91E00E942D150E94DA213B +:104C00009093DE018093DD0108951F93CF93DF938E +:104C10008091DD019091DE010E94E6214091E0014A +:104C2000442321F02091140130E006C020911501A9 +:104C30005AE0259F900111248217930708F482C03F +:104C40008091E2011091E301D091E401C091E5016E +:104C5000811107C0111105C0D11103C0CC2309F483 +:104C600071C04F3F19F04F5F4093E001181624F4D4 +:104C70000E940A248093E2018091E20187FF05C02F +:104C80000E940A2481958093E201111624F40E9467 +:104C90000A248093E3018091E30187FF05C00E940D +:104CA0000A2481958093E3016091E201662339F142 +:104CB0001091E301112319F1772767FD7095872F74 +:104CC000972F0E947A2C23E333E343E35FE30E94B0 +:104CD000DE2C0E94472C6093E201612F772767FD4D +:104CE0007095872F972F0E947A2C23E333E343E3B9 +:104CF0005FE30E94DE2C0E94472C6093E3011D16A7 +:104D000024F40E9452248093E4018091E40187FFFF +:104D100005C00E94522481958093E4011C1624F45E +:104D20000E9452248093E5018091E50187FF05C030 +:104D30000E94522481958093E501DF91CF911F91CC +:104D40000C947825DF91CF911F910895E1EEF1E069 +:104D500085E0DF011D928A95E9F71092E00110923B +:104D6000DF0108958BE598E00E9455071F9281E0CE +:104D70008F931F9285E08F938DE098E09F938F93A0 +:104D80000E94EE070F900F900F900F900F900F90D2 +:104D900008958330E9F128F4813061F0823009F11F +:104DA0000895853009F462C008F449C0863009F4DA +:104DB00074C0089520911501862F90E0820F911DF7 +:104DC0008F3F910520F4620F6093150103C08FEFB0 +:104DD00080931501809115011F928F9386E497E0CF +:104DE00072C020911401862F90E0820F911D8F3F99 +:104DF000910520F4620F6093140103C08FEF80933C +:104E00001401809114011F928F9384E397E05BC09B +:104E100020911301862F90E0820F911D8F3F910505 +:104E200020F4620F6093130103C08FEF809313018E +:104E3000809113011F928F9381E297E044C02091EB +:104E40001201862F90E0820F911D8F3F910520F473 +:104E5000620F6093120103C08FEF80931201809163 +:104E600012011F928F938CE097E02DC020911101C9 +:104E7000862F90E0820F911D8F3F910520F4620FE5 +:104E80006093110103C08FEF809311018091110194 +:104E90001F928F9383EF96E016C020911001862F0A +:104EA00090E0820F911D8F3F910520F4620F609377 +:104EB000100103C08FEF80931001809110011F92A9 +:104EC0008F9388ED96E09F938F930E94EE070F904B +:104ED0000F900F900F900895833081F128F4813066 +:104EE00059F08230D1F00895853009F449C0B8F105 +:104EF000863009F456C0089580911501681720F492 +:104F0000861B8093150102C0109215018091150136 +:104F10001F928F9389EC96E054C08091140168171A +:104F200020F4861B8093140102C01092140180911A +:104F300014011F928F9387EB96E043C08091130179 +:104F4000681720F4861B8093130102C0109213018E +:104F5000809113011F928F9384EA96E032C0809172 +:104F60001201681720F4861B8093120102C0109270 +:104F70001201809112011F928F938FE896E021C059 +:104F800080911101681720F4861B8093110102C0E3 +:104F900010921101809111011F928F9386E796E084 +:104FA00010C080911001681720F4861B80931001B7 +:104FB00002C010921001809110011F928F938BE517 +:104FC00096E09F938F930E94EE070F900F900F90A3 +:104FD0000F900895CF93C82F1F928F9320E639E04A +:104FE0003F932F930E94EE0761E070E080E090E035 +:104FF00004C0660F771F881F991FCA95D2F70E94B9 +:105000009D1E0F900F900F900F90CF910C94A11AAE +:10501000CF938D3109F465C0B0F58E3009F4CBC162 +:1050200000F5873009F49BC1A8F4863009F06AC204 +:105030008091D701817F8E7F8093D70185E699E0AB +:105040000E94550787EA9DE00E94550781E0809302 +:10505000E70180C1883009F44FC08B3009F47CC16E +:1050600051C2863109F4EDC138F4803109F4B6C17A +:10507000813109F42DC246C2893109F4CBC18B318B +:1050800009F486C13FC2853309F434C248F487323B +:1050900009F430C208F430C2893209F42BC232C29A +:1050A000833438F48A3308F029C2883309F454C1B0 +:1050B00029C2833409F41EC2883409F023C20E9435 +:1050C000A11A86E99DE00E9455079FEF23ED80E33A +:1050D000915020408040E1F700C000000E9434223F +:1050E00039C186EB9DE00E9455070E94012C0E9469 +:1050F000DC140E941A0D2EC18BEA9DE00E94550718 +:1051000086E79BE00E9455070E94F8231F928F9329 +:1051100083E79BE09F938F930E94EE0781E79BE0DC +:105120000E9455070E94EF23C82F8EE59BE00E9446 +:1051300055071F92CF9329E53BE03F932F930E94A1 +:10514000EE0787E59BE00E9455078DE49BE00E94F7 +:1051500055078C2F81701F928F932AE43BE03F9379 +:105160002F930E94EE0788E49BE00E9455078EE390 +:105170009BE00E945507C1FB882780F91F928F93FF +:105180002BE33BE03F932F930E94EE0789E39BE0E4 +:105190000E9455078DE29BE00E945507C2FB8827BD +:1051A00080F91F928F932AE23BE03F932F930E9456 +:1051B000EE0788E29BE00E9455078FE19BE00E948A +:1051C0005507C3FBCC27C0F91F92CF938CE19BE01E +:1051D0009F938F930E94EE078AE19BE00E94550700 +:1051E0000E940124C82F86E09BE00E9455071F9271 +:1051F000CF9321E03BE03F932F930E94EE078FEF88 +:105200009AE00E94550786EE9AE00E9455078C2F7F +:1052100081701F928F9323EE3AE03F932F930E9469 +:10522000EE078DB79EB780960FB6F8949EBF0FBE5F +:105230008DBF81EE9AE00E9455078AEC9AE00E94A9 +:105240005507C1FB882780F91F928F9327EC3AE01E +:105250003F932F930E94EE0785EC9AE00E9455073A +:1052600083EB9AE00E945507C2FB882780F91F92C2 +:105270008F9320EB3AE03F932F930E94EE078EEA44 +:105280009AE00E9455078CE99AE00E945507C3FBFB +:10529000882780F91F928F9329E93AE03F932F9353 +:1052A0000E94EE0787E99AE00E9455078DE89AE090 +:1052B0000E945507C4FB882780F91F928F932AE824 +:1052C0003AE03F932F930E94EE0788E89AE00E940D +:1052D000550786E79AE00E945507C5FB882780F9A5 +:1052E0001F928F9323E73AE03F932F930E94EE079C +:1052F00081E79AE00E94550785E59AE00E945507EC +:10530000C6FB882780F91F928F9322E53AE03F93EE +:105310002F930E94EE0780E59AE00E94550788E4EB +:105320009AE00E945507C7FBCC27C0F91F92CF9384 +:1053300085E49AE09F938F930E94EE0783E49AE0BE +:105340000E9455078DB79EB74C960FB6F8949EBF36 +:105350000FBE8DBFC1E0DBC08CE899E058C08091E2 +:10536000D701C82FC17080FF09C089E89DE00E9465 +:1053700055078091D701817F8E7F44C08DE79DE0E6 +:105380000E9455078091D70181608093D701E2CFB9 +:105390008091D70181FBCC27C0F991E0C927C0FBE0 +:1053A00081F98093D701CC2319F080E79DE025C0D7 +:1053B00082E69DE02CC08091D70182FBCC27C0F90A +:1053C00091E0C927C0FB82F98093D701CC2319F063 +:1053D00083E59DE012C083E49DE019C08091D70170 +:1053E00083FBCC27C0F991E0C927C0FB83F98093E8 +:1053F000D701CC2351F087E39DE00E9455078091AF +:10540000D70181608093D70182C08AE29DE00E942B +:105410005507A0CF8BE19DE00E9455078FEE9CE0E1 +:105420000E94550782EB9CE00E94550785E89CE0AE +:105430000E94550781E49CE00E94550786E19CE0AC +:10544000E6CF88E09CE00E9455070E94DC141F9282 +:105450008F938EEE9BE09F938F930E94EE07809137 +:105460000C011F928F9387ED9BE09F938F930E9477 +:10547000EE0780916E011F928F9384EC9BE09F93C7 +:105480008F930E94EE0780910D011F928F9381EB05 +:105490009BE09F938F930E94EE078091D90190919A +:1054A000DA01A091DB01B091DC01BF93AF939F9330 +:1054B0008F938DE99BE09F938F930E94EE078DB7AA +:1054C0009EB746960FB6F8949EBF0FBE8DBF42CFD3 +:1054D0000E94A11AC0910D0181E0C827C0930D015F +:1054E000CC2329F083E99BE00E94550710C088E88F +:1054F0009BE08DCF80E003C08D5101C089530E9495 +:10550000EA2728CF86E89BE00E945507C0E08C2F51 +:10551000CF91089580E0089580E00895CF93C82F3B +:105520008091E701813081F020F0823009F44CC095 +:1055300042C1A0910E01B0910F018C91813169F0AF +:10554000823209F03AC109C0A0910E01B0910F0159 +:105550008C91813111F0823249F48C2F0E948A2A79 +:1055600081112FC08C2F0E9408282CC08C2F0E94E4 +:105570008C2A811126C0C431E1F070F4CB3081F067 +:10558000C031D1F40E94B22688E599E00E94550707 +:1055900082E08093E70115C0C93259F0C83361F445 +:1055A00085E699E00E9455078CE599E00E94550731 +:1055B00008C01092E70103C186E599E00E945507F3 +:1055C000FEC081E08170FDC0C43220F5CE3108F00C +:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E +:1055E0008093150194E19093140193E0909313013B +:1055F0008093120188E08093110188E2809310016A +:105600008CEF97E00E945507BFC0C33149F1C43108 +:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D +:10562000C83361F0AEC0C13509F49EC0C23509F47B +:1056300099C0CE3409F0A5C06AE09EC00E94B2268F +:10564000A3C08091E601882319F01092E6019CC066 +:1056500089E098E00E94550781E08093E701B1C09E +:1056600083EE97E00E94550781ED97E00E94550771 +:10567000809115011F928F938EEC97E09F938F93EB +:105680000E94EE078CEC97E00E9455078AEB97E0AA +:105690000E945507809114011F928F9387EB97E02A +:1056A0009F938F930E94EE0785EB97E00E9455072A +:1056B00086EA97E00E945507809113011F928F930D +:1056C00083EA97E09F938F930E94EE0781EA97E029 +:1056D0000E94550780E997E00E94550780911201CA +:1056E0001F928F938DE897E09F938F930E94EE0710 +:1056F0008BE897E00E94550786E797E00E945507E0 +:10570000809111011F928F9383E797E09F938F936E +:105710000E94EE0781E797E00E9455078AE597E02F +:105720000E945507809110011F928F9387E597E0A3 +:105730009F938F930E94EE0785E597E00E9455079F +:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B +:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5 +:10576000E60112C061E003C061E006C06AE080911A +:10577000E6010E94C92608C08091E6010E946C27BC +:1057800003C08AEF97E013C08091E601882369F097 +:105790001F928F9384EF97E09F938F930E94EE0761 +:1057A0000F900F900F900F9004C081EF97E00E9430 +:1057B000550781E006C01092E70180E002C080E05A +:1057C00001CFCF910895E1E8F0E080818860808387 +:1057D0008081816080838FB7F89493E090938900F3 +:1057E00090ED909388008FBF0895EFE6F0E0808100 +:1057F000826080830895EFE6F0E080818D7F808372 +:105800000895EFE6F0E0808192E089278083089593 +:105810001F920F920FB60F9211242F933F934F9325 +:105820005F936F937F938F939F93AF93BF93EF9308 +:10583000FF938091E8019091E90101969093E9012D +:105840008093E801811103C082E00E941A0DE0916B +:10585000E901E695E695F0E0EA53F24FE491809194 +:10586000E8018E1303C080E00E941A0DFF91EF91B2 +:10587000BF91AF919F918F917F916F915F914F9168 +:105880003F912F910F900FBE0F901F90189504D04D +:105890006894B1118DC0089570D088F09F5790F032 +:1058A000B92F9927B751A0F0D1F0660F771F881F45 +:1058B000991F1AF0BA95C9F712C0B13081F077D0AC +:1058C000B1E0089574C0672F782F8827B85F39F04A +:1058D000B93FCCF3869577956795B395D9F73EF4A4 +:1058E00090958095709561957F4F8F4F9F4F08954C +:1058F000E89409C097FB3EF490958095709561956A +:105900007F4F8F4F9F4F9923A9F0F92F96E9BB271F +:105910009395F695879577956795B795F111F8CF9B +:10592000FAF4BB0F11F460FF1BC06F5F7F4F8F4F06 +:105930009F4F16C0882311F096E911C0772321F0FC +:105940009EE8872F762F05C0662371F096E8862F94 +:1059500070E060E02AF09A95660F771F881FDAF7EB +:10596000880F9695879597F9089557FD9058440F9D +:10597000551F59F05F3F71F04795880F97FB991FAE +:1059800061F09F3F79F0879508951216130614066B +:10599000551FF2CF4695F1DF08C0161617061806F8 +:1059A000991FF1CF86957105610508940895E894D3 +:1059B000BB2766277727CB0197F908950BD078C0CE +:1059C00069D028F06ED018F0952309F05AC05FC056 +:1059D0001124EECFCADFA0F3959FD1F3950F50E0CD +:1059E000551F629FF001729FBB27F00DB11D639F91 +:1059F000AA27F00DB11DAA1F649F6627B00DA11D37 +:105A0000661F829F2227B00DA11D621F739FB00DDC +:105A1000A11D621F839FA00D611D221F749F33274C +:105A2000A00D611D231F849F600D211D822F762FE5 +:105A30006A2F11249F5750408AF0E1F088234AF0E2 +:105A4000EE0FFF1FBB1F661F771F881F915050402E +:105A5000A9F79E3F510570F014C0AACF5F3FECF349 +:105A6000983EDCF3869577956795B795F795E7951A +:105A70009F5FC1F7FE2B880F911D9695879597F92B +:105A8000089597F99F6780E870E060E008959FEFC0 +:105A900080EC089500240A941616170618060906C5 +:105AA000089500240A941216130614060506089594 +:105AB000092E0394000C11F4882352F0BB0F40F41C +:105AC000BF2B11F460FF04C06F5F7F4F8F4F9F4F5C +:105AD0000895991B79E004C0991F961708F0961B4A +:105AE000881F7A95C9F78095089597FB072E16F4BD +:105AF000009407D077FD09D00E948F2D07FC05D0B8 +:105B00003EF4909581959F4F0895709561957F4FD4 +:105B10000895EE0FFF1F0590F491E02D0994AA1B44 +:105B2000BB1B51E107C0AA1FBB1FA617B70710F088 +:105B3000A61BB70B881F991F5A95A9F780959095BA +:105B4000BC01CD010895F999FECF92BD81BDF89AAF +:105B5000992780B50895A8E1B0E042E050E00C94A8 +:105B6000C62D262FF999FECF1FBA92BD81BD20BD4B +:105B70000FB6F894FA9AF99A0FBE019608950E940A +:105B8000B12D272F0C94B22DDC01CB01FC01F9992A +:105B9000FECF06C0F2BDE1BDF89A319600B40D9279 +:0C5BA00041505040B8F70895F894FFCF32 +:105BAC0020021B0D0C0EE90DB50D820D0101C50176 +:105BBC0028080A03140A3F4D3620394605F904C358 +:105BCC0004A3046A04DD03F6030F0428044804014B +:0A5BDC000203040506070809000093 :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx.png b/keyboard/ergodox_ez/keymaps/keymap_default_osx.png deleted file mode 100644 index f8f6eb9a72..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default_osx.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 0a0ae75fcb..91f2c33f31 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -1,6 +1,3 @@ -// 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" @@ -18,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | ß | + * | 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 | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -28,28 +25,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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: 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |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; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png index c16436f2c3..1682c7b6d7 100644 Binary files a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png differ diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile new file mode 100644 index 0000000000..8bd44100b7 --- /dev/null +++ b/keyboard/hhkb_qmk/Makefile @@ -0,0 +1,149 @@ +#---------------------------------------------------------------------------- +# 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 = hhkb_qmk + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = hhkb_qmk.c \ + matrix.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 + +# as per original hasu settings +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 +CUSTOM_MATRIX = yes # Custom matrix file for the HHKB +# 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) + +debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION +debug-on: all + +debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT +debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) +debug-off: all + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md new file mode 100644 index 0000000000..606025c411 --- /dev/null +++ b/keyboard/hhkb_qmk/README.md @@ -0,0 +1,180 @@ +hhkb_qmk keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +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: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### 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_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +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 `keymap_.c` 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|] +``` +Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/config.h b/keyboard/hhkb_qmk/config.h new file mode 100644 index 0000000000..ee66e44571 --- /dev/null +++ b/keyboard/hhkb_qmk/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xCAFE +#define DEVICE_VER 0x0104 +#define MANUFACTURER q.m.k +#define PRODUCT HHKB mod +#define DESCRIPTION q.m.k keyboard firmware for HHKB + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define TAPPING_TERM 200 + +/* 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)) \ +) + +/* + * 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/hhkb_qmk/hhkb_avr.h b/keyboard/hhkb_qmk/hhkb_avr.h new file mode 100644 index 0000000000..7ea6322c73 --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_avr.h @@ -0,0 +1,167 @@ +#ifndef HHKB_AVR_H +#define HHKB_AVR_H + +#include +#include +#include +#include +#include + + +// Timer resolution check +#if (1000000/TIMER_RAW_FREQ > 20) +# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." +#endif + + +/* + * HHKB Matrix I/O + * + * row: HC4051[A,B,C] selects scan row0-7 + * row-ext: [En0,En1] row extention for JP + * col: LS145[A,B,C,D] selects scan col0-7 and enable(D) + * key: on: 0/off: 1 + * prev: hysteresis control: assert(1) when previous key state is on + */ + + +#if defined(__AVR_ATmega32U4__) +/* + * For TMK HHKB alt controller(ATMega32U4) + * + * row: PB0-2 + * col: PB3-5,6 + * key: PD7(pull-uped) + * prev: PB7 + * power: PD4(L:off/H:on) + * row-ext: PC6,7 for HHKB JP(active low) + */ +static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } +static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } +static inline bool KEY_STATE(void) { return (PIND & (1<<7)); } +static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } +static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } +#ifdef HHKB_POWER_SAVING +static inline void KEY_POWER_ON(void) { + DDRB = 0xFF; PORTB = 0x40; // change pins output + DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on + /* Without this wait you will miss or get false key events. */ + _delay_ms(5); // wait for powering up +} +static inline void KEY_POWER_OFF(void) { + /* input with pull-up consumes less than without it when pin is open. */ + DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up + DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off +} +static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } +#else +static inline void KEY_POWER_ON(void) {} +static inline void KEY_POWER_OFF(void) {} +static inline bool KEY_POWER_STATE(void) { return true; } +#endif +static inline void KEY_INIT(void) +{ + /* row,col,prev: output */ + DDRB = 0xFF; + PORTB = 0x40; // unable + /* key: input with pull-up */ + DDRD &= ~0x80; + PORTD |= 0x80; +#ifdef HHKB_JP + /* row extention for HHKB JP */ + DDRC |= (1<<6|1<<7); + PORTC |= (1<<6|1<<7); +#endif + KEY_UNABLE(); + KEY_PREV_OFF(); + + KEY_POWER_OFF(); +} +static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) +{ + PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); +#ifdef HHKB_JP + if ((ROW) & 0x08) PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<6); + else PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<7); +#endif +} + + +#elif defined(__AVR_AT90USB1286__) +/* + * For Teensy++(AT90USB1286) + * + * HHKB pro HHKB pro2 + * row: PB0-2 (6-8) (5-7) + * col: PB3-5,6 (9-12) (8-11) + * key: PE6(pull-uped) (4) (3) + * prev: PE7 (5) (4) + * + * TODO: convert into 'staitc inline' function + */ +#define KEY_INIT() do { \ + DDRB |= 0x7F; \ + DDRE |= (1<<7); \ + DDRE &= ~(1<<6); \ + PORTE |= (1<<6); \ +} while (0) +#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \ + (((COL) & 0x07)<<3) | \ + ((ROW) & 0x07)) +#define KEY_ENABLE() (PORTB &= ~(1<<6)) +#define KEY_UNABLE() (PORTB |= (1<<6)) +#define KEY_STATE() (PINE & (1<<6)) +#define KEY_PREV_ON() (PORTE |= (1<<7)) +#define KEY_PREV_OFF() (PORTE &= ~(1<<7)) +#define KEY_POWER_ON() +#define KEY_POWER_OFF() +#define KEY_POWER_STATE() true + + +#else +# error "define code for matrix scan" +#endif + + +#if 0 +// For ATMega328P with V-USB +// +// #elif defined(__AVR_ATmega328P__) +// Ports for V-USB +// key: PB0(pull-uped) +// prev: PB1 +// row: PB2-4 +// col: PC0-2,3 +// power: PB5(Low:on/Hi-z:off) +#define KEY_INIT() do { \ + DDRB |= 0x3E; \ + DDRB &= ~(1<<0); \ + PORTB |= 1<<0; \ + DDRC |= 0x0F; \ + KEY_UNABLE(); \ + KEY_PREV_OFF(); \ +} while (0) +#define KEY_SELECT(ROW, COL) do { \ + PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \ + PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \ +} while (0) +#define KEY_ENABLE() (PORTC &= ~(1<<3)) +#define KEY_UNABLE() (PORTC |= (1<<3)) +#define KEY_STATE() (PINB & (1<<0)) +#define KEY_PREV_ON() (PORTB |= (1<<1)) +#define KEY_PREV_OFF() (PORTB &= ~(1<<1)) +// Power supply switching +#define KEY_POWER_ON() do { \ + KEY_INIT(); \ + PORTB &= ~(1<<5); \ + _delay_ms(1); \ +} while (0) +#define KEY_POWER_OFF() do { \ + DDRB &= ~0x3F; \ + PORTB &= ~0x3F; \ + DDRC &= ~0x0F; \ + PORTC &= ~0x0F; \ +} while (0) +#endif + +#endif diff --git a/keyboard/hhkb_qmk/hhkb_qmk.c b/keyboard/hhkb_qmk/hhkb_qmk.c new file mode 100644 index 0000000000..9c90e6eb44 --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_qmk.c @@ -0,0 +1,29 @@ +#include "hhkb_qmk.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)(); + } +}; + +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/hhkb_qmk/hhkb_qmk.h b/keyboard/hhkb_qmk/hhkb_qmk.h new file mode 100644 index 0000000000..f6bf20f43b --- /dev/null +++ b/keyboard/hhkb_qmk/hhkb_qmk.h @@ -0,0 +1,30 @@ +#ifndef HHKB_QMK_H +#define HHKB_QMK_H + +#include "matrix.h" +#include "keymap_common.h" +//#include "backlight.h" +#include + +#define KEYMAP( \ + K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ + K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ + K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ + K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ + K35, K36, K37, K57, K56) \ + \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ +} + +void * matrix_init_user(void); +void * matrix_scan_user(void); + +#endif diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/keymap_default.c new file mode 100644 index 0000000000..bcd8ead377 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/keymap_default.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + 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_ENT, \ + 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(HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + KC_PWR, 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_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, 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; +}; diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c new file mode 100644 index 0000000000..3256fda516 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c @@ -0,0 +1,208 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * lxol HHKB Layout + */ +#include "hhkb_qmk.h" + +#define BASE 0 +#define WIN 1 +#define HHKB 2 +#define RGUILEV 3 +#define LGUILEV 4 +#define RALTLEV 5 +#define LALTLEV 6 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [BASE] = KEYMAP( // layer 0 : default + + + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ + 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(HHKB), \ + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer 1: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |---+---+---+---+---| + | | | | | | + |---+---+---+---+---| + */ + + [HHKB] = KEYMAP( + KC_PWR, 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_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + /* Layer LGUI: All keys with RGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RGUILEV] = KEYMAP( // Right GUI layer by KC_L + + RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ + RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ + RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ + RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LGUI: All keys with LGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LGUILEV] = KEYMAP( // Right GUI layer by KC_L + + LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ + LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ + LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ + KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), + + /* Layer LALT: All keys with RALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RALTLEV] = KEYMAP( // Right ALT layer by KC_L + + RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ + RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ + RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ + RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LALT: All keys with LALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LALTLEV] = KEYMAP( // Right ALT layer by KC_L + + LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ + LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ + LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ + KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), + + + /* Layer WIN: Win layer + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + + |------+------+-------+------+------| + | LGui | LAlt | Space | RGui | Ralt | + |------+------+-------+------+------| + */ + + [WIN] = KEYMAP( // BASE level with swapped GUI/ALT + + + 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_BSLS, KC_GRV, \ + 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_BSPC, \ + KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ + 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(HHKB), \ + KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* +}; + +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; +}; diff --git a/keyboard/hhkb_qmk/matrix.c b/keyboard/hhkb_qmk/matrix.c new file mode 100644 index 0000000000..14fae0b82c --- /dev/null +++ b/keyboard/hhkb_qmk/matrix.c @@ -0,0 +1,196 @@ +/* +Copyright 2011 Jun Wako + +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 . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "timer.h" +#include "matrix.h" +#include "hhkb_avr.h" +#include +#include "suspend.h" +#include "lufa.h" + + +// matrix power saving +#define MATRIX_POWER_SAVE 10000 +static uint32_t matrix_last_modified = 0; + +// matrix state buffer(1:on, 0:off) +static matrix_row_t *matrix; +static matrix_row_t *matrix_prev; +static matrix_row_t _matrix0[MATRIX_ROWS]; +static matrix_row_t _matrix1[MATRIX_ROWS]; + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ +#ifdef DEBUG + debug_enable = true; + debug_keyboard = true; +#endif + + KEY_INIT(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; + matrix = _matrix0; + matrix_prev = _matrix1; +} + +uint8_t matrix_scan(void) +{ + uint8_t *tmp; + + tmp = matrix_prev; + matrix_prev = matrix; + matrix = tmp; + + // power on + if (!KEY_POWER_STATE()) KEY_POWER_ON(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + KEY_SELECT(row, col); + _delay_us(5); + + // Not sure this is needed. This just emulates HHKB controller's behaviour. + if (matrix_prev[row] & (1< 20/(1000000/TIMER_RAW_FREQ)) { + matrix[row] = matrix_prev[row]; + } + + _delay_us(5); + KEY_PREV_OFF(); + KEY_UNABLE(); + + // NOTE: KEY_STATE keep its state in 20us after KEY_ENABLE. + // This takes 25us or more to make sure KEY_STATE returns to idle state. +#ifdef HHKB_JP + // Looks like JP needs faster scan due to its twice larger matrix + // or it can drop keys in fast key typing + _delay_us(30); +#else + _delay_us(75); +#endif + } + if (matrix[row] ^ matrix_prev[row]) matrix_last_modified = timer_read32(); + } + // power off + if (KEY_POWER_STATE() && + (USB_DeviceState == DEVICE_STATE_Suspended || + USB_DeviceState == DEVICE_STATE_Unattached ) && + timer_elapsed32(matrix_last_modified) > MATRIX_POWER_SAVE) { + KEY_POWER_OFF(); + suspend_power_down(); + } + return 1; +} + +bool matrix_is_modified(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + if (matrix[i] != matrix_prev[i]) + return true; + } + return false; +} + +inline +bool matrix_has_ghost(void) +{ + return false; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1<