summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyboard/Bantam44/Bantam44.c25
-rw-r--r--keyboard/Bantam44/Bantam44.h29
-rw-r--r--keyboard/Bantam44/Makefile139
-rw-r--r--keyboard/Bantam44/README.md24
-rw-r--r--keyboard/Bantam44/config.h81
-rw-r--r--keyboard/Bantam44/keymaps/default.c30
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/README.md29
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex1474
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/keymap.c187
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/keymap.c126
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.pngbin0 -> 95077 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.pngbin0 -> 108774 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.pngbin0 -> 93001 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex2162
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.pngbin93556 -> 0 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/readme.md10
-rw-r--r--keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md6
-rw-r--r--keyboard/planck/keymaps/default/keymap.c70
-rw-r--r--keyboard/retro_refit/Makefile139
-rw-r--r--keyboard/retro_refit/README.md24
-rw-r--r--keyboard/retro_refit/config.h79
-rw-r--r--keyboard/retro_refit/keymaps/default.c33
-rw-r--r--keyboard/retro_refit/retro_refit.c68
-rw-r--r--keyboard/retro_refit/retro_refit.h45
-rw-r--r--quantum/led.c9
-rw-r--r--quantum/template/template.c23
-rw-r--r--quantum/template/template.h1
m---------teensy-sdk0
-rw-r--r--tmk_core/common/action.c5
-rw-r--r--tmk_core/common/action_macro.c4
-rw-r--r--tmk_core/common/action_util.c9
-rw-r--r--tmk_core/common/action_util.h7
-rw-r--r--tmk_core/common/led.h5
36 files changed, 3763 insertions, 1161 deletions
diff --git a/keyboard/Bantam44/Bantam44.c b/keyboard/Bantam44/Bantam44.c
new file mode 100644
index 0000000000..ad91401eeb
--- /dev/null
+++ b/keyboard/Bantam44/Bantam44.c
@@ -0,0 +1,25 @@
+#include "Bantam44.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
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+} \ No newline at end of file
diff --git a/keyboard/Bantam44/Bantam44.h b/keyboard/Bantam44/Bantam44.h
new file mode 100644
index 0000000000..fa5b9df9e4
--- /dev/null
+++ b/keyboard/Bantam44/Bantam44.h
@@ -0,0 +1,29 @@
+#ifndef BANTAM44_H
+#define BANTAM44_H
+
+#include "matrix.h"
+#include "keymap_common.h"
+#include "backlight.h"
+#include <stddef.h>
+
+// This a shortcut to help you visually see your layout.
+// The following is an example using the Planck MIT layout
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define KEYMAP( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, K2A }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, KC_NO, K33, KC_NO, K34, KC_NO, K35, K36, K37, K38 }, \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+
+#endif
diff --git a/keyboard/Bantam44/Makefile b/keyboard/Bantam44/Makefile
new file mode 100644
index 0000000000..e7dea9f602
--- /dev/null
+++ b/keyboard/Bantam44/Makefile
@@ -0,0 +1,139 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Target file name (without extension).
+TARGET = Bantam44
+
+
+# Directory common source filess exist
+TOP_DIR = ../..
+TMK_DIR = ../../tmk_core
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# # project specific files
+SRC = Bantam44.c
+
+ifdef KEYMAP
+ SRC := keymaps/$(KEYMAP).c $(SRC)
+else
+ SRC := keymaps/default.c $(SRC)
+endif
+
+CONFIG_H = config.h
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=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
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+# MIDI_ENABLE = YES # MIDI controls
+# UNICODE_ENABLE = YES # Unicode
+# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+
+# Optimize size but this may cause error "relocation truncated to fit"
+#EXTRALDFLAGS = -Wl,--relax
+
+# Search Path
+VPATH += $(TARGET_DIR)
+VPATH += $(TOP_DIR)
+VPATH += $(TMK_DIR)
+
+include $(TOP_DIR)/quantum/quantum.mk
+
diff --git a/keyboard/Bantam44/README.md b/keyboard/Bantam44/README.md
new file mode 100644
index 0000000000..cd059a66c9
--- /dev/null
+++ b/keyboard/Bantam44/README.md
@@ -0,0 +1,24 @@
+Bantam44 keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboard/Bantam44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` 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. \ No newline at end of file
diff --git a/keyboard/Bantam44/config.h b/keyboard/Bantam44/config.h
new file mode 100644
index 0000000000..26d680704d
--- /dev/null
+++ b/keyboard/Bantam44/config.h
@@ -0,0 +1,81 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Bantam Keyboards
+#define PRODUCT Bantam44
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+// Planck PCB default pin-out
+// Change this to how you wired your keyboard
+// COLS: Left to right, ROWS: Top to bottom
+#define COLS (int []){ B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 }
+#define ROWS (int []){ F0, D6, D4, D5 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * 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/Bantam44/keymaps/default.c b/keyboard/Bantam44/keymaps/default.c
new file mode 100644
index 0000000000..17ade6241f
--- /dev/null
+++ b/keyboard/Bantam44/keymaps/default.c
@@ -0,0 +1,30 @@
+#include "Bantam44.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = { /* Base */
+ {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
+ {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_ENT },
+ {KC_CAPS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT },
+ {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(1), KC_NO, KC_SPC, KC_NO, MO(2), KC_SCLN, KC_QUOT, KC_SLSH }
+ },
+ [1] = { /* LOWER */
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT },
+ {KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO, KC_ENT },
+ {KC_CAPS, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_HOME, KC_PGUP, KC_RSFT },
+ {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_END, KC_PGDN, KC_EXLM }
+ },
+ [2] = { /* RAISE */
+ {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT },
+ {KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO, KC_ENT },
+ {KC_CAPS, KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_UP, KC_RSFT },
+ {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }
+ }
+};
+
+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
+{
+ return MACRO_NONE;
+}; \ No newline at end of file
diff --git a/keyboard/ergodox_ez/keymaps/naps62/README.md b/keyboard/ergodox_ez/keymaps/naps62/README.md
new file mode 100644
index 0000000000..14728e4cc4
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/naps62/README.md
@@ -0,0 +1,29 @@
+# ErgoDox EZ naps62 Configuration
+
+## Motivation
+
+I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming.
+
+## Key features / changes
+
+### Base Layer (L1)
+
+* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether.
+* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this.
+* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it.
+* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing.
+* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well.
+
+### Coder Layer (L2)
+
+* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer.
+
+### Media Layer (L3)
+
+* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones
+* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here
+* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now.
+
+## Author
+
+[Miguel Palhas](https://github.com/naps62)
diff --git a/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex
new file mode 100644
index 0000000000..e5f213ba82
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex
@@ -0,0 +1,1474 @@
+:100000000C9402070C9449070C9449070C94490777
+:100010000C9449070C9449070C9449070C94490720
+:100020000C9449070C9449070C9472120C944413D5
+:100030000C9449070C9449070C9449070C94490700
+:100040000C9449070C94082C0C9449070C9449070C
+:100050000C9449070C9401220C9449070C9449070D
+:100060000C9449070C9449070C9449070C944907D0
+:100070000C9449070C9449070C9449070C944907C0
+:100080000C9449070C9449070C9449070C944907B0
+:100090000C9449070C9449070C9449070C944907A0
+:1000A0000C9449070C9449070C944907B113D313D6
+:1000B000C614D313C61418143B14C6149014A314F6
+:1000C000F117F1172018201863189D18AA1AAA1AF8
+:1000D000B618AA1AAB19AB197E1AAA1AAA1A951A37
+:1000E0000000F0A12D002B002971E100C1000000EB
+:1000F0001E00140004001D003500E2001F001A005D
+:1001000016001B003400E000200008000700060075
+:1001100050002C0021001500090019004F82E30057
+:10012000220017000A00050000004A812C08015433
+:100130000000007F00004D8249000254000000775B
+:1001400000004B8223001C000B00110000004E81B8
+:10015000240018000D0010002F024C0025000C0098
+:100160000E00360030022C00260012000F0037006F
+:100170002F002800270013003300380030002A0029
+:100180002D00310034712D72C1000000010001000A
+:1001900001000100010000003A001E0220022202BC
+:1001A000010001003B001F022102230201000100A7
+:1001B0003C002F0226022F00010001003D0030020A
+:1001C00027023000010001003E00310235003502F7
+:1001D000000001000100010000000100000001001A
+:1001E0000100010000000100000001003F0052007A
+:1001F00051002402000001004000240021001E00E4
+:100200002E0001004100250022001F0037000100E0
+:1002100042002600230020002700010043002502A1
+:100220002E0231002D0001004400450001000100B4
+:100230000100000000500100010001000100000069
+:1002400001000100040801000100010001001A087A
+:10025000160801000100F500010008080708010068
+:100260000100F4000100F400F100010001000100B0
+:1002700001001708F3000100000001000100010067
+:100280000000010000000100010001000000010069
+:100290000000010001000100F20001000000010067
+:1002A0000100F400F100AA00AE0001000100F50019
+:1002B000F000A900AC00B70001000100F300A800A5
+:1002C000AB00B600010001000100010001000100C7
+:1002D0000100010001000100010000000A002530BA
+:1002E000313662003A200025303258000A722F63FE
+:1002F0002030313233343536373839414243444582
+:10030000460A000A002530325800626F756E636538
+:10031000213A20006C6566742073696465206174FD
+:100320007461636865640A006C656674207369644F
+:1003300065206E6F7420726573706F6E64696E678E
+:100340000A00747279696E6720746F207265736534
+:1003500074206D637032333031380A000A444542EC
+:1003600055473A20656E61626C65642E0A005B73C6
+:100370005D004B6579626F617264207374617274A1
+:100380002E0A005B575D005B535D005B525D005BB6
+:10039000445D005B435D0016034500720067006F1B
+:1003A0000044006F007800200045005A000000164D
+:1003B000034500720067006F0044006F0078002062
+:1003C0000045005A0000000403090409028D0005DD
+:1003D0000100A0FA09040000010301010009211134
+:1003E000010001223F000705810308000A090401FA
+:1003F000000103010200092111010001224D000743
+:1004000005820308000A0904020001030000000934
+:1004100021110100012236000705830308000A09A3
+:100420000403000203000000092111010001222041
+:1004300000070584032000010705040320000109CB
+:100440000404000103000000092111010001223908
+:1004500000070585031000011201100100000008CB
+:10046000EDFE071301000102000105010906A101CB
+:10047000050719E029E71500250195087501810296
+:100480000508190129059505750191029501750366
+:100490009101050719002977150025019578750147
+:1004A0008102C00631FF0974A1010975150025FFFD
+:1004B0009520750881020976150025FF952075089D
+:1004C0009102C005010980A101850216010026B72D
+:1004D000001A01002AB700751095018100C0050CB3
+:1004E0000901A1018503160100269C021A01002AB8
+:1004F0009C02751095018100C005010902A1010946
+:1005000001A10005091901290515002501950575A9
+:100510000181029501750381010501093009311539
+:1005200081257F95027508810609381581257F95FB
+:100530000175088106050C0A38021581257F950191
+:1005400075088106C0C005010906A101050719E06B
+:1005500029E71500250195087501810295017508A7
+:10056000810105081901290595057501910295017B
+:10057000750391010507190029FF150025FF950650
+:1005800075088100C00A002530325820006B65795B
+:10059000626F6172645F7265706F72743A20000AF4
+:1005A0000025303258006B6579626F6172645F7349
+:1005B00065745F6C65643A200064656C5F6B657997
+:1005C0005F6269743A2063616E27742064656C3AD7
+:1005D00020253032580A006164645F6B65795F6280
+:1005E00069743A2063616E2774206164643A20253F
+:1005F0003032580A00646F6E652E0A00626F6F67B2
+:100600006D61676963207363616E3A202E2E2E2020
+:1006100000290A002575002F002575005D2800259A
+:10062000640020002564002000256400200025646B
+:10063000007C0025303258006D6F7573656B6579ED
+:10064000205B62746E7C782079207620685D287249
+:1006500065702F61636C293A205B006D6B5F776872
+:1006600065656C5F74696D655F746F5F6D6178203F
+:100670003D2025640A006D6B5F776865656C5F6D72
+:1006800061785F7370656564203D2025640A006DA4
+:100690006B5F74696D655F746F5F6D6178203D207D
+:1006A00025640A006D6B5F6D61785F7370656564CA
+:1006B000203D2025640A006D6B5F696E746572765B
+:1006C000616C203D2025640A006D6B5F64656C6180
+:1006D00079203D2025640A006D6B5F776865656C45
+:1006E0005F74696D655F746F5F6D6178203D202573
+:1006F000640A006D6B5F776865656C5F6D61785F3C
+:100700007370656564203D2025640A006D6B5F741D
+:10071000696D655F746F5F6D6178203D2025640AA7
+:10072000006D6B5F6D61785F7370656564203D205F
+:1007300025640A006D6B5F696E74657276616C206A
+:100740003D2025640A006D6B5F64656C6179203D16
+:100750002025640A000A00257500363A207768656E
+:10076000656C5F74696D655F746F5F6D61783A2069
+:10077000000A00257500353A20776865656C5F6D65
+:1007800061785F73706565643A20000A0025750022
+:10079000343A2074696D655F746F5F6D61783A20DB
+:1007A000000A00257500333A206D61785F7370652B
+:1007B00065643A20000A00257500323A20696E749B
+:1007C000657276616C286D73293A20000A002575E0
+:1007D00000313A2064656C6179282A31306D7329C3
+:1007E0003A20000A092D2056616C756573202D0A88
+:1007F000004D3E004D25643E20003F00736574208F
+:1008000064656661756C740A00433E200077686514
+:1008100072652064656C74613A20637572736F72DF
+:100820003D25642C20776865656C3D25640A536519
+:100830006520687474703A2F2F656E2E77696B6926
+:1008400070656469612E6F72672F77696B692F4DD0
+:100850006F7573655F6B6579730A000A092D204D0A
+:100860006F7573656B6579202D0A4553432F713A77
+:1008700009717569740A313A0964656C6179282ACD
+:1008800031306D73290A323A09696E746572766186
+:100890006C286D73290A333A096D61785F7370654E
+:1008A00065640A343A0974696D655F746F5F6D61E0
+:1008B000780A353A09776865656C5F6D61785F73B2
+:1008C000706565640A363A09776865656C5F7469B6
+:1008D0006D655F746F5F6D61780A0A703A097072B6
+:1008E000696E742076616C7565730A643A09736584
+:1008F000742064656661756C74730A75703A092BAF
+:10090000310A646F776E3A092D310A706775703A53
+:10091000092B31300A7067646F776E3A092D3130D8
+:100920000A0A7370656564203D2064656C746120FB
+:100930002A206D61785F7370656564202A202872B3
+:100940006570656174202F2074696D655F746F5FD9
+:100950006D6178290A003F004D3E2000433E200093
+:100960004C25640A000A092D20436F6E736F6C6575
+:10097000202D0A4553432F713A09717569740A6D28
+:100980003A096D6F7573656B65790A000A092D2048
+:100990004D61676963202D0A643A09646562756771
+:1009A0000A783A096465627567206D6174726978C6
+:1009B0000A6B3A096465627567206B6579626F61DD
+:1009C00072640A6D3A096465627567206D6F7573AC
+:1009D000650A763A0976657273696F6E0A733A0929
+:1009E0007374617475730A633A09636F6E736F6C25
+:1009F00065206D6F64650A302D343A096C61796544
+:100A000072302D34284631302D4634290A50617514
+:100A1000733A09626F6F746C6F616465720A653A4C
+:100A200009656570726F6D0A6E3A094E4B524F0A36
+:100A30007A3A09736C656570204C4544207465737F
+:100A4000740A000A002575002E6E6B726F3A200042
+:100A50000A002575002E737761705F6261636B73A6
+:100A60006C6173685F6261636B73706163653A2088
+:100A7000000A002575002E737761705F67726176DA
+:100A8000655F6573633A20000A002575002E6E6F5E
+:100A90005F6775693A20000A002575002E7377613B
+:100AA000705F72616C745F726775693A20000A004A
+:100AB0002575002E737761705F6C616C745F6C6775
+:100AC00075693A20000A002575002E636170736C09
+:100AD0006F636B5F746F5F636F6E74726F6C3A20DD
+:100AE000000A002575002E737761705F636F6E7466
+:100AF000726F6C5F636170736C6F636B3A20000A96
+:100B00000025303258006B65796D61705F636F6EE0
+:100B10006669672E7261773A20000A002575002EFB
+:100B20006D6F7573653A20000A002575002E6B65A0
+:100B300079626F6172643A20000A002575002E6D9B
+:100B400061747269783A20000A002575002E656E7E
+:100B500061626C653A20000A0025303258006465F5
+:100B60006275675F636F6E6669672E7261773A20A0
+:100B7000000A0025750064656661756C745F6C61C0
+:100B80007965723A20003F004E4B524F3A206F6613
+:100B9000660A004E4B524F3A206F6E0A0074696D20
+:100BA00065725F636F756E743A202530346C580A35
+:100BB000006B6579626F6172645F6E6B726F3A2071
+:100BC00025580A006B6579626F6172645F69646CB5
+:100BD000653A2025580A006B6579626F6172645F1F
+:100BE00070726F746F636F6C3A2025580A00686FDB
+:100BF00073745F6B6579626F6172645F6C65647357
+:100C000028293A2025580A000A092D2053746174B6
+:100C10007573202D0A004743433A20352E332E307A
+:100C2000204156522D4C4942433A20312E382E3124
+:100C300073766E204156525F415243483A206176A6
+:100C400072350A004F5054494F4E533A204C554686
+:100C50004120424F4F544D41474943204D4F55533A
+:100C6000454B45592045585452414B455920434F17
+:100C70004E534F4C4520434F4D4D414E44204E4B1B
+:100C8000524F203531320A004255494C443A203601
+:100C9000386366663764202832323A33323A303568
+:100CA000204A616E2033302032303136290A005616
+:100CB00049443A20307846454544284572676F4498
+:100CC0006F7820455A29205049443A2030783133F2
+:100CD0003037284572676F446F7820455A2920566F
+:100CE00045523A203078303030310A004445534381
+:100CF0003A20742E6D2E6B2E206B6579626F6172B7
+:100D000064206669726D7761726520666F72204536
+:100D100072676F646F780A000A092D205665727336
+:100D2000696F6E202D0A000A6D6F7573653A206F2A
+:100D300066660A000A6D6F7573653A206F6E0A0069
+:100D40000A6B6579626F6172643A206F66660A00A9
+:100D50000A6B6579626F6172643A206F6E0A000AED
+:100D60006D61747269783A206F66660A000A6D6177
+:100D7000747269783A206F6E0A000A64656275675A
+:100D80003A206F6E0A000A64656275673A206F66E2
+:100D9000660A000A0A626F6F746C6F616465722E76
+:100DA0002E2E2000433E20006565636F6E666967E6
+:100DB0003A0A00536C656570204C45442074657395
+:100DC000740A0000000000000000000000000102A2
+:100DD00004060A0F17202C3A4A5D71879DB3C7DAC3
+:100DE000E9F5FCFFFCF5E9DAC7B39D87715D4A3A86
+:100DF0002C20170F0A06040201000000000000006A
+:100E00000000000011241FBECFEFDAE0DEBFCDBF2F
+:100E100004B603FE27C08091F8019091F901A091DA
+:100E2000FA01B091FB018730904BA740B04BD1F451
+:100E30001092F8011092F9011092FA011092FB0140
+:100E400014BE84B7877F84BF0FB6F894A8958091AD
+:100E50006000886180936000109260000FBEE0E047
+:100E6000FFE3099511E0A0E0B1E0EAECFBE502C088
+:100E700005900D92AA33B107D9F721E0AAE3B1E0BA
+:100E800001C01D92A83FB207E1F70E94AD0F0C947C
+:100E9000E32D0C940000FF93EF93E0913A01F09161
+:100EA0003B01309709F00995EF91FF910895FC01FE
+:100EB0008591803011F0EFDFFBCF0895FF27E0E24E
+:100EC00030E247FF0CC0419597FF09C0EDE2609505
+:100ED000709580959095611D711D811D911D27FF55
+:100EE00002C0219530E350E2AA27660F771F881FC2
+:100EF000991FAA1FA41710F0A41B63955A95A9F770
+:100F0000AA3008F0A95FA05DAF93F3956115710554
+:100F10008105910541F7ED3211F4EF93F395F21746
+:100F200018F43F93F395FBCF8F91B5DFFA95E1F776
+:100F30000895E991F9918591803021F0853219F079
+:100F4000AADFF9CF089520E0E89455915532C1F316
+:100F5000503311F4689455915A3348F4505390F338
+:100F6000220F022E220F220F200D250FF4CF0EF498
+:100F7000219589919991533619F3533729F15335B6
+:100F800059F1BC0188279927E8945C3621F48991AE
+:100F9000999168945591543639F446EF7EF077FF75
+:100FA0000DC08FEF9FEF0AC055374AE039F0583532
+:100FB00040E121F0523642E009F00895FF93EF93AB
+:100FC0007DDFEF91FF91B7CFFF93EF93FC0181910C
+:100FD0008030B9F360DFFBCFFF93EF9368DFF1CF91
+:100FE000DF93CF93CDB7DEB72596A3DFCF91DF9107
+:100FF000089561110BC0FC018281882321F085EEE8
+:101000000E948B1603C085EE0E94531780E090E08B
+:10101000089508956091BC017091BD018091BE0159
+:101020009091BF010E94022156985E9825982D98B4
+:1010300026982E9827982F98813019F0823021F029
+:101040000895259A2D9A0895269A2E9A08958AE051
+:1010500098E0892B11F00E940A0880E090E0089542
+:1010600056985E9825982D9826982E9827982F9810
+:101070008FEF90E0909389008093880090938B008D
+:1010800080938A0090938D0080938C00259A2D9AEE
+:101090002FEF80E792E0215080409040E1F700C0C0
+:1010A0000000269A2E9A2FEF80E792E02150804090
+:1010B0009040E1F700C00000279A2F9A2FEF80E7B9
+:1010C00092E0215080409040E1F700C00000259858
+:1010D0002D982FEF80E792E0215080409040E1F77B
+:1010E00000C0000026982E982FEF80E792E0215054
+:1010F00080409040E1F700C0000027982F98569854
+:101100005E9825982D9826982E9827982F980895C0
+:1011100089EA8093800089E08093810024982C984C
+:101120003F988AB18F748AB96E98479A8BB1806B59
+:101130008BB9769A0E94300889E098E0892B11F0EB
+:101140000E94090880E090E0089580E28093000109
+:1011500080913C0181110EC00E94F40881E08093CF
+:101160003C012FEF83ED90E3215080409040E1F768
+:1011700000C0000080E40E94FA0880930001811101
+:101180002EC00E94240980930001811128C00E9472
+:10119000240980930001811122C08FE30E94240959
+:1011A0008093000181111BC00E941C0980E40E94F1
+:1011B000FA0880930001811112C08CE00E9424097A
+:1011C0008