From 63656ea34f656ba04bf38d45f0af9dc82d55549b Mon Sep 17 00:00:00 2001 From: Nicholas Keene Date: Thu, 14 Apr 2016 21:49:32 -0500 Subject: The Ordinary Layout is the layout you are looking for. Come and see. --- keyboard/ergodox_ez/keymaps/ordinary/keymap.c | 405 ++-- .../ergodox_ez/keymaps/ordinary/ordinary-media.png | Bin 119139 -> 117975 bytes .../ergodox_ez/keymaps/ordinary/ordinary-media.txt | 10 +- keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex | 2137 ++++++++++---------- keyboard/ergodox_ez/keymaps/ordinary/readme.md | 15 +- 5 files changed, 1289 insertions(+), 1278 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c index 3a999f2665..15b2d72c35 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c +++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c @@ -2,29 +2,31 @@ #include "led.h" #include "debug.h" #include "action_layer.h" - -#define BASE 0 // default layer -#define LOCK 1 // layer lock keys -#define SYMB_MO 2 // symbols momentary layer -#define SYMB_TG 3 // symbols lock layer -#define SYMB_XX 4 // symbols exit layer -#define MDIA_MO 5 // media momentary layer -#define MDIA_TG 6 // media lock layer -#define MDIA_XX 7 // media exit layer -#define UNLOCK 8 // clear to base layer +#include "action_util.h" + +#define BASE 0 // default layer +#define LOCK 1 // shift-lock layer +#define SYMB_SH 2 // symbols shift layer +#define SYMB_LK 3 // symbols lock layer +#define SYMB_UN 4 // symbols unlock layer +#define MDIA_SH 5 // media shift layer +#define MDIA_LK 6 // media lock layer +#define MDIA_UN 7 // media unlock layer +#define UNLOCK 8 // clear to base layer /* - * Ordinary Ergodox EZ keyboard layout, v3 + * Ordinary Ergodox EZ keyboard layout, v3.1 * modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - * Details: http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html + * Details: readme.md + * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer +/* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | LOCK Grv | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK | + * | LOCK `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -32,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+-----------| * | LShift | Z | X | C | V | B | -Tab | | | N | M | , | . | / | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * |LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh |RCtrl | - * `----------------------------------' `----------------------------------' + * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. * | Home | End | | Left | Right| * ,------|------|------| |------+------+------. @@ -44,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = KEYMAP( // left hand - LT(LOCK, KC_GRV),KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC -,LT(MDIA_MO, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,MO(SYMB_MO) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) + LT(LOCK, KC_GRV),KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,LT(MDIA_SH, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,MO(SYMB_SH) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) ,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI - ,KC_HOME,KC_END - ,KC_PGUP - ,KC_BSPC,KC_DEL ,KC_PGDN + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN // right hand ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,LT(LOCK, KC_EQL) - ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,LT(MDIA_MO, KC_BSLS) - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,LT(SYMB_MO, KC_QUOT) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,LT(MDIA_SH, KC_BSLS) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,LT(SYMB_SH, KC_QUOT) ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT ,KC_RGUI,KC_RALT,ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL @@ -68,59 +70,59 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Layer Lock Keys * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media LOCK| | | | | | | | | | | | | | Media LOCK| - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * |Symbol LOCK| | | | | |------| |------| | | | | |Symbol LOCK| - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Caps LOCK| | | | | | | | | | | | | | Caps LOCK| - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' + * ,-------------------------------------------------------. ,-------------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------| + * | Media LOCK | | | | | | | | | | | | | | Media LOCK | + * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------| + * | Symbol LOCK | | | | | |------| |------| | | | | | Symbol LOCK | + * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------' + * | | | | | | | | | | | | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' */ [LOCK] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN3 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN2 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN3 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN2 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN3 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN2 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN3 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN2 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ), -/* Keymap 2: Symbol Momentary Layer +/* Keymap 2: Symbol Shift Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | + * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * | LShift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | RShift | * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' * | | | | | | | 0 | . | = | + | Entr | * `----------------------------------' `----------------------------------' @@ -132,11 +134,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Down | | PgDn | | | * `--------------------' `--------------------' */ -[SYMB_MO] = KEYMAP( +[SYMB_SH] = KEYMAP( // left hand KC_FN2 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS -,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,MO(SYMB_MO) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,MO(MDIA_SH) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(SYMB_SH) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV ,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LEFT ,KC_RGHT @@ -144,8 +146,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_SPC ,KC_ENT ,KC_DOWN // right hand ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) - ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_MO) + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_SH) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT ,KC_HOME ,KC_END @@ -156,13 +158,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 3: Symbol Lock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Lock | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | Lock | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * | LShift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | RShift | * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' * | | | | | | | 0 | . | = | + | Entr | * `----------------------------------' `----------------------------------' @@ -174,19 +176,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Down | | PgDn | | | * `--------------------' `--------------------' */ -[SYMB_TG] = KEYMAP( // layer 3 : return key for symbol lock layer +[SYMB_LK] = KEYMAP( // left hand - MO(SYMB_XX) ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS -,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,MO(UNLOCK) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV -,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_SPC ,KC_ENT ,KC_DOWN + MO(SYMB_UN) ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS +,MO(MDIA_SH) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(UNLOCK) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN // right hand - ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_XX) - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) + ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_UN) + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(UNLOCK) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT @@ -197,56 +199,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 4: Symbol Unlock Layer * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Unlock | | | | | | | | | | | | | | Unlock | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' + * ,------------------------------------------------------. ,------------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media LOCK | | | | | | | | | | | | | | Media LOCK | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | UNLOCK | | | | | |------| |------| | | | | | UNLOCK | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' */ -[SYMB_XX] = KEYMAP( +[SYMB_UN] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,TG(MDIA_TG) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS - // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TG(MDIA_TG) - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - ), - -/* Keymap 5: Media Momentary Layer + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,TG(MDIA_LK) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TG(MDIA_LK) + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* Keymap 5: Media Shift Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * | Media |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * | Symbol | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| Symbol | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * | LShift | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | * `----------------------------------' `----------------------------------' @@ -258,22 +260,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Home | |VolDn | | Pause| * `--------------------' `--------------------' */ -[MDIA_MO] = KEYMAP( +[MDIA_SH] = KEYMAP( // left hand - KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS -,MO(MDIA_MO) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U -,MO(SYMB_MO) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS -,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D + KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(MDIA_SH) ,KC_POWER,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_WH_U +,MO(SYMB_SH) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_NO ,KC_WH_D ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 ,KC_WSTP ,KC_WREF ,KC_WSCH - ,KC_WBAK ,KC_TRNS ,KC_WHOM + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand - ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 - ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_MO) - ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_MO) - ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 + ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_SH) + ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_SH) + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT + ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY @@ -282,13 +284,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 6: Media Lock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * | Media |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * | LShift | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | * `----------------------------------' `----------------------------------' @@ -300,22 +302,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Home | |VolDn | | Pause| * `--------------------' `--------------------' */ -[MDIA_TG] = KEYMAP( +[MDIA_LK] = KEYMAP( // left hand - MO(MDIA_XX) ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS -,MO(UNLOCK) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U -,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS -,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D + MO(MDIA_UN) ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(UNLOCK) ,KC_POWER,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_WH_U +,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_NO ,KC_WH_D ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_TRNS ,KC_WHOM + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand - ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_XX) + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_UN) ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(UNLOCK) ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_NO - ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT + ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY @@ -324,9 +326,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 7: Media Unlock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | | | + * | | Esc | | | | | | | | | | | | Bspc | | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Unlock | | | | | | | | | | | | | | Unlock | + * | UNLOCK | | | | | | | | | | | | | | UNLOCK | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| * | | | | | | |------| |------| | | | | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -342,34 +344,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | * `--------------------' `--------------------' */ -[MDIA_XX] = KEYMAP( +[MDIA_UN] = KEYMAP( // left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ), /* Keymap 8: Unlock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Unlock | | | | | | | | | | | | | | Unlock | + * | UNLOCK | | | | | | | | | | | | | | UNLOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | | | | | | | | | | | | | | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -389,22 +391,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [UNLOCK] = KEYMAP( // left hand - KC_FN1 ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + KC_FN1 ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS // right hand - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS @@ -413,9 +415,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_CLEAR(ON_PRESS) // FN1 - clear to base layer - ,[2] = ACTION_LAYER_INVERT(SYMB_TG, ON_PRESS) // FN2 - toggle to Symbols on press - ,[3] = ACTION_LAYER_INVERT(MDIA_TG, ON_PRESS) // FN3 - toggle to Media on press + [1] = ACTION_LAYER_CLEAR(ON_PRESS) // FN1 - clear to base layer + ,[2] = ACTION_LAYER_INVERT(SYMB_LK, ON_PRESS) // FN2 - toggle to Symbols on press + ,[3] = ACTION_LAYER_INVERT(MDIA_LK, ON_PRESS) // FN3 - toggle to Media on press }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -440,31 +442,34 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); + uint8_t layer = biton32(layer_state); - // do not change lights for locking and unlocking - if(layer == UNLOCK || layer == LOCK || layer == SYMB_XX || layer == MDIA_XX) { - return; + // shift or caps lock turns on red light + if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) || (host_keyboard_leds() & (1<\n\n\nBrowser","Search\n\n\nBrowser"], [{x:2},"Home\n\n\nBrowser"], [{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#cfc82b",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#b5ad04",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], [{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex index b726e5e92a..430d7f4a8d 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex @@ -1,17 +1,17 @@ :100000000C945F040C94A3040C94A3040C94A30418 :100010000C94A3040C94A3040C94A3040C94A304C4 -:100020000C94A3040C94A3040C94BC0D0C948E0E9D +:100020000C94A3040C94A3040C94C40D0C94960E8D :100030000C94A3040C94A3040C94A3040C94A304A4 -:100040000C94A3040C9439230C94A3040C94A304DF -:100050000C94A3040C94DB1C0C94A3040C94A30434 +:100040000C94A3040C9441230C94A3040C94A304D7 +:100050000C94A3040C94E31C0C94A3040C94A3042C :100060000C94A3040C94A3040C94A3040C94A30474 :100070000C94A3040C94A3040C94A3040C94A30464 :100080000C94A3040C94A3040C94A3040C94A30454 :100090000C94A3040C94A3040C94A3040C94A30444 -:1000A0000C94A3040C94A3040C94A304F30E150F56 -:1000B0000010150F0010570F7A0F0010CF0FE20F2E -:1000C000D612D61204130413461382138215821516 -:1000D0009A138215911491145C158215821570156E +:1000A0000C94A3040C94A3040C94A304FB0E1D0F46 +:1000B00008101D0F08105F0F820F0810D70FEA0FEE +:1000C000DE12DE120C130C134E138A138A158A15D6 +:1000D000A2138A159914991464158A158A1578152E :1000E000000000810889248935812B850252E100B6 :1000F000E00000001E00140004001D0000774E0008 :100100001F001A0016001B00007F4C002000080092 @@ -32,7 +32,7 @@ :1001F00001000100010001000000010001000100F8 :1002000001000100010001000100010001000100E6 :1002100001000100010001000100010001000100D6 -:100220000100010001000100010001000100C30004 +:100220002A00010001000100010001000100C300DB :10023000C200390001000000C20005520252E10074 :10024000010000003A001E022002220201005100BB :100250003B001F0221022302010028003C002F0264 @@ -63,29 +63,29 @@ :1003E0000000010000000100010001000100010007 :1003F00000000100010001000100010001000100F6 :1004000001000100010001000100010001000100E4 -:1004100001000100010001000100010001000100D4 +:1004100001000100010001002A00010001000100AB :100420000100010001000654C10039000100000074 :10043000C30005520252E100A8000000440066001B -:10044000A6000100AA00B50045000100F20001006D -:10045000A90001006800F000F100F100F400B6000E -:1004600069000100F3000100F500B4006A0001001A -:10047000010001000000B8000100F9000000FA00CE -:100480000000B9000100F9000000FA000000AC0013 -:100490006B004600530001000000AB006C004A00F6 +:10044000A6000000AA00B50045000000F200000070 +:10045000A90000006800F000F100F100F400B6000F +:1004600069000000F3000000F500B4006A0000001D +:10047000000000000000B8000000F9000000FA00D1 +:100480000000B9000000F9000000FA000000AC0014 +:100490006B004600530000000000AB006C004A00F7 :1004A00050004D004900A9006D005200510051005C -:1004B0004C00AE006E004B004F004E000100AD003E -:1004C0006F00B100B30001000100AA00C300055293 -:1004D0000252E50001000000075208520000E1004E -:1004E000A800000044006600A6000100AA00B500B4 -:1004F00045000100F2000100A90001006800F000C1 -:10050000F100F100F400B60069000100F300010001 -:10051000F500B4006A000100010001000000B8000D -:100520000100F9000000FA000000B9000100F90024 -:100530000000FA000000AC006B0046005300010010 +:1004B0004C00AE006E004B004F004E000000AD003F +:1004C0006F00B100B30000000000AA00C300055295 +:1004D0000252E50000000000075208520000E1004F +:1004E000A800000044006600A6000000AA00B500B5 +:1004F00045000000F2000000A90000006800F000C4 +:10050000F100F100F400B60069000000F300000003 +:10051000F500B4006A000000000000000000B80010 +:100520000000F9000000FA000000B9000000F90026 +:100530000000FA000000AC006B0046005300000011 :100540000000AB006C004A0050004D004900A900BB :100550006D005200510051004C00AE006E004B0087 -:100560004F004E000100AD006F00B100B30001006C -:100570000100AA00075208520000E5000100000037 +:100560004F004E000000AD006F00B100B30000006E +:100570000000AA00075208520000E5000000000039 :100580000100C10001003900010000002900010044 :100590000100010001000100010001000100010053 :1005A0000100010001000100010001000100010043 @@ -95,7 +95,7 @@ :1005E0000100010001000100000001000100010004 :1005F00001000100010001000100010001000100F3 :1006000001000100010001000100010001000100E2 -:100610000100010001000100010001000100C10012 +:100610002A00010001000100010001000100C100E9 :100620000100390001000000C100010001000100CB :10063000010000002900010001000100010001008B :1006400001000100010001000100010001000100A2 @@ -143,1047 +143,1048 @@ :1008E0008730904BA740B04BB9F41092EF011092B3 :1008F000F0011092F1011092F20114BE84B7877FCB :1009000084BF88E10FB6F894809360001092600075 -:100910000FBEE0E0FFE3099511E0A0E0B1E0E6EFF3 -:10092000F9E402C005900D92A433B107D9F721E094 +:100910000FBEE0E0FFE3099511E0A0E0B1E0E6E002 +:10092000FAE402C005900D92A433B107D9F721E093 :10093000A4E3B1E001C01D92AF3EB207E1F70E940F -:10094000020B0C94F9240C94000061110BC0FC0103 -:100950008281882321F085EE0E94631103C085EE19 -:100960000E942B1280E090E008950895CF9360914B +:100940000A0B0C9401250C94000061110BC0FC01F2 +:100950008281882321F085EE0E946B1103C085EE11 +:100960000E94331280E090E008950895CF93609143 :10097000B1017091B2018091B3019091B4010E94D4 -:10098000071CC82F8130F9F08430E9F089EF8C0F13 -:100990008230C8F056985E9825982D9826982E9803 -:1009A00027982F980E943B1081FF02C0259A2D9A0C -:1009B0008EEF8C0F823010F4269A2E9AC550C230DA -:1009C00010F4279A2F9ACF9108950C94B604569854 -:1009D0005E9825982D9826982E9827982F988FEF17 -:1009E00090E0909389008093880090938B0080938F -:1009F0008A0090938D0080938C00259A2D9A2FEF7A -:100A000080E792E0215080409040E1F700C0000074 -:100A1000269A2E9A2FEF80E792E021508040904056 -:100A2000E1F700C00000279A2F9A2FEF80E792E0AD -:100A3000215080409040E1F700C0000025982D989B -:100A40002FEF80E792E0215080409040E1F700C016 -:100A5000000026982E982FEF80E792E021508040EA -:100A60009040E1F700C0000027982F9856985E98B4 -:100A700025982D9826982E9827982F98089589EADA -:100A80008093800089E08093810024982C983F987F -:100A90008AB18F748AB96E98479A8BB1806B8BB983 -:100AA000769A0E94E7040C94B50480E280930001DA -:100AB0008091340181110EC00E94A40581E08093D1 -:100AC00034012FEF83ED90E3215080409040E1F717 -:100AD00000C0000080E40E94AA05809300018111FB -:100AE0002EC00E94D40580930001811128C00E946D -:100AF000D40580930001811122C08FE30E94D405A8 -:100B00008093000181111BC00E94CC0580E40E94EB -:100B1000AA0580930001811112C08CE00E94D405C7 -:100B20008093000181110BC00E94D40580930001C5 -:100B3000811105C08FE30E94D405809300010E94BB -:100B4000CC058091000108951092B9008AE080934D -:100B5000B800089594EA9093BC009091BC0097FF70 -:100B6000FCCF9091B900987F983021F0903111F02E -:100B700081E008958093BB0084E88093BC0080915D -:100B8000BC0087FFFCCF8091B900887F883111F0CD -:100B9000803471F780E0089584E98093BC008091EF -:100BA000BC0084FDFCCF08958093BB0084E8809353 -:100BB000BC008091BC0087FFFCCF9091B900987F6A -:100BC00081E0983209F480E0089584E88093BC00C5 -:100BD0008091BC0087FFFCCF8091BB00089580917D -:100BE0000001811115C080E40E94AA0580930001D4 -:100BF00081110CC082E10E94D40580930001811113 -:100C000005C08FEF0E94D405809300010E94CC059F -:100C100084B1807F84B985B1807F85B98AB1837FB3 -:100C20008AB98BB1837F8BB93E98469808950E940C -:100C30005505809300010E94EF0580B38C7080BB46 -:100C400081B3836F81BBE4E4F1E0A6E3B1E01192EC -:100C50001D9281E0E235F807D1F70C943F05BF9271 -:100C6000CF92DF92EF92FF920F931F93CF93DF9378 -:100C700080910001882379F0809135018F5F809306 -:100C80003501811108C00E94550580930001811132 -:100C900002C00E94E70406E311E0C0E0D0E0DD24DA -:100CA000D39482E0C82EEE24E394F12CC73000F5F3 -:100CB00080910001811162C080E40E94AA058093A6 -:100CC0000001811112C082E10E94D40580930001CD -:100CD00081110BC0C7010C2E01C0880F0A94EAF7DE -:100CE00080950E94D405809300010E94CC0546C0E7 -:100CF000CA30A1F028F4C83059F0C93061F005C0FD -:100D0000CC3089F070F0CD3089F0209A289810C04E -:100D1000219A29980DC0229A2A980AC0239A2B98C2 -:100D200007C0529A01C0539A5B9802C03E9A4698F7 -:100D3000E0EAEA95F1F78FB179995AC092E08170B3 -:100D40008D25892B7C9B02C090E001C094E0892B0B -:100D50007D9B02C090E001C098E0892B7E9B02C081 -:100D600090E001C090E1892B9FB19095991F992740 -:100D7000991F9295990F907E892B0FC08091000149 -:100D800081114BC080E40E94AA0580930001882352 -:100D900089F1B12C0E94CC058B2DF8019081981718 -:100DA00019F08083C09201010E94EF0521960F5F28 -:100DB0001F4FCE30D10509F079CF809101018823F2 -:100DC00071F1815080930101882339F08FE99FE010 -:100DD0000197F1F700C0000022C0A4E4B1E0E6E30F -:100DE000F1E081918D9391E0E434F907D1F717C0D8 -:100DF00090E0A5CF83E10E94D4058093000181118A -:100E0000C8CF81E40E94AA05809300018111C1CF5F -:100E10000E94E505B82EB094BDCF80E0BECF0E9401 -:100E2000E50481E0DF91CF911F910F91FF90EF904A -:100E3000DF90CF90BF900895E82FF0E0EC5BFE4F7D -:100E40008081089508958B3B910578F4883A910547 -:100E500040F5853A9105D0F48430910508F0B1C091 -:100E60008130910509F4ADC06BC0803E910508F456 -:100E700067C0883E910508F4A4C09C01205F310939 -:100E80002031310508F05CC090650895853A9105E0 -:100E900009F459C0863A910509F458C083E890E4F2 -:100EA0000895883A910509F454C0893A910509F4E6 -:100EB00053C08A3A910509F452C08B3A910509F45E -:100EC00051C08C3A910509F450C08D3A910509F44E -:100ED0004FC0803B910509F44EC08E3A910509F44C -:100EE0004DC08F3A910509F44CC0813B910509F43E -:100EF0004BC0823B910509F44AC0833B910509F43C -:100F000049C0843B910509F448C0853B910509F42B -:100F100047C0863B910509F446C0873B910509F41B -:100F200045C0883B910509F444C0893B910509F40B -:100F300043C08A3B910509F042C08AE296E40895D5 -:100F400080E090E0089581E890E4089582E890E4DC -:100F5000089582EE94E4089589EE94E408958AEE6B -:100F600094E4089585EB94E4089586EB94E4089561 -:100F700087EB94E408958CEC94E408958DEC94E46C -:100F8000089583E895E408958AE895E4089582E950 -:100F900095E4089584E995E4089581E296E408953E -:100FA00083E296E4089584E296E4089585E296E467 -:100FB000089586E296E4089587E296E4089580E035 -:100FC00094E40895089596E0799FF001112494E542 -:100FD000899FE00DF11D1124E60FF11DEE0FFF1F9B -:100FE000E851FF4F859194910895880F991F805A79 -:100FF0009040FC01859194910895880F991F80522B -:101000009F4FFC0185919491089526E0729FF00115 -:10101000112444E5849FE00DF11D1124E60FF11D1C -:10102000EE0FFF1FE851FF4F25913491C9019A95AA -:1010300081159F4110F4C9010895C901905281158D -:10104000904128F4C9019F700E94FD070895C901CD -:1010500090538115904120F4C9019927906C08950F -:10106000211580E5380769F40E94A5159FEF24E358 -:101070004CE0915020404040E1F700C000000C944B -:10108000001D213080E5380731F48091CD01816069 -:101090008093CD010895C90190558115904108F0C4 -:1010A00050C0832F99278F70992781309105D9F4EB -:1010B000A9014370552702C0880F991F4A95E2F78E -:1010C0009C68A90164E0440F551F6A95E1F7442725 -:1010D0005370842B952B73E0220F331F7A95E1F721 -:1010E000207633271DC08230910529F4922F88275E -:1010F000816F906A089583309105A9F4A901437026 -:10110000552781E090E002C0880F991F4A95E2F7C9 -:101110009C6843E0220F331F4A95E1F7207E377029 -:10112000822B932B08950497F1F4A901437055275E -:1011300081E090E002C0880F991F4A95E2F79A6813 -:10114000E8CFC90190578115904120F4C9019F70E3 -:1011500090620895C90190588115904120F4C90109 -:101160009F70906A0895203E3105E0F4203C3105DF -:1011700058F52133310509F470C048F4293231059E -:1011800009F464C02A32310509F46EC074C02933F1 -:101190003105F1F022383105D9F02533310509F454 -:1011A0004EC069C0233E310589F138F4203E310537 -:1011B000C1F0223E3105E1F05EC0263E310569F105 -:1011C000273E3105A9F157C0C9010E94F5070895CE -:1011D0008091E00180FD02C081FF4DC080EE90E073 -:1011E0004BC08091E00180FFF9CF89E390E044C0DB -:1011F0008091E00182FF0EC08091E00184FF03C076 -:1012000080E090E039C083EE90E036C08091E0014C -:1012100082FFF2CF82EE90E02FC08091E00183FF49 -:101220000BC08091E00184FDEBCF87EE90E024C0FD -:101230008091E00183FFF5CF86EE90E01DC08091A4 -:10124000E00185FF07C089E290E016C08091E001CF -:1012500085FFF9CF85E390E00FC08091E00186FF24 -:1012600007C08AE290E008C08091E00186FFF9CFD4 -:1012700081E390E001C0C9010E9423070895089509 -:101280000C943F09809162010895CF93DF9300D0C1 -:101290001F92CDB7DEB72091E601243019F523E087 -:1012A00029839B838A832093E9008FEF9091E80044 -:1012B000815095FD06C095ED9A95F1F700008111DA -:1012C000F5CF8091E80085FF0DC040E050E063E07D -:1012D00070E0CE0101960E94AF0B8091E8008E77FE -:1012E0008093E8000F900F900F90DF91CF910895B9 -:1012F000CF93DF9300D01F92CDB7DEB72091E601E8 -:10130000243021F522E029839B838A8383E0809324 -:10131000E9008FEF9091E800815095FD06C095EDB2 -:101320009A95F1F700008111F5CF8091E80085FFD3 -:101330000DC040E050E063E070E0CE0101960E94F5 -:10134000AF0B8091E8008E778093E8000F900F90AC -:101350000F90DF91CF9108952091E6012430F1F4B0 -:1013600022E02093E9002FEF3091E800215035FD75 -:1013700006C035ED3A95F1F700002111F5CF209127 -:10138000E80025FF0BC040E050E065E070E00E94FF -:10139000AF0B8091E8008E778093E8000895CF939B -:1013A000DF93EC018091E601843009F046C0909112 -:1013B0000C019923D9F090910D019923B9F08093F4 -:1013C000E9008FEF9091E800815095FD06C095E10E -:1013D0009A95F1F700008111F5CF8091E80085FF23 -:1013E0002CC040E050E060E170E017C081E08093E5 -:1013F000E9008FEF9091E800815095FD06C095EDD2 -:101400009A95F1F700008111F5CF8091E80085FFF2 -:1014100014C040E050E068E070E0CE010E94AF0BE5 -:101420008091E8008E778093E80080E1FE01A2E5DC -:10143000B1E001900D928A95E1F7DF91CF91089587 -:101440008091E501811109C00E94410D0E949E0D0D -:101450008091E20084608093E20008951092E5019B -:10146000089508950C9426230E94971C0E942C2313 -:101470000E943B100C94400942E061EC81E00E9424 -:10148000BB0C42E061EC82E00E94BB0C42E061ECEC -:1014900083E00E94BB0C42E161EC84E00C94BB0C45 -:1014A0008091E801833009F455C030F4813071F047 -:1014B000823009F48EC008958A3009F47AC08B30E6 -:1014C00009F460C0893009F09CC020C08091E70118 -:1014D000813A09F096C08091E800877F8093E80008 -:1014E0008091EB019091EC01892B21F060E080E08C -:1014F00090E003C060E182E591E070E00E94F80BAB -:101500008091E8008B778093E80008958091E7014F -:10151000813209F076C08091EB019091EC01009747 -:1015200019F0039709F06DC08091E800877F8093E0 -:10153000E8008091E80082FD05C08091E6018111FC -:10154000F8CF5FC08091F100809362018091E80044 -:101550008B7753C08091E701813A09F052C08091A6 -:10156000EB019091EC01892B09F04BC08091E800D0 -:10157000877F8093E8008091E80080FFFCCF809116 -:101580000C0136C08091E7018132D9F58091EB01E1 -:101590009091EC01892BA9F58091E800877F8093D9 -:1015A000E8000E94F00C8091E90180930C010C94FA -:1015B000A5158091E701813221F58091E800877FB0 -:1015C0008093E8000E94F00C8091EA01809363010F -:1015D00008958091E701813AA1F48091E800877F26 -:1015E0008093E8008091E80080FFFCCF8091630148 -:1015F0008093F1008091E8008E778093E8000C944E -:10160000F00C089584B7877F84BF88E10FB6F89403 -:1016100080936000109260000FBE90E080E80FB6EB -:10162000F89480936100909361000FBE0E948A102D -:101630000E94410D0E949E0D8091E2008460809383 -:10164000E20078940E9419100E948C1082E091E0D0 -:101650000E9436100E9414238091E601853069F4BF -:101660000E945A1C8091E4018823B1F30E94821CDD -:10167000882391F30E94990BEFCF0E949210ECCF38 -:10168000292F332723303105A9F06CF4213031059F -:1016900009F442C02230310509F043C08DE690E0E4 -:1016A00024E037E042C021323105C9F02232310551 -:1016B00019F137C099278130910541F082309105A9 -:1016C00041F0892B71F5E0E0F7E005C0E8EEF6E0C7 -:1016D00002C0E0EDF6E0849190E09F0126C0643006 -:1016E00000F5E62FF0E0EE0FFF1FEE5DFE4F2081CC -:1016F000318189E090E019C0643098F4E62FF0E081 -:10170000DF01AA0FBB1FA65EBE4F2D913C91EA5E82 -:10171000FE4F808190E009C082E190E021E737E050 -:1017200004C080E090E020E030E0FA0131832083C3 -:10173000089580E189BD82E189BD09B400FEFDCF35 -:101740008091D8008F7D8093D8008091E0008260E6 -:101750008093E0008091E00081FDFCCF0895CF925E -:10176000DF92EF92FF920F931F93CF93DF937C0151 -:101770008B01EA010E94110D811131C0209731F0D7 -:1017800088819981081B190BE80EF91EC12CD12CF8 -:101790000115110519F18091E80085FD14C08091B3 -:1017A000E8008E778093E800209741F08881998146 -:1017B0008C0D9D1D9983888385E011C00E94110DB9 -:1017C000882331F30CC0F70181917F018093F100F0 -:1017D00001501109FFEFCF1ADF0ADACF80E0DF9165 -:1017E000CF911F910F91FF90EF90DF90CF900895D0 -:1017F0002091ED013091EE012617370748F0611571 -:10180000710539F42091E8002E772093E80001C09B -:10181000B901FC0120E061157105B9F18091E60183 -:10182000882309F440C0853009F43FC08091E80066 -:1018300083FD3DC08091E80082FF06C08091E800F2 -:1018400082FF26C080E008958091E80080FFE3CF0A -:101850002091F3008091F20090E0922B61157105C8 -:1018600051F08830910538F421912093F1006150B6 -:1018700071090196F3CF21E0089709F020E08091EB -:10188000E8008E778093E800C6CF2111C7CFD6CF6E -:101890008091E601882339F0853039F08091E800A5 -:1018A00083FFCCCF04C082E0089583E0089581E0F7 -:1018B00008952091ED013091EE012617370748F089 -:1018C0006115710539F42091E8002E772093E80026 -:1018D00001C0B901FC0120E061157105C1F18091E1 -:1018E000E601882309F441C0853009F440C08091A5 -:1018F000E80083FD3EC08091E80082FF06C0809131 -:10190000E80082FF27C080E008958091E80080FF12 -:10191000E3CF2091F3008091F20090E0922B6115CB -:10192000710559F08830910540F424912093F1001D -:101930003196615071090196F2CF21E0089709F0C4 -:1019400020E08091E8008E778093E800C5CF2111D8 -:10195000C6CFD5CF8091E601882339F0853039F0A4 -:101960008091E80083FFCBCF04C082E0089583E03C -:10197000089581E00895982F973058F59093E900E5 -:10198000981739F07091EC002091ED005091F00023 -:1019900003C0242F762F50E021FF19C03091EB00B7 -:1019A0003E7F3093EB003091ED003D7F3093ED00B2 -:1019B0003091EB0031603093EB007093EC0020939A -:1019C000ED005093F0002091EE0027FF07C09F5FCD -:1019D000D3CF8F708093E90081E0089580E008956F -:1019E0008091E70187FD05C08091E80080FF0EC06F -:1019F00012C08091E80082FD05C08091E60181114E -:101A0000F8CF08958091E8008B7708C08091E601B7 -:101A10008111EACF08958091E8008E778093E800E5 -:101A200008958091E4009091E50045E62091EC0056 -:101A300020FF21C02091E80020FD21C02091E60177 -:101A4000222389F0253089F02091EB0025FD0FC07D -:101A50002091E4003091E5002817390739F341500F -:101A600041F0C901E3CF82E0089583E0089581E069 -:101A7000089584E008952091E80022FFDFCF80E000 -:101A800008950E94AF0D0E94B70DE0EEF0E0808156 -:101A900081608083E8EDF0E080818F77808319BCDE -:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 -:101AB0001092E50108950F931F93CF93DF930E9437 -:101AC000AF0D0E94B70DC8EDD0E088818F77888375 -:101AD00088818068888388818F7D888319BC109273 -:101AE000E6011092E2011092E4011092E30100EE8F -:101AF00010E0F80180818B7F8083888181608883FA -:101B000042E060E080E00E94BB0CE1EEF0E080810A -:101B10008E7F8083E2EEF0E080818160808380812F -:101B200088608083F80180818E7F808388818061D6 -:101B30008883DF91CF911F910F910895E8EDF0E038 -:101B400080818F7E8083E7EDF0E0808181608083FB -:101B500084E082BF81E08093E5010C945B0DE8EDA9 -:101B6000F0E080818E7F80831092E20008951092D1 -:101B7000DA001092E10008951F920F920FB60F92B3 -:101B800011242F933F934F935F936F937F938F9382 -:101B90009F93AF93BF93EF93FF938091E10082FFF8 -:101BA0000BC08091E20082FF07C08091E1008B7F33 -:101BB0008093E1000E9418108091DA0080FF1FC01E -:101BC0008091D80080FF1BC08091DA008E7F8093C7 -:101BD000DA008091D90080FF0DC080E189BD82E1EB -:101BE00089BD09B400FEFDCF81E08093E6010E942B -:101BF000200A05C019BC1092E6010E942E0A8091AD -:101C0000E10080FF19C08091E20080FF15C0809143 -:101C1000E2008E7F8093E2008091E20080618093F9 -:101C2000E2008091D80080628093D80019BC85E0E2 -:101C30008093E6010E94320A8091E10084FF30C067 -:101C40008091E20084FF2CC080E189BD82E189BDE2 -:101C500009B400FEFDCF8091D8008F7D8093D8001D -:101C60008091E1008F7E8093E1008091E2008F7E81 -:101C70008093E2008091E20081608093E200809195 -:101C8000E201882311F084E007C08091E30087FF20 -:101C900002C083E001C081E08093E6010E94340A23 -:101CA0008091E10083FF29C08091E20083FF25C07D -:101CB0008091E100877F8093E10082E08093E601DC -:101CC0001092E2018091E1008E7F8093E10080918B -:101CD000E2008E7F8093E2008091E2008061809339 -:101CE000E20042E060E080E00E94BB0C8091F000E6 -:101CF00088608093F0000E94310AFF91EF91BF91BC -:101D0000AF919F918F917F916F915F914F913F9193 -:101D10002F910F900FBE0F901F9018951F920F924A -:101D20000FB60F9211242F933F934F935F936F93AE -:101D30007F938F939F93AF93BF93CF93EF93FF9333 -:101D4000C091E900CF708091EC001092E900809181 -:101D5000F000877F8093F00078940E94CA0E109262 -:101D6000E9008091F00088608093F000C093E90062 -:101D7000FF91EF91CF91BF91AF919F918F917F9103 -:101D80006F915F914F913F912F910F900FBE0F90E8 -:101D90001F9018951F93CF93DF93CDB7DEB7AA9707 -:101DA0000FB6F894DEBF0FBECDBFE7EEF1E0809135 -:101DB000F100819321E0EF3EF207C9F70E94500A3B -:101DC0008091E80083FF1CC12091E7013091E80178 -:101DD000832F90E08A30910508F012C1FC01EA5A85 -:101DE000FF4F0C94AE24203881F0223809F008C14E -:101DF0008091EB018F708093E9008091EB0085FB6F -:101E0000882780F91092E90006C08091E301909143 -:101E1000E401911182609091E800977F9093E8002F -:101E20008093F1001092F100C5C0822F8D7F09F0E0 -:101E3000E7C0222319F0223061F0E2C08091E9016D -:101E4000813009F0DDC0333009F080E08093E40197 -:101E500028C08091E901811124C02091EB012F70ED -:101E600009F4CEC02093E9008091EB0080FF19C0F7 -:101E70008091EB00333011F4806211C08061809357 -:101E8000EB0081E090E0022E01C0880F0A94EAF78F -:101E90008093EA001092EA008091EB0088608093C2 -:101EA000EB001092E9008091E800877F86C0211145 -:101EB000A7C01091E9011F778091E3008078812B02 -:101EC0008093E3008091E800877F8093E8000E9480 -:101ED000F00C8091E80080FFFCCF8091E3008068E7 -:101EE0008093E300112311F083E001C082E080932E -:101EF000E60186C02058223008F082C08091E901B6 -:101F00009091EA018C3D23E0920779F583E08A8382 -:101F10008AE289834FB7F894DE01139620E03EE011 -:101F200051E2E32FF0E050935700E49120FF03C00B -:101F3000E295EF703F5FEF708E2F90E0EA3010F087 -:101F4000C79601C0C0968D939D932F5F243149F7AA -:101F50004FBF8091E800877F8093E8006AE270E0DD -:101F6000CE0101960E94F80B14C0AE014F5F5F4F87 -:101F70006091EB010E94400B009709F441C0209151 -:101F8000E800277F2093E800BC0189819A810E94A4 -:101F9000590C8091E8008B778093E80031C020389D -:101FA00079F58091E800877F8093E8008091E201D5 -:101FB0008093F1008091E8008E778093E8000E9482 -:101FC000F00C1EC021111CC09091E9019230C0F4A8 -:101FD0008091E800877F8093E8009093E2010E945F -:101FE000F00C8091E201811104C08091E30087FF31 -:101FF00002C084E001C081E08093E6010E943C0AB7 -:102000008091E80083FF0AC08091E800877F809379 -:10201000E8008091EB0080628093EB00AA960FB6F7 -:10202000F894DEBF0FBECDBFDF91CF911F91089511 -:102030000895CF938091E6018823B1F08091E90063 -:102040008F709091EC0090FF02C090E801C090E08A -:10205000C92FC82B1092E9008091E80083FD0E94EF -:10206000CA0ECF70C093E900CF9108959093690193 -:10207000809368010895E0916801F09169013097BB -:1020800021F00190F081E02D099480E00895E09125 -:102090006801F0916901309721F00280F381E02D11 -:1020A00009940895E0916801F0916901309721F059 -:1020B0000480F581E02D0994089520916601309106 -:1020C00067018217930771F090936701809366010F -:1020D000E0916801F0916901309721F00680F78165 -:1020E000E02D0994089520916401309165018217D3 -:1020F000930771F09093650180936401E09168010A -:10210000F0916901309721F00084F185E02D099468 -:10211000089508950C9489100E949D1C0E94170632 -:102120000C94631DCF92DF92EF92FF920F931F9357 -:10213000CF93DF93CDB7DEB72B970FB6F894DEBF02 -:102140000FBECDBF0E942F063BE6E32E31E0F32EFB -:1021500000E010E0C02E802F0E941C07F701D190F4 -:102160007F01D826B1F40F5F1F4F0E30110591F794 -:102170008FEF89838A831B820E94A61C8160782F3F -:102180009D838C8349815A816B818D810E94351199 -:1021900041C09091CD0191FF04C08B870E9422071E -:1021A0008B8520E030E04D2D50E0922FBA01022EB9 -:1021B00002C0759567950A94E2F760FF25C02E83EB -:1021C000CF82EE24E394F12C02C0EE0CFF1C9A9512 -:1021D000E2F790E08E219F2121E0892B09F420E095 -:1021E00028870E94A61C8160782F9A8789874E8154 -:1021F0005F8168858A850E943511F801E559FE4F97 -:1022000080818E25808306C02F5F3F4F26303105A9 -:1022100061F6A9CF0E94472010916A010E943B10ED -:102220001817A1F00E943B1080936A012B960FB6FD -:10223000F894DEBF0FBECDBFDF91CF911F910F91FC -:10224000FF90EF90DF90CF900C9440092B960FB643 -:10225000F894DEBF0FBECDBFDF91CF911F910F91DC -:10226000FF90EF90DF90CF900895CF93DF93CDB79D -:10227000DEB72B970FB6F894DEBF0FBECDBF4F83EE -:10228000588769877A878B87DE01119686E0FD0182 -:1022900011928A95E9F785E0FE01379601900D923B -:1022A0008A95E1F749815A816B817C818D819E817C -:1022B0000E9471182B960FB6F894DEBF0FBECDBFEB -:1022C000DF91CF910895CF93C82F882309F4C1C01F -:1022D000823859F40E943B1081FDBBC089E30E9403 -:1022E0000E1B0E94D81B89E30CC0833879F40E942E -:1022F0003B1080FDAEC083E50E940E1B0E94D81BE0 -:1023000083E50E944E1BCF910C94D81B843859F45E -:102310000E943B1082FD9DC087E40E940E1B0E941C -:10232000D81B87E4EECF8CEF8C0F813A48F48C2FCA -:102330000E947C2281118DC08C2F0E940E1BE3CF46 -:1023400080E28C0F883048F4C77081E001C0880FAC -:10235000CA95EAF70E948F1BD6CF8BE58C0F83308E -:1023600078F4C53A29F0C63A31F482E890E005C025 -:1023700081E890E002C083E890E0CF910C945D107A -:1023800088E58C0F833108F064C0C83A39F1C93A46 -:1023900041F1CA3A49F1CB3A51F1CC3A59F1CD3A2F -:1023A00061F1C03B69F1CE3A71F1CF3A79F1C13BAD -:1023B00081F1C23B89F1C33B91F1C43B99F1C53B2B -:1023C000A1F1C63BA9F1C73BB1F1C83BB9F1C93B8B -:1023D000C1F1CA3BC9F58AE292E038C082EE90E0D2 -:1023E00035C089EE90E032C08AEE90E02FC085EBD8 -:1023F00090E02CC086EB90E029C087EB90E026C0EF -:102400008CEC90E023C08DEC90E020C083E891E05C -:102410001DC08AE891E01AC082E991E017C084E902 -:1024200091E014C081E292E011C083E292E00EC01C -:1024300084E292E00BC085E292E008C086E292E07E -:1024400005C087E292E002C080E090E0CF910C945A -:102450007310CF910895882309F44BC0823859F442 -:102460000E943B1081FF45C089E30E940E1B0E9421 -:10247000D81B89E30CC0833871F40E943B1080FFA5 -:1024800038C083E50E940E1B0E94D81B83E50E9482 -:102490004E1B0C94D81B843859F40E943B1082FFC9 -:1024A00028C087E40E940E1B0E94D81B87E4EFCF50 -:1024B0009CEF980F913A58F390E2980F983050F4AF -:1024C000877091E001C0990F8A95EAF7892F0E94E1 -:1024D000951BDFCF9BE5980F933020F480E090E0D0 -:1024E0000C945D10885A833120F480E090E00C94C5 -:1024F00073100895882321F00E948F1B0C94D81B21 -:102500000895882321F00E94951B0C94D81B0895F0 -:10251000CF92DF92EF92FF920F931F93CF93DF93AF -:10252000CDB7DEB728970FB6F894DEBF0FBECDBF8C -:102530008C0185E0F801DE01119601900D928A95DB -:10254000E1F7F80140813181F280258122952F70D9 -:1025500083819481892B31F03F3F31F481E04F3FFB -:1025600019F403C081E001C080E080FDCBC2498343 -:102570003A8389819A812F830E94CC1A9E8388870F -:102580000E94CB1A0E949E192F814E816885FF20E0 -:1025900029F00E94AC1B68854E812F81E42FE295C3 -:1025A000EF70F0E0E05AFF4F0C94AE24842F807F50 -:1025B000142F1F70882311F01295107FFF2059F0FF -:1025C000112309F454C2812F68870E949F1B0E9427 -:1025D000D81B68854CC2862F0E942B12112309F448 -:1025E00091C2812F0E94A51B28960FB6F894DEBFDA -:1025F0000FBECDBFDF91CF911F910F91FF90EF9054 -:10260000DF90CF900C94D81B342F307F842F8F70A5 -:10261000303211F08295807F662319F0613019F114 -:102620002BC0FF20B1F0222309F493C1213009F01F -:1026300090C128960FB6F894DEBF0FBECDBFDF91D4 -:10264000CF911F910F91FF90EF90DF90CF900C945E -:10265000BF1B222319F0213009F454C28E830E943B -:10266000C21B8E8189C1FF2021F0223008F04AC2AE -:1026700070C1211147C280C1FF2021F0222309F43B -:1026800068C1F5C1222309F477C105C2242F26951C -:102690002695237030E02115310521F021303105D8 -:1026A000C9F030C2FF2021F0862F942F937002C012 -:1026B00080E090E028960FB6F894DEBF0FBECDBF45 -:1026C000DF91CF911F910F91FF90EF90DF90CF900E -:1026D0000C945D10FF2021F0862F942F937002C080 -:1026E00080E090E028960FB6F894DEBF0FBECDBF15 -:1026F000DF91CF911F910F91FF90EF90DF90CF90DE -:102700000C947310862FFF2019F00E944F1F02C0F7 -:102710000E94B71F28960FB6F894DEBF0FBECDBF3C -:10272000DF91CF911F910F91FF90EF90DF90CF90AD -:102730000C943C20842F837009F076C0F110E2C124 -:10274000262F229526952770220F220F862F8F7015 -:10275000C82ED12CE12CF12C022E04C0CC0CDD1C97 -:10276000EE1CFF1C0A94D2F764FF10C06FE070E00B -:1027700080E090E004C0660F771F881F991F2A959C -:10278000D2F7609570958095909503C060E070E0F9 -:10279000CB01242F269526952370422F50E04230FE -:1027A0005105D1F04330510559F16C297D298E290D -:1027B0009F294130510541F128960FB6F894DEBFAC -:1027C0000FBECDBFDF91CF911F910F91FF90EF9082 -:1027D000DF90CF900C94C3196C297D298E299F29F5 -:1027E00028960FB6F894DEBF0FBECDBFDF91CF9114 -:1027F0001F910F91FF90EF90DF90CF900C94DD1917 -:102800000E94C319C701B60128960FB6F894DEBF1F -:102810000FBECDBFDF91CF911F910F91FF90EF9031 -:10282000DF90CF900C94A919FF2019F0842F8170AC -:1028300001C08695882309F465C1262F2295269527 -:102840002770220F220F862F8F70C82ED12CE12CDB -:10285000F12C022E04C0CC0CDD1CEE1CFF1C0A94D3 -:10286000D2F764FF10C06FE070E080E090E004C039 -:10287000660F771F881F991F2A95D2F7609570956C -:102880008095909503C060E070E0CB01242F2695E1 -:1028900026952370422F50E042305105D1F043304D -:1028A000510559F16C297D298E299F294130510507 -:1028B00041F128960FB6F894DEBF0FBECDBFDF9171 -:1028C000CF911F910F91FF90EF90DF90CF900C94DC -:1028D000971A6C297D298E299F2928960FB6F8947E -:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 -:1028F000EF90DF90CF900C94B11A0E94971AC70105 -:10290000B60128960FB6F894DEBF0FBECDBFDF919B -:10291000CF911F910F91FF90EF90DF90CF900C948B -:102920007D1A603FC9F118F4603E50F49BC0623FCD -:1029300009F460C008F44AC0633F09F46FC092C054 -:10294000162F1F70842F8F71FF2099F00E94161A86 -:10295000812F28960FB6F894DEBF0FBECDBFDF9152 -:10296000CF911F910F91FF90EF90DF90CF900C943B -:102970007A120E94371A812F28960FB6F894DEBF7C -:102980000FBECDBFDF91CF911F910F91FF90EF90C0 -:10299000DF90CF900C948112FF20A1F02111B2C0E2 -:1029A000842F8F7128960FB6F894DEBF0FBECDBF6F -:1029B000DF91CF911F910F91FF90EF90DF90CF901B -:1029C0000C945C1A223008F09DC0EACFFF20A1F0E1 -:1029D000842F8F7128960FB6F894DEBF0FBECDBF3F -:1029E000DF91CF911F910F91FF90EF90DF90CF90EB -:1029F0000C94161AFF2061F3842F8F7128960FB65E -:102A0000F894DEBF0FBECDBFDF91CF911F910F9124 -:102A1000FF90EF90DF90CF900C94371AFF2091F049 -:102A2000842F8F7128960FB6F894DEBF0FBECDBFEE -:102A3000DF91CF911F910F91FF90EF90DF90CF909A -:102A40000C94011A28960FB6F894DEBF0FBECDBFC6 -:102A5000DF91CF911F910F91FF90EF90DF90CF907A -:102A60000C94F719FF20A1F0222309F4B1CF862F8F -:102A700028960FB6F894DEBF0FBECDBFDF91CF9181 -:102A80001F910F91FF90EF90DF90CF900C94631106 -:102A9000222309F4B1CF862F28960FB6F894DEBF13 -:102AA0000FBECDBFDF91CF911F910F91FF90EF909F -:102AB000DF90CF900C942B124F70C8010E94A50498 -:102AC00028960FB6F894DEBF0FBECDBFDF91CF9131 -:102AD0001F910F91FF90EF90DF90CF900C941E19F3 -:102AE0004F70C80128960FB6F894DEBF0FBECDBF59 -:102AF000DF91CF911F910F91FF90EF90DF90CF90DA -:102B00000C94E20728960FB6F894DEBF0FBECDBF37 -:102B1000DF91CF911F910F91FF90EF90DF90CF90B9 -:102B200008950E94AC1B0E94BC1B0E94811B0E9446 -:102B3000D81B0E94E8200E943C2080E090E00E9488 -:102B40005D1080E090E00C9473100E949C1B0C942C -:102B500091150E94CC1A292F22952F7030E02C302D -:102B600031054CF42A3031056CF422503109223001 -:102B7000310590F407C02C30310551F02F3031056C -:102B800039F00AC0803E10F0803F31F481E00895B2 -:102B900093FB882780F9089580E00895CF93DF9311 -:102BA00000D000D01F92CDB7DEB70F900F900F90DE -:102BB0000F900F90DF91CF910895CF93DF9300D0C6 -:102BC00000D000D0CDB7DEB726960FB6F894DEBFA2 -:102BD0000FBECDBFDF91CF9108951F93CF93DF93A9 -:102BE000C091790116E080917A01C81799F0D0E080 -:102BF0001C9FF0011D9FF00D1124E558FE4F4081F0 -:102C0000518162817381848195810E94DD152196B5 -:102C1000C770E9CFDF91CF911F9108954091AB012B -:102C20005091AC016091AD017091AE018091AF0106 -:102C30009091B0010C94DD15CF938091B0018295F5 -:102C40008F7009F05FC08091AD01882309F45AC0EC -:102C500020917901A0917A016091AB017091AC0152 -:102C60008091AE019091AF0131E06F3F09F030E00B -:102C7000B32FC6E02A1709F445C0009721F07F3F23 -:102C800021F44B2F03C041E001C040E030E040FDA3 -:102C900035C0C29FF001C39FF00D1124E558FE4FCF -:102CA000418174132BC04081641328C042814111BB -:102CB00025C0438154814817590710F441505109E8 -:102CC000481B590B483C5105C8F48091B0018F70E6 -:102CD00080618093B00186E0829FF001839FF00DB8 -:102CE0001124E058FE4F80818F70806180838BEAD1 -:102CF00091E00E948812CF910C94ED152F5F3F4F09 -:102D00002770B8CFCF910895CF92DF92EF92FF92C4 -:102D10000F931F93CF93DF93CDB7DEB762970FB6B4 -:102D2000F894DEBF0FBECDBF8C0185E0F801DE0157 -:102D30001D9601900D928A95E1F7D8014C9111965C -:102D40005C91119712966C9112971396ED90FC90EE -:102D500014977091AB01E091AC012091AE013091DC -:102D6000AF012115310531F0EF3F31F481E07F3FB4 -:102D700019F403C081E001C080E0B82FB170CB2E00 -:102D800080FD6CC1D090AD01DD2009F4F5C0F0915B -:102D9000B001E216F30638F0C701821B930B883CA2 -:102DA000910548F09BC0209530952E0D3F1D283C85 -:102DB000310508F093C08F2F807F09F052C0E513D2 -:102DC00014C0741312C0D62E61110FC0FF70F061D1 -:102DD000F093B0010E940E168BEA91E00E948812D7 -:102DE0008091B001F80185836CC1EF2831F05F3F1D -:102DF00031F481E04F3F19F403C081E001C080E06D -:102E000080FD03C081E0862701C080E0F82FF170CB -:102E1000FF2E80FF1CC08091790120917A0136E05D -:102E2000821709F428C190E0389FF001399FF00D16 -:102E30001124E558FE4F7181571306C07081471366 -:102E400003C07281671303C001968770E9CFD62E45 -:102E5000662309F436C18091B00181608093B0018E -:102E600053C0E51308C0741306C0611104C0D80133 -:102E70001596FC93AEC04D875E878D859E856A8BC7 -:102E80000E94A9156A89882329F1D62E662311F19B -:102E90002091B001822F82958F7090E002970CF400 -:102EA00060C08091AB019091AC0198878F831986A7 -:102EB000FB86EA862C87CE01079651C0E51731F1D3 -:102EC0004D875E878D859E856A8B0E94A9156A89CC -:102ED00081112EC0C8010E948812A4C08F2F807F4C -:102EE00069F77E2DF98AE88A89890E94CE158BEAD6 -:102EF00091E00E948812EBEAF1E086E0DF011D928A -:102F00008A95E9F70E940E16D12CDBC07413D8CF36 -:102F10006111D6CFD8011596FC93C8010E94881282 -:102F2000EBEAF1E086E0DF011D928A95E9F7C9C07E -:102F3000D62E662379F22091B001822F82958F7070 -:102F400090E0029774F08091AB019091AC019A836C -:102F500089831B82FD82EC822E83CE0101960E9422 -:102F6000881286E0F801ABEAB1E001900D928A95F3 -:102F7000E1F70E941C166FC0E216F30628F0C701A5 -:102F8000821B930B9C0104C0209530952E0D3F1D94 -:102F9000283C310508F052C0D62E662309F49ACF9A -:102FA000E5132CC074132AC08091B00180FD1DC0B0 -:102FB000982F92959F70C9F0D80115968C9315970C -:102FC0009F3039F09F5F9295907F8F70892B159677 -:102FD0008C93C8010E94881286E0F801ABEAB1E048 -:102FE00001900D928A95E1F736C086E0F801ABEAD0 -:102FF000B1E001900D928A95E1F763C04D875E873D -:103000008D859E850E94A915882379F086E0F801B8 -:10301000ABEAB1E001900D928A95E1F70E941C168F -:103020000E940E16DD24D3944CC08091B0018160C3 -:103030008093B001C8010E94881243C07E2DF98A96 -:10304000E88A89890E94CE15EBEAF1E086E0DF018B -:103050001D928A95E9F70E940E1633C0662309F483 -:1030600039CF4D875E878D859E850E94A91588235F -:1030700009F430CFCBCF4D875E878D859E850E942A -:10308000CC1A292F22952F7030E0223031052CF4F4 -:103090009F7041F0811106C00CC0243031052CF422 -:1030A0009F7049F4805E883020F0C8010E94881229 -:1030B000CF2CDC2C06C0D80115969C91907F91F7FF -:1030C000F8CF8D2D62960FB6F894DEBF0FBECDBF40 -:1030D000DF91CF911F910F91FF90EF90DF90CF90F4 -:1030E00008951F93CF93DF93CDB7DEB72C970FB61C -:1030F000F894DEBF0FBECDBF4F83588769877A87AC -:103100008B879C87CE0107960E9484168823C1F086 -:103110002F8138858A859B85892B31F03F3F11F0BF -:1031200080E003C02F3FE1F781E0811147C04F816C -:10313000588569857A858B859C850E94DD153EC002 -:1031400086E0FE013796DE01119601900D928A9578 -:10315000E1F7FF81E8854A855B854115510531F02E -:10316000EF3F31F481E0FF3F19F403C081E001C07B -:1031700080E080FD23C020917A0130E0C9010196F2 -:10318000877099276091790170E086179707F1F1B0 -:10319000F983EA835D834C8396E0929FD001939FED -:1031A000B00D1124A558BE4FFE01319601900D922D -:1031B0009A95E1F780937A010E94ED1516E08091CF -:1031C000790190917A01891779F1189FC001112432 -:1031D00085589E4F0E948416882331F1E091790131 -:1031E0001E9FF0011124E558FE4F408151816281FC -:1031F0007381848195810E94DD158091790190E031 -:1032000001968770992780937901D9CF0E94A515DF -:1032100010927A0110927901EBEAF1E086E0DF0189 -:103220001D928A95E9F7CACF2C960FB6F894DEBFA7 -:103230000FBECDBFDF91CF911F910895EF92FF9206 -:103240000F931F93CF93DF93FC01009709F46FC096 -:10325000F12CEE24E394EF0121968491843740F41D -:10326000843008F055C0813081F0823021F15FC098 -:10327000853709F447C0C0F19CE7980F903708F0F4 -:1032800056C08F770E942B1245C08F010E5F1F4FD3 -:10329000FE01849190E2980F983050F48770FE2DD3 -:1032A00001C0FF0F8A95EAF78F2F0E94AF1B15C050 -:1032B0000E94631114C08F010E5F1F4FFE018491A5 -:1032C00090E2980F983068F48770FE2D01C0FF0FD0 -:1032D0008A95EAF78F2F0E94B51B0E94D81BE80140 -:1032E00019C00E942B12FBCFCF010296FE01C491A0 -:1032F000CC2361F0EFE9FFE03197F1F700C0000067 -:10330000C150F6CFCF010296FE01F490EC0102C04D -:103310000E9463118F2D882341F0EFE9FFE0319780 -:10332000F1F700C000008150F6CFFE0194CFDF918D -:10333000CF911F910F91FF90EF90089508956093A2 -:10334000B5017093B6018093B7019093B8010C94C6 -:1033500091150F931F930091B5011091B601209123 -:10336000B7013091B801062B172B282B392B00936E -:10337000B5011093B6012093B7013093B8011F91A6 -:103380000F910C9491150F931F930091B50110911B -:10339000B6012091B7013091B801062317232823E5 -:1033A00039230093B5011093B6012093B7013093F0 -:1033B000B8011F910F910C9491150F931F930091D9 -:1033C000B5011091B6012091B7013091B8010627DF -:1033D0001727282739270093B5011093B6012093AA -:1033E000B7013093B8011F910F910C949115109271 -:1033F000B1011092B2011092B3011092B4010C9479 -:10340000911541E050E060E070E004C0440F551FAA -:10341000661F771F8A95D2F74093B1015093B2018E -:103420006093B3017093B4010C94911541E050E0A6 -:1034300060E070E004C0440F551F661F771F8A9537 -:10344000D2F78091B1019091B201A091B301B091F6 -:10345000B401842B952BA62BB72B8093B1019093AD -:10346000B201A093B301B093B4010C94911541E063 -:1034700050E060E070E004C0440F551F661F771FE6 -:103480008A95D2F740955095609570958091B101DD -:103490009091B201A091B301B091B401842395231E -:1034A000A623B7238093B1019093B201A093B301F7 -:1034B000B093B4010C94911541E050E060E070E0ED -:1034C00004C0440F551F661F771F8A95D2F780915D -:1034D000B1019091B201A091B301B091B4018427E0 -:1034E0009527A627B7278093B1019093B201A093A7 -:1034F000B301B093B4010C9491150F931F930091F5 -:10350000B1011091B2012091B3013091B401062BA9 -:10351000172B282B392B0093B1011093B201209364 -:10352000B3013093B4011F910F910C9491150F9337 -:103530001F930091B1011091B2012091B30130911C -:10354000B40106231723282339230093B1011093D4 -:10355000B2012093B3013093B4011F910F910C94E9 -:1035600091150F931F930091B1011091B201209119 -:10357000B3013091B4010627172728273927009374 -:10358000B1011093B2012093B3013093B4011F91A4 -:103590000F910C9491150895CF92DF92EF92FF92C4 -:1035A0000F931F93CF93DF93EC01C090B501D090A0 -:1035B000B601E090B701F090B8018091B10190910F -:1035C000B201A091B301B091B401C82AD92AEA2A64 -:1035D000FB2A0FE110E0B701A601002E04C076958A -:1035E0006795579547950A94D2F740FF07C0BE01EB -:1035F000802F0E9405088130910539F4015011098E -:1036000050F7BE0180E00E940508DF91CF911F9125 -:103610000F91FF90EF90DF90CF90089590910C0163 -:103620009923D9F090910D019923B9F0982F96958F -:10363000969596959F3088F5E0910E01F0910F01D7 -:10364000E90FF11D877021E030E001C0220F8A955B -:10365000EAF78181822B8183089540910E01509178 -:103660000F0120E030E09FEFFA01E20FF31F6281CB -:10367000681799F09F3F19F4611101C0922F2F5FD5 -:103680003F4F2E30310581F79F3F39F0FA01E90FA6 -:10369000F11D97FDFA9582830895089590910C018C -:1036A0009923E1F090910D019923C1F0982F9695FF -:1036B000969596959F3020F5E0910E01F0910F01BF -:1036C000E90FF11D877021E030E001C0220F8A95DB -:1036D000EAF72095818128232183089540910E01E6 -:1036E00050910F0120E030E0FA01E20FF31F9281C8 -:1036F000981301C012822F5F3F4F2E303105A1F782 -:10370000089581E090E0E0910E01F0910F01E80F43 -:10371000F91F1082019680319105A9F708959091C3 -:10372000CC01982B9093CC01089580959091CC0179 -:1037300098239093CC0108951092CC010895909114 -:10374000CB01982B9093CB01089580959091CB015C -:1037500098239093CB0108951092CB0108959091F6 -:10376000CA01982B9093CA01089580959091CA013F -:1037700098239093CA0108951092CA0108958093E6 -:10378000B90108951092B901089540910E01509128 -:103790000F0120E030E080E0FA01E20FF31F918199 -:1037A00091118F5F2F5F3F4F2F303105A9F708959B -:1037B000E0910E01F0910F018091CC018083E091A6 -:1037C0000E01F0910F0180819091CB01892B8083B4 -:1037D000E0910E01F0910F0180819091CA01892B37 -:1037E00080839091B901992361F0E0910E01F091ED -:1037F0000F018081892B80830E94C51B811110924B -:10380000B90180910E0190910F010C944710CF9255 -:10381000DF92EF92FF920F931F936C01EE24FF242F -:10382000C114D104E104F10421F46B017C0180E0B6 -:1038300001C080E133272F2D1E2D0D2D01151105FF -:103840002105310519F0885F68017901970186012A -:10385000A4E03695279517950795AA95D1F70115F8 -:1038600011052105310519F08C5F68017901970177 -:103870008601F2E03695279517950795FA95D1F7C9 -:10388000011511052105310519F08E5F68017901D7 -:10389000B701A6017695679557954795452B462B19 -:1038A000472B09F08F5F1F910F91FF90EF90DF90F2 -:1038B000CF9008958091E601843009F11092CE01F5 -:1038C00020E488E190E00FB6F894A895809360001A -:1038D0000FBE2093600083B7817F846083BF83B76E -:1038E000816083BF7894889583B78E7F83BF88E19A -:1038F0000FB6F89480936000109260000FBE089598 -:1039000008950895CF930E94801C0E942F060E9464 -:10391000811CC0E08C2F0E941C07811105C0CF5F65 -:10392000CE30C1F780E001C081E0CF9108950E94C0 -:10393000A5150E943B100C94400982E084BD93E0E1 -:1039400095BD9AEF97BD80936E0008952FB7F894B8 -:103950008091CF019091D001A091D101B091D2017D -:103960002FBF0895CF92DF92EF92FF920F931F9394 -:103970002FB7F8944091CF015091D0016091D101BF -:103980007091D2012FBF6A017B01EE24FF248C01CC -:1039900020E030E0C016D106E206F30610F44150F4 -:1039A0005109481B590BCA011F910F91FF90EF90CD -:1039B000DF90CF9008951F920F920FB60F921124AF -:1039C0008F939F93AF93BF938091CF019091D0013C -:1039D000A091D101B091D2010196A11DB11D80939A -:1039E000CF019093D001A093D101B093D201BF91A8 -:1039F000AF919F918F910F900FBE0F901F901895D0 -:103A00000E94410DF8942FEF87EA91E62150804003 -:103A10009040E1F700C0000087E090EBDC0180936C -:103A2000EF019093F001A093F101B093F2012CE02B -:103A300088E190E00FB6F894A895809360000FBEDF -:103A400020936000FFCFEF92FF920F931F93CF93CD -:103A5000DF93E82EF12C8F2D0E941C07C0E0D0E0F0 -:103A6000082F10E098010C2E02C0359527950A9476 -:103A7000E2F720FD05C02196C630D10599F709C0AF -:103A80006C2F7F2D80E00E94E307E812F4CF81E0E5 -:103A900005C0F3948EE0F812DECF80E0DF91CF9185 -:103AA0001F910F91FF90EF900895CF93C82F8CE254 -:103AB0000E94231D882321F08C2FCF910C94231D6D -:103AC00080E0CF910895CF930E94A81E811102C07B -:103AD0000E948E1EC5E6C15049F00E942F068FE35A -:103AE0009CE90197F1F700C00000F5CF89E20E9440 -:103AF000551D811111C18AE20E94551D81110E943C -:103B00008E1E85E00E94551D81110E94001D0E949D -:103B1000B31E8093CD0187E00E94551D882399F143 -:103B20008BE10E94551D882351F09091CD0191FBAE -:103B3000882780F921E0822780FB91F922C08EE05E -:103B40000E94551D882351F09091CD0192FB88274A -:103B500080F921E0822780FB92F913C080E10E9466 -:103B6000551D9091CD01882341F093FB882780F962 -:103B700021E0822780FB93F904C0892F809580FB88 -:103B800090F99093CD018091CD010E94B71E0E94C3 -:103B9000C51E8093E00180EE0E94551D882341F0F0 -:103BA0008091E001982F909590FB80F98093E0013F -:103BB00089E30E94551D882359F09091E00191FB03 -:103BC000882780F921E0822780FB91F99093E0011A -:103BD00082EE0E94551D882359F09091E00192FBDE -:103BE000882780F921E0822780FB92F99093E001F9 -:103BF00086EE0E94551D882359F09091E00193FBB9 -:103C0000882780F921E0822780FB93F99093E001D7 -:103C100083EE0E94551D882359F09091E00194FB9A -:103C2000882780F921E0822780FB94F99093E001B6 -:103C300085E30E94551D882359F09091E00195FB82 -:103C4000882780F921E0822780FB95F99093E00195 -:103C500081E30E94551D882359F09091E00196FB65 -:103C6000882780F921E0822780FB96F99093E00174 -:103C700081E10E94551D882359F09091E00197FB46 -:103C8000882780F921E0822780FB97F99093E00153 -:103C90008091E0010E94C91E8091E00187FB882786 -:103CA00080F980930D0187E20E94551DC82F8EE197 -:103CB0000E94551D8111C2608FE10E94551D811126 -:103CC000C46080E20E94551D8111C86081E20E949B -:103CD000551D8111C06182E20E94551D8111C06293 -:103CE00083E20E94551D8111C06484E20E94551D2B -:103CF000882311F0C06802C0CC2329F08C2F0E94C9 -:103D0000C01E6C2F03C00E94BC1E682F70E080E0B4 -:103D100090E0CF910C949F19CF9108956DEE7EEFB6 -:103D200080E090E00E94E42460E082E090E00E9465 -:103D3000D62460E083E090E00E94D62460E084E036 -:103D400090E00E94D62460E085E090E00C94D624B8 -:103D500080E090E00E94D02421E08D3E9E4F09F04B -:103D600020E0822F089582E090E00C94C824682F10 -:103D700082E090E00C94D62483E090E00C94C82478 -:103D8000682F83E090E00C94D62484E090E00C94BB -:103D9000C824682F84E090E00C94D6248091D5014B -:103DA00080FF0BC06091130185E0689FB001112472 -:103DB00075956795759567952AC081FF09C06091D3 -:103DC000130185E0689FB0011124759567951FC0A8 -:103DD00082FF07C06091130185E0689FB001112444 -:103DE00016C04091D6014423C9F0609112014617D4 -:103DF00088F72091130185E0289F90011124429FAC -:103E0000C001439F900D112470E00E949A246038F5 -:103E1000710540F46115710539F002C065E070E08C -:103E2000862F08958FE7089581E008958091D50148 -:103E300080FF08C06091110170E0759567957595D8 -:103E4000679521C081FF06C06091110170E07595F2 -:103E5000679519C082FF04C06091110170E010C025 -:103E60008091D6018823C1F0609110018617A0F7D8 -:103E700090911101989FC001112470E00E949A2432 -:103E80006038710528F46115710521F0862F0895B9 -:103E90008FE7089581E0089561E070E0F4CF803FFE -:103EA00021F40E94CE1E819504C0813F29F40E9416 -:103EB000CE1E8093D9010895823F21F40E94CE1E28 -:103EC000819504C0833F29F40E94CE1E8093D801BF -:103ED0000895893F19F40E94161F05C08A3F31F4E6 -:103EE0000E94161F81958093DA0108958B3F21F47B -:103EF0000E94161F819504C08C3F29F40E94161F52 -:103F00008093DB010895843F21F48091D701816083 -:103F100017C0853F21F48091D701826011C0863F90 -:103F200021F48091D70184600BC0873F21F48091F8 -:103F3000D701886005C0883F31F48091D701806146 -:103F40008093D70108958D3F21F48091D501816040 -:103F50000BC08E3F21F48091D501826005C08F3F58 -:103F600029F48091D50184608093D5010895803F24 -:103F700039F48091D90187FF6CC01092D90169C0D2 -:103F8000813F29F48091D9011816BCF362C0909149 -:103F9000D801823F29F497FF5CC01092D80159C024 -:103FA000833F19F41916CCF354C0893F41F4809132 -:103FB000DA0118160CF04DC01092DA014AC08A3F9F -:103FC00029F48091DA0187FF44C0F6CF8B3F39F4A2 -:103FD0008091DB0187FF3DC01092DB013AC08C3F2E -:103FE00029F48091DB011816BCF333C0843F21F41F -:103FF0008091D7018E7F17C0853F21F48091D70132 -:104000008D7F11C0863F21F48091D7018B7F0BC03B -:10401000873F21F48091D701877F05C0883F31F425 -:104020008091D7018F7E8093D70113C08D3F21F4FB -:104030008091D5018E7F0BC08E3F21F48091D501F8 -:104040008D7F05C08F3F29F48091D5018B7F8093B0 -:10405000D5018091D80181110EC08091D9018111C3 -:104060000AC08091DA01811106C08091DB018111C3 -:1040700002C01092D601089587ED91E00E9452107F -:104080000E94A61C9093D4018093D30108951F939E -:10409000CF93DF938091D3019091D4010E94B21C01 -:1040A0004091D601442321F02091140130E006C054 -:1040B000209115015AE0259F900111248217930742 -:1040C00008F482C08091D8011091D901D091DA0111 -:1040D000C091DB01811107C0111105C0D11103C0CE -:1040E000CC2309F471C04F3F19F04F5F4093D601C4 -:1040F000181624F40E94CE1E8093D8018091D80116 -:1041000087FF05C00E94CE1E81958093D8011116AD -:1041100024F40E94CE1E8093D9018091D90187FF9B -:1041200005C00E94CE1E81958093D9016091D8016F -:10413000662339F11091D901112319F1772767FD11 -:104140007095872F972F0E94AB2323E333E343E33C -:104150005FE30E940F240E9478236093D801612FAF -:10416000772767FD7095872F972F0E94AB2323E356 -:1041700033E343E35FE30E940F240E9478236093BC -:10418000D9011D1624F40E94161F8093DA01809134 -:10419000DA0187FF05C00E94161F81958093DA011E -:1041A0001C1624F40E94161F8093DB018091DB0112 -:1041B00087FF05C00E94161F81958093DB01DF9168 -:1041C000CF911F910C943C20DF91CF911F910895C6 -:1041D000E7EDF1E085E0DF011D928A95E9F71092A5 -:1041E000D6011092D5010895833081F128F48130F1 -:1041F00059F08230D1F00895853009F449C0B8F102 -:10420000863009F456C0089520911501862F90E05C -:10421000820F911D8F3F910520F4620F609315016D -:1042200008958FEF80931501089520911401862F32 -:1042300090E0820F911D8F3F910520F4620F6093F3 -:10424000140108958FEF80931401089520911301B4 -:10425000862F90E0820F911D8F3F910520F4620F11 -:104260006093130108958FEF8093130108952091B7 -:104270001201862F90E0820F911D8F3F910520F44F -:10428000620F6093120108958FEF809312010895D9 -:1042900020911101862F90E0820F911D8F3F910593 -:1042A00020F4620F6093110108958FEF8093110144 -:1042B000089520911001862F90E0820F911D8F3F6D -:1042C000910520F4620F6093100108958FEF8093A1 -:1042D00010010895833011F128F4813049F08230C3 -:1042E00091F00895853081F120F18630C1F1089573 -:1042F00080911501681720F4861B8093150108959D -:1043000010921501089580911401681720F4861BFE -:10431000809314010895109214010895809113015F -:10432000681720F4861B80931301089510921301DF -:10433000089580911201681720F4861B8093120162 -:10434000089510921201089580911101681720F4C8 -:10435000861B809311010895109211010895809198 -:104360001001681720F4861B8093100108951092A5 -:10437000100108958D3109F442C020F58E3009F402 -:1043800079C070F4873009F45EC020F4863009F4F7 -:1043900042C033C08830D1F18B3009F4A7C02DC0A2 -:1043A000863109F4A3C038F4803109F46DC081313D -:1043B00009F47BC022C0893109F498C08B3109F41B -:1043C0004FC01BC0853309F479C048F4873209F423 -:1043D00075C008F478C0893209F470C00EC0833407 -:1043E00038F48A3308F071C0883309F47FC005C0FF -:1043F000833409F463C08834C1F080E008950E94DA -:1044000032230E943B100E94400970C00E94B31EDC -:104410000E94C51E6BC08091CD01817F8E7F8093ED -:10442000CD0181E08093DD0108950E94A5152FEF55 -:1044300083ED90E3215080409040E1F700C0000000 -:104440000E94001D53C09091CD01892F817090FF73 -:1044500003C0917F9E7F26C091609093CD0146C09E -:104460009091CD0191FB882780F921E0822780FB84 -:1044700091F913C09091CD0192FB882780F921E03A -:10448000822780FB92F909C09091CD0193FB882788 -:1044900080F921E0822780FB93F99093CD01882356 -:1044A00029F191609093CD0108950E94A515809106 -:1044B0000D0191E0892780930D0118C061E070E043 -:1044C00080E090E00FC023EE01C027EC280F61E0F0 -:1044D00070E080E090E004C0660F771F881F991F8E -:1044E0002A95D2F70E949F190E94A51581E0089590 -:1044F00080E0089580E00895CF93C82F8091DD017A -:10450000813079F018F08230D1F184C0A0910E0191 -:10451000B0910F018C91813169F0823209F07CC039 -:1045200009C0A0910E01B0910F018C91813111F061 -:10453000823249F48C2F0E94782281111DC08C2F69 -:104540000E94BA211AC08C2F0E947A22811114C0B5 -:10455000C43179F048F4CB3079F0C03109F060C053 -:1045600082E08093DD0108C0C93219F0C83321F020 -:1045700057C01092DD0154C081E0817053C0C93230 -:1045800089F118F5C43171F1A8F4C73009F046C0BB -:104590008AE08093150194E19093140193E0909345 -:1045A00013018093120188E08093110188E28093C7 -:1045B000100134C0CE51C63088F5EC2FF0E0E65D36 -:1045C000FE4F80818093DC0129C0CE34E9F020F4D5 -:1045D000CB3421F56AE013C0C13579F0C235F1F46E -:1045E00061E00DC08091DC01882319F01092DC019C -:1045F00015C081E08093DD0115C061E006C08091A7 -:10460000DC010E94F4200AC06AE08091DC010E9473 -:104610006A2104C01092DD0180E004C081E002C084 -:1046200080E0ABCFCF910895E1E8F0E08081886031 -:1046300080838081816080838FB7F89493E090932A -:10464000890090ED909388008FBF0895EFE6F0E029 -:104650008081826080830895EFE6F0E080818D7F25 -:1046600080830895EFE6F0E0808192E089278083DF -:1046700008951F920F920FB60F9211242F933F931C -:104680004F935F936F937F938F939F93AF93BF935A -:10469000EF93FF938091DE019091DF01019690935B -:1046A000DF018093DE01811103C082E00E94400996 -:1046B000E091DF01E695E695F0E0E258F74FE491EE -:1046C0008091DE018E1303C080E00E944009FF91BB -:1046D000EF91BF91AF919F918F917F916F915F917A -:1046E0004F913F912F910F900FBE0F901F901895F3 -:1046F00004D06894B1118DC0089570D088F09F5790 -:1047000090F0B92F9927B751A0F0D1F0660F771F1D -:10471000881F991F1AF0BA95C9F712C0B13081F0FD -:1047200077D0B1E0089574C0672F782F8827B85FDD -:1047300039F0B93FCCF3869577956795B395D9F75E -:104740003EF490958095709561957F4F8F4F9F4F68 -:104750000895E89409C097FB3EF490958095709574 -:1047600061957F4F8F4F9F4F9923A9F0F92F96E9BD -:10477000BB279395F695879577956795B795F11132 -:10478000F8CFFAF4BB0F11F460FF1BC06F5F7F4FCF -:104790008F4F9F4F16C0882311F096E911C07723E1 -:1047A00021F09EE8872F762F05C0662371F096E8EA -:1047B000862F70E060E02AF09A95660F771F881FB9 -:1047C000DAF7880F9695879597F9089557FD9058D1 -:1047D000440F551F59F05F3F71F04795880F97FBC5 -:1047E000991F61F09F3F79F087950895121613067F -:1047F0001406551FF2CF4695F1DF08C016161706AE -:104800001806991FF1CF86957105610508940895E2 -:10481000E894BB2766277727CB0197F908950BD03B -:1048200078C069D028F06ED018F0952309F05AC0EE -:104830005FC01124EECFCADFA0F3959FD1F3950F8F -:1048400050E0551F629FF001729FBB27F00DB11D14 -:10485000639FAA27F00DB11DAA1F649F6627B00DA4 -:10486000A11D661F829F2227B00DA11D621F739F8D -:10487000B00DA11D621F839FA00D611D221F749F9B -:104880003327A00D611D231F849F600D211D822FE2 -:10489000762F6A2F11249F5750408AF0E1F0882329 -:1048A0004AF0EE0FFF1FBB1F661F771F881F915036 -:1048B0005040A9F79E3F510570F014C0AACF5F3F4A -:1048C000ECF3983EDCF3869577956795B795F79569 -:1048D000E7959F5FC1F7FE2B880F911D96958795F1 -:1048E00097F9089597F99F6780E870E060E0089570 -:1048F0009FEF80EC089500240A94161617061806F8 -:104900000906089500240A941216130614060506D3 -:104910000895092E0394000C11F4882352F0BB0F64 -:1049200040F4BF2B11F460FF04C06F5F7F4F8F4FC7 -:104930009F4F089597FB072E16F4009407D077FD3C -:1049400009D00E94B42407FC05D03EF490958195CF -:104950009F4F0895709561957F4F0895EE0FFF1F4B -:104960000590F491E02D0994AA1BBB1B51E107C0EF -:10497000AA1FBB1FA617B70710F0A61BB70B881FEF -:10498000991F5A95A9F780959095BC01CD0108957E -:10499000F999FECF92BD81BDF89A992780B5089507 -:1049A000A8E1B0E042E050E00C94EB24262FF99906 -:1049B000FECF1FBA92BD81BD20BD0FB6F894FA9A02 -:1049C000F99A0FBE019608950E94D624272F0C94C1 -:1049D000D724DC01CB01FC01F999FECF06C0F2BD62 -:1049E000E1BDF89A319600B40D9241505040B8F7AD -:0649F0000895F894FFCFCA -:1049F60020024209CF09AC09780945090101BA012B -:104A060028080A03140A3F4D36393F08F207BC0747 -:104A1600830716072F0748076107010203040506E7 -:044A26000708090074 +:100980000F1CC82FE0910E01F0910F01808182723F +:1009900019F0259A2D9A06C00E94431081FDF9CFC7 +:1009A00025982D98C130B9F0C430A9F089EF8C0F8B +:1009B000823088F08EEF8C0F823018F4269A2E9AAF +:1009C00002C026982E98C550C23018F4279A2F9A44 +:1009D00002C027982F98CF9108950C94B60456988A +:1009E0005E9825982D9826982E9827982F988FEF07 +:1009F00090E0909389008093880090938B0080937F +:100A00008A0090938D0080938C00259A2D9A2FEF69 +:100A100080E792E0215080409040E1F700C0000064 +:100A2000269A2E9A2FEF80E792E021508040904046 +:100A3000E1F700C00000279A2F9A2FEF80E792E09D +:100A4000215080409040E1F700C0000025982D988B +:100A50002FEF80E792E0215080409040E1F700C006 +:100A6000000026982E982FEF80E792E021508040DA +:100A70009040E1F700C0000027982F9856985E98A4 +:100A800025982D9826982E9827982F98089589EACA +:100A90008093800089E08093810024982C983F986F +:100AA0008AB18F748AB96E98479A8BB1806B8BB973 +:100AB000769A0E94EF040C94B50480E280930001C2 +:100AC0008091340181110EC00E94AC0581E08093B9 +:100AD00034012FEF83ED90E3215080409040E1F707 +:100AE00000C0000080E40E94B205809300018111E3 +:100AF0002EC00E94DC0580930001811128C00E9455 +:100B0000DC0580930001811122C08FE30E94DC0587 +:100B10008093000181111BC00E94D40580E40E94D3 +:100B2000B20580930001811112C08CE00E94DC05A7 +:100B30008093000181110BC00E94DC0580930001AD +:100B4000811105C08FE30E94DC05809300010E94A3 +:100B5000D4058091000108951092B9008AE0809335 +:100B6000B800089594EA9093BC009091BC0097FF60 +:100B7000FCCF9091B900987F983021F0903111F01E +:100B800081E008958093BB0084E88093BC0080914D +:100B9000BC0087FFFCCF8091B900887F883111F0BD +:100BA000803471F780E0089584E98093BC008091DF +:100BB000BC0084FDFCCF08958093BB0084E8809343 +:100BC000BC008091BC0087FFFCCF9091B900987F5A +:100BD00081E0983209F480E0089584E88093BC00B5 +:100BE0008091BC0087FFFCCF8091BB00089580916D +:100BF0000001811115C080E40E94B20580930001BC +:100C000081110CC082E10E94DC05809300018111FA +:100C100005C08FEF0E94DC05809300010E94D4057F +:100C200084B1807F84B985B1807F85B98AB1837FA3 +:100C30008AB98BB1837F8BB93E98469808950E94FC +:100C40005D05809300010E94F70580B38C7080BB26 +:100C500081B3836F81BBE4E4F1E0A6E3B1E01192DC +:100C60001D9281E0E235F807D1F70C944705BF9259 +:100C7000CF92DF92EF92FF920F931F93CF93DF9368 +:100C800080910001882379F0809135018F5F8093F6 +:100C90003501811108C00E945D058093000181111A +:100CA00002C00E94EF0406E311E0C0E0D0E0DD24C2 +:100CB000D39482E0C82EEE24E394F12CC73000F5E3 +:100CC00080910001811162C080E40E94B20580938E +:100CD0000001811112C082E10E94DC0580930001B5 +:100CE00081110BC0C7010C2E01C0880F0A94EAF7CE +:100CF00080950E94DC05809300010E94D40546C0C7 +:100D0000CA30A1F028F4C83059F0C93061F005C0EC +:100D1000CC3089F070F0CD3089F0209A289810C03E +:100D2000219A29980DC0229A2A980AC0239A2B98B2 +:100D300007C0529A01C0539A5B9802C03E9A4698E7 +:100D4000E0EAEA95F1F78FB179995AC092E08170A3 +:100D50008D25892B7C9B02C090E001C094E0892BFB +:100D60007D9B02C090E001C098E0892B7E9B02C071 +:100D700090E001C090E1892B9FB19095991F992730 +:100D8000991F9295990F907E892B0FC08091000139 +:100D900081114BC080E40E94B2058093000188233A +:100DA00089F1B12C0E94D4058B2DF8019081981700 +:100DB00019F08083C09201010E94F70521960F5F10 +:100DC0001F4FCE30D10509F079CF809101018823E2 +:100DD00071F1815080930101882339F08FE99FE000 +:100DE0000197F1F700C0000022C0A4E4B1E0E6E3FF +:100DF000F1E081918D9391E0E434F907D1F717C0C8 +:100E000090E0A5CF83E10E94DC0580930001811171 +:100E1000C8CF81E40E94B205809300018111C1CF47 +:100E20000E94ED05B82EB094BDCF80E0BECF0E94E9 +:100E3000ED0481E0DF91CF911F910F91FF90EF9032 +:100E4000DF90CF90BF900895E82FF0E0EC5BFE4F6D +:100E50008081089508958B3B910578F4883A910537 +:100E600040F5853A9105D0F48430910508F0B1C081 +:100E70008130910509F4ADC06BC0803E910508F446 +:100E800067C0883E910508F4A4C09C01205F310929 +:100E90002031310508F05CC090650895853A9105D0 +:100EA00009F459C0863A910509F458C083E890E4E2 +:100EB0000895883A910509F454C0893A910509F4D6 +:100EC00053C08A3A910509F452C08B3A910509F44E +:100ED00051C08C3A910509F450C08D3A910509F43E +:100EE0004FC0803B910509F44EC08E3A910509F43C +:100EF0004DC08F3A910509F44CC0813B910509F42E +:100F00004BC0823B910509F44AC0833B910509F42B +:100F100049C0843B910509F448C0853B910509F41B +:100F200047C0863B910509F446C0873B910509F40B +:100F300045C0883B910509F444C0893B910509F4FB +:100F400043C08A3B910509F042C08AE296E40895C5 +:100F500080E090E0089581E890E4089582E890E4CC +:100F6000089582EE94E4089589EE94E408958AEE5B +:100F700094E4089585EB94E4089586EB94E4089551 +:100F800087EB94E408958CEC94E408958DEC94E45C +:100F9000089583E895E408958AE895E4089582E940 +:100FA00095E4089584E995E4089581E296E408952E +:100FB00083E296E4089584E296E4089585E296E457 +:100FC000089586E296E4089587E296E4089580E025 +:100FD00094E40895089596E0799FF001112494E532 +:100FE000899FE00DF11D1124E60FF11DEE0FFF1F8B +:100FF000E851FF4F859194910895880F991F805A69 +:101000009040FC01859194910895880F991F80521A +:101010009F4FFC0185919491089526E0729FF00105 +:10102000112444E5849FE00DF11D1124E60FF11D0C +:10103000EE0FFF1FE851FF4F25913491C9019A959A +:1010400081159F4110F4C9010895C901905281157D +:10105000904128F4C9019F700E9405080895C901B4 +:1010600090538115904120F4C9019927906C0895FF +:10107000211580E5380769F40E94AD159FEF24E340 +:101080004CE0915020404040E1F700C000000C943B +:10109000081D213080E5380731F48091CD01816051 +:1010A0008093CD010895C90190558115904108F0B4 +:1010B00050C0832F99278F70992781309105D9F4DB +:1010C000A9014370552702C0880F991F4A95E2F77E +:1010D0009C68A90164E0440F551F6A95E1F7442715 +:1010E0005370842B952B73E0220F331F7A95E1F711 +:1010F000207633271DC08230910529F4922F88274E +:10110000816F906A089583309105A9F4A901437015 +:10111000552781E090E002C0880F991F4A95E2F7B9 +:101120009C6843E0220F331F4A95E1F7207E377019 +:10113000822B932B08950497F1F4A901437055274E +:1011400081E090E002C0880F991F4A95E2F79A6803 +:10115000E8CFC90190578115904120F4C9019F70D3 +:1011600090620895C90190588115904120F4C901F9 +:101170009F70906A0895203E3105E0F4203C3105CF +:1011800058F52133310509F470C048F4293231058E +:1011900009F464C02A32310509F46EC074C02933E1 +:1011A0003105F1F022383105D9F02533310509F444 +:1011B0004EC069C0233E310589F138F4203E310527 +:1011C000C1F0223E3105E1F05EC0263E310569F1F5 +:1011D000273E3105A9F157C0C9010E94FD070895B6 +:1011E0008091E00180FD02C081FF4DC080EE90E063 +:1011F0004BC08091E00180FFF9CF89E390E044C0CB +:101200008091E00182FF0EC08091E00184FF03C065 +:1012100080E090E039C083EE90E036C08091E0013C +:1012200082FFF2CF82EE90E02FC08091E00183FF39 +:101230000BC08091E00184FDEBCF87EE90E024C0ED +:101240008091E00183FFF5CF86EE90E01DC0809194 +:10125000E00185FF07C089E290E016C08091E001BF +:1012600085FFF9CF85E390E00FC08091E00186FF14 +:1012700007C08AE290E008C08091E00186FFF9CFC4 +:1012800081E390E001C0C9010E942B0708950895F1 +:101290000C944709809162010895CF93DF9300D0A9 +:1012A0001F92CDB7DEB72091E601243019F523E077 +:1012B00029839B838A832093E9008FEF9091E80034 +:1012C000815095FD06C095ED9A95F1F700008111CA +:1012D000F5CF8091E80085FF0DC040E050E063E06D +:1012E00070E0CE0101960E94B70B8091E8008E77E6 +:1012F0008093E8000F900F900F90DF91CF910895A9 +:10130000CF93DF9300D01F92CDB7DEB72091E601D7 +:10131000243021F522E029839B838A8383E0809314 +:10132000E9008FEF9091E800815095FD06C095EDA2 +:101330009A95F1F700008111F5CF8091E80085FFC3 +:101340000DC040E050E063E070E0CE0101960E94E5 +:10135000B70B8091E8008E778093E8000F900F9094 +:101360000F90DF91CF9108952091E6012430F1F4A0 +:1013700022E02093E9002FEF3091E800215035FD65 +:1013800006C035ED3A95F1F700002111F5CF209117 +:10139000E80025FF0BC040E050E065E070E00E94EF +:1013A000B70B8091E8008E778093E8000895CF9383 +:1013B000DF93EC018091E601843009F046C0909102 +:1013C0000C019923D9F090910D019923B9F08093E4 +:1013D000E9008FEF9091E800815095FD06C095E1FE +:1013E0009A95F1F700008111F5CF8091E80085FF13 +:1013F0002CC040E050E060E170E017C081E08093D5 +:10140000E9008FEF9091E800815095FD06C095EDC1 +:101410009A95F1F700008111F5CF8091E80085FFE2 +:1014200014C040E050E068E070E0CE010E94B70BCD +:101430008091E8008E778093E80080E1FE01A2E5CC +:10144000B1E001900D928A95E1F7DF91CF91089577 +:101450008091E501811109C00E94490D0E94A60DED +:101460008091E20084608093E20008951092E5018B +:10147000089508950C942E230E949F1C0E943423EB +:101480000E9443100C94480942E061EC81E00E9404 +:10149000C30C42E061EC82E00E94C30C42E061ECCC +:1014A00083E00E94C30C42E161EC84E00C94C30C25 +:1014B0008091E801833009F455C030F4813071F037 +:1014C000823009F48EC008958A3009F47AC08B30D6 +:1014D00009F460C0893009F09CC020C08091E70108 +:1014E000813A09F096C08091E800877F8093E800F8 +:1014F0008091EB019091EC01892B21F060E080E07C +:1015000090E003C060E182E591E070E00E94000C91 +:101510008091E8008B778093E80008958091E7013F +:10152000813209F076C08091EB019091EC01009737 +:1015300019F0039709F06DC08091E800877F8093D0 +:10154000E8008091E80082FD05C08091E6018111EC +:10155000F8CF5FC08091F100809362018091E80034 +:101560008B7753C08091E701813A09F052C0809196 +:10157000EB019091EC01892B09F04BC08091E800C0 +:10158000877F8093E8008091E80080FFFCCF809106 +:101590000C0136C08091E7018132D9F58091EB01D1 +:1015A0009091EC01892BA9F58091E800877F8093C9 +:1015B000E8000E94F80C8091E90180930C010C94E2 +:1015C000AD158091E701813221F58091E800877F98 +:1015D0008093E8000E94F80C8091EA0180936301F7 +:1015E00008958091E701813AA1F48091E800877F16 +:1015F0008093E8008091E80080FFFCCF8091630138 +:101600008093F1008091E8008E778093E8000C943D +:10161000F80C089584B7877F84BF88E10FB6F894EB +:1016200080936000109260000FBE90E080E80FB6DB +:10163000F89480936100909361000FBE0E94921015 +:101640000E94490D0E94A60D8091E2008460809363 +:10165000E20078940E9421100E94941082E091E0B0 +:101660000E943E100E941C238091E601853069F49F +:101670000E94621C8091E4018823B1F30E948A1CBD +:10168000882391F30E94A10BEFCF0E949A10ECCF18 +:10169000292F332723303105A9F06CF4213031058F +:1016A00009F442C02230310509F043C08DE690E0D4 +:1016B00024E037E042C021323105C9F02232310541 +:1016C00019F137C099278130910541F08230910599 +:1016D00041F0892B71F5E0E0F7E005C0E8EEF6E0B7 +:1016E00002C0E0EDF6E0849190E09F0126C06430F6 +:1016F00000F5E62FF0E0EE0FFF1FEE5DFE4F2081BC +:10170000318189E090E019C0643098F4E62FF0E070 +:10171000DF01AA0FBB1FA65EBE4F2D913C91EA5E72 +:10172000FE4F808190E009C082E190E021E737E040 +:1017300004C080E090E020E030E0FA0131832083B3 +:10174000089580E189BD82E189BD09B400FEFDCF25 +:101750008091D8008F7D8093D8008091E0008260D6 +:101760008093E0008091E00081FDFCCF0895CF924E +:10177000DF92EF92FF920F931F93CF93DF937C0141 +:101780008B01EA010E94190D811131C0209731F0BF +:1017900088819981081B190BE80EF91EC12CD12CE8 +:1017A0000115110519F18091E80085FD14C08091A3 +:1017B000E8008E778093E800209741F08881998136 +:1017C0008C0D9D1D9983888385E011C00E94190DA1 +:1017D000882331F30CC0F70181917F018093F100E0 +:1017E00001501109FFEFCF1ADF0ADACF80E0DF9155 +:1017F000CF911F910F91FF90EF90DF90CF900895C0 +:101800002091ED013091EE012617370748F0611560 +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E061157105B9F18091E60173 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FF06C08091E800E2 +:1018500082FF26C080E008958091E80080FFE3CFFA +:101860002091F3008091F20090E0922B61157105B8 +:1018700051F08830910538F421912093F1006150A6 +:1018800071090196F3CF21E0089709F020E08091DB +:10189000E8008E778093E800C6CF2111C7CFD6CF5E +:1018A0008091E601882339F0853039F08091E80095 +:1018B00083FFCCCF04C082E0089583E0089581E0E7 +:1018C00008952091ED013091EE012617370748F079 +:1018D0006115710539F42091E8002E772093E80016 +:1018E00001C0B901FC0120E061157105C1F18091D1 +:1018F000E601882309F441C0853009F440C0809195 +:10190000E80083FD3EC08091E80082FF06C0809120 +:10191000E80082FF27C080E008958091E80080FF02 +:10192000E3CF2091F3008091F20090E0922B6115BB +:10193000710559F08830910540F424912093F1000D +:101940003196615071090196F2CF21E0089709F0B4 +:1019500020E08091E8008E778093E800C5CF2111C8 +:10196000C6CFD5CF8091E601882339F0853039F094 +:101970008091E80083FFCBCF04C082E0089583E02C +:10198000089581E00895982F973058F59093E900D5 +:10199000981739F07091EC002091ED005091F00013 +:1019A00003C0242F762F50E021FF19C03091EB00A7 +:1019B0003E7F3093EB003091ED003D7F3093ED00A2 +:1019C0003091EB0031603093EB007093EC0020938A +:1019D000ED005093F0002091EE0027FF07C09F5FBD +:1019E000D3CF8F708093E90081E0089580E008955F +:1019F0008091E70187FD05C08091E80080FF0EC05F +:101A000012C08091E80082FD05C08091E60181113D +:101A1000F8CF08958091E8008B7708C08091E601A7 +:101A20008111EACF08958091E8008E778093E800D5 +:101A300008958091E4009091E50045E62091EC0046 +:101A400020FF21C02091E80020FD21C02091E60167 +:101A5000222389F0253089F02091EB0025FD0FC06D +:101A60002091E4003091E5002817390739F34150FF +:101A700041F0C901E3CF82E0089583E0089581E059 +:101A8000089584E008952091E80022FFDFCF80E0F0 +:101A900008950E94B70D0E94BF0DE0EEF0E0808136 +:101AA00081608083E8EDF0E080818F77808319BCCE +:101AB000A7EDB0E08C918E7F8C9380818F7E8083A8 +:101AC0001092E50108950F931F93CF93DF930E9427 +:101AD000B70D0E94BF0DC8EDD0E088818F77888355 +:101AE00088818068888388818F7D888319BC109263 +:101AF000E6011092E2011092E4011092E30100EE7F +:101B000010E0F80180818B7F8083888181608883E9 +:101B100042E060E080E00E94C30CE1EEF0E08081F2 +:101B20008E7F8083E2EEF0E080818160808380811F +:101B300088608083F80180818E7F808388818061C6 +:101B40008883DF91CF911F910F910895E8EDF0E028 +:101B500080818F7E8083E7EDF0E0808181608083EB +:101B600084E082BF81E08093E5010C94630DE8ED91 +:101B7000F0E080818E7F80831092E20008951092C1 +:101B8000DA001092E10008951F920F920FB60F92A3 +:101B900011242F933F934F935F936F937F938F9372 +:101BA0009F93AF93BF93EF93FF938091E10082FFE8 +:101BB0000BC08091E20082FF07C08091E1008B7F23 +:101BC0008093E1000E9420108091DA0080FF1FC006 +:101BD0008091D80080FF1BC08091DA008E7F8093B7 +:101BE000DA008091D90080FF0DC080E189BD82E1DB +:101BF00089BD09B400FEFDCF81E08093E6010E941B +:101C0000280A05C019BC1092E6010E94360A80918C +:101C1000E10080FF19C08091E20080FF15C0809133 +:101C2000E2008E7F8093E2008091E20080618093E9 +:101C3000E2008091D80080628093D80019BC85E0D2 +:101C40008093E6010E943A0A8091E10084FF30C04F +:101C50008091E20084FF2CC080E189BD82E189BDD2 +:101C600009B400FEFDCF8091D8008F7D8093D8000D +:101C70008091E1008F7E8093E1008091E2008F7E71 +:101C80008093E2008091E20081608093E200809185 +:101C9000E201882311F084E007C08091E30087FF10 +:101CA00002C083E001C081E08093E6010E943C0A0B +:101CB0008091E10083FF29C08091E20083FF25C06D +:101CC0008091E100877F8093E10082E08093E601CC +:101CD0001092E2018091E1008E7F8093E10080917B +:101CE000E2008E7F8093E2008091E2008061809329 +:101CF000E20042E060E080E00E94C30C8091F000CE +:101D000088608093F0000E94390AFF91EF91BF91A3 +:101D1000AF919F918F917F916F915F914F913F9183 +:101D20002F910F900FBE0F901F9018951F920F923A +:101D30000FB60F9211242F933F934F935F936F939E +:101D40007F938F939F93AF93BF93CF93EF93FF9323 +:101D5000C091E900CF708091EC001092E900809171 +:101D6000F000877F8093F00078940E94D20E10924A +:101D7000E9008091F00088608093F000C093E90052 +:101D8000FF91EF91CF91BF91AF919F918F917F91F3 +:101D90006F915F914F913F912F910F900FBE0F90D8 +:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 +:101DB0000FB6F894DEBF0FBECDBFE7EEF1E0809125 +:101DC000F100819321E0EF3EF207C9F70E94580A23 +:101DD0008091E80083FF1CC12091E7013091E80168 +:101DE000832F90E08A30910508F012C1FC01EA5A75 +:101DF000FF4F0C94B624203881F0223809F008C136 +:101E00008091EB018F708093E9008091EB0085FB5E +:101E1000882780F91092E90006C08091E301909133 +:101E2000E401911182609091E800977F9093E8001F +:101E30008093F1001092F100C5C0822F8D7F09F0D0 +:101E4000E7C0222319F0223061F0E2C08091E9015D +:101E5000813009F0DDC0333009F080E08093E40187 +:101E600028C08091E901811124C02091EB012F70DD +:101E700009F4CEC02093E9008091EB0080FF19C0E7 +:101E80008091EB00333011F4806211C08061809347 +:101E9000EB0081E090E0022E01C0880F0A94EAF77F +:101EA0008093EA001092EA008091EB0088608093B2 +:101EB000EB001092E9008091E800877F86C0211135 +:101EC000A7C01091E9011F778091E3008078812BF2 +:101ED0008093E3008091E800877F8093E8000E9470 +:101EE000F80C8091E80080FFFCCF8091E3008068CF +:101EF0008093E300112311F083E001C082E080931E +:101F0000E60186C02058223008F082C08091E901A5 +:101F10009091EA018C3D23E0920779F583E08A8372 +:101F20008AE289834FB7F894DE01139620E03EE001 +:101F300051E2E32FF0E050935700E49120FF03C0FB +:101F4000E295EF703F5FEF708E2F90E0EA3010F077 +:101F5000C79601C0C0968D939D932F5F243149F79A +:101F60004FBF8091E800877F8093E8006AE270E0CD +:101F7000CE0101960E94000C14C0AE014F5F5F4F6E +:101F80006091EB010E94480B009709F441C0209139 +:101F9000E800277F2093E800BC0189819A810E9494 +:101FA000610C8091E8008B778093E80031C0203885 +:101FB00079F58091E800877F8093E8008091E201C5 +:101FC0008093F1008091E8008E778093E8000E9472 +:101FD000F80C1EC021111CC09091E9019230C0F490 +:101FE0008091E800877F8093E8009093E2010E944F +:101FF000F80C8091E201811104C08091E30087FF19 +:1020000002C084E001C081E08093E6010E94440A9E +:102010008091E80083FF0AC08091E800877F809369 +:10202000E8008091EB0080628093EB00AA960FB6E7 +:10203000F894DEBF0FBECDBFDF91CF911F91089501 +:102040000895CF938091E6018823B1F08091E90053 +:102050008F709091EC0090FF02C090E801C090E07A +:10206000C92FC82B1092E9008091E80083FD0E94DF +:10207000D20ECF70C093E900CF910895909369017B +:10208000809368010895E0916801F09169013097AB +:1020900021F00190F081E02D099480E00895E09115 +:1020A0006801F0916901309721F00280F381E02D01 +:1020B00009940895E0916801F0916901309721F049 +:1020C0000480F581E02D09940895209166013091F6 +:1020D00067018217930771F09093670180936601FF +:1020E000E0916801F0916901309721F00680F78155 +:1020F000E02D0994089520916401309165018217C3 +:10210000930771F09093650180936401E0916801F9 +:10211000F0916901309721F00084F185E02D099458 +:10212000089508950C9491100E94A51C0E941F060A +:102130000C946B1DCF92DF92EF92FF920F931F933F +:10214000CF93DF93CDB7DEB72B970FB6F894DEBFF2 +:102150000FBECDBF0E9437063BE6E32E31E0F32EE3 +:1021600000E010E0C02E802F0E942407F701D190DC +:102170007F01D826B1F40F5F1F4F0E30110591F784 +:102180008FEF89838A831B820E94AE1C8160782F27 +:102190009D838C8349815A816B818D810E943D1181 +:1021A00041C09091CD0191FF04C08B870E942A0706 +:1021B0008B8520E030E04D2D50E0922FBA01022EA9 +:1021C00002C0759567950A94E2F760FF25C02E83DB +:1021D000CF82EE24E394F12C02C0EE0CFF1C9A9502 +:1021E000E2F790E08E219F2121E0892B09F420E085 +:1021F00028870E94AE1C8160782F9A8789874E813C +:102200005F8168858A850E943D11F801E559FE4F7E +:1022100080818E25808306C02F5F3F4F2630310599 +:1022200061F6A9CF0E944F2010916A010E944310CD +:102230001817A1F00E94431080936A012B960FB6E5 +:10224000F894DEBF0FBECDBFDF91CF911F910F91EC +:10225000FF90EF90DF90CF900C9448092B960FB62B +:10226000F894DEBF0FBECDBFDF91CF911F910F91CC +:10227000FF90EF90DF90CF900895CF93DF93CDB78D +:10228000DEB72B970FB6F894DEBF0FBECDBF4F83DE +:10229000588769877A878B87DE01119686E0FD0172 +:1022A00011928A95E9F785E0FE01379601900D922B +:1022B0008A95E1F749815A816B817C818D819E816C +:1022C0000E9479182B960FB6F894DEBF0FBECDBFD3 +:1022D000DF91CF910895CF93C82F882309F4C1C00F +:1022E000823859F40E94431081FDBBC089E30E94EB +:1022F000161B0E94E01B89E30CC0833879F40E940E +:10230000431080FDAEC083E50E94161B0E94E01BB7 +:1023100083E50E94561BCF910C94E01B843859F43E +:102320000E94431082FD9DC087E40E94161B0E94FC +:10233000E01B87E4EECF8CEF8C0F813A48F48C2FB2 +:102340000E94842281118DC08C2F0E94161BE3CF26 +:1023500080E28C0F883048F4C77081E001C0880F9C +:10236000CA95EAF70E94971BD6CF8BE58C0F833076 +:1023700078F4C53A29F0C63A31F482E890E005C015 +:1023800081E890E002C083E890E0CF910C94651062 +:1023900088E58C0F833108F064C0C83A39F1C93A36 +:1023A00041F1CA3A49F1CB3A51F1CC3A59F1CD3A1F +:1023B00061F1C03B69F1CE3A71F1CF3A79F1C13B9D +:1023C00081F1C23B89F1C33B91F1C43B99F1C53B1B +:1023D000A1F1C63BA9F1C73BB1F1C83BB9F1C93B7B +:1023E000C1F1CA3BC9F58AE292E038C082EE90E0C2 +:1023F00035C089EE90E032C08AEE90E02FC085EBC8 +:1024000090E02CC086EB90E029C087EB90E026C0DE +:102410008CEC90E023C08DEC90E020C083E891E04C +:102420001DC08AE891E01AC082E991E017C084E9F2 +:1024300091E014C081E292E011C083E292E00EC00C +:1024400084E292E00BC085E292E008C086E292E06E +:1024500005C087E292E002C080E090E0CF910C944A +:102460007B10CF910895882309F44BC0823859F42A +:102470000E94431081FF45C089E30E94161B0E9401 +:10248000E01B89E30CC0833871F40E94431080FF85 +:1024900038C083E50E94161B0E94E01B83E50E9462 +:1024A000561B0C94E01B843859F40E94431082FFA1 +:1024B00028C087E40E94161B0E94E01B87E4EFCF30 +:1024C0009CEF980F913A58F390E2980F983050F49F +:1024D000877091E001C0990F8A95EAF7892F0E94D1 +:1024E0009D1BDFCF9BE5980F933020F480E090E0B8 +:1024F0000C946510885A833120F480E090E00C94AD +:102500007B100895882321F00E94971B0C94E01BF8 +:102510000895882321F00E949D1B0C94E01B0895D0 +:10252000CF92DF92EF92FF920F931F93CF93DF939F +:10253000CDB7DEB728970FB6F894DEBF0FBECDBF7C +:102540008C0185E0F801DE01119601900D928A95CB +:10255000E1F7F80140813181F280258122952F70C9 +:1025600083819481892B31F03F3F31F481E04F3FEB +:1025700019F403C081E001C080E080FDCBC2498333 +:102580003A8389819A812F830E94D41A9E838887F7 +:102590000E94D31A0E94A6192F814E816885FF20C0 +:1025A00029F00E94B41B68854E812F81E42FE295AB +:1025B000EF70F0E0E05AFF4F0C94B624842F807F38 +:1025C000142F1F70882311F01295107FFF2059F0EF +:1025D000112309F454C2812F68870E94A71B0E940F +:1025E000E01B68854CC2862F0E943312112309F428 +:1025F00091C2812F0E94AD1B28960FB6F894DEBFC2 +:102600000FBECDBFDF91CF911F910F91FF90EF9043 +:10261000DF90CF900C94E01B342F307F842F8F708D +:10262000303211F08295807F662319F0613019F104 +:102630002BC0FF20B1F0222309F493C1213009F00F +:1026400090C128960FB6F894DEBF0FBECDBFDF91C4 +:10265000CF911F910F91FF90EF90DF90CF900C944E +:10266000C71B222319F0213009F454C28E830E9423 +:10267000CA1B8E8189C1FF2021F0223008F04AC296 +:1026800070C1211147C280C1FF2021F0222309F42B +:1026900068C1F5C1222309F477C105C2242F26950C +:1026A0002695237030E02115310521F021303105C8 +:1026B000C9F030C2FF2021F0862F942F937002C002 +:1026C00080E090E028960FB6F894DEBF0FBECDBF35 +:1026D000DF91CF911F910F91FF90EF90DF90CF90FE +:1026E0000C946510FF2021F0862F942F937002C068 +:1026F00080E090E028960FB6F894DEBF0FBECDBF05 +:10270000DF91CF911F910F91FF90EF90DF90CF90CD +:102710000C947B10862FFF2019F00E94571F02C0D7 +:102720000E94BF1F28960FB6F894DEBF0FBECDBF24 +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:102740000C944420842F837009F076C0F110E2C10C +:10275000262F229526952770220F220F862F8F7005 +:10276000C82ED12CE12CF12C022E04C0CC0CDD1C87 +:10277000EE1CFF1C0A94D2F764FF10C06FE070E0FB +:1027800080E090E004C0660F771F881F991F2A958C +:10279000D2F7609570958095909503C060E070E0E9 +:1027A000CB01242F269526952370422F50E04230EE +:1027B0005105D1F04330510559F16C297D298E29FD +:1027C0009F294130510541F128960FB6F894DEBF9C +:1027D0000FBECDBFDF91CF911F910F91FF90EF9072 +:1027E000DF90CF900C94CB196C297D298E299F29DD +:1027F00028960FB6F894DEBF0FBECDBFDF91CF9104 +:102800001F910F91FF90EF90DF90CF900C94E519FE +:102810000E94CB19C701B60128960FB6F894DEBF07 +:102820000FBECDBFDF91CF911F910F91FF90EF9021 +:10283000DF90CF900C94B119FF2019F0842F817094 +:1028400001C08695882309F465C1262F2295269517 +:102850002770220F220F862F8F70C82ED12CE12CCB +:10286000F12C022E04C0CC0CDD1CEE1CFF1C0A94C3 +:10287000D2F764FF10C06FE070E080E090E004C029 +:10288000660F771F881F991F2A95D2F7609570955C +:102890008095909503C060E070E0CB01242F2695D1 +:1028A00026952370422F50E042305105D1F043303D +:1028B000510559F16C297D298E299F2941305105F7 +:1028C00041F128960FB6F894DEBF0FBECDBFDF9161 +:1028D000CF911F910F91FF90EF90DF90CF900C94CC +:1028E0009F1A6C297D298E299F2928960FB6F89466 +:1028F000DEBF0FBECDBFDF91CF911F910F91FF9033 +:10290000EF90DF90CF900C94B91A0E949F1AC701E4 +:10291000B60128960FB6F894DEBF0FBECDBFDF918B +:10292000CF911F910F91FF90EF90DF90CF900C947B +:10293000851A603FC9F118F4603E50F49BC0623FB5 +:1029400009F460C008F44AC0633F09F46FC092C044 +:10295000162F1F70842F8F71FF2099F00E941E1A6E +:10296000812F28960FB6F894DEBF0FBECDBFDF9142 +:10297000CF911F910F91FF90EF90DF90CF900C942B +:1029800082120E943F1A812F28960FB6F894DEBF5C +:102990000FBECDBFDF91CF911F910F91FF90EF90B0 +:1029A000DF90CF900C948912FF20A1F02111B2C0CA +:1029B000842F8F7128960FB6F894DEBF0FBECDBF5F +:1029C000DF91CF911F910F91FF90EF90DF90CF900B +:1029D0000C94641A223008F09DC0EACFFF20A1F0C9 +:1029E000842F8F7128960FB6F894DEBF0FBECDBF2F +:1029F000DF91CF911F910F91FF90EF90DF90CF90DB +:102A00000C941E1AFF2061F3842F8F7128960FB645 +:102A1000F894DEBF0FBECDBFDF91CF911F910F9114 +:102A2000FF90EF90DF90CF900C943F1AFF2091F031 +:102A3000842F8F7128960FB6F894DEBF0FBECDBFDE +:102A4000DF91CF911F910F91FF90EF90DF90CF908A +:102A50000C94091A28960FB6F894DEBF0FBECDBFAE +:102A6000DF91CF911F910F91FF90EF90DF90CF906A +:102A70000C94FF19FF20A1F0222309F4B1CF862F77 +:102A800028960FB6F894DEBF0FBECDBFDF91CF9171 +:102A90001F910F91FF90EF90DF90CF900C946B11EE +:102AA000222309F4B1CF862F28960FB6F894DEBF03 +:102AB0000FBECDBFDF91CF911F910F91FF90EF908F +:102AC000DF90CF900C9433124F70C8010E94A50480 +:102AD00028960FB6F894DEBF0FBECDBFDF91CF9121 +:102AE0001F910F91FF90EF90DF90CF900C942619DB +:102AF0004F70C80128960FB6F894DEBF0FBECDBF49 +:102B0000DF91CF911F910F91FF90EF90DF90CF90C9 +:102B10000C94EA0728960FB6F894DEBF0FBECDBF1F +:102B2000DF91CF911F910F91FF90EF90DF90CF90A9 +:102B300008950E94B41B0E94C41B0E94891B0E941E +:102B4000E01B0E94F0200E94442080E090E00E9460 +:102B5000651080E090E00C947B100E94A41B0C9404 +:102B600099150E94D41A292F22952F7030E02C300D +:102B700031054CF42A3031056CF4225031092230F1 +:102B8000310590F407C02C30310551F02F3031055C +:102B900039F00AC0803E10F0803F31F481E00895A2 +:102BA00093FB882780F9089580E00895CF93DF9301 +:102BB00000D000D01F92CDB7DEB70F900F900F90CE +:102BC0000F900F90DF91CF910895CF93DF9300D0B6 +:102BD00000D000D0CDB7DEB726960FB6F894DEBF92 +:102BE0000FBECDBFDF91CF9108951F93CF93DF9399 +:102BF000C091790116E080917A01C81799F0D0E070 +:102C00001C9FF0011D9FF00D1124E558FE4F4081DF +:102C1000518162817381848195810E94E51521969D +:102C2000C770E9CFDF91CF911F9108954091AB011B +:102C30005091AC016091AD017091AE018091AF01F6 +:102C40009091B0010C94E515CF938091B0018295DD +:102C50008F7009F05FC08091AD01882309F45AC0DC +:102C600020917901A0917A016091AB017091AC0142 +:102C70008091AE019091AF0131E06F3F09F030E0FB +:102C8000B32FC6E02A1709F445C0009721F07F3F13 +:102C900021F44B2F03C041E001C040E030E040FD93 +:102CA00035C0C29FF001C39FF00D1124E558FE4FBF +:102CB000418174132BC04081641328C042814111AB +:102CC00025C0438154814817590710F441505109D8 +:102CD000481B590B483C5105C8F48091B0018F70D6 +:102CE00080618093B00186E0829FF001839FF00DA8 +:102CF0001124E058FE4F80818F70806180838BEAC1 +:102D000091E00E949012CF910C94F5152F5F3F4FE8 +:102D10002770B8CFCF910895CF92DF92EF92FF92B4 +:102D20000F931F93CF93DF93CDB7DEB762970FB6A4 +:102D3000F894DEBF0FBECDBF8C0185E0F801DE0147 +:102D40001D9601900D928A95E1F7D8014C9111964C +:102D50005C91119712966C9112971396ED90FC90DE +:102D600014977091AB01E091AC012091AE013091CC +:102D7000AF012115310531F0EF3F31F481E07F3FA4 +:102D800019F403C081E001C080E0B82FB170CB2EF0 +:102D900080FD6CC1D090AD01DD2009F4F5C0F0914B +:102DA000B001E216F30638F0C701821B930B883C92 +:102DB000910548F09BC0209530952E0D3F1D283C75 +:102DC000310508F093C08F2F807F09F052C0E513C2 +:102DD00014C0741312C0D62E61110FC0FF70F061C1 +:102DE000F093B0010E9416168BEA91E00E949012B7 +:102DF0008091B001F80185836CC1EF2831F05F3F0D +:102E000031F481E04F3F19F403C081E001C080E05C +:102E100080FD03C081E0862701C080E0F82FF170BB +:102E2000FF2E80FF1CC08091790120917A0136E04D +:102E3000821709F428C190E0389FF001399FF00D06 +:102E40001124E558FE4F7181571306C07081471356 +:102E500003C07281671303C001968770E9CFD62E35 +:102E6000662309F436C18091B00181608093B0017E +:102E700053C0E51308C0741306C0611104C0D80123 +:102E80001596FC93AEC04D875E878D859E856A8BB7 +:102E90000E94B1156A89882329F1D62E662311F183 +:102EA0002091B001822F82958F7090E002970CF4F0 +:102EB00060C08091AB019091AC0198878F83198697 +:102EC000FB86EA862C87CE01079651C0E51731F1C3 +:102ED0004D875E878D859E856A8B0E94B1156A89B4 +:102EE00081112EC0C8010E949012A4C08F2F807F34 +:102EF00069F77E2DF98AE88A89890E94D6158BEABE +:102F000091E00E949012EBEAF1E086E0DF011D9271 +:102F10008A95E9F70E941616D12CDBC07413D8CF1E +:102F20006111D6CFD8011596FC93C8010E9490126A +:102F3000EBEAF1E086E0DF011D928A95E9F7C9C06E +:102F4000D62E662379F22091B001822F82958F7060 +:102F500090E0029774F08091AB019091AC019A835C +:102F600089831B82FD82EC822E83CE0101960E9412 +:102F7000901286E0F801ABEAB1E001900D928A95DB +:102F8000E1F70E9424166FC0E216F30628F0C7018D +:102F9000821B930B9C0104C0209530952E0D3F1D84 +:102FA000283C310508F052C0D62E662309F49ACF8A +:102FB000E5132CC074132AC08091B00180FD1DC0A0 +:102FC000982F92959F70C9F0D80115968C931597FC +:102FD0009F3039F09F5F9295907F8F70892B159667 +:102FE0008C93C8010E94901286E0F801ABEAB1E030 +:102FF00001900D928A95E1F736C086E0F801ABEAC0 +:10300000B1E001900D928A95E1F763C04D875E872C +:103010008D859E850E94B115882379F086E0F801A0 +:10302000ABEAB1E001900D928A95E1F70E94241677 +:103030000E941616DD24D3944CC08091B0018160AB +:103040008093B001C8010E94901243C07E2DF98A7E +:10305000E88A89890E94D615EBEAF1E086E0DF0173 +:103060001D928A95E9F70E94161633C0662309F46B +:1030700039CF4D875E878D859E850E94B115882347 +:1030800009F430CFCBCF4D875E878D859E850E941A +:10309000D41A292F22952F7030E0223031052CF4DC +:1030A0009F7041F0811106C00CC0243031052CF412 +:1030B0009F7049F4805E883020F0C8010E94901211 +:1030C000CF2CDC2C06C0D80115969C91907F91F7EF +:1030D000F8CF8D2D62960FB6F894DEBF0FBECDBF30 +:1030E000DF91CF911F910F91FF90EF90DF90CF90E4 +:1030F00008951F93CF93DF93CDB7DEB72C970FB60C +:10310000F894DEBF0FBECDBF4F83588769877A879B +:103110008B879C87CE0107960E948C168823C1F06E +:103120002F8138858A859B85892B31F03F3F11F0AF +:1031300080E003C02F3FE1F781E0811147C04F815C +:10314000588569857A858B859C850E94E5153EC0EA +:1031500086E0FE013796DE01119601900D928A9568 +:10316000E1F7FF81E8854A855B854115510531F01E +:10317000EF3F31F481E0FF3F19F403C081E001C06B +:1031800080E080FD23C020917A0130E0C9010196E2 +:10319000877099276091790170E086179707F1F1A0 +:1031A000F983EA835D834C8396E0929FD001939FDD +:1031B000B00D1124A558BE4FFE01319601900D921D +:1031C0009A95E1F780937A010E94F51516E08091B7 +:1031D000790190917A01891779F1189FC001112422 +:1031E00085589E4F0E948C16882331F1E091790119 +:1031F0001E9FF0011124E558FE4F408151816281EC +:103200007381848195810E94E5158091790190E018 +:1032100001968770992780937901D9CF0E94AD15C7 +:1032200010927A0110927901EBEAF1E086E0DF0179 +:103230001D928A95E9F7CACF2C960FB6F894DEBF97 +:103240000FBECDBFDF91CF911F910895EF92FF92F6 +:103250000F931F93CF93DF93FC01009709F46FC086 +:10326000F12CEE24E394EF0121968491843740F40D +:10327000843008F055C0813081F0823021F15FC088 +:10328000853709F447C0C0F19CE7980F903708F0E4 +:1032900056C08F770E94331245C08F010E5F1F4FBB +:1032A000FE01849190E2980F983050F48770FE2DC3 +:1032B00001C0FF0F8A95EAF78F2F0E94B71B15C038 +:1032C0000E946B1114C08F010E5F1F4FFE0184918D +:1032D00090E2980F983068F48770FE2D01C0FF0FC0 +:1032E0008A95EAF78F2F0E94BD1B0E94E01BE80120 +:1032F00019C00E943312FBCFCF010296FE01C49188 +:10330000CC2361F0EFE9FFE03197F1F700C0000056 +:10331000C150F6CFCF010296FE01F490EC0102C03D +:103320000E946B118F2D882341F0EFE9FFE0319768 +:10333000F1F700C000008150F6CFFE0194CFDF917D +:10334000CF911F910F91FF90EF9008950895609392 +:10335000B5017093B6018093B7019093B8010C94B6 +:1033600099150F931F930091B5011091B60120910B +:10337000B7013091B801062B172B282B392B00935E +:10338000B5011093B6012093B7013093B8011F9196 +:103390000F910C9499150F931F930091B501109103 +:1033A000B6012091B7013091B801062317232823D5 +:1033B00039230093B5011093B6012093B7013093E0 +:1033C000B8011F910F910C9499150F931F930091C1 +:1033D000B5011091B6012091B7013091B8010627CF +:1033E0001727282739270093B5011093B60120939A +:1033F000B7013093B8011F910F910C949915109259 +:10340000B1011092B2011092B3011092B4010C9468 +:10341000991541E050E060E070E004C0440F551F92 +:10342000661F771F8A95D2F74093B1015093B2017E +:103430006093B3017093B4010C94991541E050E08E +:1034400060E070E004C0440F551F661F771F8A9527 +:10345000D2F78091B1019091B201A091B301B091E6 +:10346000B401842B952BA62BB72B8093B10190939D +:10347000B201A093B301B093B4010C94991541E04B +:1034800050E060E070E004C0440F551F661F771FD6 +:103490008A95D2F740955095609570958091B101CD +:1034A0009091B201A091B301B091B401842395230E +:1034B000A623B7238093B1019093B201A093B301E7 +:1034C000B093B4010C94991541E050E060E070E0D5 +:1034D00004C0440F551F661F771F8A95D2F780914D +:1034E000B1019091B201A091B301B091B4018427D0 +:1034F0009527A627B7278093B1019093B201A09397 +:10350000B301B093B4010C9499150F931F930091DC +:10351000B1011091B2012091B3013091B401062B99 +:10352000172B282B392B0093B1011093B201209354 +:10353000B3013093B4011F910F910C9499150F931F +:103540001F930091B1011091B2012091B30130910C +:10355000B40106231723282339230093B1011093C4 +:10356000B2012093B3013093B4011F910F910C94D9 +:1035700099150F931F930091B1011091B201209101 +:10358000B3013091B4010627172728273927009364 +:10359000B1011093B2012093B3013093B4011F9194 +:1035A0000F910C9499150895CF92DF92EF92FF92AC +:1035B0000F931F93CF93DF93EC01C090B501D09090 +:1035C000B601E090B701F090B8018091B1019091FF +:1035D000B201A091B301B091B401C82AD92AEA2A54 +:1035E000FB2A0FE110E0B701A601002E04C076957A +:1035F0006795579547950A94D2F740FF07C0BE01DB +:10360000802F0E940D088130910539F40150110975 +:1036100050F7BE0180E00E940D08DF91CF911F910D +:103620000F91FF90EF90DF90CF90089590910C0153 +:103630009923D9F090910D019923B9F0982F96957F +:10364000969596959F3088F5E0910E01F0910F01C7 +:10365000E90FF11D877021E030E001C0220F8A954B +:10366000EAF78181822B8183089540910E01509168 +:103670000F0120E030E09FEFFA01E20FF31F6281BB +:10368000681799F09F3F19F4611101C0922F2F5FC5 +:103690003F4F2E30310581F79F3F39F0FA01E90F96 +:1036A000F11D97FDFA9582830895089590910C017C +:1036B0009923E1F090910D019923C1F0982F9695EF +:1036C000969596959F3020F5E0910E01F0910F01AF +:1036D000E90FF11D877021E030E001C0220F8A95CB +:1036E000EAF72095818128232183089540910E01D6 +:1036F00050910F0120E030E0FA01E20FF31F9281B8 +:10370000981301C012822F5F3F4F2E303105A1F771 +:10371000089581E090E0E0910E01F0910F01E80F33 +:10372000F91F1082019680319105A9F708959091B3 +:10373000CC01982B9093CC01089580959091CC0169 +:1037400098239093CC0108951092CC010895909104 +:10375000CB01982B9093CB01089580959091CB014C +:1037600098239093CB0108951092CB0108959091E6 +:10377000CA01982B9093CA01089580959091CA012F +:1037800098239093CA0108951092CA0108958093D6 +:10379000B90108951092B901089540910E01509118 +:1037A0000F0120E030E080E0FA01E20FF31F918189 +:1037B00091118F5F2F5F3F4F2F303105A9F708958B +:1037C000E0910E01F0910F018091CC018083E09196 +:1037D0000E01F0910F0180819091CB01892B8083A4 +:1037E000E0910E01F0910F0180819091CA01892B27 +:1037F00080839091B901992361F0E0910E01F091DD +:103800000F018081892B80830E94CD1B8111109232 +:10381000B90180910E0190910F010C944F10CF923D +:10382000DF92EF92FF920F931F936C01EE24FF241F +:10383000C114D104E104F10421F46B017C0180E0A6 +:1038400001C080E133272F2D1E2D0D2D01151105EF +:103850002105310519F0885F68017901970186011A +:10386000A4E03695279517950795AA95D1F70115E8 +:1038700011052105310519F08C5F68017901970167 +:103880008601F2E03695279517950795FA95D1F7B9 +:10389000011511052105310519F08E5F68017901C7 +:1038A000B701A6017695679557954795452B462B09 +:1038B000472B09F08F5F1F910F91FF90EF90DF90E2 +:1038C000CF9008958091E601843009F11092CE01E5 +:1038D00020E488E190E00FB6F894A895809360000A +:1038E0000FBE2093600083B7817F846083BF83B75E +:1038F000816083BF7894889583B78E7F83BF88E18A +:103900000FB6F89480936000109260000FBE089587 +:1039100008950895CF930E94881C0E9437060E9444 +:10392000891CC0E08C2F0E942407811105C0CF5F45 +:10393000CE30C1F780E001C081E0CF9108950E94B0 +:10394000AD150E9443100C94480982E084BD93E0B9 +:1039500095BD9AEF97BD80936E0008952FB7F894A8 +:103960008091CF019091D001A091D101B091D2016D +:103970002FBF0895CF92DF92EF92FF920F931F9384 +:103980002FB7F8944091CF015091D0016091D101AF +:103990007091D2012FBF6A017B01EE24FF248C01BC +:1039A00020E030E0C016D106E206F30610F44150E4 +:1039B0005109481B590BCA011F910F91FF90EF90BD +:1039C000DF90CF9008951F920F920FB60F9211249F +:1039D0008F939F93AF93BF938091CF019091D0012C +:1039E000A091D101B091D2010196A11DB11D80938A +:1039F000CF019093D001A093D101B093D201BF9198 +:103A0000AF919F918F910F900FBE0F901F901895BF +:103A10000E94490DF8942FEF87EA91E621508040EB +:103A20009040E1F700C0000087E090EBDC0180935C +:103A3000EF019093F001A093F101B093F2012CE01B +:103A400088E190E00FB6F894A895809360000FBECF +:103A500020936000FFCFEF92FF920F931F93CF93BD +:103A6000DF93E82EF12C8F2D0E942407C0E0D0E0D8 +:103A7000082F10E098010C2E02C0359527950A9466 +:103A8000E2F720FD05C02196C630D10599F709C09F +:103A90006C2F7F2D80E00E94EB07E812F4CF81E0CD +:103AA00005C0F3948EE0F812DECF80E0DF91CF9175 +:103AB0001F910F91FF90EF900895CF93C82F8CE244 +:103AC0000E942B1D882321F08C2FCF910C942B1D4D +:103AD00080E0CF910895CF930E94B01E811102C063 +:103AE0000E94961EC5E6C15049F00E9437068FE33A +:103AF0009CE90197F1F700C00000F5CF89E20E9430 +:103B00005D1D811111C18AE20E945D1D81110E941B +:103B1000961E85E00E945D1D81110E94081D0E9475 +:103B2000BB1E8093CD0187E00E945D1D882399F123 +:103B30008BE10E945D1D882351F09091CD0191FB96 +:103B4000882780F921E0822780FB91F922C08EE04E +:103B50000E945D1D882351F09091CD0192FB882732 +:103B600080F921E0822780FB92F913C080E10E9456 +:103B70005D1D9091CD01882341F093FB882780F94A +:103B800021E0822780FB93F904C0892F809580FB78 +:103B900090F99093CD018091CD010E94BF1E0E94AB +:103BA000CD1E8093E00180EE0E945D1D882341F0D0 +:103BB0008091E001982F909590FB80F98093E0012F +:103BC00089E30E945D1D882359F09091E00191FBEB +:103BD000882780F921E0822780FB91F99093E0010A +:103BE00082EE0E945D1D882359F09091E00192FBC6 +:103BF000882780F921E0822780FB92F99093E001E9 +:103C000086EE0E945D1D882359F09091E00193FBA0 +:103C1000882780F921E0822780FB93F99093E001C7 +:103C200083EE0E945D1D882359F09091E00194FB82 +:103C3000882780F921E0822780FB94F99093E001A6 +:103C400085E30E945D1D882359F09091E00195FB6A +:103C5000882780F921E0822780FB95F99093E00185 +:103C600081E30E945D1D882359F09091E00196FB4D +:103C7000882780F921E0822780FB96F99093E00164 +:103C800081E10E945D1D882359F09091E00197FB2E +:103C9000882780F921E0822780FB97F99093E00143 +:103CA0008091E0010E94D11E8091E00187FB88276E +:103CB00080F980930D0187E20E945D1DC82F8EE17F +:103CC0000E945D1D8111C2608FE10E945D1D811106 +:103CD000C46080E20E945D1D8111C86081E20E9483 +:103CE0005D1D8111C06182E20E945D1D8111C06273 +:103CF00083E20E945D1D8111C06484E20E945D1D0B +:103D0000882311F0C06802C0CC2329F08C2F0E94B8 +:103D1000C81E6C2F03C00E94C41E682F70E080E094 +:103D200090E0CF910C94A719CF9108956DEE7EEF9E +:103D300080E090E00E94EC2460E082E090E00E944D +:103D4000DE2460E083E090E00E94DE2460E084E016 +:103D500090E00E94DE2460E085E090E00C94DE2498 +:103D600080E090E00E94D82421E08D3E9E4F09F033 +:103D700020E0822F089582E090E00C94D024682FF8 +:103D800082E090E00C94DE2483E090E00C94D02458 +:103D9000682F83E090E00C94DE2484E090E00C94A3 +:103DA000D024682F84E090E00C94DE248091D5012B +:103DB00080FF0BC06091130185E0689FB001112462 +:103DC00075956795759567952AC081FF09C06091C3 +:103DD000130185E0689FB0011124759567951FC098 +:103DE00082FF07C06091130185E0689FB001112434 +:103DF00016C04091D6014423C9F0609112014617C4 +:103E000088F72091130185E0289F90011124429F9B +:103E1000C001439F900D112470E00E94A2246038DD +:103E2000710540F46115710539F002C065E070E07C +:103E3000862F08958FE7089581E008958091D50138 +:103E400080FF08C06091110170E0759567957595C8 +:103E5000679521C081FF06C06091110170E07595E2 +:103E6000679519C082FF04C06091110170E010C015 +:103E70008091D6018823C1F0609110018617A0F7C8 +:103E800090911101989FC001112470E00E94A2241A +:103E90006038710528F46115710521F0862F0895A9 +:103EA0008FE7089581E0089561E070E0F4CF803FEE +:103EB00021F40E94D61E819504C0813F29F40E94FE +:103EC000D61E8093D9010895823F21F40E94D61E08 +:103ED000819504C0833F29F40E94D61E8093D801A7 +:103EE0000895893F19F40E941E1F05C08A3F31F4CE +:103EF0000E941E1F81958093DA0108958B3F21F463 +:103F00000E941E1F819504C08C3F29F40E941E1F31 +:103F10008093DB010895843F21F48091D701816073 +:103F200017C0853F21F48091D701826011C0863F80 +:103F300021F48091D70184600BC0873F21F48091E8 +:103F4000D701886005C0883F31F48091D701806136 +:103F50008093D70108958D3F21F48091D501816030 +:103F60000BC08E3F21F48091D501826005C08F3F48 +:103F700029F48091D50184608093D5010895803F14 +:103F800039F48091D90187FF6CC01092D90169C0C2 +:103F9000813F29F48091D9011816BCF362C0909139 +:103FA000D801823F29F497FF5CC01092D80159C014 +:103FB000833F19F41916CCF354C0893F41F4809122 +:103FC000DA0118160CF04DC01092DA014AC08A3F8F +:103FD00029F48091DA0187FF44C0F6CF8B3F39F492 +:103FE0008091DB0187FF3DC01092DB013AC08C3F1E +:103FF00029F48091DB011816BCF333C0843F21F40F +:104000008091D7018E7F17C0853F21F48091D70121 +:104010008D7F11C0863F21F48091D7018B7F0BC02B +:10402000873F21F48091D701877F05C0883F31F415 +:104030008091D7018F7E8093D70113C08D3F21F4EB +:104040008091D5018E7F0BC08E3F21F48091D501E8 +:104050008D7F05C08F3F29F48091D5018B7F8093A0 +:10406000D5018091D80181110EC08091D9018111B3 +:104070000AC08091DA01811106C08091DB018111B3 +:1040800002C01092D601089587ED91E00E945A1067 +:104090000E94AE1C9093D4018093D30108951F9386 +:1040A000CF93DF938091D3019091D4010E94BA1CE9 +:1040B0004091D601442321F02091140130E006C044 +:1040C000209115015AE0259F900111248217930732 +:1040D00008F482C08091D8011091D901D091DA0101 +:1040E000C091DB01811107C0111105C0D11103C0BE +:1040F000CC2309F471C04F3F19F04F5F4093D601B4 +:10410000181624F40E94D61E8093D8018091D801FD +:1041100087FF05C00E94D61E81958093D801111695 +:1041200024F40E94D61E8093D9018091D90187FF83 +:1041300005C00E94D61E81958093D9016091D80157 +:10414000662339F11091D901112319F1772767FD01 +:104150007095872F972F0E94B32323E333E343E324 +:104160005FE30E9417240E9480236093D801612F8F +:10417000772767FD7095872F972F0E94B32323E33E +:1041800033E343E35FE30E9417240E94802360939C +:10419000D9011D1624F40E941E1F8093DA0180911C +:1041A000DA0187FF05C00E941E1F81958093DA0106 +:1041B0001C1624F40E941E1F8093DB018091DB01FA +:1041C00087FF05C00E941E1F81958093DB01DF9150 +:1041D000CF911F910C944420DF91CF911F910895AE +:1041E000E7EDF1E085E0DF011D928A95E9F7109295 +:1041F000D6011092D5010895833081F128F48130E1 +:1042000059F08230D1F00895853009F449C0B8F1F1 +:10421000863009F456C0089520911501862F90E04C +:10422000820F911D8F3F910520F4620F609315015D +:1042300008958FEF80931501089520911401862F22 +:1042400090E0820F911D8F3F910520F4620F6093E3 +:10425000140108958FEF80931401089520911301A4 +:10426000862F90E0820F911D8F3F910520F4620F01 +:104270006093130108958FEF8093130108952091A7 +:104280001201862F90E0820F911D8F3F910520F43F +:10429000620F6093120108958FEF809312010895C9 +:1042A00020911101862F90E0820F911D8F3F910583 +:1042B00020F4620F6093110108958FEF8093110134 +:1042C000089520911001862F90E0820F911D8F3F5D +:1042D000910520F4620F6093100108958FEF809391 +:1042E00010010895833011F128F4813049F08230B3 +:1042F00091F00895853081F120F18630C1F1089563 +:1043000080911501681720F4861B8093150108958C +:1043100010921501089580911401681720F4861BEE +:10432000809314010895109214010895809113014F +:10433000681720F4861B80931301089510921301CF +:10434000089580911201681720F4861B8093120152 +:10435000089510921201089580911101681720F4B8 +:10436000861B809311010895109211010895809188 +:104370001001681720F4861B809310010895109295 +:10438000100108958D3109F442C020F58E3009F4F2 +:1043900079C070F4873009F45EC020F4863009F4E7 +:1043A00042C033C08830D1F18B3009F4A7C02DC092 +:1043B000863109F4A3C038F4803109F46DC081312D +:1043C00009F47BC022C0893109F498C08B3109F40B +:1043D0004FC01BC0853309F479C048F4873209F413 +:1043E00075C008F478C0893209F470C00EC08334F7 +:1043F00038F48A3308F071C0883309F47FC005C0EF +:10440000833409F463C08834C1F080E008950E94C9 +:104410003A230E9443100E94480970C00E94BB1EAC +:104420000E94CD1E6BC08091CD01817F8E7F8093D5 +:10443000CD0181E08093DD0108950E94AD152FEF3D +:1044400083ED90E3215080409040E1F700C00000F0 +:104450000E94081D53C09091CD01892F817090FF5B +:1044600003C0917F9E7F26C091609093CD0146C08E +:104470009091CD0191FB882780F921E0822780FB74 +:1044800091F913C09091CD0192FB882780F921E02A +:10449000822780FB92F909C09091CD0193FB882778 +:1044A00080F921E0822780FB93F99093CD01882346 +:1044B00029F191609093CD0108950E94AD158091EE +:1044C0000D0191E0892780930D0118C061E070E033 +:1044D00080E090E00FC023EE01C027EC280F61E0E0 +:1044E00070E080E090E004C0660F771F881F991F7E +:1044F0002A95D2F70E94A7190E94AD1581E0089570 +:1045000080E0089580E00895CF93C82F8091DD0169 +:10451000813079F018F08230D1F184C0A0910E0181 +:10452000B0910F018C91813169F0823209F07CC029 +:1045300009C0A0910E01B0910F018C91813111F051 +:10454000823249F48C2F0E94802281111DC08C2F51 +:104550000E94C2211AC08C2F0E948222811114C095 +:10456000C43179F048F4CB3079F0C03109F060C043 +:1045700082E08093DD0108C0C93219F0C83321F010 +:1045800057C01092DD0154C081E0817053C0C93220 +:1045900089F118F5C43171F1A8F4C73009F046C0AB +:1045A0008AE08093150194E19093140193E0909335 +:1045B00013018093120188E08093110188E28093B7 +:1045C000100134C0CE51C63088F5EC2FF0E0E65D26 +:1045D000FE4F80818093DC0129C0CE34E9F020F4C5 +:1045E000CB3421F56AE013C0C13579F0C235F1F45E +:1045F00061E00DC08091DC01882319F01092DC018C +:1046000015C081E08093DD0115C061E006C0809196 +:10461000DC010E94FC200AC06AE08091DC010E945B +:10462000722104C01092DD0180E004C081E002C06C +:1046300080E0ABCFCF910895E1E8F0E08081886021 +:1046400080838081816080838FB7F89493E090931A +:10465000890090ED909388008FBF0895EFE6F0E019 +:104660008081826080830895EFE6F0E080818D7F15 +:1046700080830895EFE6F0E0808192E089278083CF +:1046800008951F920F920FB60F9211242F933F930C +:104690004F935F936F937F938F939F93AF93BF934A +:1046A000EF93FF938091DE019091DF01019690934B +:1046B000DF018093DE01811103C082E00E9448097E +:1046C000E091DF01E695E695F0E0E258F74FE491DE +:1046D0008091DE018E1303C080E00E944809FF91A3 +:1046E000EF91BF91AF919F918F917F916F915F916A +:1046F0004F913F912F910F900FBE0F901F901895E3 +:1047000004D06894B1118DC0089570D088F09F577F +:1047100090F0B92F9927B751A0F0D1F0660F771F0D +:10472000881F991F1AF0BA95C9F712C0B13081F0ED +:1047300077D0B1E0089574C0672F782F8827B85FCD +:1047400039F0B93FCCF3869577956795B395D9F74E +:104750003EF490958095709561957F4F8F4F9F4F58 +:104760000895E89409C097FB3EF490958095709564 +:1047700061957F4F8F4F9F4F9923A9F0F92F96E9AD +:10478000BB279395F695879577956795B795F11122 +:10479000F8CFFAF4BB0F11F460FF1BC06F5F7F4FBF +:1047A0008F4F9F4F16C0882311F096E911C07723D1 +:1047B00021F09EE8872F762F05C0662371F096E8DA +:1047C000862F70E060E02AF09A95660F771F881FA9 +:1047D000DAF7880F9695879597F9089557FD9058C1 +:1047E000440F551F59F05F3F71F04795880F97FBB5 +:1047F000991F61F09F3F79F087950895121613066F +:104800001406551FF2CF4695F1DF08C0161617069D +:104810001806991FF1CF86957105610508940895D2 +:10482000E894BB2766277727CB0197F908950BD02B +:1048300078C069D028F06ED018F0952309F05AC0DE +:104840005FC01124EECFCADFA0F3959FD1F3950F7F +:1048500050E0551F629FF001729FBB27F00DB11D04 +:10486000639FAA27F00DB11DAA1F649F6627B00D94 +:10487000A11D661F829F2227B00DA11D621F739F7D +:10488000B00DA11D621F839FA00D611D221F749F8B +:104890003327A00D611D231F849F600D211D822FD2 +:1048A000762F6A2F11249F5750408AF0E1F0882319 +:1048B0004AF0EE0FFF1FBB1F661F771F881F915026 +:1048C0005040A9F79E3F510570F014C0AACF5F3F3A +:1048D000ECF3983EDCF3869577956795B795F79559 +:1048E000E7959F5FC1F7FE2B880F911D96958795E1 +:1048F00097F9089597F99F6780E870E060E0089560 +:104900009FEF80EC089500240A94161617061806E7 +:104910000906089500240A941216130614060506C3 +:104920000895092E0394000C11F4882352F0BB0F54 +:1049300040F4BF2B11F460FF04C06F5F7F4F8F4FB7 +:104940009F4F089597FB072E16F4009407D077FD2C +:1049500009D00E94BC2407FC05D03EF490958195B7 +:104960009F4F0895709561957F4F0895EE0FFF1F3B +:104970000590F491E02D0994AA1BBB1B51E107C0DF +:10498000AA1FBB1FA617B70710F0A61BB70B881FDF +:10499000991F5A95A9F780959095BC01CD0108956E +:1049A000F999FECF92BD81BDF89A992780B50895F7 +:1049B000A8E1B0E042E050E00C94F324262FF999EE +:1049C000FECF1FBA92BD81BD20BD0FB6F894FA9AF2 +:1049D000F99A0FBE019608950E94DE24272F0C94A9 +:1049E000DF24DC01CB01FC01F999FECF06C0F2BD4A +:1049F000E1BDF89A319600B40D9241505040B8F79D +:064A00000895F894FFCFB9 +:104A060020024A09D709B40980094D090101BA01F2 +:104A160028080A03140A3F4D36393F08F207BC0737 +:104A2600830716072F0748076107010203040506D7 +:044A36000708090064 :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md index f100dd1c5c..b84237483e 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/readme.md +++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md @@ -45,7 +45,7 @@ The symbol keys are mostly the same as on the default layout, which did a good j The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. -Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with most keys mirrored, but the Delete keys shifted to maintain the directional significance of their arrangement. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the yellow keys, and Enter is right where it should be. +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. ## The Media Layer ## @@ -55,6 +55,7 @@ Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these * The bright green keys are more F-keys * The dark yellow keys signal Web and Audio applications * The light yellow keys signal the operating system +* The uncolored keys do nothing in case you bump them by accident ![Ordinary media layout](ordinary-media.png) @@ -62,14 +63,18 @@ This layer was inspired by the Media layer on the Ergodox EZ but takes it farthe Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. +Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. + ## Switching Between Layers ## -The three Shift keys correspond to three logical layers on top of the ever-present base layer, and are represented in the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. Shift keys work in the expected way: press them and the keys shift to that layer; release them and the keys shift back to the base layer. The Ordinary Layout also features a Shift Lock key to keep a layer active indefinitely. Hold down the Shift Lock key then press any Shift key to lock to that layer. Or, hold down the Shift key and press the Shift Lock key; either way works. To revert to the base layer, use the Shift Lock key again in combination with the Shift key. +The three Shift keys correspond to three logical layers on top of the ever-present base layer, and are represented in the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. Shift keys work in the expected way: press them and the keys shift to that layer; release them and the keys shift back to the base layer. The Ordinary Layout also features a Shift Lock key to keep a layer active indefinitely. Hold down the Shift Lock key then press any Shift key to lock to that layer. Or, hold down the Shift key and press the Shift Lock key; it works either way. To revert to the base layer, use the Shift Lock key again in combination with the Shift key. -This layout attempts to treat the Capitals Shift layer the same as the other two Shift layers, but internally they are different which causes some inconsistencies. For instance, it is possible to switch from any layer to any other layer, and to lock to any layer, *except* it is not possible to go from Media to Symbols. You must exit the Media layer before engaging the Symbols layer. Also, the Caps Lock feature must be triggered by first pressing the Shift Lock key then a Capitals Shift key; it doesn't work if you press the Shift key first (instead you get the secondary symbol associated with the Shift Lock button). +This layout attempts to treat the Capitals Shift layer the same as the other two Shift layers, but internally they are different which causes some inconsistencies. For instance, it is possible to switch from any layer to any other layer, and to lock to any layer, *except* it is not possible to go from Media to Symbols. You must exit the Media layer before engaging the Symbols layer. Also, the Caps Lock feature must be triggered by first pressing the Shift Lock key then a Capitals Shift key; it doesn't work if you press the Shift key first (instead you get the secondary symbol character associated with the Shift Lock button). -## Special Escape Sequence ## +## Special Escape & Backspace Sequences ## -In the Ordinary Layout, the most unsatisfying key location is the Escape key which rightly belongs segregated on its own way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one, in the top left corner, was assigned to the tilde button which is traditionally found in that location. The Escape key is important so it features prominently on the other top corner on the left side of the keyboard, and is always there in all layers. Nevertheless, alas, it isn't Ordinary to put the escape in that different corner! +In the Ordinary Layout, the most unsatisfying key location is the Escape key which rightly belongs segregated on its own way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one, in the top left corner, is home to the tilde (er, grave) which is commonly found there. The Escape key is important so it features prominently on the other top corner on the left side of the keyboard, and is always there in all layers. Nevertheless, alas, it isn't Ordinary to put the escape in that different corner! That tilde key has a second function as the Shift Lock key and that makes possible a special feature. To make this layout as Ordinary as possible, the Escape key can *also* be accessed by pressing Shift Lock then the 1 button right next to it. This easy gesture is a way to partially maintain the ease of flicking your wrist to the left and tapping Escape. This gesture works in all layers. + +Finally, because the special Escape sequence is so natural and useful, on the top right corner of the Ergodox EZ you can do the same gesture with the 0 key to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. These special sequences should feel unremarkably mundane but might prove to be remarkably useful. -- cgit v1.2.3 From 462601f5e8de3476963c6fef44a88653e19fc3fd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 21:25:48 -0400 Subject: breaking changes - restructuring audio.c a little --- keyboard/planck/keymaps/default/keymap.c | 24 ++++++++++---------- keyboard/preonic/keymaps/default/keymap.c | 37 ++++++++++++++++--------------- 2 files changed, 31 insertions(+), 30 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 25a0d78f3b..ccf9c7adef 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} }, -/* Plover layer (http://openstenoproject.org) +/* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -225,16 +225,10 @@ float tone_dvorak[][2] = { {440.0*pow(2.0,(31)/12.0), 8} }; -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); + #endif @@ -324,7 +318,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } @@ -374,3 +368,9 @@ void matrix_init_user(void) { PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 144e9c3086..ecf3400f8d 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -15,7 +15,7 @@ #define _LOWER 3 #define _RAISE 4 #define _MUSIC 5 -#define _ADJUST 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -142,6 +142,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -161,19 +172,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } + }; const uint16_t PROGMEM fn_actions[] = { @@ -315,7 +316,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif @@ -341,11 +341,12 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - _delay_ms(10); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif + play_startup_tone(); +} + +void play_startup_tone() +{ + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() -- cgit v1.2.3 From 5319c2cd6e480a24b8f0c3f8dadbeabfe8f2ab95 Mon Sep 17 00:00:00 2001 From: Nicholas Keene Date: Tue, 19 Apr 2016 21:56:50 -0500 Subject: The Ordinary Layout is the layout you are looking for. Come and see. --- keyboard/ergodox_ez/keymaps/ordinary/keymap.c | 82 ++++++++++----------- .../ergodox_ez/keymaps/ordinary/ordinary-media.png | Bin 117975 -> 121014 bytes .../ergodox_ez/keymaps/ordinary/ordinary-media.txt | 18 ++--- .../keymaps/ordinary/ordinary-symbol.png | Bin 98257 -> 103401 bytes .../keymaps/ordinary/ordinary-symbol.txt | 36 ++++----- keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex | 54 +++++++------- keyboard/ergodox_ez/keymaps/ordinary/readme.md | 2 +- 7 files changed, 96 insertions(+), 96 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c index 15b2d72c35..efd67addd5 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c +++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c @@ -15,7 +15,7 @@ #define UNLOCK 8 // clear to base layer /* - * Ordinary Ergodox EZ keyboard layout, v3.1 + * The Ordinary Layout for the Ergodox EZ keyboard, v3.1 * modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com * Details: readme.md * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary @@ -46,15 +46,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = KEYMAP( // left hand - LT(LOCK, KC_GRV),KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC -,LT(MDIA_SH, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,MO(SYMB_SH) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) -,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + LT(LOCK, KC_GRV) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,LT(MDIA_SH, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,MO(SYMB_SH) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI - ,KC_HOME,KC_END - ,KC_PGUP - ,KC_BSPC,KC_DEL ,KC_PGDN + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN // right hand ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,LT(LOCK, KC_EQL) @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Symbol Shift Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | LOCK | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | LOCK | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -145,11 +145,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_UP ,KC_SPC ,KC_ENT ,KC_DOWN // right hand - ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_SH) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT - ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) ,KC_HOME ,KC_END ,KC_PGUP ,KC_PGDN ,KC_BSPC ,KC_DEL @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 3: Symbol Lock Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | LOCK | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | LOCK | + * | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -187,11 +187,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_UP ,KC_SPC ,KC_ENT ,KC_DOWN // right hand - ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_UN) + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_UN) ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_SH) ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(UNLOCK) ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT - ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) ,KC_HOME ,KC_END ,KC_PGUP ,KC_PGDN ,KC_BSPC ,KC_DEL @@ -244,13 +244,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------. ,-----------------------------------------------------. * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | + * | Media |ShutDn|LClick| MsUp |RClick|Vol Up|ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Symbol | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| Symbol | + * | Symbol | Sleep|MsLeft|MsDown|MsRght|Vol Dn|------| |------|NumLok| Left | Down | Right|MyComp| Symbol | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | LShift | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | + * | LShift | | |MsDown| | Mute |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * | LCtrl| Meh |Hyper | LAlt | LGui | |Insert|Delete| Hyper| LAlt | LGui | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Stop |Refrsh| | Prev | Next | @@ -262,20 +262,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [MDIA_SH] = KEYMAP( // left hand - KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO -,MO(MDIA_SH) ,KC_POWER,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_WH_U -,MO(SYMB_SH) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO -,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_NO ,KC_WH_D -,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_NO ,KC_WHOM + KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(MDIA_SH) ,KC_POWER ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_VOLU ,KC_WH_U +,MO(SYMB_SH) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_SH) ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_SH) ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO + ,GUI_T(KC_INS),ALT_T(KC_DEL),ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY @@ -286,13 +286,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------. ,-----------------------------------------------------. * | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Media |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | + * | Media |ShutDn|LClick| MsUp |RClick|Vol Up|ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | Media | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * | | Sleep|MsLeft|MsDown|MsRght|Vol Dn|------| |------|NumLok| Left | Down | Right|MyComp| | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | LShift | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | + * | LShift | | |MsDown| | Mute |ScrlDn| |ScrlDn| | End | Down | PgDn | | RShift | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * | LCtrl| Meh |Hyper | LAlt | LGui | |Insert|Delete| Hyper| LAlt | LGui | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Stop |Refrsh| | Prev | Next | @@ -304,20 +304,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [MDIA_LK] = KEYMAP( // left hand - MO(MDIA_UN) ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO -,MO(UNLOCK) ,KC_POWER,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_WH_U -,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO -,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_NO ,KC_WH_D -,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_NO ,KC_WHOM + MO(MDIA_UN),KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_NO +,MO(UNLOCK) ,KC_POWER ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_VOLU ,KC_WH_U +,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_LSFT ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM // right hand ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_UN) ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(UNLOCK) ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_NO ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_RSFT - ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO + ,GUI_T(KC_INS),ALT_T(KC_DEL),ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL ,KC_MPRV ,KC_MNXT ,KC_VOLU ,KC_VOLD ,KC_MSTP ,KC_MPLY diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png index 6f7bbf80c9..0ae162431d 100644 Binary files a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png and b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png differ diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt index 3f2143c9d7..cc4c877ebd 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt @@ -3,25 +3,25 @@ [{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F16"], [{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], [{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], -[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#ffb063",a:4},"Home",{x:1},"Page\n\n\n\n\n\nUp"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{c:"#ffb063",a:4,h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], +[{y:-0.875,x:2.5},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], [{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], [{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], [{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5,c:"#e6e067",a:4},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], [{y:-0.875,c:"#cccccc",a:7,w:1.5},"",{c:"#e6e067",a:4},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#cccccc",a:7,w:1.5},""], [{y:-0.625,x:6.5,c:"#ffb063",a:4,h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], [{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], [{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#ffb063",a:4},"End",{x:1},"Page\n\n\n\n\n\nDown"], -[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5},""], +[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#cccccc",a:7},""], [{y:-0.875,c:"#2277ff",a:4,f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063"},"Delete"], -[{y:-0.875,x:2.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{x:1,c:"#ff8500"},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert",{x:1,c:"#cccccc",a:7},""], -[{y:-0.75,x:0.5,c:"#e6e067",a:4},"Mute","Vol\n\n\n\n\n\nDown",{x:14.5,c:"#cccccc",a:7},"",""], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#b5ad04",a:4},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#ffb063"},"Delete\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], [{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], [{x:2},"Home\n\n\nBrowser"], [{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#b5ad04",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], [{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png index 2538fbeb30..b3101e5c04 100644 Binary files a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png and b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png differ diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt index 098a08d2f1..35efdba7d6 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt @@ -1,27 +1,27 @@ [{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], [{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], -[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F6"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], [{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], -[{y:-0.375,x:3.5,c:"#c4e0bf"},"{",{x:10.5,c:"#89b087"},"8"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], -[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#c4e0bf"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#c4e0bf"},"(",{x:10.5,c:"#89b087"},"5"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"`",{x:6.5},"/"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#c4e0bf",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], [{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], -[{y:-0.75,x:3.5,c:"#c4e0bf"},"[",{x:10.5,c:"#89b087"},"2"], -[{y:-0.875,x:2.5,c:"#c4e0bf"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], -[{y:-0.875,x:5.5,c:"#c4e0bf"},"~",{x:6.5},"\\"], -[{y:-0.875,c:"#2277ff",f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#c4e0bf"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#cccccc",a:7},"",{x:10.5,c:"#89b087",a:4},"."], -[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#89b087",a:4},"0",{x:1},"="], -[{y:-0.75,x:0.5,c:"#cccccc",a:7},"","",{x:14.5,c:"#89b087",a:4},"+","Enter"], +[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",fa:[0,1,0,1,0,0,1],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], +[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], [{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], [{h:2},"Space",{h:2},"Enter","Up"], [{x:2},"Down"], [{r:-30,rx:13,y:-1,x:-3},"Home","End"], -[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], -[{x:-3},"Page\n\n\n\n\n\nDown"] +[{x:-3,f:3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3,f:3},"Page\n\n\n\n\n\nDown"] diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex index 430d7f4a8d..8e2d5ce26d 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex @@ -38,23 +38,23 @@ :100250003B001F0221022302010028003C002F0264 :1002600026022F0001002C003D0030022702300042 :10027000010052003E00240235003502000050000B -:100280000100360200002B0000004F000100370281 +:100280000100360200002B0000004F002D00370255 :1002900000002B0200004A003F003102380031000C -:1002A00000004D004000240021001E0027004B00EC -:1002B0004100250022001F0037004C0042002600AC -:1002C000230020002E002A004300380025022D00C4 -:1002D0002E024E00C20005520252E5002800000026 +:1002A00000004D004000240021001E0027784B0074 +:1002B0004100250022001F0037744C004200260038 +:1002C000230020002E7F2A004300380025022D0045 +:1002D0002E774E00C20005520252E5002871000040 :1002E000045205520852E100010000003A001E02CB :1002F00020022202010051003B001F0221022302C2 :10030000010028003C002F0226022F0001002C00D3 :100310003D00300227023000010052003E0024025E :1003200035003502000050000100360200002B00AD -:1003300000004F000100370200002B0200004A00BD +:1003300000004F002D00370200002B0200004A0091 :100340003F0031023800310000004D004000240021 -:1003500021001E0027004B004100250022001F0045 -:1003600037004C0042002600230020002E002A0007 -:100370004300380025022D002E024E000452055283 -:100380000852E5002800000001000654C1003900B1 +:1003500021001E0027784B004100250022001F00CD +:1003600037744C0042002600230020002E7F2A0014 +:100370004300380025022D002E774E00045205520E +:100380000852E5002871000001000654C100390040 :10039000010000002900010001000100010001002E :1003A0000100010001000100010001000100010045 :1003B0000100010001000100010001000100010035 @@ -65,27 +65,27 @@ :1004000001000100010001000100010001000100E4 :1004100001000100010001002A00010001000100AB :100420000100010001000654C10039000100000074 -:10043000C30005520252E100A8000000440066001B -:10044000A6000000AA00B50045000000F200000070 -:10045000A90000006800F000F100F100F400B6000F -:1004600069000000F3000000F500B4006A0000001D -:10047000000000000000B8000000F9000000FA00D1 +:10043000C30005520252E100E000000044006600E3 +:10044000A60000000077B5004500F400F2000000AF +:10045000007F00006800F000F100F100E200B6004B +:100460006900F500F3000000E300B4006A00A90091 +:10047000AA00A8000000B8000000F9000000FA007F :100480000000B9000000F9000000FA000000AC0014 :100490006B004600530000000000AB006C004A00F7 -:1004A00050004D004900A9006D005200510051005C -:1004B0004C00AE006E004B004F004E000000AD003F -:1004C0006F00B100B30000000000AA00C300055295 -:1004D0000252E50000000000075208520000E1004F -:1004E000A800000044006600A6000000AA00B500B5 -:1004F00045000000F2000000A90000006800F000C4 -:10050000F100F100F400B60069000000F300000003 -:10051000F500B4006A000000000000000000B80010 +:1004A00050004D004978A9006D00520051005100E4 +:1004B0004C74AE006E004B004F004E00007FAD004C +:1004C0006F00B100B30000000077AA00C30005521E +:1004D0000252E500E4000000075208520000E1006B +:1004E000E000000044006600A60000000077B500B0 +:1004F0004500F400F2000000007F00006800F000FA +:10050000F100F100E200B6006900F500F300000020 +:10051000E300B4006A00A900AA00A8000000B80027 :100520000000F9000000FA000000B9000000F90026 :100530000000FA000000AC006B0046005300000011 -:100540000000AB006C004A0050004D004900A900BB -:100550006D005200510051004C00AE006E004B0087 -:100560004F004E000000AD006F00B100B30000006E -:100570000000AA00075208520000E5000000000039 +:100540000000AB006C004A0050004D004978A90043 +:100550006D005200510051004C74AE006E004B0013 +:100560004F004E00007FAD006F00B100B3000000EF +:100570000077AA00075208520000E500E4000000DE :100580000100C10001003900010000002900010044 :100590000100010001000100010001000100010053 :1005A0000100010001000100010001000100010043 diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md index b84237483e..842dc7ee19 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/readme.md +++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md @@ -18,7 +18,7 @@ no rights reserved, use for any purposes, credit me if you are a nice person ![Ordinary base layout](ordinary-base.png) -This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. -- cgit v1.2.3 From de4690593cec908b19f97509f45c78534fd5440f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 01:08:17 -0400 Subject: fixed startup audio with a 500ms delay --- keyboard/planck/keymaps/default/keymap.c | 1 - keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 43 +++++-------------------------- 3 files changed, 7 insertions(+), 39 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ccf9c7adef..29a3ccf6ad 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -364,7 +364,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e27201..c2648d2294 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) +CONSOLE_ENABLE = on # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index ecf3400f8d..9ee803b063 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,6 +3,7 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" + #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -189,43 +190,10 @@ float start_up[][2] = { {440.0*pow(2.0,(26)/12.0), 8} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; - -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -341,12 +309,13 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { + // audio_init(); play_startup_tone(); } void play_startup_tone() { - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); } void play_goodbye_tone() -- cgit v1.2.3