summaryrefslogtreecommitdiffstats
path: root/keyboards/bantam44
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/bantam44')
-rw-r--r--keyboards/bantam44/Makefile72
-rw-r--r--keyboards/bantam44/README.md24
-rw-r--r--keyboards/bantam44/bantam44.c25
-rw-r--r--keyboards/bantam44/bantam44.h29
-rw-r--r--keyboards/bantam44/config.h82
-rw-r--r--keyboards/bantam44/keymaps/default/compiled.hex1398
-rw-r--r--keyboards/bantam44/keymaps/default/keymap.c30
7 files changed, 1660 insertions, 0 deletions
diff --git a/keyboards/bantam44/Makefile b/keyboards/bantam44/Makefile
new file mode 100644
index 0000000000..03893dbf89
--- /dev/null
+++ b/keyboards/bantam44/Makefile
@@ -0,0 +1,72 @@
+
+
+# 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
+
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif
+
diff --git a/keyboards/bantam44/README.md b/keyboards/bantam44/README.md
new file mode 100644
index 0000000000..a571e3d447
--- /dev/null
+++ b/keyboards/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 keyboards/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/keyboards/bantam44/bantam44.c b/keyboards/bantam44/bantam44.c
new file mode 100644
index 0000000000..5d507adc3a
--- /dev/null
+++ b/keyboards/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();
+}
diff --git a/keyboards/bantam44/bantam44.h b/keyboards/bantam44/bantam44.h
new file mode 100644
index 0000000000..8e776d63b0
--- /dev/null
+++ b/keyboards/bantam44/bantam44.h
@@ -0,0 +1,29 @@
+#ifndef BANTAM44_H
+#define BANTAM44_H
+
+#include "matrix.h"
+#include "keymap.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/keyboards/bantam44/config.h b/keyboards/bantam44/config.h
new file mode 100644
index 0000000000..a55f629990
--- /dev/null
+++ b/keyboards/bantam44/config.h
@@ -0,0 +1,82 @@
+/*
+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 MATRIX_ROW_PINS { F0, D6, D4, D5 }
+#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 }
+#define UNUSED_PINS
+
+/* 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 DEBOUNCING_DELAY 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/keyboards/bantam44/keymaps/default/compiled.hex b/keyboards/bantam44/keymaps/default/compiled.hex
new file mode 100644
index 0000000000..df7fc1b9c4
--- /dev/null
+++ b/keyboards/bantam44/keymaps/default/compiled.hex
@@ -0,0 +1,1398 @@
+:100000000C9489060C94CD060C94CD060C94CD0668
+:100010000C94CD060C94CD060C94CD060C94CD0614
+:100020000C94CD060C94CD060C9486110C945812A9
+:100030000C94CD1F0C94CD060C94CD060C94CD06DB
+:100040000C94CD060C94CD060C94CD060C94CD06E4
+:100050000C94CD060C9435200C94CD060C94CD0652
+:100060000C94CD060C94CD060C94CD060C94CD06C4
+:100070000C94CD060C94CD060C94CD060C94CD06B4
+:100080000C94CD060C94CD060C94CD060C94CD06A4
+:100090000C94CD060C94CD060C94CD060C94CD0694
+:1000A0000C94CD060C94CD060C94CD06C512E71227
+:1000B000D513E712D5132C134F13D513A413B7136D
+:1000C000FA16FA162917291768178817B818B818D2
+:1000D0009317B81843184318A918B818B818B218C5
+:1000E00050185018501850185018501850185018D0
+:1000F00050185018501850185018501850185018C0
+:1001000060186E1875187C188618290014001A00DB
+:100110000800150017001C0018000C001200130046
+:100120002A002B0004001600070009000A000B003B
+:100130000D000E000F00000028003900E1001D0036
+:100140001B000600190005001100100036003700E2
+:10015000E500E000E300E2000000015200002C0096
+:100160000000025233003400380029001E001F0036
+:100170002000210022002300240025002600270063
+:100180004C002B00AC00AE00AB00350031002D0060
+:100190002E002F003000000028003900E1003A0056
+:1001A0003B003C003D003E003F0000004A004B0089
+:1001B000E500E000E300E2000000010000002C0088
+:1001C000000001004D004E001E0229001E021F0209
+:1001D00020022102220223022402250226022702F3
+:1001E0004C002B00A800AA00A900350231022D0204
+:1001F0002E022F023002000028003900E1004000EA
+:10020000410042004300440045000000000052004D
+:10021000E500E000E300E2000000010000002C0027
+:1002200000000100500051004F000A44454255476C
+:100230003A20656E61626C65642E0A0053746174C5
+:1002400065206F6620726F772025583A202530315F
+:1002500036620A0048756D616E2D72656164616277
+:100260006C65206D61747269782073746174653A8D
+:100270000D0A004465626F756E63696E6720646580
+:100280006C61792072656D61696E696E673A2025CF
+:10029000580A005B735D004B6579626F6172642080
+:1002A00073746172742E0A005B575D005B535D00CE
+:1002B0005B525D005B445D005B435D0012034200E6
+:1002C00061006E00740061006D00340034000000B5
+:1002D0002203420061006E00740061006D00200086
+:1002E0004B006500790062006F00610072006400DD
+:1002F000730000000403090409027400040100A053
+:10030000FA090400000103010100092111010001A3
+:10031000223F000705810308000A090401000103C8
+:10032000010200092111010001224D00070582038D
+:1003300008000A090402000103000000092111015C
+:1003400000012236000705830308000A09040300A0
+:10035000020300000009211101000122200007050D
+:10036000840320000107050403200001120110018D
+:1003700000000008EDFE606001000102000106318E
+:10038000FF0974A1010975150025FF9520750881E5
+:10039000020976150025FF952075089102C0050118
+:1003A0000980A101850216010026B7001A01002A62
+:1003B000B700751095018100C0050C0901A10185E8
+:1003C00003160100269C021A01002A9C0275109552
+:1003D000018100C005010902A1010901A10005096F
+:1003E0001901290515002501950575018102950161
+:1003F000750381010501093009311581257F9502B9
+:100400007508810609381581257F950175088106D3
+:10041000050C0A38021581257F950175088106C0F3
+:10042000C005010906A101050719E029E715002506
+:10043000019508750181029501750881010508196A
+:100440000129059505750191029501750391010535
+:1004500007190029FF150025FF950675088100C0C2
+:100460000A002530325820006B6579626F61726432
+:100470005F7265706F72743A20004B6579626F61CC
+:100480007264204C4544732073746174653A20256E
+:10049000780A00646F6E652E0A00626F6F676D6187
+:1004A000676963207363616E3A202E2E2E20002927
+:1004B0000A002575002F002575005D2800256400C1
+:1004C0002000256400200025640020002564007CB5
+:1004D0000025303258006D6F7573656B6579205B50
+:1004E00062746E7C782079207620685D2872657051
+:1004F0002F61636C293A205B006D6B5F77686565DF
+:100500006C5F74696D655F746F5F6D6178203D200D
+:1005100025640A006D6B5F776865656C5F6D617857
+:100520005F7370656564203D2025640A006D6B5F14
+:1005300074696D655F746F5F6D6178203D2025641F
+:100540000A006D6B5F6D61785F7370656564203D57
+:100550002025640A006D6B5F696E74657276616C4C
+:10056000203D2025640A006D6B5F64656C61792015
+:100570003D2025640A006D6B5F776865656C5F746C
+:10058000696D655F746F5F6D6178203D2025640A39
+:10059000006D6B5F776865656C5F6D61785F737028
+:1005A000656564203D2025640A006D6B5F74696D8C
+:1005B000655F746F5F6D6178203D2025640A006D72
+:1005C0006B5F6D61785F7370656564203D202564A5
+:1005D0000A006D6B5F696E74657276616C203D20F8
+:1005E00025640A006D6B5F64656C6179203D202590
+:1005F000640A000A00257500363A20776865656C44
+:100600005F74696D655F746F5F6D61783A20000A91
+:1006100000257500353A20776865656C5F6D6178F7
+:100620005F73706565643A20000A00257500343AEE
+:100630002074696D655F746F5F6D61783A20000AA0
+:1006400000257500333A206D61785F7370656564CD
+:100650003A20000A00257500323A20696E746572EE
+:1006600076616C286D73293A20000A0025750031E7
+:100670003A2064656C6179282A31306D73293A20FB
+:10068000000A092D2056616C756573202D0A004DF6
+:100690003E004D25643E20003F0073657420646574
+:1006A0006661756C740A00433E2000776865726568
+:1006B0002064656C74613A20637572736F723D25B6
+:1006C000642C20776865656C3D25640A5365652058
+:1006D000687474703A2F2F656E2E77696B69706538
+:1006E0006469612E6F72672F77696B692F4D6F7523
+:1006F00073655F6B6579730A000A092D204D6F756C
+:1007000073656B6579202D0A4553432F713A097142
+:100710007569740A313A0964656C6179282A313047
+:100720006D73290A323A09696E74657276616C28B4
+:100730006D73290A333A096D61785F73706565647A
+:100740000A343A0974696D655F746F5F6D61780A88
+:10075000353A09776865656C5F6D61785F737065C0
+:1007600065640A363A09776865656C5F74696D651A
+:100770005F746F5F6D61780A0A703A097072696E12
+:10078000742076616C7565730A643A097365742028
+:1007900064656661756C74730A75703A092B310A69
+:1007A000646F776E3A092D310A706775703A092BBC
+:1007B00031300A7067646F776E3A092D31300A0A5A
+:1007C0007370656564203D2064656C7461202A2027
+:1007D0006D61785F7370656564202A20287265708A
+:1007E000656174202F2074696D655F746F5F6D6142
+:1007F00078290A003F004D3E2000433E20004C2552
+:10080000640A0074696D65725F636F756E743A2077
+:100810002530346C580A006B6579626F6172645FD1
+:1008200069646C653A2025580A006B6579626F61CE
+:1008300072645F70726F746F636F6C3A2025580A30
+:1008400000686F73745F6B6579626F6172645F6C6F
+:1008500065647328293A2025580A000A092D205377
+:100860007461747573202D0A004743433A20342E77
+:10087000392E32204156522D4C4942433A20312ED6
+:10088000382E31204156525F415243483A2061761A
+:1008900072350A004F5054494F4E533A204C55463A
+:1008A0004120424F4F544D41474943204D4F5553EE
+:1008B000454B45592045585452414B455920434FCB
+:1008C0004E534F4C4520434F4D4D414E4420353102
+:1008D000320A004255494C443A20313637313865A6
+:1008E000662D6469727479202832333A30393A338C
+:1008F00031204A756E2020392032303136290A00E5
+:100900005649443A203078464545442842616E7441
+:10091000616D204B6579626F617264732920504963
+:10092000443A203078363036302842616E74616D3A
+:10093000343429205645523A203078303030310A4C
+:1009400000444553433A204120637573746F6D2012
+:100950006B6579626F6172640A000A092D20566521
+:100960007273696F6E202D0A000A092D20436F6E85
+:10097000736F6C65202D0A4553432F713A097175C9
+:1009800069740A6D3A096D6F7573656B65790A0054
+:100990000A092D204D61676963202D0A443A0944F4
+:1009A00065627567204D65737361676520546F6775
+:1009B000676C650A583A094D61747269782044651C
+:1009C000627567204D6F646520546F67676C6520A2
+:1009D0002D2053686F77206B65797072657373652E
+:1009E0007320696E206D6174726978206772696422
+:1009F0000A4B3A094B6579626F6172642044656203
+:100A0000756720546F67676C65202D2053686F777A
+:100A1000206B65797072657373207265706F727484
+:100A20000A4D3A094465627567204D6F75736520FC
+:100A3000546F67676C650A563A0956657273696F39
+:100A40006E0A533A095374617475730A433A094143
+:100A50006374697661746520436F6E736F6C652093
+:100A60004D6F64650A46312D4631303A0953776936
+:100A700074636820746F204C6179657220302D3961
+:100A80002028463130203D204C30290A302D393A7B
+:100A90000953776974636820746F204C61796572BB
+:100AA00020302D390A4553433A09537769746368F6
+:100AB00020746F204C6179657220302028616C743D
+:100AC00065726E617465206B65792031290A475221
+:100AD0004156453A0953776974636820746F204C16
+:100AE0006179657220302028616C7465726E617462
+:100AF00065206B65792032290A50415553453A09E2
+:100B00004A756D7020746F20426F6F746C6F6164F2
+:100B1000657220285265736574290A453A09507236
+:100B2000696E7420454550524F4D20536574746969
+:100B30006E67730A000A002575002E6E6B726F3A9D
+:100B400020000A002575002E737761705F62616373
+:100B50006B736C6173685F6261636B737061636513
+:100B60003A20000A002575002E737761705F677266
+:100B70006176655F6573633A20000A002575002E73
+:100B80006E6F5F6775693A20000A002575002E7345
+:100B90007761705F72616C745F726775693A20008B
+:100BA0000A002575002E737761705F6C616C745F4D
+:100BB0006C6775693A20000A002575002E63617024
+:100BC000736C6F636B5F746F5F636F6E74726F6C67
+:100BD0003A20000A002575002E737761705F636FFD
+:100BE0006E74726F6C5F636170736C6F636B3A20CD
+:100BF000000A0025303258006B65796D61705F63C3
+:100C00006F6E6669672E7261773A20000A0025755B
+:100C1000002E6D6F7573653A20000A002575002E51
+:100C20006B6579626F6172643A20000A0025750075
+:100C30002E6D61747269783A20000A002575002EC5
+:100C4000656E61626C653A20000A002530325800FA
+:100C500064656275675F636F6E6669672E72617740
+:100C60003A20000A0025750064656661756C745F42
+:100C70006C617965723A20003F000A6D6F7573658B
+:100C80003A206F66660A000A6D6F7573653A206FC9
+:100C90006E0A000A6B6579626F6172643A206F6652
+:100CA000660A000A6B6579626F6172643A206F6E42
+:100CB0000A000A6D61747269783A206F66660A00EC
+:100CC0000A6D61747269783A206F6E0A000A646571
+:100CD0006275673A206F66660A000A646562756726
+:100CE0003A206F6E0A000A0A4A756D70696E6720B5
+:100CF000746F20626F6F746C6F616465722E2E2E3C
+:100D00002000433E20006565636F6E6669673A0A9E
+:100D1000000011241FBECFEFDAE0DEBFCDBF04B666
+:100D200003FE24C08091E8019091E901A091EA01BD
+:100D3000B091EB018730904BA740B04BB9F41092C3
+:100D4000E8011092E9011092EA011092EB0114BE41
+:100D500084B7877F84BF88E10FB6F89480936000E2
+:100D6000109260000FBEE0E0FFE3099511E0A0E003
+:100D7000B1E0EEEFF6E502C005900D92A234B107A6
+:100D8000D9F711E0A2E4B1E001C01D92A83EB1077D
+:100D9000E1F70E94C00E0C947D2B0C940000FF9391
+:100DA000EF93E0914201F0914301309709F00995EA
+:100DB000EF91FF910895FC018591803011F0EFDFF4
+:100DC000FBCF0895FF27E0E230E247FF0CC04195DA
+:100DD00097FF09C0EDE26095709580959095611D33
+:100DE000711D811D911D27FF02C0219530E350E246
+:100DF000AA27660F771F881F991FAA1FA41710F034
+:100E0000A41B63955A95A9F7AA3008F0A95FA05DC5
+:100E1000AF93F395611571058105910541F7ED32A9
+:100E200011F4EF93F395F21718F43F93F395FBCF7A
+:100E30008F91B5DFFA95E1F70895E991F9918591E0
+:100E4000803021F0853219F0AADFF9CF089520E033
+:100E5000E89455915532C1F3503311F4689455918B
+:100E60005A3348F4505390F3220F022E220F220FD0
+:100E7000200D250FF4CF0EF42195899199915336C9
+:100E800019F3533729F1533559F1BC0188279927B4
+:100E9000E8945C3621F4899199916894559154367F
+:100EA00039F446EF7EF077FF0DC08FEF9FEF0AC059
+:100EB00055374AE039F0583540E121F0523642E0EA
+:100EC00009F00895FF93EF937DDFEF91FF91B7CF86
+:100ED000FF93EF93FC0181918030B9F360DFFBCF8A
+:100EE000FF93EF9368DFF1CFDF93CF93CDB7DEB7FA
+:100EF0002596A3DFCF91DF910895089508950C946E
+:100F00007D070C947E0780E090E0089581E00895CD
+:100F100081E008950C94880708950F931F93CF9351
+:100F2000DF938C01FC01C081D181CE010E941C1E87
+:100F3000BE010E943A08EC01B8010E948A0788238A
+:100F400009F48DC0F8018281882309F44AC0809198
+:100F50004F0181111FC0C431F0E5DF0709F051C016
+:100F60000E948C0781E080934F010E94FF1F9093A5
+:100F70004E0180934D01109246011092480110924B
+:100F8000470110924A011092490110924C011092AF
+:100F90004B0165C080914D0190914E010E940B2044
+:100FA000883C910570F480914601E82FF0E0EE0F47
+:100FB000FF1FE95BFE4FD183C0838F5F80934601A3
+:100FC0004EC0C43880E5D80721F0C538D04501F1BE
+:100FD0003AC0F8018281882341F01092440182E0F6
+:100FE0001EC0C438E0E5DE0759F580914401811147
+:100FF00006C086E20E949E1586E20E94661682E086
+:101000001CC0C438F0E5DF0741F3C538D045D9F43A
+:10101000F8018281882331F01092450180E20E941C
+:10102000B5161DC080914501811106C087E20E945E
+:101030009E1587E20E94661680E20E94BC160FC0D1
+:10104000C538D04529F381E0809344018093450160
+:10105000C801DF91CF911F910F910C94860780E01A
+:10106000DF91CF911F910F9108950C947F070C94FD
+:10107000810708959CE0799FF001112490E3899FF6
+:10108000E00DF11D1124E60FF11DEE0FFF1FE65FCD
+:10109000FE4F859194910895880F991FFC01E657A2
+:1010A000F040859194910895880F991FFC01E65FA7
+:1010B000FE4F8591949108950F931F93CF93DF93E3
+:1010C000EC01811520E3920750F5C11580E2D807A5
+:1010D00008F0C3C0CB3BD10590F4C83AD10508F065
+:1010E0006AC0C53AD10508F05BC0C430D10508F02C
+:1010F000D4C1219709F0CEC101E010E00EC2CF3F6C
+:10110000D10511F008F0C9C1C03FD10508F0A2C057
+:10111000CE01805E9109089708F4BFC1BBC1C13000
+:1011200090E5D90709F4A2C020F5C0318FE4D807B3
+:1011300070F4C11590E4D90708F094C0C11521E3FB
+:10114000D20708F0A7C1DD278E01106CE6C1C115DA
+:10115000D04509F09FC10E9423198FEF94E32CE042
+:10116000815090402040E1F700C000000E945A20CA
+:10117000D4C1C11597E5D90758F4C03121E5D2078C
+:1011800008F020C1C43180E5D80708F479C082C1D5
+:10119000CE0190578115904108F07CC1DF7077C176
+:1011A000C53AD10509F47BC1C63AD10509F07AC127
+:1011B00002E810E4B2C1C83AD10509F476C1C93ACF
+:1011C000D10509F475C1CA3AD10509F474C1CB3A05
+:1011D000D10509F473C1CC3AD10509F472C1CD3AF5
+:1011E000D10509F471C1C03BD10509F470C1CE3AF3
+:1011F000D10509F46FC1CF3AD10509F46EC1C13BE5
+:10120000D10509F46DC1C23BD10509F46CC1C33BE2
+:10121000D10509F46BC1C43BD10509F46AC1C53BD2
+:10122000D10509F469C1C63BD10509F468C1C73BC2
+:10123000D10509F467C1C83BD10509F466C1C93BB2
+:10124000D10509F465C1CA3BD10509F464C100E0C8
+:1012500014E463C18E01106560C1CE019F700E94CD
+:1012600054085CC1DF708E01106A57C18AE292E0B7
+:101270000E94DB068091C90181608093C9014DC144
+:101280000E940822811102C00E94EE210E942522A4
+:1012900090E09093E8018093E701C23080E5D807A1
+:1012A00021F48091E701816086C0C43090E5D907C0
+:1012B00021F48091E70182607EC0C63020E5D2072C
+:1012C00021F48091E701846076C0C83080E5D807BA
+:1012D00019F48091E70127C0CA3090E5D90721F4BD
+:1012E0008091E701806167C0CC3020E5D20721F40E
+:1012F0008091E70180625FC0CE3080E5D80721F49D
+:101300008091E701806457C0C03190E5D90721F48E
+:101310008091E70180684FC0C23120E5D20729F4EF
+:101320008091E7018460886046C0C33080E5D807BB
+:1013300021F48091E7018E7F3EC0C53090E5D9074A
+:1013400021F48091E7018D7F36C0C73020E5D207B8
+:1013500021F48091E7018B7F2EC0C93080E5D8074A
+:1013600019F48091E70126C0CB3090E5D90721F42C
+:101370008091E7018F7E1FC0CD3020E5D20721F498
+:101380008091E7018F7D17C0CF3080E5D80721F429
+:101390008091E7018F7B0FC0C13190E5D90721F41F
+:1013A0008091E7018F7707C0C331D04531F4809138
+:1013B000E7018B7F877F8093E7018091E7010E949F
+:1013C0002922ABC08D2F99278F70992781309105E5
+:1013D000D9F49E012370332702C0880F991F2A95E4
+:1013E000E2F79C688E0144E0000F111F4A95E1F777
+:1013F00000271370802B912B53E0CC0FDD1F5A95E3
+:10140000E1F7C076DD272FC08230910531F4DC2F63
+:10141000CC278E01016F106A80C08330910569F47A
+:10142000CE018370992701E010E002C0000F111F68
+:101430008A95E2F7C8019C680FC084309105B9F421
+:10144000CE018370992701E010E002C0000F111F48
+:101450008A95E2F7C8019A6823E0CC0FDD1F2A9530
+:10146000E1F7C07ED7708C010C2B1D2B56C0853048
+:10147000910531F4DC2FCC278E01046F106A4DC02A
+:10148000069709F04AC0CF71DD27DC2FCC278E01EB
+:10149000106243C000E010E040C08E013EC001E891
+:1014A00010E43BC003E810E438C002EE14E435C099
+:1014B00009EE14E432C00AEE14E42FC005EB14E484
+:1014C0002CC006EB14E429C007EB14E426C00CEC96
+:1014D00014E423C00DEC14E420C003E815E41DC09F
+:1014E0000AE815E41AC002E915E417C004E915E496
+:1014F00014C001E216E411C003E216E40EC004E2D7
+:1015000016E40BC005E216E408C006E216E405C0C6
+:1015100007E216E402C00AE216E4C801DF91CF91A7
+:101520001F910F9108959CE0799FF001112490E3A1
+:10153000899FE00DF11D1124E60FF11DEE0FFF1F35
+:10154000E65FFE4F85919491803E9105E0F4803CEA
+:10155000910558F58133910509F46FC048F489323B
+:10156000910509F463C08A32910509F46DC072C017
+:1015700089339105E9F082389105D1F085339105E1
+:1015800009F44DC067C0833E910581F138F4803E77
+:101590009105B9F0823E9105D9F05CC0863E910577
+:1015A00061F1873E9105A1F155C00E944C08089554
+:1015B0002091E70120FD02C021FF4CC080EE90E0A9
+:1015C00049C08091E70180FFF9CF89E390E042C0F4
+:1015D0008091E70182FF0EC08091E70184FF03C084
+:1015E00080E090E037C083EE90E034C08091E70166
+:1015F00082FFF2CF82EE90E02DC08091E70183FF61
+:101600000BC08091E70184FDEBCF87EE90E022C014
+:101610008091E70183FFF5CF86EE90E01BC08091BB
+:10162000E70185FF07C089E290E014C08091E701DF
+:1016300085FFF9CF85E390E00DC08091E70186FF3B
+:1016400007C08AE290E006C08091E70186FFF9CFEB
+:1016500081E390E00E945C08089508950C942D0B9E
+:10166000E82FF0E0E05EFE4F8081E82FEF70F0E0C1
+:1016700082958F7021E030E0A90102C0440F551F10
+:101680008A95E2F740A308950F931F93CF93DF93BA
+:1016900085B7806885BF85B7806885BFC3E0D0E027
+:1016A00001E010E0FE01E05EFE4F8081E82FEF7068
+:1016B000F0E021A182958F70A80102C0440F551F50
+:1016C0008A95E2F7CA01822B81A38C2F0E94300BEE
+:1016D000219740F78BE090E061E070E0FC01EC5E68
+:1016E000FE4F2081E22FEF70F0E042A122952F7093
+:1016F000DB0102C0AA0FBB1F2A95E2F79D01242B34
+:1017000022A3019758F7DF91CF911F910F910C946D
+:101710003508EF92FF920F931F93CF93DF9308E565
+:1017200011E0C3E0EE24E394F12CD5E08C2F0E946D
+:10173000300B8BE090E040E050E0FC01EC5EFE4FAF
+:101740006081E62FEF70F0E020A130E062956F70CD
+:1017500002C0359527956A95E2F720FD09C09701EB
+:10176000082E02C0220F331F0A94E2F7422B532B9C
+:10177000019718F7F801929182918F0184179507CC
+:1017800021F051834083D09300018C2F0E94300BB5
+:10179000C15060F68091000187FD42C09091C9015F
+:1017A00090FF10C0282F332727FD30953F938F934C
+:1017B00083E792E09F938F930E9474070F900F909E
+:1017C0000F900F908091000181508093000187FD60
+:1017D00007C08FE99FE00197F1F700C0000020C02B
+:1017E000809156019091570190935F0180935E0123
+:1017F000809154019091550190935D0180935C011B
+:10180000809152019091530190935B0180935A0112
+:10181000809150019091510190935901809358010A
+:101820000E94370881E0DF91CF911F910F91FF90C7
+:10183000EF900895E82FF0E0EE0FFF1FE85AFE4FFB
+:10184000808191810895EF92FF920F931F93CF9320
+:10185000DF938091C90180FF04C084E592E00E947B
+:10186000DB0608E511E0C0E0D0E08CE3E82E82E082
+:10187000F82E8091C90180FF13C0F8018081918109
+:101880000E94741F9F938F93DF93CF93FF92EF92E9
+:101890000E9474070F900F900F900F900F900F9071
+:1018A00021960E5F1F4FC430D10519F7DF91CF91FC
+:1018B0001F910F91FF90EF9008950F931F93CF9377
+:1018C00000E611E0C0E0F801929182918F010E9440
+:1018D000521FC80FF1E008351F07A9F78C2FCF91D1
+:1018E0001F910F91089580916B0108959FB7F8940F
+:1018F000109262019FBF9091DE01943009F057C0B1
+:101900009091E9009F703091EC00232F217030FD01
+:1019100020E8922B24E02093E9002091EB0020FFA7
+:1019200043C02091EE0027FF3FC020916001222399
+:1019300021F02091E80025FF37C01092600126E0D9
+:101940003091E80035FD15C03091DE01343061F58D
+:101950003091EB0035FD28C0215021F481E08093C7
+:10196000600122C0EFE9FFE03197F1F700C000000D
+:10197000E7CF8093F1008091E80085FD0AC0809157
+:10198000E80080FFFCCF8091E8008E778093E8002C
+:1019900006C08FB7F89421E0209362018FBF9F703B
+:1019A0009093E90080E008959F709093E9008FEF95
+:1019B0000895CF93DF9300D01F92CDB7DEB79C017F
+:1019C0008091DE01843019F593E099833B832A836B
+:1019D0009093E9008FEF9091E800815095FD06C04B
+:1019E00095ED9A95F1F700008111F5CF8091E8000F
+:1019F00085FF0DC040E050E063E070E0CE0101964D
+:101A00000E94760F8091E8008E778093E8000F9017
+:101A10000F900F90DF91CF910895CF93DF9300D077
+:101A20001F92CDB7DEB72091DE01243021F522E0F0
+:101A300029839B838A8383E08093E9008FEF9091D1
+:101A4000E800815095FD06C095ED9A95F1F70000EC
+:101A50008111F5CF8091E80085FF0DC040E050E096
+:101A600063E070E0CE0101960E94760F8091E8005D
+:101A70008E778093E8000F900F900F90DF91CF91B9
+:101A800008952091DE012430F1F422E02093E90052
+:101A90002FEF3091E800215035FD06C035ED3A9525
+:101AA000F1F700002111F5CF2091E80025FF0BC0D0
+:101AB00040E050E065E070E00E94760F8091E80021
+:101AC0008E778093E8000895CF93DF932091DE0115
+:101AD000243039F521E02093E9002FEF3091E80020
+:101AE000215035FD06C035ED3A95F1F70000211182
+:101AF000F5CF2091E80025FF14C0EC0140E050E054
+:101B000068E070E00E94760F8091E8008E77809305
+:101B1000E80088E0FE01A3E6B1E001900D928A950D
+:101B2000E1F7DF91CF91089588EB92E00E94DB0608
+:101B30008091DD01811109C00E940B110E94681182
+:101B40008091E20084608093E200089584EB92E04B
+:101B50000E94DB061092DD01089580EB92E00C9468
+:101B6000DB068CEA92E00C94DB0688EA92E00E94A5
+:101B7000DB060C94C71F209161012F5F822F62E367
+:101B80000E940D2B992319F0209361010895109262
+:101B9000610180916201882371F18091DE018430BE
+:101BA00041F58091E9008F702091EC00922F9170A7
+:101BB00020FD90E8892B94E09093E9009091EB0050
+:101BC00090FF14C09091EE0097FF10C09091E80034
+:101BD00095FF03C01092F100F9CF9091E80090FFBB
+:101BE00005C09091E8009E779093E8008F708093F5
+:101BF000E90010926201089542E061EC81E00E94E8
+:101C0000851042E061EC82E00E94851042E061ECC8
+:101C100083E00E94851042E261EC84E00C94851020
+:101C20008091E001833009F453C030F4813071F0C9
+:101C3000823009F48CC008958A3009F478C08B3062
+:101C400009F45EC0893009F09AC020C08091DF019C
+:101C5000813A09F094C08091E800877F8093E80082
+:101C60008091E3019091E401892B21F468E083E6FF
+:101C700091E003C060E080E090E070E00E94C10F5E
+:101C80008091E8008B778093E80008958091DF01D0
+:101C9000813209F074C08091E3019091E401892BB5
+:101CA00009F06DC08091E800877F8093E800809103
+:101CB000E80082FD05C08091DE018111F8CF5FC090
+:101CC0008091F10080936B018091E8008B7753C085
+:101CD0008091DF01813A09F052C08091E301909137
+:101CE000E401892B09F04BC08091E800877F809345
+:101CF000E8008091E80080FFFCCF80910B0136C0A6
+:101D00008091DF018132D9F58091E3019091E40166
+:101D1000892BA9F58091E800877F8093E8000E94D5
+:101D2000BA108091E10180930B010C9423198091EA
+:101D3000DF01813221F58091E800877F8093E80000
+:101D40000E94BA108091E20180936C010895809105
+:101D5000DF01813AA1F48091E800877F8093E80059
+:101D60008091E80080FFFCCF80916C018093F100AE
+:101D70008091E8008E778093E8000C94BA10089563
+:101D800084B7877F84BF88E10FB6F89480936000A2
+:101D9000109260000FBE90E080E80FB6F894809338
+:101DA0006100909361000FBE0E949A140E940B1173
+:101DB0000E9468118091E20084608093E20086E7CF
+:101DC0009CE00E944D1F78940E94ED130E949C1489
+:101DD00081E091E00E94081487E992E00E94DB060E
+:101DE0008091DE01853089F483E992E00E94DB0670
+:101DF0000E948E1F8091DC01882391F30E94B91FFD
+:101E0000882371F30E94600FEBCF0E94C014E8CFCB
+:101E1000292F332723303105C9F064F421303105EF
+:101E200081F02230310509F043C084E790E028EFCB
+:101E300032E042C021323105F1F02232310541F168
+:101E400037C082E190E02CE633E036C0992781303C
+:101E5000910541F08230910541F0892B49F5E4EF7D
+:101E6000F2E005C0E0EDF2E002C0ECEBF2E08491BC
+:101E700090E09F0121C06430D8F4E62FF0E0EE0F2F
+:101E8000FF1FE05DFE4F2081318189E090E014C0AA
+:101E9000643070F470E0FB01EE0FFF1FE85DFE4F51
+:101EA00020813181FB01EC5DFE4F808190E004C018
+:101EB00080E090E020E030E0FA0131832083089553
+:101EC00080E189BD82E189BD09B400FEFDCF80912A
+:101ED000D8008F7D8093D8008091E000826080934D
+:101EE000E0008091E00081FDFCCF0895CF92DF9269
+:101EF000EF92FF920F931F93CF93DF93EC018B012F
+:101F00006A010E94D910811133C0C114D10439F083
+:101F1000F60180819181081B190BC80FD91FE12C94
+:101F2000F12C0115110519F18091E80085FD16C00D
+:101F30008091E8008E778093E800C114D10449F0C5
+:101F4000F60180819181E80EF91EF182E08285E040
+:101F50000FC00E94D910882321F30AC08991809371
+:101F6000F10001501109FFEFEF1AFF0ADACF80E00C
+:101F7000DF91CF911F910F91FF90EF90DF90CF9065
+:101F800008952091E5013091E6012617370748F0C2
+:101F90006115710539F42091E8002E772093E8004F
+:101FA00001C0B90140E061157105A9F12091DE0180
+:101FB000222309F443C0253009F442C02091E800EF
+:101FC00023FD40C02091E80022FD32C02091E800AE
+:101FD00020FFE9CF4091F3002091F20030E0342B54
+:101FE000FC01CF016115710559F02830310540F42D
+:101FF00081918093F100615071092F5F3F4FF1CFC4
+:1020000041E02830310509F040E02091E8002E77CA
+:102010002093E800C8CF4111C9CF0AC08091DE01EA
+:10202000882361F0853061F08091E80083FD0AC06B
+:102030008091E80082FFF2CF80E0089582E0089569
+:1020400083E0089581E008952091E5013091E60153
+:102050002617370748F06115710539F42091E8001B
+:102060002E772093E80001C0B901FC0120E0611542
+:10207000710591F18091DE01882309F440C085301B
+:1020800009F43FC08091E80083FD3DC08091E800E5
+:1020900082FD2FC08091E80080FFE9CF2091F300FE
+:1020A0008091F20090E0922B6115710559F0883013
+:1020B000910540F424912093F1003196615071090B
+:1020C0000196F2CF21E0089709F020E08091E80026
+:1020D0008E778093E800CBCF2111CCCF0AC08091BE
+:1020E000DE01882361F0853061F08091E80083FD96
+:1020F0000AC08091E80082FFF2CF80E0089582E07C
+:10210000089583E0089581E00895982F973058F559
+:102110009093E900981739F07091EC002091ED0050
+:102120005091F00003C0242F762F50E021FF19C0FA
+:102130003091EB003E7F3093EB003091ED003D7F1E
+:102140003093ED003091EB0031603093EB007093F1
+:10215000EC002093ED005093F0002091EE0027FF5B
+:1021600007C09F5FD3CF8F708093E90081E008950F
+:1021700080E008958091DF0187FF11C08091E80021
+:1021800082FD05C08091DE018111F8CF11C08091E0
+:10219000E8008B770BC08091DE01882349F08091A5
+:1021A000E80080FFF8CF8091E8008E778093E80008
+:1021B00008952091E4003091E50095E64091EC000F
+:1021C000842F817040FF22C08091E80080FD1CC0F8
+:1021D0008091DE01882391F0853091F08091EB00B1
+:1021E00085FD10C04091E4005091E500421753076F
+:1021F00029F39A01915011F784E0089582E008953F
+:1022000083E0089581E0089580E008954091E8001A
+:1022100042FFDECF08950E9479110E948111E0EE05
+:10222000F0E0808181608083E8EDF0E080818F774D
+:10223000808319BCA7EDB0E08C918E7F8C93808158
+:102240008F7E80831092DD0108950F931F93CF93AB
+:10225000DF930E9479110E948111C8EDD0E088813E
+:102260008F77888388818068888388818F7D888341
+:1022700019BC1092DE011092DA011092DC0110926A
+:10228000DB0100EE10E0F80180818B7F8083888184
+:102290008160888342E060E080E00E948510E1EE8A
+:1022A000F0E080818E7F8083E2EEF0E080818160CB
+:1022B0008083808188608083F80180818E7F808325
+:1022C000888180618883DF91CF911F910F9108955C
+:1022D000E8EDF0E080818F7E8083E7EDF0E08081A3
+:1022E0008160808384E082BF81E08093DD010C9473
+:1022F0002511E8EDF0E080818E7F80831092E2006E
+:1023000008951092DA001092E10008951F920F9242
+:102310000FB60F9211242F933F934F935F936F93B8
+:102320007F938F939F93AF93BF93EF93FF9380918E
+:10233000E10082FF0BC08091E20082FF07C0809124
+:10234000E1008B7F8093E1000E94BB0D8091DA0059
+:1023500080FF1FC08091D80080FF1BC08091DA00F1
+:102360008E7F8093DA008091D90080FF0DC080E1DC
+:1023700089BD82E189BD09B400FEFDCF81E0809373
+:10238000DE010E94940D05C019BC1092DE010E946E
+:10239000A60D8091E10080FF19C08091E20080FFCE
+:1023A00015C08091E2008E7F8093E2008091E20070
+:1023B00080618093E2008091D80080628093D80091
+:1023C00019BC85E08093DE010E94B10D8091E1008F
+:1023D00084FF30C08091E20084FF2CC080E189BD81
+:1023E00082E189BD09B400FEFDCF8091D8008F7DC8
+:1023F0008093D8008091E1008F7E8093E1008091EE
+:10240000E2008F7E8093E2008091E2008160809301
+:10241000E2008091DA01882311F084E007C0809106
+:10242000E30087FD02C081E001C083E08093DE010C
+:102430000E94B50D8091E10083FF29C08091E200E8
+:1024400083FF25C08091E100877F8093E10082E0D7
+:102450008093DE011092DA018091E1008E7F8093FB
+:10246000E1008091E2008E7F8093E2008091E200A3
+:1024700080618093E20042E060E080E00E9485108D
+:102480008091F00088608093F0000E94AD0DFF9174
+:10249000EF91BF91AF919F918F917F916F915F91DC
+:1024A0004F913F912F910F900FBE0F901F90189555
+:1024B0001F920F920FB60F9211242F933F934F93B9
+:1024C0005F936F937F938F939F93AF93BF93CF93BC
+:1024D000DF93EF93FF93C091E900CF708091EC0000
+:1024E000D82FD17080FDD0E81092E9008091F000E3
+:1024F000877F8093F00078940E949C121092E900EC
+:102500008091F00088608093F000CD2BCF70C09355
+:10251000E900FF91EF91DF91CF91BF91AF919F9132
+:102520008F917F916F915F914F913F912F910F907C
+:102530000FBE0F901F9018951F93CF93DF93CDB7C9
+:10254000DEB7AA970FB6F894DEBF0FBECDBFEFED92
+:10255000F1E088E08E0F9091F10091938E13FBCF04
+:102560000E94100E8091E80083FF1FC18091DF015F
+:102570009091E001492F50E04A30510508F015C113
+:10258000FA01EA5AFF4F0C942D2B803881F08238E3
+:1025900009F00BC18091E3018F708093E900809175
+:1025A000EB0085FB882780F91092E90006C0809136
+:1025B000DB019091DC01911182609091E800977F9E
+:1025C0009093E8008093F1001092F100C8C0282F8A
+:1025D0002D7F09F0EAC0882319F0823061F0E5C050
+:1025E0008091E101813009F0E0C0933009F080E092
+:1025F0008093DC012BC08091E101811127C0809183
+:10260000E3018F7009F4D1C08093E9002091EB00C1
+:1026100020FF1CC0933021F48091EB00806214C035
+:102620009091EB0090619093EB0021E030E0A901E4
+:1026300002C0440F551F8A95E2F74093EA001092BA
+:10264000EA008091EB0088608093EB001092E90033
+:102650008091E800877F86C08111A7C01091E101B9
+:102660001F778091E3008078812B8093E300809135
+:10267000E800877F8093E8000E94BA108091E8000C
+:1026800080FFFCCF8091E30080688093E30011110C
+:1026900002C082E001C083E08093DE0186C08058E2
+:1026A000823008F082C08091E1019091E2018C3D7E
+:1026B000