diff options
Diffstat (limited to 'keyboard/hhkb')
-rw-r--r-- | keyboard/hhkb/Makefile | 86 | ||||
-rw-r--r-- | keyboard/hhkb/README.md | 180 | ||||
-rw-r--r-- | keyboard/hhkb/config.h | 71 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb.c | 29 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb.h | 30 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb_avr.h | 167 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/default/compiled.hex | 1381 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/default/keymap.c | 78 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/lxol/compiled.hex | 1421 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/lxol/keymap.c | 208 | ||||
-rw-r--r-- | keyboard/hhkb/matrix.c | 204 |
11 files changed, 0 insertions, 3855 deletions
diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile deleted file mode 100644 index 53eece3969..0000000000 --- a/keyboard/hhkb/Makefile +++ /dev/null @@ -1,86 +0,0 @@ - - -# project specific files -SRC = matrix.c - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -#OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -# as per original hasu settings -OPT_DEFS += -DBOOTLOADER_SIZE=512 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -# MIDI_ENABLE ?= YES # MIDI controls -# UNICODE_ENABLE ?= YES # Unicode -# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID - - - -ifndef QUANTUM_DIR - include ../../Makefile -endif - -debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION -debug-on: all - -debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT -debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) -debug-off: all diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md deleted file mode 100644 index 389407b3aa..0000000000 --- a/keyboard/hhkb/README.md +++ /dev/null @@ -1,180 +0,0 @@ -hhkb_qmk keyboard firmware -====================== - -## Quantum MK Firmware - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_<layout>.h" - -Where <layout> is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `รน` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_<n>` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. - -## Building - -Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|<name>] -``` -Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb/config.h b/keyboard/hhkb/config.h deleted file mode 100644 index ee66e44571..0000000000 --- a/keyboard/hhkb/config.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2012 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE -#define DEVICE_VER 0x0104 -#define MANUFACTURER q.m.k -#define PRODUCT HHKB mod -#define DESCRIPTION q.m.k keyboard firmware for HHKB - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 - -#define TAPPING_TERM 200 - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. -*/ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboard/hhkb/hhkb.c b/keyboard/hhkb/hhkb.c deleted file mode 100644 index 6897026c6c..0000000000 --- a/keyboard/hhkb/hhkb.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "hhkb.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; diff --git a/keyboard/hhkb/hhkb.h b/keyboard/hhkb/hhkb.h deleted file mode 100644 index 093d7aeabc..0000000000 --- a/keyboard/hhkb/hhkb.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef HHKB_H -#define HHKB_H - -#include "matrix.h" -#include "keymap.h" -//#include "backlight.h" -#include <stddef.h> - -#define KEYMAP( \ - K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ - K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ - K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ - K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ - K35, K36, K37, K57, K56) \ - \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ - { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ -} - -void matrix_init_user(void); -void matrix_scan_user(void); - -#endif diff --git a/keyboard/hhkb/hhkb_avr.h b/keyboard/hhkb/hhkb_avr.h deleted file mode 100644 index 7ea6322c73..0000000000 --- a/keyboard/hhkb/hhkb_avr.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef HHKB_AVR_H -#define HHKB_AVR_H - -#include <stdint.h> -#include <stdbool.h> -#include <avr/io.h> -#include <avr/interrupt.h> -#include <util/delay.h> - - -// Timer resolution check -#if (1000000/TIMER_RAW_FREQ > 20) -# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." -#endif - - -/* - * HHKB Matrix I/O - * - * row: HC4051[A,B,C] selects scan row0-7 - * row-ext: [En0,En1] row extention for JP - * col: LS145[A,B,C,D] selects scan col0-7 and enable(D) - * key: on: 0/off: 1 - * prev: hysteresis control: assert(1) when previous key state is on - */ - - -#if defined(__AVR_ATmega32U4__) -/* - * For TMK HHKB alt controller(ATMega32U4) - * - * row: PB0-2 - * col: PB3-5,6 - * key: PD7(pull-uped) - * prev: PB7 - * power: PD4(L:off/H:on) - * row-ext: PC6,7 for HHKB JP(active low) - */ -static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } -static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } -static inline bool KEY_STATE(void) { return (PIND & (1<<7)); } -static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } -static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } -#ifdef HHKB_POWER_SAVING -static inline void KEY_POWER_ON(void) { - DDRB = 0xFF; PORTB = 0x40; // change pins output - DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on - /* Without this wait you will miss or get false key events. */ - _delay_ms(5); // wait for powering up -} -static inline void KEY_POWER_OFF(void) { - /* input with pull-up consumes less than without it when pin is open. */ - DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up - DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off -} -static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } -#else -static inline void KEY_POWER_ON(void) {} -static inline void KEY_POWER_OFF(void) {} -static inline bool KEY_POWER_STATE(void) { return true; } -#endif -static inline void KEY_INIT(void) -{ - /* row,col,prev: output */ - DDRB = 0xFF; - PORTB = 0x40; // unable - /* key: input with pull-up */ - DDRD &= ~0x80; - PORTD |= 0x80; -#ifdef HHKB_JP - /* row extention for HHKB JP */ - DDRC |= (1<<6|1<<7); - PORTC |= (1<<6|1<<7); -#endif - KEY_UNABLE(); - KEY_PREV_OFF(); - - KEY_POWER_OFF(); -} -static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) -{ - PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); -#ifdef HHKB_JP - if ((ROW) & 0x08) PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<6); - else PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<7); -#endif -} - - -#elif defined(__AVR_AT90USB1286__) -/* - * For Teensy++(AT90USB1286) - * - * HHKB pro HHKB pro2 - * row: PB0-2 (6-8) (5-7) - * col: PB3-5,6 (9-12) (8-11) - * key: PE6(pull-uped) (4) (3) - * prev: PE7 (5) (4) - * - * TODO: convert into 'staitc inline' function - */ -#define KEY_INIT() do { \ - DDRB |= 0x7F; \ - DDRE |= (1<<7); \ - DDRE &= ~(1<<6); \ - PORTE |= (1<<6); \ -} while (0) -#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \ - (((COL) & 0x07)<<3) | \ - ((ROW) & 0x07)) -#define KEY_ENABLE() (PORTB &= ~(1<<6)) -#define KEY_UNABLE() (PORTB |= (1<<6)) -#define KEY_STATE() (PINE & (1<<6)) -#define KEY_PREV_ON() (PORTE |= (1<<7)) -#define KEY_PREV_OFF() (PORTE &= ~(1<<7)) -#define KEY_POWER_ON() -#define KEY_POWER_OFF() -#define KEY_POWER_STATE() true - - -#else -# error "define code for matrix scan" -#endif - - -#if 0 -// For ATMega328P with V-USB -// -// #elif defined(__AVR_ATmega328P__) -// Ports for V-USB -// key: PB0(pull-uped) -// prev: PB1 -// row: PB2-4 -// col: PC0-2,3 -// power: PB5(Low:on/Hi-z:off) -#define KEY_INIT() do { \ - DDRB |= 0x3E; \ - DDRB &= ~(1<<0); \ - PORTB |= 1<<0; \ - DDRC |= 0x0F; \ - KEY_UNABLE(); \ - KEY_PREV_OFF(); \ -} while (0) -#define KEY_SELECT(ROW, COL) do { \ - PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \ - PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \ -} while (0) -#define KEY_ENABLE() (PORTC &= ~(1<<3)) -#define KEY_UNABLE() (PORTC |= (1<<3)) -#define KEY_STATE() (PINB & (1<<0)) -#define KEY_PREV_ON() (PORTB |= (1<<1)) -#define KEY_PREV_OFF() (PORTB &= ~(1<<1)) -// Power supply switching -#define KEY_POWER_ON() do { \ - KEY_INIT(); \ - PORTB &= ~(1<<5); \ - _delay_ms(1); \ -} while (0) -#define KEY_POWER_OFF() do { \ - DDRB &= ~0x3F; \ - PORTB &= ~0x3F; \ - DDRC &= ~0x0F; \ - PORTC &= ~0x0F; \ -} while (0) -#endif - -#endif diff --git a/keyboard/hhkb/keymaps/default/compiled.hex b/keyboard/hhkb/keymaps/default/compiled.hex deleted file mode 100644 index b3af695270..0000000000 --- a/keyboard/hhkb/keymaps/default/compiled.hex +++ /dev/null @@ -1,1381 +0,0 @@ -:100000000C9452060C9496060C9496060C94960644
-:100010000C9496060C9496060C9496060C949606F0
-:100020000C9496060C9496060C945A110C942C126F
-:100030000C941C1F0C9496060C9496060C94960631
-:100040000C9496060C9496060C9496060C949606C0
-:100050000C9496060C94BC1F0C9496060C94960671
-:100060000C9496060C9496060C9496060C949606A0
-:100070000C9496060C9496060C9496060C94960690
-:100080000C9496060C9496060C9496060C94960680
-:100090000C9496060C9496060C9496060C94960670
-:1000A0000C9496060C9496060C9496069912BB1224
-:1000B000A913BB12A91300132313A91378138B13CD
-:1000C0006516651694169416D316F316231823187E
-:1000D000FE162318AE17AE171418231823181D1870
-:1000E000BB17BB17BB17BB17BB17BB17BB17BB1780
-:1000F000BB17BB17BB17BB17BB17BB17BB17BB1770
-:10010000CB17D917E017E717F117253032583A20E7
-:10011000253038620A000A722F63203031323334BE
-:100120003536370A001F0014001A00160004001D9F
-:10013000001B000600200021001500080007000930
-:100140000019000500220023001C0017000A000B04
-:1001500000110000001E0029002B00E000E100E279
-:1001600000E3002C002400250018000C000E000DF8
-:100170000010000000310035002A0028000152E57F
-:1001800000E600E700260027001200130033000FEE
-:1001900000360000002D002E0030002F0034003803
-:1001A00000370000003B0001000100A900AA000187
-:1001B00000010001003C003D0001000100A8000119
-:1001C00000010001003E003F000100010001005558
-:1001D00000570000003A00A50039000100010001AD
-:1001E000000100010040004100010046004A0054A7
-:1001F000005600000049004C002A00580001000190
-:100200000001000100420043004700480050004B3D
-:10021000004D00000044004500010052004F005115
-:10022000004E0000000A44454255473A20656E6181
-:10023000626C65642E0A005B735D004B6579626FCA
-:100240006172642073746172742E0A005B575D00E2
-:100250005B535D005B525D005B445D005B435D0092
-:100260001203480048004B00420020006D006F0060
-:10027000640000000C0371002E006D002E006B0066
-:1002800000000403090409027400040100A0FA0933
-:100290000400000103010100092111010001223FB6
-:1002A000000705810308000A090401000103010297
-:1002B00000092111010001224D00070582030800F9
-:1002C0000A090402000103000000092111010001D4
-:1002D0002236000705830308000A0904030002030D
-:1002E00000000009211101000122200007058403FC
-:1002F0002000010705040320000112011001000085
-:100300000008EDFEFECA0401010200010631FF09EA
-:1003100074A1010975150025FF9520750881020952
-:1003200076150025FF952075089102C0050109800A
-:10033000A101850216010026B7001A01002AB700A4
-:10034000751095018100C0050C0901A101850316F6
-:100350000100269C021A01002A9C02751095018159
-:1003600000C005010902A1010901A1000509190147
-:100370002905150025019505750181029501750373
-:1003800081010501093009311581257F9502750824
-:10039000810609381581257F950175088106050CB0
-:1003A0000A38021581257F950175088106C0C005B0
-:1003B000010906A101050719E029E71500250195A6
-:1003C0000875018102950175088101050819012947
-:1003D00005950575019102950175039101050719B0
-:1003E0000029FF150025FF950675088100C00A0049
-:1003F0002530325820006B6579626F6172645F72DC
-:1004000065706F72743A20004B6579626F61726437
-:10041000204C4544732073746174653A2025780A32
-:1004200000646F6E652E0A00626F6F676D616769A9
-:1004300063207363616E3A202E2E2E2000290A005D
-:100440002575002F002575005D280025640020001B
-:10045000256400200025640020002564007C002520
-:10046000303258006D6F7573656B6579205B62740F
-:100470006E7C782079207620685D287265702F6107
-:10048000636C293A205B006D6B5F776865656C5F14
-:1004900074696D655F746F5F6D6178203D202564C0
-:1004A0000A006D6B5F776865656C5F6D61785F737F
-:1004B00070656564203D2025640A006D6B5F74697A
-:1004C0006D655F746F5F6D6178203D2025640A0063
-:1004D0006D6B5F6D61785F7370656564203D20258D
-:1004E000640A006D6B5F696E74657276616C203DA5
-:1004F0002025640A006D6B5F64656C6179203D2086
-:1005000025640A006D6B5F776865656C5F74696D63
-:10051000655F746F5F6D6178203D2025640A006D12
-:100520006B5F776865656C5F6D61785F737065653B
-:1005300064203D2025640A006D6B5F74696D655F02
-:10054000746F5F6D6178203D2025640A006D6B5FDC
-:100550006D61785F7370656564203D2025640A00D5
-:100560006D6B5F696E74657276616C203D202564E9
-:100570000A006D6B5F64656C6179203D2025640A1B
-:10058000000A00257500363A20776865656C5F744F
-:10059000696D655F746F5F6D61783A20000A0025B0
-:1005A0007500353A20776865656C5F6D61785F73BB
-:1005B000706565643A20000A00257500343A20749D
-:1005C000696D655F746F5F6D61783A20000A002580
-:1005D0007500333A206D61785F73706565643A2009
-:1005E000000A00257500323A20696E7465727661E2
-:1005F0006C286D73293A20000A00257500313A20D5
-:1006000064656C6179282A31306D73293A20000ABB
-:10061000092D2056616C756573202D0A004D3E0032
-:100620004D25643E20003F0073657420646566615B
-:10063000756C740A00433E2000776865726520641B
-:10064000656C74613A20637572736F723D25642C1A
-:1006500020776865656C3D25640A5365652068747C
-:1006600074703A2F2F656E2E77696B6970656469B7
-:10067000612E6F72672F77696B692F4D6F75736588
-:100680005F6B6579730A000A092D204D6F757365DC
-:100690006B6579202D0A4553432F713A09717569AD
-:1006A000740A313A0964656C6179282A31306D73B6
-:1006B000290A323A09696E74657276616C286D7325
-:1006C000290A333A096D61785F73706565640A348D
-:1006D0003A0974696D655F746F5F6D61780A353AC8
-:1006E00009776865656C5F6D61785F7370656564D7
-:1006F0000A363A09776865656C5F74696D655F7481
-:100700006F5F6D61780A0A703A097072696E7420C1
-:1007100076616C7565730A643A0973657420646563
-:100720006661756C74730A75703A092B310A646FCF
-:10073000776E3A092D310A706775703A092B31309E
-:100740000A7067646F776E3A092D31300A0A737048
-:10075000656564203D2064656C7461202A206D61AC
-:10076000785F7370656564202A2028726570656102
-:1007700074202F2074696D655F746F5F6D617829D7
-:100780000A003F004D3E2000433E20004C25640AF5
-:100790000074696D65725F636F756E743A20253001
-:1007A000346C580A006B6579626F6172645F6964CA
-:1007B0006C653A2025580A006B6579626F61726436
-:1007C0005F70726F746F636F6C3A2025580A00680F
-:1007D0006F73745F6B6579626F6172645F6C65647F
-:1007E0007328293A2025580A000A092D20537461DC
-:1007F000747573202D0A004743433A20342E392E56
-:1008000032204156522D4C4942433A20312E382E47
-:1008100031204156525F415243483A206176723549
-:100820000A004F5054494F4E533A204C55464120F0
-:10083000424F4F544D41474943204D4F5553454B2F
-:1008400045592045585452414B455920434F4E532A
-:100850004F4C4520434F4D4D414E44203531320AD7
-:10086000004255494C443A20313637313865662DBF
-:100870006469727479202832333A33393A32382035
-:100880004A756E2020392032303136290A00564907
-:10089000443A2030784645454428712E6D2E6B2908
-:1008A000205049443A203078434146452848484B37
-:1008B00042206D6F6429205645523A2030783031FD
-:1008C00030340A00444553433A20712E6D2E6B207C
-:1008D0006B6579626F617264206669726D776172AF
-:1008E0006520666F722048484B420A000A092D2095
-:1008F00056657273696F6E202D0A000A092D204318
-:100900006F6E736F6C65202D0A4553432F713A0942
-:10091000717569740A6D3A096D6F7573656B6579E8
-:100920000A000A092D204D61676963202D0A443AA7
-:10093000094465627567204D65737361676520546E
-:100940006F67676C650A583A094D6174726978205F
-:100950004465627567204D6F646520546F67676CEE
-:1009600065202D2053686F77206B657970726573F1
-:1009700073657320696E206D617472697820677287
-:1009800069640A4B3A094B6579626F61726420446D
-:100990006562756720546F67676C65202D2053680A
-:1009A0006F77206B65797072657373207265706FF5
-:1009B00072740A4D3A094465627567204D6F75730C
-:1009C0006520546F67676C650A563A0956657273FD
-:1009D000696F6E0A533A095374617475730A433A26
-:1009E00009416374697661746520436F6E736F6C3F
-:1009F00065204D6F64650A46312D4631303A095302
-:100A0000776974636820746F204C61796572203057
-:100A10002D392028463130203D204C30290A302DF8
-:100A2000393A0953776974636820746F204C61798F
-:100A3000657220302D390A4553433A09537769745A
-:100A4000636820746F204C617965722030202861C2
-:100A50006C7465726E617465206B65792031290A4A
-:100A600047524156453A0953776974636820746F59
-:100A7000204C6179657220302028616C7465726E3B
-:100A8000617465206B65792032290A5041555345C0
-:100A90003A094A756D7020746F20426F6F746C6FE5
-:100AA0006164657220285265736574290A453A09A4
-:100AB0005072696E7420454550524F4D20536574F5
-:100AC00074696E67730A000A002575002E6E6B72DA
-:100AD0006F3A20000A002575002E737761705F62FF
-:100AE00061636B736C6173685F6261636B73706188
-:100AF00063653A20000A002575002E737761705FE8
-:100B000067726176655F6573633A20000A00257538
-:100B1000002E6E6F5F6775693A20000A0025750028
-:100B20002E737761705F72616C745F726775693A7A
-:100B300020000A002575002E737761705F6C616C70
-:100B4000745F6C6775693A20000A002575002E6392
-:100B50006170736C6F636B5F746F5F636F6E7472E1
-:100B60006F6C3A20000A002575002E737761705F64
-:100B7000636F6E74726F6C5F636170736C6F636BC5
-:100B80003A20000A0025303258006B65796D61709B
-:100B90005F636F6E6669672E7261773A20000A00A4
-:100BA0002575002E6D6F7573653A20000A00257556
-:100BB000002E6B6579626F6172643A20000A00252D
-:100BC00075002E6D61747269783A20000A002575EF
-:100BD000002E656E61626C653A20000A0025303295
-:100BE000580064656275675F636F6E6669672E7231
-:100BF00061773A20000A0025750064656661756CAE
-:100C0000745F6C617965723A20003F000A6D6F7500
-:100C100073653A206F66660A000A6D6F7573653AF0
-:100C2000206F6E0A000A6B6579626F6172643A2008
-:100C30006F66660A000A6B6579626F6172643A20BA
-:100C40006F6E0A000A6D61747269783A206F666689
-:100C50000A000A6D61747269783A206F6E0A000AA0
-:100C600064656275673A206F66660A000A646562A9
-:100C700075673A206F6E0A000A0A4A756D70696ED0
-:100C80006720746F20626F6F746C6F616465722E81
-:100C90002E2E2000433E20006565636F6E666967F7
-:100CA0003A0A000011241FBECFEFDAE0DEBFCDBF4D
-:100CB00004B603FE24C08091E0019091E101A0916F
-:100CC000E201B091E3018730904BA740B04BB9F4FB
-:100CD0001092E0011092E1011092E2011092E30102
-:100CE00014BE84B7877F84BF88E10FB6F8948093E1
-:100CF0006000109260000FBEE0E0FFE3099511E094
-:100D0000A0E0B1E0ECEFF5E502C005900D92A23352
-:100D1000B107D9F711E0A2E3B1E001C01D92A03EF6
-:100D2000B107E1F70E94940E0C94FC2A0C94000089
-:100D3000FF93EF93E0913201F0913301309709F086
-:100D40000995EF91FF910895FC018591803011F094
-:100D5000EFDFFBCF0895FF27E0E230E247FF0CC052
-:100D6000419597FF09C0EDE260957095809590954B
-:100D7000611D711D811D911D27FF02C0219530E36A
-:100D800050E2AA27660F771F881F991FAA1FA41772
-:100D900010F0A41B63955A95A9F7AA3008F0A95F33
-:100DA000A05DAF93F395611571058105910541F73C
-:100DB000ED3211F4EF93F395F21718F43F93F39596
-:100DC000FBCF8F91B5DFFA95E1F70895E991F9919D
-:100DD0008591803021F0853219F0AADFF9CF08958E
-:100DE00020E0E89455915532C1F3503311F46894E2
-:100DF00055915A3348F4505390F3220F022E220F8C
-:100E0000220F200D250FF4CF0EF421958991999191
-:100E1000533619F3533729F1533559F1BC0188275B
-:100E20009927E8945C3621F48991999168945591B9
-:100E3000543639F446EF7EF077FF0DC08FEF9FEF09
-:100E40000AC055374AE039F0583540E121F05236B2
-:100E500042E009F00895FF93EF937DDFEF91FF915A
-:100E6000B7CFFF93EF93FC0181918030B9F360DF3E
-:100E7000FBCFFF93EF9368DFF1CFDF93CF93CDB735
-:100E8000DEB72596A3DFCF91DF9108958FEF84B968
-:100E900080E485B957985F9A2E9A2F98ECE3F1E099
-:100EA00088E08E0F11928E13FDCFE4E3F1E088E02D
-:100EB0008E0F11928E13FDCF8CE391E0909347013A
-:100EC0008093460184E391E090934501809344012F
-:100ED0000895EF92FF920F931F93CF93DF9380912A
-:100EE0004401909145012091460130914701309392
-:100EF0004501209344019093470180934601C0E04F
-:100F0000D0E0EE24E394F12C0FEF10E020E030E08D
-:100F100085B1807C8C2BA90193E0440F551F9A95D5
-:100F2000E1F7842B85B98AE18A95F1F700C0E09159
-:100F30004401F0914501EC0FFD1F808190E0022EED
-:100F400002C0959587950A94E2F780FD2F9A95E364
-:100F50009A95F1F70000E6B52E988AE18A95F1F7A7
-:100F600000C04091460150914701DA01AC0FBD1F0E
-:100F70004F9B0AC0C701022E01C0880F0A94EAF7EE
-:100F800080959C91892308C06C91C701022E01C0F5
-:100F9000880F0A94EAF7862B8C9386B56E2F70E043
-:100FA0008E1728F086B590E0861B970B06C0E6B535
-:100FB000C801861B970B8E0F911D069758F0E09184
-:100FC0004401F0914501EC0FFD1F8081FA01EC0F07
-:100FD000FD1F80839AE19A95F1F700C02F982E9A11
-:100FE0008BE291E00197F1F700C000002F5F3F4FC7
-:100FF0002830310509F08CCFA0914601B09147010E
-:10100000AC0FBD1FE0914401F0914501EC0FFD1FB5
-:101010009C918081981751F00E945A1F609348015B
-:101020007093490180934A0190934B012196C830F7
-:10103000D10509F06BCF8091D601853021F08091E8
-:10104000D601811111C060914801709149018091D0
-:101050004A0190914B010E94901F613177428105B6
-:10106000910510F00E94DF1E81E0DF91CF911F916A
-:101070000F91FF90EF900895209146013091470124
-:10108000F901E80FF11D808108950F931F93CF930D
-:10109000DF9386E191E00E94A406C0E0D0E00AE080
-:1010A00011E0E0914601F0914701EC0FFD1F8081B6
-:1010B0000E94C91E1F928F93DF93CF931F930F93AC
-:1010C0000E943D0721960F900F900F900F900F9068
-:1010D0000F90C830D10529F7DF91CF911F910F9163
-:1010E00008951F93CF93DF93C7E0D0E010E0E09125
-:1010F0004601F0914701EC0FFD1F808190E00E94B6
-:10110000BD1E180F219798F7812FDF91CF911F9166
-:1011100008950895089561110BC0FC018281882310
-:1011200021F085EE0E94591503C085EE0E94F81546
-:1011300080E090E0089581E0089581E008950C94A6
-:101140009D0808950F931F93CF93DF938C01FC01AB
-:10115000C081D181CE010E94871DBE010E944B0932
-:10116000EC01B8010E949F08882309F48DC0F801A2
-:101170008281882309F44AC08091570181111FC0E0
-:10118000C431F0E5DF0709F051C00E94A10881E0F9
-:10119000809357010E944E1F9093560180935501F2
-:1011A00010924E011092500110924F011092520174
-:1011B00010925101109254011092530165C0809118
-:1011C0005501909156010E94661F883C910570F46C
-:1011D00080914E01E82FF0E0EE0FFF1FE15BFE4F24
-:1011E000D183C0838F5F80934E014EC0C43880E5A9
-:1011F000D80721F0C538D04501F13AC0F801828105
-:10120000882341F010924C0182E01EC0C438E0E512
-:10121000DE0759F580914C01811106C086E20E94DB
-:10122000591586E20E94F81582E01CC0C438F0E52A
-:10123000DF0741F3C538D045D9F4F801828188230E
-:1012400031F010924D0180E20E9420161DC0809165
-:101250004D01811106C087E20E94591587E20E9464
-:10126000F81580E20E9427160FC0C538D04529F333
-:1012700081E080934C0180934D01C801DF91CF91B3
-:101280001F910F910C949B0880E0DF91CF911F91EB
-:101290000F9108950895E72FF0E098E0899FE00D01
-:1012A000F11D112483E0EE0FFF1F8A95E1F7E60F91
-:1012B000F11DEE0FFF1FEB5DFE4F85919491089598
-:1012C000880F991FFC01EB55F0408591949108958A
-:1012D000880F991FFC01EB5DFE4F85919491089555
-:1012E0000F931F93CF93DF93EC01811520E39207B7
-:1012F00050F5C11580E2D80708F0C3C0CB3BD1053B
-:1013000090F4C83AD10508F06AC0C53AD10508F092
-:101310005BC0C430D10508F0D4C1219709F0CEC11B
-:1013200001E010E00EC2CF3FD10511F008F0C9C1B5
-:10133000C03FD10508F0A2C0CE01805E9109089798
-:1013400008F4BFC1BBC1C13090E5D90709F4A2C000
-:1013500020F5C0318FE4D80770F4C11590E4D907A7
-:1013600008F094C0C11521E3D20708F0A7C1DD271A
-:101370008E01106CE6C1C115D04509F09FC10E94D5
-:101380008E188FEF94E32CE0815090402040E1F7DD
-:1013900000C000000E94E11FD4C1C11597E5D90724
-:1013A00058F4C03121E5D20708F020C1C43180E5EE
-:1013B000D80708F479C082C1CE01905781159041B9
-:1013C00008F07CC1DF7077C1C53AD10509F47BC153
-:1013D000C63AD10509F07AC102E810E4B2C1C83AB0
-:1013E000D10509F476C1C93AD10509F475C1CA3AE3
-:1013F000D10509F474C1CB3AD10509F473C1CC3AD3
-:10140000D10509F472C1CD3AD10509F471C1C03BCF
-:10141000D10509F470C1CE3AD10509F46FC1CF3AB4
-:10142000D10509F46EC1C13BD10509F46DC1C23BC0
-:10143000D10509F46CC1C33BD10509F46BC1C43BB0
-:10144000D10509F46AC1C53BD10509F469C1C63BA0
-:10145000D10509F468C1C73BD10509F467C1C83B90
-:10146000D10509F466C1C93BD10509F465C1CA3B80
-:10147000D10509F464C100E014E463C18E01106574
-:1014800060C1CE019F700E9468095CC1DF708E014F
-:10149000106A57C185E292E00E94A4068091C101C2
-:1014A00081608093C1014DC10E948721811102C0DA
-:1014B0000E946D210E94A42190E09093E00180930E
-:1014C000DF01C23080E5D80721F48091DF0181601F
-:1014D00086C0C43090E5D90721F48091DF01826095
-:1014E0007EC0C63020E5D20721F48091DF01846000
-:1014F00076C0C83080E5D80719F48091DF0127C095
-:10150000CA3090E5D90721F48091DF01806167C07E
-:10151000CC3020E5D20721F48091DF0180625FC0EA
-:10152000CE3080E5D80721F48091DF01806457C078
-:10153000C03190E5D90721F48091DF0180684FC068
-:10154000C23120E5D20729F48091DF0184608860F0
-:1015500046C0C33080E5D80721F48091DF018E7F3B
-:101560003EC0C53090E5D90721F48091DF018D7F21
-:1015700036C0C73020E5D20721F48091DF018B7F90
-:101580002EC0C93080E5D80719F48091DF0126C04C
-:10159000CB3090E5D90721F48091DF018F7E1FC009
-:1015A000CD3020E5D20721F48091DF018F7D17C077
-:1015B000CF3080E5D80721F48091DF018F7B0FC009
-:1015C000C13190E5D90721F48091DF018F7707C001
-:1015D000C331D04531F48091DF018B7F877F8093C9
-:1015E000DF018091DF010E94A821ABC08D2F9927D8
-:1015F0008F70992781309105D9F49E01237033278C
-:1016000002C0880F991F2A95E2F79C688E0144E07A
-:10161000000F111F4A95E1F700271370802B912BC3
-:1016200053E0CC0FDD1F5A95E1F7C076DD272FC0C0
-:101630008230910531F4DC2FCC278E01016F106AC6
-:1016400080C08330910569F4CE018370992701E051
-:1016500010E002C0000F111F8A95E2F7C8019C68D4
-:101660000FC084309105B9F4CE018370992701E051
-:1016700010E002C0000F111F8A95E2F7C8019A68B6
-:1016800023E0CC0FDD1F2A95E1F7C07ED7708C01D7
-:101690000C2B1D2B56C08530910531F4DC2FCC2747
-:1016A0008E01046F106A4DC0069709F04AC0CF71D1
-:1016B000DD27DC2FCC278E01106243C000E010E054
-:1016C00040C08E013EC001E810E43BC003E810E4D6
-:1016D00038C002EE14E435C009EE14E432C00AEE5C
-:1016E00014E42FC005EB14E42CC006EB14E429C06D
-:1016F00007EB14E426C00CEC14E423C00DEC14E456
-:1017000020C003E815E41DC00AE815E41AC002E988
-:1017100015E417C004E915E414C001E216E411C091
-:1017200003E216E40EC004E216E40BC005E216E480
-:1017300008C006E216E405C007E216E402C00AE2A9
-:1017400016E4C801DF91CF911F910F910895E72F03
-:10175000F0E098E0899FE00DF11D112483E0EE0F89
-:10176000FF1F8A95E1F7E60FF11DEE0FFF1FEB5DFE
-:10177000FE4F85919491803E9105E0F4803C910567
-:1017800058F58133910509F46FC048F48932910509
-:1017900009F463C08A32910509F46DC072C08933BF
-:1017A0009105E9F082389105D1F08533910509F46E
-:1017B0004DC067C0833E910581F138F4803E9105AC
-:1017C000B9F0823E9105D9F05CC0863E910561F189
-:1017D000873E9105A1F155C00E94600908952091AE
-:1017E000DF0120FD02C021FF4CC080EE90E049C027
-:1017F0008091DF0180FFF9CF89E390E042C08091C2
-:10180000DF0182FF0EC08091DF0184FF03C080E012
-:1018100090E037C083EE90E034C08091DF0182FF1A
-:10182000F2CF82EE90E02DC08091DF0183FF0BC0EC
-:101830008091DF0184FDEBCF87EE90E022C08091A4
-:10184000DF0183FFF5CF86EE90E01BC08091DF01C2
-:1018500085FF07C089E290E014C08091DF0185FF19
-:10186000F9CF85E390E00DC08091DF0186FF07C0CE
-:101870008AE290E006C08091DF0186FFF9CF81E324
-:1018800090E00E947009089508950C94440C809192
-:10189000630108959FB7F89410925A019FBF9091E9
-:1018A000D601943009F057C09091E9009F703091B3
-:1018B000EC00232F217030FD20E8922B24E02093B0
-:1018C000E9002091EB0020FF43C02091EE0027FFAC
-:1018D0003FC020915801222321F02091E80025FFEC
-:1018E00037C01092580126E03091E80035FD15C050
-:1018F0003091D601343061F53091EB0035FD28C0D0
-:10190000215021F481E08093580122C0EFE9FFE0EB
-:101910003197F1F700C00000E7CF8093F10080918C
-:10192000E80085FD0AC08091E80080FFFCCF80912F
-:10193000E8008E778093E80006C08FB7F89421E026
-:1019400020935A018FBF9F709093E90080E0089523
-:101950009F709093E9008FEF0895CF93DF9300D0AD
-:101960001F92CDB7DEB79C018091D601843019F566
-:1019700093E099833B832A839093E9008FEF9091C2
-:10198000E800815095FD06C095ED9A95F1F70000AD
-:101990008111F5CF8091E80085FF0DC040E050E057
-:1019A00063E070E0CE0101960E944A0F8091E8004A
-:1019B0008E778093E8000F900F900F90DF91CF917A
-:1019C0000895CF93DF9300D01F92CDB7DEB720915B
-:1019D000D601243021F522E029839B838A8383E08A
-:1019E0008093E9008FEF9091E800815095FD06C04B
-:1019F00095ED9A95F1F700008111F5CF8091E800FF
-:101A000085FF0DC040E050E063E070E0CE0101963C
-:101A10000E944A0F8091E8008E778093E8000F9033
-:101A20000F900F90DF91CF9108952091D60124302F
-:101A3000F1F422E02093E9002FEF3091E8002150EB
-:101A400035FD06C035ED3A95F1F700002111F5CFCF
-:101A50002091E80025FF0BC040E050E065E070E019
-:101A60000E944A0F8091E8008E778093E8000895E5
-:101A7000CF93DF932091D601243039F521E02093D4
-:101A8000E9002FEF3091E800215035FD06C035ED1B
-:101A90003A95F1F700002111F5CF2091E80025FFDC
-:101AA00014C0EC0140E050E068E070E00E944A0F92
-:101AB0008091E8008E778093E80088E0FE01ABE536
-:101AC000B1E001900D928A95E1F7DF91CF910895F1
-:101AD0008CE592E00E94A4068091D501811109C095
-:101AE0000E94DF100E943C118091E200846080938C
-:101AF000E200089588E592E00E94A4061092D501C4
-:101B0000089584E592E00C94A40680E592E00C949C
-:101B1000A4068CE492E00E94A4060C94161F209167
-:101B200059012F5F822F62E30E948C2A992319F0BA
-:101B30002093590108951092590180915A018823E8
-:101B400071F18091D601843041F58091E9008F7068
-:101B50002091EC00922F917020FD90E8892B94E069
-:101B60009093E9009091EB0090FF14C09091EE00EB
-:101B700097FF10C09091E80095FF03C01092F1000C
-:101B8000F9CF9091E80090FF05C09091E8009E7712
-:101B90009093E8008F708093E90010925A010895A5
-:101BA00042E061EC81E00E94591042E061EC82E089
-:101BB0000E94591042E061EC83E00E94591042E219
-:101BC00061EC84E00C9459108091D801833009F4C1
-:101BD00053C030F4813071F0823009F48CC0089524
-:101BE0008A3009F478C08B3009F45EC0893009F07E
-:101BF0009AC020C08091D701813A09F094C08091A9
-:101C0000E800877F8093E8008091DB019091DC0100
-:101C1000892B21F468E08BE591E003C060E080E06F
-:101C200090E070E00E94950F8091E8008B778093A0
-:101C3000E80008958091D701813209F074C0809145
-:101C4000DB019091DC01892B09F06DC08091E800E7
-:101C5000877F8093E8008091E80082FD05C0809135
-:101C6000D6018111F8CF5FC08091F10080936301AC
-:101C70008091E8008B7753C08091D701813A09F0B9
-:101C800052C08091DB019091DC01892B09F04BC09F
-:101C90008091E800877F8093E8008091E80080FFD2
-:101CA000FCCF80910A0136C08091D7018132D9F5ED
-:101CB0008091DB019091DC01892BA9F58091E800EE
-:101CC000877F8093E8000E948E108091D9018093D5
-:101CD0000A010C948E188091D701813221F58091F0
-:101CE000E800877F8093E8000E948E108091DA01DF
-:101CF0008093640108958091D701813AA1F4809185
-:101D0000E800877F8093E8008091E80080FFFCCFA7
-:101D1000809164018093F1008091E8008E77809338
-:101D2000E8000C948E10089584B7877F84BF88E103
-:101D30000FB6F89480936000109260000FBE90E0A0
-:101D400080E80FB6F89480936100909361000FBE15
-:101D50000E946E140E94DF100E943C118091E200EC
-:101D600084608093E2008AE49CE00E94B81E78942C
-:101D70000E94C1130E94701480E091E00E94DC1365
-:101D80008BE392E00E94A4068091D601853089F40D
-:101D900087E392E00E94A4060E94DF1E8091D40196
-:101DA000882391F30E94081F882371F30E94340F47
-:101DB000EBCF0E949414E8CF292F3327233031052D
-:101DC000C9F064F42130310581F02230310509F089
-:101DD00043C084E790E026E832E042C0213231057A
-:101DE000F1F02232310541F137C082E190E02AEF73
-:101DF00032E036C099278130910541F0823091055B
-:101E000041F0892B49F5E2E8F2E005C0E4E7F2E0B1
-:101E100002C0E0E6F2E0849190E09F0121C06430CE
-:101E2000D8F4E62FF0E0EE0FFF1FE15EFE4F2081B9
-:101E3000318189E090E014C0643070F470E0FB01FF
-:101E4000EE0FFF1FE95EFE4F20813181FB01ED5E49
-:101E5000FE4F808190E004C080E090E020E030E020
-:101E6000FA0131832083089580E189BD82E189BD33
-:101E700009B400FEFDCF8091D8008F7D8093D800FB
-:101E80008091E00082608093E0008091E00081FD1D
-:101E9000FCCF0895CF92DF92EF92FF920F931F93A2
-:101EA000CF93DF93EC018B016A010E94AD10811189
-:101EB00033C0C114D10439F0F60180819181081B2F
-:101EC000190BC80FD91FE12CF12C0115110519F1BF
-:101ED0008091E80085FD16C08091E8008E778093A0
-:101EE000E800C114D10449F0F60180819181E80E27
-:101EF000F91EF182E08285E00FC00E94AD108823B8
-:101F000021F30AC089918093F10001501109FFEF7C
-:101F1000EF1AFF0ADACF80E0DF91CF911F910F9186
-:101F2000FF90EF90DF90CF9008952091DD013091E8
-:101F3000DE012617370748F06115710539F4209145
-:101F4000E8002E772093E80001C0B90140E0611558
-:101F50007105A9F12091D601222309F443C025304F
-:101F600009F442C02091E80023FD40C02091E80020
-:101F700022FD32C02091E80020FFE9CF4091F3001C
-:101F80002091F20030E0342BFC01CF016115710586
-:101F900059F02830310540F481918093F10061506F
-:101FA00071092F5F3F4FF1CF41E02830310509F033
-:101FB00040E02091E8002E772093E800C8CF41113F
-:101FC000C9CF0AC08091D601882361F0853061F0C5
-:101FD0008091E80083FD0AC08091E80082FFF2CF83
-:101FE00080E0089582E0089583E0089581E00895F7
-:101FF0002091DD013091DE012617370748F0611589
-:10200000710539F42091E8002E772093E80001C093
-:10201000B901FC0120E06115710591F18091D601B3
-:10202000882309F440C0853009F43FC08091E8005E
-:1020300083FD3DC08091E80082FD2FC08091E800C3
-:1020400080FFE9CF2091F3008091F20090E0922B85
-:102050006115710559F08830910540F42491209361
-:10206000F1003196615071090196F2CF21E0089795
-:1020700009F020E08091E8008E778093E800CBCFD4
-:102080002111CCCF0AC08091D601882361F0853020
-:1020900061F08091E80083FD0AC08091E80082FF32
-:1020A000F2CF80E0089582E0089583E0089581E012
-:1020B0000895982F973058F59093E900981739F0C4
-:1020C0007091EC002091ED005091F00003C0242F9E
-:1020D000762F50E021FF19C03091EB003E7F309306
-:1020E000EB003091ED003D7F3093ED003091EB003F
-:1020F00031603093EB007093EC002093ED0050932F
-:10210000F0002091EE0027FF07C09F5FD3CF8F70B4
-:102110008093E90081E0089580E008958091D701DF
-:1021200087FF11C08091E80082FD05C08091D60133
-:102130008111F8CF11C08091E8008B770BC080919E
-:10214000D601882349F08091E80080FFF8CF809184
-:10215000E8008E778093E80008952091E4003091A4
-:10216000E50095E64091EC00842F817040FF22C08D
-:102170008091E80080FD1CC08091D601882391F0F9
-:10218000853091F08091EB0085FD10C04091E40016
-:102190005091E5004217530729F39A01915011F726
-:1021A00084E0089582E0089583E0089581E0089531
-:1021B00080E008954091E80042FFDECF08950E943C
-:1021C0004D110E945511E0EEF0E080818160808326
-:1021D000E8EDF0E080818F77808319BCA7EDB0E057
-:1021E0008C918E7F8C9380818F7E80831092D5011D
-:1021F00008950F931F93CF93DF930E944D110E9478
-:102200005511C8EDD0E088818F77888388818068F8
-:10221000888388818F7D888319BC1092D6011092A3
-:10222000D2011092D4011092D30100EE10E0F80117
-:1022300080818B7F808388818160888342E060E039
-:1022400080E00E945910E1EEF0E080818E7F808373
-:10225000E2EEF0E08081816080838081886080830D
-:10226000F80180818E7F8083888180618883DF91FF
-:10227000CF911F910F910895E8EDF0E080818F7E5E
-:102280008083E7EDF0E080818160808384E082BF1D
-:1022900081E08093D5010C94F910E8EDF0E08081A5
-:1022A0008E7F80831092E20008951092DA001092DF
-:1022B000E10008951F920F920FB60F9211242F93F1
-:1022C0003F934F935F936F937F938F939F93AF93BE
-:1022D000BF93EF93FF938091E10082FF0BC0809149
-:1022E000E20082FF07C08091E1008B7F8093E100D4
-:1022F0000E948F0D8091DA0080FF1FC08091D8006E
-:1023000080FF1BC08091DA008E7F8093DA0080917D
-:10231000D90080FF0DC080E189BD82E189BD09B48B
-:1023200000FEFDCF81E08093D6010E94680D05C0BC
-:1023300019BC1092D6010E947A0D8091E10080FFB5
-:1023400019C08091E20080FF15C08091E2008E7F6D
-:102350008093E2008091E20080618093E2008091AE
-:10236000D80080628093D80019BC85E08093D601A4
-:102370000E94850D8091E10084FF30C08091E200D1
-:1023800084FF2CC080E189BD82E189BD09B400FED3
-:10239000FDCF8091D8008F7D8093D8008091E1009F
-:1023A0008F7E8093E1008091E2008F7E8093E20037
-:1023B0008091E20081608093E2008091D2018823C5
-:1023C00011F084E007C08091E30087FD02C081E046
-:1023D00001C083E08093D6010E94890D8091E100C5
-:1023E00083FF29C08091E20083FF25C08091E10036
-:1023F000877F8093E10082E08093D6011092D20122
-:102400008091E1008E7F8093E1008091E2008E7FD9
-:102410008093E2008091E20080618093E20042E0DC
-:1024200060E080E00E9459108091F0008860809305
-:10243000F0000E94810DFF91EF91BF91AF919F91AC
-:102440008F917F916F915F914F913F912F910F905D
-:102450000FBE0F901F9018951F920F920FB60F92FC
-:1024600011242F933F934F935F936F937F938F9399
-:102470009F93AF93BF93CF93DF93EF93FF93C0915D
-:10248000E900CF708091EC00D82FD17080FDD0E8AA
-:102490001092E9008091F000877F8093F00078949B
-:1024A0000E9470121092E9008091F0008860809381
-:1024B000F000CD2BCF70C093E900FF91EF91DF9139
-:1024C000CF91BF91AF919F918F917F916F915F91CC
-:1024D0004F913F912F910F900FBE0F901F90189525
-:1024E0001F93CF93DF93CDB7DEB7AA970FB6F894BB
-:1024F000DEBF0FBECDBFE7EDF1E088E08E0F90911B
-:10250000F10091938E13FBCF0E94E40D8091E800BF
-:1025100083FF1FC18091D7019091D801492F50E0CE
-:102520004A30510508F015C1FA01EA5AFF4F0C94E0
-:10253000AC2A803881F0823809F00BC18091DB0130
-:102540008F708093E9008091EB0085FB882780F9EC
-:102550001092E90006C08091D3019091D4019111AD
-:1025600082609091E800977F9093E8008093F1005B
-:102570001092F100C8C0282F2D7F09F0EAC08823EF
-:1025800019F0823061F0E5C08091D901813009F005
-:10259000E0C0933009F080E08093D4012BC080919B
-:1025A000D901811127C08091DB018F7009F4D1C05E
-:1025B0008093E9002091EB0020FF1CC0933021F4B0
-:1025C0008091EB00806214C09091EB009061909339
-:1025D000EB0021E030E0A90102C0440F551F8A95AD
-:1025E000E2F74093EA001092EA008091EB008860E5
-:1025F0008093EB001092E9008091E800877F86C00D
-:102600008111A7C01091D9011F778091E3008078D4
-:10261000812B8093E3008091E800877F8093E8001E
-:102620000E948E108091E80080FFFCCF8091E30033
-:1026300080688093E300111102C082E001C083E052
-:102640008093D60186C08058823008F082C0809185
-:10265000D9019091DA018C3D53E0950779F583E03B
-:102660008A838AE289834FB7F894DE01139620E0CB
-:102670003EE051E2E32FF0E050935700E49120FF59
-:1026800003C0E295EF703F5FEF708E2F90E0EA306D
-:1026900010F0C79601C0C0968D939D932F5F243193
-:1026A00049F74FBF8091E800877F8093E8006AE296
-:1026B00070E0CE0101960E94950F14C0AE014F5FED
-:1026C0005F4F6091DB010E94DC0EBC01009709F4B2
-:1026D00040C09091E800977F9093E80089819A81AB
-:1026E0000E94F80F8091E8008B778093E80031C05A
-:1026F000803879F58091E800877F8093E8008091A9
-:10270000D2018093F1008091E8008E778093E800F9
-:102710000E948E101EC081111CC09091D901923070
-:10272000C0F48091E800877F8093E8009093D20105
-:102730000E948E108091D201811106C08091E30029
-:1027400087FD02C081E001C084E08093D6010E9431
-:10275000D00D8091E80083FF0AC08091E800877F58
-:102760008093E8008091EB0080628093EB00AA9652
-:102770000FB6F894DEBF0FBECDBFDF91CF911F9192
-:102780000895CF938091D6018823A1F0C091E900EC
-:10279000CF709091EC00892F817090FD80E8C82B5C
-:1027A0001092E9008091E80083FD0E947012CF70C2
-:1027B000C093E900CF91089590936A0180936901D5
-:1027C0000895E0916901F0916A01309721F001903C
-:1027D000F081E02D099480E00895EF92FF920F932D
-:1027E0001F93CF93DF93E0916901F0916A013097D5
-:1027F000B1F18C010280F381E02D09958091C10136
-:1028000082FF2DC080FF04C086EF93E00E94A406E3
-:10281000E80118E080EFE82E83E0F82E8091C101F6
-:1028200080FF0BC088811F928F93FF92EF920E94CE
-:102830003D070F900F900F900F901150219611119E
-:10284000EDCF8091C10180FF0AC08EEE93E0DF9151
-:10285000CF911F910F91FF90EF900C94A406DF9100
-:10286000CF911F910F91FF90EF900895E091690132
-:10287000F0916A01309721F00480F581E02D0994F0
-:10288000089520916701309168018217930771F0D4
-:102890009093680180936701E0916901F0916A016A
-:1028A000309721F00680F781E02D0994089520915A
-:1028B0006501309166018217930771F0909366016C
-:1028C00080936501E0916901F0916A01309721F0F0
-:1028D0000084F185E02D0994089508950C946D14F9
-:1028E0000E94451F0E9446070C943F20CF93DF9320
-:1028F0001F92CDB7DEB79091C10192FF10C090FF3B
-:102900000EC01F928F9328E034E03F932F9389836A
-:102910000E943D070F900F900F900F9089810F90AC
-:10292000DF91CF910C94450C9F92AF92BF92CF92C2
-:10293000DF92EF92FF920F931F93CF93DF9300D01C
-:1029400000D000D0CDB7DEB70E94690707E010E0E5
-:10295000AA24A394B12C902E802F0E943C089801A9
-:1029600024593E4F6901F901F080F826A1F4015085
-:10297000110988F78FEF89838A831B820E944E1F7B
-:102980008160782F9D838C8349815A816B818D81F1
-:102990000E942B152FC09091C10191FF04C08E831E
-:1029A0000E9445088E8127E030E0A501022E01C07B
-:1029B000440F0A94EAF7E42E4F21C1F029839A824A
-:1029C0008E2191E009F490E09B830E944E1F81606C
-:1029D000782F9D838C8349815A816B818D810E94E0
-:1029E0002B15F6018081E826E08204C021503109D0
-:1029F000E0F6BDCF0E94A92310916B010E94E11364
-:102A00001817B9F00E94E11380936B0126960FB658
-:102A1000F894DEBF0FBECDBFDF91CF911F910F9114
-:102A2000FF90EF90DF90CF90BF90AF909F900C946D
-:102A3000761426960FB6F894DEBF0FBECDBFDF9199
-:102A4000CF911F910F91FF90EF90DF90CF90BF90AB
-:102A5000AF909F900895CF93DF93CDB7DEB72B97BC
-:102A60000FB6F894DEBF0FBECDBF4F83588769877E
-:102A70007A878B87DE01119686E0FD0111928A9597
-:102A8000E9F785E0FE01379601900D928A95E1F70E
-:102A900049815A816B817C818D819E810E942C1B92
-:102AA0002B960FB6F894DEBF0FBECDBFDF91CF914E
-:102AB0000895CF93882309F499C0C82F8CEF8C0F09
-:102AC000813A48F48C2F0E94152881118FC08C2FD9
-:102AD0000E94061E0CC080E28C0F883058F4C7702C
-:102AE00081E001C0880FCA95EAF70E94421ECF918B
-:102AF0000C94891E8BE58C0F833078F4C53A29F04D
-:102B0000C63A31F083E890E005C081E890E002C069
-:102B100082E890E0CF910C94411488E58C0F8331CA
-:102B200008F064C0C83A39F1C93A41F1CA3A49F1EA
-:102B3000CB3A51F1CC3A59F1CD3A61F1C03B69F150
-:102B4000CE3A71F1CF3A79F1C13B81F1C23B89F1C3
-:102B5000C33B91F1C43B99F1C53BA1F1C63BA9F13F
-:102B6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F19F
-:102B700080E090E038C082EE90E035C089EE90E0D1
-:102B800032C08AEE90E02FC085EB90E02CC086EB3F
-:102B900090E029C087EB90E026C08CEC90E023C049
-:102BA0008DEC90E020C083E891E01DC08AE891E0C0
-:102BB0001AC082E991E017C084E991E014C081E273
-:102BC00092E011C083E292E00EC084E292E00BC07A
-:102BD00085E292E008C086E292E005C087E292E0DA
-:102BE00002C08AE292E0CF910C945714CF910895DD
-:102BF000882329F19CEF980F913A18F40E94231E24
-:102C00000DC090E2980F983058F4877091E001C0A1
-:102C1000990F8A95EAF7892F0E94481E0C94891E05
-:102C20009BE5980F933020F480E090E00C944114E1
-:102C3000885A833120F480E090E00C945714089572
-:102C4000882321F00E94421E0C94891E0895882337
-:102C500021F00E94481E0C94891E08957F928F9245
-:102C60009F92AF92BF92CF92DF92EF92FF920F931B
-:102C70001F93CF93DF931F92CDB7DEB77C01C62E93
-:102C8000772EFC01058102950F70128111110E94AF
-:102C90005F1E0E94FF1D882379F0112369F080E2F6
-:102CA0008C0D883048F082E00E94E81D0E94FF1DD4
-:102CB00091E0D82ED92601C0D12CE72DE295EF70F6
-:102CC000F0E0E05AFF4F0C94AC2A872D807F072D4F
-:102CD0000F70882311F00295007F112389F00023E3
-:102CE00009F498C180E28C0D883020F4802F0E9476
-:102CF000421E03C0802F0E94521E0E94891E8AC15C
-:102D00008C2D0E94F815002309F49DC180E28C0DE2
-:102D1000883020F4802F0E94481E03C0802F0E941C
-:102D2000581E0E94891E8FC1872D807F972D9F700E
-:102D3000803211F4892F03C0892F8295807FCC20A7
-:102D400021F0F1E0CF16A1F01DC0112339F00023CE
-:102D500019F1013009F50E94721E75C1002319F0A6
-:102D6000013009F470C189830E94751E898110C1E8
-:102D7000112321F0063008F066C10EC0053008F0BE
-:102D800062C106C1112359F0002331F0F70195818A
-:102D900090FF40C19F7095830E94201654C100236C
-:102DA00009F4F6C03DC1872D86958695837090E025
-:102DB000009719F0019761F046C1112321F08C2D85
-:102DC000972D937002C080E090E00E9441143BC1B7
-:102DD000112321F08C2D972D937002C080E090E09C
-:102DE0000E94571430C18C2D112319F00E942F22FC
-:102DF00002C00E9497220E941C2325C1872D837048
-:102E000009F052C011111FC18C2D829586958770D3
-:102E1000880F880F9C2D9F70892E912CA12CB12C8E
-:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B
-:102E3000C4FE14C00FE010E020E030E0B901A801AA
-:102E400004C0440F551F661F771F8A95D2F7CB0128
-:102E5000BA01609570958095909503C060E070E030
-:102E6000CB01272D26952695237030E022303105A1
-:102E700069F02330310589F0682979298A299B294D
-:102E80002130310571F00E94741CDDC06829792958
-:102E90008A299B290E94901CD6C00E94741CC501DF
-:102EA000B4010E94581CCFC0112319F0872D8170E6
-:102EB00001C08695882309F4C6C08C2D829586951D
-:102EC0008770880F880F9C2D9F70892E912CA12CC4
-:102ED000B12C082E04C0880C991CAA1CBB1C0A9497
-:102EE000D2F7C4FE14C00FE010E020E030E0B901DA
-:102EF000A80104C0440F551F661F771F8A95D2F79B
-:102F0000CB01BA01609570958095909503C060E003
-:102F100070E0CB01272D269526952370422F50E097
-:102F20004230510569F04330510589F0682979290B
-:102F30008A299B294130510571F00E944E1D83C0A2
-:102F4000682979298A299B290E946A1D7CC00E94D0
-:102F50004E1DC501B4010E94321D75C08C2D90E03C
-:102F6000FC01E05EF109E531F10508F04FC0E059E0
-:102F7000FF4F0C94AC2A0C2D0F70872D8F711123ED
-:102F800021F00E94CB1C802F07CF0E94EC1C802FC9
-:102F90000E94271658C0112341F0053008F053C095
-:102FA000872D8F710E94111D4EC0063008F04BC056
-:102FB000F7CF112339F0872D8F710E94CB1C43C0AE
-:102FC0001123C9F3872D8F710E94EC1C3CC0112383
-:102FD00029F0872D8F710E94B61C35C00E94AC1C51
-:102FE00032C0112351F0172D1F71812F0E94CB1C6D
-:102FF00063E0812F0E94DF1D26C081E00E94E81D52
-:10300000023008F182E00E94E81D1DC0112331F05A
-:10301000002389F28C2D0E94591515C0002391F2CE
-:103020008C2D0E94F8150FC0472D4F706C2DC701D5
-:103030000E948B080E94D01B06C0472D4F706C2D3C
-:10304000C7010E944A09DD20F9F00E94DB1D80FDC6
-:103050001BC0F70112820E94D51D0E94CB1CC70124
-:103060000E9453180E94D51D0F90DF91CF911F91A0
-:103070000F91FF90EF90DF90CF90BF90AF909F9017
-:103080008F907F900C94EC1C0F90DF91CF911F914B
-:103090000F91FF90EF90DF90CF90BF90AF909F90F7
-:1030A0008F907F9008950F931F93CF93DF93EC0140
-:1030B000888199812B813C81232BB9F09F3F11F4AA
-:1030C0008F3F99F0CE010E94A208882371F0688199
-:1030D00079818A810E94D11D8C010E94861D0E94E7
-:1030E0004D1CB801CE010E942E16DF91CF911F9189
-:1030F0000F9108950E945F1E0E946F1E0E94341E51
-:103100000E94891E0E944F240E941C2380E090E0B0
-:103110000E94411480E090E00C9457140E944F1ECE
-:103120000C947A180E94C61D292F22952F7030E02A
-:103130002C3031054CF42A3031056CF42250310921
-:1031400022303105A8F407C02C30310569F02F304A
-:10315000310551F00DC0803F69F018F4803E40F415
-:1031600009C0843F29F406C093FB882780F908959D
-:1031700080E0089581E00895CF93DF9300D000D0E0
-:103180001F92CDB7DEB70F900F900F900F900F905A
-:10319000DF91CF910895CF93DF9300D000D000D07E
-:1031A000CDB7DEB726960FB6F894DEBF0FBECDBF03
-:1031B000DF91CF9108951F93CF93DF93C091740156
-:1031C00016E080917501C81799F0D0E01C9FF001BE
-:1031D0001D9FF00D1124EA58FE4F408151816281FC
-:1031E0007381848195810E94CB182196C770E9CFA5
-:1031F000DF91CF911F9108954091A6015091A701B1
-:103200006091A8017091A9018091AA019091AB01F0
-:103210000C94CB188091AB0182958F7009F054C04B
-:103220008091A801882309F44FC080917401A09176
-:1032300075016091A6017091A7014091A90150917B
-:10324000AA01B6E08A1709F43FC090E04115510584
-:10325000C1F17F3F11F46F3FA1F1B89FF001B99F19
-:10326000F00D1124EA58FE4F218172132AC02081EB
-:10327000621327C02281211124C0238134812417A5
-:10328000350710F421503109241B350B283C31053A
-:10329000C0F42091AB012F7020612093AB0126E098
-:1032A000289FF001299FF00D1124E558FE4F8081E1
-:1032B0008F708061808386EA91E00E9453180C949D
-:1032C000DB1801968770BECF0895CF92DF92EF9200
-:1032D000FF920F931F93CF93DF93CDB7DEB7629723
-:1032E0000FB6F894DEBF0FBECDBF8C0185E0F801AC
-:1032F000DE011D9601900D928A95E1F7D8014C915F
-:1033000011965C91119712966C9112971396CD902D
-:10331000DC9014973091A6017091A7018091A901CA
-:103320009091AA01009709F46BC17F3F19F43F3FC8
-:1033300009F466C1E090A801EE2009F4C0C0209114
-:10334000AB01C816D90628F0F601E81BF90BCF012E
-:1033500004C0809590958C0D9D1DFF24F394883CAE
-:10336000910578F0F12C207F09F0C6C07C2DD98A18
-:10337000C88A89890E94BC1886EA91E00E94531885
-:10338000B1C0822F807F09F046C0751314C034137A
-:1033900012C0611110C02F7020612093AB010E94F8
-:1033A000FC1886EA91E00E9453188091AB01D80185
-:1033B00015968C932EC0CD2819F15F3F11F44F3F25
-:1033C000F9F0F62E61111CC08091740120917501F5
-:1033D00036E0821709F45AC090E0389FF001399F17
-:1033E000F00D1124EA58FE4F7181571306C0708109
-:1033F000471303C07281711103C001968770E9CF32
-:10340000F62E662309F418C18091AB018160809388
-:10341000AB01F12C11C1751308C0341306C0611142
-:1034200004C08091AB01D801C3C04D875E878D85F4
-:103430009E856A8B0E9492186A898823E1F166232F
-:10344000D1F12091AB01822F82958F7090E002978D
-:1034500074F08091A6019091A70198878F831986B7
-:10346000DB86CA862C87CE0107960E94531886E019
-:10347000F801A6EAB1E001900D928A95E1F70E9469
-:103480000A190E94FC18FF24F394D6C04D875E876A
-:103490008D859E850E94C61D292F22952F7030E0B4
-:1034A000223031050CF0BCC09F7009F0B6C0805EC0
-:1034B000883008F4C1C0C8010E945318E4CFC81670
-:1034C000D90608F453C0F601E81BF90BCF01883C7C
-:1034D000910508F450C0F12C7C2DD98AC88A8989BD
-:1034E0000E94BC18E6EAF1E086E0DF011D928A95B1
-:1034F000E9F70E94FC18A0C0751314C0341312C061
-:10350000611110C08091AB01F8018583C8010E9450
-:10351000531886E0E6EAF1E0DF011D928A95E9F7AB
-:10352000FE2C8AC04D875E878D859E856A8B0E94A2
-:1035300092186A89882309F4BECF662309F4BBCFA9
-:103540002091AB01822F82958F7090E002970CF44E
-:103550008ECF8091A6019091A7019A8389831B82C7
-:10356000DD82CC822E83CE0101967FCF809590950F
-:103570008C0D9D1DACCFF62E662309F49CCF7513E0
-:103580002EC034132CC02091AB0120FD1FC0822F10
-:1035900082958F70D9F0D80115962C9315978F309E
-:1035A00049F08F5F982F9295907F822F8F70892B93
-:1035B00015968C93C8010E94531886E0F801A6EA7C
-:1035C000B1E001900D928A95E1F793CF86E0F80182
-:1035D000A6EAB1E001900D928A95E1F72DC04D87E2
-:1035E0005E878D859E850E949218811140CF8091C3
-:1035F000AB0181608093AB01C8010E9453181CC0CD
-:10360000662309F458CF4D875E878D859E850E947D
-:103610009218882309F44FCF2ACF811148CF0CC0CC
-:10362000243031050CF047CF9F7009F440CFF801EA
-:103630009581907F09F03BCF8F2D62960FB6F8945D
-:10364000DEBF0FBECDBFDF91CF911F910F91FF90D5
-:10365000EF90DF90CF9008951F93CF93DF93CDB776
-:10366000DEB72C970FB6F894DEBF0FBECDBF4F83E9
-:10367000588769877A878B879C87CE0107960E9437
-:103680006519882369F08F8198852A853B85232BCE
-:10369000F1F19F3F09F063C08F3F09F060C037C070
-:1036A00086E0FE013796DE01119601900D928A9513
-:1036B000E1F76F817885EA85FB85309741F17F3F9F
-:1036C00011F46F3F21F12091750130E0C90101969D
-:1036D000877099274091740150E08417950709F489
-:1036E00047C069837A83FD83EC8396E0929FD00183
-:1036F000939FB00D1124AA58BE4FFE013196019040
-:103700000D929A95E1F7809375010E94DB1816E0FF
-:1037100080917401909175018917C1F1189FC001C2
-:1037200011248A589E4F0E946519882379F1E091EF
-:1037300074011E9FF0011124EA58FE4F408151810F
-:1037400062817381848195810E94CB18809174017C
-:1037500090E001968770992780937401D9CF4F81AB
-:10376000588569857A858B859C850E94CB18CFCF3B
-:103770000E948E181092750110927401E6EAF1E031
-:1037800086E0DF011D928A95E9F7C1CF2C960FB62E
-:10379000F894DEBF0FBECDBFDF91CF911F9108958A
-:1037A000EF92FF920F931F93CF93DF938C010097BB
-:1037B00009F46CC0F12CEE24E394E8012196F801A1
-:1037C0008491843740F4843008F051C0813081F016
-:1037D000823019F15BC0853709F444C0A8F19CE739
-:1037E000980F903708F052C08F770E94F81541C0AB
-:1037F0000E5F1F4FFE01C49180E28C0F883048F4A9
-:10380000C7708E2D01C0880FCA95EAF70E94621E0C
-:1038100014C08C2F0E9459152DC00E5F1F4FFE0142
-:10382000C49180E28C0F883058F4C7708E2D01C08F
-:10383000880FCA95EAF70E94681E0E94891E1AC066
-:103840008C2F0E94F81516C00E5F1F4FFE01C49109
-:10385000CC2381F08FE99FE00197F1F700C00000D1
-:10386000C150F6CF0E5F1F4FFE01F49003C00E94BF
-:1038700059158E018F2D882309F49FCFEFE9FFE0C2
-:103880003197F1F700C000008150F5CFDF91CF9163
-:103890001F910F91FF90EF90089508956093B001EC
-:1038A0007093B1018093B2019093B3010C947A1894
-:1038B0000F931F930091B0011091B1012091B201BB
-:1038C0003091B301DC01CB01802B912BA22BB32BC8
-:1038D0008093B0019093B101A093B201B093B30172
-:1038E0001F910F910C947A180F931F930091B001C0
-:1038F0001091B1012091B2013091B301DC01CB01F3
-:1039000080239123A223B3238093B0019093B1012C
-:10391000A093B201B093B3011F910F910C947A1848
-:103920000F931F930091B0011091B1012091B2014A
-:103930003091B301DC01CB0180279127A227B32767
-:103940008093B0019093B101A093B201B093B30101
-:103950001F910F910C947A181092AC011092AD0146
-:103960001092AE011092AF010C947A1841E050E031
-:1039700060E070E004C0440F551F661F771F8A95F2
-:10398000D2F74093AC015093AD016093AE017093B8
-:10399000AF010C947A1841E050E060E070E004C0A0
-:1039A000440F551F661F771F8A95D2F78091AC018F
-:1039B0009091AD01A091AE01B091AF01482B592B70
-:1039C0006A2B7B2B4093AC015093AD016093AE0109
-:1039D0007093AF010C947A1841E050E060E070E021
-:1039E00004C0440F551F661F771F8A95D2F7409574
-:1039F0005095609570958091AC019091AD01A0912A
-:103A0000AE01B091AF01482359236A237B23409331
-:103A1000AC015093AD016093AE017093AF010C9473
-:103A20007A1841E050E060E070E004C0440F551F98
-:103A3000661F771F8A95D2F78091AC019091AD01F6
-:103A4000A091AE01B091AF01482759276A277B2783
-:103A50004093AC015093AD016093AE017093AF0100
-:103A60000C947A180F931F930091AC011091AD0143
-:103A70002091AE013091AF01DC01CB01802B912B65
-:103A8000A22BB32B8093AC019093AD01A093AE0118
-:103A9000B093AF011F910F910C947A180F931F935D
-:103AA0000091AC011091AD012091AE013091AF01B8
-:103AB000DC01CB0180239123A223B3238093AC01AB
-:103AC0009093AD01A093AE01B093AF011F910F9100
-:103AD0000C947A180F931F930091AC011091AD01D3
-:103AE0002091AE013091AF01DC01CB0180279127FD
-:103AF000A227B3278093AC019093AD01A093AE01B0
-:103B0000B093AF011F910F910C947A180895CF9242
-:103B1000DF92EF92FF920F931F93CF93DF938C016D
-:103B2000C090B001D090B101E090B201F090B3012B
-:103B30008091AC019091AD01A091AE01B091AF0127
-:103B4000C82AD92AEA2AFB2ACFE1D0E0D701C60148
-:103B50000C2E04C0B695A795979587950A94D2F731
-:103B600080FF06C0B8018C2F0E94A70B019721F49B
-:103B7000219760F780E001C08C2FDF91CF911F91DA
-:103B80000F91FF90EF90DF90CF900895CF93DF9348
-:103B9000EC010E94871DBE010E94A70BDF91CF910F
-:103BA0000895CB010E94C61D08958091B4018595AA
-:103BB0008595859508958091B4018770089598E062
-:103BC000899F90011124262B2093B4010C94CB1CC7
-:103BD0002091B401809582238093B401982F97702F
-:103BE00069F430E0482F552747FD509524173507D5
-:103BF00029F08595859585950C94EC1C08959091F8
-:103C0000B401977081E009F480E0089520910B01E0
-:103C100030910C01F90132969FEF40E05191581715
-:103C200089F09F3F19F4511101C0942F4F5F463026
-:103C3000A9F79F3F39F0F901E90FF11D97FDFA95BA
-:103C400082830895089520910B0130910C01F901B0
-:103C50003296285F3F4F9081981301C010823196B1
-:103C6000E217F307C1F7089581E090E0E0910B01BE
-:103C7000F0910C01E80FF91F108201968830910530
-:103C8000A9F708959091C001892B8093C0010895F0
-:103C900080959091C00189238093C001089510926E
-:103CA000C00108959091BF01892B8093BF010895B1
-:103CB00080959091BF0189238093BF010895109250
-:103CC000BF0108959091BE01892B8093BE01089594
-:103CD00080959091BE0189238093BE010895109232
-:103CE000BE0108958093B50108951092B50108951D
-:103CF00080910B0190910C01FC0131969C01285F91
-:103D00003F4F80E0919191118F5FE217F307D1F758
-:103D10000895E0910B01F0910C018091C001808326
-:103D2000E0910B01F0910C0190818091BF01892BF2
-:103D30008083E0910B01F0910C0190818091BE0194
-:103D4000892B80838091B501882361F0E0910B017C
-:103D5000F0910C019081892B80830E94781E811143
-:103D60001092B50180910B0190910C010C94ED1310
-:103D70009093330180933201089520E0009739F049
-:103D8000AC0141505109842395232F5FF7CF822F37
-:103D900008958295982F9C7C392F36953695282F3B
-:103DA000237344E0249FC0011124932F982B292FC3
-:103DB0002A7A2695892F8575880F822B0895809100
-:103DC000D601843021F11092C20120E488E190E014
-:103DD0000FB6F894A895809360000FBE2093600002
-:103DE00080E00E94450C83B7817F846083BF83B7E6
-:103DF000816083BF7894889583B78E7F83BF88E185
-:103E00000FB6F89480936000109260000FBE089582
-:103E10000E9489080E9469070E948A080E9471080E
-:103E200091E0811101C090E0892F08950E948E18C1
-:103E30000E94E1130C94450C1F920F920FB60F9243
-:103E400011248F939F93AF93BF938091C2018111EF
-:103E500013C08091C3019091C401A091C501B0919C
-:103E6000C6014196A11DB11D8093C3019093C40169
-:103E7000A093C501B093C601BF91AF919F918F915F
-:103E80000F900FBE0F901F90189582E084BD93E0B5
-:103E900095BD9AEF97BD80936E0008952FB7F89463
-:103EA0008091C3019091C401A091C501B091C60158
-:103EB0002FBF08952FB7F8946091C3017091C4018A
-:103EC0008091C5019091C6012FBF0895CF92DF92D6
-:103ED000EF92FF920F931F932FB7F8944091C30175
-:103EE0005091C4016091C5017091C6012FBF6A0154
-:103EF0007B01EE24FF248C0120E030E0C016D106C7
-:103F0000E206F30610F4415051099A01281B390BBF
-:103F1000C9011F910F91FF90EF90DF90CF9008950E
-:103F2000CF92DF92EF92FF920F931F932FB7F894E7
-:103F3000C090C301D090C401E090C501F090C601CB
-:103F40002FBF97018601061B170B280B390BC616CE
-:103F5000D706E806F90618F0C901B80106C0C9017C
-:103F6000B80161507109810991091F910F91FF906A
-:103F7000EF90DF90CF9008951F920F920FB60F929F
-:103F800011248F939F93AF93BF938091C30190911E
-:103F9000C401A091C501B091C6010196A11DB11D3A
-:103FA0008093C3019093C401A093C501B093C6014F
-:103FB000BF91AF919F918F910F900FBE0F901F9067
-:103FC00018950E94DF10F8942FEF87EA91E62150B0
-:103FD00080409040E1F700C0000087E090EBDC01FA
-:103FE0008093E0019093E101A093E201B093E3019B
-:103FF0009CE088E10FB6F894A895809360000FBE0E
-:1040000090936000FFCFEF92FF920F931F93CF9397
-:10401000DF93D82FC7E08C2F0E943C0807E010E008
-:10402000E82EF12CC701002E02C0959587950A94C1
-:10403000E2F780FF09C0602F7C2F80E00E944B09CF
-:10404000D81302C081E006C00150110958F7C150D1
-:1040500010F780E0DF91CF911F910F91FF90EF90CB
-:104060000895CF93C82F8CE20E940320882321F06B
-:104070008C2FCF910C94032080E0CF910895CF93A3
-:104080000E948721811102C00E946D2188E294E084
-:104090000E94A406C5E6C15049F00E9469078FE35B
-:1040A0009CE90197F1F700C00000F5CF81E294E0B0
-:1040B0000E94A40689E20E94312081110CC18AE28B
-:1040C0000E94312081110E946D2185E00E943120E3
-:1040D00081110E94E11F0E9492218093C10187E01B
-:1040E0000E9431208823A9F18BE10E94312088238E
-:1040F00051F08091C10181FB222720F991E09227A4
-:1041000090FB81F90EC08EE00E943120882361F07F
-:104110008091C10182FB222720F991E0922790FB38
-:1041200082F98093C10115C080E10E9431209091F5
-:10413000C101882341F093FB222720F981E08227E7
-:1041400080FB93F904C0892F809580FB90F99093B0
-:10415000C1018091C1010E9496210E94A4218093F7
-:10416000DF0180EE0E943120882341F08091DF0141
-:10417000982F909590FB80F98093DF0189E30E944E
-:104180003120882359F08091DF0181FB222720F91B
-:1041900091E0922790FB81F98093DF0182EE0E94EB
-:1041A0003120882359F08091DF0182FB222720F9FA
-:1041B00091E0922790FB82F98093DF0186EE0E94C6
-:1041C0003120882359F08091DF0183FB222720F9D9
-:1041D00091E0922790FB83F98093DF0183EE0E94A8
-:1041E0003120882359F08091DF0184FB222720F9B8
-:1041F00091E0922790FB84F98093DF0185E30E9490
-:104200003120882359F08091DF0185FB222720F996
-:1042100091E0922790FB85F98093DF0181E30E9472
-:104220003120882359F08091DF0186FB222720F975
-:1042300091E0922790FB86F98093DF0181E10E9453
-:104240003120882359F08091DF0187FB222720F954
-:1042500091E0922790FB87F98093DF018091DF0145
-:104260000E94A82187E20E943120C82F8EE10E947F
-:1042700031208111C2608FE10E9431208111C46020
-:1042800080E20E9431208111C86081E20E943120C9
-:104290008111C06182E20E9431208111C06283E2FB
-:1042A0000E9431208111C06484E20E943120882361
-:1042B00011F0C06802C0CC2329F08C2F0E949F21EE
-:1042C0006C2F03C00E949B21682F70E080E090E07B
-:1042D000CF910C944E1CCF9108956DEE7EEF80E04F
-:1042E00090E00E94E62A60E082E090E00E94D42AFA
-:1042F00060E083E090E00E94D42A60E084E090E0F7
-:104300000E94D42A60E085E090E00C94D42A80E0FA
-:1043100090E00E94CE2A21E08D3E9E4F09F020E0E1
-:10432000822F089582E090E00C94C62A682F82E0E4
-:1043300090E00C94D42A83E090E00C94C62A682F75
-:1043400083E090E00C94D42A84E090E00C94C62A98
-:10435000682F84E090E00C94D42A8091C90180FFFA
-:104360000BC06091100185E0689FB0011124759524
-:104370006795759567952BC081FF09C06091100105
-:1043800085E0689FB00111247595679520C082FF74
-:1043900007C06091100185E0689FB001112417C02B
-:1043A0009091CA019923D1F060910F01961788F777
-:1043B0002091100185E0289F90011124929FA00177
-:1043C000939F500D112470E0CA010E94982A603812
-:1043D000710540F46115710539F002C065E070E0C7
-:1043E000862F08958FE7089581E008958091C9018F
-:1043F00080FF08C060910E0170E075956795759516
-:10440000679521C081FF06C060910E0170E075952F
-:10441000679519C082FF04C060910E0170E010C062
-:104420009091CA019923C1F060910D019617A0F7F0
-:1044300080910E01899FC001112470E00E94982A8A
-:104440006038710528F46115710521F0862F0895F3
-:104450008FE7089581E0089561E070E0F4CF803F38
-:1044600021F40E94AD21819504C0813F29F40E946E
-:10447000AD218093CD010895823F21F40E94AD21AA
-:10448000819504C0833F29F40E94AD218093CC0123
-:104490000895893F19F40E94F62105C08A3F31F43E
-:1044A0000E94F62181958093CE0108958B3F21F4DF
-:1044B0000E94F621819504C08C3F29F40E94F621C8
-:1044C0008093CF010895843F21F48091CB018160D6
-:1044D00017C0853F21F48091CB01826011C0863FD7
-:1044E00021F48091CB0184600BC0873F21F480913F
-:1044F000CB01886005C0883F31F48091CB01806199
-:104500008093CB0108958D3F21F48091C901816092
-:104510000BC08E3F21F48091C901826005C08F3F9E
-:1045200029F48091C90184608093C9010895803F76
-:1045300039F48091CD0187FF6CC01092CD0169C024
-:10454000813F29F48091CD011816BCF362C090918F
-:10455000CC01823F29F497FF5CC01092CC0159C076
-:10456000833F19F41916CCF354C0893F41F480916C
-:10457000CE0118160CF04DC01092CE014AC08A3FF1
-:1045800029F48091CE0187FF44C0F6CF8B3F39F4E8
-:104590008091CF0187FF3DC01092CF013AC08C3F80
-:1045A00029F48091CF011816BCF333C0843F21F465
-:1045B0008091CB018E7F17C0853F21F48091CB0184
-:1045C0008D7F11C0863F21F48091CB018B7F0BC082
-:1045D000873F21F48091CB01877F05C0883F31F46C
-:1045E0008091CB018F7E8093CB0113C08D3F21F44E
-:1045F0008091C9018E7F0BC08E3F21F48091C9014B
-:104600008D7F05C08F3F29F48091C9018B7F8093F6
-:10461000C9018091CC0181110EC08091CD01811121
-:104620000AC08091CE01811106C08091CF01811115
-:1046300002C01092CA0108958091C10183FF7EC01B
-:1046400084E694E00E94A4068091CB011F928F9390
-:104650008FE594E09F938F930E943D078DE594E052
-:104660000E94A4068091CC01282F332727FD309586
-:104670003F938F938AE594E09F938F930E943D0729
-:1046800088E594E00E94A4068091CD01282F33276D
-:1046900027FD30953F938F9385E594E09F938F930B
-:1046A0000E943D0783E594E00E94A4068091CE011C
-:1046B000282F332727FD30953F938F9380E594E093
-:1046C0009F938F930E943D078EE494E00E94A4067E
-:1046D0008091CF01282F332727FD30953F938F936B
-:1046E0008BE494E09F938F930E943D0788E494E0CD
-:1046F0000E94A4068091CA011F928F9385E494E0E2
-:104700009F938F930E943D0783E494E00E94A40648
-:104710008091C9011F928F9380E494E09F938F93BF
-:104720000E943D078DE394E00E94A4068DB79EB7DA
-:104730004C960FB6F8949EBF0FBE8DBF8BEC91E0E8
-:104740000E9436140E944E1F9093C8018093C701A7
-:1047500008951F93CF93DF938091C7019091C80173
-:104760000E94661FAC019091CA01992321F020910B
-:10477000110130E006C0209112018AE0289F9001CB
-:1047800011244217530708F486C08091CC01C091D0
-:10479000CD01D091CE011091CF01811107C0C1117F
-:1047A00076C0D11174C0111172C075C09F3F19F04D
-:1047B0009F5F9093CA01181624F40E94AD21809344
-:1047C000CC018091CC0187FF05C00E94AD2181956D
-:1047D0008093CC011C1624F40E94AD218093CD015E
-:1047E0008091CD0187FF05C00E94AD218195809306
-:1047F000CD016091CC01662339F1C091CD01CC236C
-:1048000019F1772767FD7095872F972F0E949D29B3
-:1048100023E333E343E35FE30E94012A0E946A2912
-:104820006093CC016C2F772767FD7095872F972FAA
-:104830000E949D2923E333E343E35FE30E94012ABF
-:104840000E946A296093CD011D1624F40E94F6216E
-:104850008093CE018091CE0187FF05C00E94F62192
-:1048600081958093CE01111624F40E94F621809345
-:10487000CF018091CF0187FF05C00E94F62181956D
-:104880008093CF01DF91CF911F910C941C239F3F08
-:1048900009F08ECF96CFDF91CF911F910895EBEC69
-:1048A000F1E085E0DF011D928A95E9F71092CA01D7
-:1048B0001092C901089587E896E00E94A4061F920D
-:1048C00081E08F931F9285E08F9389E396E09F9319
-:1048D0008F930E943D070F900F900F900F900F90B5
-:1048E0000F9008958330E9F128F4813061F082302F
-:1048F00009F10895853009F462C008F449C0863092
-:1049000009F474C0089580911201262F30E0280F19
-:10491000311D2F3F310524F4680F6093120103C04D
-:104920008FEF80931201809112011F928F9382E783
-:1049300095E072C080911101262F30E0280F311DC3
-:104940002F3F310524F4680F6093110103C08FEFEE
-:1049500080931101809111011F928F9380E695E061
-:104960005BC080911001262F30E0280F311D2F3FB2
-:10497000310524F4680F6093100103C08FEF80931A
-:104980001001809110011F928F938DE495E044C037
-:1049900080910F01262F30E0280F311D2F3F310568
-:1049A00024F4680F60930F0103C08FEF80930F0111
-:1049B00080910F011F928F9388E395E02DC0809125
-:1049C0000E01262F30E0280F311D2F3F310524F432
-:1049D000680F60930E0103C08FEF80930E018091EA
-:1049E0000E011F928F938FE195E016C080910D010B
-:1049F000262F30E0280F311D2F3F310524F4680F9A
-:104A000060930D0103C08FEF80930D0180910D0124
-:104A10001F928F9384E095E09F938F930E943D07B0
-:104A20000F900F900F900F900895833081F128F42C
-:104A3000813059F08230D1F00895853009F449C0B1
-:104A4000B8F1863009F456C00895809112016817B4
-:104A500020F4861B8093120102C0109212018091F3
-:104A600012011F928F9385EF94E054C08091110141
-:104A7000681720F4861B8093110102C01092110167
-:104A8000809111011F928F9383EE94E043C0809137
-:104A90001001681720F4861B8093100102C0109249
-:104AA0001001809110011F928F9380ED94E032C02D
-:104AB00080910F01681720F4861B80930F0102C0BC
-:104AC00010920F0180910F011F928F938BEB94E056
-:104AD00021C080910E01681720F4861B80930E017F
-:104AE00002C010920E0180910E011F928F9382EAF4
-:104AF00094E010C080910D01681720F4861B80930C
-:104B00000D0102C010920D0180910D011F928F9333
-:104B100087E894E09F938F930E943D070F900F903A
-:104B20000F900F900895CF93C82F1F928F938CE80A
-:104B300097E09F938F930E943D0781E090E0A0E073
-:104B4000B0E0BC01CD0104C0660F771F881F991F1C
-:104B5000CA95D2F70E944E1C0F900F900F900F90A5
-:104B6000CF910C948E18CF938732B0F58E3108F028
-:104B70004AC28E3009F4C4C100F5873009F48DC1F2
-:104B8000A8F4863009F045C28091C101817F8E7FF3
-:104B90008093C1018BEF98E00E94A40684E99CE019
-:104BA0000E94A40681E08093D10175C1883009F488
-:104BB0003FC08B3009F46BC12CC2863109F4E6C1C9
-:104BC00020F4803109F4B0C124C2893109F4C7C18D
-:104BD0008B3109F481C11DC2883309F458C150F4E6
-:104BE000893209F412C2853309F40FC2873209F4FD
-:104BF0000CC20FC2833409F408C228F48A3308F4C3
-:104C000008C2895303C2883409F003C20E948E1877
-:104C100088E79CE00E94A4069FEF23ED80E391507B
-:104C200020408040E1F700C000000E94E11F33C136
-:104C300088E99CE00E94A4068AEF9BE00E94A406FB
-:104C40000E949B211F928F9387EF9BE09F938F93EE
-:104C50000E943D0785EF9BE00E94A4060E949221DE
-:104C6000C82F82EE9BE00E94A4061F92CF938DED89
-:104C70009BE09F938F930E943D078BED9BE00E94EA
-:104C8000A40681ED9BE00E94A4068C2F81701F92E8
-:104C90008F938EEC9BE09F938F930E943D078CEC4B
-:104CA0009BE00E94A40682EC9BE00E94A406C1FB4C
-:104CB000882780F91F928F938FEB9BE09F938F93B0
-:104CC0000E943D078DEB9BE00E94A40681EB9BE0D8
-:104CD0000E94A406C2FB882780F91F928F938EEA58
-:104CE0009BE09F938F930E943D078CEA9BE00E947C
-:104CF000A40683EA9BE00E94A406C3FBCC27C0F96C
-:104D00001F92CF9380EA9BE09F938F930E943D0771
-:104D10008EE99BE00E94A4060E94A421C82F8AE885
-:104D20009BE00E94A4061F92CF9385E89BE09F938F
-:104D30008F930E943D0783E89BE00E94A4068AE6C9
-:104D40009BE00E94A4068C2F81701F928F9387E6B0
-:104D50009BE09F938F930E943D078DB79EB78096EF
-:104D60000FB6F8949EBF0FBE8DBF85E69BE00E94F4
-:104D7000A4068EE49BE00E94A406C1FB882780F96C
-:104D80001F928F938BE49BE09F938F930E943D072C
-:104D900089E49BE00E94A40687E39BE00E94A406AE
-:104DA000C2FB882780F91F928F9384E39BE09F9337
-:104DB0008F930E943D0782E39BE00E94A40680E25D
-:104DC0009BE00E94A406C3FB882780F91F928F9363
-:104DD0008DE19BE09F938F930E943D078BE19BE0C9
-:104DE0000E94A40681E19BE00E94A406C4FB8827E0
-:104DF00080F91F928F938EE09BE09F938F930E9488
-:104E00003D078CE09BE00E94A4068AEF9AE00E9496
-:104E1000A406C5FB882780F91F928F9387EF9AE03D
-:104E20009F938F930E943D0785EF9AE00E94A4060E
-:104E300089ED9AE00E94A406C6FB882780F91F929C
-:104E40008F9386ED9AE09F938F930E943D0784EDA8
-:104E50009AE00E94A4068CEC9AE00E94A406C7FB8C
-:104E6000CC27C0F91F92CF9389EC9AE09F938F9340
-:104E70000E943D0787EC9AE00E94A4068DB79EB77A
-:104E80004C960FB6F8949EBF0FBE8DBF04C082E251
-:104E900099E00E94A406C1E0C1C08091C101C82F61
-:104EA000C095C170C0FB80F98093C101CC2349F04B
-:104EB0008CE69CE00E94A4068091C1018660886017
-:104EC00048C08FE59CE00E94A4068091C101897FC3
-:104ED000877F8093C101DFCF9091C10191FBCC27E7
-:104EE000C0F981E0C827892FC0FB81F98093C101F7
-:104EF000CC2319F082E59CE027C084E49CE0C9CF74
-:104F00009091C10192FBCC27C0F981E0C827892F7D
-:104F1000C0FB82F98093C101CC2319F085E39CE0AA
-:104F200013C085E29CE0B5CF9091C10193FBCC27E3
-:104F3000C0F981E0C827892FC0FB83F98093C101A4
-:104F4000CC2351F089E19CE00E94A4068091C1012C
-:104F500081608093C10162C08CE09CE09ACF8CEEAE
-:104F600098E00E94A40684EC98E00E94A4068EE8D3
-:104F700098E00E94A40681E698E00E94A40682E2DE
-:104F800098E00E94A40687EF97E083CF89EE97E030
-:104F90000E94A4060E94E1131F928F938FEC97E06A
-:104FA0009F938F930E943D0780910A011F928F93D8
-:104FB00088EB97E09F938F930E943D078091640157
-:104FC0001F928F9385EA97E09F938F930E943D07EE
-:104FD0008091C3019091C401A091C501B091C60117
-:104FE000BF93AF939F938F9381E997E09F938F93A4
-:104FF0000E943D078DB79EB742960FB6F8949EBFAC
-:105000000FBE8DBF48CF8D5101C080E00E94932517
-:1050100042CF8AE09CE00E94A406C0E08C2FCF9192
-:10502000089580E0089580E00895CF93C82F80917F
-:10503000D101813071F020F0823009F44BC042C1BF
-:10504000E0910B01F0910C018081823209F03CC1AA
-:1050500007C0E0910B01F0910C018081823261F474
-:105060008C2F0E941128811104C08C2F0E94B3251F
-:105070002FC081E090E02CC08C2F0E94132881115A
-:1050800026C0C431E1F070F4CB3081F0C031D1F4EE
-:105090000E945B2484E897E00E94A40682E080934B
-:1050A000D10115C0C93259F0C83361F48BEF98E0D3
-:1050B0000E94A40688E897E00E94A40608C0109207
-:1050C000D10104C182E897E00E94A406FFC081E0FC
-:1050D0008170FEC0C43228F5CE3108F0C1C0CB309B
-:1050E000A1F1D0F4C73009F0D3C08EE18093120152
-:1050F00082E3809311018AE08093100184E1809320
-:105100000F0188E080930E0188E280930D0188E210
-:1051100096E00E94A406BFC0C33149F1C431C1F07A
-:10512000B7C0CB3409F4A9C028F4C93289F0C83318
-:1051300061F0AEC0C13509F49EC0C23509F499C012
-:10514000CE3409F0A5C06AE09EC00E945B24A3C0D3
-:105150008091D001882319F01092D0019CC085E382
-:1051600096E00E94A40681E08093D101B1C08FE057
-:1051700096E00E94A4068DEF95E00E94A40680911F
-:1051800012011F928F938AEF95E09F938F930E9455
-:105190003D0788EF95E00E94A40686EE95E00E9408
-:1051A000A406809111011F928F9383EE95E09F9347
-:1051B0008F930E943D0781EE95E00E94A40682ED48
-:1051C00095E00E94A406809110011F928F938FECAE
-:1051D00095E09F938F930E943D078DEC95E00E9490
-:1051E000A4068CEB95E00E94A40680910F011F920B
-:1051F0008F9389EB95E09F938F930E943D0787EBF8
-:1052000095E00E94A40682EA95E00E94A40680919F
-:105210000E011F928F938FE995E09F938F930E94C9
-:105220003D078DE995E00E94A40686E895E00E947E
-:10523000A40680910D011F928F9383E895E09F93C0
-:105240008F930E943D0781E895E00E94A4068DB7E8
-:105250009EB748960FB6F8949EBF0FBE8DBF1BC079
-:10526000CE51EC2FF0E0E95DFE4F80818093D001BC
-:1052700012C061E003C061E006C06AE08091D00125
-:105280000E94722408C08091D0010E94152503C09D
-:1052900086E296E013C08091D001882369F01F92C6
-:1052A0008F9380E296E09F938F930E943D070F902B
-:1052B0000F900F900F9004C08DE196E00E94A4061D
-:1052C00081E006C01092D10180E002C080E000CFF2
-:1052D000CF91089504D06894B1118DC0089570D015
-:1052E00088F09F5790F0B92F9927B751A0F0D1F0CF
-:1052F000660F771F881F991F1AF0BA95C9F712C059
-:10530000B13081F077D0B1E0089574C0672F782F65
-:105310008827B85F39F0B93FCCF3869577956795C4
-:10532000B395D9F73EF490958095709561957F4F30
-:105330008F4F9F4F0895E89409C097FB3EF49095D6
-:105340008095709561957F4F8F4F9F4F9923A9F05E
-:10535000F92F96E9BB279395F695879577956795ED
-:10536000B795F111F8CFFAF4BB0F11F460FF1BC031
-:105370006F5F7F4F8F4F9F4F16C0882311F096E9C4
-:1053800011C0772321F09EE8872F762F05C0662372
-:1053900071F096E8862F70E060E02AF09A95660F2B
-:1053A000771F881FDAF7880F9695879597F90895E4
-:1053B00057FD9058440F551F59F05F3F71F04795C6
-:1053C000880F97FB991F61F09F3F79F087950895AB
-:1053D000121613061406551FF2CF4695F1DF08C0CA
-:1053E000161617061806991FF1CF869571056105E7
-:1053F00008940895E894BB2766277727CB0197F98F
-:1054000008950BD078C069D028F06ED018F095239D
-:1054100009F05AC05FC01124EECFCADFA0F3959FF8
-:10542000D1F3950F50E0551F629FF001729FBB278B
-:10543000F00DB11D639FAA27F00DB11DAA1F649F37
-:105440006627B00DA11D661F829F2227B00DA11DEA
-:10545000621F739FB00DA11D621F839FA00D611D70
-:10546000221F749F3327A00D611D231F849F600D91
-:10547000211D822F762F6A2F11249F5750408AF0CA
-:10548000E1F088234AF0EE0FFF1FBB1F661F771F56
-:10549000881F91505040A9F79E3F510570F014C0ED
-:1054A000AACF5F3FECF3983EDCF38695779567953E
-:1054B000B795F795E7959F5FC1F7FE2B880F911D74
-:1054C0009695879597F9089597F99F6780E870E01A
-:1054D00060E008959FEF80EC089500240A9416166A
-:1054E000170618060906089500240A9412161306D2
-:1054F000140605060895092E0394000C11F4882360
-:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B
-:105510007F4F8F4F9F4F0895991B79E004C0991FCB
-:10552000961708F0961B881F7A95C9F780950895FD
-:1055300097FB072E16F4009407D077FD09D00E9440
-:10554000B22A07FC05D03EF4909581959F4F0895AF
-:10555000709561957F4F0895EE0FFF1F0590F491B0
-:10556000E02D0994AA1BBB1B51E107C0AA1FBB1F5A
-:10557000A617B70710F0A61BB70B881F991F5A95DF
-:10558000A9F780959095BC01CD010895F999FECFBA
-:1055900092BD81BDF89A992780B50895A8E1B0E041
-:1055A00042E050E00C94EE2A262FF999FECF92BDEE
-:1055B00081BDF89A019700B4021639F01FBA20BDD8
-:1055C0000FB6F894FA9AF99A0FBE08950196272F0C
-:1055D0000E94D52A0C94D42ADC01CB01FC01F99954
-:1055E000FECF06C0F2BDE1BDF89A319600B40D922F
-:0C55F00041505040B8F70895F894FFCFE8
-:1055FC00470C380D150DE10CAD0C01B60128081443
-:10560C000A321E3F4D3620AF0362032C030C039865
-:10561C0002B102CA02E302010203040506070809EB
-:02562C0000007C
-:00000001FF
diff --git a/keyboard/hhkb/keymaps/default/keymap.c b/keyboard/hhkb/keymaps/default/keymap.c deleted file mode 100644 index bd5dd8372d..0000000000 --- a/keyboard/hhkb/keymaps/default/keymap.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * default HHKB Layout - */ -#include "hhkb.h" - -#define BASE 0 -#define HHKB 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* BASE Level: Default Layer - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | - |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| - - |------+------+-----------------------+------+------| - | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | - |------+------+-----------------------+------+------| - */ - - [BASE] = KEYMAP( // default layer - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), - - - - /* Layer HHKB: HHKB mode (HHKB Fn) - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | | | | | | + | - | End | PgD | Dow | | | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - - |------+------+----------------------+------+------+ - | **** | **** | ******************** | **** | **** | - |------+------+----------------------+------+------+ - - */ - - [HHKB] = KEYMAP( - KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; - - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/hhkb/keymaps/lxol/compiled.hex b/keyboard/hhkb/keymaps/lxol/compiled.hex deleted file mode 100644 index 63d3691c4d..0000000000 --- a/keyboard/hhkb/keymaps/lxol/compiled.hex +++ /dev/null @@ -1,1421 +0,0 @@ -:100000000C9493070C94D7070C94D7070C94D7073C
-:100010000C94D7070C94D7070C94D7070C94D707E8
-:100020000C94D7070C94D7070C949B120C946D1367
-:100030000C945D200C94D7070C94D7070C94D70729
-:100040000C94D7070C94D7070C94D7070C94D707B8
-:100050000C94D7070C94FD200C94D7070C94D70769
-:100060000C94D7070C94D7070C94D7070C94D70798
-:100070000C94D7070C94D7070C94D7070C94D70788
-:100080000C94D7070C94D7070C94D7070C94D70778
-:100090000C94D7070C94D7070C94D7070C94D70768
-:1000A0000C94D7070C94D7070C94D707DA13FC13DA
-:1000B000EA14FC13EA1441146414EA14B914CC14BD
-:1000C000A617A617D517D51714183418641964196C
-:1000D0003F186419EF18EF185519641964195E195F
-:1000E000FC18FC18FC18FC18FC18FC18FC18FC1870
-:1000F000FC18FC18FC18FC18FC18FC18FC18FC1860
-:100100000C191A19211928193219253032583A2098
-:10011000253038620A000A722F63203031323334BE
-:100120003536370A0028311F0014001A001644041F
-:10013000461D001B000600200021001500080007D6
-:1001400000090019000500220023001C0017000A06
-:10015000000B00110000001E0029002B00E000E150
-:1001600000E200E3002C002400250018000C000E23
-:10017000000D0010000000310035002A00C0000210
-:1001800052E500E600E700260027001200130033C6
-:10019000450F43360000002D002E0030002F0034A4
-:1001A000003800370000001F0014001A0016460433
-:1001B000441D001B00060020002100150008000758
-:1001C00000090019000500220023001C0017000A86
-:1001D000000B00110000001E0029002B00E000E1D0
-:1001E00000E700E6002C002400250018000C000E9B
-:1001F000000D0010000000310035002A00C0000290
-:1002000052E500E700E60026002700120013003345
-:10021000430F45360000002D002E0030002F003423
-:10022000003800370000003B0001000100A900AACF
-:10023000000100010001003C003D0001000100A898
-:10024000000100010001003E003F0001000100012B
-:10025000005500570000003A00A5003900010001D8
-:100260000001000100010040004100010046004A79
-:100270000054005600000049004C002A00580001BC
-:100280000001000100010042004300470048005007
-:10029000004B004D00000044004500010052004F9B
-:1002A0000051004E0000001F1814181A18161804E8
-:1002B000181D181B180618201821181518081807DB
-:1002C00018091819180518221823181C1817180AC5
-:1002D000180B18111800001E1829182B18E018E127
-:1002E00018E200E3002C182418251818180C180E12
-:1002F000180D1810180000311835182A18C0000100
-:1003000000E518E600E70026182718121813180150
-:10031000000100361800002D182E1830182F183440
-:10032000183818371800001F0814081A08010001AF
-:10033000001D081B080608200821081508080807E2
-:1003400008090819080508220823081C0817080AC4
-:10035000080B08110800001E0829082B08E008E116
-:1003600000E200E3002C082408250818080C080EF9
-:10037000080D0810080000310835082A08C00001DF
-:1003800000E500E600E300260827081208130833FA
-:10039000080F08360800002D082E0830082F0834F2
-:1003A000083808370800001F1414141A141614040F
-:1003B000141D141B140614201421141514081407FA
-:1003C00014091419140514221423141C1417140AE4
-:1003D000140B14111400001E1429142B14E014E142
-:1003E00014E200E3002C142414251418140C140E29
-:1003F000140D1410140000311435142A14C0000117
-:1004000000E514E600E70026142714121413140163
-:10041000000100361400002D142E1430142F143453
-:10042000143814371400001F0414041A04010001C6
-:10043000001D041B040604200421041504080407FD
-:1004400004090419040504220423041C0417040AE3
-:10045000040B04110400001E0429042B04E004E131
-:1004600000E200E3002C042404250418040C040E0C
-:10047000040D0410040000310435042A04C00001F6
-:1004800000E500E600E30026042704120413043309
-:10049000040F04360400002D042E0430042F04340D
-:1004A000043804370400000A44454255473A2065A1
-:1004B0006E61626C65642E0A005B735D004B65794A
-:1004C000626F6172642073746172742E0A005B57EC
-:1004D0005D005B535D005B525D005B445D005B4310
-:1004E0005D001203480048004B00420020006D00F0
-:1004F0006F00640000000C0371002E006D002E00E0
-:100500006B0000000403090409027400040100A048
-:10051000FA09040000010301010009211101000191
-:10052000223F000705810308000A090401000103B6
-:10053000010200092111010001224D00070582037B
-:1005400008000A090402000103000000092111014A
-:1005500000012236000705830308000A090403008E
-:1005600002030000000921110100012220000705FB
-:10057000840320000107050403200001120110017B
-:1005800000000008EDFEFECA040101020001063170
-:10059000FF0974A1010975150025FF9520750881D3
-:1005A000020976150025FF952075089102C0050106
-:1005B0000980A101850216010026B7001A01002A50
-:1005C000B700751095018100C0050C0901A10185D6
-:1005D00003160100269C021A01002A9C0275109540
-:1005E000018100C005010902A1010901A10005095D
-:1005F000190129051500250195057501810295014F
-:10060000750381010501093009311581257F9502A6
-:100610007508810609381581257F950175088106C1
-:10062000050C0A38021581257F950175088106C0E1
-:10063000C005010906A101050719E029E7150025F4
-:100640000195087501810295017508810105081958
-:100650000129059505750191029501750391010523
-:1006600007190029FF150025FF950675088100C0B0
-:100670000A002530325820006B6579626F61726420
-:100680005F7265706F72743A20004B6579626F61BA
-:100690007264204C4544732073746174653A20255C
-:1006A000780A00646F6E652E0A00626F6F676D6175
-:1006B000676963207363616E3A202E2E2E20002915
-:1006C0000A002575002F002575005D2800256400AF
-:1006D0002000256400200025640020002564007CA3
-:1006E0000025303258006D6F7573656B6579205B3E
-:1006F00062746E7C782079207620685D287265703F
-:100700002F61636C293A205B006D6B5F77686565CC
-:100710006C5F74696D655F746F5F6D6178203D20FB
-:1007200025640A006D6B5F776865656C5F6D617845
-:100730005F7370656564203D2025640A006D6B5F02
-:1007400074696D655F746F5F6D6178203D2025640D
-:100750000A006D6B5F6D61785F7370656564203D45
-:100760002025640A006D6B5F696E74657276616C3A
-:10077000203D2025640A006D6B5F64656C61792003
-:100780003D2025640A006D6B5F776865656C5F745A
-:10079000696D655F746F5F6D6178203D2025640A27
-:1007A000006D6B5F776865656C5F6D61785F737016
-:1007B000656564203D2025640A006D6B5F74696D7A
-:1007C000655F746F5F6D6178203D2025640A006D60
-:1007D0006B5F6D61785F7370656564203D20256493
-:1007E0000A006D6B5F696E74657276616C203D20E6
-:1007F00025640A006D6B5F64656C6179203D20257E
-:10080000640A000A00257500363A20776865656C31
-:100810005F74696D655F746F5F6D61783A20000A7F
-:1008200000257500353A20776865656C5F6D6178E5
-:100830005F73706565643A20000A00257500343ADC
-:100840002074696D655F746F5F6D61783A20000A8E
-:1008500000257500333A206D61785F7370656564BB
-:100860003A20000A00257500323A20696E746572DC
-:1008700076616C286D73293A20000A0025750031D5
-:100880003A2064656C6179282A31306D73293A20E9
-:10089000000A092D2056616C756573202D0A004DE4
-:1008A0003E004D25643E20003F0073657420646562
-:1008B0006661756C740A00433E2000776865726556
-:1008C0002064656C74613A20637572736F723D25A4
-:1008D000642C20776865656C3D25640A5365652046
-:1008E000687474703A2F2F656E2E77696B69706526
-:1008F0006469612E6F72672F77696B692F4D6F7511
-:1009000073655F6B6579730A000A092D204D6F7559
-:1009100073656B6579202D0A4553432F713A097130
-:100920007569740A313A0964656C6179282A313035
-:100930006D73290A323A09696E74657276616C28A2
-:100940006D73290A333A096D61785F737065656468
-:100950000A343A0974696D655F746F5F6D61780A76
-:10096000353A09776865656C5F6D61785F737065AE
-:1009700065640A363A09776865656C5F74696D6508
-:100980005F746F5F6D61780A0A703A097072696E00
-:10099000742076616C7565730A643A097365742016
-:1009A00064656661756C74730A75703A092B310A57
-:1009B000646F776E3A092D310A706775703A092BAA
-:1009C00031300A7067646F776E3A092D31300A0A48
-:1009D0007370656564203D2064656C7461202A2015
-:1009E0006D61785F7370656564202A202872657078
-:1009F000656174202F2074696D655F746F5F6D6130
-:100A000078290A003F004D3E2000433E20004C253F
-:100A1000640A0074696D65725F636F756E743A2065
-:100A20002530346C580A006B6579626F6172645FBF
-:100A300069646C653A2025580A006B6579626F61BC
-:100A400072645F70726F746F636F6C3A2025580A1E
-:100A500000686F73745F6B6579626F6172645F6C5D
-:100A600065647328293A2025580A000A092D205365
-:100A70007461747573202D0A004743433A20342E65
-:100A8000392E32204156522D4C4942433A20312EC4
-:100A9000382E31204156525F415243483A20617608
-:100AA00072350A004F5054494F4E533A204C554628
-:100AB0004120424F4F544D41474943204D4F5553DC
-:100AC000454B45592045585452414B455920434FB9
-:100AD0004E534F4C4520434F4D4D414E44203531F0
-:100AE000320A004255494C443A2031363731386594
-:100AF000662D6469727479202832333A33393A3476
-:100B000039204A756E2020392032303136290A00CA
-:100B10005649443A2030784645454428712E6D2E7A
-:100B20006B29205049443A203078434146452848B3
-:100B3000484B42206D6F6429205645523A20307848
-:100B4000303130340A00444553433A20712E6D2E23
-:100B50006B206B6579626F617264206669726D7774
-:100B600061726520666F722048484B420A000A098C
-:100B70002D2056657273696F6E202D0A000A092DAB
-:100B800020436F6E736F6C65202D0A4553432F71A0
-:100B90003A09717569740A6D3A096D6F7573656B01
-:100BA00065790A000A092D204D61676963202D0AC5
-:100BB000443A094465627567204D657373616765E2
-:100BC00020546F67676C650A583A094D6174726901
-:100BD00078204465627567204D6F646520546F67A7
-:100BE000676C65202D2053686F77206B6579707274
-:100BF000657373657320696E206D61747269782006
-:100C0000677269640A4B3A094B6579626F61726475
-:100C100020446562756720546F67676C65202D20DE
-:100C200053686F77206B6579707265737320726596
-:100C3000706F72740A4D3A094465627567204D6F92
-:100C400075736520546F67676C650A563A09566577
-:100C50007273696F6E0A533A095374617475730A3B
-:100C6000433A09416374697661746520436F6E731A
-:100C70006F6C65204D6F64650A46312D4631303A00
-:100C80000953776974636820746F204C61796572C9
-:100C900020302D392028463130203D204C30290A83
-:100CA000302D393A0953776974636820746F204C8A
-:100CB0006179657220302D390A4553433A095377DB
-:100CC0006974636820746F204C61796572203020EC
-:100CD00028616C7465726E617465206B6579203172
-:100CE000290A47524156453A095377697463682087
-:100CF000746F204C6179657220302028616C7465B6
-:100D0000726E617465206B65792032290A504155F5
-:100D100053453A094A756D7020746F20426F6F74A5
-:100D20006C6F6164657220285265736574290A4589
-:100D30003A095072696E7420454550524F4D205308
-:100D4000657474696E67730A000A002575002E6E5B
-:100D50006B726F3A20000A002575002E7377617060
-:100D60005F6261636B736C6173685F6261636B7315
-:100D7000706163653A20000A002575002E73776163
-:100D8000705F67726176655F6573633A20000A0081
-:100D90002575002E6E6F5F6775693A20000A002581
-:100DA00075002E737761705F72616C745F72677526
-:100DB000693A20000A002575002E737761705F6C18
-:100DC000616C745F6C6775693A20000A00257500D4
-:100DD0002E636170736C6F636B5F746F5F636F6EB4
-:100DE00074726F6C3A20000A002575002E737761CB
-:100DF000705F636F6E74726F6C5F636170736C6F42
-:100E0000636B3A20000A0025303258006B65796D1B
-:100E100061705F636F6E6669672E7261773A20005A
-:100E20000A002575002E6D6F7573653A20000A0063
-:100E30002575002E6B6579626F6172643A20000A35
-:100E4000002575002E6D61747269783A20000A00E1
-:100E50002575002E656E61626C653A20000A0025DA
-:100E60003032580064656275675F636F6E666967EC
-:100E70002E7261773A20000A00257500646566616C
-:100E8000756C745F6C617965723A20003F000A6D81
-:100E90006F7573653A206F66660A000A6D6F757329
-:100EA000653A206F6E0A000A6B6579626F61726441
-:100EB0003A206F66660A000A6B6579626F61726438
-:100EC0003A206F6E0A000A6D61747269783A206F79
-:100ED00066660A000A6D61747269783A206F6E0A5C
-:100EE000000A64656275673A206F66660A000A64E4
-:100EF000656275673A206F6E0A000A0A4A756D705E
-:100F0000696E6720746F20626F6F746C6F616465C7
-:100F1000722E2E2E2000433E20006565636F6E66A4
-:100F200069673A0A000011241FBECFEFDAE0DEBF86
-:100F3000CDBF04B603FE24C08091E0019091E10191
-:100F4000A091E201B091E3018730904BA740B04BF4
-:100F5000B9F41092E0011092E1011092E2011092B6
-:100F6000E30114BE84B7877F84BF88E10FB6F8948D
-:100F700080936000109260000FBEE0E0FFE30995EF
-:100F800011E0A0E0B1E0EEE7F8E502C005900D92B7
-:100F9000A233B107D9F711E0A2E3B1E001C01D927D
-:100FA000A03EB107E1F70E94D50F0C943D2C0C94A4
-:100FB0000000FF93EF93E0913201F09133013097FD
-:100FC00009F00995EF91FF910895FC01859180301A
-:100FD00011F0EFDFFBCF0895FF27E0E230E247FF9B
-:100FE0000CC0419597FF09C0EDE260957095809522
-:100FF0009095611D711D811D911D27FF02C02195D6
-:1010000030E350E2AA27660F771F881F991FAA1F97
-:10101000A41710F0A41B63955A95A9F7AA3008F0FD
-:10102000A95FA05DAF93F3956115710581059105E9
-:1010300041F7ED3211F4EF93F395F21718F43F9363
-:10104000F395FBCF8F91B5DFFA95E1F70895E9911C
-:10105000F9918591803021F0853219F0AADFF9CF1E
-:10106000089520E0E89455915532C1F3503311F4BE
-:10107000689455915A3348F4505390F3220F022E3E
-:10108000220F220F200D250FF4CF0EF42195899108
-:101090009991533619F3533729F1533559F1BC015E
-:1010A00088279927E8945C3621F48991999168946E
-:1010B0005591543639F446EF7EF077FF0DC08FEF2F
-:1010C0009FEF0AC055374AE039F0583540E121F02A
-:1010D000523642E009F00895FF93EF937DDFEF91E0
-:1010E000FF91B7CFFF93EF93FC0181918030B9F36B
-:1010F00060DFFBCFFF93EF9368DFF1CFDF93CF93F8
-:10110000CDB7DEB72596A3DFCF91DF9108958FEF9E
-:1011100084B980E485B957985F9A2E9A2F98ECE3AA
-:10112000F1E088E08E0F11928E13FDCFE4E3F1E041
-:1011300088E08E0F11928E13FDCF8CE391E0909397
-:1011400047018093460184E391E0909345018093A9
-:1011500044010895EF92FF920F931F93CF93DF9373
-:1011600080914401909145012091460130914701C1
-:1011700030934501209344019093470180934601A9
-:10118000C0E0D0E0EE24E394F12C0FEF10E020E07B
-:1011900030E085B1807C8C2BA90193E0440F551F72
-:1011A0009A95E1F7842B85B98AE18A95F1F700C019
-:1011B000E0914401F0914501EC0FFD1F808190E02A
-:1011C000022E02C0959587950A94E2F780FD2F9A2A
-:1011D00095E39A95F1F70000E6B52E988AE18A9595
-:1011E000F1F700C04091460150914701DA01AC0F80
-:1011F000BD1F4F9B0AC0C701022E01C0880F0A9471
-:10120000EAF780959C91892308C06C91C701022E52
-:1012100001C0880F0A94EAF7862B8C9386B56E2F4F
-:1012200070E08E1728F086B590E0861B970B06C0FD
-:10123000E6B5C801861B970B8E0F911D069758F0D7
-:10124000E0914401F0914501EC0FFD1F8081FA010E
-:10125000EC0FFD1F80839AE19A95F1F700C02F985B
-:101260002E9A8BE291E00197F1F700C000002F5F0A
-:101270003F4F2830310509F08CCFA0914601B09145
-:101280004701AC0FBD1FE0914401F0914501EC0F07
-:10129000FD1F9C918081981751F00E949B206093C4
-:1012A00048017093490180934A0190934B01219624
-:1012B000C830D10509F06BCF8091D601853021F07F
-:1012C0008091D601811111C060914801709149014E
-:1012D00080914A0190914B010E94D1206131774267
-:1012E0008105910510F00E94202081E0DF91CF91CF
-:1012F0001F910F91FF90EF9008952091460130913A
-:101300004701F901E80FF11D808108950F931F93A4
-:10131000CF93DF9386E191E00E94E507C0E0D0E043
-:101320000AE011E0E0914601F0914701EC0FFD1F4A
-:1013300080810E940A201F928F93DF93CF931F9387
-:101340000F930E947E0821960F900F900F900F90A0
-:101350000F900F90C830D10529F7DF91CF911F91E1
-:101360000F9108951F93CF93DF93C7E0D0E010E073
-:10137000E0914601F0914701EC0FFD1F808190E064
-:101380000E94FE1F180F219798F7812FDF91CF91B0
-:101390001F9108950895089561110BC0FC01828189
-:1013A000882321F085EE0E949A1603C085EE0E94E4
-:1013B000391780E090E0089581E0089581E0089574
-:1013C0000C94DE0908950F931F93CF93DF938C0144
-:1013D000FC01C081D181CE010E94C81EBE010E94C5
-:1013E0008C0AEC01B8010E94E009882309F48DC041
-:1013F000F8018281882309F44AC080915701811144
-:101400001FC0C431F0E5DF0709F051C00E94E209B6
-:1014100081E0809357010E948F2090935601809322
-:10142000550110924E011092500110924F011092EE
-:10143000520110925101109254011092530165C053
-:1014400080915501909156010E94A720883C9105FA
-:1014500070F480914E01E82FF0E0EE0FFF1FE15B8A
-:10146000FE4FD183C0838F5F80934E014EC0C4383E
-:1014700080E5D80721F0C538D04501F13AC0F80120
-:101480008281882341F010924C0182E01EC0C43852
-:10149000E0E5DE0759F580914C01811106C086E236
-:1014A0000E949A1686E20E94391782E01CC0C43856
-:1014B000F0E5DF0741F3C538D045D9F4F801828162
-:1014C000882331F010924D0180E20E9461171DC007
-:1014D00080914D01811106C087E20E949A1687E231
-:1014E0000E94391780E20E9468170FC0C538D045A6
-:1014F00029F381E080934C0180934D01C801DF9175
-:10150000CF911F910F910C94DC0980E0DF91CF9176
-:101510001F910F9108950895E72FF0E098E0899FBB
-:10152000E00DF11D112483E0EE0FFF1F8A95E1F716
-:10153000E60FF11DEE0FFF1FE95DFE4F85919491BF
-:101540000895880F991FFC01EB55F0408591949107
-:101550000895880F991FFC01EB5DFE4F85919491D2
-:1015600008950F931F93CF93DF93EC01811520E330
-:10157000920750F5C11580E2D80708F0C3C0CB3BF5
-:10158000D10590F4C83AD10508F06AC0C53AD10532
-:1015900008F05BC0C430D10508F0D4C1219709F030
-:1015A000CEC101E010E00EC2CF3FD10511F008F02E
-:1015B000C9C1C03FD10508F0A2C0CE01805E91092B
-:1015C000089708F4BFC1BBC1C13090E5D90709F441
-:1015D000A2C020F5C0318FE4D80770F4C11590E4A3
-:1015E000D90708F094C0C11521E3D20708F0A7C1BC
-:1015F000DD278E01106CE6C1C115D04509F09FC1F1
-:101600000E94CF198FEF94E32CE08150904020404E
-:10161000E1F700C000000E942221D4C1C11597E566
-:10162000D90758F4C03121E5D20708F020C1C431F0
-:1016300080E5D80708F479C082C1CE0190578115A2
-:10164000904108F07CC1DF7077C1C53AD10509F43B
-:101650007BC1C63AD10509F07AC102E810E4B2C1F3
-:10166000C83AD10509F476C1C93AD10509F475C162
-:10167000CA3AD10509F474C1CB3AD10509F473C152
-:10168000CC3AD10509F472C1CD3AD10509F471C142
-:10169000C03BD10509F470C1CE3AD10509F46FC140
-:1016A000CF3AD10509F46EC1C13BD10509F46DC132
-:1016B000C23BD10509F46CC1C33BD10509F46BC130
-:1016C000C43BD10509F46AC1C53BD10509F469C120
-:1016D000C63BD10509F468C1C73BD10509F467C110
-:1016E000C83BD10509F466C1C93BD10509F465C100
-:1016F000CA3BD10509F464C100E014E463C18E0162
-:10170000106560C1CE019F700E94A90A5CC1DF70A4
-:101710008E01106A57C187EA94E00E94E507809124
-:10172000C10181608093C1014DC10E94C822811115
-:1017300002C00E94AE220E94E52290E09093E00158
-:101740008093DF01C23080E5D80721F48091DF016A
-:10175000816086C0C43090E5D90721F48091DF0113
-:1017600082607EC0C63020E5D20721F48091DF017F
-:10177000846076C0C83080E5D80719F48091DF0115
-:1017800027C0CA3090E5D90721F48091DF0180613C
-:1017900067C0CC3020E5D20721F48091DF01806260
-:1017A0005FC0CE3080E5D80721F48091DF018064EE
-:1017B00057C0C03190E5D90721F48091DF018068DE
-:1017C0004FC0C23120E5D20729F48091DF01846047
-:1017D000886046C0C33080E5D80721F48091DF01DE
-:1017E0008E7F3EC0C53090E5D90721F48091DF019E
-:1017F0008D7F36C0C73020E5D20721F48091DF010C
-:101800008B7F2EC0C93080E5D80719F48091DF01A5
-:1018100026C0CB3090E5D90721F48091DF018F7E7F
-:101820001FC0CD3020E5D20721F48091DF018F7DEC
-:1018300017C0CF3080E5D80721F48091DF018F7B7E
-:101840000FC0C13190E5D90721F48091DF018F7776
-:1018500007C0C331D04531F48091DF018B7F877F92
-:101860008093DF018091DF010E94E922ABC08D2FC0
-:1018700099278F70992781309105D9F49E012370A3
-:10188000332702C0880F991F2A95E2F79C688E01C2
-:1018900044E0000F111F4A95E1F700271370802BD9
-:1018A000912B53E0CC0FDD1F5A95E1F7C076DD2771
-:1018B0002FC08230910531F4DC2FCC278E01016FCF
-:1018C000106A80C08330910569F4CE018370992736
-:1018D00001E010E002C0000F111F8A95E2F7C80175
-:1018E0009C680FC084309105B9F4CE0183709927AC
-:1018F00001E010E002C0000F111F8A95E2F7C80155
-:101900009A6823E0CC0FDD1F2A95E1F7C07ED770DF
-:101910008C010C2B1D2B56C08530910531F4DC2F2A
-:10192000CC278E01046F106A4DC0069709F04AC09B
-:10193000CF71DD27DC2FCC278E01106243C000E081
-:1019400010E040C08E013EC001E810E43BC003E857
-:1019500010E438C002EE14E435C009EE14E432C0DD
-:101960000AEE14E42FC005EB14E42CC006EB14E4DB
-:1019700029C007EB14E426C00CEC14E423C00DECE2
-:1019800014E420C003E815E41DC00AE815E41AC0F9
-:1019900002E915E417C004E915E414C001E216E4F5
-:1019A00011C003E216E40EC004E216E40BC005E227
-:1019B00016E408C006E216E405C007E216E402C019
-:1019C0000AE216E4C801DF91CF911F910F910895AB
-:1019D000E72FF0E098E0899FE00DF11D112483E0EE
-:1019E000EE0FFF1F8A95E1F7E60FF11DEE0FFF1FC7
-:1019F000E95DFE4F85919491803E9105E0F4803C35
-:101A0000910558F58133910509F46FC048F4893286
-:101A1000910509F463C08A32910509F46DC072C062
-:101A200089339105E9F082389105D1F0853391052C
-:101A300009F44DC067C0833E910581F138F4803EC2
-:101A40009105B9F0823E9105D9F05CC0863E9105C2
-:101A500061F1873E9105A1F155C00E94A10A089548
-:101A60002091DF0120FD02C021FF4CC080EE90E0FC
-:101A700049C08091DF0180FFF9CF89E390E042C047
-:101A80008091DF0182FF0EC08091DF0184FF03C0DF
-:101A900080E090E037C083EE90E034C08091DF01B9
-:101AA00082FFF2CF82EE90E02DC08091DF0183FFB4
-:101AB0000BC08091DF0184FDEBCF87EE90E022C068
-:101AC0008091DF0183FFF5CF86EE90E01BC080910F
-:101AD000DF0185FF07C089E290E014C08091DF013B
-:101AE00085FFF9CF85E390E00DC08091DF0186FF8F
-:101AF00007C08AE290E006C08091DF0186FFF9CF3F
-:101B000081E390E00E94B10A089508950C94850D38
-:101B10008091630108959FB7F89410925A019FBF76
-:101B20009091D601943009F057C09091E9009F70D0
-:101B30003091EC00232F217030FD20E8922B24E01F
-:101B40002093E9002091EB0020FF43C02091EE009C
-:101B500027FF3FC020915801222321F02091E80067
-:101B600025FF37C01092580126E03091E80035FD7E
-:101B700015C03091D601343061F53091EB0035FD60
-:101B800028C0215021F481E08093580122C0EFE960
-:101B9000FFE03197F1F700C00000E7CF8093F1003C
-:101BA0008091E80085FD0AC08091E80080FFFCCFAD
-:101BB0008091E8008E778093E80006C08FB7F89494
-:101BC00021E020935A018FBF9F709093E90080E03D
-:101BD00008959F709093E9008FEF0895CF93DF935E
-:101BE00000D01F92CDB7DEB79C018091D601843022
-:101BF00019F593E099833B832A839093E9008FEF53
-:101C00009091E800815095FD06C095ED9A95F1F709
-:101C100000008111F5CF8091E80085FF0DC040E004
-:101C200050E063E070E0CE0101960E948B1080913D
-:101C3000E8008E778093E8000F900F900F90DF916F
-:101C4000CF910895CF93DF9300D01F92CDB7DEB729
-:101C50002091D601243021F522E029839B838A83B9
-:101C600083E08093E9008FEF9091E800815095FD2B
-:101C700006C095ED9A95F1F700008111F5CF80919E
-:101C8000E80085FF0DC040E050E063E070E0CE0169
-:101C900001960E948B108091E8008E778093E80077
-:101CA0000F900F900F90DF91CF9108952091D60162
-:101CB0002430F1F422E02093E9002FEF3091E80086
-:101CC000215035FD06C035ED3A95F1F700002111A0
-:101CD000F5CF2091E80025FF0BC040E050E065E023
-:101CE00070E00E948B108091E8008E778093E8006E
-:101CF0000895CF93DF932091D601243039F521E068
-:101D00002093E9002FEF3091E800215035FD06C007
-:101D100035ED3A95F1F700002111F5CF2091E8005B
-:101D200025FF14C0EC0140E050E068E070E00E9444
-:101D30008B108091E8008E778093E80088E0FE01A8
-:101D4000ABE5B1E001900D928A95E1F7DF91CF917B
-:101D500008958EED94E00E94E5078091D5018111F0
-:101D600009C00E9420120E947D128091E2008460CE
-:101D70008093E20008958AED94E00E94E5071092B6
-:101D8000D501089586ED94E00C94E50782ED94E08A
-:101D90000C94E5078EEC94E00E94E5070C94572024
-:101DA000209159012F5F822F62E30E94CD2B99234E
-:101DB00019F02093590108951092590180915A0108
-:101DC000882371F18091D601843041F58091E9003A
-:101DD0008F702091EC00922F917020FD90E8892B5C
-:101DE00094E09093E9009091EB0090FF14C09091E3
-:101DF000EE0097FF10C09091E80095FF03C010928D
-:101E0000F100F9CF9091E80090FF05C09091E800B3
-:101E10009E779093E8008F708093E90010925A01AA
-:101E2000089542E061EC81E00E949A1142E061EC89
-:101E300082E00E949A1142E061EC83E00E949A11D4
-:101E400042E261EC84E00C949A118091D8018330D5
-:101E500009F453C030F4813071F0823009F48CC041
-:101E600008958A3009F478C08B3009F45EC0893057
-:101E700009F09AC020C08091D701813A09F094C03E
-:101E80008091E800877F8093E8008091DB0190914A
-:101E9000DC01892B21F468E08BE591E003C060E070
-:101EA00080E090E070E00E94D6108091E8008B778F
-:101EB0008093E80008958091D701813209F074C0C1
-:101EC0008091DB019091DC01892B09F06DC080913C
-:101ED000E800877F8093E8008091E80082FD05C0DC
-:101EE0008091D6018111F8CF5FC08091F10080937D
-:101EF00063018091E8008B7753C08091D701813ACC
-:101F000009F052C08091DB019091DC01892B09F02E
-:101F10004BC08091E800877F8093E8008091E800C3
-:101F200080FFFCCF80910A0136C08091D7018132B9
-:101F3000D9F58091DB019091DC01892BA9F5809185
-:101F4000E800877F8093E8000E94CF118091D9013B
-:101F500080930A010C94CF198091D701813221F529
-:101F60008091E800877F8093E8000E94CF118091E4
-:101F7000DA018093640108958091D701813AA1F438
-:101F80008091E800877F8093E8008091E80080FFDF
-:101F9000FCCF809164018093F1008091E8008E77FE
-:101FA0008093E8000C94CF11089584B7877F84BF95
-:101FB00088E10FB6F89480936000109260000FBE25
-:101FC00090E080E80FB6F8948093610090936100F0
-:101FD0000FBE0E94AF150E9420120E947D128091B8
-:101FE000E20084608093E2008BE89DE00E94F91F8C
-:101FF00078940E9402150E94B11580E091E00E9441
-:102000001D158DEB94E00E94E5078091D601853087
-:1020100089F489EB94E00E94E5070E9420208091DA
-:10202000D401882391F30E944920882371F30E94F0
-:102030007510EBCF0E94D515E8CF292F3327233019
-:102040003105C9F064F42130310581F022303105C9
-:1020500009F043C084E790E028E035E042C0213237
-:102060003105F1F02232310541F137C082E190E0D3
-:102070002CE735E036C099278130910541F0823058
-:10208000910541F0892B49F5E4E0F5E005C0E6EF64
-:10209000F4E002C0E2EEF4E0849190E09F0121C000
-:1020A0006430D8F4E62FF0E0EE0FFF1FE15EFE4F44
-:1020B0002081318189E090E014C0643070F470E0D8
-:1020C000FB01EE0FFF1FE95EFE4F20813181FB0116
-:1020D000ED5EFE4F808190E004C080E090E020E063
-:1020E00030E0FA0131832083089580E189BD82E1E7
-:1020F00089BD09B400FEFDCF8091D8008F7D80930B
-:10210000D8008091E00082608093E0008091E00040
-:1021100081FDFCCF0895CF92DF92EF92FF920F9353
-:102120001F93CF93DF93EC018B016A010E94EE11A4
-:10213000811133C0C114D10439F0F601808191813D
-:10214000081B190BC80FD91FE12CF12C0115110523
-:1021500019F18091E80085FD16C08091E8008E7726
-:102160008093E800C114D10449F0F6018081918187
-:10217000E80EF91EF182E08285E00FC00E94EE11A8
-:10218000882321F30AC089918093F100015011093D
-:10219000FFEFEF1AFF0ADACF80E0DF91CF911F91B6
-:1021A0000F91FF90EF90DF90CF9008952091DD0187
-:1021B0003091DE012617370748F06115710539F4B3
-:1021C0002091E8002E772093E80001C0B90140E09B
-:1021D00061157105A9F12091D601222309F443C0AC
-:1021E000253009F442C02091E80023FD40C0209131
-:1021F000E80022FD32C02091E80020FFE9CF4091A5
-:10220000F3002091F20030E0342BFC01CF01611586
-:10221000710559F02830310540F481918093F10027
-:10222000615071092F5F3F4FF1CF41E028303105F8
-:1022300009F040E02091E8002E772093E800C8CF15
-:102240004111C9CF0AC08091D601882361F0853041
-:1022500061F08091E80083FD0AC08091E80082FF70
-:10226000F2CF80E0089582E0089583E0089581E050
-:1022700008952091DD013091DE012617370748F0DF
-:102280006115710539F42091E8002E772093E8005C
-:1022900001C0B901FC0120E06115710591F1809147
-:1022A000D601882309F440C0853009F43FC08091ED
-:1022B000E80083FD3DC08091E80082FD2FC0809141
-:1022C000E80080FFE9CF2091F3008091F20090E0D8
-:1022D000922B6115710559F08830910540F42491D5
-:1022E0002093F1003196615071090196F2CF21E0FF
-:1022F000089709F020E08091E8008E778093E8004D
-:10230000CBCF2111CCCF0AC08091D601882361F0B8
-:10231000853061F08091E80083FD0AC08091E8007B
-:1023200082FFF2CF80E0089582E0089583E008956F
-:1023300081E00895982F973058F59093E900981709
-:1023400039F07091EC002091ED005091F00003C045
-:10235000242F762F50E021FF19C03091EB003E7FF3
-:102360003093EB003091ED003D7F3093ED003091E4
-:10237000EB0031603093EB007093EC002093ED00A4
-:102380005093F0002091EE0027FF07C09F5FD3CF4E
-:102390008F708093E90081E0089580E00895809136
-:1023A000D70187FF11C08091E80082FD05C08091B0
-:1023B000D6018111F8CF11C08091E8008B770BC056
-:1023C0008091D601882349F08091E80080FFF8CF02
-:1023D0008091E8008E778093E80008952091E400D2
-:1023E0003091E50095E64091EC00842F817040FF2C
-:1023F00022C08091E80080FD1CC08091D601882316
-:1024000091F0853091F08091EB0085FD10C04091F6
-:10241000E4005091E5004217530729F39A019150C7
-:1024200011F784E0089582E0089583E0089581E043
-:10243000089580E008954091E80042FFDECF0895BE
-:102440000E948E120E949612E0EEF0E08081816080
-:102450008083E8EDF0E080818F77808319BCA7ED61
-:10246000B0E08C918E7F8C9380818F7E80831092E0
-:10247000D50108950F931F93CF93DF930E948E127F
-:102480000E949612C8EDD0E088818F77888388817A
-:102490008068888388818F7D888319BC1092D601DB
-:1024A0001092D2011092D4011092D30100EE10E0EC
-:1024B000F80180818B7F808388818160888342E0FE
-:1024C00060E080E00E949A11E1EEF0E080818E7F72
-:1024D0008083E2EEF0E0808181608083808188608B
-:1024E0008083F80180818E7F8083888180618883EA
-:1024F000DF91CF911F910F910895E8EDF0E0808179
-:102500008F7E8083E7EDF0E080818160808384E0CE
-:1025100082BF81E08093D5010C943A12E8EDF0E09F
-:1025200080818E7F80831092E20008951092DA00FD
-:102530001092E10008951F920F920FB60F9211248E
-:102540002F933F934F935F936F937F938F939F93BB
-:10255000AF93BF93EF93FF938091E10082FF0BC095
-:102560008091E20082FF07C08091E1008B7F809321
-:10257000E1000E94D00E8091DA0080FF1FC08091A0
-:10258000D80080FF1BC08091DA008E7F8093DA0034
-:102590008091D90080FF0DC080E189BD82E189BDB5
-:1025A00009B400FEFDCF81E08093D6010E94A90E00
-:1025B00005C019BC1092D6010E94BB0E8091E100AB
-:1025C00080FF19C08091E20080FF15C08091E20079
-:1025D0008E7F8093E2008091E20080618093E20030
-:1025E0008091D80080628093D80019BC85E08093E8
-:1025F000D6010E94C60E8091E10084FF30C0809118
-:10260000E20084FF2CC080E189BD82E189BD09B46C
-:1026100000FEFDCF8091D8008F7D8093D8008091FF
-:10262000E1008F7E8093E1008091E2008F7E8093B5
-:10263000E2008091E20081608093E2008091D2010B
-:10264000882311F084E007C08091E30087FD02C079
-:1026500081E001C083E08093D6010E94CA0E809180
-:10266000E10083FF29C08091E20083FF25C08091B3
-:10267000E100877F8093E10082E08093D601109291
-:10268000D2018091E1008E7F8093E1008091E20091
-:102690008E7F8093E2008091E20080618093E2006F
-:1026A00042E060E080E00E949A118091F000886032
-:1026B0008093F0000E94C20EFF91EF91BF91AF9105
-:1026C0009F918F917F916F915F914F913F912F914A
-:1026D0000F900FBE0F901F9018951F920F920FB67C
-:1026E0000F9211242F933F934F935F936F937F9398
-:1026F0008F939F93AF93BF93CF93DF93EF93FF930A
-:10270000C091E900CF708091EC00D82FD17080FD8E
-:10271000D0E81092E9008091F000877F8093F0006C
-:1027200078940E94B1131092E9008091F0008860C3
-:102730008093F000CD2BCF70C093E900FF91EF9113
-:10274000DF91CF91BF91AF919F918F917F916F91C9
-:102750005F914F913F912F910F900FBE0F901F905F
-:1027600018951F93CF93DF93CDB7DEB7AA970FB617
-:10277000F894DEBF0FBECDBFE7EDF1E088E08E0F2D
-:102780009091F10091938E13FBCF0E94250F8091C1
-:10279000E80083FF1FC18091D7019091D801492F94
-:1027A00050E04A30510508F015C1FA01EA5AFF4FCE
-:1027B0000C94ED2B803881F0823809F00BC18091A8
-:1027C000DB018F708093E9008091EB0085FB882707
-:1027D00080F91092E90006C08091D3019091D40154
-:1027E000911182609091E800977F9093E800809328
-:1027F000F1001092F100C8C0282F2D7F09F0EAC027
-:10280000882319F0823061F0E5C08091D9018130D0
-:1028100009F0E0C0933009F080E08093D4012BC030
-:102820008091D901811127C08091DB018F7009F45B
-:10283000D1C08093E9002091EB0020FF1CC09330B1
-:1028400021F48091EB00806214C09091EB009061C4
-:102850009093EB0021E030E0A90102C0440F551F26
-:102860008A95E2F74093EA001092EA008091EB002B
-:1028700088608093EB001092E9008091E800877FE8
-:1028800086C08111A7C01091D9011F778091E30004
-:102890008078812B8093E3008091E800877F80938C
-:1028A000E8000E94CF118091E80080FFFCCF80916A
-:1028B000E30080688093E300111102C082E001C050
-:1028C00083E08093D60186C08058823008F082C0B1
-:1028D0008091D9019091DA018C3D53E0950779F50B
-:1028E00083E08A838AE289834FB7F894DE011396E6
-:1028F00020E03EE051E2E32FF0E050935700E491F6
-:1029000020FF03C0E295EF703F5FEF708E2F90E0E5
-:10291000EA3010F0C79601C0C0968D939D932F5F4B
-:10292000243149F74FBF8091E800877F8093E8000A
-:102930006AE270E0CE0101960E94D61014C0AE018A
-:102940004F5F5F4F6091DB010E941D10BC0100973B
-:1029500009F440C09091E800977F9093E800898146
-:102960009A810E9439118091E8008B778093E8006A
-:1029700031C0803879F58091E800877F8093E80046
-:102980008091D2018093F1008091E8008E7780934E
-:10299000E8000E94CF111EC081111CC09091D90186
-:1029A0009230C0F48091E800877F8093E800909394
-:1029B000D2010E94CF118091D201811106C0809175
-:1029C000E30087FD02C081E001C084E08093D6016E
-:1029D0000E94110F8091E80083FF0AC08091E800F7
-:1029E000877F8093E8008091EB0080628093EB000A
-:1029F000AA960FB6F894DEBF0FBECDBFDF91CF9180
-:102A00001F910895CF938091D6018823A1F0C091A2
-:102A1000E900CF709091EC00892F817090FD80E8E3
-:102A2000C82B1092E9008091E80083FD0E94B11349
-:102A3000CF70C093E900CF91089590936A0180937D
-:102A400069010895E0916901F0916A01309721F0E0
-:102A50000190F081E02D099480E00895EF92FF92BB
-:102A60000F931F93CF93DF93E0916901F0916A0177
-:102A70003097B1F18C010280F381E02D09958091AE
-:102A8000C10182FF2DC080FF04C088E796E00E944C
-:102A9000E507E80118E082E7E82E86E0F82E80914D
-:102AA000C10180FF0BC088811F928F93FF92EF922C
-:102AB0000E947E080F900F900F900F90115021965A
-:102AC0001111EDCF8091C10180FF0AC080E796E02F
-:102AD000DF91CF911F910F91FF90EF900C94E5073C
-:102AE000DF91CF911F910F91FF90EF900895E091AA
-:102AF0006901F0916A01309721F00480F581E02DA1
-:102B00000994089520916701309168018217930715
-:102B100071F09093680180936701E0916901F091F1
-:102B20006A01309721F00680F781E02D099408951D
-:102B300020916501309166018217930771F090939F
-:102B4000660180936501E0916901F0916A01309717
-:102B500021F00084F185E02D0994089508950C94E6
-:102B6000AE150E9486200E9487080C948021CF9386
-:102B7000DF931F92CDB7DEB79091C10192FF10C0D5
-:102B800090FF0EC01F928F932AE836E03F932F9359
-:102B900089830E947E080F900F900F900F9089817B
-:102BA0000F90DF91CF910C94860D9F92AF92BF92C0
-:102BB000CF92DF92EF92FF920F931F93CF93DF9309
-:102BC00000D000D000D0CDB7DEB70E94AA0807E041
-:102BD00010E0AA24A394B12C902E802F0E947D098E
-:102BE000980124593E4F6901F901F080F826A1F4BB
-:102BF0000150110988F78FEF89838A831B820E9415
-:102C00008F208160782F9D838C8349815A816B81CD
-:102C10008D810E946C162FC09091C10191FF04C05C
-:102C20008E830E9486098E8127E030E0A501022E66
-:102C300001C0440F0A94EAF7E42E4F21C1F0298322
-:102C40009A828E2191E009F490E09B830E948F206C
-:102C50008160782F9D838C8349815A816B818D811E
-:102C60000E946C16F6018081E826E08204C02150A3
-:102C70003109E0F6BDCF0E94EA2410916B010E9459
-:102C800022151817B9F00E94221580936B01269621
-:102C90000FB6F894DEBF0FBECDBFDF91CF911F916D
-:102CA0000F91FF90EF90DF90CF90BF90AF909F90EB
-:102CB0000C94B71526960FB6F894DEBF0FBECDBFA5
-:102CC000DF91CF911F910F91FF90EF90DF90CF9008
-:102CD000BF90AF909F900895CF93DF93CDB7DEB7AD
-:102CE0002B970FB6F894DEBF0FBECDBF4F8358872A
-:102CF00069877A878B87DE01119686E0FD01119244
-:102D00008A95E9F785E0FE01379601900D928A9544
-:102D1000E1F749815A816B817C818D819E810E947E
-:102D20006D1C2B960FB6F894DEBF0FBECDBFDF91A2
-:102D3000CF910895CF93882309F499C0C82F8CEFC1
-:102D40008C0F813A48F48C2F0E94562981118FC034
-:102D50008C2F0E94471F0CC080E28C0F883058F4E3
-:102D6000C77081E001C0880FCA95EAF70E94831FEF
-:102D7000CF910C94CA1F8BE58C0F833078F4C53A41
-:102D800029F0C63A31F083E890E005C081E890E090
-:102D900002C082E890E0CF910C94821588E58C0FF8
-:102DA000833108F064C0C83A39F1C93A41F1CA3AEE
-:102DB00049F1CB3A51F1CC3A59F1CD3A61F1C03BEE
-:102DC00069F1CE3A71F1CF3A79F1C13B81F1C23B61
-:102DD00089F1C33B91F1C43B99F1C53BA1F1C63BDD
-:102DE000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B3D
-:102DF000C9F180E090E038C082EE90E035C089EE05
-:102E000090E032C08AEE90E02FC085EB90E02CC0BD
-:102E100086EB90E029C087EB90E026C08CEC90E038
-:102E200023C08DEC90E020C083E891E01DC08AE8CB
-:102E300091E01AC082E991E017C084E991E014C0E2
-:102E400081E292E011C083E292E00EC084E292E05F
-:102E50000BC085E292E008C086E292E005C087E2FE
-:102E600092E002C08AE292E0CF910C949815CF9143
-:102E70000895882329F19CEF980F913A18F40E9445
-:102E8000641F0DC090E2980F983058F4877091E05D
-:102E900001C0990F8A95EAF7892F0E94891F0C9427
-:102EA000CA1F9BE5980F933020F480E090E00C94CB
-:102EB0008215885A833120F480E090E00C949815B4
-:102EC0000895882321F00E94831F0C94CA1F08953F
-:102ED000882321F00E94891F0C94CA1F08957F92B5
-:102EE0008F929F92AF92BF92CF92DF92EF92FF921A
-:102EF0000F931F93CF93DF931F92CDB7DEB77C0163
-:102F0000C62E772EFC01058102950F7012811111DA
-:102F10000E94A01F0E94401F882379F0112369F0AE
-:102F200080E28C0D883048F082E00E94291F0E94C8
-:102F3000401F91E0D82ED92601C0D12CE72DE29573
-:102F4000EF70F0E0E05AFF4F0C94ED2B872D807F5F
-:102F5000072D0F70882311F00295007F112389F04F
-:102F6000002309F498C180E28C0D883020F4802F72
-:102F70000E94831F03C0802F0E94931F0E94CA1FBC
-:102F80008AC18C2D0E943917002309F49DC180E26B
-:102F90008C0D883020F4802F0E94891F03C0802F61
-:102FA0000E94991F0E94CA1F8FC1872D807F972D75
-:102FB0009F70803211F4892F03C0892F8295807F02
-:102FC000CC2021F0F1E0CF16A1F01DC0112339F083
-:102FD000002319F1013009F50E94B31F75C10023C8
-:102FE00019F0013009F470C189830E94B61F8981EC
-:102FF00010C1112321F0063008F066C10EC0053063
-:1030000008F062C106C1112359F0002331F0F70125
-:10301000958190FF40C19F7095830E94611754C1B4
-:10302000002309F4F6C03DC1872D869586958370EF
-:1030300090E0009719F0019761F046C1112321F04B
-:103040008C2D972D937002C080E090E00E94821535
-:103050003BC1112321F08C2D972D937002C080E08D
-:1030600090E00E94981530C18C2D112319F00E9418
-:10307000702302C00E94D8230E945D2425C1872DA1
-:10308000837009F052C011111FC18C2D8295869555
-:103090008770880F880F9C2D9F70892E912CA12CF2
-:1030A000B12C082E04C0880C991CAA1CBB1C0A94C5
-:1030B000D2F7C4FE14C00FE010E020E030E0B90108
-:1030C000A80104C0440F551F661F771F8A95D2F7C9
-:1030D000CB01BA01609570958095909503C060E032
-:1030E00070E0CB01272D26952695237030E0223005
-:1030F000310569F02330310589F0682979298A2959
-:103100009B292130310571F00E94B51DDDC0682971
-:1031100079298A299B290E94D11DD6C00E94B51DFC
-:10312000C501B4010E94991DCFC0112319F0872D4C
-:10313000817001C08695882309F4C6C08C2D8295C4
-:1031400086958770880F880F9C2D9F70892E912CF3
-:10315000A12CB12C082E04C0880C991CAA1CBB1CE5
-:103160000A94D2F7C4FE14C00FE010E020E030E073
-:10317000B901A80104C0440F551F661F771F8A9527
-:10318000D2F7CB01BA01609570958095909503C0F8
-:1031900060E070E0CB01272D269526952370422F05
-:1031A00050E04230510569F04330510589F06829FB
-:1031B00079298A299B294130510571F00E948F1E7F
-:1031C00083C0682979298A299B290E94AB1E7CC06B
-:1031D0000E948F1EC501B4010E94731E75C08C2D04
-:1031E00090E0FC01E05EF109E531F10508F04FC027
-:1031F000E059FF4F0C94ED2B0C2D0F70872D8F7124
-:10320000112321F00E940C1E802F07CF0E942D1E3B
-:10321000802F0E94681758C0112341F0053008F034
-:1032200053C0872D8F710E94521E4EC0063008F089
-:103230004BC0F7CF112339F0872D8F710E940C1EE0
-:1032400043C01123C9F3872D8F710E942D1E3CC0EE
-:10325000112329F0872D8F710E94F71D35C00E9420
-:10326000ED1D32C0112351F0172D1F71812F0E94C7
-:103270000C1E63E0812F0E94201F26C081E00E9467
-:10328000291F023008F182E00E94291F1DC011236E
-:1032900031F0002389F28C2D0E949A1615C000236C
-:1032A00091F28C2D0E9439170FC0472D4F706C2D55
-:1032B000C7010E94CC090E94111D06C0472D4F7006
-:1032C0006C2DC7010E948B0ADD20F9F00E941C1FA3
-:1032D00080FD1BC0F70112820E94161F0E940C1E67
-:1032E000C7010E9494190E94161F0F90DF91CF9181
-:1032F0001F910F91FF90EF90DF90CF90BF90AF9014
-:103300009F908F907F900C942D1E0F90DF91CF9106
-:103310001F910F91FF90EF90DF90CF90BF90AF90F3
-:103320009F908F907F9008950F931F93CF93DF937B
-:10333000EC01888199812B813C81232BB9F09F3F3F
-:1033400011F48F3F99F0CE010E94E309882371F0B8
-:10335000688179818A810E94121F8C010E94C71E98
-:103360000E948E1DB801CE010E946F17DF91CF9190
-:103370001F910F9108950E94A01F0E94B01F0E94EC
-:10338000751F0E94CA1F0E9490250E945D2480E044
-:1033900090E00E94821580E090E00C9498150E94C5
-:1033A000901F0C94BB190E94071F292F22952F7084
-:1033B00030E02C3031054CF42A3031056CF42250C9
-:1033C000310922303105A8F407C02C30310569F0ED
-:1033D0002F30310551F00DC0803F69F018F4803E68
-:1033E00040F409C0843F29F406C093FB882780F984
-:1033F000089580E0089581E00895CF93DF9300D091
-:1034000000D01F92CDB7DEB70F900F900F900F90A6
-:103410000F90DF91CF910895CF93DF9300D000D02C
-:1034200000D0CDB7DEB726960FB6F894DEBF0FBE3C
-:10343000CDBFDF91CF9108951F93CF93DF93C091BC
-:10344000740116E080917501C81799F0D0E01C9FB7
-:10345000F0011D9FF00D1124EA58FE4F408151816B
-:1034600062817381848195810E940C1A2196C770B4
-:10347000E9CFDF91CF911F9108954091A60150911E
-:10348000A7016091A8017091A9018091AA01909172
-:10349000AB010C940C1A8091AB0182958F7009F0EE
-:1034A00054C08091A801882309F44FC08091740111
-:1034B000A09175016091A6017091A7014091A901A9
-:1034C0005091AA01B6E08A1709F43FC090E0411577
-:1034D0005105C1F17F3F11F46F3FA1F1B89FF00199
-:1034E000B99FF00D1124EA58FE4F218172132AC0B2
-:1034F0002081621327C02281211124C023813481BD
-:103500002417350710F421503109241B350B283CB2
-:103510003105C0F42091AB012F7020612093AB01E5
-:1035200026E0289FF001299FF00D1124E558FE4F59
-:1035300080818F708061808386EA91E00E94941977
-:103540000C941C1A01968770BECF0895CF92DF921B
-:10355000EF92FF920F931F93CF93DF93CDB7DEB718
-:1035600062970FB6F894DEBF0FBECDBF8C0185E029
-:10357000F801DE011D9601900D928A95E1F7D801C0
-:103580004C9111965C91119712966C91129713962B
-:10359000CD90DC9014973091A6017091A701809195
-:1035A000A9019091AA01009709F46BC17F3F19F41A
-:1035B0003F3F09F466C1E090A801EE2009F4C0C0C5
-:1035C0002091AB01C816D90628F0F601E81BF90BCB
-:1035D000CF0104C0809590958C0D9D1DFF24F39420
-:1035E000883C910578F0F12C207F09F0C6C07C2D35
-:1035F000D98AC88A89890E94FD1986EA91E00E94C9
-:103600009419B1C0822F807F09F046C0751314C091
-:10361000341312C0611110C02F7020612093AB01D0
-:103620000E943D1A86EA91E00E9494198091AB01B4
-:10363000D80115968C932EC0CD2819F15F3F11F457
-:103640004F3FF9F0F62E61111CC08091740120915A
-:10365000750136E0821709F45AC090E0389FF001F6
-:10366000399FF00D1124EA58FE4F7181571306C09F
-:103670007081471303C07281711103C00196877076
-:10368000E9CFF62E662309F418C18091AB01816061
-:103690008093AB01F12C11C1751308C0341306C01F
-:1036A000611104C08091AB01D801C3C04D875E8712
-:1036B0008D859E856A8B0E94D3196A898823E1F1E2
-:1036C0006623D1F12091AB01822F82958F7090E01B
-:1036D000029774F08091A6019091A70198878F833B
-:1036E0001986DB86CA862C87CE0107960E9494191C
-:1036F00086E0F801A6EAB1E001900D928A95E1F723
-:103700000E944B1A0E943D1AFF24F394D6C04D87A5
-:103710005E878D859E850E94071F292F22952F7019
-:1037200030E0223031050CF0BCC09F7009F0B6C00B
-:10373000805E883008F4C1C0C8010E949419E4CFAB
-:10374000C816D90608F453C0F601E81BF90BCF01DF
-:10375000883C910508F450C0F12C7C2DD98AC88A88
-:1037600089890E94FD19E6EAF1E086E0DF011D92F9
-:103770008A95E9F70E943D1AA0C0751314C034134E
-:1037800012C0611110C08091AB01F8018583C8019E
-:103790000E94941986E0E6EAF1E0DF011D928A9525
-:1037A000E9F7FE2C8AC04D875E878D859E856A8BE2
-:1037B0000E94D3196A89882309F4BECF662309F4CD
-:1037C000BBCF2091AB01822F82958F7090E0029742
-:1037D0000CF48ECF8091A6019091A7019A838983E2
-:1037E0001B82DD82CC822E83CE0101967FCF809515
-:1037F00090958C0D9D1DACCFF62E662309F49CCFC1
-:1038000075132EC034132CC02091AB0120FD1FC0B6
-:10381000822F82958F70D9F0D80115962C93159729
-:103820008F3049F08F5F982F9295907F822F8F7005
-:10383000892B15968C93C8010E94941986E0F80193
-:10384000A6EAB1E001900D928A95E1F793CF86E068
-:10385000F801A6EAB1E001900D928A95E1F72DC03A
-:103860004D875E878D859E850E94D319811140CF3B
-:103870008091AB0181608093AB01C8010E949419D3
-:103880001CC0662309F458CF4D875E878D859E85C1
-:103890000E94D319882309F44FCF2ACF811148CF32
-:1038A0000CC0243031050CF047CF9F7009F440CF95
-:1038B000F8019581907F09F03BCF8F2D62960FB66E
-:1038C000F894DEBF0FBECDBFDF91CF911F910F9156
-:1038D000FF90EF90DF90CF9008951F93CF93DF93E9
-:1038E000CDB7DEB72C970FB6F894DEBF0FBECDBFB5
-:1038F0004F83588769877A878B879C87CE01079685
-:103900000E94A61A882369F08F8198852A853B85B5
-:10391000232BF1F19F3F09F063C08F3F09F060C096
-:1039200037C086E0FE013796DE01119601900D92B8
-:103930008A95E1F76F817885EA85FB85309741F1BB
-:103940007F3F11F46F3F21F12091750130E0C901F3
-:103950000196877099274091740150E0841795076C
-:1039600009F447C069837A83FD83EC8396E0929FD4
-:10397000D001939FB00D1124AA58BE4FFE0131967D
-:1039800001900D929A95E1F7809375010E941C1A9F
-:1039900016E080917401909175018917C1F1189F0B
-:1039A000C00111248A589E4F0E94A61A882379F1DB
-:1039B000E09174011E9FF0011124EA58FE4F4081EE
-:1039C000518162817381848195810E940C1A80915A
-:1039D000740190E001968770992780937401D9CF84
-:1039E0004F81588569857A858B859C850E940C1A44
-:1039F000CFCF0E94CF191092750110927401E6EAA0
-:103A0000F1E086E0DF011D928A95E9F7C1CF2C969F
-:103A10000FB6F894DEBF0FBECDBFDF91CF911F91DF
-:103A20000895EF92FF920F931F93CF93DF938C0132
-:103A3000009709F46CC0F12CEE24E394E801219680
-:103A4000F8018491843740F4843008F051C081300B
-:103A500081F0823019F15BC0853709F444C0A8F1C8
-:103A60009CE7980F903708F052C08F770E94391763
-:103A700041C00E5F1F4FFE01C49180E28C0F883061
-:103A800048F4C7708E2D01C0880FCA95EAF70E94CE
-:103A9000A31F14C08C2F0E949A162DC00E5F1F4FBB
-:103AA000FE01C49180E28C0F883058F4C7708E2DCF
-:103AB00001C0880FCA95EAF70E94A91F0E94CA1F79
-:103AC0001AC08C2F0E94391716C00E5F1F4FFE01BF
-:103AD000C491CC2381F08FE99FE00197F1F700C0FA
-:103AE0000000C150F6CF0E5F1F4FFE01F49003C0DF
-:103AF0000E949A168E018F2D882309F49FCFEFE93B
-:103B0000FFE03197F1F700C000008150F5CFDF9161
-:103B1000CF911F910F91FF90EF90089508956093BA
-:103B2000B0017093B1018093B2019093B3010C94F2
-:103B3000BB190F931F930091B0011091B101209117
-:103B4000B2013091B301DC01CB01802B912BA22B70
-:103B5000B32B8093B0019093B101A093B201B093C5
-:103B6000B3011F910F910C94BB190F931F930091F8
-:103B7000B0011091B1012091B2013091B301DC018B
-:103B8000CB0180239123A223B3238093B001909390
-:103B9000B101A093B201B093B3011F910F910C94A6
-:103BA000BB190F931F930091B0011091B1012091A7
-:103BB000B2013091B301DC01CB0180279127A2270C
-:103BC000B3278093B0019093B101A093B201B09359
-:103BD000B3011F910F910C94BB191092AC0110927C
-:103BE000AD011092AE011092AF010C94BB1941E0EF
-:103BF00050E060E070E004C0440F551F661F771F5F
-:103C00008A95D2F74093AC015093AD016093AE0119
-:103C10007093AF010C94BB1941E050E060E070E09C
-:103C200004C0440F551F661F771F8A95D2F78091F5
-:103C3000AC019091AD01A091AE01B091AF01482BC4
-:103C4000592B6A2B7B2B4093AC015093AD016093B1
-:103C5000AE017093AF010C94BB1941E050E060E0FD
-:103C600070E004C0440F551F661F771F8A95D2F776
-:103C700040955095609570958091AC019091AD0103
-:103C8000A091AE01B091AF01482359236A237B2351
-:103C90004093AC015093AD016093AE017093AF01BE
-:103CA0000C94BB1941E050E060E070E004C0440FA8
-:103CB000551F661F771F8A95D2F78091AC019091AE
-:103CC000AD01A091AE01B091AF01482759276A27F5
-:103CD0007B274093AC015093AD016093AE0170938C
-:103CE000AF010C94BB190F931F930091AC0110917D
-:103CF000AD012091AE013091AF01DC01CB01802BF1
-:103D0000912BA22BB32B8093AC019093AD01A09388
-:103D1000AE01B093AF011F910F910C94BB190F939B
-:103D20001F930091AC011091AD012091AE01309133
-:103D3000AF01DC01CB0180239123A223B323809325
-:103D4000AC019093AD01A093AE01B093AF011F9170
-:103D50000F910C94BB190F931F930091AC0110911C
-:103D6000AD012091AE013091AF01DC01CB01802784
-:103D70009127A227B3278093AC019093AD01A09324
-:103D8000AE01B093AF011F910F910C94BB19089530
-:103D9000CF92DF92EF92FF920F931F93CF93DF9317
-:103DA0008C01C090B001D090B101E090B201F090D0
-:103DB000B3018091AC019091AD01A091AE01B091A1
-:103DC000AF01C82AD92AEA2AFB2ACFE1D0E0D701DD
-:103DD000C6010C2E04C0B695A795979587950A94B1
-:103DE000D2F780FF06C0B8018C2F0E94E80C019723
-:103DF00021F4219760F780E001C08C2FDF91CF91F3
-:103E00001F910F91FF90EF90DF90CF900895CF9387
-:103E1000DF93EC010E94C81EBE010E94E80CDF91F6
-:103E2000CF910895CB010E94071F08958091B4019E
-:103E300085958595859508958091B401877008953D
-:103E400098E0899F90011124262B2093B4010C94B3
-:103E50000C1E2091B401809582238093B401982F89
-:103E6000977069F430E0482F552747FD5095241787
-:103E7000350729F08595859585950C942D1E089517
-:103E80009091B401977081E009F480E00895209149
-:103E90000B0130910C01F90132969FEF40E05191F6
-:103EA000581789F09F3F19F4511101C0942F4F5FAB
-:103EB0004630A9F79F3F39F0F901E90FF11D97FD51
-:103EC000FA9582830895089520910B0130910C0199
-:103ED000F9013296285F3F4F9081981301C01082FC
-:103EE0003196E217F307C1F7089581E090E0E09181
-:103EF0000B01F0910C01E80FF91F10820196883038
-:103F00009105A9F708959091C001892B8093C00174
-:103F1000089580959091C00189238093C0010895F0
-:103F20001092C00108959091BF01892B8093BF0129
-:103F3000089580959091BF0189238093BF010895D2
-:103F40001092BF0108959091BE01892B8093BE010C
-:103F5000089580959091BE0189238093BE010895B4
-:103F60001092BE0108958093B50108951092B50195
-:103F7000089580910B0190910C01FC0131969C01F8
-:103F8000285F3F4F80E0919191118F5FE217F30717
-:103F9000D1F70895E0910B01F0910C018091C001DF
-:103FA0008083E0910B01F0910C0190818091BF0121
-:103FB000892B8083E0910B01F0910C01908180911D
-:103FC000BE01892B80838091B501882361F0E09147
-:103FD0000B01F0910C019081892B80830E94B91F05
-:103FE00081111092B50180910B0190910C010C94FC
-:103FF0002E159093330180933201089520E00097AD
-:1040000039F0AC0141505109842395232F5FF7CF3C
-:10401000822F08958295982F9C7C392F369536955E
-:10402000282F237344E0249FC0011124932F982B41
-:10403000292F2A7A2695892F8575880F822B089536
-:104040008091D601843021F11092C20120E488E1F0
-:1040500090E00FB6F894A895809360000FBE20936F
-:10406000600080E00E94860D83B7817F846083BFFB
-:1040700083B7816083BF7894889583B78E7F83BF31
-:1040800088E10FB6F89480936000109260000FBE34
-:1040900008950E94CA090E94AA080E94CB090E94A2
-:1040A000B20991E0811101C090E0892F08950E942A
-:1040B000CF190E9422150C94860D1F920F920FB6F5
-:1040C0000F9211248F939F93AF93BF938091C2015E
-:1040D000811113C08091C3019091C401A091C501C9
-:1040E000B091C6014196A11DB11D8093C30190936B
-:1040F000C401A093C501B093C601BF91AF919F9138
-:104100008F910F900FBE0F901F90189582E084BD85
-:1041100093E095BD9AEF97BD80936E0008952FB7F9
-:10412000F8948091C3019091C401A091C501B09110
-:10413000C6012FBF08952FB7F8946091C301709105
-:10414000C4018091C5019091C6012FBF0895CF92FF
-:10415000DF92EF92FF920F931F932FB7F894409145
-:10416000C3015091C4016091C5017091C6012FBF78
-:104170006A017B01EE24FF248C0120E030E0C016B0
-:10418000D106E206F30610F4415051099A01281BAA
-:10419000390BC9011F910F91FF90EF90DF90CF90E5
-:1041A0000895CF92DF92EF92FF920F931F932FB754
-:1041B000F894C090C301D090C401E090C501F09084
-:1041C000C6012FBF97018601061B170B280B390B61
-:1041D000C616D706E806F90618F0C901B80106C0E8
-:1041E000C901B80161507109810991091F910F91AD
-:1041F000FF90EF90DF90CF9008951F920F920FB62F
-:104200000F9211248F939F93AF93BF938091C3011B
-:104210009091C401A091C501B091C6010196A11D64
-:10422000B11D8093C3019093C401A093C501B093C5
-:10423000C601BF91AF919F918F910F900FBE0F90CC
-:104240001F9018950E942012F8942FEF87EA91E6AC
-:10425000215080409040E1F700C0000087E090EBE3
-:10426000DC018093E0019093E101A093E201B0931F
-:10427000E3019CE088E10FB6F894A8958093600074
-:104280000FBE90936000FFCFEF92FF920F931F93AA
-:10429000CF93DF93D82FC7E08C2F0E947D0907E0D2
-:1042A00010E0E82EF12CC701002E02C095958795ED
-:1042B0000A94E2F780FF09C0602F7C2F80E00E9403
-:1042C0008C0AD81302C081E006C00150110958F7CA
-:1042D000C15010F780E0DF91CF911F910F91FF90B7
-:1042E000EF900895CF93C82F8CE20E944421882339
-:1042F00021F08C2FCF910C94442180E0CF91089530
-:10430000CF930E94C822811102C00E94AE228AEA85
-:1043100096E00E94E507C5E6C15049F00E94AA0850
-:104320008FE39CE90197F1F700C00000F5CF83EA25
-:1043300096E00E94E50789E20E94722181110CC17A
-:104340008AE20E94722181110E94AE2285E00E94C1
-:10435000722181110E9422210E94D3228093C101E7
-:1043600087E00E9472218823A9F18BE10E947221CB
-:10437000882351F08091C10181FB222720F991E02F
-:10438000922790FB81F90EC08EE00E947221882353
-:1043900061F08091C10182FB222720F991E09227F0
-:1043A00090FB82F98093C10115C080E10E947221C7
-:1043B0009091C101882341F093FB222720F981E0ED
-:1043C000822780FB93F904C0892F809580FB90F9A8
-:1043D0009093C1018091C1010E94D7220E94E522E1
-:1043E0008093DF0180EE0E947221882341F080914A
-:1043F000DF01982F909590FB80F98093DF0189E38E
-:104400000E947221882359F08091DF0181FB2227CD
-:1044100020F991E0922790FB81F98093DF0182EEF1
-:104420000E947221882359F08091DF0182FB2227AC
-:1044300020F991E0922790FB82F98093DF0186EECC
-:104440000E947221882359F08091DF0183FB22278B
-:1044500020F991E0922790FB83F98093DF0183EEAE
-:104460000E947221882359F08091DF0184FB22276A
-:1044700020F991E0922790FB84F98093DF0185E396
-:104480000E947221882359F08091DF0185FB222749
-:1044900020F991E0922790FB85F98093DF0181E379
-:1044A0000E947221882359F08091DF0186FB222728
-:1044B00020F991E0922790FB86F98093DF0181E15A
-:1044C0000E947221882359F08091DF0187FB222707
-:1044D00020F991E0922790FB87F98093DF0180918A
-:1044E000DF010E94E92287E20E947221C82F8EE13B
-:1044F0000E9472218111C2608FE10E94722181119C
-:10450000C46080E20E9472218111C86081E20E9431
-:1045100072218111C06182E20E9472218111C06208
-:1045200083E20E9472218111C06484E20E947221A0
-:10453000882311F0C06802C0CC2329F08C2F0E9480
-:10454000E0226C2F03C00E94DC22682F70E080E024
-:1045500090E0CF910C948F1DCF9108956DEE7EEF7A
-:1045600080E090E00E94272C60E082E090E00E94D2
-:10457000152C60E083E090E00E94152C60E084E060
-:1045800090E00E94152C60E085E090E00C94152CE2
-:1045900080E090E00E940F2C21E08D3E9E4F09F0BC
-:1045A00020E0822F089582E090E00C94072C682F81
-:1045B00082E090E00C94152C83E090E00C94072CA2
-:1045C000682F83E090E00C94152C84E090E00C942C
-:1045D000072C682F84E090E00C94152C8091C90181
-:1045E00080FF0BC06091100185E0689FB00111242D
-:1045F00075956795759567952BC081FF09C060918A
-:10460000100185E0689FB00111247595679520C061
-:1046100082FF07C06091100185E0689FB0011124FE
-:1046200017C09091CA019923D1F060910F0196179C
-:1046300088F72091100185E0289F90011124929F16
-:10464000A001939F500D112470E0CA010E94D92B44
-:104650006038710540F46115710539F002C065E0FC
-:1046600070E0862F08958FE7089581E00895809186
-:10467000C90180FF08C060910E0170E075956795D3
-:104680007595679521C081FF06C060910E0170E0AD
-:104690007595679519C082FF04C060910E0170E0A6
-:1046A00010C09091CA019923C1F060910D01961735
-:1046B000A0F780910E01899FC001112470E00E9433
-:1046C000D92B6038710528F46115710521F0862F0A
-:1046D00008958FE7089581E0089561E070E0F4CFD8
-:1046E000803F21F40E94EE22819504C0813F29F48D
-:1046F0000E94EE228093CD010895823F21F40E9412
-:10470000EE22819504C0833F29F40E94EE2280931B
-:10471000CC010895893F19F40E94372305C08A3FD0
-:1047200031F40E94372381958093CE0108958B3F09
-:1047300021F40E943723819504C08C3F29F40E9404
-:1047400037238093CF010895843F21F48091CB01DA
-:10475000816017C0853F21F48091CB01826011C038
-:10476000863F21F48091CB0184600BC0873F21F408
-:104770008091CB01886005C0883F31F48091CB01E6
-:1047800080618093CB0108958D3F21F48091C90110
-:1047900081600BC08E3F21F48091C901826005C009
-:1047A0008F3F29F48091C90184608093C9010895E5
-:1047B000803F39F48091CD0187FF6CC01092CD010C
-:1047C00069C0813F29F48091CD011816BCF362C005
-:1047D0009091CC01823F29F497FF5CC01092CC01EC
-:1047E00059C0833F19F41916CCF354C0893F41F4E2
-:1047F0008091CE0118160CF04DC01092CE014AC027
-:104800008A3F29F48091CE0187FF44C0F6CF8B3FC9
-:1048100039F48091CF0187FF3DC01092CF013AC09B
-:104820008C3F29F48091CF011816BCF333C0843F2C
-:1048300021F48091CB018E7F17C0853F21F48091B8
-:10484000CB018D7F11C0863F21F48091CB018B7FFE
-:104850000BC0873F21F48091CB01877F05C0883F43
-:1048600031F48091CB018F7E8093CB0113C08D3FBB
-:1048700021F48091C9018E7F0BC08E3F21F480917D
-:10488000C9018D7F05C08F3F29F48091C9018B7FBD
-:104890008093C9018091CC0181110EC08091CD011E
-:1048A00081110AC08091CE01811106C08091CF0193
-:1048B000811102C01092CA0108958091C10183FF45
-:1048C0007EC086EE96E00E94E5078091CB011F92A4
-:1048D0008F9381EE96E09F938F930E947E088FEDD9
-:1048E00096E00E94E5078091CC01282F332727FD11
-:1048F00030953F938F938CED96E09F938F930E941A
-:104900007E088AED96E00E94E5078091CD01282F70
-:10491000332727FD30953F938F9387ED96E09F9344
-:104920008F930E947E0885ED96E00E94E5078091B6
-:10493000CE01282F332727FD30953F938F9382EDAB
-:1049400096E09F938F930E947E0880ED96E00E94F0
-:10495000E5078091CF01282F332727FD30953F931E
-:104960008F938DEC96E09F938F930E947E088AEC44
-:1049700096E00E94E5078091CA011F928F9387EC11
-:1049800096E09F938F930E947E0885EC96E00E94AC
-:10499000E5078091C9011F928F9382EC96E09F9367
-:1049A0008F930E947E088FEB96E00E94E5078DB7FB
-:1049B0009EB74C960FB6F8949EBF0FBE8DBF8BEC82
-:1049C00091E00E9477150E948F209093C8018093F8
-:1049D000C70108951F93CF93DF938091C7019091F2
-:1049E000C8010E94A720AC019091CA01992321F02F
-:1049F0002091110130E006C0209112018AE0289F29
-:104A0000900111244217530708F486C08091CC010D
-:104A1000C091CD01D091CE011091CF01811107C07D
-:104A2000C11176C0D11174C0111172C075C09F3F01
-:104A300019F09F5F9093CA01181624F40E94EE2289
-:104A40008093CC018091CC0187FF05C00E94EE22AB
-:104A500081958093CC011C1624F40E94EE22809351
-:104A6000CD018091CD0187FF05C00E94EE22819586
-:104A70008093CD016091CC01662339F1C091CD01C5
-:104A8000CC2319F1772767FD7095872F972F0E9408
-:104A9000DE2A23E333E343E35FE30E94422B0E94D9
-:104AA000AB2A6093CC016C2F772767FD7095872F19
-:104AB000972F0E94DE2A23E333E343E35FE30E9460
-:104AC000422B0E94AB2A6093CD011D1624F40E9454
-:104AD00037238093CE018091CE0187FF05C00E94CD
-:104AE000372381958093CE01111624F40E94372339
-:104AF0008093CF018091CF0187FF05C00E943723AB
-:104B000081958093CF01DF91CF911F910C945D240B
-:104B10009F3F09F08ECF96CFDF91CF911F910895DF
-:104B2000EBECF1E085E0DF011D928A95E9F7109248
-:104B3000CA011092C901089589E099E00E94E50731
-:104B40001F9281E08F931F9285E08F938BEB98E00B
-:104B50009F938F930E947E080F900F900F900F905D
-:104B60000F900F9008958330E9F128F4813061F0BF
-:104B7000823009F10895853009F462C008F449C013
-:104B8000863009F474C0089580911201262F30E018
-:104B9000280F311D2F3F310524F4680F6093120157
-:104BA00003C08FEF80931201809112011F928F93A7
-:104BB00084EF97E072C080911101262F30E0280F1A
-:104BC000311D2F3F310524F4680F6093110103C09C
-:104BD0008FEF80931101809111011F928F9382EECC
-:104BE00097E05BC080911001262F30E0280F311D27
-:104BF0002F3F310524F4680F6093100103C08FEF3D
-:104C000080931001809110011F928F938FEC97E099
-:104C100044C080910F01262F30E0280F311D2F3F17
-:104C2000310524F4680F60930F0103C08FEF809368
-:104C30000F0180910F011F928F938AEB97E02DC097
-:104C400080910E01262F30E0280F311D2F3F3105B6
-:104C500024F4680F60930E0103C08FEF80930E0160
-:104C600080910E011F928F9381EA97E016C0809188
-:104C70000D01262F30E0280F311D2F3F310524F480
-:104C8000680F60930D0103C08FEF80930D01809139
-:104C90000D011F928F9386E897E09F938F930E9458
-:104CA0007E080F900F900F900F900895833081F140
-:104CB00028F4813059F08230D1F00895853009F41C
-:104CC00049C0B8F1863009F456C0089580911201A8
-:104CD000681720F4861B8093120102C01092120103
-:104CE000809112011F928F9387E797E054C08091C3
-:104CF0001101681720F4861B8093110102C01092E5
-:104D00001101809111011F928F9385E697E043C0B6
-:104D100080911001681720F4861B8093100102C057
-:104D200010921001809110011F928F9382E597E0FD
-:104D300032C080910F01681720F4861B80930F0109
-:104D400002C010920F0180910F011F928F938DE38B
-:104D500097E021C080910E01681720F4861B809394
-:104D60000E0102C010920E0180910E011F928F93CE
-:104D700084E297E010C080910D01681720F4861B33
-:104D800080930D0102C010920D0180910D011F92C0
-:104D90008F9389E097E09F938F930E947E080F90F6
-:104DA0000F900F900F900895CF93C82F1F928F935D
-:104DB0008EE09AE09F938F930E947E0881E090E0BE
-:104DC000A0E0B0E0BC01CD0104C0660F771F881FD2
-:104DD000991FCA95D2F70E948F1D0F900F900F90C8
-:104DE0000F90CF910C94CF19CF938732B0F58E31BD
-:104DF00008F04AC28E3009F4C4C100F5873009F4C6
-:104E00008DC1A8F4863009F045C28091C101817F2F
-:104E10008E7F8093C1018DE79BE00E94E50786E1CC
-:104E20009FE00E94E50781E08093D10175C1883041
-:104E300009F43FC08B3009F46BC12CC2863109F4F0
-:104E4000E6C120F4803109F4B0C124C2893109F4EB
-:104E5000C7C18B3109F481C11DC2883309F458C11F
-:104E600050F4893209F412C2853309F40FC2873233
-:104E700009F40CC20FC2833409F408C228F48A333F
-:104E800008F408C2895303C2883409F003C20E949F
-:104E9000CF198AEF9EE00E94E5079FEF23ED80E3A4
-:104EA000915020408040E1F700C000000E94222184
-:104EB00033C18AE19FE00E94E5078CE79EE00E94F3
-:104EC000E5070E94DC221F928F9389E79EE09F9363
-:104ED0008F930E947E0887E79EE00E94E5070E946C
-:104EE000D322C82F84E69EE00E94E5071F92CF934D
-:104EF0008FE59EE09F938F930E947E088DE59EE054
-:104F00000E94E50783E59EE00E94E5078C2F8170F3
-:104F10001F928F9380E59EE09F938F930E947E085F
-:104F20008EE49EE00E94E50784E49EE00E94E5078F
-:104F3000C1FB882780F91F928F9381E49EE09F93A5
-:104F40008F930E947E088FE39EE00E94E50783E333
-:104F50009EE00E94E507C2FB882780F91F928F938D
-:104F600080E39EE09F938F930E947E088EE29EE0F6
-:104F70000E94E50785E29EE00E94E507C3FBCC277F
-:104F8000C0F91F92CF9382E29EE09F938F930E947D
-:104F90007E0880E29EE00E94E5070E94E522C82F7D
-:104FA0008CE09EE00E94E5071F92CF9387E09EE091
-:104FB0009F938F930E947E0885E09EE00E94E50704
-:104FC0008CEE9DE00E94E5078C2F81701F928F93DD
-:104FD00089EE9DE09F938F930E947E088DB79EB7C8
-:104FE00080960FB6F8949EBF0FBE8DBF87EE9DE0F2
-:104FF0000E94E50780ED9DE00E94E507C1FB882740
-:1050000080F91F928F938DEC9DE09F938F930E9468
-:105010007E088BEC9DE00E94E50789EB9DE00E94F5
-:10502000E507C2FB882780F91F928F9386EB9DE0EE
-:105030009F938F930E947E0884EB9DE00E94E5077A
-:1050400082EA9DE00E94E507C3FB882780F91F9252
-:105050008F938FE99DE09F938F930E947E088DE947
-:105060009DE00E94E50783E99DE00E94E507C4FBFF
-:10507000882780F91F928F9380E99DE09F938F93FB
-:105080000E947E088EE89DE00E94E5078CE79DE087
-:105090000E94E507C5FB882780F91F928F9389E757
-:1050A0009DE09F938F930E947E0887E79DE00E947A
-:1050B000E5078BE59DE00E94E507C6FB882780F9A0
-:1050C0001F928F9388E59DE09F938F930E947E08A7
-:1050D00086E59DE00E94E5078EE49DE00E94E507DD
-:1050E000C7FBCC27C0F91F92CF938BE49DE09F9321
-:1050F0008F930E947E0889E49DE00E94E5078DB7AA
-:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD
-:1051100084EA9BE00E94E507C1E0C1C08091C10123
-:10512000C82FC095C170C0FB80F98093C101CC230A
-:1051300049F08EEE9EE00E94E5078091C1018660F5
-:10514000886048C081EE9EE00E94E5078091C10121
-:10515000897F877F8093C101DFCF9091C10191FB4F
-:10516000CC27C0F981E0C827892FC0FB81F9809343
-:10517000C101CC2319F084ED9EE027C086EC9EE0AF
-:10518000C9CF9091C10192FBCC27C0F981E0C8271B
-:10519000892FC0FB82F98093C101CC2319F087EBE2
-:1051A0009EE013C087EA9EE0B5CF9091C10193FBCA
-:1051B000CC27C0F981E0C827892FC0FB83F98093F1
-:1051C000C101CC2351F08BE99EE00E94E50780915C
-:1051D000C10181608093C10162C08EE89EE09ACFD8
-:1051E0008EE69BE00E94E50786E49BE00E94E507CF
-:1051F00080E19BE00E94E50783EE9AE00E94E507CC
-:1052000084EA9AE00E94E50789E79AE083CF8BE67B
-:105210009AE00E94E5070E9422151F928F9381E574
-:105220009AE09F938F930E947E0880910A011F92BB
-:105230008F938AE39AE09F938F930E947E088091D8
-:1052400064011F928F9387E29AE09F938F930E944D
-:105250007E088091C3019091C401A091C501B091D5
-:10526000C601BF93AF939F938F9383E19AE09F937F
-:105270008F930E947E088DB79EB742960FB6F89422
-:105280009EBF0FBE8DBF48CF8D5101C080E00E94F0
-:10529000D42642CF8CE89EE00E94E507C0E08C2F28
-:1052A000CF91089580E0089580E00895CF93C82FAE
-:1052B0008091D101813071F020F0823009F44BC02F
-:1052C00042C1E0910B01F0910C018081823209F022
-:1052D0003CC107C0E0910B01F0910C01808182324A
-:1052E00061F48C2F0E945229811104C08C2F0E94DE
-:1052F000F4262FC081E090E02CC08C2F0E9454290E
-:10530000811126C0C431E1F070F4CB3081F0C0319E
-:10531000D1F40E949C2586E09AE00E94E50782E095
-:105320008093D10115C0C93259F0C83361F48DE7BB
-:105330009BE00E94E5078AE09AE00E94E50708C02A
-:105340001092D10104C184E09AE00E94E507FFC0F9
-:1053500081E08170FEC0C43228F5CE3108F0C1C0B2
-:10536000CB30A1F1D0F4C73009F0D3C08EE18093E7
-:10537000120182E3809311018AE08093100184E19D
-:1053800080930F0188E080930E0188E280930D01E5
-:105390008AEA98E00E94E507BFC0C33149F1C431F1
-:1053A000C1F0B7C0CB3409F4A9C028F4C93289F0E0
-:1053B000C83361F0AEC0C13509F49EC0C23509F4EE
-:1053C00099C0CE3409F0A5C06AE09EC00E949C2519
-:1053D000A3C08091D001882319F01092D0019CC005
-:1053E00087EB98E00E94E50781E08093D101B1C08E
-:1053F00081E998E00E94E5078FE798E00E94E507C1
-:10540000809112011F928F938CE798E09F938F9366
-:105410000E947E088AE798E00E94E50788E698E007
-:105420000E94E507809111011F928F9385E698E015
-:105430009F938F930E947E0883E698E00E94E50781
-:1054400084E598E00E94E507809110011F928F93F8
-:1054500081E598E09F938F930E947E088FE498E007
-:105460000E94E5078EE398E00E94E50780910F0116
-:105470001F928F938BE398E09F938F930E947E08F7
-:1054800089E398E00E94E50784E298E00E94E5073E
-:1054900080910E011F928F9381E298E09F938F93EA
-:1054A0000E947E088FE198E00E94E50788E098E07E
-:1054B0000E94E50780910D011F928F9385E098E08F
-:1054C0009F938F930E947E0883E098E00E94E507F7
-:1054D0008DB79EB748960FB6F8949EBF0FBE8DBF8E
-:1054E0001BC0CE51EC2FF0E0E95DFE4F8081809330
-:1054F000D00112C061E003C061E006C06AE08091A3
-:10550000D0010E94B32508C08091D0010E94562688
-:1055100003C088EA98E013C08091D001882369F025
-:105520001F928F9382EA98E09F938F930E947E0848
-:105530000F900F900F900F9004C08FE998E00E9499
-:10554000E50781E006C01092D10180E002C080E052
-:1055500000CFCF91089504D06894B1118DC0089503
-:1055600070D088F09F5790F0B92F9927B751A0F0CD
-:10557000D1F0660F771F881F991F1AF0BA95C9F7E7
-:1055800012C0B13081F077D0B1E0089574C0672FB8
-:10559000782F8827B85F39F0B93FCCF38695779597
-:1055A0006795B395D9F73EF4909580957095619580
-:1055B0007F4F8F4F9F4F0895E89409C097FB3EF4AB
-:1055C00090958095709561957F4F8F4F9F4F992350
-:1055D000A9F0F92F96E9BB279395F69587957795CE
-:1055E0006795B795F111F8CFFAF4BB0F11F460FF8E
-:1055F0001BC06F5F7F4F8F4F9F4F16C0882311F0E6
-:1056000096E911C0772321F09EE8872F762F05C0F9
-:10561000662371F096E8862F70E060E02AF09A9594
-:10562000660F771F881FDAF7880F9695879597F989
-:10563000089557FD9058440F551F59F05F3F71F082
-:105640004795880F97FB991F61F09F3F79F08795E9
-:105650000895121613061406551FF2CF4695F1DF72
-:1056600008C0161617061806991FF1CF8695710502
-:10567000610508940895E894BB2766277727CB0136
-:1056800097F908950BD078C069D028F06ED018F043
-:10569000952309F05AC05FC01124EECFCADFA0F3F2
-:1056A000959FD1F3950F50E0551F629FF001729FB7
-:1056B000BB27F00DB11D639FAA27F00DB11DAA1FD6
-:1056C000649F6627B00DA11D661F829F2227B00D23
-:1056D000A11D621F739FB00DA11D621F839FA00DAE
-:1056E000611D221F749F3327A00D611D231F849FFE
-:1056F000600D211D822F762F6A2F11249F57504055
-:105700008AF0E1F088234AF0EE0FFF1FBB1F661FEF
-:10571000771F881F91505040A9F79E3F510570F0A8
-:1057200014C0AACF5F3FECF3983EDCF386957795E3
-:105730006795B795F795E7959F5FC1F7FE2B880FA3
-:10574000911D9695879597F9089597F99F6780E839
-:1057500070E060E008959FEF80EC089500240A94C3
-:105760001616170618060906089500240A9412163C
-:105770001306140605060895092E0394000C11F46F
-:10578000882352F0BB0F40F4BF2B11F460FF04C01C
-:105790006F5F7F4F8F4F9F4F0895991B79E004C033
-:1057A000991F961708F0961B881F7A95C9F7809560
-:1057B000089597FB072E16F4009407D077FD09D0C3
-:1057C0000E94F32B07FC05D03EF4909581959F4FE6
-:1057D0000895709561957F4F0895EE0FFF1F059016
-:1057E000F491E02D0994AA1BBB1B51E107C0AA1F2D
-:1057F000BB1FA617B70710F0A61BB70B881F991F72
-:105800005A95A9F780959095BC01CD010895F99915
-:10581000FECF92BD81BDF89A992780B50895A8E181
-:10582000B0E042E050E00C942F2C262FF999FECFE7
-:1058300092BD81BDF89A019700B4021639F01FBAE3
-:1058400020BD0FB6F894FA9AF99A0FBE0895019602
-:10585000272F0E94162C0C94152CDC01CB01FC0187
-:10586000F999FECF06C0F2BDE1BDF89A319600B4B9
-:0E5870000D9241505040B8F70895F894FFCFC4
-:10587E00880D790E560E220EEE0D01B60128081473
-:10588E000A321E3F4D36203106E405AE058E051A4E
-:10589E000533054C056505010203040506070809D5
-:0258AE000000F8
-:00000001FF
diff --git a/keyboard/hhkb/keymaps/lxol/keymap.c b/keyboard/hhkb/keymaps/lxol/keymap.c deleted file mode 100644 index ccf1e07042..0000000000 --- a/keyboard/hhkb/keymaps/lxol/keymap.c +++ /dev/null @@ -1,208 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * lxol HHKB Layout - */ -#include "hhkb.h" - -#define BASE 0 -#define WIN 1 -#define HHKB 2 -#define RGUILEV 3 -#define LGUILEV 4 -#define RALTLEV 5 -#define LALTLEV 6 - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Layer 0: Default Layer - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [BASE] = KEYMAP( // layer 0 : default - - - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), - - - - /* Layer 1: HHKB mode (HHKB Fn) - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - | | | | | | | + | - | End | PgD | Dow | | | | | - |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| - - |---+---+---+---+---| - | | | | | | - |---+---+---+---+---| - */ - - [HHKB] = KEYMAP( - KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - - /* Layer LGUI: All keys with RGUI modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [RGUILEV] = KEYMAP( // Right GUI layer by KC_L - - RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ - RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ - RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ - RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), - - /* Layer LGUI: All keys with LGUI modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | LGUI | RAlt | - |------+------+-------+------+------| - */ - - [LGUILEV] = KEYMAP( // Right GUI layer by KC_L - - LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ - LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ - LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ - KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), - - /* Layer LALT: All keys with RALT modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | RGUI | RAlt | - |------+------+-------+------+------| - */ - - [RALTLEV] = KEYMAP( // Right ALT layer by KC_L - - RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ - RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ - RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ - RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ - KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), - - /* Layer LALT: All keys with LALT modifier - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| - - |------+------+-------+------+------| - | LAlt | LGUI | Space | LGUI | RAlt | - |------+------+-------+------+------| - */ - - [LALTLEV] = KEYMAP( // Right ALT layer by KC_L - - LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ - LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ - LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ - KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ - KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), - - - /* Layer WIN: Win layer - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | - |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| - - |------+------+-------+------+------| - | LGui | LAlt | Space | RGui | Ralt | - |------+------+-------+------+------| - */ - - [WIN] = KEYMAP( // BASE level with swapped GUI/ALT - - - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ - KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/hhkb/matrix.c b/keyboard/hhkb/matrix.c deleted file mode 100644 index 2dfb2f5e1f..0000000000 --- a/keyboard/hhkb/matrix.c +++ /dev/null @@ -1,204 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* - * scan matrix - */ -#include <stdint.h> -#include <stdbool.h> -#include <util/delay.h> -#include "print.h" -#include "debug.h" -#include "util.h" -#include "timer.h" -#include "matrix.h" -#include "hhkb_avr.h" -#include <avr/wdt.h> -#include "suspend.h" -#include "lufa.h" - - -// matrix power saving -#define MATRIX_POWER_SAVE 10000 -static uint32_t matrix_last_modified = 0; - -// matrix state buffer(1:on, 0:off) -static matrix_row_t *matrix; -static matrix_row_t *matrix_prev; -static matrix_row_t _matrix0[MATRIX_ROWS]; -static matrix_row_t _matrix1[MATRIX_ROWS]; - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ -#ifdef DEBUG - debug_enable = true; - debug_keyboard = true; -#endif - - KEY_INIT(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; - for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; - matrix = _matrix0; - matrix_prev = _matrix1; -} - -uint8_t matrix_scan(void) -{ - uint8_t *tmp; - - tmp = matrix_prev; - matrix_prev = matrix; - matrix = tmp; - - // power on - if (!KEY_POWER_STATE()) KEY_POWER_ON(); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - KEY_SELECT(row, col); - _delay_us(5); - - // Not sure this is needed. This just emulates HHKB controller's behaviour. - if (matrix_prev[row] & (1<<col)) { - KEY_PREV_ON(); - } - _delay_us(10); - - // NOTE: KEY_STATE is valid only in 20us after KEY_ENABLE. - // If V-USB interrupts in this section we could lose 40us or so - // and would read invalid value from KEY_STATE. - uint8_t last = TIMER_RAW; - - KEY_ENABLE(); - - // Wait for KEY_STATE outputs its value. - // 1us was ok on one HHKB, but not worked on another. - // no wait doesn't work on Teensy++ with pro(1us works) - // no wait does work on tmk PCB(8MHz) with pro2 - // 1us wait does work on both of above - // 1us wait doesn't work on tmk(16MHz) - // 5us wait does work on tmk(16MHz) - // 5us wait does work on tmk(16MHz/2) - // 5us wait does work on tmk(8MHz) - // 10us wait does work on Teensy++ with pro - // 10us wait does work on 328p+iwrap with pro - // 10us wait doesn't work on tmk PCB(8MHz) with pro2(very lagged scan) - _delay_us(5); - - if (KEY_STATE()) { - matrix[row] &= ~(1<<col); - } else { - matrix[row] |= (1<<col); - } - - // Ignore if this code region execution time elapses more than 20us. - // MEMO: 20[us] * (TIMER_RAW_FREQ / 1000000)[count per us] - // MEMO: then change above using this rule: a/(b/c) = a*1/(b/c) = a*(c/b) - if (TIMER_DIFF_RAW(TIMER_RAW, last) > 20/(1000000/TIMER_RAW_FREQ)) { - matrix[row] = matrix_prev[row]; - } - - _delay_us(5); - KEY_PREV_OFF(); - KEY_UNABLE(); - - // NOTE: KEY_STATE keep its state in 20us after KEY_ENABLE. - // This takes 25us or more to make sure KEY_STATE returns to idle state. -#ifdef HHKB_JP - // Looks like JP needs faster scan due to its twice larger matrix - // or it can drop keys in fast key typing - _delay_us(30); -#else - _delay_us(75); -#endif - } - if (matrix[row] ^ matrix_prev[row]) matrix_last_modified = timer_read32(); - } - // power off - if (KEY_POWER_STATE() && - (USB_DeviceState == DEVICE_STATE_Suspended || - USB_DeviceState == DEVICE_STATE_Unattached ) && - timer_elapsed32(matrix_last_modified) > MATRIX_POWER_SAVE) { - KEY_POWER_OFF(); - suspend_power_down(); - } - return 1; -} - -bool matrix_is_modified(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - if (matrix[i] != matrix_prev[i]) - return true; - } - return false; -} - -inline -bool matrix_has_ghost(void) -{ - return false; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & (1<<col)); -} - -inline -matrix_row_t matrix_get_row(uint8_t row) -{ - return matrix[row]; -} - -void matrix_print(void) -{ - print("\nr/c 01234567\n"); - for (uint8_t row = 0; row < matrix_rows(); row++) { - xprintf("%02X: %08b\n", row, bitrev(matrix_get_row(row))); - } -} - -uint8_t matrix_key_count(void) { - uint8_t count = 0; - for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { - count += bitpop16(matrix_get_row(r)); - } - return count; -} - -void matrix_power_up(void) { - KEY_POWER_ON(); -} -void matrix_power_down(void) { - KEY_POWER_OFF(); -} |