]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge pull request #157 from DidierLoiseau/typematrix
authorJack Humbert <jack.humb@gmail.com>
Sun, 21 Feb 2016 18:35:08 +0000 (13:35 -0500)
committerJack Humbert <jack.humb@gmail.com>
Sun, 21 Feb 2016 18:35:08 +0000 (13:35 -0500)
Small fixes and improvements to tm2030 layout

139 files changed:
.gitignore
HAND-WIRE.md [new file with mode: 0644]
QUICK_START.md
README.md
keyboard/atomic/README.md
keyboard/atreus/Makefile [new file with mode: 0644]
keyboard/atreus/README.md [new file with mode: 0644]
keyboard/atreus/atreus.c [new file with mode: 0644]
keyboard/atreus/atreus.h [new file with mode: 0644]
keyboard/atreus/config.h [new file with mode: 0644]
keyboard/atreus/keymaps/keymap_default.c [new file with mode: 0644]
keyboard/atreus/keymaps/keymap_gerb.c [new file with mode: 0644]
keyboard/ergodox_ez/Makefile
keyboard/ergodox_ez/keymaps/coderkun_neo2/coderkun_neo2.hex
keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c
keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/csharp_dev/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/default/default.hex
keyboard/ergodox_ez/keymaps/default/default.png
keyboard/ergodox_ez/keymaps/default/default_highres.png
keyboard/ergodox_ez/keymaps/default/keymap.c
keyboard/ergodox_ez/keymaps/default/readme.md
keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c
keyboard/ergodox_ez/keymaps/erez_experimental/readme.md
keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/german-kinergo/layout.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/german-kinergo/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jack/keymap.c
keyboard/ergodox_ez/keymaps/jacobono/README.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/jacobono/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/mpiechotka/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/osx_de/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex
keyboard/ergodox_ez/keymaps/osx_de/readme.md
keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c
keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md [new file with mode: 0644]
keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex [new file with mode: 0644]
keyboard/ergodox_ez/readme.md
keyboard/planck/Makefile
keyboard/planck/PCB_GUIDE.md
keyboard/planck/README.md
keyboard/planck/config.h
keyboard/planck/keymaps/alexey.c [new file with mode: 0644]
keyboard/planck/keymaps/angerthosenear.c [new file with mode: 0644]
keyboard/planck/keymaps/austin.c [new file with mode: 0644]
keyboard/planck/keymaps/brandon.c [new file with mode: 0644]
keyboard/planck/keymaps/cbbrowne/README.md [new file with mode: 0644]
keyboard/planck/keymaps/cbbrowne/keymap.c [new file with mode: 0644]
keyboard/planck/keymaps/charlie.c [new file with mode: 0644]
keyboard/planck/keymaps/daniel.c [new file with mode: 0644]
keyboard/planck/keymaps/david.c [new file with mode: 0644]
keyboard/planck/keymaps/default/README.md [new file with mode: 0644]
keyboard/planck/keymaps/default/keymap.c [new file with mode: 0644]
keyboard/planck/keymaps/dzobert.c [new file with mode: 0644]
keyboard/planck/keymaps/gabriel.c [new file with mode: 0644]
keyboard/planck/keymaps/joe.c [new file with mode: 0644]
keyboard/planck/keymaps/keymap_alexey.c [deleted file]
keyboard/planck/keymaps/keymap_angerthosenear.c [deleted file]
keyboard/planck/keymaps/keymap_austin.c [deleted file]
keyboard/planck/keymaps/keymap_charlie.c [deleted file]
keyboard/planck/keymaps/keymap_daniel.c [deleted file]
keyboard/planck/keymaps/keymap_david.c [deleted file]
keyboard/planck/keymaps/keymap_default.c [deleted file]
keyboard/planck/keymaps/keymap_dzobert.c [deleted file]
keyboard/planck/keymaps/keymap_gabriel.c [deleted file]
keyboard/planck/keymaps/keymap_jack.c [deleted file]
keyboard/planck/keymaps/keymap_joe.c [deleted file]
keyboard/planck/keymaps/keymap_kyle.c [deleted file]
keyboard/planck/keymaps/keymap_leo.c [deleted file]
keyboard/planck/keymaps/keymap_lock.c [deleted file]
keyboard/planck/keymaps/keymap_max.c [deleted file]
keyboard/planck/keymaps/keymap_monkey.c [deleted file]
keyboard/planck/keymaps/keymap_numpad.c [deleted file]
keyboard/planck/keymaps/kyle.c [new file with mode: 0644]
keyboard/planck/keymaps/leo.c [new file with mode: 0644]
keyboard/planck/keymaps/lock/README.md [new file with mode: 0644]
keyboard/planck/keymaps/lock/keymap.c [new file with mode: 0644]
keyboard/planck/keymaps/lukas.c [new file with mode: 0644]
keyboard/planck/keymaps/max.c [new file with mode: 0644]
keyboard/planck/keymaps/mollat.c [new file with mode: 0644]
keyboard/planck/keymaps/monkey.c [new file with mode: 0644]
keyboard/planck/keymaps/numpad.c [new file with mode: 0644]
keyboard/planck/keymaps/yang/WS2812-wiring.jpg [new file with mode: 0644]
keyboard/planck/keymaps/yang/keymap.c [new file with mode: 0644]
keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg [new file with mode: 0644]
keyboard/planck/planck.c
keyboard/planck/planck.h
new_project.sh
quantum/audio.c [new file with mode: 0644]
quantum/audio.h [new file with mode: 0644]
quantum/beeps.c [deleted file]
quantum/beeps.h [deleted file]
quantum/keymap_common.c
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_fr_ch.h [new file with mode: 0644]
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.c [new file with mode: 0644]
quantum/keymap_midi.c
quantum/keymap_midi.h
quantum/keymap_unicode.c
quantum/light_ws2812.c [new file with mode: 0755]
quantum/light_ws2812.h [new file with mode: 0755]
quantum/quantum.mk
quantum/rgblight.c [new file with mode: 0644]
quantum/rgblight.h [new file with mode: 0644]
quantum/template/Makefile
quantum/template/README.md
quantum/template/config.h
quantum/template/keymaps/default.c [new file with mode: 0644]
quantum/template/keymaps/keymap_default.c [deleted file]
quantum/template/template.h
quantum/wave.h [new file with mode: 0644]
tmk_core/common.mk
tmk_core/common/avr/suspend.c
tmk_core/doc/build.md
tmk_core/protocol/lufa/lufa.c

index 49eb2d5587e6c5c62e0180f7bf73f35cbe2da6b7..1e19ce9a873079ed65be07fbf01cd1c93ff23d09 100644 (file)
@@ -13,3 +13,4 @@ tags
 build/
 *.bak
 .vagrant/
+.DS_STORE
\ No newline at end of file
diff --git a/HAND-WIRE.md b/HAND-WIRE.md
new file mode 100644 (file)
index 0000000..3f4d75b
--- /dev/null
@@ -0,0 +1,323 @@
+# Quantum Hand-wiring Guide
+
+Parts list:
+* *x* keyswitches (MX, Matias, Gateron, etc)
+* *x* diodes
+* Keyboard plate (metal, plastic, cardboard, etc)
+* Wire (strained for wiring to the Teensy, anything for the rows/columns)
+* Soldering iron set at 600ºF or 315ºC (if temperature-controlled)
+* Resin-cored solder (leaded or lead-free)
+* Adequate ventilation/a fan
+* Tweezers (optional)
+* Wire cutters/snippers
+
+## How the matrix works (why we need diodes)
+
+The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example:
+
+        Column 0 being scanned     Column 1 being scanned
+                  x                                   x
+                 col0     col1              col0     col1
+                  |        |                 |        |
+        row0 ---(key0)---(key1)    row0 ---(key0)---(key1)
+                  |        |                 |        |
+        row1 ---(key2)---(key3)    row1 ---(key2)---(key3)
+
+The `x` represents that the column/row associated has a value of 1, or is HIGH. Here, we see that no keys are being pressed, so no rows get an `x`. For one keyswitch, keep in mind that one side of the contacts is connected to its row, and the other, its column.
+
+When we press `key0`, `col0` gets connected to `row0`, so the values that the firmware receives for that row is `0b01` (the `0b` here means that this is a bit value, meaning all of the following digits are bits - 0 or 1 - and represent the keys in that column). We'll use this notation to show when a keyswitch has been pressed, to show that the column and row are being connected:
+
+        Column 0 being scanned     Column 1 being scanned
+                  x                                   x
+                 col0     col1              col0     col1
+                  |        |                 |        |
+      x row0 ---(-+-0)---(key1)    row0 ---(-+-0)---(key1)
+                  |        |                 |        |
+        row1 ---(key2)---(key3)    row1 ---(key2)---(key3)
+
+We can now see that `row0` has an `x`, so has the value of 1. As a whole, the data the firmware receives when `key0` is pressed is
+
+    col0: 0b01
+    col1: 0b00
+            │└row0
+            └row1
+
+A problem arises when you start pressing more than one key at a time. Looking at our matrix again, it should become pretty obvious:
+
+        Column 0 being scanned     Column 1 being scanned
+                  x                                   x
+                 col0     col1              col0     col1
+                  |        |                 |        |
+      x row0 ---(-+-0)---(-+-1)  x row0 ---(-+-0)---(-+-1)
+                  |        |                 |        |
+      x row1 ---(key2)---(-+-3)  x row1 ---(key2)---(-+-3)
+      
+      Remember that this ^ is still connected to row1
+
+The data we get from that is:
+    
+    col0: 0b11
+    col1: 0b11
+            │└row0
+            └row1
+
+Which isn't accurate, since we only have 3 keys pressed down, not all 4. This behavior is called ghosting, and only happens in odd scenarios like this, but can be much more common on a bigger keyboard. The way we can get around this is by placing a diode after the keyswitch, but before it connects to its row. A diode only allows current to pass through one way, which will protect our other columns/rows from being activated in the previous example. We'll represent a dioded matrix like this;
+
+        Column 0 being scanned     Column 1 being scanned
+                    x                                   x
+                  col0      col1              col0     col1
+                    │        │                 |        │
+                 (key0)   (key1)            (key0)   (key1)
+                  ! │      ! │               ! |      ! │
+        row0 ─────┴────────┘ │     row0 ─────┴────────┘ │
+                    │        │                 |        │
+                 (key2)   (key3)            (key2)   (key3)
+                  !        !                 !        !
+        row1 ─────┴────────┘       row1 ─────┴────────┘ 
+
+In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|`
+
+Now when we press the three keys, invoking what would be a ghosting scenario:
+
+        Column 0 being scanned     Column 1 being scanned
+                    x                                   x
+                  col0      col1              col0     col1
+                    │        │                 │        │
+                 (┌─┤0)   (┌─┤1)            (┌─┤0)   (┌─┤1)
+                  ! │      ! │               ! │      ! │
+      x row0 ─────┴────────┘ │   x row0 ─────┴────────┘ │
+                    │        │                 │        │
+                 (key2)   (┌─┘3)            (key2)   (┌─┘3)
+                  !        !                 !        !
+        row1 ─────┴────────┘     x row1 ─────┴────────┘ 
+
+Things act as they should! Which will get us the following data:
+    
+    col0: 0b01
+    col1: 0b11
+            │└row0
+            └row1
+
+The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS.
+
+## The actual hand-wiring
+
+### Getting things in place
+
+When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards.
+
+To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns. 
+
+Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps.
+
+Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy.
+
+### Preparing the diodes
+
+It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads):
+
+       ┌─────┬─┐
+    ───┤     │ ├─┐
+       └─────┴─┘ │
+                 │
+
+We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row.
+
+### Soldering the diodes
+
+Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The straight end of the diode should be touching the left contact on the switch, and the bent end should be facing to the right and resting on the switch there, like this:
+
+     │o
+    ┌┴┐         o
+    │ │    O
+    ├─┤      
+    └┬┘
+     └─────────────
+
+Letting the diode rest, grab your solder, and touch both it and the soldering iron to the left contact at the same time - the rosin in the solder should make it easy for the solder to flow over both the diode and the keyswitch contact. The diode may move a little, and if it does, carefully position it back it place by grabbing the bent end of the diode - the other end will become hot very quickly. If you find that it's moving too much, using needle-nose pliers of some sort may help to keep the diode still when soldering.
+
+The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face.
+
+After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiney) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process.
+
+When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this:
+
+     │o               │o
+    ┌┴┐         o    ┌┴┐         o
+    │ │    O         │ │    O
+    ├─┤              ├─┤      
+    └┬┘              └┬┘
+     └────────────────┴─────────────
+
+After completing a row, use the wire cutters to trim the excess wire from the tops of the diodes, and from the right side on the final switch. This process will need to completed for each row you have.
+
+When all of the diodes are completely soldered, it's a good idea to quickly inspect each one to ensure that your solder joints are solid and sturdy - repairing things after this is possible, but more difficult.
+
+### Soldering the columns
+
+You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch. 
+
+If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron.
+
+Before beginning to solder, it helps to have your wire pre-bent (if using single-cored), or at least have an idea of how you're going to route the column (especially if you're making a staggered board). Where you go in particular doesn't matter too much, as we'll be basing our keymap definitions on how it was wired - just make sure every key in a particular row is in a unique column, and that they're in order from left to right.
+
+If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes.
+
+### Wiring things to the Teensy
+
+Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple.
+
+The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware.
+
+Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach.
+
+Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering.
+
+As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future.
+
+When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work.
+
+As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain!
+
+### Getting some basic firmware set-up
+
+From here, you should have a working keyboard with the correct firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
+
+To start out, download [the firmware](https://github.com/jackhumbert/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
+
+The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `<project_name>` replaced by the name of your project - it'll need to be different from any other project in the `keyboard/` folder:
+
+    ./new_project.sh <project_name>
+
+You'll want to navigate to the `keyboard/<project_name>/` folder by typing, like the print-out from the script specifies:
+
+    cd keyboard/<project_name>
+
+#### config.h
+
+The first thing we're going to want to modify is the `config.h` file. On line 32 and 33, you'll see `MATRIX_ROWS` and `MATRIX_COLS` - set both these variables to however many rows and columns you have on your keyboard.
+
+On line 38 and 39 you'll see the `COLS` and `ROWS` definitions - this is where you'll enter the pins you used, in order (left-to-right when looking at the top of the keyboard, but right-to-left when looking at the bottom).
+
+There are some other variables that you'll be able to modify (lines 23-29), but it's not necessary to do that now (or ever, really).
+
+#### \<project_name\>.h
+
+The next file you'll want to look at is `<project_name>.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix. 
+
+We'll dive into how this will work with the following example. Say we have a keyboard like this:
+
+    ┌───┬───┬───┐
+    │   │   │   │
+    ├───┴─┬─┴───┤
+    │     │     │
+    └─────┴─────┘
+
+This can be described by saying the top row is 3 1u keys, and the bottom row is 2 1.5u keys. The difference between the two rows is important, because the bottom row has an unused column spot (3 v 2). Let's say that this is how we wired the columns:
+
+    ┌───┬───┬───┐
+    │ ┋ │ ┋ │ ┋ │
+    ├─┋─┴─┬─┴─┋─┤
+    │ ┋   │   ┋ │
+    └─────┴─────┘
+
+The middle column is unused on the bottom row in this example. Our `KEYMAP` definition would look like this:
+
+    #define KEYMAP( \
+        k00, k01, k02, \
+          k10,  k11,   \
+    ) \
+    { \
+        { k00, k01,   k02 }, \
+        { k10, KC_NO, k11 }, \
+    } 
+
+Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring.
+
+Let's say that instead, we wired our keyboard like this (a fair thing to do):
+
+    ┌───┬───┬───┐
+    │ ┋ │  ┋│ ┋ │
+    ├─┋─┴─┬┋┴───┤
+    │ ┋   │┋    │
+    └─────┴─────┘
+
+This would require our `KEYMAP` definition to look like this:
+
+    #define KEYMAP( \
+        k00, k01, k02, \
+          k10,  k11,   \
+    ) \
+    { \
+        { k00, k01, k02   }, \
+        { k10, k11, KC_NO }, \
+    } 
+
+Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it.
+
+#### keymaps/default.c
+
+This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make KEYMAP=<variant>`, which will pull `keymaps/<variant>.c`.
+
+The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer.
+
+Using our previous example, let's say we want to create the following layout:
+
+    ┌───┬───┬───┐
+    │ A │ 1 │ H │
+    ├───┴─┬─┴───┤
+    │ TAB │ SPC │
+    └─────┴─────┘
+
+This can be accomplished by using the following `keymaps` definition:
+
+    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = KEYMAP( /* Base */
+      KC_A,  KC_1,  KC_H, \
+        KC_TAB,  KC_SPC   \
+    ),
+    };
+
+Note that the layout of the keycodes is similar to the physical layout of our keyboard - this make it much easier to see what's going on. A lot of the keycodes should be fairly obvious, but for a full list of them, check out [tmk_code/doc/keycode.txt](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt) - there are also a lot of aliases to condense your keymap file.
+
+It's also important to use the `KEYMAP` function we defined earlier - this is what allows the firmware to associate our intended readable keymap with the actual wiring.
+
+#### Compiling your firmware
+
+After you've written out your entire keymap, you're ready to get the firmware compiled and onto your Teensy. Before compiling, you'll need to get your [development environment set-up](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboard/planck/PCB_GUIDE.md#setting-up-the-environment) - you can skip the dfu-programmer instructions, but you'll need to download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to get the firmware on your Teensy.
+
+Once everything is installed, running `make` in the terminal should get you some output, and eventually a `<project_name>.hex` file in that folder. If you're having trouble with this step, see the end of the guide for the trouble-shooting section.
+
+Once you have your `<project_name>.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboard/<project_name>/` folder, and select the `<project_name>.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go!
+
+#### Testing your firmware
+
+Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys:
+
+0. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced.
+1. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough.
+2. Check the solder joints on the diode - if the diode is loose, part of your row may register, while the other may not.
+3. Check the solder joints on the columns - if your column wiring is loose, part or all of the column may not work.
+4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides.
+5. Check the <project_name>.h file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable.
+6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly.
+
+If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end.
+
+#### Securing the Teensy, finishing your hardware, getting fancier firmware
+
+Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out.
+
+There are a lot of possibilities inside the firmware - check out the [README](https://github.com/jackhumbert/qmk_firmware/blob/master/README.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb)
+
+## Trouble-shooting compiling
+
+### Windows
+
+#### fork: Resource temporarily unavailable
+
+http://www.avrfreaks.net/forum/windows-81-compilation-error
+
+### Mac
+
+### Linux
index 6be377db3c5f83be5747b394fb9fe0e03778621a..948308ca11eab6963c114907ec13509663410945 100644 (file)
@@ -20,6 +20,6 @@ See [doc/keymap.md](tmk_core/doc/keymap.md).
 
 ## Flashing the firmware
 
-The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](keyboard/ergodox_ez/README.md) gives a great example.
+The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](keyboard/ergodox_ez/readme.md) gives a great example.
 
 If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.
index 2ed05e76e2d3708563d0d389f47691841623fc92..6cb73f1804d731be17f40ecb0fdd968ba9f3884f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -73,7 +73,7 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u
     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. 
+`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):
 
@@ -86,15 +86,15 @@ These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LS
 
 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 
+  * `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/)
   * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped
   * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift.
 
-### Temporarily setting the default layer 
+### 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.
 
@@ -115,7 +115,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) //
     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;
@@ -132,20 +132,80 @@ A macro can include the following commands:
 
 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.
+Note: Using macros to have your keyboard send passwords for you is possible, but a bad idea.
 
-### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc)
+### Advanced macro functions
+
+To get more control over the keys/actions your keyboard takes, the following functions are available to you in the `action_get_macro` function block:
+
+* `record->event.pressed`
+
+This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is
+
+```c
+if (record->event.pressed) {
+  // on keydown
+} else {
+  // on keyup
+}
+```
+
+* `register_code(<kc>);`
+
+This sends the `<kc>` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`.
+
+* `unregister_code(<kc>);`
+
+Parallel to `register_code` function, this sends the `<kc>` keyup event to the computer. If you don't use this, the key will be held down until it's sent.
+
+* `layer_on(<n>);`
+
+This will turn on the layer `<n>` - the higher layer number will always take priority. Make sure you have `KC_TRNS` for the key you're pressing on the layer you're switching to, or you'll get stick there unless you have another plan.
+
+* `layer_off(<n>);`
+
+This will turn off the layer `<n>`.
+
+* `clear_keyboard();`
+
+This will clear all mods and keys currently pressed.
+
+* `clear_mods();`
+
+This will clear all mods currently pressed.
+
+* `clear_keyboard_but_mods();`
+
+This will clear all keys besides the mods currently pressed.
+
+#### Timer functionality
+
+It's possible to start timers and read values for time-specific events - here's an example:
+
+```c
+static uint16_t key_timer;
+key_timer = timer_read();
+if (timer_elapsed(key_timer) < 100) {
+  // do something if less than 100ms have passed
+} else {
+  // do something if 100ms or more have passed
+}
+```
+
+It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). 
+
+## 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"
+   #include <keymap_extras/keymap_colemak.h>
+
+If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to:
 
-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. 
+
+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`.
 
@@ -188,7 +248,7 @@ The method does not require Unicode support in the keyboard itself but depends i
 First you need to select a modifier combination that is not in use by any of your programs.
 CtrlAltWin is not used very widely and should therefore be perfect for this.
 There is a macro defined for a mod-tab combo `LCAG_T`.
-Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. 
+Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`.
 This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key.
 
 In the default script of AutoHotkey you can define custom hotkeys.
@@ -198,3 +258,54 @@ In the default script of AutoHotkey you can define custom hotkeys.
 
 The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a.
 AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.
+
+## RGB Under Glow Mod
+
+![Planck with RGB Underglow](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg)
+
+Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY).
+
+For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring the VCC, GND, and DI, you can enable the underglow in your Makefile.
+
+    RGBLIGHT_ENABLE = yes
+
+Please note that the underglow is not compatible with MIDI functions. So you cannot enable both of them at the same time.
+
+Please add the following options into your config.h, and set them up according your hardware configuration.
+
+    #define ws2812_PORTREG  PORTF
+    #define ws2812_DDRREG   DDRF
+    #define ws2812_pin PF4
+    #define RGBLED_NUM 14     // Number of LEDs
+    #define RGBLIGHT_HUE_STEP 10
+    #define RGBLIGHT_SAT_STEP 17
+    #define RGBLIGHT_VAL_STEP 17
+
+The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboard/planck/keymaps/yang/keymap.c`
+
+### WS2812 Wiring
+
+![WS2812 Wiring](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/WS2812-wiring.jpg)
+
+Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20.
+
+## Safety Considerations
+
+You probably don't want to "brick" your keyboard, making it impossible
+to rewrite firmware onto it.  Here are some of the parameters to show
+what things are (and likely aren't) too risky.
+
+- If a keyboard map does not include RESET, then, to get into DFU
+  mode, you will need to press the reset button on the PCB, which
+  requires unscrewing some bits.
+- Messing with tmk_core / common files might make the keyboard
+  inoperable
+- Too large a .hex file is trouble; `make dfu` will erase the block,
+  test the size (oops, wrong order!), which errors out, failing to
+  flash the keyboard
+- DFU tools do /not/ allow you to write into the bootloader (unless
+  you throw in extra fruitsalad of options), so there is little risk
+  there.
+- EEPROM has around a 100000 write cycle.  You shouldn't rewrite the
+  firmware repeatedly and continually; that'll burn the EEPROM
+  eventually.
index 7c30958438377f78439e0cf8b1a0ae33a9bf439f..c8e83cf55a91c441adf6a909554262e2ebd2e8c4 100644 (file)
@@ -4,163 +4,7 @@ DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholi
 
 ## 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.
+For the full Quantum feature list, see [the parent README.md](/README.md).
 
 ## Building
 
diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile
new file mode 100644 (file)
index 0000000..2e542d6
--- /dev/null
@@ -0,0 +1,152 @@
+#----------------------------------------------------------------------------
+# 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 = atreus
+
+
+# Directory common source filess exist
+TOP_DIR = ../..
+TMK_DIR = ../../tmk_core
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# # project specific files
+SRC = atreus.c
+
+ifdef KEYMAP
+    SRC := keymaps/keymap_$(KEYMAP).c $(SRC)
+else
+    SRC := keymaps/keymap_default.c $(SRC)
+endif
+
+ifdef TEENSY2
+    OPT_DEFS += -DATREUS_TEENSY2
+    ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
+else
+    OPT_DEFS += -DATREUS_ASTAR
+    ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                            avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+endif
+
+CONFIG_H = config.h
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency in Hz. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+#
+#     This will be an integer division of F_USB below, as it is sourced by
+#     F_USB after it has run through any CPU prescalers. Note that this value
+#     does not *change* the processor frequency - it should merely be updated to
+#     reflect the processor speed set externally so that the code can use accurate
+#     software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+#     This will define a symbol, F_USB, in all source code files equal to the
+#     input clock frequency (before any prescaling is performed) in Hz. This value may
+#     differ from F_CPU if prescaling is used on the latter, and is required as the
+#     raw input clock is fed directly to the PLL sections of the AVR for high speed
+#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+#     at the end, this will be done automatically to create a 32-bit value in your
+#     source code.
+#
+#     If no clock division is performed on the input clock inside the AVR (via the
+#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+#   Teensy halfKay   512
+#   Teensy++ halfKay 1024
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+#   USBaspLoader     2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# 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 - not yet supported in LUFA
+# 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
+
+USB ?= /dev/cu.usbmodem1411
+
+upload: build
+       $(ATRUES_UPLOAD_COMMAND)
diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md
new file mode 100644 (file)
index 0000000..4db7ac1
--- /dev/null
@@ -0,0 +1,186 @@
+atreus 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
+
+## Atreus specific information
+
+These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands.
+
+If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use.
+
+## 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 file named `keymap_<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 **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/atreus/atreus.c b/keyboard/atreus/atreus.c
new file mode 100644 (file)
index 0000000..bfc8930
--- /dev/null
@@ -0,0 +1,29 @@
+#include "atreus.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/atreus/atreus.h b/keyboard/atreus/atreus.h
new file mode 100644 (file)
index 0000000..9dd7785
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef ATREUS_H
+#define ATREUS_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 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, \
+  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \
+  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \
+) \
+{ \
+       { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
+       { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
+       { k20, k21, k22, k23, k24, k35,   k25, k26, k27, k28, k29 }, \
+       { k2a, k30, k31, k32, k33, k34,   k36, k37, k38, k39, k3a } \
+}
+
+void * matrix_init_user(void);
+void * matrix_scan_user(void);
+
+#endif
diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h
new file mode 100644 (file)
index 0000000..ca0cd7e
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+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    Technomancy
+#define PRODUCT         Atreus
+#define DESCRIPTION     q.m.k. keyboard firmware for Atreus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 11
+
+// Change this to how you wired your keyboard
+// COLS: Left to right, ROWS: Top to bottom
+#if defined(ATREUS_ASTAR)
+  #define COLS (int []){ B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
+  #define ROWS (int []){ D0, D1, D3, D2 }
+#elif defined(ATREUS_TEENSY2)
+  #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0}
+  #define ROWS (int []){ D0, D1, D2, D3 }
+#endif
+
+/* 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/atreus/keymaps/keymap_default.c b/keyboard/atreus/keymaps/keymap_default.c
new file mode 100644 (file)
index 0000000..1c4280f
--- /dev/null
@@ -0,0 +1,51 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#include "atreus.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _RS 1
+#define _LW 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+  {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,   KC_TRNS,  KC_Y,    KC_U,    KC_I,    KC_O,    KC_P    },
+  {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,   KC_TRNS,  KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN },
+  {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_LALT,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH },
+  {KC_ESC, KC_TAB, KC_LGUI,  KC_LSFT, KC_BSPC,  KC_LCTL, KC_SPC,  MO(_RS), KC_MINS, KC_QUOT, KC_ENT  }
+},
+[_RS] = { /* [> RAISE <] */
+  {KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7,    KC_8,   KC_9, KC_ASTR},
+  {KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRV,  KC_TRNS, KC_PGDN, KC_4,    KC_5,   KC_6, KC_PLUS},
+  {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1,    KC_2,   KC_3, KC_BSLS},
+  {TG(_LW), KC_INS,  KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC,  KC_TRNS, KC_DOT, KC_0, KC_EQL}
+},
+[_LW] = { /* [> LOWER <] */
+  {KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_TRNS, KC_UP,   KC_F7,   KC_F8,   KC_F9,   KC_F10},
+  {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4,   KC_F5,   KC_F6,   KC_F11},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F12},
+  {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC,  DF(_QW), KC_TRNS, KC_TRNS, RESET}
+}};
+
+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/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/keymap_gerb.c
new file mode 100644 (file)
index 0000000..1ba3942
--- /dev/null
@@ -0,0 +1,66 @@
+// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks
+// with the Colemak and Dvorak support yet, but everything else works nicely.
+
+#include "atreus.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _L1 3
+#define _L2 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QW] = { /* Qwerty */
+    {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_NO,   KC_Y,    KC_U,    KC_I,    KC_O,    KC_P   },
+    {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_NO,   KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN},
+    {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_LALT, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH},
+    {KC_ESC,  KC_TAB,  KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC,  MO(_L1), KC_MINS, KC_QUOT, KC_ENT }
+  },
+  [_CM] = { /* Colemak */
+    {KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_NO,   KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN},
+    {KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_NO,   KC_H,    KC_N,    KC_E,    KC_I,    KC_O   },
+    {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_LALT, KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH},
+    {KC_ESC,  KC_TAB,  KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC,  MO(_L1), KC_MINS, KC_QUOT, KC_ENT }
+  },
+  [_DV] = { /* Dvorak */
+    {KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_NO,   KC_F,    KC_G,    KC_C,    KC_R,    KC_L   },
+    {KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_NO,   KC_D,    KC_H,    KC_T,    KC_N,    KC_S   },
+    {KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_LALT, KC_B,    KC_M,    KC_W,    KC_V,    KC_Z   },
+    {KC_ESC,  KC_TAB,  KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC,  MO(_L1), KC_MINS, KC_SLSH, KC_ENT }
+  },
+  [_L1] = { /* LAYER 1 */
+    {KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_NO,   KC_VOLU, KC_7,    KC_8,    KC_9,    KC_LBRC},
+    {KC_DEL,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO,   KC_VOLD, KC_4,    KC_5,    KC_6,    KC_RBRC},
+    {KC_GRV,  KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1,    KC_2,    KC_3,    KC_BSLS},
+    {TG(_L2), KC_APP,  KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC,  KC_TRNS, KC_DOT,  KC_0,    KC_EQL }
+  },
+  [_L2] = { /* LAYER 2 */
+    {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO,   DF(_QW), KC_F7,   KC_F8,   KC_F9,   KC_F10 },
+    {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO,   DF(_CM), KC_F6,   KC_F5,   KC_F6,   KC_F11 },
+    {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1,   KC_F2,   KC_F3,   KC_F12 },
+    {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC,  KC_TRNS, KC_TRNS, KC_TRNS, RESET  }
+  }
+};
+
+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;
+};
index 8066c7bb4b6113ae13ab4391d0cbf94deb25d1d4..5dfcca2c80321d43643dfea092b15a353e0fceed 100644 (file)
@@ -93,7 +93,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
 MOUSEKEY_ENABLE  = yes # Mouse keys(+4700)
 EXTRAKEY_ENABLE  = yes # Audio control and System control(+450)
-CONSOLE_ENABLE   = no # Console for debug(+400)
+# CONSOLE_ENABLE   = yes # Console for debug(+400)
 COMMAND_ENABLE   = yes # Commands for debug and configuration
 CUSTOM_MATRIX    = yes # Custom matrix file for the ErgoDox EZ
 SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
index c4804d483096c2f729f6518b0f30ba9f30d53553..2c7f3ec5492532dc7e99a32cbe733ec2c93a8118 100644 (file)
-:100000000C94AF060C94F3060C94F3060C94F306D0\r
-:100010000C94F3060C94F3060C94F3060C94F3067C\r
-:100020000C94F3060C94F3060C9406120C94D8125C\r
-:100030000C94F3060C94F3060C94F3060C94F3065C\r
-:100040000C94F3060C94B02B0C94F3060C94F3066A\r
-:100050000C94F3060C94B7210C94F3060C94F3065D\r
-:100060000C94F3060C94F3060C94F3060C94F3062C\r
-:100070000C94F3060C94F3060C94F3060C94F3061C\r
-:100080000C94F3060C94F3060C94F3060C94F3060C\r
-:100090000C94F3060C94F3060C94F3060C94F306FC\r
-:1000A0000C94F3060C94F3060C94F3063D135F13C3\r
-:1000B0004A145F134A14A113C4134A1419142C14BC\r
-:1000C0007A177A17A817A817EB172718281A281ACB\r
-:1000D0003F18281A36193619021A281A281A161A19\r
-:1000E0000000F0A12B0034003900E100E000000026\r
-:1000F0001E00140004001D00E200007F1F001A0013\r
-:1001000016001B000152280020000800070006000E\r
-:10011000E3002C00210015000900190064002D00E7\r
-:10012000220017000A000500000050002E004A00BF\r
-:1001300000000100000052002E004D0000000100F0\r
-:100140000000510023001C000B00110000004F00B4\r
-:10015000240018000D001000E6002D0025000C0002\r
-:100160000E003600E7002C00260012000F003700BA\r
-:10017000015228002700130033003800E600007702\r
-:100180002A002F003100E500E4000000010001001A\r
-:100190000100010001000000010001000100010058\r
-:1001A0000100010001000100010001000100010047\r
-:1001B000010001000100010001000100010013A77E\r
-:1001C00015A701000100F400010001000100010079\r
-:1001D0000000F20001000100000001000000F0003A\r
-:1001E00001000100000001000000F1000100010019\r
-:1001F000010001000000F300010042003E003A004F\r
-:100200000100F500010043003F003B000100010038\r
-:100210000100440040003C000100010001004500D5\r
-:1002200041003D000100010001000100010001004A\r
-:10023000010000000A002530313662003A20002516\r
-:10024000303258000A722F63203031323334353661\r
-:100250003738394142434445460A000A00253032C6\r
-:100260005800626F756E6365213A20006C65667494\r
-:1002700020736964652061747461636865640A0051\r
-:100280006C6566742073696465206E6F7420726596\r
-:1002900073706F6E64696E670A00747279696E6755\r
-:1002A00020746F207265736574206D637032333013\r
-:1002B00031380A000A44454255473A20656E61626A\r
-:1002C0006C65642E0A005B735D004B6579626F613B\r
-:1002D00072642073746172742E0A005B575D005B58\r
-:1002E000535D005B525D005B445D005B435D001647\r
-:1002F000034500720067006F0044006F0078002023\r
-:100300000045005A00000016034500720067006FA8\r
-:100310000044006F007800200045005A00000004EF\r
-:1003200003090409028D00050100A0FA0904000078\r
-:100330000103010100092111010001223F0007050D\r
-:10034000810308000A0904010001030102000921D8\r
-:1003500011010001224D000705820308000A09046B\r
-:1003600002000103000000092111010001223600F2\r
-:100370000705830308000A090403000203000000C4\r
-:10038000092111010001222000070584032000013A\r
-:100390000705040320000109040400010300000014\r
-:1003A0000921110100012239000705850310000110\r
-:1003B0001201100100000008EDFE07130100010208\r
-:1003C000000105010906A101050719E029E715004B\r
-:1003D0002501950875018102050819012905950572\r
-:1003E000750191029501750391010507190029779F\r
-:1003F00015002501957875018102C00631FF097449\r
-:10040000A1010975150025FF95207508810209765F\r
-:10041000150025FF952075089102C005010980A1EE\r
-:1004200001850216010026B7001A01002AB70075DF\r
-:100430001095018100C0050C0901A1018503160179\r
-:1004400000269C021A01002A9C0275109501810069\r
-:10045000C005010902A1010901A10005091901292D\r
-:10046000051500250195057501810295017503812A\r
-:10047000010501093009311581257F950275088133\r
-:100480000609381581257F950175088106050C0A36\r
-:1004900038021581257F950175088106C0C00501C8\r
-:1004A0000906A101050719E029E7150025019508AE\r
-:1004B0007501810295017508810105081901290559\r
-:1004C00095057501910295017503910105071900C4\r
-:1004D00029FF150025FF950675088100C00A002533\r
-:1004E00030325820006B6579626F6172645F7265AB\r
-:1004F000706F72743A20000A0025303258006B6524\r
-:1005000079626F6172645F7365745F6C65643A20D1\r
-:100510000064656C5F6B65795F6269743A20636142\r
-:100520006E27742064656C3A20253032580A0061C9\r
-:1005300064645F6B65795F6269743A2063616E27FA\r
-:1005400074206164643A20253032580A00646F6E6A\r
-:10055000652E0A00626F6F676D6167696320736360\r
-:10056000616E3A202E2E2E2000290A002575002FBC\r
-:10057000002575005D28002564002000256400200A\r
-:100580000025640020002564007C002530325800DE\r
-:100590006D6F7573656B6579205B62746E7C782016\r
-:1005A00079207620685D287265702F61636C293A26\r
-:1005B000205B006D6B5F776865656C5F74696D6566\r
-:1005C0005F746F5F6D6178203D2025640A006D6B5C\r
-:1005D0005F776865656C5F6D61785F737065656492\r
-:1005E000203D2025640A006D6B5F74696D655F7442\r
-:1005F0006F5F6D6178203D2025640A006D6B5F6D33\r
-:1006000061785F7370656564203D2025640A006D24\r
-:100610006B5F696E74657276616C203D2025640A9B\r
-:10062000006D6B5F64656C6179203D2025640A0074\r
-:100630006D6B5F776865656C5F74696D655F746F1E\r
-:100640005F6D6178203D2025640A006D6B5F7768DF\r
-:1006500065656C5F6D61785F7370656564203D20D2\r
-:1006600025640A006D6B5F74696D655F746F5F6D03\r
-:100670006178203D2025640A006D6B5F6D61785FB5\r
-:100680007370656564203D2025640A006D6B5F69A9\r
-:100690006E74657276616C203D2025640A006D6B76\r
-:1006A0005F64656C6179203D2025640A000A00259D\r
-:1006B0007500363A20776865656C5F74696D655FB3\r
-:1006C000746F5F6D61783A20000A00257500353A35\r
-:1006D00020776865656C5F6D61785F7370656564D0\r
-:1006E0003A20000A00257500343A2074696D655F70\r
-:1006F000746F5F6D61783A20000A00257500333A07\r
-:10070000206D61785F73706565643A20000A00258A\r
-:100710007500323A20696E74657276616C286D736B\r
-:10072000293A20000A00257500313A2064656C6181\r
-:1007300079282A31306D73293A20000A092D205674\r
-:10074000616C756573202D0A004D3E004D25643E99\r
-:1007500020003F007365742064656661756C740ADF\r
-:1007600000433E200077686572652064656C7461A3\r
-:100770003A20637572736F723D25642C207768652B\r
-:10078000656C3D25640A53656520687474703A2F62\r
-:100790002F656E2E77696B6970656469612E6F7263\r
-:1007A000672F77696B692F4D6F7573655F6B65791F\r
-:1007B000730A000A092D204D6F7573656B657920EA\r
-:1007C0002D0A4553432F713A09717569740A313AFC\r
-:1007D0000964656C6179282A31306D73290A323ACF\r
-:1007E00009696E74657276616C286D73290A333AF3\r
-:1007F000096D61785F73706565640A343A097469DC\r
-:100800006D655F746F5F6D61780A353A0977686569\r
-:10081000656C5F6D61785F73706565640A363A096F\r
-:10082000776865656C5F74696D655F746F5F6D6136\r
-:10083000780A0A703A097072696E742076616C7574\r
-:1008400065730A643A097365742064656661756C42\r
-:1008500074730A75703A092B310A646F776E3A091E\r
-:100860002D310A706775703A092B31300A70676450\r
-:100870006F776E3A092D31300A0A7370656564200E\r
-:100880003D2064656C7461202A206D61785F73700F\r
-:10089000656564202A2028726570656174202F20A8\r
-:1008A00074696D655F746F5F6D6178290A003F0040\r
-:1008B0004D3E2000433E20004C25640A000A092DCD\r
-:1008C00020436F6E736F6C65202D0A4553432F7163\r
-:1008D0003A09717569740A6D3A096D6F7573656BC4\r
-:1008E00065790A000A092D204D61676963202D0A88\r
-:1008F000643A0964656275670A783A0964656275E5\r
-:1009000067206D61747269780A6B3A096465627573\r
-:1009100067206B6579626F6172640A6D3A0964657C\r
-:10092000627567206D6F7573650A763A0976657230\r
-:1009300073696F6E0A733A097374617475730A632D\r
-:100940003A09636F6E736F6C65206D6F64650A3072\r
-:100950002D343A096C61796572302D342846313076\r
-:100960002D4634290A506175733A09626F6F746CB1\r
-:100970006F616465720A653A09656570726F6D0A28\r
-:100980006E3A094E4B524F0A7A3A09736C6565709C\r
-:10099000204C454420746573740A000A00257500D4\r
-:1009A0002E6E6B726F3A20000A002575002E737749\r
-:1009B00061705F6261636B736C6173685F626163D6\r
-:1009C0006B73706163653A20000A002575002E7311\r
-:1009D0007761705F67726176655F6573633A200067\r
-:1009E0000A002575002E6E6F5F6775693A20000A50\r
-:1009F000002575002E737761705F72616C745F7291\r
-:100A00006775693A20000A002575002E73776170BA\r
-:100A10005F6C616C745F6C6775693A20000A002531\r
-:100A200075002E636170736C6F636B5F746F5F63CF\r
-:100A30006F6E74726F6C3A20000A002575002E7379\r
-:100A40007761705F636F6E74726F6C5F63617073F8\r
-:100A50006C6F636B3A20000A0025303258006B65DA\r
-:100A6000796D61705F636F6E6669672E7261773A48\r
-:100A700020000A002575002E6D6F7573653A200001\r
-:100A80000A002575002E6B6579626F6172643A20E9\r
-:100A9000000A002575002E6D61747269783A200095\r
-:100AA0000A002575002E656E61626C653A20000AA9\r
-:100AB00000253032580064656275675F636F6E664B\r
-:100AC00069672E7261773A20000A00257500646517\r
-:100AD0006661756C745F6C617965723A20003F00E5\r
-:100AE0004E4B524F3A206F66660A004E4B524F3AB9\r
-:100AF000206F6E0A0074696D65725F636F756E7446\r
-:100B00003A202530346C580A006B6579626F617247\r
-:100B1000645F6E6B726F3A2025580A006B657962CC\r
-:100B20006F6172645F69646C653A2025580A006BD6\r
-:100B30006579626F6172645F70726F746F636F6CFE\r
-:100B40003A2025580A00686F73745F6B6579626F8D\r
-:100B50006172645F6C65647328293A2025580A0025\r
-:100B60000A092D20537461747573202D0A004743C0\r
-:100B7000433A20342E382E32204156522D4C4942D1\r
-:100B8000433A20312E382E30204156525F41524395\r
-:100B9000483A20617672350A004F5054494F4E53FF\r
-:100BA0003A204C55464120424F4F544D414749430E\r
-:100BB000204D4F5553454B45592045585452414BB4\r
-:100BC000455920434F4E534F4C4520434F4D4D41C7\r
-:100BD0004E44204E4B524F203531320A0042554987\r
-:100BE0004C443A20393232353435322D64697274CE\r
-:100BF00079202830353A34333A3031204A616E203A\r
-:100C000032302032303136290A005649443A2030F9\r
-:100C10007846454544284572676F446F7820455AA9\r
-:100C200029205049443A20307831333037284572F2\r
-:100C3000676F446F7820455A29205645523A203034\r
-:100C400078303030310A00444553433A20742E6DD9\r
-:100C50002E6B2E206B6579626F61726420666972FB\r
-:100C60006D7761726520666F72204572676F646F81\r
-:100C7000780A000A092D2056657273696F6E202D5F\r
-:100C80000A000A6D6F7573653A206F66660A000A7E\r
-:100C90006D6F7573653A206F6E0A000A6B65796235\r
-:100CA0006F6172643A206F66660A000A6B6579624A\r
-:100CB0006F6172643A206F6E0A000A6D6174726926\r
-:100CC000783A206F66660A000A6D61747269783A34\r
-:100CD000206F6E0A000A64656275673A206F6E0ABB\r
-:100CE000000A64656275673A206F66660A000A0A40\r
-:100CF000626F6F746C6F616465722E2E2E200043DC\r
-:100D00003E20006565636F6E6669673A0A00536C42\r
-:100D1000656570204C454420746573740A000000BA\r
-:100D2000000000000000000000010204060A0F1786\r
-:100D3000202C3A4A5D71879DB3C7DAE9F5FCFFFCC8\r
-:100D4000F5E9DAC7B39D87715D4A3A2C20170F0A7F\r
-:100D50000604020100000000000000000000112451\r
-:100D60001FBECFEFDAE0DEBFCDBF04B603FE24C066\r
-:100D70008091F9019091FA01A091FB01B091FC01E1\r
-:100D80008730904BA740B04BB9F41092F901109204\r
-:100D9000FA011092FB011092FC0114BE84B7877F08\r
-:100DA00084BF88E10FB6F8948093600010926000D1\r
-:100DB0000FBEE0E0FFE3099511E0A0E0B1E0ECEF49\r
-:100DC000FAE502C005900D92AA33B107D9F711E0F8\r
-:100DD000AAE3B1E001C01D92A93FB107E1F70E946B\r
-:100DE000400F0C947C2D0C940000FF93EF93E09146\r
-:100DF0003A01F0913B01309709F00995EF91FF918D\r
-:100E00000895FC018591803011F0EFDFFBCF08954C\r
-:100E1000FF27E0E230E247FF0CC0419597FF09C091\r
-:100E2000EDE26095709580959095611D711D811D15\r
-:100E3000911D27FF02C0219530E350E2AA27660FDB\r
-:100E4000771F881F991FAA1FA41710F0A41B639572\r
-:100E50005A95A9F7AA3008F0A95FA05DAF93F39562\r
-:100E6000611571058105910541F7ED3211F4EF939C\r
-:100E7000F395F21718F43F93F395FBCF8F91B5DFFD\r
-:100E8000FA95E1F70895E991F9918591803021F083\r
-:100E9000853219F0AADFF9CF089520E0E894559142\r
-:100EA0005532C1F3503311F4689455915A3348F4D4\r
-:100EB000505390F3220F022E220F220F200D250FE8\r
-:100EC000F4CF0EF4219589919991533619F3533744\r
-:100ED00029F1533559F1BC0188279927E8945C36EC\r
-:100EE00021F48991999168945591543639F446EFDB\r
-:100EF0007EF077FF0DC08FEF9FEF0AC055374AE0B5\r
-:100F000039F0583540E121F0523642E009F00895B9\r
-:100F1000FF93EF937DDFEF91FF91B7CFFF93EF93B7\r
-:100F2000FC0181918030B9F360DFFBCFFF93EF9339\r
-:100F300068DFF1CFDF93CF93CDB7DEB72596A3DF80\r
-:100F4000CF91DF91089561110BC0FC01828188234C\r
-:100F500021F085EE0E940E1603C085EE0E94D61683\r
-:100F600080E090E0089508956091BC017091BD010A\r
-:100F70008091BE019091BF010E94BB2056985E985F\r
-:100F800025982D9826982E9827982F98813011F41F\r
-:100F9000259A2D9A56985E98089584EB97E0892BB0\r
-:100FA00011F00E94B40780E090E0089556985E9892\r
-:100FB00025982D9826982E9827982F988FEF90E0B7\r
-:100FC000909389008093880090938B0080938A008F\r
-:100FD00090938D0080938C00259A2D9A2FEF80E7B7\r
-:100FE00092E0215080409040E1F700C00000269A36\r
-:100FF0002E9A2FEF80E792E0215080409040E1F759\r
-:1010000000C00000279A2F9A2FEF80E792E021502E\r
-:1010100080409040E1F700C0000025982D982FEF08\r
-:1010200080E792E0215080409040E1F700C000004E\r
-:1010300026982E982FEF80E792E021508040904034\r
-:10104000E1F700C0000027982F9856985E982598E1\r
-:101050002D9826982E9827982F98089589EA80939E\r
-:10106000800089E08093810024982C983F988AB171\r
-:101070008F748AB96E98479A8BB1806B8BB9769AC8\r
-:101080000E94D60783EB97E0892B11F00E94B307EB\r
-:1010900080E090E0089580E28093000180913C011F\r
-:1010A00081110EC00E949A0881E080933C012FEFCD\r
-:1010B00083ED90E3215080409040E1F700C00000B4\r
-:1010C00080E40E94A0088093000181112EC00E943C\r
-:1010D000CA0880930001811128C00E94CA08809329\r
-:1010E0000001811122C08FE30E94CA088093000191\r
-:1010F00081111BC00E94C20880E40E94A008809356\r
-:101100000001811112C08CE00E94CA088093000186\r
-:1011100081110BC00E94CA0880930001811105C093\r
-:101120008FE30E94CA08809300010E94C208809148\r
-:10113000000108951092B9008AE08093B8000895E4\r
-:1011400094EA9093BC009091BC0097FFFCCF9091E3\r
-:10115000B900987F983021F0903111F081E0089526\r
-:101160008093BB0084E88093BC008091BC0087FF23\r
-:10117000FCCF8091B900887F883111F0803471F7FD\r
-:1011800080E0089584E98093BC008091BC0084FDD8\r
-:10119000FCCF08958093BB0084E88093BC008091CD\r
-:1011A000BC0087FFFCCF9091B900987F81E0983216\r
-:1011B00009F480E0089584E88093BC008091BC002D\r
-:1011C00087FFFCCF8091BB000895809100018111C1\r
-:1011D00015C080E40E94A0088093000181110CC01A\r
-:1011E00082E10E94CA0880930001811105C08FEF3F\r
-:1011F0000E94CA08809300010E94C20884B1807FC7\r
-:1012000084B985B1807F85B98AB1837F8AB98BB172\r
-:10121000837F8BB93E98469808950E944B0880932F\r
-:1012200000010E94E50880B38C7080BB81B3836F9E\r
-:1012300081BBECE4F1E0AEE3B1E011921D9281E0FC\r
-:10124000EA35F807D1F78EE298E0892B11F00C947B\r
-:101250002E0808959F92AF92BF92CF92DF92EF92A5\r
-:10126000FF920F931F93CF93DF9380910001882308\r
-:10127000E1F080913D018F5F80933D01811115C0A8\r
-:101280008AE992E00E9401070E944B0880930001C6\r
-:10129000882329F080E892E00E94010706C08CE6CE\r
-:1012A00092E00E9401070E94D6070EE311E0C0E021\r
-:1012B000D0E0BB24B39482E0A82ECC24C394D12CDC\r
-:1012C0002DE5E22E22E0F22EC73000F580910001DC\r
-:1012D000811162C080E40E94A00880930001811106\r
-:1012E00012C082E10E94CA088093000181110BC0E4\r
-:1012F000C6010C2E01C0880F0A94EAF780950E945F\r
-:10130000CA08809300010E94C20846C0CA30A1F0FA\r
-:1013100028F4C83059F0C93061F005C0CC3089F0EC\r
-:1013200070F0CD3089F0209A289810C0219A299821\r
-:101330000DC0229A2A980AC0239A2B9807C0529A65\r
-:1013400001C0539A5B9802C03E9A4698E0EAEA953B\r
-:10135000F1F78FB1799985C092E081708B25892B47\r
-:101360007C9B02C090E001C094E0892B7D9B02C071\r
-:1013700090E001C098E0892B7E9B02C090E001C004\r
-:1013800090E1892B9FB19095991F9927991F92956C\r
-:10139000990F907E892B10C080910001811176C039\r
-:1013A00080E40E94A00880930001882309F45BC0B8\r
-:1013B000912C0E94C208892DF8019081981739F16B\r
-:1013C000808380910101882301F18091D70180FF02\r
-:1013D00004C082E692E00E9401078091D70180FF5D\r
-:1013E0000CC0809101011F928F93FF92EF920E9497\r
-:1013F0009A070F900F900F900F908091D70180FF68\r
-:1014000004C08BE592E00E940107A09201010E94B6\r
-:10141000E50821960F5F1F4FCE30D10509F054CF5C\r
-:10142000809101018823B1F08150809301018823CC\r
-:1014300039F08FE99FE00197F1F700C000000AC082\r
-:10144000ACE4B1E0EEE3F1E081918D9391E0EC3416\r
-:10145000F907D1F78DEC97E0892BD1F00E94CD07E9\r
-:1014600017C090E07ACF83E10E94CA088093000100\r
-:1014700081119ECF81E40E94A00880930001811118\r
-:1014800097CF0E94DB08982E909493CF80E094CF62\r
-:1014900081E0DF91CF911F910F91FF90EF90DF904E\r
-:1014A000CF90BF90AF909F900895E82FF0E0E45B5D\r
-:1014B000FE4F80810895CF92DF92EF92FF920F93BB\r
-:1014C0001F93CF93DF9384E492E00E9401073CE4F2\r
-:1014D000E32E31E0F32EC0E0D0E04FE3C42E42E033\r
-:1014E000D42E06E312E0DF93CF93DF92CF920E94D7\r
-:1014F0009A078CE392E00E940107F70181917F0136\r
-:1015000090E00E9420219F938F931F930F930E943E\r
-:101510009A0784E392E00E94010721968DB79EB757\r
-:1015200008960FB6F8949EBF0FBE8DBFCE30D10582\r
-:10153000D1F6DF91CF911F910F91FF90EF90DF9047\r
-:10154000CF9008958B3B910578F4883A910540F54A\r
-:10155000853A9105D0F48430910508F0B1C081300E\r
-:10156000910509F4ADC06BC0803E910508F467C0D9\r
-:10157000883E910508F4A4C09C01205F3109203108\r
-:10158000310508F05CC090650895853A910509F42D\r
-:1015900059C0863A910509F458C083E890E408954B\r
-:1015A000883A910509F454C0893A910509F453C069\r
-:1015B0008A3A910509F452C08B3A910509F451C059\r
-:1015C0008C3A910509F450C08D3A910509F44FC049\r
-:1015D000803B910509F44EC08E3A910509F44DC047\r
-:1015E0008F3A910509F44CC0813B910509F44BC039\r
-:1015F000823B910509F44AC0833B910509F449C037\r
-:10160000843B910509F448C0853B910509F447C026\r
-:10161000863B910509F446C0873B910509F445C016\r
-:10162000883B910509F444C0893B910509F443C006\r
-:101630008A3B910509F042C08AE296E4089580E071\r
-:1016400090E0089581E890E4089582E890E4089598\r
-:1016500082EE94E4089589EE94E408958AEE94E489\r
-:10166000089585EB94E4089586EB94E4089587EB60\r
-:1016700094E408958CEC94E408958DEC94E408953A\r
-:1016800083E895E408958AE895E4089582E995E46D\r
-:10169000089584E995E4089581E296E4089583E24B\r
-:1016A00096E4089584E296E4089585E296E4089528\r
-:1016B00086E296E4089587E296E4089580E094E453\r
-:1016C0000895089596E0799FF001112494E5899F8B\r
-:1016D000E00DF11D1124E60FF11DEE0FFF1FEC517F\r
-:1016E000FF4F859194910895880F991F805A9040DB\r
-:1016F000FC01859194910895880F991F80529F4F06\r
-:10170000FC0185919491089526E0729FF0011124C7\r
-:1017100044E5849FE00DF11D1124E60FF11DEE0F4D\r
-:10172000FF1FEC51FF4F25913491C9019A95811506\r
-:101730009F4110F4C9010895C9019052811590414B\r
-:1017400028F4C9019F700E947C0B0895C901905331\r
-:101750008115904120F4C9019927906C08952115B5\r
-:1017600080E5380769F40E94491A9FEF24E34CE0B2\r
-:10177000915020404040E1F700C000000C94DC2173\r
-:10178000213080E5380751F484EB92E00E94010794\r
-:101790008091D70181608093D7010895C901905548\r
-:1017A0008115904108F050C0832F99278F70992799\r
-:1017B00081309105D9F4A9014370552702C0880FE3\r
-:1017C000991F4A95E2F79C68A90164E0440F551FF0\r
-:1017D0006A95E1F744275370842B952B73E0220F11\r
-:1017E000331F7A95E1F7207633271DC082309105AB\r
-:1017F00029F4922F8827816F906A0895833091058C\r
-:10180000A9F4A9014370552781E090E002C0880F38\r
-:10181000991F4A95E2F79C6843E0220F331F4A95CF\r
-:10182000E1F7207E3770822B932B08950497F1F413\r
-:10183000A9014370552781E090E002C0880F991FED\r
-:101840004A95E2F79A68E8CFC9019057811590410F\r
-:1018500020F4C9019F7090620895C90190588115C4\r
-:10186000904120F4C9019F70906A0895203E31058F\r
-:10187000E0F4203C310558F52133310509F470C0FE\r
-:1018800048F42932310509F464C02A32310509F4DB\r
-:101890006EC074C029333105F1F022383105D9F01A\r
-:1018A0002533310509F44EC069C0233E310589F165\r
-:1018B00038F4203E3105C1F0223E3105E1F05EC032\r
-:1018C000263E310569F1273E3105A9F157C0C9010E\r
-:1018D0000E94740B08958091EA0180FD02C081FF8F\r
-:1018E0004DC080EE90E04BC08091EA0180FFF9CFBF\r
-:1018F00089E390E044C08091EA0182FF0EC08091AC\r
-:10190000EA0184FF03C080E090E039C083EE90E0FC\r
-:1019100036C08091EA0182FFF2CF82EE90E02FC0C4\r
-:101920008091EA0183FF0BC08091EA0184FDEBCF37\r
-:1019300087EE90E024C08091EA0183FFF5CF86EE28\r
-:1019400090E01DC08091EA0185FF07C089E290E028\r
-:1019500016C08091EA0185FFF9CF85E390E00FC0C2\r
-:101960008091EA0186FF07C08AE290E008C080917A\r
-:10197000EA0186FFF9CF81E390E001C0C9010E942E\r
-:10198000A20A0895089580916D0108959FB7F89473\r
-:1019900010925C019FBF9091F001943009F058C003\r
-:1019A0009091E9009F702091EC0020FF02C020E898\r
-:1019B00001C020E0292B94E09093E9009091EB0086\r
-:1019C00090FF43C09091EE0097FF3FC090915A0165\r
-:1019D000992321F09091E80095FF37C010925A01A9\r
-:1019E00096E03091E80035FD15C03091F0013430BB\r
-:1019F00061F53091EB0035FD28C0915021F481E074\r
-:101A000080935A0122C0EFE9FFE03197F1F700C05F\r
-:101A10000000E7CF8093F1008091E80085FD0AC0C7\r
-:101A20008091E80080FFFCCF8091E8008E77809362\r
-:101A3000E80006C08FB7F89491E090935C018FBFE7\r
-:101A40002F702093E90080E008952F702093E90023\r
-:101A50008FEF0895CF93DF9300D01F92CDB7DEB7FD\r
-:101A60002091F001243019F523E029839B838A8398\r
-:101A70002093E9008FEF9091E800815095FD06C01A\r
-:101A800095ED9A95F1F700008111F5CF8091E8006E\r
-:101A900085FF0DC040E050E063E070E0CE010196AC\r
-:101AA0000E94F90F8091E8008E778093E8000F90F4\r
-:101AB0000F900F90DF91CF910895CF93DF9300D0D7\r
-:101AC0001F92CDB7DEB72091F001243021F522E03E\r
-:101AD00029839B838A8383E08093E9008FEF909131\r
-:101AE000E800815095FD06C095ED9A95F1F700004C\r
-:101AF0008111F5CF8091E80085FF0DC040E050E0F6\r
-:101B000063E070E0CE0101960E94F90F8091E80039\r
-:101B10008E778093E8000F900F900F90DF91CF9118\r
-:101B200008952091F0012430F1F422E02093E9009F\r
-:101B30002FEF3091E800215035FD06C035ED3A9584\r
-:101B4000F1F700002111F5CF2091E80025FF0BC02F\r
-:101B500040E050E065E070E00E94F90F8091E800FD\r
-:101B60008E778093E8000895CF93DF93EC01809106\r
-:101B7000F001843009F047C080910C018823E1F026\r
-:101B800080910D018823C1F085E08093E9008FEFFB\r
-:101B90009091E800815095FD06C095E19A95F1F786\r
-:101BA00000008111F5CF8091E80085FF2CC040E056\r
-:101BB00050E060E170E017C081E08093E9008FEFB2\r
-:101BC0009091E800815095FD06C095ED9A95F1F74A\r
-:101BD00000008111F5CF8091E80085FF14C040E03E\r
-:101BE00050E068E070E0CE010E94F90F8091E800BB\r
-:101BF0008E778093E80080E1FE01ADE5B1E00190D1\r
-:101C00000D928A95E1F7DF91CF9108958BEE92E0E6\r
-:101C10000E9401078091EF01811109C00E948B1180\r
-:101C20000E94E8118091E20084608093E2000895B0\r
-:101C300087EE92E00E9401071092EF01089583EE73\r
-:101C400092E00C9401078FED92E00E9401070C9442\r
-:101C50009D2B8BED92E00E9401070E9477210E944C\r
-:101C6000A32B0E9484140C94C20C80915B018F5FA3\r
-:101C700080935B0162E30E94112D911135C0109297\r
-:101C80005B0180915C01882379F18091F0018430BF\r
-:101C900049F58091E9008F709091EC0090FF02C0AF\r
-:101CA00090E801C090E0982B84E08093E900809157\r
-:101CB000EB0080FF14C08091EE0087FF10C0809180\r
-:101CC000E80085FF03C01092F100F9CF8091E80091\r
-:101CD00080FF05C08091E8008E778093E8009F70B8\r
-:101CE0009093E90010925C01089542E061EC81E07C\r
-:101CF0000E94051142E061EC82E00E94051142E081\r
-:101D000061EC83E00E94051142E261EC84E00E94F4\r
-:101D1000051142E161EC85E00C9405118091F2011E\r
-:101D2000833009F455C030F4813071F0823009F409\r
-:101D30008EC008958A3009F47AC08B3009F460C0EF\r
-:101D4000893009F09CC020C08091F101813A09F0EE\r
-:101D500096C08091E800877F8093E8008091F5012C\r
-:101D60009091F601892B21F060E080E090E003C0C3\r
-:101D700060E18DE591E070E00E9442108091E80002\r
-:101D80008B778093E80008958091F101813209F00A\r
-:101D900076C08091F5019091F601009719F00497B3\r
-:101DA00009F06DC08091E800877F8093E800809102\r
-:101DB000E80082FD05C08091F0018111F8CF5FC07D\r
-:101DC0008091F10080936D018091E8008B7753C082\r
-:101DD0008091F101813A09F052C08091F501909112\r
-:101DE000F601892B09F04BC08091E800877F809332\r
-:101DF000E8008091E80080FFFCCF80910C0136C0A4\r
-:101E00008091F1018132D9F58091F5019091F6012F\r
-:101E1000892BA9F58091E800877F8093E8000E94D4\r
-:101E20003A118091F30180930C010C94491A80912E\r
-:101E3000F101813221F58091E800877F8093E800ED\r
-:101E40000E943A118091F40180936E01089580916F\r
-:101E5000F101813AA1F48091E800877F8093E80046\r
-:101E60008091E80080FFFCCF80916E018093F100AB\r
-:101E70008091E8008E778093E8000C943A110895E1\r
-:101E800084B7877F84BF88E10FB6F89480936000A1\r
-:101E9000109260000FBE90E080E80FB6F894809337\r
-:101EA0006100909361000FBE0E940D150E948B117E\r
-:101EB0000E94E8118091E20084608093E20086EC49\r
-:101EC0009CE00E94B62078940E9462140E940F1534\r
-:101ED00082E091E00E947F140E948B2B8AEC92E0BA\r
-:101EE0000E9401078091F001853089F486EC92E030\r
-:101EF0000E9401070E943A218091EE01882391F30C\r
-:101F00000E946221882371F30E94E30FEBCF0E94AD\r
-:101F10003D15E8CF292F332723303105A9F06CF484\r
-:101F20002130310509F442C02230310509F043C0A7\r
-:101F30008DE890E023E233E042C021323105C9F060\r
-:101F40002232310519F137C099278130910541F0CE\r
-:101F50008230910541F0892B71F5EFE1F3E005C086\r
-:101F6000E7E0F3E002C0EFEEF2E0849190E09F0141\r
-:101F700026C0653000F5E62FF0E0EE0FFF1FEB5DA9\r
-:101F8000FE4F2081318189E090E019C0653098F4DE\r
-:101F9000E62FF0E0DF01AA0FBB1FA55EBE4F2D911B\r
-:101FA0003C91EA5EFE4F808190E009C082E190E0C2\r
-:101FB00020EB33E004C080E090E020E030E0FA0164\r
-:101FC00031832083089580E189BD82E189BD09B410\r
-:101FD00000FEFDCF8091D8008F7D8093D800809146\r
-:101FE000E00082608093E0008091E00081FDFCCF02\r
-:101FF0000895CF92DF92EF92FF920F931F93CF93AA\r
-:10200000DF937C018B01EA010E945B11811131C0D9\r
-:10201000209731F088819981081B190BE80EF91E71\r
-:10202000C12CD12C0115110519F18091E80085FD15\r
-:1020300014C08091E8008E778093E800209741F0EB\r
-:10204000888199818C0D9D1D9983888385E011C0BD\r
-:102050000E945B11882331F30CC0F70181917F014D\r
-:102060008093F10001501109FFEFCF1ADF0ADACF98\r
-:1020700080E0DF91CF911F910F91FF90EF90DF9063\r
-:10208000CF9008952091F7013091F8012617370776\r
-:1020900048F06115710539F42091E8002E772093FE\r
-:1020A000E80001C0B901FC0120E061157105B9F13A\r
-:1020B0008091F001882309F440C0853009F43FC0C5\r
-:1020C0008091E80083FD3DC08091E80082FF06C05A\r
-:1020D0008091E80082FF26C080E008958091E800AA\r
-:1020E00080FFE3CF2091F3008091F20090E0922BEB\r
-:1020F0006115710551F08830910538F421912093D4\r
-:10210000F100615071090196F3CF21E0089709F0C1\r
-:1021100020E08091E8008E778093E800C6CF2111FF\r
-:10212000C7CFD6CF8091F001882339F0853039F0C0\r
-:102130008091E80083FFCCCF04C082E0089583E063\r
-:10214000089581E008952091F7013091F801261754\r
-:10215000370748F06115710539F42091E8002E77B2\r
-:102160002093E80001C0B901FC0120E06115710570\r
-:10217000C1F18091F001882309F441C0853009F450\r
-:1021800040C08091E80083FD3EC08091E80082FF5E\r
-:1021900006C08091E80082FF27C080E0089580910A\r
-:1021A000E80080FFE3CF2091F3008091F20090E0FF\r
-:1021B000922B6115710559F08830910540F42491F6\r
-:1021C0002093F1003196615071090196F2CF21E020\r
-:1021D000089709F020E08091E8008E778093E8006E\r
-:1021E000C5CF2111C6CFD5CF8091F001882339F01A\r
-:1021F000853039F08091E80083FFCBCF04C082E0C6\r
-:10220000089583E0089581E00895982F973058F558\r
-:102210009093E900981739F07091EC002091ED004F\r
-:102220005091F00003C0242F762F50E021FF19C0F9\r
-:102230003091EB003E7F3093EB003091ED003D7F1D\r
-:102240003093ED003091EB0031603093EB007093F0\r
-:10225000EC002093ED005093F0002091EE0027FF5A\r
-:1022600007C09F5FD3CF8F708093E90081E008950E\r
-:1022700080E008958091F10187FD05C08091E8001C\r
-:1022800080FF0EC012C08091E80082FD05C08091E1\r
-:10229000F0018111F8CF08958091E8008B7708C094\r
-:1022A0008091F0018111EACF08958091E8008E7746\r
-:1022B0008093E80008958091E4009091E50045E660\r
-:1022C0002091EC0020FF21C02091E80020FD21C0DA\r
-:1022D0002091F001222389F0253089F02091EB0034\r
-:1022E00025FD0FC02091E4003091E5002817390743\r
-:1022F00039F3415041F0C901E3CF82E0089583E012\r
-:10230000089581E0089584E008952091E80022FF77\r
-:10231000DFCF80E008950E94F9110E940112E0EEE3\r
-:10232000F0E0808181608083E8EDF0E080818F774C\r
-:10233000808319BCA7EDB0E08C918E7F8C93808157\r
-:102340008F7E80831092EF0108950F931F93CF9398\r
-:10235000DF930E94F9110E940112C8EDD0E088813C\r
-:102360008F77888388818068888388818F7D888340\r
-:1023700019BC1092F0011092EC011092EE01109233\r
-:10238000ED0100EE10E0F80180818B7F8083888171\r
-:102390008160888342E060E080E00E940511E1EE08\r
-:1023A000F0E080818E7F8083E2EEF0E080818160CA\r
-:1023B0008083808188608083F80180818E7F808324\r
-:1023C000888180618883DF91CF911F910F9108955B\r
-:1023D000E8EDF0E080818F7E8083E7EDF0E08081A2\r
-:1023E0008160808384E082BF81E08093EF010C9460\r
-:1023F000A511E8EDF0E080818E7F80831092E200ED\r
-:1024000008951092DA001092E10008951F920F9241\r
-:102410000FB60F9211242F933F934F935F936F93B7\r
-:102420007F938F939F93AF93BF93EF93FF9380918D\r
-:10243000E10082FF0BC08091E20082FF07C0809123\r
-:10244000E1008B7F8093E1000E94350E8091DA00DD\r
-:1024500080FF1FC08091D80080FF1BC08091DA00F0\r
-:102460008E7F8093DA008091D90080FF0DC080E1DB\r
-:1024700089BD82E189BD09B400FEFDCF81E0809372\r
-:10248000F0010E94060E05C019BC1092F0010E94D6\r
-:10249000180E8091E10080FF19C08091E20080FF5A\r
-:1024A00015C08091E2008E7F8093E2008091E2006F\r
-:1024B00080618093E2008091D80080628093D80090\r
-:1024C00019BC85E08093F0010E94230E8091E10009\r
-:1024D00084FF30C08091E20084FF2CC080E189BD80\r
-:1024E00082E189BD09B400FEFDCF8091D8008F7DC7\r
-:1024F0008093D8008091E1008F7E8093E1008091ED\r
-:10250000E2008F7E8093E2008091E2008160809300\r
-:10251000E2008091EC01882311F084E007C08091F3\r
-:10252000E30087FF02C083E001C081E08093F001F7\r
-:102530000E94290E8091E10083FF29C08091E20072\r
-:1025400083FF25C08091E100877F8093E10082E0D6\r
-:102550008093F0011092EC018091E1008E7F8093D6\r
-:10256000E1008091E2008E7F8093E2008091E200A2\r
-:1025700080618093E20042E060E080E00E9405110B\r
-:102580008091F00088608093F0000E941F0EFF9100\r
-:10259000EF91BF91AF919F918F917F916F915F91DB\r
-:1025A0004F913F912F910F900FBE0F901F90189554\r
-:1025B0001F920F920FB60F9211242F933F934F93B8\r
-:1025C0005F936F937F938F939F93AF93BF93CF93BB\r
-:1025D000EF93FF93C091E900CF708091EC001092CF\r
-:1025E000E9008091F000877F8093F00078940E944A\r
-:1025F00014131092E9008091F00088608093F0003D\r
-:10260000C093E900FF91EF91CF91BF91AF919F915E\r
-:102610008F917F916F915F914F913F912F910F908B\r
-:102620000FBE0F901F9018951F93CF93DF93CDB7D8\r
-:10263000DEB7AA970FB6F894DEBF0FBECDBFE1EFAD\r
-:10264000F1E08091F100819321E0E93FF207C9F7C1\r
-:102650000E948E0E8091E80083FF1CC12091F10141\r
-:102660003091F201832F90E08A30910508F012C179\r
-:10267000FC01EA5AFF4F0C94312D203881F02238AA\r
-:1026800009F008C18091F5018F708093E900809175\r
-:10269000EB0085FB882780F91092E90006C0809145\r
-:1026A000ED019091EE01911182609091E800977F89\r
-:1026B0009093E8008093F1001092F100C5C0822F42\r
-:1026C0008D7F09F0E7C0222319F0223061F0E2C0CB\r
-:1026D0008091F301813009F0DDC0333009F080E0F2\r
-:1026E0008093EE0128C08091F301811124C02091D4\r
-:1026F000F5012F7009F4CEC02093E9008091EB0022\r
-:1027000080FF19C08091EB00333011F4806211C05A\r
-:1027100080618093EB0081E090E0022E01C0880F81\r
-:102720000A94EAF78093EA001092EA008091EB00A5\r
-:1027300088608093EB001092E9008091E800877F29\r
-:1027400086C02111A7C01091F3011F778091E3008B\r
-:102750008078812B8093E3008091E800877F8093CD\r
-:10276000E8000E943A118091E80080FFFCCF809140\r
-:10277000E30080688093E300112311F083E001C03F\r
-:1027800082E08093F00186C02058223008F082C099\r
-:102790008091F3019091F4018C3D23E0920779F54B\r
-:1027A00083E08A838AE289834FB7F894DE01139627\r
-:1027B00020E03EE051E2E32FF0E050935700E49137\r
-:1027C00020FF03C0E295EF703F5FEF708E2F90E027\r
-:1027D000EA3010F0C79601C0C0968D939D932F5F8D\r
-:1027E000243149F74FBF8091E800877F8093E8004C\r
-:1027F0006AE270E0CE0101960E94421014C0AE0160\r
-:102800004F5F5F4F6091F5010E948A0F009709F4B6\r
-:1028100041C02091E800277F2093E800BC01898116\r
-:102820009A810E94A3108091E8008B778093E80042\r
-:1028300031C0203879F58091E800877F8093E800E7\r
-:102840008091EC018093F1008091E8008E77809375\r
-:10285000E8000E943A111EC021111CC09091F301A2\r
-:102860009230C0F48091E800877F8093E8009093D5\r
-:10287000EC010E943A118091EC01811104C0809119\r
-:10288000E30087FF02C084E001C081E08093F00193\r
-:102890000E94750E8091E80083FF0AC08091E800D5\r
-:1028A000877F8093E8008091EB0080628093EB004B\r
-:1028B000AA960FB6F894DEBF0FBECDBFDF91CF91C1\r
-:1028C0001F910895CF938091F0018823B1F08091FA\r
-:1028D000E9008F709091EC0090FF02C090E801C079\r
-:1028E00090E0C92FC82B1092E9008091E80083FD89\r
-:1028F0000E941413CF70C093E900CF910895909374\r
-:102900007401809373010895E0917301F091740153\r
-:10291000309721F00190F081E02D099480E0089536\r
-:10292000FF920F931F93CF93DF938C01E09173017C\r
-:10293000F0917401309799F10280F381E02D0995AF\r
-:102940008091D70182FF2BC080FF04C085EE94E008\r
-:102950000E940107E80180E1F82E0FED14E080915C\r
-:10296000D70180FF0BC088811F928F931F930F9315\r
-:102970000E949A070F900F900F900F90FA94219653\r
-:10298000F110EDCF8091D70180FF09C08DED94E06B\r
-:10299000DF91CF911F910F91FF900C940107DF9170\r
-:1029A000CF911F910F91FF900895E0917301F091E5\r
-:1029B0007401309721F00480F581E02D0994089589\r
-:1029C00020917101309172018217930771F09093F9\r
-:1029D000720180937101E0917301F091740130975D\r
-:1029E00021F00680F781E02D0994089520916F0170\r
-:1029F000309170018217930771F09093700180936A\r
-:102A00006F01E0917301F0917401309721F000841F\r
-:102A1000F185E02D0994089508950C940C150E94F9\r
-:102A200079210E940D090C943F22CF93C82F8091E9\r
-:102A3000D70182FF1EC080FF04C08EEF94E00E9489\r
-:102A400001078091D70180FF0CC01F92CF9329EF1F\r
-:102A500034E03F932F930E949A070F900F900F90AE\r
-:102A60000F908091D70180FF04C087EF94E00E940F\r
-:102A700001078C2FCF910C94C20CCF92DF92EF9272\r
-:102A8000FF920F931F93CF93DF93CDB7DEB72B97B2\r
-:102A90000FB6F894DEBF0FBECDBF0E942A0936E7FD\r
-:102AA000E32E31E0F32E00E010E0C02E802F0E94D4\r
-:102AB000550AF701D1907F01D826B1F40F5F1F4F5F\r
-:102AC0000E30110591F78FEF89838A831B820E9454\r
-:102AD00082218160782F9D838C8349815A816B810B\r
-:102AE0008D810E94E01541C09091D70191FF04C0F3\r
-:102AF0008B870E945B0A8B8520E030E04D2D50E0F3\r
-:102B0000922FBA01022E02C0759567950A94E2F7DA\r
-:102B100060FF25C02E83CF82EE24E394F12C02C007\r
-:102B2000EE0CFF1C9A95E2F790E08E219F2121E0A8\r
-:102B3000892B09F420E028870E9482218160782F68\r
-:102B40009A8789874E815F8168858A850E94E01512\r
-:102B5000F801EA58FE4F80818E25808306C02F5FE2\r
-:102B60003F4F2630310561F6A9CF0E94AD25109167\r
-:102B700075010E9484141817A1F00E948414809398\r
-:102B800075012B960FB6F894DEBF0FBECDBFDF9157\r
-:102B9000CF911F910F91FF90EF90DF90CF900C9409\r
-:102BA00015152B960FB6F894DEBF0FBECDBFDF9183\r
-:102BB000CF911F910F91FF90EF90DF90CF900895EC\r
-:102BC000CF93DF93CDB7DEB72B970FB6F894DEBF68\r
-:102BD0000FBECDBF4F83588769877A878B87DE0109\r
-:102BE000119686E0FD0111928A95E9F785E0FE01D4\r
-:102BF000379601900D928A95E1F749815A816B8150\r
-:102C00007C818D819E810E94151D2B960FB6F894B4\r
-:102C1000DEBF0FBECDBFDF91CF910895CF93C82FF8\r
-:102C2000882309F4C1C0823859F40E94841481FDBC\r
-:102C3000BBC089E30E94B41F0E94902089E30CC0AE\r
-:102C4000833879F40E94841480FDAEC083E50E942D\r
-:102C5000B41F0E94902083E50E940520CF910C9420\r
-:102C60009020843859F40E94841482FD9DC087E42A\r
-:102C70000E94B41F0E94902087E4EECF8CEF8C0F4F\r
-:102C8000813A48F48C2F0E94362A81118DC08C2FF6\r
-:102C90000E94B41FE3CF80E28C0F883048F4C770E5\r
-:102CA00081E001C0880FCA95EAF70E945720D6CF6D\r
-:102CB0008BE58C0F833078F4C53A29F0C63A31F4AD\r
-:102CC00082E890E005C081E890E002C083E890E0EF\r
-:102CD000CF910C94E01488E58C0F833108F064C028\r
-:102CE000C83A39F1C93A41F1CA3A49F1CB3A51F1FE\r
-:102CF000CC3A59F1CD3A61F1C03B69F1CE3A71F16C\r
-:102D0000CF3A79F1C13B81F1C23B89F1C33B91F1EB\r
-:102D1000C43B99F1C53BA1F1C63BA9F1C73BB1F159\r
-:102D2000C83BB9F1C93BC1F1CA3BC9F58AE292E09F\r
-:102D300038C082EE90E035C089EE90E032C08AEE75\r
-:102D400090E02FC085EB90E02CC086EB90E029C08E\r
-:102D500087EB90E026C08CEC90E023C08DEC90E0F7\r
-:102D600020C083E891E01DC08AE891E01AC082E9A2\r
-:102D700091E017C084E991E014C081E292E011C0B3\r
-:102D800083E292E00EC084E292E00BC085E292E022\r
-:102D900008C086E292E005C087E292E002C080E0CF\r
-:102DA00090E0CF910C94F614CF910895882309F404\r
-:102DB0004BC0823859F40E94841481FF45C089E3D6\r
-:102DC0000E94B41F0E94902089E30CC0833871F4E4\r
-:102DD0000E94841480FF38C083E50E94B41F0E94C3\r
-:102DE000902083E50E9405200C949020843859F4AB\r
-:102DF0000E94841482FF28C087E40E94B41F0E94AE\r
-:102E0000902087E4EFCF9CEF980F913A58F390E22F\r
-:102E1000980F983050F4877091E001C0990F8A950F\r
-:102E2000EAF7892F0E945D20DFCF9BE5980F933052\r
-:102E300020F480E090E00C94E014885A833120F470\r
-:102E400080E090E00C94F6140895882321F00E940D\r
-:102E500057200C9490200895882321F00E945D2033\r
-:102E60000C9490200895CF92DF92EF92FF920F93EF\r
-:102E70001F93CF93DF93CDB7DEB728970FB6F894A3\r
-:102E8000DEBF0FBECDBF8C0185E0F801DE011196DB\r
-:102E900001900D928A95E1F7F80140813181F2802D\r
-:102EA000258122952F7083819481892B31F03F3FBA\r
-:102EB00031F481E04F3F19F403C081E001C080E0AC\r
-:102EC00080FDC6C249833A8389819A812F830E94FB\r
-:102ED000721F9E8388870E94711F0E94441E4E812C\r
-:102EE000E42FE295EF70F0E0E05AFF4F2F81688504\r
-:102EF0000C94312D842F807F142F1F70882311F0A4\r
-:102F00001295107FFF2059F0112309F456C2812F2A\r
-:102F100068870E9467200E94902068854EC2862F95\r
-:102F20000E94D616112309F493C2812F0E946D20AE\r
-:102F300028960FB6F894DEBF0FBECDBFDF91CF91BC\r
-:102F40001F910F91FF90EF90DF90CF900C94902005\r
-:102F5000342F307F842F8F70303211F08295807F34\r
-:102F6000662319F0613019F12CC0FF20B1F0222343\r
-:102F700009F494C1213009F091C128960FB6F89454\r
-:102F8000DEBF0FBECDBFDF91CF911F910F91FF909C\r
-:102F9000EF90DF90CF900C947720222319F021300E\r
-:102FA00009F456C28E830E947A208E818AC1FF2046\r
-:102FB00021F0263008F04CC271C1253008F048C21B\r
-:102FC00080C1FF2021F0222309F468C1F6C1222329\r
-:102FD00009F477C106C2242F26952695237030E088\r
-:102FE0002115310521F021303105C9F031C2FF2012\r
-:102FF00021F0862F942F937002C080E090E02896F5\r
-:103000000FB6F894DEBF0FBECDBFDF91CF911F91F9\r
-:103010000F91FF90EF90DF90CF900C94E014FF2081\r
-:1030200021F0862F942F937002C080E090E02896C4\r
-:103030000FB6F894DEBF0FBECDBFDF91CF911F91C9\r
-:103040000F91FF90EF90DF90CF900C94F614862FA5\r
-:10305000FF2019F00E94332402C00E949B2428966E\r
-:103060000FB6F894DEBF0FBECDBFDF91CF911F9199\r
-:103070000F91FF90EF90DF90CF900C942025842F3C\r
-:10308000837009F076C0F110E3C1262F22952695B2\r
-:103090002770220F220F862F8F70C82ED12CE12C83\r
-:1030A000F12C022E04C0CC0CDD1CEE1CFF1C0A947B\r
-:1030B000D2F764FF10C06FE070E080E090E004C0E1\r
-:1030C000660F771F881F991F2A95D2F76095709514\r
-:1030D0008095909503C060E070E0CB01242F269589\r
-:1030E00026952370422F50E042305105D1F04330F5\r
-:1030F000510559F16C297D298E299F2941305105AF\r
-:1031000041F128960FB6F894DEBF0FBECDBFDF9118\r
-:10311000CF911F910F91FF90EF90DF90CF900C9483\r
-:10312000691E6C297D298E299F2928960FB6F8944F\r
-:10313000DEBF0FBECDBFDF91CF911F910F91FF90EA\r
-:10314000EF90DF90CF900C94831E0E94691EC70100\r
-:10315000B60128960FB6F894DEBF0FBECDBFDF9143\r
-:10316000CF911F910F91FF90EF90DF90CF900C9433\r
-:103170004F1EFF2019F0842F817001C0869588238F\r
-:1031800009F466C1262F229526952770220F220F5B\r
-:10319000862F8F70C82ED12CE12CF12C022E04C06A\r
-:1031A000CC0CDD1CEE1CFF1C0A94D2F764FF10C08F\r
-:1031B0006FE070E080E090E004C0660F771F881F2A\r
-:1031C000991F2A95D2F7609570958095909503C0C8\r
-:1031D00060E070E0CB01242F269526952370422FC6\r
-:1031E00050E042305105D1F04330510559F16C297E\r
-:1031F0007D298E299F294130510541F128960FB62E\r
-:10320000F894DEBF0FBECDBFDF91CF911F910F911C\r
-:10321000FF90EF90DF90CF900C943D1F6C297D299B\r
-:103220008E299F2928960FB6F894DEBF0FBECDBF1A\r
-:10323000DF91CF911F910F91FF90EF90DF90CF9092\r
-:103240000C94571F0E943D1FC701B60128960FB668\r
-:10325000F894DEBF0FBECDBFDF91CF911F910F91CC\r
-:10326000FF90EF90DF90CF900C94231F603FC9F147\r
-:1032700018F4603E50F49CC0623F09F461C008F449\r
-:103280004BC0633F09F470C093C0162F1F70842F8A\r
-:103290008F71FF2099F00E94BC1E812F28960FB6D7\r
-:1032A000F894DEBF0FBECDBFDF91CF911F910F917C\r
-:1032B000FF90EF90DF90CF900C9425170E94DD1EB9\r
-:1032C000812F28960FB6F894DEBF0FBECDBFDF91D9\r
-:1032D000CF911F910F91FF90EF90DF90CF900C94C2\r
-:1032E0002C17FF20A9F0253008F0B2C0842F8F7171\r
-:1032F00028960FB6F894DEBF0FBECDBFDF91CF91F9\r
-:103300001F910F91FF90EF90DF90CF900C94021FD0\r
-:10331000263008F09DC0EACFFF20A1F0842F8F71E6\r
-:1033200028960FB6F894DEBF0FBECDBFDF91CF91C8\r
-:103330001F910F91FF90EF90DF90CF900C94BC1EE7\r
-:10334000FF2061F3842F8F7128960FB6F894DEBFAB\r
-:103350000FBECDBFDF91CF911F910F91FF90EF90E6\r
-:10336000DF90CF900C94DD1EFF2091F0842F8F71A1\r
-:1033700028960FB6F894DEBF0FBECDBFDF91CF9178\r
-:103380001F910F91FF90EF90DF90CF900C94A71EAC\r
-:1033900028960FB6F894DEBF0FBECDBFDF91CF9158\r
-:1033A0001F910F91FF90EF90DF90CF900C949D1E96\r
-:1033B000FF20A1F0222309F4B1CF862F28960FB663\r
-:1033C000F894DEBF0FBECDBFDF91CF911F910F915B\r
-:1033D000FF90EF90DF90CF900C940E16222309F40B\r
-:1033E000B1CF862F28960FB6F894DEBF0FBECDBFA3\r
-:1033F000DF91CF911F910F91FF90EF90DF90CF90D1\r
-:103400000C94D6164F70C8010E94A30728960FB6D9\r
-:10341000F894DEBF0FBECDBFDF91CF911F910F910A\r
-:10342000FF90EF90DF90CF900C94C21D4F70C801B9\r
-:1034300028960FB6F894DEBF0FBECDBFDF91CF91B7\r
-:103440001F910F91FF90EF90DF90CF900C94610B44\r
-:1034500028960FB6F894DEBF0FBECDBFDF91CF9197\r
-:103460001F910F91FF90EF90DF90CF9008950E94F1\r
-:1034700074200E9449200E9490200E944E260E94A3\r
-:10348000202580E090E00E94E01480E090E00C9421\r
-:10349000F6140E9464200C94371A0E94721F292F80\r
-:1034A00022952F7030E02C3031054CF42A30310554\r
-:1034B0006CF4225031092230310590F407C02C30D1\r
-:1034C000310551F02F30310539F00AC0803E10F03F\r
-:1034D000803F31F481E0089593FB882780F90895B7\r
-:1034E00080E00895CF93DF9300D000D01F92CDB736\r
-:1034F000DEB70F900F900F900F900F90DF91CF914C\r
-:103500000895CF93DF9300D000D000D0CDB7DEB7C1\r
-:1035100026960FB6F894DEBF0FBECDBFDF91CF91D8\r
-:1035200008951F93CF93DF93C091840116E080919B\r
-:103530008501C81799F0D0E01C9FF0011D9FF00D88\r
-:103540001124EA57FE4F4081518162817381848149\r
-:1035500095810E94811A2196C770E9CFDF91CF91A2\r
-:103560001F9108954091B6015091B7016091B80143\r
-:103570007091B9018091BA019091BB010C94811AAC\r
-:10358000CF938091BB0182958F7009F05FC08091CD\r
-:10359000B801882309F45AC020918401A0918501C3\r
-:1035A0006091B6017091B7018091B9019091BA0113\r
-:1035B00031E06F3F09F030E0B32FC6E02A1709F47D\r
-:1035C00045C0009721F07F3F21F44B2F03C041E01D\r
-:1035D00001C040E030E040FD35C0C29FF001C39F14\r
-:1035E000F00D1124EA57FE4F418174132BC0408126\r
-:1035F000641328C04281411125C04381548148177A\r
-:10360000590710F441505109481B590B483C5105CA\r
-:10361000C8F48091BB018F7080618093BB0186E00C\r
-:10362000829FF001839FF00D1124E557FE4F8081AA\r
-:103630008F708061808386EB91E00E943317CF9179\r
-:103640000C94911A2F5F3F4F2770B8CFCF910895F8\r
-:10365000CF92DF92EF92FF920F931F93CF93DF935E\r
-:10366000CDB7DEB762970FB6F894DEBF0FBECDBF01\r
-:103670008C0185E0F801DE011D9601900D928A957E\r
-:10368000E1F7D8014C9111965C91119712966C91CB\r
-:1036900012971396ED90FC9014977091B601E091FB\r
-:1036A000B7012091B9013091BA012115310531F0EE\r
-:1036B000EF3F31F481E07F3F19F403C081E001C0A6\r
-:1036C00080E0B82FB170CB2E80FD6CC1D090B801D6\r
-:1036D000DD2009F4F5C0F091BB01E216F30638F0E5\r
-:1036E000C701821B930B883C910548F09BC0209535\r
-:1036F00030952E0D3F1D283C310508F093C08F2FCB\r
-:10370000807F09F052C0E51314C0741312C0D62E86\r
-:1037100061110FC0FF70F061F093BB010E94B21AFB\r
-:1037200086EB91E00E9433178091BB01F8018583FD\r
-:103730006CC1EF2831F05F3F31F481E04F3F19F465\r
-:1037400003C081E001C080E080FD03C081E08627E6\r
-:1037500001C080E0F82FF170FF2E80FF1CC0809127\r
-:1037600084012091850136E0821709F428C190E098\r
-:10377000389FF001399FF00D1124EA57FE4F7181F7\r
-:10378000571306C07081471303C07281671303C0CB\r
-:1037900001968770E9CFD62E662309F436C1809151\r
-:1037A000BB0181608093BB0153C0E51308C0741353\r
-:1037B00006C0611104C0D8011596FC93AEC04D87B8\r
-:1037C0005E878D859E856A8B0E944D1A6A89882343\r
-:1037D00029F1D62E662311F12091BB01822F82950B\r
-:1037E0008F7090E002970CF460C08091B6019091C8\r
-:1037F000B70198878F831986FB86EA862C87CE01CE\r
-:10380000079651C0E51731F14D875E878D859E85FE\r
-:103810006A8B0E944D1A6A8981112EC0C8010E94CC\r
-:103820003317A4C08F2F807F69F77E2DF98AE88A2D\r
-:1038300089890E94721A86EB91E00E943317E6EBA9\r
-:10384000F1E086E0DF011D928A95E9F70E94B21A45\r
-:10385000D12CDBC07413D8CF6111D6CFD801159607\r
-:10386000FC93C8010E943317E6EBF1E086E0DF012C\r
-:103870001D928A95E9F7C9C0D62E662379F2209168\r
-:10388000BB01822F82958F7090E0029774F0809137\r
-:10389000B6019091B7019A8389831B82FD82EC82E5\r
-:1038A0002E83CE0101960E94331786E0F801A6EB25\r
-:1038B000B1E001900D928A95E1F70E94C01A6FC0A5\r
-:1038C000E216F30628F0C701821B930B9C0104C08B\r
-:1038D000209530952E0D3F1D283C310508F052C033\r
-:1038E000D62E662309F49ACFE5132CC074132AC090\r
-:1038F0008091BB0180FD1DC0982F92959F70C9F0EB\r
-:10390000D80115968C9315979F3039F09F5F92954B\r
-:10391000907F8F70892B15968C93C8010E94331766\r
-:1039200086E0F801A6EBB1E001900D928A95E1F7EF\r
-:1039300036C086E0F801A6EBB1E001900D928A95C1\r
-:10394000E1F763C04D875E878D859E850E944D1A85\r
-:10395000882379F086E0F801A6EBB1E001900D92A2\r
-:103960008A95E1F70E94C01A0E94B21ADD24D3940E\r
-:103970004CC08091BB0181608093BB01C8010E9453\r
-:10398000331743C07E2DF98AE88A89890E94721A0A\r
-:10399000E6EBF1E086E0DF011D928A95E9F70E94EF\r
-:1039A000B21A33C0662309F439CF4D875E878D85FF\r
-:1039B0009E850E944D1A882309F430CFCBCF4D87C6\r
-:1039C0005E878D859E850E94721F292F22952F70FC\r
-:1039D00030E0223031052CF49F7041F0811106C097\r
-:1039E0000CC0243031052CF49F7049F4805E88307F\r
-:1039F00020F0C8010E943317CF2CDC2C06C0D80160\r
-:103A000015969C91907F91F7F8CF8D2D62960FB609\r
-:103A1000F894DEBF0FBECDBFDF91CF911F910F9104\r
-:103A2000FF90EF90DF90CF9008951F93CF93DF9397\r
-:103A3000CDB7DEB72C970FB6F894DEBF0FBECDBF63\r
-:103A40004F83588769877A878B879C87CE01079633\r
-:103A50000E94281B8823C1F02F8138858A859B8589\r
-:103A6000892B31F03F3F11F080E003C02F3FE1F799\r
-:103A700081E0811147C04F81588569857A858B85A2\r
-:103A80009C850E94811A3EC086E0FE013796DE01C9\r
-:103A9000119601900D928A95E1F7FF81E8854A859C\r
-:103AA0005B854115510531F0EF3F31F481E0FF3F77\r
-:103AB00019F403C081E001C080E080FD23C02091A3\r
-:103AC000850130E0C90101968770992760918401D2\r
-:103AD00070E086179707F1F1F983EA835D834C83E1\r
-:103AE00096E0929FD001939FB00D1124AA57BE4F2C\r
-:103AF000FE01319601900D929A95E1F78093850130\r
-:103B00000E94911A16E08091840190918501891795\r
-:103B100079F1189FC00111248A579E4F0E94281BDB\r
-:103B2000882331F1E09184011E9FF0011124EA57AE\r
-:103B3000FE4F4081518162817381848195810E9411\r
-:103B4000811A8091840190E0019687709927809373\r
-:103B50008401D9CF0E94491A1092850110928401E4\r
-:103B6000E6EBF1E086E0DF011D928A95E9F7CACF26\r
-:103B70002C960FB6F894DEBF0FBECDBFDF91CF916C\r
-:103B80001F910895EF92FF920F931F93CF93DF93AE\r
-:103B90009C01009709F471C0F12CEE24E394E90133\r
-:103BA0002196F9018491843740F4843008F056C09E\r
-:103BB000813081F0823021F160C0853709F449C03D\r
-:103BC000C0F19CE7980F903708F057C08F770E949C\r
-:103BD000D61646C089010E5F1F4FFE01849190E208\r
-:103BE000980F983050F48770FE2D01C0FF0F8A9512\r
-:103BF000EAF78F2F0E94672015C00E940E1614C08E\r
-:103C000089010E5F1F4FFE01849190E2980F98305A\r
-:103C100068F48770FE2D01C0FF0F8A95EAF78F2F99\r
-:103C20000E946D200E949020E8011AC00E94D616C2\r
-:103C3000FBCF2E5F3F4FFE01C491CC2341F08FE9B3\r
-:103C40009FE00197F1F700C00000C150F6CFE901F5\r
-:103C500007C0FE01F490E901229602C00E940E16F0\r
-:103C60008F2D882341F0EFE9FFE03197F1F700C095\r
-:103C700000008150F6CF9E0192CFDF91CF911F912E\r
-:103C80000F91FF90EF90089508956093C001709395\r
-:103C9000C1018093C2019093C3010C94371A0F9312\r
-:103CA0001F930091C0011091C1012091C201309178\r
-:103CB000C301062B172B282B392B0093C00110931F\r
-:103CC000C1012093C2013093C3011F910F910C9445\r
-:103CD000371A0F931F930091C0011091C1012091D9\r
-:103CE000C2013091C30106231723282339230093EF\r
-:103CF000C0011093C1012093C2013093C3011F91F1\r
-:103D00000F910C94371A0F931F930091C0011091DB\r
-:103D1000C1012091C2013091C3010627172728272E\r
-:103D200039270093C0011093C1012093C201309341\r
-:103D3000C3011F910F910C94371A1092BC0110927D\r
-:103D4000BD011092BE011092BF010C94371A41E0E0\r
-:103D500050E060E070E004C0440F551F661F771FFD\r
-:103D60008A95D2F74093BC015093BD016093BE0188\r
-:103D70007093BF010C94371A41E050E060E070E0AE\r
-:103D800004C0440F551F661F771F8A95D2F7809194\r
-:103D9000BC019091BD01A091BE01B091BF01842BE7\r
-:103DA000952BA62BB72B8093BC019093BD01A093BC\r
-:103DB000BE01B093BF010C94371A41E050E060E0BF\r
-:103DC00070E004C0440F551F661F771F8A95D2F715\r
-:103DD00040955095609570958091BC019091BD0182\r
-:103DE000A091BE01B091BF0184239523A623B723E0\r
-:103DF0008093BC019093BD01A093BE01B093BF011D\r
-:103E00000C94371A41E050E060E070E004C0440FC9\r
-:103E1000551F661F771F8A95D2F78091BC0190913C\r
-:103E2000BD01A091BE01B091BF0184279527A627AF\r
-:103E3000B7278093BC019093BD01A093BE01B093BE\r
-:103E4000BF010C94371A0F931F930091BC0110917E\r
-:103E5000BD012091BE013091BF01062B172B282BED\r
-:103E6000392B0093BC011093BD012093BE01309308\r
-:103E7000BF011F910F910C94371A0F931F9300915C\r
-:103E8000BC011091BD012091BE013091BF010623FC\r
-:103E90001723282339230093BC011093BD012093DD\r
-:103EA000BE013093BF011F910F910C94371A0F93ED\r
-:103EB0001F930091BC011091BD012091BE01309172\r
-:103EC000BF0106271727282739270093BC01109325\r
-:103ED000BD012093BE013093BF011F910F910C943F\r
-:103EE000371A0895CF92DF92EF92FF920F931F93AC\r
-:103EF000CF93DF93EC01C090C001D090C101E0905E\r
-:103F0000C201F090C3018091BC019091BD01A091CC\r
-:103F1000BE01B091BF01C82AD92AEA2AFB2A0FE1C3\r
-:103F200010E0B701A601002E04C07695679557955D\r
-:103F300047950A94D2F740FF07C0BE01802F0E9428\r
-:103F4000840B8130910539F40150110950F7BE01FD\r
-:103F500080E00E94840BDF91CF911F910F91FF9021\r
-:103F6000EF90DF90CF90089590910C01992361F12B\r
-:103F700090910D01992341F1982F969596959695DC\r
-:103F80009F3088F4E0910E01F0910F01E90FF11DCF\r
-:103F9000877021E030E001C0220F8A95EAF7818125\r
-:103FA000822B818308959091D70190FF2DC01F929D\r
-:103FB0008F938FE295E09F938F930E949A070F90C3\r
-:103FC0000F900F900F90089540910E0150910F01A6\r
-:103FD00020E030E09FEFFA01E20FF31F62816817E3\r
-:103FE00099F09F3F19F4611101C0922F2F5F3F4F4D\r
-:103FF0002E30310581F79F3F39F0FA01E90FF11DAD\r
-:1040000097FDFA9582830895089590910C01992364\r
-:1040100069F190910D01992349F1982F9695969504\r
-:1040200096959F3090F4E0910E01F0910F01E90F09\r
-:10403000F11D877021E030E001C0220F8A95EAF778\r
-:10404000209581812823218308959091D70190FFA5\r
-:104050001FC01F928F9381E195E09F938F930E94E1\r
-:104060009A070F900F900F900F90089540910E01B6\r
-:1040700050910F0120E030E0FA01E20FF31F92812E\r
-:10408000981301C012822F5F3F4F2E303105A1F7E8\r
-:10409000089581E090E0E0910E01F0910F01E80FAA\r
-:1040A000F91F1082019680319105A9F7089590912A\r
-:1040B000D601982B9093D601089580959091D601C2\r
-:1040C00098239093D60108951092D6010895909167\r
-:1040D000D501982B9093D501089580959091D501A5\r
-:1040E00098239093D50108951092D5010895809357\r
-:1040F000C40108951092C401089540910E01509199\r
-:104100000F0120E030E080E0FA01E20FF31F91811F\r
-:1041100091118F5F2F5F3F4F2F303105A9F7089521\r
-:10412000E0910E01F0910F018091D6018083E09122\r
-:104130000E01F0910F0180819091D501892B808330\r
-:104140009091C401992361F0E0910E01F0910F016B\r
-:104150008081892B80830E947D2081111092C4016F\r
-:1041600080910E0190910F010C94901490933B015B\r
-:1041700080933A010895CF92DF92EF92FF920F93CE\r
-:104180001F936C01EE24FF24C114D104E104F10457\r
-:1041900021F46B017C0180E001C080E133272F2DE9\r
-:1041A0001E2D0D2D011511052105310519F0885F12\r
-:1041B0006801790197018601A4E036952795179546\r
-:1041C0000795AA95D1F7011511052105310519F0BB\r
-:1041D0008C5F6801790197018601F2E03695279599\r
-:1041E00017950795FA95D1F70115110521053105A8\r
-:1041F00019F08E5F68017901B701A6017695679580\r
-:1042000057954795452B462B472B09F08F5F1F91FC\r
-:104210000F91FF90EF90DF90CF9008958295982FA7\r
-:104220009C7C96959695837344E0849F900111241D\r
-:10423000922B892F8A7A86959575990F892B0895E7\r
-:104240001F93CF93DF931F92CDB7DEB799830E9460\r
-:104250000E21182F9981892F0E940E21212F30E0E5\r
-:10426000322F2227A901482BCA010F90DF91CF914D\r
-:104270001F9108958091F001843009F11092D801C6\r
-:1042800020E488E190E00FB6F894A8958093600050\r
-:104290000FBE2093600083B7817F846083BF83B7A4\r
-:1042A000816083BF7894889583B78E7F83BF88E1D0\r
-:1042B0000FB6F89480936000109260000FBE0895CE\r
-:1042C00008950895CF930E9460210E942A090E94B8\r
-:1042D0006121C0E08C2F0E94550A811105C0CF5F7B\r
-:1042E000CE30C1F780E001C081E0CF9108950C94F9\r
-:1042F000491A82E084BD93E095BD9AEF97BD809303\r
-:104300006E0008952FB7F8948091D9019091DA0149\r
-:10431000A091DB01B091DC012FBF0895CF92DF9215\r
-:10432000EF92FF920F931F932FB7F8944091D9010A\r
-:104330005091DA016091DB017091DC012FBF6A01BD\r
-:104340007B01EE24FF248C0120E030E0C016D10672\r
-:10435000E206F30610F441505109481B590BCA01FB\r
-:104360001F910F91FF90EF90DF90CF9008951F92D3\r
-:104370000F920FB60F9211248F939F93AF93BF9319\r
-:104380008091D9019091DA01A091DB01B091DC011B\r
-:104390000196A11DB11D8093D9019093DA01A093DC\r
-:1043A000DB01B093DC01BF91AF919F918F910F9092\r
-:1043B0000FBE0F901F9018950E948B11F8942FEF4D\r
-:1043C00087EA91E6215080409040E1F700C000006C\r
-:1043D00087E090EBDC018093F9019093FA01A093C0\r
-:1043E000FB01B093FC012CE088E190E00FB6F8945B\r
-:1043F000A895809360000FBE20936000FFCFEF92DE\r
-:10440000FF920F931F93CF93DF93E82EF12C8F2D04\r
-:104410000E94550AC0E0D0E0082F10E098010C2E51\r
-:1044200002C0359527950A94E2F720FD05C0219634\r
-:10443000C630D10599F709C06C2F7F2D80E00E940E\r
-:10444000620BE812F4CF81E005C0F3948EE0F8121D\r
-:10445000DECF80E0DF91CF911F910F91FF90EF9021\r
-:104460000895CF93C82F8CE20E94FF21882321F06A\r
-:104470008C2FCF910C94FF2180E0CF910895CF93A2\r
-:104480000E948C23811102C00E94722384E595E072\r
-:104490000E940107C5E6C15049F00E942A098FE336\r
-:1044A0009CE90197F1F700C00000F5CF8DE495E09D\r
-:1044B0000E94010789E20E943122811111C18AE222\r
-:1044C0000E94312281110E94722385E00E943122D4\r
-:1044D00081110E94DC210E9497238093D70187E0FD\r
-:1044E0000E943122882399F18BE10E943122882396\r
-:1044F00051F09091D70191FB882780F921E0822724\r
-:1045000080FB91F922C08EE00E943122882351F075\r
-:104510009091D70192FB882780F921E0822780FBC8\r
-:1045200092F913C080E10E9431229091D701882333\r
-:1045300041F093FB882780F921E0822780FB93F9E3\r
-:1045400004C0892F809580FB90F99093D7018091CA\r
-:10455000D7010E949B230E94A9238093EA0180EE49\r
-:104560000E943122882341F08091EA01982F909592\r
-:1045700090FB80F98093EA0189E30E94312288232D\r
-:1045800059F09091EA0191FB882780F921E0822778\r
-:1045900080FB91F99093EA0182EE0E9431228823F8\r
-:1045A00059F09091EA0192FB882780F921E0822757\r
-:1045B00080FB92F99093EA0186EE0E9431228823D3\r
-:1045C00059F09091EA0193FB882780F921E0822736\r
-:1045D00080FB93F99093EA0183EE0E9431228823B5\r
-:1045E00059F09091EA0194FB882780F921E0822715\r
-:1045F00080FB94F99093EA0185E30E94312288239D\r
-:1046000059F09091EA0195FB882780F921E08227F3\r
-:1046100080FB95F99093EA0181E30E94312288237F\r
-:1046200059F09091EA0196FB882780F921E08227D2\r
-:1046300080FB96F99093EA0181E10E943122882360\r
-:1046400059F09091EA0197FB882780F921E08227B1\r
-:1046500080FB97F99093EA018091EA010E94AD23D3\r
-:104660008091EA0187FB882780F980930D0187E21A\r
-:104670000E943122C82F8EE10E9431228111C26036\r
-:104680008FE10E9431228111C46080E20E943122B8\r
-:104690008111C86081E20E9431228111C06182E2F1\r
-:1046A0000E9431228111C06283E20E943122811175\r
-:1046B000C06484E20E943122882311F0C06802C0E5\r
-:1046C000CC2329F08C2F0E94A4236C2F03C00E94BE\r
-:1046D000A023682F70E080E090E0CF910C94451EFD\r
-:1046E000CF9108956DEE7EEF80E090E00E94672DFF\r
-:1046F00060E082E090E00E94592D60E083E090E06D\r
-:104700000E94592D60E084E090E00E94592D60E005\r
-:1047100085E090E00C94592D80E090E00E94532DAC\r
-:1047200021E08D3E9E4F09F020E0822F089582E027\r
-:1047300090E00C944B2D682F82E090E00C94592D62\r
-:1047400083E090E00C944B2D682F83E090E00C9474\r
-:10475000592D84E090E00C944B2D682F84E090E07C\r
-:104760000C94592D8091DF0180FF0BC060911301E3\r
-:1047700085E0689FB00111247595679575956795DB\r
-:104780002AC081FF09C06091130185E0689FB001D4\r
-:104790001124759567951FC082FF07C060911301B2\r
-:1047A00085E0689FB001112416C04091E0014423C8\r
-:1047B000C9F060911201461788F72091130185E036\r
-:1047C000289F90011124429FC001439F900D112406\r
-:1047D00070E00E941D2D6038710540F4611571056F\r
-:1047E00039F002C065E070E0862F08958FE70895E4\r
-:1047F00081E008958091DF0180FF08C06091110180\r
-:1048000070E0759567957595679521C081FF06C025\r
-:104810006091110170E07595679519C082FF04C021\r
-:104820006091110170E010C08091E0018823C1F017\r
-:10483000609110018617A0F790911101989FC00117\r
-:10484000112470E00E941D2D6038710528F4611557\r
-:10485000710521F0862F08958FE7089581E008956E\r
-:1048600061E070E0F4CF803F21F40E94B223819593\r
-:1048700004C0813F29F40E94B2238093E30108958C\r
-:10488000823F21F40E94B223819504C0833F29F422\r
-:104890000E94B2238093E2010895893F19F40E9497\r
-:1048A000FA2305C08A3F31F40E94FA238195809350\r
-:1048B000E40108958B3F21F40E94FA23819504C0FE\r
-:1048C0008C3F29F40E94FA238093E5010895843FE8\r
-:1048D00021F48091E101816017C0853F21F480912E\r
-:1048E000E101826011C0863F21F48091E101846082\r
-:1048F0000BC0873F21F48091E101886005C0883FAB\r
-:1049000031F48091E10180618093E10108958D3F50\r
-:1049100021F48091DF0181600BC08E3F21F48091F2\r
-:10492000DF01826005C08F3F29F48091DF01846040\r
-:104930008093DF010895803F39F48091E30187FF80\r
-:104940006CC01092E30169C0813F29F48091E301BA\r
-:104950001816BCF362C09091E201823F29F497FFE0\r
-:104960005CC01092E20159C0833F19F41916CCF3D0\r
-:1049700054C0893F41F48091E40118160CF04DC0F9\r
-:104980001092E4014AC08A3F29F48091E40187FF34\r
-:1049900044C0F6CF8B3F39F48091E50187FF3DC0DD\r
-:1049A0001092E5013AC08C3F29F48091E501181678\r
-:1049B000BCF333C0843F21F48091E1018E7F17C0A6\r
-:1049C000853F21F48091E1018D7F11C0863F21F464\r
-:1049D0008091E1018B7F0BC0873F21F48091E10141\r
-:1049E000877F05C0883F31F48091E1018F7E8093FD\r
-:1049F000E10113C08D3F21F48091DF018E7F0BC058\r
-:104A00008E3F21F48091DF018D7F05C08F3F29F417\r
-:104A10008091DF018B7F8093DF018091E201811122\r
-:104A20000EC08091E30181110AC08091E4018111DF\r
-:104A300006C08091E501811102C01092E001089545\r
-:104A40008091D70183FF7EC080E995E00E94010735\r
-:104A50008091E1011F928F938BE895E09F938F9354\r
-:104A60000E949A0789E895E00E9401072091E201DF\r
-:104A7000822F992787FD90959F932F9386E895E045\r
-:104A80009F938F930E949A0784E895E00E94010704\r
-:104A90002091E301822F992787FD90959F932F9373\r
-:104AA00081E895E09F938F930E949A078FE795E0A6\r
-:104AB0000E9401072091E401822F992787FD90959C\r
-:104AC0009F932F938CE795E09F938F930E949A0773\r
-:104AD0008AE795E00E9401072091E501822F99273E\r
-:104AE00087FD90959F932F9387E795E09F938F93F2\r
-:104AF0000E949A0784E795E00E9401078091E001F7\r
-:104B00001F928F9381E795E09F938F930E949A075E\r
-:104B10008FE695E00E9401078091DF011F928F933D\r
-:104B20008CE695E09F938F930E949A0789E695E023\r
-:104B30000E9401078DB79EB74C960FB6F8949EBFA2\r
-:104B40000FBE8DBF81EE91E00E94D5140E9482219C\r
-:104B50009093DE018093DD0108951F93CF93DF933F\r
-:104B60008091DD019091DE010E948E214091E00153\r
-:104B7000442321F02091140130E006C0209115015A\r
-:104B80005AE0259F900111248217930708F482C0F0\r
-:104B90008091E2011091E301D091E401C091E5011F\r
-:104BA000811107C0111105C0D11103C0CC2309F434\r
-:104BB00071C04F3F19F04F5F4093E001181624F485\r
-:104BC0000E94B2238093E2018091E20187FF05C039\r
-:104BD0000E94B22381958093E201111624F40E9471\r
-:104BE000B2238093E3018091E30187FF05C00E9417\r
-:104BF000B22381958093E3016091E201662339F14C\r
-:104C00001091E301112319F1772767FD7095872F24\r
-:104C1000972F0E94222C23E333E343E35FE30E94B8\r
-:104C2000862C0E94EF2B6093E201612F772767FDAE\r
-:104C30007095872F972F0E94222C23E333E343E3C1\r
-:104C40005FE30E94862C0E94EF2B6093E3011D1608\r
-:104C500024F40E94FA238093E4018091E40187FF09\r
-:104C600005C00E94FA2381958093E4011C1624F468\r
-:104C70000E94FA238093E5018091E50187FF05C03A\r
-:104C80000E94FA2381958093E501DF91CF911F91D6\r
-:104C90000C942025DF91CF911F910895E1EEF1E072\r
-:104CA00085E0DF011D928A95E9F71092E0011092EC\r
-:104CB000DF01089583EB97E00E9401071F9281E0D6\r
-:104CC0008F931F9285E08F9385E697E09F938F9354\r
-:104CD0000E949A070F900F900F900F900F900F90D7\r
-:104CE00008958330E9F128F4813061F0823009F1D0\r
-:104CF0000895853009F462C008F449C0863009F48B\r
-:104D000074C0089520911501862F90E0820F911DA7\r
-:104D10008F3F910520F4620F6093150103C08FEF60\r
-:104D200080931501809115011F928F938EE996E073\r
-:104D300072C020911401862F90E0820F911D8F3F49\r
-:104D4000910520F4620F6093140103C08FEF8093EC\r
-:104D50001401809114011F928F938CE896E05BC040\r
-:104D600020911301862F90E0820F911D8F3F9105B6\r
-:104D700020F4620F6093130103C08FEF809313013F\r
-:104D8000809113011F928F9389E796E044C0209190\r
-:104D90001201862F90E0820F911D8F3F910520F424\r
-:104DA000620F6093120103C08FEF80931201809114\r
-:104DB00012011F928F9384E696E02DC0209111017D\r
-:104DC000862F90E0820F911D8F3F910520F4620F96\r
-:104DD0006093110103C08FEF809311018091110145\r
-:104DE0001F928F938BE496E016C020911001862FBE\r
-:104DF00090E0820F911D8F3F910520F4620F609328\r
-:104E0000100103C08FEF80931001809110011F9259\r
-:104E10008F9380E396E09F938F930E949A070F9061\r
-:104E20000F900F900F900895833081F128F4813016\r
-:104E300059F08230D1F00895853009F449C0B8F1B5\r
-:104E4000863009F456C0089580911501681720F442\r
-:104E5000861B8093150102C01092150180911501E7\r
-:104E60001F928F9381E296E054C0809114016817DD\r
-:104E700020F4861B8093140102C0109214018091CB\r
-:104E800014011F928F938FE096E043C0809113012D\r
-:104E9000681720F4861B8093130102C0109213013F\r
-:104EA000809113011F928F938CEF95E032C0809117\r
-:104EB0001201681720F4861B8093120102C0109221\r
-:104EC0001201809112011F928F9387EE95E021C00D\r
-:104ED00080911101681720F4861B8093110102C094\r
-:104EE00010921101809111011F928F938EEC95E029\r
-:104EF00010C080911001681720F4861B8093100168\r
-:104F000002C010921001809110011F928F9383EBC9\r
-:104F100095E09F938F930E949A070F900F900F90A8\r
-:104F20000F900895CF93C82F1F928F9328EB38E0EE\r
-:104F30003F932F930E949A0761E070E080E090E039\r
-:104F400004C0660F771F881F991FCA95D2F70E9469\r
-:104F5000451E0F900F900F900F90CF910C94491A0F\r
-:104F6000CF938D3109F465C0B0F58E3009F4CBC113\r
-:104F700000F5873009F49BC1A8F4863009F06AC2B5\r
-:104F80008091D701817F8E7F8093D7018DEB98E050\r
-:104F90000E9401078FEF9CE00E94010781E080934F\r
-:104FA000E70180C1883009F44FC08B3009F47CC11F\r
-:104FB00051C2863109F4EDC138F4803109F4B6C12B\r
-:104FC000813109F42DC246C2893109F4CBC18B313C\r
-:104FD00009F486C13FC2853309F434C248F48732EC\r
-:104FE00009F430C208F430C2893209F42BC232C24B\r
-:104FF000833438F48A3308F029C2883309F454C161\r
-:1050000029C2833409F41EC2883409F023C20E94E5\r
-:10501000491A8EEE9CE00E9401079FEF23ED80E38A\r
-:10502000915020408040E1F700C000000E94DC2148\r
-:1050300039C18EE09DE00E9401070E94A92B0E94C9\r
-:1050400084140E94C20C2EC183E09DE00E940107DF\r
-:105050008EEC9AE00E9401070E94A0231F928F937A\r
-:105060008BEC9AE09F938F930E949A0789EC9AE0C9\r
-:105070000E9401070E949723C82F86EB9AE00E94A6\r
-:1050800001071F92CF9321EB3AE03F932F930E94A9\r
-:105090009A078FEA9AE00E94010785EA9AE00E9447\r
-:1050A00001078C2F81701F928F9322EA3AE03F9381\r
-:1050B0002F930E949A0780EA9AE00E94010786E9EE\r
-:1050C0009AE00E940107C1FB882780F91F928F9305\r
-:1050D00023E93AE03F932F930E949A0781E99AE0EF\r
-:1050E0000E94010785E89AE00E940107C2FB882719\r
-:1050F00080F91F928F9322E83AE03F932F930E940A\r
-:105100009A0780E89AE00E94010787E79AE00E94E8\r
-:105110000107C3FBCC27C0F91F92CF9384E79AE025\r
-:105120009F938F930E949A0782E79AE00E9401075B\r
-:105130000E94A923C82F8EE59AE00E9401071F92C2\r
-:10514000CF9329E53AE03F932F930E949A0787E592\r
-:105150009AE00E9401078EE39AE00E9401078C2FDB\r
-:1051600081701F928F932BE33AE03F932F930E941D\r
-:105170009A078DB79EB780960FB6F8949EBF0FBE64\r
-:105180008DBF89E39AE00E94010782E29AE00E94C3\r
-:105190000107C1FB882780F91F928F932FE13AE026\r
-:1051A0003F932F930E949A078DE19AE00E94010796\r
-:1051B0008BE09AE00E940107C2FB882780F91F92CA\r
-:1051C0008F9328E03AE03F932F930E949A0786E05E\r
-:1051D0009AE00E94010784EF99E00E940107C3FB57\r
-:1051E000882780F91F928F9321EF39E03F932F9307\r
-:1051F0000E949A078FEE99E00E94010785EE99E0E0\r
-:105200000E940107C4FB882780F91F928F9322EE2A\r
-:1052100039E03F932F930E949A0780EE99E00E9415\r
-:1052200001078EEC99E00E940107C5FB882780F9F1\r
-:105230001F928F932BEC39E03F932F930E949A0794\r
-:1052400089EC99E00E9401078DEA99E00E9401072C\r
-:10525000C6FB882780F91F928F932AEA39E03F9393\r
-:105260002F930E949A0788EA99E00E94010780EA3A\r
-:1052700099E00E940107C7FBCC27C0F91F92CF938A\r
-:105280008DE999E09F938F930E949A078BE999E0AB\r
-:105290000E9401078DB79EB74C960FB6F8949EBF3B\r
-:1052A0000FBE8DBFC1E0DBC084EE98E058C0809196\r
-:1052B000D701C82FC17080FF09C081EE9CE00E9419\r
-:1052C00001078091D701817F8E7F44C085ED9CE0EE\r
-:1052D0000E9401078091D70181608093D701E2CFBE\r
-:1052E0008091D70181FBCC27C0F991E0C927C0FB91\r
-:1052F00081F98093D701CC2319F088EC9CE025C07C\r
-:105300008AEB9CE02CC08091D70182FBCC27C0F9AE\r
-:1053100091E0C927C0FB82F98093D701CC2319F013\r
-:105320008BEA9CE012C08BE99CE019C08091D70108\r
-:1053300083FBCC27C0F991E0C927C0FB83F9809398\r
-:10534000D701CC2351F08FE89CE00E9401078091A7\r
-:10535000D70181608093D70182C082E89CE00E94DF\r
-:105360000107A0CF83E79CE00E94010787E49CE04F\r
-:105370000E9401078AE09CE00E9401078DED9BE0FE\r
-:105380000E94010789E99BE00E9401078EE69BE0ED\r
-:10539000E6CF80E69BE00E9401070E9484141F92E2\r
-:1053A0008F9386E49BE09F938F930E949A0780914E\r
-:1053B0000C011F928F938FE29BE09F938F930E942B\r
-:1053C0009A0780916E011F928F938CE19BE09F93CF\r
-:1053D0008F930E949A0780910D011F928F9389E00D\r
-:1053E0009BE09F938F930E949A078091D90190919F\r
-:1053F000DA01A091DB01B091DC01BF93AF939F93E1\r
-:105400008F9385EF9AE09F938F930E949A078DB7B1\r
-:105410009EB746960FB6F8949EBF0FBE8DBF42CF83\r
-:105420000E94491AC0910D0181E0C827C0930D0167\r
-:10543000CC2329F08BEE9AE00E94010710C080EE89\r
-:105440009AE08DCF80E003C08D5101C089530E9446\r
-:10545000922728CF8EED9AE00E940107C0E08C2FA2\r
-:10546000CF91089580E0089580E00895CF93C82FEC\r
-:105470008091E701813081F020F0823009F44CC046\r
-:1054800042C1A0910E01B0910F018C91813169F060\r
-:10549000823209F03AC109C0A0910E01B0910F010A\r
-:1054A0008C91813111F0823249F48C2F0E94322A82\r
-:1054B00081112FC08C2F0E94B0272CC08C2F0E94EE\r
-:1054C000342A811126C0C431E1F070F4CB3081F070\r
-:1054D000C031D1F40E945A2680EB98E00E94010767\r
-:1054E00082E08093E70115C0C93259F0C83361F4F6\r
-:1054F0008DEB98E00E94010784EB98E00E94010781\r
-:1055000008C01092E70103C18EEA98E00E940107EB\r
-:10551000FEC081E08170FDC0C43220F5CE3108F0BC\r
-:10552000C0C0CB3099F1C8F4C73009F0D2C08AE0CE\r
-:105530008093150194E19093140193E090931301EB\r
-:105540008093120188E08093110188E2809310011A\r
-:1055500084E597E00E940107BFC0C33149F1C4311F\r
-:10556000C1F0B7C0CB3409F4A9C028F4C93289F01E\r
-:10557000C83361F0AEC0C13509F49EC0C23509F42C\r
-:1055800099C0CE3409F0A5C06AE09EC00E945A2698\r
-:10559000A3C08091E601882319F01092E6019CC017\r
-:1055A00081E697E00E94010781E08093E701B1C0A6\r
-:1055B0008BE397E00E94010789E297E00E940107D0\r
-:1055C000809115011F928F9386E297E09F938F93AE\r
-:1055D0000E949A0784E297E00E94010782E197E027\r
-:1055E0000E940107809114011F928F938FE097E032\r
-:1055F0009F938F930E949A078DE097E00E94010786\r
-:105600008EEF96E00E940107809113011F928F9305\r
-:105610008BEF96E09F938F930E949A0789EF96E015\r
-:105620000E94010788EE96E00E9401078091120116\r
-:105630001F928F9385EE96E09F938F930E949A0717\r
-:1056400083EE96E00E9401078EEC96E00E9401072F\r
-:10565000809111011F928F938BEC96E09F938F9313\r
-:105660000E949A0789EC96E00E94010782EB96E07F\r
-:105670000E940107809110011F928F938FEA96E09C\r
-:105680009F938F930E949A078DEA96E00E940107EC\r
-:105690008DB79EB748960FB6F8949EBF0FBE8DBFCC\r
-:1056A0001BC0CE51EC2FF0E0E15DFE4F8081809376\r
-:1056B000E60112C061E003C061E006C06AE08091CB\r
-:1056C000E6010E94712608C08091E6010E9414271D\r
-:1056D00003C082E597E013C08091E601882369F05A\r
-:1056E0001F928F938CE497E09F938F930E949A0769\r
-:1056F0000F900F900F900F9004C089E497E00E94E4\r
-:10570000010781E006C01092E70180E002C080E05E\r
-:1057100001CFCF910895E1E8F0E080818860808337\r
-:105720008081816080838FB7F89493E090938900A3\r
-:1057300090ED909388008FBF0895EFE6F0E08081B0\r
-:10574000826080830895EFE6F0E080818D7F808322\r
-:105750000895EFE6F0E0808192E089278083089544\r
-:105760001F920F920FB60F9211242F933F934F93D6\r
-:105770005F936F937F938F939F93AF93BF93EF93B9\r
-:10578000FF938091E8019091E90101969093E901DE\r
-:105790008093E801811103C082E00E94C20CE09175\r
-:1057A000E901E695E695F0E0E25EF24FE491809142\r
-:1057B000E8018E1303C080E00E94C20CFF91EF91BC\r
-:1057C000BF91AF919F918F917F916F915F914F9119\r
-:1057D0003F912F910F900FBE0F901F90189504D0FE\r
-:1057E0006894B1118DC0089570D088F09F5790F0E3\r
-:1057F000B92F9927B751A0F0D1F0660F771F881FF6\r
-:10580000991F1AF0BA95C9F712C0B13081F077D05C\r
-:10581000B1E0089574C0672F782F8827B85F39F0FA\r
-:10582000B93FCCF3869577956795B395D9F73EF454\r
-:1058300090958095709561957F4F8F4F9F4F0895FC\r
-:10584000E89409C097FB3EF490958095709561951A\r
-:105850007F4F8F4F9F4F9923A9F0F92F96E9BB27D0\r
-:105860009395F695879577956795B795F111F8CF4C\r
-:10587000FAF4BB0F11F460FF1BC06F5F7F4F8F4FB7\r
-:105880009F4F16C0882311F096E911C0772321F0AD\r
-:105890009EE8872F762F05C0662371F096E8862F45\r
-:1058A00070E060E02AF09A95660F771F881FDAF79C\r
-:1058B000880F9695879597F9089557FD9058440F4E\r
-:1058C000551F59F05F3F71F04795880F97FB991F5F\r
-:1058D00061F09F3F79F0879508951216130614061C\r
-:1058E000551FF2CF4695F1DF08C0161617061806A9\r
-:1058F000991FF1CF86957105610508940895E89484\r
-:10590000BB2766277727CB0197F908950BD078C07E\r
-:1059100069D028F06ED018F0952309F05AC05FC006\r
-:105920001124EECFCADFA0F3959FD1F3950F50E07D\r
-:10593000551F629FF001729FBB27F00DB11D639F41\r
-:10594000AA27F00DB11DAA1F649F6627B00DA11DE7\r
-:10595000661F829F2227B00DA11D621F739FB00D8D\r
-:10596000A11D621F839FA00D611D221F749F3327FD\r
-:10597000A00D611D231F849F600D211D822F762F96\r
-:105980006A2F11249F5750408AF0E1F088234AF093\r
-:10599000EE0FFF1FBB1F661F771F881F91505040DF\r
-:1059A000A9F79E3F510570F014C0AACF5F3FECF3FA\r
-:1059B000983EDCF3869577956795B795F795E795CB\r
-:1059C0009F5FC1F7FE2B880F911D9695879597F9DC\r
-:1059D000089597F99F6780E870E060E008959FEF71\r
-:1059E00080EC089500240A94161617061806090676\r
-:1059F000089500240A941216130614060506089545\r
-:105A0000092E0394000C11F4882352F0BB0F40F4CC\r
-:105A1000BF2B11F460FF04C06F5F7F4F8F4F9F4F0C\r
-:105A20000895991B79E004C0991F961708F0961BFA\r
-:105A3000881F7A95C9F78095089597FB072E16F46D\r
-:105A4000009407D077FD09D00E94372D07FC05D0C0\r
-:105A50003EF4909581959F4F0895709561957F4F85\r
-:105A60000895EE0FFF1F0590F491E02D0994AA1BF5\r
-:105A7000BB1B51E107C0AA1FBB1FA617B70710F039\r
-:105A8000A61BB70B881F991F5A95A9F7809590956B\r
-:105A9000BC01CD010895F999FECF92BD81BDF89A60\r
-:105AA000992780B50895A8E1B0E042E050E00C9459\r
-:105AB0006E2D262FF999FECF1FBA92BD81BD20BD54\r
-:105AC0000FB6F894FA9AF99A0FBE019608950E94BB\r
-:105AD000592D272F0C945A2DDC01CB01FC01F9998B\r
-:105AE000FECF06C0F2BDE1BDF89A319600B40D922A\r
-:0C5AF00041505040B8F70895F894FFCFE3\r
-:105AFC002002C30CB40D910D5D0D2A0D0101C501E1\r
-:105B0C0028080A03140A3F4D3620399E0451041B01\r
-:105B1C0004FB03C20335034E0367038003A0030198\r
-:0A5B2C000203040506070809000043\r
+:100000000C94B0070C94F7070C94F7070C94F707BF\r
+:100010000C94F7070C94F7070C94F7070C94F70768\r
+:100020000C94F7070C94F7070C947E130C9450145F\r
+:100030000C94F7070C94F7070C94F7070C94F70748\r
+:100040000C94F7070C94142D0C94F7070C94F707F5\r
+:100050000C94F7070C940D230C94F7070C94F707F6\r
+:100060000C94F7070C94F7070C94F7070C94F70718\r
+:100070000C94F7070C94F7070C94F7070C94F70708\r
+:100080000C94F7070C94F7070C94F7070C94F707F8\r
+:100090000C94F7070C94F7070C94F7070C94F707E8\r
+:1000A0000C94F7070C94F7070C94F707BD14DF14B2\r
+:1000B000D215DF14D21524154715D2159C15AF158E\r
+:1000C000FD18FD182C192C196F19A919B61BB61B90\r
+:1000D000C219B61BB71AB71A8A1BB61BB61BA11BCF\r
+:1000E00000F001F002F0F0A3F0A42B00340039007E\r
+:1000F000E100E00000001E00140004001D00E2000A\r
+:10010000007F1F001A0016001B0003522800200069\r
+:10011000080007000600E3002C002100150009007C\r
+:10012000190064002D00220017000A0005000000DD\r
+:1001300050002E004A0000000154000052002E0022\r
+:100140004D00000002540000510023001C000B0071\r
+:10015000110000004F00240018000D001000E60000\r
+:100160002D0025000C000E003600E7002C002600B4\r
+:1001700012000F003700035228002700130033003D\r
+:100180003800E60000772A002F003100E500E40087\r
+:1001900000002B0006003900E100E00000001E0016\r
+:1001A000130007003400E200007F1F0017000B005F\r
+:1001B0001400035228002000090033001500E3005A\r
+:1001C0002C0021000E0012001A0004522D00220003\r
+:1001D0000F000C001100000050002E004A0000002B\r
+:1001E0000100000052002E004D0000000100000040\r
+:1001F00051002300050018000D0000004F002400EE\r
+:1002000004003800100004522D00250016001C00C8\r
+:100210003600E7002C0026000A00080037000352D1\r
+:100220002800270019001B002D00E60000772A0097\r
+:100230001D003100E500E40000002B001D0000005F\r
+:10024000E100E00000001E001B0018002F00E2008B\r
+:10025000007F1F0019000C0033000352280020000B\r
+:100260000F0004003400E3002C0021000600080009\r
+:10027000130004522D0022001A0012001C0000007E\r
+:1002800050002E004A0000000100000052002E0025\r
+:100290004D00000001000000510023000E00160078\r
+:1002A000050000004F0024000B0011001000045254\r
+:1002B0002D0025000A0015003600E7002C0026005E\r
+:1002C0000900170037000352280027001400070018\r
+:1002D0000D00E60000772A002D000000E500E40094\r
+:1002E0000000010001000100010001000000010008\r
+:1002F00001000100010001000100010001000100F6\r
+:1003000001000100010001000100010001000100E5\r
+:100310000100010013A715A701000100F40001006E\r
+:100320000100010001000000F200010001000000D6\r
+:1003300001000000F00001000100000001000000C9\r
+:10034000F10001000100010001000000F3000100C4\r
+:1003500042003E003A000100F500010043003F006A\r
+:100360003B00010001000100440040003C0001008E\r
+:1003700001000100450041003D00010001000100B5\r
+:100380000100010001000100000000000000000069\r
+:1003900000000000000000004B004A00290000009F\r
+:1003A000000000002A0050002B00010000000000A7\r
+:1003B0005200510049000000000000004C004F00B6\r
+:1003C00028000100000000004E004D007A000000EF\r
+:1003D000000000000000000001000000000000001C\r
+:1003E000000000000100000000000000000000000C\r
+:1003F0000000000000000000240021001E00010099\r
+:1004000000000000250022001F0000000000000086\r
+:10041000260023002000010000000000300036000C\r
+:10042000000000000000000038003700000000005D\r
+:1004300000000A002530313662003A2000253032B3\r
+:1004400058000A722F632030313233343536373852\r
+:10045000394142434445460A000A002530325800DB\r
+:10046000626F756E6365213A20006C656674207357\r
+:100470006964652061747461636865640A006C6511\r
+:1004800066742073696465206E6F74207265737082\r
+:100490006F6E64696E670A00747279696E672074A2\r
+:1004A0006F207265736574206D637032333031383C\r
+:1004B0000A000A44454255473A20656E61626C6500\r
+:1004C000642E0A005B735D004B6579626F61726434\r
+:1004D0002073746172742E0A005B575D005B535D7C\r
+:1004E000005B525D005B445D005B435D00160345AD\r
+:1004F00000720067006F0044006F00780020004524\r
+:10050000005A00000016034500720067006F0044A7\r
+:10051000006F007800200045005A00000004030925\r
+:100520000409028D00050100A0FA0904000001037E\r
+:10053000010100092111010001223F00070581038B\r
+:1005400008000A0904010001030102000921110148\r
+:100550000001224D000705820308000A0904020079\r
+:1005600001030000000921110100012236000705E6\r
+:10057000830308000A0904030002030000000921A4\r
+:100580001101000122200007058403200001070556\r
+:1005900004032000010904040001030000000921F4\r
+:1005A0001101000122390007058503100001120125\r
+:1005B000100100000008EDFE071301000102000118\r
+:1005C00005010906A101050719E029E71500250124\r
+:1005D0009508750181020508190129059505750120\r
+:1005E00091029501750391010507190029771500FE\r
+:1005F0002501957875018102C00631FF0974A101BA\r
+:100600000975150025FF95207508810209761500EA\r
+:1006100025FF952075089102C005010980A101857B\r
+:100620000216010026B7001A01002AB700751095BE\r
+:10063000018100C0050C0901A101850316010026F6\r
+:100640009C021A01002A9C02751095018100C005C8\r
+:10065000010902A1010901A10005091901290515D6\r
+:10066000002501950575018102950175038101053C\r
+:1006700001093009311581257F9502750881060928\r
+:10068000381581257F950175088106050C0A380209\r
+:100690001581257F950175088106C0C005010906F1\r
+:1006A000A101050719E029E7150025019508750145\r
+:1006B0008102950175088101050819012905950533\r
+:1006C000750191029501750391010507190029FF34\r
+:1006D000150025FF950675088100C00A00253032F7\r
+:1006E0005820006B6579626F6172645F7265706F2C\r
+:1006F00072743A20000A0025303258006B65796226\r
+:100700006F6172645F7365745F6C65643A20006446\r
+:10071000656C5F6B65795F6269743A2063616E270F\r
+:10072000742064656C3A20253032580A0061646494\r
+:100730005F6B65795F6269743A2063616E2774202C\r
+:100740006164643A20253032580A00646F6E652E69\r
+:100750000A00626F6F676D61676963207363616E22\r
+:100760003A202E2E2E2000290A002575002F002564\r
+:1007700075005D2800256400200025640020002508\r
+:10078000640020002564007C0025303258006D6F25\r
+:100790007573656B6579205B62746E7C7820792057\r
+:1007A0007620685D287265702F61636C293A205B42\r
+:1007B000006D6B5F776865656C5F74696D655F740C\r
+:1007C0006F5F6D6178203D2025640A006D6B5F7757\r
+:1007D0006865656C5F6D61785F7370656564203D09\r
+:1007E0002025640A006D6B5F74696D655F746F5FCF\r
+:1007F0006D6178203D2025640A006D6B5F6D617826\r
+:100800005F7370656564203D2025640A006D6B5F31\r
+:10081000696E74657276616C203D2025640A006DF6\r
+:100820006B5F64656C6179203D2025640A006D6B07\r
+:100830005F776865656C5F74696D655F746F5F6D28\r
+:100840006178203D2025640A006D6B5F77686565DF\r
+:100850006C5F6D61785F7370656564203D20256411\r
+:100860000A006D6B5F74696D655F746F5F6D6178B1\r
+:10087000203D2025640A006D6B5F6D61785F7370A9\r
+:10088000656564203D2025640A006D6B5F696E74A8\r
+:10089000657276616C203D2025640A006D6B5F6493\r
+:1008A000656C6179203D2025640A000A00257500E9\r
+:1008B000363A20776865656C5F74696D655F746F43\r
+:1008C0005F6D61783A20000A00257500353A20777F\r
+:1008D0006865656C5F6D61785F73706565643A200B\r
+:1008E000000A00257500343A2074696D655F746FE5\r
+:1008F0005F6D61783A20000A00257500333A206D5B\r
+:1009000061785F73706565643A20000A00257500A0\r
+:10091000323A20696E74657276616C286D73293A7B\r
+:1009200020000A00257500313A2064656C61792841\r
+:100930002A31306D73293A20000A092D2056616C46\r
+:10094000756573202D0A004D3E004D25643E200044\r
+:100950003F007365742064656661756C740A0043BA\r
+:100960003E200077686572652064656C74613A208A\r
+:10097000637572736F723D25642C20776865656CB2\r
+:100980003D25640A53656520687474703A2F2F659D\r
+:100990006E2E77696B6970656469612E6F72672F5F\r
+:1009A00077696B692F4D6F7573655F6B6579730A36\r
+:1009B000000A092D204D6F7573656B6579202D0A2E\r
+:1009C0004553432F713A09717569740A313A0964C4\r
+:1009D000656C6179282A31306D73290A323A0969C8\r
+:1009E0006E74657276616C286D73290A333A096DED\r
+:1009F00061785F73706565640A343A0974696D657E\r
+:100A00005F746F5F6D61780A353A09776865656C68\r
+:100A10005F6D61785F73706565640A363A0977685F\r
+:100A200065656C5F74696D655F746F5F6D61780A91\r
+:100A30000A703A097072696E742076616C7565731C\r
+:100A40000A643A097365742064656661756C747331\r
+:100A50000A75703A092B310A646F776E3A092D31A5\r
+:100A60000A706775703A092B31300A7067646F77C6\r
+:100A70006E3A092D31300A0A7370656564203D2095\r
+:100A800064656C7461202A206D61785F73706565A0\r
+:100A900064202A2028726570656174202F20746993\r
+:100AA0006D655F746F5F6D6178290A003F004D3E90\r
+:100AB0002000433E20004C25640A000A092D2043F3\r
+:100AC0006F6E736F6C65202D0A4553432F713A0981\r
+:100AD000717569740A6D3A096D6F7573656B657927\r
+:100AE0000A000A092D204D61676963202D0A643AC6\r
+:100AF0000964656275670A783A09646562756720FA\r
+:100B00006D61747269780A6B3A0964656275672071\r
+:100B10006B6579626F6172640A6D3A09646562752A\r
+:100B200067206D6F7573650A763A09766572736929\r
+:100B30006F6E0A733A097374617475730A633A09C4\r
+:100B4000636F6E736F6C65206D6F64650A302D3452\r
+:100B50003A096C61796572302D34284631302D4662\r
+:100B600034290A506175733A09626F6F746C6F6152\r
+:100B70006465720A653A09656570726F6D0A6E3A4E\r
+:100B8000094E4B524F0A7A3A09736C656570204CD6\r
+:100B9000454420746573740A000A002575002E6EA2\r
+:100BA0006B726F3A20000A002575002E7377617012\r
+:100BB0005F6261636B736C6173685F6261636B73C7\r
+:100BC000706163653A20000A002575002E73776115\r
+:100BD000705F67726176655F6573633A20000A0033\r
+:100BE0002575002E6E6F5F6775693A20000A002533\r
+:100BF00075002E737761705F72616C745F726775D8\r
+:100C0000693A20000A002575002E737761705F6CC9\r
+:100C1000616C745F6C6775693A20000A0025750085\r
+:100C20002E636170736C6F636B5F746F5F636F6E65\r
+:100C300074726F6C3A20000A002575002E7377617C\r
+:100C4000705F636F6E74726F6C5F636170736C6FF3\r
+:100C5000636B3A20000A0025303258006B65796DCD\r
+:100C600061705F636F6E6669672E7261773A20000C\r
+:100C70000A002575002E6D6F7573653A20000A0015\r
+:100C80002575002E6B6579626F6172643A20000AE7\r
+:100C9000002575002E6D61747269783A20000A0093\r
+:100CA0002575002E656E61626C653A20000A00258C\r
+:100CB0003032580064656275675F636F6E6669679E\r
+:100CC0002E7261773A20000A00257500646566611E\r
+:100CD000756C745F6C617965723A20003F004E4B11\r
+:100CE000524F3A206F66660A004E4B524F3A206FC1\r
+:100CF0006E0A0074696D65725F636F756E743A2079\r
+:100D00002530346C580A006B6579626F6172645FDC\r
+:100D10006E6B726F3A2025580A006B6579626F61BD\r
+:100D200072645F69646C653A2025580A006B6579C6\r
+:100D3000626F6172645F70726F746F636F6C3A2080\r
+:100D400025580A00686F73745F6B6579626F617212\r
+:100D5000645F6C65647328293A2025580A000A09E3\r
+:100D60002D20537461747573202D0A004743433A54\r
+:100D700020352E332E30204156522D4C4942433AD5\r
+:100D800020312E382E3173766E204156525F4152FB\r
+:100D900043483A20617672350A004F5054494F4E0D\r
+:100DA000533A204C55464120424F4F544D414749FC\r
+:100DB00043204D4F5553454B4559204558545241BA\r
+:100DC0004B455920434F4E534F4C4520434F4D4DBB\r
+:100DD000414E44204E4B524F203531320A0042558D\r
+:100DE000494C443A20323030363038342D64697200\r
+:100DF0007479202831313A35303A3438204A616EDE\r
+:100E00002033302032303136290A005649443A2006\r
+:100E1000307846454544284572676F446F782045D1\r
+:100E20005A29205049443A20307831333037284508\r
+:100E300072676F446F7820455A29205645523A20F0\r
+:100E40003078303030310A00444553433A20742E14\r
+:100E50006D2E6B2E206B6579626F617264206669FE\r
+:100E6000726D7761726520666F72204572676F647C\r
+:100E70006F780A000A092D2056657273696F6E201B\r
+:100E80002D0A000A6D6F7573653A206F66660A0059\r
+:100E90000A6D6F7573653A206F6E0A000A6B65798B\r
+:100EA000626F6172643A206F66660A000A6B657948\r
+:100EB000626F6172643A206F6E0A000A6D6174722B\r
+:100EC00069783A206F66660A000A6D617472697803\r
+:100ED0003A206F6E0A000A64656275673A206F6E89\r
+:100EE0000A000A64656275673A206F66660A000A3E\r
+:100EF0000A626F6F746C6F616465722E2E2E200013\r
+:100F0000433E20006565636F6E6669673A0A005369\r
+:100F10006C656570204C454420746573740A00004C\r
+:100F200000000000000000000000010204060A0F9B\r
+:100F300017202C3A4A5D71879DB3C7DAE9F5FCFFAB\r
+:100F4000FCF5E9DAC7B39D87715D4A3A2C20170F8B\r
+:100F50000A0604020100000000000000000000007A\r
+:100F600011241FBECFEFDAE0DEBFCDBF04B603FE13\r
+:100F700027C08091F8019091F901A091FA01B091F8\r
+:100F8000FB018730904BA740B04BD1F41092F80191\r
+:100F90001092F9011092FA011092FB0114BE84B76D\r
+:100FA000877F84BF0FB6F894A89580916000886110\r
+:100FB00080936000109260000FBEE0E0FFE30995AF\r
+:100FC00011E0A0E0B1E0E2EEFDE502C005900D9277\r
+:100FD000AA33B107D9F721E0AAE3B1E001C01D921D\r
+:100FE000A83FB207E1F70E94B9100C94EF2E0C94C1\r
+:100FF0000000FF93EF93E0913A01F0913B013097AD\r
+:1010000009F00995EF91FF910895FC0185918030D9\r
+:1010100011F0EFDFFBCF0895FF27E0E230E247FF5A\r
+:101020000CC0419597FF09C0EDE2609570958095E1\r
+:101030009095611D711D811D911D27FF02C0219595\r
+:1010400030E350E2AA27660F771F881F991FAA1F57\r
+:10105000A41710F0A41B63955A95A9F7AA3008F0BD\r
+:10106000A95FA05DAF93F3956115710581059105A9\r
+:1010700041F7ED3211F4EF93F395F21718F43F9323\r
+:10108000F395FBCF8F91B5DFFA95E1F70895E991DC\r
+:10109000F9918591803021F0853219F0AADFF9CFDE\r
+:1010A000089520E0E89455915532C1F3503311F47E\r
+:1010B000689455915A3348F4505390F3220F022EFE\r
+:1010C000220F220F200D250FF4CF0EF421958991C8\r
+:1010D0009991533619F3533729F1533559F1BC011E\r
+:1010E00088279927E8945C3621F48991999168942E\r
+:1010F0005591543639F446EF7EF077FF0DC08FEFEF\r
+:101100009FEF0AC055374AE039F0583540E121F0E9\r
+:10111000523642E009F00895FF93EF937DDFEF919F\r
+:10112000FF91B7CFFF93EF93FC0181918030B9F32A\r
+:1011300060DFFBCFFF93EF9368DFF1CFDF93CF93B7\r
+:10114000CDB7DEB72596A3DFCF91DF91089561116A\r
+:101150000BC0FC018281882321F085EE0E94971745\r
+:1011600003C085EE0E945F1880E090E00895089526\r
+:101170006091BC017091BD018091BE019091BF0151\r
+:101180000E940E2256985E9825982D9826982E98A3\r
+:1011900027982F98823051F0833029F0813049F41C\r
+:1011A000269A2E9A0895259A2D9A0895279A2F9A6D\r
+:1011B000089556985E98089588EB98E0892B11F071\r
+:1011C0000E94B80880E090E0089556985E982598AF\r
+:1011D0002D9826982E9827982F988FEF90E090932F\r
+:1011E00089008093880090938B0080938A0090936D\r
+:1011F0008D0080938C00259A2D9A2FEF80E792E046\r
+:10120000215080409040E1F700C00000269A2E9ABD\r
+:101210002FEF80E792E0215080409040E1F700C03E\r
+:101220000000279A2F9A2FEF80E792E0215080400C\r
+:101230009040E1F700C0000025982D982FEF80E73F\r
+:1012400092E0215080409040E1F700C000002698D5\r
+:101250002E982FEF80E792E0215080409040E1F7F8\r
+:1012600000C0000027982F9856985E9825982D98D2\r
+:1012700026982E9827982F98089589EA80938000C1\r
+:1012800089E08093810024982C983F988AB18F74CC\r
+:101290008AB96E98479A8BB1806B8BB9769A0E9407\r
+:1012A000E50887EB98E0892B11F00E94B70880E0F1\r
+:1012B00090E0089580E28093000180913C018111CB\r
+:1012C0000EC00E94A90981E080933C012FEF83EDBD\r
+:1012D00090E3215080409040E1F700C0000080E49E\r
+:1012E0000E94AF098093000181112EC00E94D9098C\r
+:1012F00080930001811128C00E94D90980930001C8\r
+:10130000811122C08FE30E94D909809300018111CD\r
+:101310001BC00E94D10980E40E94AF0980930001A4\r
+:10132000811112C08CE00E94D909809300018111C3\r
+:101330000BC00E94D90980930001811105C08FE381\r
+:101340000E94D909809300010E94D1098091000177\r
+:1013500008951092B9008AE08093B800089594EA45\r
+:101360009093BC009091BC0097FFFCCF9091B90086\r
+:10137000987F983021F0903111F081E008958093AA\r
+:10138000BB0084E88093BC008091BC0087FFFCCF49\r
+:101390008091B900887F883111F0803471F780E046\r
+:1013A000089584E98093BC008091BC0084FDFCCF4B\r
+:1013B00008958093BB0084E88093BC008091BC00BA\r
+:1013C00087FFFCCF9091B900987F81E0983209F4B3\r
+:1013D00080E0089584E88093BC008091BC0087FF82\r
+:1013E000FCCF8091BB00089580910001811115C050\r
+:1013F00080E40E94AF098093000181110CC082E15A\r
+:101400000E94D90980930001811105C08FEF0E94CD\r
+:10141000D909809300010E94D10984B1807F84B9E9\r
+:1014200085B1807F85B98AB1837F8AB98BB1837F8B\r
+:101430008BB93E98469808950E945A0980930001FE\r
+:101440000E94F40980B38C7080BB81B3836F81BB31\r
+:10145000ECE4F1E0AEE3B1E011921D9281E0EA35F7\r
+:10146000F807D1F78DE399E0892B11F00C943D0931\r
+:1014700008957F928F929F92AF92BF92CF92DF9208\r
+:10148000EF92FF920F931F93CF93DF938091000110\r
+:101490008823E1F080913D018F5F80933D018111B0\r
+:1014A00015C088E994E00E9405080E945A098093BB\r
+:1014B0000001882329F08EE794E00E94050806C009\r
+:1014C0008AE694E00E9405080E94E5088EE3E82E73\r
+:1014D00081E0F82E8701C0E0D0E09924939492E057\r
+:1014E000892EAA24A394B12C3BE5C32E34E0D32E3D\r
+:1014F000C730D10500F580910001811164C080E4FE\r
+:101500000E94AF0980930001811112C082E10E9404\r
+:10151000D9098093000181110BC0C5010C2E01C0B7\r
+:10152000880F0A94EAF780950E94D90980930001F8\r
+:101530000E94D10948C0CA30A1F028F4C83059F03F\r
+:10154000C93061F005C0CC3089F070F0CD3089F041\r
+:10155000209A289810C0219A29980DC0229A2A987A\r
+:101560000AC0239A2B9807C0529A01C0539A5B98DD\r
+:1015700002C03E9A4698E0EAEA95F1F78FB1817091\r
+:101580008925799902C032E001C030E0832B7C9933\r
+:1015900002C034E001C030E0832B7D9902C028E016\r
+:1015A00001C020E0822B7E9902C090E101C090E052\r
+:1015B000892B9FB19095991F9927991F9295990F03\r
+:1015C000907E892B10C080910001811175C080E44C\r
+:1015D0000E94AF0980930001882309F45AC0712C3E\r
+:1015E0000E94D109872DD8019C91981739F18C93CD\r
+:1015F00080910101882301F18091D70180FF04C00F\r
+:1016000080E694E00E9405088091D70180FF0CC01D\r
+:10161000809101011F928F93DF92CF920E949E08CA\r
+:101620000F900F900F900F908091D70180FF04C012\r
+:1016300089E594E00E940508809201010E94F40966\r
+:1016400021960F5F1F4FCE30D10509F051CF809109\r
+:1016500001018823B9F0815080930101882339F07A\r
+:10166000EFE9FFE03197F1F700C000000BC0ECE4B8\r
+:10167000F1E0D7018D917D018193BCE4EB16B1E0DF\r
+:10168000FB06B9F78CED98E0892BC1F00E94DC08CD\r
+:1016900015C083E10E94D9098093000181119FCF79\r
+:1016A00081E40E94AF0980930001811198CF0E94CC\r
+:1016B000EA09782E709494CF80E095CF81E0DF9195\r
+:1016C000CF911F910F91FF90EF90DF90CF90BF903F\r
+:1016D000AF909F908F907F900895E82FF0E0E45BAB\r
+:1016E000FE4F80810895CF92DF92EF92FF920F9389\r
+:1016F0001F93CF93DF9382E494E00E9405088CE46B\r
+:10170000E82E81E0F82EC0E0D0E09DE3C92E94E001\r
+:10171000D92E04E314E0DF93CF93DF92CF920E949F\r
+:101720009E088AE394E00E940508F70181917F01F9\r
+:1017300090E00E9470229F938F931F930F930E94BB\r
+:101740009E0882E394E00E94050821968DB79EB71B\r
+:1017500008960FB6F8949EBF0FBE8DBFCE30D10550\r
+:10176000D1F6DF91CF911F910F91FF90EF90DF9015\r
+:10177000CF9008958B3B910580F4883A910548F508\r
+:10178000853A9105D8F48430910508F0B2C00197EC\r
+:1017900009F06EC081E090E00895803E910508F464\r
+:1017A00067C0883E910508F4A4C09C01205F310900\r
+:1017B0002031310508F05CC090650895853A9105A7\r
+:1017C00009F459C0863A910509F058C082E890E4BE\r
+:1017D0000895883A910509F454C0893A910509F4AD\r
+:1017E00053C08A3A910509F452C08B3A910509F425\r
+:1017F00051C08C3A910509F450C08D3A910509F415\r
+:101800004FC0803B910509F44EC08E3A910509F412\r
+:101810004DC08F3A910509F44CC0813B910509F404\r
+:101820004BC0823B910509F44AC0833B910509F402\r
+:1018300049C0843B910509F448C0853B910509F4F2\r
+:1018400047C0863B910509F446C0873B910509F4E2\r
+:1018500045C0883B910509F444C0893B910509F4D2\r
+:1018600043C08A3B910509F442C080E094E40895A6\r
+:1018700080E090E0089581E890E4089583E890E4A2\r
+:10188000089582EE94E4089589EE94E408958AEE32\r
+:1018900094E4089585EB94E4089586EB94E4089528\r
+:1018A00087EB94E408958CEC94E408958DEC94E433\r
+:1018B000089583E895E408958AE895E4089582E917\r
+:1018C00095E4089584E995E4089581E296E4089505\r
+:1018D00083E296E4089584E296E4089585E296E42E\r
+:1018E000089586E296E4089587E296E408958AE2F0\r
+:1018F00096E4089524E5829FC0011124FC0126E0AE\r
+:10190000729FE00DF11D1124E60FF11DEE0FFF1F78\r
+:10191000E651FF4F859194910895880F991FFC011E\r
+:10192000E05AF040859194910895880F991FFC0129\r
+:10193000E052FF4F85919491089524E5829FC00164\r
+:101940001124FC0146E0749FE00DF11D1124E60F07\r
+:10195000F11DEE0FFF1FE651FF4F859194919C0101\r
+:101960003A9521154FE1340708F429C13F5121155B\r
+:10197000304120F49F700E94950C08959C013053D3\r
+:101980002115304118F49927906C0895811520E5B0\r
+:10199000920769F40E94D81B4FEF84E39CE041500A\r
+:1019A00080409040E1F700C000000C943223813069\r
+:1019B00020E5920751F482EB94E00E9405088091A3\r
+:1019C000D70181608093D70108959C01305521157E\r
+:1019D000304108F05CC0292F33272F703327213086\r
+:1019E0003105E9F4AC0164E0440F551F6A95E1F755\r
+:1019F00044275370BC016370772702C0220F331F46\r
+:101A00006A95E2F73C68242B352B73E0880F991F09\r
+:101A10007A95E1F780769927822B932B08952230CF\r
+:101A2000310529F4982F8827816F906A0895233013\r
+:101A30003105A1F4AC0133E0440F551F3A95E1F7AD\r
+:101A4000407E57708370992721E030E002C0220F5A\r
+:101A5000331F8A95E2F7C9019C6816C0243031050E\r
+:101A600031F5AC0123E0440F551F2A95E1F7407E84\r
+:101A700057708370992721E030E002C0220F331F96\r
+:101A80008A95E2F7C9019A68842B952B08959C01E9\r
+:101A900030572115304118F49F70906208959C01D1\r
+:101AA00030582115304118F49F70906A0895803E97\r
+:101AB0009105E0F4803C910558F58133910509F4D6\r
+:101AC0006FC048F48932910509F463C08A329105E8\r
+:101AD00009F46DC072C089339105E9F0823891052F\r
+:101AE000D1F08533910509F44DC067C0833E91055F\r
+:101AF00081F138F4803E9105B9F0823E9105D9F02C\r
+:101B00005CC0863E910561F1873E9105A1F155C00B\r
+:101B10000E948D0C08952091E90120FD02C021FF53\r
+:101B20004CC080EE90E049C08091E90180FFF9CF80\r
+:101B300089E390E042C08091E90182FF0EC080916C\r
+:101B4000E90184FF03C080E090E037C083EE90E0BD\r
+:101B500034C08091E90182FFF2CF82EE90E02DC087\r
+:101B60008091E90183FF0BC08091E90184FDEBCFF7\r
+:101B700087EE90E022C08091E90183FFF5CF86EEE9\r
+:101B800090E01BC08091E90185FF07C089E290E0E9\r
+:101B900014C08091E90185FFF9CF85E390E00DC085\r
+:101BA0008091E90186FF07C08AE290E006C080913B\r
+:101BB000E90186FFF9CF81E390E00E94BA0B089516\r
+:101BC0000895009739F08A30910514F44D960895E0\r
+:101BD0000697089587E290E008951F93CF93DF93CF\r
+:101BE000FC018281882309F440C0C62FD0E0D42BA9\r
+:101BF00082EE0E9497178D2F82958F7090E00E9441\r
+:101C0000E10D182F0E949717812F0E945F18CE01B7\r
+:101C100088279F70892F90E00E94E10D182F0E9465\r
+:101C20009717812F0E945F18CE01807F992724E0AB\r
+:101C3000969587952A95E1F70E94E10D182F0E944D\r
+:101C40009717812F0E945F18CE018F7099270E94ED\r
+:101C5000E10DC82F0E9497178C2F0E945F1882EE0B\r
+:101C6000DF91CF911F910C945F18DF91CF911F915D\r
+:101C7000089580916D0108959FB7F89410925C01CA\r
+:101C80009FBF9091EF01943009F057C09091E90007\r
+:101C90009F703091EC00232F217030FD20E8922BB3\r
+:101CA00024E02093E9002091EB0020FF43C0209125\r
+:101CB000EE0027FF3FC020915A01222321F02091FE\r
+:101CC000E80025FF37C010925A0126E03091E80065\r
+:101CD00035FD15C03091EF01343061F53091EB00E6\r
+:101CE00035FD28C0215021F481E080935A0122C0A3\r
+:101CF000EFE9FFE03197F1F700C00000E7CF8093F4\r
+:101D0000F1008091E80085FD0AC08091E80080FF25\r
+:101D1000FCCF8091E8008E778093E80006C08FB7F3\r
+:101D2000F89421E020935C018FBF9F709093E900AD\r
+:101D300080E008959F709093E9008FEF0895CF930E\r
+:101D4000DF9300D01F92CDB7DEB79C018091EF01E9\r
+:101D5000843019F593E099833B832A839093E900BB\r
+:101D60008FEF9091E800815095FD06C095ED9A9512\r
+:101D7000F1F700008111F5CF8091E80085FF0DC0DB\r
+:101D800040E050E063E070E0CE0101960E947211E5\r
+:101D90008091E8008E778093E8000F900F900F906D\r
+:101DA000DF91CF910895CF93DF9300D01F92CDB7ED\r
+:101DB000DEB72091EF01243021F522E029839B83B7\r
+:101DC0008A8383E08093E9008FEF9091E80081504F\r
+:101DD00095FD06C095ED9A95F1F700008111F5CFBC\r
+:101DE0008091E80085FF0DC040E050E063E070E0C6\r
+:101DF000CE0101960E9472118091E8008E77809347\r
+:101E0000E8000F900F900F90DF91CF9108959C0103\r
+:101E10008091EF018430F9F482E08093E9009FEF34\r
+:101E20008091E800915085FD06C085ED8A95F1F717\r
+:101E300000009111F5CF8091E80085FF0CC040E0D3\r
+:101E400050E065E070E0C9010E9472118091E800E5\r
+:101E50008E778093E8000895CF93DF93EC01809113\r
+:101E6000EF01843009F047C080910C018823E1F034\r
+:101E700080910D018823C1F085E08093E9008FEF08\r
+:101E80009091E800815095FD06C095E19A95F1F793\r
+:101E900000008111F5CF8091E80085FF2CC040E063\r
+:101EA00050E060E170E017C081E08093E9008FEFBF\r
+:101EB0009091E800815095FD06C095ED9A95F1F757\r
+:101EC00000008111F5CF8091E80085FF14C040E04B\r
+:101ED00050E068E070E0CE010E9472118091E8004D\r
+:101EE0008E778093E80080E1FE01ADE5B1E00190DE\r
+:101EF0000D928A95E1F7DF91CF91089589EE94E0F4\r
+:101F00000E9405088091EE01811109C00E9403130F\r
+:101F10000E9460138091E20084608093E200089543\r
+:101F200085EE94E00E9405081092EE01089581EE7E\r
+:101F300094E00C9405088DED94E00E9405080C9443\r
+:101F4000012D89ED94E00E9405080E94C8220E949C\r
+:101F5000072D0E940A160C94E00D20915B012F5F63\r
+:101F6000822F62E30E94842E992319F020935B0153\r
+:101F7000089510925B0180915C01882371F180913A\r
+:101F8000EF01843041F58091E9008F702091EC00E1\r
+:101F9000922F917020FD90E8892B94E09093E900B6\r
+:101FA0009091EB0090FF14C09091EE0097FF10C04D\r
+:101FB0009091E80095FF03C01092F100F9CF909145\r
+:101FC000E80090FF05C09091E8009E779093E800AC\r
+:101FD0008F708093E90010925C01089542E061ECFB\r
+:101FE00081E00E947C1242E061EC82E00E947C125F\r
+:101FF00042E061EC83E00E947C1242E261EC84E00A\r
+:102000000E947C1242E161EC85E00C947C1280918C\r
+:10201000F101833009F455C030F4813071F0823021\r
+:1020200009F48EC008958A3009F47AC08B3009F41F\r
+:1020300060C0893009F09CC020C08091F001813AD5\r
+:1020400009F096C08091E800877F8093E800809136\r
+:10205000F4019091F501892B21F460E18DE591E087\r
+:1020600003C060E080E090E070E00E94BD118091CC\r
+:10207000E8008B778093E80008958091F001813229\r
+:1020800009F076C08091F4019091F501009719F064\r
+:10209000049709F06DC08091E800877F8093E80085\r
+:1020A0008091E80082FD05C08091EF018111F8CF99\r
+:1020B0005FC08091F10080936D018091E8008B7783\r
+:1020C00053C08091F001813A09F052C08091F4012F\r
+:1020D0009091F501892B09F04BC08091E800877F32\r
+:1020E0008093E8008091E80080FFFCCF80910C0194\r
+:1020F00036C08091F0018132D9F58091F401909140\r
+:10210000F501892BA9F58091E800877F8093E8008D\r
+:102110000E94B1128091F20180930C010C94D81BA3\r
+:102120008091F001813221F58091E800877F8093D2\r
+:10213000E8000E94B1128091F30180936E0108952E\r
+:102140008091F001813AA1F48091E800877F80932B\r
+:10215000E8008091E80080FFFCCF80916E018093C1\r
+:10216000F1008091E8008E778093E8000C94B11222\r
+:10217000089584B7877F84BF0FB6F894A89580919F\r
+:102180006000886180936000109260000FBE90E054\r
+:1021900080E80FB6F89480936100909361000FBEC1\r
+:1021A0000E9496160E9403130E9460138091E20021\r
+:1021B00084608093E2008CE39EE00E940922789480\r
+:1021C0000E94EA150E94981682E091E00E9405168E\r
+:1021D0000E94EF2C88EC94E00E9405088091EF01AA\r
+:1021E000853089F484EC94E00E9405080E948A22DC\r
+:1021F0008091ED01882391F30E94B422882371F32A\r
+:102200000E945C11EBCF0E94C616E8CF292F33271E\r
+:1022100023303105C9F060F42130310581F02230DE\r
+:10222000310509F041C08DE890E021E235E040C081\r
+:1022300021323105E1F02232310531F135C082E140\r
+:1022400090E02EEA35E034C099278130910549F0BD\r
+:1022500028F0029749F5EDEEF4E005C0EDE1F5E078\r
+:1022600002C0E5E0F5E0849190E09F0121C0653077\r
+:10227000D8F4E62FF0E0EE0FFF1FEB5DFE4F20815C\r
+:10228000318189E090E014C0653070F470E0FB01AA\r
+:10229000EE0FFF1FE55EFE4F20813181FB01EA5EFC\r
+:1022A000FE4F808190E004C080E090E020E030E0CC\r
+:1022B000FA0131832083089580E189BD82E189BDDF\r
+:1022C00009B400FEFDCF8091D8008F7D8093D800A7\r
+:1022D0008091E00082608093E0008091E00081FDC9\r
+:1022E000FCCF0895CF92DF92EF92FF920F931F934E\r
+:1022F000CF93DF93EC018B016A010E94D012811110\r
+:1023000033C0C114D10439F0F60180819181081BDA\r
+:10231000190BC80FD91FE12CF12C0115110519F16A\r
+:102320008091E80085FD16C08091E8008E7780934B\r
+:10233000E800C114D10449F0F60180819181E80ED2\r
+:10234000F91EF182E08285E00FC00E94D01288233E\r
+:1023500021F30AC089918093F10001501109FFEF28\r
+:10236000EF1AFF0ADACF80E0DF91CF911F910F9132\r
+:10237000FF90EF90DF90CF9008952091F60130917B\r
+:10238000F7012617370748F06115710539F42091D8\r
+:10239000E8002E772093E80001C0B901FC0120E09D\r
+:1023A0006115710579F18091EF018823F1F1853094\r
+:1023B000F1F18091E80083FD3CC08091E80082FD4E\r
+:1023C0002EC08091E80080FFEBCF2091F300809138\r
+:1023D000F20090E0922B6115710551F08830910563\r
+:1023E00038F421912093F100615071090196F3CFE7\r
+:1023F00021E0089709F020E08091E8008E77809333\r
+:10240000E800CECF2111CFCF0AC08091EF01882301\r
+:1024100061F0853061F08091E80083FD0AC0809111\r
+:10242000E80082FFF2CF80E0089582E0089583E023\r
+:10243000089581E008952091F6013091F701261763\r
+:10244000370748F06115710539F42091E8002E77BF\r
+:102450002093E80001C0B901FC0120E0611571057D\r
+:1024600091F18091EF01882309F440C0853009F48F\r
+:102470003FC08091E80083FD3DC08091E80082FD6F\r
+:102480002FC08091E80080FFE9CF2091F300809178\r
+:10249000F20090E0922B6115710559F0883091059A\r
+:1024A00040F424912093F100319661507109019616\r
+:1024B000F2CF21E0089709F020E08091E8008E77C4\r
+:1024C0008093E800CBCF2111CCCF0AC08091EF01DF\r
+:1024D000882361F0853061F08091E80083FD0AC0B7\r
+:1024E0008091E80082FFF2CF80E0089582E00895B5\r
+:1024F00083E0089581E00895982F973068F59093D0\r
+:10250000E900981739F07091EC002091ED0050919E\r
+:10251000F00003C0242F762F50E021FD02C09F5F02\r
+:10252000ECCF3091EB003E7F3093EB003091ED002B\r
+:102530003D7F3093ED003091EB0031603093EB0044\r
+:102540007093EC002093ED005093F0002091EE008A\r
+:1025500027FDE5CF80E008958F708093E90081E04A\r
+:1025600008958091F00187FF11C08091E80082FDFD\r
+:1025700005C08091EF018111F8CF11C08091E80072\r
+:102580008B770BC08091EF01882349F08091E800A0\r
+:1025900080FFF8CF8091E8008E778093E80008955F\r
+:1025A0002091E4003091E50095E64091EC00842F05\r
+:1025B000817040FF23C08091E80080FD1DC08091A4\r
+:1025C000EF01882399F0853099F08091EB0085FD2B\r
+:1025D00011C04091E4005091E5002417350729F31C\r
+:1025E000915011F09A01E1CF84E0089582E00895BE\r
+:1025F00083E0089581E0089580E008954091E80027\r
+:1026000042FFDDCF08950E9471130E947913E0EE1E\r
+:10261000F0E0808181608083E8EDF0E080818F7759\r
+:10262000808319BCA7EDB0E08C918E7F8C93808164\r
+:102630008F7E80831092EE0108950F931F93CF93A6\r
+:10264000DF930E9471130E947913C8EDD0E0888156\r
+:102650008F77888388818068888388818F7D88834D\r
+:1026600019BC1092EF011092EB011092ED01109243\r
+:10267000EC0100EE10E0F80180818B7F808388817F\r
+:102680008160888342E060E080E00E947C12E1EE9D\r
+:10269000F0E080818E7F8083E2EEF0E080818160D7\r
+:1026A0008083808188608083F80180818E7F808331\r
+:1026B000888180618883DF91CF911F910F91089568\r
+:1026C000E8EDF0E080818F7E8083E7EDF0E08081AF\r
+:1026D0008160808384E082BF81E08093EE010C946E\r
+:1026E0001D13E8EDF0E080818E7F80831092E20080\r
+:1026F00008951092DA001092E10008951F920F924F\r
+:102700000FB60F9211242F933F934F935F936F93C4\r
+:102710007F938F939F93AF93BF93EF93FF9380919A\r
+:10272000E10082FF0BC08091E20082FF07C0809130\r
+:10273000E1008B7F8093E1000E94AD0F8091DA0071\r
+:1027400080FF1FC08091D80080FF1BC08091DA00FD\r
+:102750008E7F8093DA008091D90080FF0DC080E1E8\r
+:1027600089BD82E189BD09B400FEFDCF81E080937F\r
+:10277000EF010E947E0F05C019BC1092EF010E946C\r
+:10278000900F8091E10080FF19C08091E20080FFEE\r
+:1027900015C08091E2008E7F8093E2008091E2007C\r
+:1027A00080618093E2008091D80080628093D8009D\r
+:1027B00019BC85E08093EF010E949B0F8091E1009E\r
+:1027C00084FF30C08091E20084FF2CC080E189BD8D\r
+:1027D00082E189BD09B400FEFDCF8091D8008F7DD4\r
+:1027E0008093D8008091E1008F7E8093E1008091FA\r
+:1027F000E2008F7E8093E2008091E200816080930E\r
+:10280000E2008091EB01882311F084E007C0809101\r
+:10281000E30087FD02C081E001C083E08093EF0107\r
+:102820000E94A10F8091E10083FF29C08091E20006\r
+:1028300083FF25C08091E100877F8093E10082E0E3\r
+:102840008093EF011092EB018091E1008E7F8093E5\r
+:10285000E1008091E2008E7F8093E2008091E200AF\r
+:1028600080618093E20042E060E080E00E947C12A0\r
+:102870008091F00088608093F0000E94970FFF9194\r
+:10288000EF91BF91AF919F918F917F916F915F91E8\r
+:102890004F913F912F910F900FBE0F901F90189561\r
+:1028A0001F920F920FB60F9211242F933F934F93C5\r
+:1028B0005F936F937F938F939F93AF93BF93CF93C8\r
+:1028C000DF93EF93FF93C091E900CF708091EC000C\r
+:1028D000D82FD17080FDD0E81092E9008091F000EF\r
+:1028E000877F8093F00078940E9494141092E900FE\r
+:1028F0008091F00088608093F000CD2BCF70C09362\r
+:10290000E900FF91EF91DF91CF91BF91AF919F913E\r
+:102910008F917F916F915F914F913F912F910F9088\r
+:102920000FBE0F901F9018951F93CF93DF93CDB7D5\r
+:10293000DEB7AA970FB6F894DEBF0FBECDBFE0EFAB\r
+:10294000F1E08091F100819321E0E83FF207C9F7BF\r
+:102950000E9407108091E80083FF24C18091F0015C\r
+:102960009091F101492F50E04A30510508F01AC109\r
+:10297000FA01EA5AFF4F0C94A42E803881F0823875\r
+:1029800009F010C18091F4018F708093E90080916B\r
+:10299000EB0085FB882780F91092E90006C0809142\r
+:1029A000EC019091ED01911182609091E800977F88\r
+:1029B0009093E8008093F1001092F100C8C0282F96\r
+:1029C0002D7F09F0EFC0882319F0823061F0EAC052\r
+:1029D0008091F201813009F0E5C0933009F080E088\r
+:1029E0008093ED012BC08091F201811127C080916D\r
+:1029F000F4018F7009F4D6C08093E9002091EB00B8\r
+:102A000020FF1CC0933021F48091EB00806214C041\r
+:102A10009091EB0090619093EB0021E030E0A901F0\r
+:102A200002C0440F551F8A95E2F74093EA001092C6\r
+:102A3000EA008091EB0088608093EB001092E9003F\r
+:102A40008091E800877F86C08111ACC01091F201AF\r
+:102A50001F778091E3008078812B8093E300809141\r
+:102A6000E800877F8093E8000E94B1128091E8001F\r
+:102A700080FFFCCF8091E30080688093E300111118\r
+:102A800002C082E001C083E08093EF018BC08058D8\r
+:102A9000823008F087C08091F2019091F3018C3D63\r
+:102AA00053E0950779F583E08A838AE289834FB7FB\r
+:102AB000F894DE01139620E03EE051E2E32FF0E0CF\r
+:102AC00050935700E49120FF03C0E295EF703F5F01\r
+:102AD000EF708E2F90E0EA3010F0C79601C0C096DC\r
+:102AE0008D939D932F5F243149F74FBF8091E8006C\r
+:102AF000877F8093E8006AE270E0CE0101960E9431\r
+:102B0000BD1114C0AE014F5F5F4F6091F4010E9490\r
+:102B10000611BC01892B09F445C09091E800977F0C\r
+:102B20009093E80089819A810E941B128091E800AD\r
+:102B30008B778093E80036C08038A1F58091E8005B\r
+:102B4000877F8093E8008091EB018093F100809172\r
+:102B5000E8008E778093E8000E94B11223C08111B3\r
+:102B600021C08091F2019091F30199270297D4F44A\r
+:102B70008091E800877F8093E8008091F201809344\r
+:102B8000EB010E94B1128091EB01811106C080918E\r
+:102B9000E30087FD02C081E001C084E08093EF0183\r
+:102BA0000E94EE0F8091E80083FF0AC08091E80048\r
+:102BB000877F8093E8008091EB0080628093EB0038\r
+:102BC000AA960FB6F894DEBF0FBECDBFDF91CF91AE\r
+:102BD0001F910895CF938091EF018823A1F0C091B8\r
+:102BE000E900CF709091EC00892F817090FD80E812\r
+:102BF000C82B1092E9008091E80083FD0E94941494\r
+:102C0000CF70C093E900CF910895909374018093A1\r
+:102C100073010895E0917301F0917401309721F0F0\r
+:102C20000190F081E02D099480E00895EF92FF92E9\r
+:102C30001F93CF93DF93F82E192FE0917301F0913A\r
+:102C400074013097A9F10280F381E02D09958091FC\r
+:102C5000D70182FF2DC080FF04C083EE96E00E9462\r
+:102C60000508CF2DD12F10E18DEDE82E86E0F82E4E\r
+:102C70008091D70180FF0BC088811F928F93FF92B4\r
+:102C8000EF920E949E080F900F900F900F9011509E\r
+:102C900021961111EDCF8091D70180FF09C08BEDF6\r
+:102CA00096E0DF91CF911F91FF90EF900C94050873\r
+:102CB000DF91CF911F91FF90EF900895E091730104\r
+:102CC000F0917401309721F00480F581E02D099492\r
+:102CD000089520917101309172012817390771F020\r
+:102CE0009093720180937101E0917301F0917401EE\r
+:102CF000309721F00680F781E02D09940895209106\r
+:102D00006F01309170012817390771F090937001AD\r
+:102D100080936F01E0917301F0917401309721F07D\r
+:102D20000084F185E02D0994089508950C9495167A\r
+:102D30000E94CE220E941C0A0C949423CF93C82F89\r
+:102D40008091D70182FF1EC080FF04C08CEF96E007\r
+:102D50000E9405088091D70180FF0CC01F92CF937D\r
+:102D600087EF96E09F938F930E949E080F900F909D\r
+:102D70000F900F908091D70180FF04C085EF96E0FF\r
+:102D80000E9405088C2FCF910C94E00DCF92DF921A\r
+:102D9000EF92FF920F931F93CF93DF93CDB7DEB7E0\r
+:102DA0002B970FB6F894DEBF0FBECDBF0E94390A35\r
+:102DB00086E7C82E81E0D82E00E010E0E02E802FBC\r
+:102DC0000E946D0BF60141916F01F82EF426B1F4CB\r
+:102DD0000F5F1F4F0E30110589F78FEF89838A83AC\r
+:102DE0001B820E94D7228160782F9D838C8349812A\r
+:102DF0005A816B818D810E94691740C09091D701E3\r
+:102E000091FF04C08B870E94730B8B8520E030E01C\r
+:102E10004F2D50E0922FBA01022E02C07595679592\r
+:102E20000A94E2F760FF24C02E83EF8221E030E0B5\r
+:102E3000690102C0CC0CDD1C9A95E2F790E08C2170\r
+:102E40009D21892B09F420E028870E94D7228160E8\r
+:102E5000782F9A8789874E815F8168858A850E944D\r
+:102E60006917F801EA58FE4F8081C826C08206C063\r
+:102E70002F5F3F4F2630310569F6AACF0E94052704\r
+:102E80000E940A16909175018917A1F00E940A16F6\r
+:102E9000809375012B960FB6F894DEBF0FBECDBFA1\r
+:102EA000DF91CF911F910F91FF90EF90DF90CF9026\r
+:102EB0000C949E162B960FB6F894DEBF0FBECDBFB6\r
+:102EC000DF91CF911F910F91FF90EF90DF90CF9006\r
+:102ED0000895CF93DF93CDB7DEB72B970FB6F89455\r
+:102EE000DEBF0FBECDBF4F83588769877A878B8738\r
+:102EF000DE01119686E0FD0111928A95E9F785E0E1\r
+:102F0000FE01379601900D928A95E1F749815A8129\r
+:102F10006B817C818D819E810E946C1E2B960FB6E9\r
+:102F2000F894DEBF0FBECDBFDF91CF910895CF9350\r
+:102F3000C82F882309F4C1C0823859F40E940A16A8\r
+:102F400081FDBBC089E30E9409210E94E32189E33E\r
+:102F50000CC0833879F40E940A1680FDAEC083E568\r
+:102F60000E9409210E94E32183E50E945921CF910B\r
+:102F70000C94E321843859F40E940A1682FD9DC006\r
+:102F800087E40E9409210E94E32187E4EECF8CEFC1\r
+:102F90008C0F813A48F48C2F0E94972B81118DC0A1\r
+:102FA0008C2F0E940921E3CF80E28C0F883048F4F7\r
+:102FB000C77081E001C0880FCA95EAF70E94AC2172\r
+:102FC000D6CF8BE58C0F833078F4C53A29F0C63A1A\r
+:102FD00031F083E890E005C081E890E002C082E82B\r
+:102FE00090E0CF910C94691688E58C0F833108F03E\r
+:102FF00064C0C83A39F1C93A41F1CA3A49F1CB3A09\r
+:1030000051F1CC3A59F1CD3A61F1C03B69F1CE3A78\r
+:1030100071F1CF3A79F1C13B81F1C23B89F1C33BF8\r
+:1030200091F1C43B99F1C53BA1F1C63BA9F1C73B66\r
+:10303000B1F1C83BB9F1C93BC1F1CA3BC9F180E06C\r
+:1030400090E038C082EE90E035C089EE90E032C06A\r
+:103050008AEE90E02FC085EB90E02CC086EB90E0EC\r
+:1030600029C087EB90E026C08CEC90E023C08DEC6B\r
+:1030700090E020C083E891E01DC08AE891E01AC08A\r
+:1030800082E991E017C084E991E014C081E292E006\r
+:1030900011C083E292E00EC084E292E00BC085E2B0\r
+:1030A00092E008C086E292E005C087E292E002C0AA\r
+:1030B0008AE292E0CF910C947F16CF9108958823F5\r
+:1030C00009F44BC0823859F40E940A1681FF45C0AA\r
+:1030D00089E30E9409210E94E32189E30CC083381F\r
+:1030E00071F40E940A1680FF38C083E50E9409210E\r
+:1030F0000E94E32183E50E9459210C94E321843846\r
+:1031000059F40E940A1682FF28C087E40E94092110\r
+:103110000E94E32187E4EFCF9CEF980F913A58F398\r
+:1031200090E2980F983050F4877091E001C0990FA9\r
+:103130008A95EAF7892F0E94B221DFCF9BE5980F8D\r
+:10314000933020F480E090E00C946916885A833123\r
+:1031500020F480E090E00C947F160895882321F0FD\r
+:103160000E94AC210C94E3210895882321F00E9451\r
+:10317000B2210C94E3210895BF92CF92DF92EF9297\r
+:10318000FF920F931F93CF93DF9300D000D000D016\r
+:10319000CDB7DEB77C0185E0F701DE011196019025\r
+:1031A0000D928A95E1F7F70183819481892B09F4C7\r
+:1031B000DDC2908181818F3F19F49F3F09F4D6C20F\r
+:1031C000F7010281258122952F7099838A83898155\r
+:1031D0009A812E830E94C820182FB92E0E94C720E2\r
+:1031E0000E948E1FEB2DE295EF704E2F50E0FA01FA\r
+:1031F000E05AFF4F2E810C94A42E8B2D807F9B2DA7\r
+:103200009F70F92E882319F0F29480EFF8220023A2\r
+:1032100049F0FF2009F457C28F2D0E94BC210E9463\r
+:10322000E32151C2812F0E945F18FF2009F49EC242\r
+:103230008F2D0E94C22126960FB6F894DEBF0FBED6\r
+:10324000CDBFDF91CF911F910F91FF90EF90DF9055\r
+:10325000CF90BF900C94E3213B2D307F8B2D8F704E\r
+:10326000303211F08295807F112319F0113021F155\r
+:103270002CC00023B9F0222309F490C1213009F0B9\r
+:103280008DC126960FB6F894DEBF0FBECDBFDF917D\r
+:10329000CF911F910F91FF90EF90DF90CF90BF9053\r
+:1032A0000C94CC21222319F0213009F45FC28E83C3\r
+:1032B0000E94CF218E8186C1002321F0223008F0A8\r
+:1032C00055C26CC1211152C27DC1002321F02223BD\r
+:1032D00009F464C1F8C1222309F474C109C28B2D19\r
+:1032E00086958695837019F08130D1F03FC2002316\r
+:1032F00021F0812F9B2D937002C080E090E02696F4\r
+:103300000FB6F894DEBF0FBECDBFDF91CF911F91F6\r
+:103310000F91FF90EF90DF90CF90BF900C946916C3\r
+:10332000002321F0812F9B2D937002C080E090E05C\r
+:1033300026960FB6F894DEBF0FBECDBFDF91CF91BA\r
+:103340001F910F91FF90EF90DF90CF90BF900C9462\r
+:103350007F16812F002319F00E948B2502C00E9446\r
+:10336000F32526960FB6F894DEBF0FBECDBFDF91D2\r
+:10337000CF911F910F91FF90EF90DF90CF90BF9072\r
+:103380000C9478268B2D837009F075C00111EEC165\r
+:10339000812F829586958770880F880F912F9F7057\r
+:1033A000C92ED12CE12CF12C082E04C0CC0CDD1C34\r
+:1033B000EE1CFF1C0A94D2F714FF12C00FE010E0BD\r
+:1033C00020E030E004C0000F111F221F331F8A9538\r
+:1033D000D2F7C901B801609570958095909503C0AA\r
+:1033E00060E070E0CB014B2D46954695437042302E\r
+:1033F000C1F060F56C297D298E299F29413051F15A\r
+:1034000026960FB6F894DEBF0FBECDBFDF91CF91E9\r
+:103410001F910F91FF90EF90DF90CF90BF900C9491\r
+:10342000B51F6C297D298E299F2926960FB6F89401\r
+:10343000DEBF0FBECDBFDF91CF911F910F91FF90E7\r
+:10344000EF90DF90CF90BF900C94D11F0E94B51FDA\r
+:10345000C701B60126960FB6F894DEBF0FBECDBFEA\r
+:10346000DF91CF911F910F91FF90EF90DF90CF9060\r
+:10347000BF900C94991F002319F08B2D817001C00F\r
+:103480008695882309F472C1812F8295869587706D\r
+:10349000880F880F912F9F70C92ED12CE12CF12C11\r
+:1034A000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C5\r
+:1034B00014FF12C00FE010E020E030E004C0000F65\r
+:1034C000111F221F331F8A95D2F7C901B8016095D9\r
+:1034D00070958095909503C060E070E0CB014B2D16\r
+:1034E0004695469543704230C1F060F56C297D29C0\r
+:1034F0008E299F29413051F126960FB6F894DEBFF0\r
+:103500000FBECDBFDF91CF911F910F91FF90EF9034\r
+:10351000DF90CF90BF900C948F206C297D298E294D\r
+:103520009F2926960FB6F894DEBF0FBECDBFDF9160\r
+:10353000CF911F910F91FF90EF90DF90CF90BF90B0\r
+:103540000C94AB200E948F20C701B60126960FB6BF\r
+:10355000F894DEBF0FBECDBFDF91CF911F910F91C9\r
+:10356000FF90EF90DF90CF90BF900C947320103FAE\r
+:10357000D1F118F4103E50F4A1C0123F09F463C019\r
+:1035800008F44CC0133F09F473C098C01F708B2D12\r
+:103590008F710023A1F00E940C20812F26960FB678\r
+:1035A000F894DEBF0FBECDBFDF91CF911F910F9179\r
+:1035B000FF90EF90DF90CF90BF900C94AE180E94D8\r
+:1035C0002D20812F26960FB6F894DEBF0FBECDBFFB\r
+:1035D000DF91CF911F910F91FF90EF90DF90CF90EF\r
+:1035E000BF900C94B5180023A9F02111BFC08B2DFA\r
+:1035F0008F7126960FB6F894DEBF0FBECDBFDF9158\r
+:10360000CF911F910F91FF90EF90DF90CF90BF90DF\r
+:103610000C945220223008F0A9C0E9CF0023A9F071\r
+:103620008B2D8F7126960FB6F894DEBF0FBECDBFDF\r
+:10363000DF91CF911F910F91FF90EF90DF90CF908E\r
+:10364000BF900C940C20002359F38B2D8F7126967C\r
+:103650000FB6F894DEBF0FBECDBFDF91CF911F91A3\r
+:103660000F91FF90EF90DF90CF90BF900C942D20A2\r
+:10367000002399F08B2D8F7126960FB6F894DEBF3C\r
+:103680000FBECDBFDF91CF911F910F91FF90EF90B3\r
+:10369000DF90CF90BF900C94F71F26960FB6F8944A\r
+:1036A000DEBF0FBECDBFDF91CF911F910F91FF9075\r
+:1036B000EF90DF90CF90BF900C94ED1F0023A9F006\r
+:1036C000222309F4ADCF812F26960FB6F894DEBFE2\r
+:1036D0000FBECDBFDF91CF911F910F91FF90EF9063\r
+:1036E000DF90CF90BF900C949717222309F4ADCFB1\r
+:1036F000812F26960FB6F894DEBF0FBECDBFDF91A7\r
+:10370000CF911F910F91FF90EF90DF90CF90BF90DE\r
+:103710000C945F184B2D4F70612FC7010E94A708B2\r
+:1037200026960FB6F894DEBF0FBECDBFDF91CF91C6\r
+:103730001F910F91FF90EF90DF90CF90BF900C946E\r
+:10374000111F4B2D4F70612FC70126960FB6F894AD\r
+:10375000DEBF0FBECDBFDF91CF911F910F91FF90C4\r
+:10376000EF90DF90CF90BF900C94ED0D26960FB6A2\r
+:10377000F894DEBF0FBECDBFDF91CF911F910F91A7\r
+:10378000FF90EF90DF90CF90BF9008950E94C921E5\r
+:103790000E949E210E94E3210E94AA270E9478266F\r
+:1037A00080E090E00E94691680E090E00C947F1623\r
+:1037B0000E94B9210C94C61B0E94C820292F229573\r
+:1037C0002F702C3030F42A3048F42250223078F414\r
+:1037D00005C02C3041F02F3031F009C0803E48F058\r
+:1037E000803F29F406C093FB882780F9089580E084\r
+:1037F000089581E00895CF93DF9300D000D01F9209\r
+:10380000CDB7DEB70F900F900F900F900F90DF9114\r
+:10381000CF910895CF93DF9300D000D000D0CDB7E3\r
+:10382000DEB726960FB6F894DEBF0FBECDBFDF9190\r
+:10383000CF9108951F93CF93DF93C091840116E039\r
+:1038400080918501C81799F0D0E01C9FF0011D9F61\r
+:10385000F00D1124EA57FE4F40815181628173813E\r
+:10386000848195810E940A1C2196C770E9CFDF915F\r
+:10387000CF911F9108954091B6015091B701609189\r
+:10388000B8017091B9018091BA019091BB010C947B\r
+:103890000A1C8091BB0182958F7009F054C0809101\r
+:1038A000B801882309F44FC080918401A09185015B\r
+:1038B0004091B9015091BA016091B6017091B70180\r
+:1038C000B6E08A1709F43FC090E041155105C1F1F7\r
+:1038D0007F3F11F46F3FA1F1B89FF001B99FF00D48\r
+:1038E0001124EA57FE4F218127132AC02081261375\r
+:1038F00027C02281211124C0238134812417350758\r
+:1039000010F421503109241B350B283C3105C0F43B\r
+:103910002091BB012F7020612093BB0126E0289FDE\r
+:10392000F001299FF00D1124E557FE4F80818F7023\r
+:103930008061808386EB91E00E94BC180C941A1C75\r
+:1039400001968770BECF0895CF92DF92EF92FF92DB\r
+:103950000F931F93CF93DF93CDB7DEB762970FB668\r
+:10396000F894DEBF0FBECDBF8C0185E0F801DE010B\r
+:103970001D9601900D928A95E1F7D8014C91119610\r
+:103980005C91119712966C918091B9019091BA0156\r
+:10399000009709F475C13091B6017091B7017F3F6E\r
+:1039A00019F43F3F09F46CC1F801C380D480E09062\r
+:1039B000B801EE2009F4BEC02091BB01C816D9069B\r
+:1039C00028F0D601A81BB90BCD0104C080959095B5\r
+:1039D0008C0D9D1DFF24F394883C910578F0F12C0B\r
+:1039E000207F09F0C4C07C2DD98AC88A89890E94A9\r
+:1039F000FB1B86EB91E00E94BC18AFC0822F807F3A\r
+:103A000009F045C0571313C0431311C061110FC013\r
+:103A10002F7020612093BB010E943B1C86EB91E03C\r
+:103A20000E94BC188091BB01F80185832EC0CD286F\r
+:103A300019F15F3F11F44F3FF9F0F62E61111CC0F0\r
+:103A4000809184012091850136E0821709F45BC0E2\r
+:103A500090E0389FF001399FF00D1124EA57FE4F96\r
+:103A60007181571306C07081471303C072817111B1\r
+:103A700003C001968770E9CFF62E662309F41CC1B6\r
+:103A80008091BB0181608093BB01F12C15C157135C\r
+:103A900009C0431307C0611105C08091BB01F80143\r
+:103AA0008583C8C04D875E878D859E856A8B0E9401\r
+:103AB000DC1B6A898823D1F16623C1F12091BB0107\r
+:103AC000822F82958F7090E0029774F08091B601FA\r
+:103AD0009091B70198878F831986DB86CA862C87D9\r
+:103AE000CE0107960E94BC1886E0F801A6EBB1E073\r
+:103AF00001900D928A95E1F70E94491C0E943B1C9F\r
+:103B0000FF24F394D9C04D875E878D859E850E94E2\r
+:103B1000C820292F22952F70223008F0C1C09F7035\r
+:103B200009F0BBC0805E883008F4C6C0C8010E949E\r
+:103B3000BC18E6CFC816D90608F453C0F601E81B36\r
+:103B4000F90BCF01883C910508F450C0F12C7C2D75\r
+:103B5000D98AC88A89890E94FB1BE6EBF1E086E0DE\r
+:103B6000DF011D928A95E9F70E943B1CA5C05713FF\r
+:103B700014C0431312C0611110C08091BB01F80141\r
+:103B80008583C8010E94BC1886E0E6EBF1E0DF0106\r
+:103B90001D928A95E9F7FE2C8FC04D875E878D8533\r
+:103BA0009E856A8B0E94DC1B6A89882309F4BECF3C\r
+:103BB000662309F4BBCF2091BB01822F82958F70C1\r
+:103BC00090E002970CF490CF8091B6019091B701EC\r
+:103BD0009A8389831B82DD82CC822E83CE0101965B\r
+:103BE00081CF809590958C0D9D1DACCFF62E6623D0\r
+:103BF00009F49CCF571333C0431331C02091BB014C\r
+:103C000020FD24C0822F82958F70482F50E04115EF\r
+:103C10005105E1F0D80115962C9315974F305105B9\r
+:103C200049F08F5F982F9295907F822F8F70892B0C\r
+:103C300015968C93C8010E94BC1886E0F801A6EB8B\r
+:103C4000B1E001900D928A95E1F78ECF86E0F80100\r
+:103C5000A6EBB1E001900D928A95E1F72DC04D875A\r
+:103C60005E878D859E850E94DC1B81113DCF8091F2\r
+:103C7000BB0181608093BB01C8010E94BC181CC0BD\r
+:103C8000662309F453CF4D875E878D859E850E94FC\r
+:103C9000DC1B882309F44ACF27CF811143CF0CC006\r
+:103CA000243008F043CF9F7009F43CCFD80115961B\r
+:103CB0009C91907F09F036CF8F2D62960FB6F894C5\r
+:103CC000DEBF0FBECDBFDF91CF911F910F91FF904F\r
+:103CD000EF90DF90CF9008951F93CF93DF93CDB7F0\r
+:103CE000DEB72C970FB6F894DEBF0FBECDBF4F8363\r
+:103CF000588769877A878B879C87CE0107960E94B1\r
+:103D0000A41C882371F08A859B85892B09F441C006\r
+:103D100088858F3F09F065C08F818F3F09F061C0B2\r
+:103D200038C086E0FE013796DE01119601900D92B3\r
+:103D30008A95E1F76A857B856115710551F1FF81EF\r
+:103D4000E885EF3F11F4FF3F21F12091850130E03C\r
+:103D5000C9010196877099274091840150E084172A\r
+:103D6000950709F447C0F983EA837D836C8396E065\r
+:103D7000929FD001939FB00D1124AA57BE4FFE0110\r
+:103D8000319601900D929A95E1F7809385010E94FA\r
+:103D90001A1C16E080918401909185018917B9F170\r
+:103DA000189FC00111248A579E4F0E94A41C88238B\r
+:103DB00071F1E09184011E9FF0011124EA57FE4F3A\r
+:103DC0004081518162817381848195810E940A1CA6\r
+:103DD0008091840190E001968770992780938401F7\r
+:103DE000D9CF4F81588569857A858B859C850E94BE\r
+:103DF0000A1CCFCF0E94D81B10928501109284011B\r
+:103E0000E6EBF1E086E0DF011D928A95E9F72C965A\r
+:103E10000FB6F894DEBF0FBECDBFDF91CF911F91DB\r
+:103E20000895EF92FF920F931F93CF93DF938C012E\r
+:103E3000892B09F46CC0F12CEE24E394E80121965F\r
+:103E4000F8018491843740F4843008F051C0813007\r
+:103E500081F0823019F15BC0853709F444C0A8F1C4\r
+:103E60009CE7980F903708F052C08F770E945F1838\r
+:103E700041C00E5F1F4FFE01849190E2980F983071\r
+:103E800050F48770FE2D01C0FF0F8A95EAF78F2F3F\r
+:103E90000E94BC2114C00E9497172DC00E5F1F4FB7\r
+:103EA000FE01849190E2980F983060F48770FE2DA7\r
+:103EB00001C0FF0F8A95EAF78F2F0E94C2210E944E\r
+:103EC000E32119C00E945F1816C00E5F1F4FFE014C\r
+:103ED000C491CC2381F08FE99FE00197F1F700C0F6\r
+:103EE0000000C150F6CF0E5F1F4FFE01F49003C0DB\r
+:103EF0000E9497178E018F2D882309F49FCFEFE939\r
+:103F0000FFE03197F1F700C000008150F5CFDF915D\r
+:103F1000CF911F910F91FF90EF90089508956093B6\r
+:103F2000C0017093C1018093C2019093C3010C94AE\r
+:103F3000C61B0F931F930091C0011091C1012091E6\r
+:103F4000C2013091C301DC01CB01802B912BA22B4C\r
+:103F5000B32B8093C0019093C101A093C201B09391\r
+:103F6000C3011F910F910C94C61B0F931F930091D7\r
+:103F7000C0011091C1012091C2013091C301DC0147\r
+:103F8000CB0180239123A223B3238093C00190937C\r
+:103F9000C101A093C201B093C3011F910F910C9472\r
+:103FA000C61B0F931F930091C0011091C101209176\r
+:103FB000C2013091C301DC01CB0180279127A227E8\r
+:103FC000B3278093C0019093C101A093C201B09325\r
+:103FD000C3011F910F910C94C61B1092BC0110924B\r
+:103FE000BD011092BE011092BF010C94C61B41E0AE\r
+:103FF00050E060E070E004C0440F551F661F771F5B\r
+:104000008A95D2F74093BC015093BD016093BE01E5\r
+:104010007093BF010C94C61B41E050E060E070E07B\r
+:1040200004C0440F551F661F771F8A95D2F78091F1\r
+:10403000BC019091BD01A091BE01B091BF01482B80\r
+:10404000592B6A2B7B2B4093BC015093BD0160938D\r
+:10405000BE017093BF010C94C61B41E050E060E0CC\r
+:1040600070E004C0440F551F661F771F8A95D2F772\r
+:1040700040955095609570958091BC019091BD01DF\r
+:10408000A091BE01B091BF01482359236A237B232D\r
+:104090004093BC015093BD016093BE017093BF017A\r
+:1040A0000C94C61B41E050E060E070E004C0440F97\r
+:1040B000551F661F771F8A95D2F78091BC0190919A\r
+:1040C000BD01A091BE01B091BF01482759276A27C1\r
+:1040D0007B274093BC015093BD016093BE01709358\r
+:1040E000BF010C94C61B0F931F930091BC0110914C\r
+:1040F000BD012091BE013091BF01DC01CB01802BBD\r
+:10410000912BA22BB32B8093BC019093BD01A09364\r
+:10411000BE01B093BF011F910F910C94C61B0F936A\r
+:104120001F930091BC011091BD012091BE013091FF\r
+:10413000BF01DC01CB0180239123A223B323809311\r
+:10414000BC019093BD01A093BE01B093BF011F912C\r
+:104150000F910C94C61B0F931F930091BC011091FB\r
+:10416000BD012091BE013091BF01DC01CB01802750\r
+:104170009127A227B3278093BC019093BD01A09300\r
+:10418000BE01B093BF011F910F910C94C61B0895FF\r
+:10419000CF92DF92EF92FF920F931F93CF93DF9313\r
+:1041A0008C01C090BC01D090BD01E090BE01F090A8\r
+:1041B000BF018091C0019091C101A091C201B09155\r
+:1041C000C301C82AD92AEA2AFB2ACFE1D0E0D701C5\r
+:1041D000C6010C2E04C0B695A795979587950A94AD\r
+:1041E000D2F780FF07C0B8018C2F0E949D0C813050\r
+:1041F000910531F4219758F7B80180E00E949D0C99\r
+:10420000DF91CF911F910F91FF90EF90DF90CF90B2\r
+:10421000089590910C01992379F190910D019923C2\r
+:1042200059F1982F9695969596959F30A0F4E09128\r
+:104230000E01F0910F01E90FF11D877021E030E0D0\r
+:10424000A90102C0440F551F8A95E2F7CA01918166\r
+:10425000892B818308959091D70190FF29C01F92E7\r
+:104260008F938DE297E09F938F930E949E080F900B\r
+:104270000F900F900F90089520910E0130910F0133\r
+:10428000F90132969FEF40E05191851789F09F3FE9\r
+:1042900019F4511101C0942F4F5F4E30A9F79F3F81\r
+:1042A00039F0F901E90FF11D97FDFA958283089520\r
+:1042B000089590910C01992381F190910D0199231A\r
+:1042C00061F1982F9695969596959F30A8F4E09178\r
+:1042D0000E01F0910F01E90FF11D877021E030E030\r
+:1042E000A90102C0440F551F8A95E2F7CA018095C3\r
+:1042F00091818923818308959091D70190FF1DC0FA\r
+:104300001F928F938FE097E09F938F930E949E0858\r
+:104310000F900F900F900F90089520910E01309103\r
+:104320000F01F9013296205F3F4F9081891301C040\r
+:1043300010823196E217F307C1F7089581E090E00B\r
+:10434000E0910E01F0910F01E80FF91F1082019624\r
+:1043500080319105A9F708959091D601892B80931A\r
+:10436000D601089580959091D60189238093D60136\r
+:1043700008951092D60108959091D501892B8093CC\r
+:10438000D501089580959091D50189238093D50119\r
+:1043900008951092D50108958093C4010895109254\r
+:1043A000C401089580910E0190910F01FC01319696\r
+:1043B0009C01205F3F4F80E0919191118F5FE21748\r
+:1043C000F307D1F70895E0910E01F0910F0180916C\r
+:1043D000D6018083E0910E01F0910F0190818091D0\r
+:1043E000D501892B80838091C401882361F0E091FD\r
+:1043F0000E01F0910F019081892B80830E94D221C0\r
+:1044000081111092C40180910E0190910F010C94C2\r
+:10441000161690933B0180933A010895CF92DF9254\r
+:10442000EF92FF926C01EE24FF24C114D104E10449\r
+:10443000F10421F0C701B60120E101C020E0C72E40\r
+:10444000D82EE92EFF24C114D104E104F10419F09F\r
+:10445000285FC701B6016B017C0154E0F694E79434\r
+:10446000D794C7945A95D1F7C114D104E104F1044B\r
+:1044700019F02C5FC701B6016B017C0142E0F69494\r
+:10448000E794D794C7944A95D1F7C114D104E104B5\r
+:10449000F10419F02E5FC701B601DC01CB01B6951E\r
+:1044A000A79597958795892B8A2B8B2B09F02F5FE2\r
+:1044B000822FFF90EF90DF90CF9008958295982FF4\r
+:1044C000937344E0949F900111248C7C869586958B\r
+:1044D000282B822F8575880F2A7A2695822B08959E\r
+:1044E0001F93CF93DF931F92CDB7DEB799830E94BE\r
+:1044F0005E22182F9981892F0E945E22212F30E0A1\r
+:10450000322F2227A901482BCA010F90DF91CF91AA\r
+:104510001F9108958091EF01843011F120E488E12A\r
+:1045200090E00FB6F894A895809360000FBE20939A\r
+:10453000600083B7817F846083BF83B7816083BF5E\r
+:104540007894889583B78E7F83BF0FB6F894A8952B\r
+:1045500080916000886180936000109260000FBEBF\r
+:10456000089508950C94B122CF930E94B2220E9424\r
+:10457000390A0E94B122C0E08C2F0E946D0B81117C\r
+:1045800004C0CF5FCE30C1F701C081E0CF91089564\r
+:104590000E94D81B0E940A160C94E00D82E084BD94\r
+:1045A00093E095BD9AEF97BD80936E0008952FB765\r
+:1045B000F8948091D8019091D901A091DA01B0913D\r
+:1045C000DB012FBF0895CF92DF92EF92FF920F93FE\r
+:1045D0001F932FB7F8944091D8015091D901609161\r
+:1045E000DA017091DB012FBF6A017B01EE24FF2409\r
+:1045F0008C0120E030E0C016D106E206F30610F48C\r
+:10460000415051099A01281B390BC9011F910F9183\r
+:10461000FF90EF90DF90CF9008951F920F920FB60A\r
+:104620000F9211248F939F93AF93BF938091D801E2\r
+:104630009091D901A091DA01B091DB010196A11D01\r
+:10464000B11D8093D8019093D901A093DA01B09362\r
+:10465000DB01BF91AF919F918F910F900FBE0F9093\r
+:104660001F9018950E940313F8942FEF87EA91E6A4\r
+:10467000215080409040E1F700C0000087E090EBBF\r
+:10468000DC018093F8019093F901A093FA01B093B3\r
+:10469000FB019CE088E10FB6F894A8958093600038\r
+:1046A0000FBE90936000FFCFEF92FF920F931F9386\r
+:1046B000CF93DF93D82FC0E08C2F0E946D0B00E0CA\r
+:1046C00010E0E82EF12CC701002E02C095958795C9\r
+:1046D0000A94E2F780FD06C00F5F1F4F06301105F8\r
+:1046E00091F709C0602F7C2F80E00E947A0C8D1317\r
+:1046F000F3CF81E004C0CF5FCE30F1F680E0DF91F0\r
+:10470000CF911F910F91FF90EF900895CF93C82FF5\r
+:104710008CE20E945423882321F08C2FCF910C949B\r
+:10472000542380E0CF910895CF930E94E324811118\r
+:1047300002C00E94C92482E597E00E940508C5E6F0\r
+:10474000C15049F00E94390A8FE39CE90197F1F7C3\r
+:1047500000C00000F5CF8BE497E00E94050889E2D5\r
+:104760000E948623811113C18AE20E94862381114F\r
+:104770000E94C92485E00E94862381110E94322371\r
+:104780000E94EE248093D70187E00E94862388232D\r
+:10479000A9F18BE10E948623882351F08091D701F3\r
+:1047A00081FB222720F991E0922790FB81F90EC02E\r
+:1047B0008EE00E948623882361F08091D70182FBDE\r
+:1047C000222720F991E0922790FB82F98093D7016C\r
+:1047D00015C080E10E9486239091D701882341F083\r
+:1047E00093FB222720F981E0822780FB93F904C004\r
+:1047F000892F809580FB90F99093D7018091D70104\r
+:104800000E94F2240E9400258093E90180EE0E941C\r
+:104810008623882341F08091E901982F909590FBA1\r
+:1048200080F98093E90189E30E948623882359F067\r
+:104830008091E90181FB222720F991E0922790FBEA\r
+:1048400081F98093E90182EE0E948623882359F042\r
+:104850008091E90182FB222720F991E0922790FBC9\r
+:1048600082F98093E90186EE0E948623882359F01D\r
+:104870008091E90183FB222720F991E0922790FBA8\r
+:1048800083F98093E90183EE0E948623882359F0FF\r
+:104890008091E90184FB222720F991E0922790FB87\r
+:1048A00084F98093E90185E30E948623882359F0E7\r
+:1048B0008091E90185FB222720F991E0922790FB66\r
+:1048C00085F98093E90181E30E948623882359F0CA\r
+:1048D0008091E90186FB222720F991E0922790FB45\r
+:1048E00086F98093E90181E10E948623882359F0AB\r
+:1048F0008091E90187FB222720F991E0922790FB24\r
+:1049000087F98093E9018091E9010E940425809153\r
+:10491000E90187FB882780F980930D0187E20E94D7\r
+:104920008623C82F8EE10E9486238111C2608FE109\r
+:104930000E9486238111C46080E20E948623811137\r
+:10494000C86081E20E9486238111C06182E20E94D8\r
+:1049500086238111C06283E20E9486238111C06494\r
+:1049600084E20E948623882311F0C06802C0CC2311\r
+:1049700029F08C2F0E94FB246C2F03C00E94F72487\r
+:10498000682F70E080E090E0CF910C948F1FCF9162\r
+:1049900008956DEE7EEF80E090E00E94DA2E60E0F8\r
+:1049A00082E090E00E94CC2E60E083E090E00E94E4\r
+:1049B000CC2E60E084E090E00E94CC2E60E085E0A8\r
+:1049C00090E00C94CC2E80E090E00E94C62E21E076\r
+:1049D0008D3E9E4F09F020E0822F089582E090E006\r
+:1049E0000C94BE2E682F82E090E00C94CC2E83E0D5\r
+:1049F00090E00C94BE2E682F83E090E00C94CC2EB7\r
+:104A000084E090E00C94BE2E682F84E090E00C943B\r
+:104A1000CC2E8091DE0180FF0BC06091130185E0F8\r
+:104A2000689FB001112475956795759567952BC0A2\r
+:104A300081FF09C06091130185E0689FB0011124D6\r
+:104A40007595679520C082FF07C06091130185E0CE\r
+:104A5000689FB001112417C09091DF019923D1F014\r
+:104A600060911201961788F72091130185E0289F25\r
+:104A700090011124929FA001939F500D112470E08A\r
+:104A8000CA010E94902E6038710540F461157105CD\r
+:104A900019F406C065E070E0862F08958FE7089549\r
+:104AA00081E008958091DE0180FF08C060911101CE\r
+:104AB00070E0759567957595679521C081FF06C073\r
+:104AC0006091110170E07595679519C082FF04C06F\r
+:104AD0006091110170E010C09091DF01992399F06D\r
+:104AE000609110019617A0F780911101899FC00174\r
+:104AF000112470E00E94902E6038710540F4611519\r
+:104B0000710519F406C061E070E0862F08958FE703\r
+:104B1000089581E00895803F21F40E940925819540\r
+:104B200004C0813F29F40E9409258093E201089581\r
+:104B3000823F21F40E940925819504C0833F29F416\r
+:104B40000E9409258093E1010895893F19F40E948C\r
+:104B5000522505C08A3F31F40E94522581958093E9\r
+:104B6000E30108958B3F21F40E945225819504C0F2\r
+:104B70008C3F29F40E9452258093E4010895843FDC\r
+:104B800021F48091E001816017C0853F21F480917C\r
+:104B9000E001826011C0863F21F48091E0018460D1\r
+:104BA0000BC0873F21F48091E001886005C0883FF9\r
+:104BB00031F48091E00180618093E00108958D3FA0\r
+:104BC00021F48091DE0181600BC08E3F21F4809141\r
+:104BD000DE01826005C08F3F29F48091DE01846090\r
+:104BE0008093DE010895803F39F48091E20187FFD0\r
+:104BF0006CC01092E20169C0813F29F48091E2010A\r
+:104C00001816BCF362C09091E101823F29F497FF2E\r
+:104C10005CC01092E10159C0833F19F41916CCF31E\r
+:104C200054C0893F41F48091E30118160CF04DC047\r
+:104C30001092E3014AC08A3F29F48091E30187FF83\r
+:104C400044C0F6CF8B3F39F48091E40187FF3DC02B\r
+:104C50001092E4013AC08C3F29F48091E4011816C7\r
+:104C6000BCF333C0843F21F48091E0018E7F17C0F4\r
+:104C7000853F21F48091E0018D7F11C0863F21F4B2\r
+:104C80008091E0018B7F0BC0873F21F48091E00190\r
+:104C9000877F05C0883F31F48091E0018F7E80934B\r
+:104CA000E00113C08D3F21F48091DE018E7F0BC0A7\r
+:104CB0008E3F21F48091DE018D7F05C08F3F29F466\r
+:104CC0008091DE018B7F8093DE018091E101811173\r
+:104CD0000EC08091E20181110AC08091E30181112F\r
+:104CE00006C08091E401811102C01092DF01089595\r
+:104CF0008091D70183FF7EC08EE897E00E9405086F\r
+:104D00008091E0011F928F9389E897E09F938F93A2\r
+:104D10000E949E0887E897E00E9405088091E101C3\r
+:104D2000282F082E000C330B3F938F9384E897E0D5\r
+:104D30009F938F930E949E0882E897E00E94050847\r
+:104D40008091E201282F082E000C330B3F938F93A4\r
+:104D50008FE797E09F938F930E949E088DE797E0DF\r
+:104D60000E9405088091E301282F082E000C330BC8\r
+:104D70003F938F938AE797E09F938F930E949E08BB\r
+:104D800088E797E00E9405088091E401282F082E0B\r
+:104D9000000C330B3F938F9385E797E09F938F939E\r
+:104DA0000E949E0882E797E00E9405088091DF013B\r
+:104DB0001F928F938FE697E09F938F930E949E0898\r
+:104DC0008DE697E00E9405088091DE011F928F9387\r
+:104DD0008AE697E09F938F930E949E0887E697E06C\r
+:104DE0000E9405088DB79EB74C960FB6F8949EBFEB\r
+:104DF0000FBE8DBF80EE91E00E945E160E94D7220A\r
+:104E00009093DD018093DC0108951F93CF93DF938E\r
+:104E10008091DC019091DD010E94E322AC01909130\r
+:104E2000DF01992321F02091140130E006C0209188\r
+:104E300015018AE0289F900111244217530708F4B6\r
+:104E400085C08091E101C091E201D091E301109110\r
+:104E5000E401811107C0C11175C0D11173C01111D6\r
+:104E600071C074C09F3F19F09F5F9093DF011816C7\r
+:104E700024F40E9409258093E1018091E10187FFDC\r
+:104E800005C00E94092581958093E1011C1624F438\r
+:104E90000E9409258093E2018091E20187FF05C00D\r
+:104EA0000E94092581958093E2016091E1016623CA\r
+:104EB00031F1C091E201CC2311F1062E000C770BE9\r
+:104EC000880B990B0E948B2D23E333E343E35FE3CD\r
+:104ED0000E94EF2D0E94532D6093E1016C2FCC0FA7\r
+:104EE000770B880B990B0E948B2D23E333E343E36D\r
+:104EF0005FE30E94EF2D0E94532D6093E2011D1687\r
+:104F000024F40E9452258093E3018091E30187FFFE\r
+:104F100005C00E94522581958093E301111624F467\r
+:104F20000E9452258093E4018091E40187FF05C02F\r
+:104F30000E94522581958093E401DF91CF911F91CA\r
+:104F40000C9478269F3F09F08FCFA0CFDF91CF91AF\r
+:104F50001F910895E0EEF1E085E0DF011D928A9552\r
+:104F6000E9F71092DF011092DE01089581EB99E0DC\r
+:104F70000E9405081F9281E08F931F9285E08F9316\r
+:104F800083E699E09F938F930E949E080F900F9065\r
+:104F90000F900F900F900F9008958330E9F128F44F\r
+:104FA000813061F0823009F10895853009F462C0E2\r
+:104FB00008F449C0863009F474C008958091150141\r
+:104FC000262F30E0280F311D2F3F310524F4680FC4\r
+:104FD0006093150103C08FEF809315018091150137\r
+:104FE0001F928F938CE998E072C080911401262F54\r
+:104FF00030E0280F311D2F3F310524F4680F6093F6\r
+:10500000140103C08FEF80931401809114011F924B\r
+:105010008F938AE898E05BC080911301262F30E0DF\r
+:10502000280F311D2F3F310524F4680F60931301C1\r
+:1050300003C08FEF80931301809113011F928F9310\r
+:1050400087E798E044C080911201262F30E0280FB6\r
+:10505000311D2F3F310524F4680F6093120103C006\r
+:105060008FEF80931201809112011F928F9382E63D\r
+:1050700098E02DC080911101262F30E0280F311DBE\r
+:105080002F3F310524F4680F6093110103C08FEFA7\r
+:1050900080931101809111011F928F9389E498E010\r
+:1050A00016C080911001262F30E0280F311D2F3FB0\r
+:1050B000310524F4680F6093100103C08FEF8093D3\r
+:1050C0001001809110011F928F938EE298E09F93C0\r
+:1050D0008F930E949E080F900F900F900F9008954D\r
+:1050E000833081F128F4813059F08230D1F0089575\r
+:1050F000853009F449C0B8F1863009F456C00895E6\r
+:1051000080911501681720F4861B8093150102C059\r
+:1051100010921501809115011F928F938FE198E0F5\r
+:1051200054C080911401681720F4861B80931401E9\r
+:1051300002C010921401809114011F928F938DE090\r
+:1051400098E043C080911301681720F4861B809378\r
+:10515000130102C010921301809113011F928F93CB\r
+:105160008AEF97E032C080911201681720F4861B05\r
+:105170008093120102C010921201809112011F92BD\r
+:105180008F9385EE97E021C080911101681720F47C\r
+:10519000861B8093110102C01092110180911101B0\r
+:1051A0001F928F938CEC97E010C0809110016817CC\r
+:1051B00020F4861B8093100102C010921001809190\r
+:1051C00010011F928F9381EB97E09F938F930E9422\r
+:1051D0009E080F900F900F900F900895CF93C82FB7\r
+:1051E0001F928F9386EB9AE09F938F930E949E0865\r
+:1051F00081E090E0A0E0B0E0BC01CD0104C0660F0A\r
+:10520000771F881F991FCA95D2F70E948F1F0F9092\r
+:105210000F900F900F90CF910C94D81BCF938D319E\r
+:1052200009F465C0B0F58E3009F4CCC100F58730C3\r
+:1052300009F49BC1A8F4863009F06DC28091D701B2\r
+:10524000817F8E7F8093D7018BEB9AE00E940508C7\r
+:1052500080E09FE00E94050881E08093E60180C124\r
+:10526000883009F44FC08B3009F47CC154C28631B8\r
+:1052700009F4F0C138F4803109F4B8C1813109F47E\r
+:1052800030C249C2893109F4CEC18B3109F486C1DB\r
+:1052900042C2853309F437C248F4873209F433C275\r
+:1052A00008F433C2893209F42EC235C2833438F48B\r
+:1052B0008A3308F02CC2883309F454C12CC28334D9\r
+:1052C00009F421C2883409F026C20E94D81B8FEE4F\r
+:1052D0009EE00E9405089FEF23ED80E3915020405F\r
+:1052E0008040E1F700C000000E94322339C18FE006\r
+:1052F0009FE00E9405080E940D2D0E940A160E9440\r
+:10530000E00D2EC184E09FE00E9405088CEC9CE03B\r
+:105310000E9405080E94F7241F928F9389EC9CE05D\r
+:105320009F938F930E949E0887EC9CE00E94050843\r
+:105330000E94EE24C82F84EB9CE00E9405081F9277\r
+:10534000CF938FEA9CE09F938F930E949E088DEAF3\r
+:105350009CE00E94050883EA9CE00E9405088C2FCF\r
+:1053600081701F928F9380EA9CE09F938F930E949D\r
+:105370009E088EE99CE00E94050884E99CE00E945A\r
+:105380000508C1FB882780F91F928F9381E99CE073\r
+:105390009F938F930E949E088FE89CE00E940508CF\r
+:1053A00083E89CE00E940508C2FB882780F91F92D1\r
+:1053B0008F9380E89CE09F938F930E949E088EE7D6\r
+:1053C0009CE00E94050885E79CE00E940508C3FB5D\r
+:1053D000CC27C0F91F92CF9382E79CE09F938F93D5\r
+:1053E0000E949E0880E79CE00E9405080E9400251C\r
+:1053F000C82F8CE59CE00E9405081F92CF9387E59B\r
+:105400009CE09F938F930E949E0885E59CE00E94FC\r
+:1054100005088CE39CE00E9405088C2F81701F9288\r
+:105420008F9389E39CE09F938F930E949E088DB792\r
+:105430009EB780960FB6F8949EBF0FBE8DBF87E3D0\r
+:105440009CE00E94050880E29CE00E940508C1FBE8\r
+:10545000882780F91F928F938DE19CE09F938F9313\r
+:105460000E949E088BE19CE00E94050889E09CE078\r
+:105470000E940508C2FB882780F91F928F9386E05F\r
+:105480009CE09F938F930E949E0884E09CE00E9482\r
+:10549000050882EF9BE00E940508C3FB882780F97E\r
+:1054A0001F928F938FEE9BE09F938F930E949E0895\r
+:1054B0008DEE9BE00E94050883EE9BE00E940508AC\r
+:1054C000C4FB882780F91F928F9380EE9BE09F9307\r
+:1054D0008F930E949E088EED9BE00E9405088CEC45\r
+:1054E0009BE00E940508C5FB882780F91F928F93D7\r
+:1054F00089EC9BE09F938F930E949E0887EC9BE032\r
+:105500000E9405088BEA9BE00E940508C6FB8827DD\r
+:1055100080F91F928F9388EA9BE09F938F930E945C\r
+:105520009E0886EA9BE00E9405088EE99BE00E94A7\r
+:105530000508C7FBCC27C0F91F92CF938BE99BE0EE\r
+:105540009F938F930E949E0889E99BE00E94050823\r
+:105550008DB79EB74C960FB6F8949EBF0FBE8DBF09\r
+:10556000C1E0DEC082EE9AE05BC08091D701C82F17\r
+:10557000C17080FF09C082EE9EE00E940508809104\r
+:10558000D701817F8E7F47C086ED9EE00E9405088F\r
+:105590008091D70181608093D701E2CF9091D701AC\r
+:1055A00091FBCC27C0F981E0C827892FC0FB81F986\r
+:1055B0008093D701CC2319F089EC9EE027C08BEBB8\r
+:1055C0009EE02EC09091D70192FBCC27C0F981E0DC\r
+:1055D000C827892FC0FB82F98093D701CC2319F00B\r
+:1055E0008CEA9EE013C08CE99EE01AC09091D7012E\r
+:1055F00093FBCC27C0F981E0C827892FC0FB83F932\r
+:105600008093D701CC2351F080E99EE00E940508E9\r
+:105610008091D70181608093D70182C083E89EE0AA\r
+:105620000E9405089DCF84E79EE00E94050888E45B\r
+:105630009EE00E9405088BE09EE00E9405088EED2A\r
+:105640009DE00E9405088AE99DE00E9405088CE61D\r
+:105650009DE0E6CF8EE59DE00E9405080E940A16B7\r
+:105660001F928F9384E49DE09F938F930E949E08E6\r
+:1056700080910C011F928F938DE29DE09F938F93F9\r
+:105680000E949E0880916E011F928F938AE19DE097\r
+:105690009F938F930E949E0880910D011F928F937C\r
+:1056A00087E09DE09F938F930E949E088091D80190\r
+:1056B0009091D901A091DA01B091DB01BF93AF9332\r
+:1056C0009F938F9383EF9CE09F938F930E949E08FC\r
+:1056D0008DB79EB746960FB6F8949EBF0FBE8DBF8E\r
+:1056E0003FCF0E94D81BC0910D0181E0C827C09315\r
+:1056F0000D01CC2329F089EE9CE00E94050810C022\r
+:105700008EED9CE08DCF80E003C08D5101C08953A8\r
+:105710000E94EE2825CF8CED9CE00E940508C0E099\r
+:105720008C2FCF91089580E008950C94932BCF9304\r
+:10573000C82F8091E601813081F020F0823009F499\r
+:105740004FC045C1E0910E01F0910F018081813180\r
+:1057500069F0823209F03DC109C0E0910E01F0917B\r
+:105760000F018081813111F0823261F48C2F0E940F\r
+:10577000952B811104C08C2F0E940E292FC081E02F\r
+:1057800090E02CC08C2F0E94932B811126C0C43135\r
+:10579000E1F070F4CB3081F0C031D1F40E94B62733\r
+:1057A0008EEA9AE00E94050882E08093E60115C027\r
+:1057B000C93259F0C83361F48BEB9AE00E940508B6\r
+:1057C00082EB9AE00E94050808C01092E60103C12E\r
+:1057D0008CEA9AE00E940508FEC081E08170FDC05D\r
+:1057E000C43220F5CE3108F0C0C0CB3099F1C8F4F6\r
+:1057F000C73009F0D2C08AE08093150194E19093FC\r
+:10580000140193E0909313018093120188E0809338\r
+:10581000110188E28093100182E599E00E94050859\r
+:10582000BFC0C33149F1C431C1F0B7C0CB3409F4B2\r
+:10583000A9C028F4C93289F0C83361F0AEC0C135BF\r
+:1058400009F49EC0C23509F499C0CE3409F0A5C050\r
+:105850006AE09EC00E94B627A3C08091E50188231C\r
+:1058600019F01092E5019CC08FE599E00E940508AF\r
+:1058700081E08093E601B1C089E399E00E940508C8\r
+:1058800087E299E00E940508809115011F928F938D\r
+:1058900084E299E09F938F930E949E0882E299E0B0\r
+:1058A0000E94050880E199E00E940508809114019A\r
+:1058B0001F928F938DE099E09F938F930E949E0893\r
+:1058C0008BE099E00E9405088CEF98E00E940508A3\r
+:1058D000809113011F928F9389EF98E09F938F938C\r
+:1058E0000E949E0887EF98E00E94050886EE98E0E7\r
+:1058F0000E940508809112011F928F9383EE98E019\r
+:105900009F938F930E949E0881EE98E00E94050865\r
+:105910008CEC98E00E940508809111011F928F93F2\r
+:1059200089EC98E09F938F930E949E0887EC98E003\r
+:105930000E94050880EB98E00E9405088091100104\r
+:105940001F928F938DEA98E09F938F930E949E08F9\r
+:105950008BEA98E00E9405088DB79EB748960FB66F\r
+:10596000F8949EBF0FBE8DBF1BC0CE51EC2FF0E050\r
+:10597000E15DFE4F80818093E50112C061E003C0CC\r
+:1059800061E006C06AE08091E5010E94CD2708C071\r
+:105990008091E5010E94702803C080E599E013C062\r
+:1059A0008091E501882369F01F928F938AE499E042\r
+:1059B0009F938F930E949E080F900F900F900F90CF\r
+:1059C00004C087E499E00E94050881E006C01092B7\r
+:1059D000E60180E002C080E001CFCF910895E1E8C8\r
+:1059E000F0E08081886080838081816080838FB7D0\r
+:1059F000F89493E09093890090ED909388008FBF86\r
+:105A00000895EFE6F0E08081826080830895EFE6FC\r
+:105A1000F0E080818D7F80830895EFE6F0E0908153\r
+:105A200082E08927808308951F920F920FB60F920C\r
+:105A300011242F933F934F935F936F937F938F9393\r
+:105A40009F93AF93BF93EF93FF938091E701909162\r
+:105A5000E80101969093E8018093E701811103C06A\r
+:105A600082E00E94E00DE091E801E695E695F0E025\r
+:105A7000E15EF04FE4918091E7018E1303C080E076\r
+:105A80000E94E00DFF91EF91BF91AF919F918F9197\r
+:105A90007F916F915F914F913F912F910F900FBE2A\r
+:105AA0000F901F9018950E945A2D6894B1110C9474\r
+:105AB000E92D08950E94CE2D88F09F5798F0B92FB8\r
+:105AC0009927B751B0F0E1F0660F771F881F991F33\r
+:105AD0001AF0BA95C9F714C0B13091F00E94E82DC0\r
+:105AE000B1E008950C94E82D672F782F8827B85FD0\r
+:105AF00039F0B93FCCF3869577956795B395D9F78B\r
+:105B00003EF490958095709561957F4F8F4F9F4F94\r
+:105B10000895E89409C097FB3EF4909580957095A0\r
+:105B200061957F4F8F4F9F4F9923A9F0F92F96E9E9\r
+:105B3000BB279395F695879577956795B795F1115E\r
+:105B4000F8CFFAF4BB0F11F460FF1BC06F5F7F4FFB\r
+:105B50008F4F9F4F16C0882311F096E911C077230D\r
+:105B600021F09EE8872F762F05C0662371F096E816\r
+:105B7000862F70E060E02AF09A95660F771F881FE5\r
+:105B8000DAF7880F9695879597F9089557FD9058FD\r
+:105B9000440F551F59F05F3F71F04795880F97FBF1\r
+:105BA000991F61F09F3F79F08795089512161306AB\r
+:105BB0001406551FF2CF4695F1DF08C016161706DA\r
+:105BC0001806991FF1CF869571056105089408950F\r
+:105BD000E894BB2766277727CB0197F908950E94A1\r
+:105BE000022E0C94732E0E94652E38F00E946C2EAB\r
+:105BF00020F0952311F00C945C2E0C94622E11244D\r
+:105C00000C94E92D0E94C62D70F3959FC1F3950F5A\r
+:105C100050E0551F629FF001729FBB27F00DB11D30\r
+:105C2000639FAA27F00DB11DAA1F649F6627B00DC0\r
+:105C3000A11D661F829F2227B00DA11D621F739FA9\r
+:105C4000B00DA11D621F839FA00D611D221F749FB7\r
+:105C50003327A00D611D231F849F600D211D822FFE\r
+:105C6000762F6A2F11249F5750409AF0F1F0882325\r
+:105C70004AF0EE0FFF1FBB1F661F771F881F915052\r
+:105C80005040A9F79E3F510580F00C945C2E0C9477\r
+:105C9000E92D5F3FE4F3983ED4F3869577956795B9\r
+:105CA000B795F795E7959F5FC1F7FE2B880F911D7C\r
+:105CB0009695879597F9089597F99F6780E870E022\r
+:105CC00060E008959FEF80EC089500240A94161672\r
+:105CD000170618060906089500240A9412161306DA\r
+:105CE000140605060895092E0394000C11F4882368\r
+:105CF00052F0BB0F40F4BF2B11F460FF04C06F5F84\r
+:105D00007F4F8F4F9F4F0895991B79E004C0991FD3\r
+:105D1000961708F0961B881F7A95C9F78095089505\r
+:105D200097FB072E16F4009407D077FD09D00E9448\r
+:105D3000AA2E07FC05D03EF4909581959F4F0895BB\r
+:105D4000709561957F4F0895EE0FFF1F0590F491B8\r
+:105D5000E02D0994AA1BBB1B51E107C0AA1FBB1F62\r
+:105D6000A617B70710F0A61BB70B881F991F5A95E7\r
+:105D7000A9F780959095BC01CD010895F999FECFC2\r
+:105D800092BD81BDF89A992780B50895A8E1B0E049\r
+:105D900042E050E00C94E12E262FF999FECF1FBA75\r
+:105DA00092BD81BD20BD0FB6F894FA9AF99A0FBE44\r
+:105DB000019608950E94CC2E272F0C94CD2EDC0145\r
+:105DC000CB01FC01F999FECF06C0F2BDE1BDF89A06\r
+:105DD000319600B40D9241505040B8F70895F894B0\r
+:025DE000FFCFF3\r
+:105DE2002002390E2C0F070FD30E9F0E0101C501A1\r
+:105DF20028080A03140A3F4D3620399C064F06191B\r
+:105E020006F905C00533054C0565057E059E0501AD\r
+:0A5E1200020304050607080900005A\r
 :00000001FF\r
index bec67e7d4c22643bc9bf74f838feec423a345e6e..be29a1bff121ca37b5e30e94ec02c5dbfe93afab 100644 (file)
@@ -5,11 +5,14 @@
 
 // Layer names
 #define BASE 0      // default layer
-#define FMU  1      // FMU layer
+#define PMQ  1      // poor man’s QWERTZ
+#define PMN  2      // poor man’s Neo
+#define FMU  3      // FMU layer
+#define NHL  4      // Neo’s software layer 4 rebuilt in Hardware
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Layer 0 (default)
+/* Layer 0: default
  * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
  * │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
  * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
@@ -33,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
         NEO_Y,      NEO_X,  NEO_V,  NEO_L,  NEO_C,  NEO_W,  KC_HOME,
         NEO_L1_L,   NEO_U,  NEO_I,  NEO_A,  NEO_E,  NEO_O,
-        KC_LSFT,    NEO_UE, NEO_OE, NEO_AE, NEO_P,  NEO_Z,  KC_TRNS,
+        KC_LSFT,    NEO_UE, NEO_OE, NEO_AE, NEO_P,  NEO_Z,  TG(PMQ),
         KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L,
                                                     KC_LEFT,    KC_UP,
                                                                 KC_MINS,
@@ -42,13 +45,95 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         DE_ACUT,    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
         KC_END,     NEO_K,  NEO_H,  NEO_G,  NEO_F,  NEO_Q,  NEO_SS,
                     NEO_S,  NEO_N,  NEO_R,  NEO_T,  NEO_D,  NEO_L1_R,
-        KC_TRNS,    NEO_B,  NEO_M,  KC_COMM,KC_DOT, NEO_J,  KC_RSFT,
+        TG(PMN),    NEO_B,  NEO_M,  KC_COMM,KC_DOT, NEO_J,  KC_RSFT,
                             NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
         KC_DOWN,    KC_RGHT,
         KC_MINS,
         MEH_T(KC_NO),KC_ENT,KC_SPC
     ),
-/* Layer 1 (F-keys, Mouse and Unicode)
+
+/* Layer 1: poor man’s QWERTZ
+ * based on kaimi’s layout
+ * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+ * │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
+ * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+ * │   C   │  P  │  T  │  F  │  K  │  L  │ HOM │     │ END │  B  │  A  │  S  │  G  │  V  │  Y    │
+ * ├───────┼─────┼─────┼─────╆─────╅─────┤  E  │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+ * │ Mod3  │  D  │  H  │  Ö  │  O  │  I  ├─────┤     ├─────┤  U  │  -  │  Z  │  E  │  X  │ Mod3  │
+ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+ * │ LSHFT │  Ä  │  Q  │  R  │  W  │  N  │     │     │     │  J  │  M  │  ,  │  .  │  ẞ  │ Shift │
+ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+ *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+ *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+ *                                   │  ←  │  ↑  │ │  ↓  │  →  │
+ *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+ *                             │     │     │  ─  │ │  ─  │     │     │
+ *                             │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
+ *                             │     │     │ HYP │ │ MEH │     │     │
+ *                             └─────┴─────┴─────┘ └─────┴─────┴─────┘
+ */
+[PMQ] = KEYMAP(
+        // left hand
+        KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
+        DE_C,       DE_P,   DE_T,   DE_F,   DE_K,   DE_L,   KC_HOME,
+        NEO_L1_L,   DE_D,   DE_H,   DE_OE,  DE_O,   DE_I,
+        KC_LSFT,    DE_AE,  DE_Q,   DE_R,   DE_W,   DE_N,   KC_TRNS,
+        KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,MO(NHL),
+                                                    KC_LEFT,    KC_UP,
+                                                                KC_MINS,
+                                            KC_SPC, KC_ENT,    ALL_T(KC_NO),
+        // right hand
+        DE_ACUT,    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
+        KC_END,     DE_B,   DE_A,   DE_S,   DE_G,   DE_V,   DE_Y,
+                    DE_U,   DE_MINS,DE_Z,   DE_E,   DE_X,   NEO_L1_R,
+        KC_TRNS,    DE_J,   DE_M,   DE_COMM,DE_DOT, DE_SS,  KC_RSFT,
+                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
+        KC_DOWN,    KC_RGHT,
+        KC_MINS,
+        MEH_T(KC_NO),KC_ENT,KC_SPC
+    ),
+
+/* Layer 2: poor man’s Neo
+ * based on kaimi’s layout
+ * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+ * │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
+ * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+ * │   Y   │  X  │  V  │  L  │  C  │  W  │ HOM │     │ END │  K  │  H  │  G  │  F  │  Q  │  ß    │
+ * ├───────┼─────┼─────┼─────╆─────╅─────┤  E  │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+ * │ Mod3  │  U  │  I  │  A  │  E  │  O  ├─────┤     ├─────┤  S  │  N  │  R  │  T  │  D  │ Mod3  │
+ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+ * │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
+ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+ *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+ *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+ *                                   │  ←  │  ↑  │ │  ↓  │  →  │
+ *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+ *                             │     │     │  ─  │ │  ─  │     │     │
+ *                             │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
+ *                             │     │     │ HYP │ │ MEH │     │     │
+ *                             └─────┴─────┴─────┘ └─────┴─────┴─────┘
+ */
+[PMN] = KEYMAP(
+        KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
+        DE_Y,       DE_X,   DE_V,   DE_L,   DE_C,   DE_W,   KC_HOME,
+        KC_NO,      DE_U,   DE_I,   DE_A,   DE_E,   DE_O,
+        KC_LSFT,    DE_UE,  DE_OE,  DE_AE,  DE_P,   DE_Z,   KC_TRNS,
+        KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,MO(NHL),
+                                                    KC_LEFT,    KC_UP,
+                                                                KC_MINS,
+                                            KC_SPC, KC_ENT,    ALL_T(KC_NO),
+        // right hand
+        DE_ACUT,    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
+        KC_END,     DE_K,   DE_H,   DE_G,   DE_F,   DE_Q,   DE_SS,
+                    DE_S,   DE_N,   DE_R,   DE_T,   DE_D,   KC_NO,
+        KC_TRNS,    DE_B,   DE_M,   KC_COMM,KC_DOT, DE_J,   KC_RSFT,
+                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
+        KC_DOWN,    KC_RGHT,
+        KC_MINS,
+        MEH_T(KC_NO),KC_ENT,KC_SPC
+    ),
+
+/* Layer 3: F-keys, Mouse and Unicode
  * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
  * │       │     │     │     │     │     │     │     │     │     │     │     │     │     │       │
  * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
@@ -87,10 +172,55 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_BTN2,
         KC_TRNS,    KC_TRNS,KC_TRNS
     ),
+
+/* Layer 4: Neo’s software layer 4 rebuilt in Hardware
+ * based on kaimi’s layout
+ * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+ * │       │     │     │     │     │     │     │     │     │     │     │     │     │     │       │
+ * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+ * │       │ PgUp│ BSpc│  ↑  │ Del │ PgDn│     │     │     │     │  7  │  8  │  9  │  +  │   −   │
+ * ├───────┼─────┼─────┼─────╆─────╅─────┤     │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+ * │       │ Home│  ←  │  ↓  │  →  │ End ├─────┤     ├─────┤     │  4  │  5  │  6  │  ,  │   .   │
+ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+ * │       │ Esc │ Tab │ Ins │ Ret │ Undo│     │     │     │     │  1  │  2  │  3  │     │       │
+ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+ *   │     │     │(MO1)│     │(MO4)│                             │(MO4)│     │(MO1)│     │     │
+ *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+ *                                   │     │     │ │     │     │
+ *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+ *                             │     │     │     │ │     │     │     │
+ *                             │     │     ├─────┤ ├─────┤     │     │
+ *                             │     │     │     │ │     │     │     │
+ *                             └─────┴─────┴─────┘ └─────┴─────┴─────┘
+ */
+[NHL] = KEYMAP(
+        // left hand
+        KC_NO,      KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,
+        KC_NO,      KC_PGUP,KC_BSPC,KC_UP,  KC_DELT,KC_PGDN,KC_NO,
+        KC_NO,      KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END,
+        KC_NO,      KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS,
+        KC_NO,      KC_NO,  KC_TRNS,KC_NO,  KC_TRNS,
+                                                    KC_NO,      KC_NO,
+                                                                KC_NO,
+                                            KC_NO,  KC_NO,      KC_NO,
+        // right hand
+        KC_NO,      KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,
+        KC_NO,      KC_NO,  KC_7,   KC_8,   KC_9,   DE_PLUS,DE_MINS,
+                    KC_NO,  KC_4,   KC_5,   KC_6,   KC_COMM,KC_DOT,
+        KC_TRNS,    KC_NO,  KC_1,   KC_2,   KC_3,   KC_NO,  KC_NO,
+                            KC_TRNS,KC_NO,  KC_TRNS,KC_NO,  KC_NO,
+        KC_NO,      KC_NO,
+        KC_NO,
+        KC_NO,      KC_NO,  KC_NO
+    ),
 };
 
 const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_TAP_TOGGLE(FMU)
+    [BASE] = ACTION_FUNCTION(BASE),
+    [PMQ]  = ACTION_FUNCTION(PMQ),
+    [PMN]  = ACTION_FUNCTION(PMN),
+    [FMU]  = ACTION_LAYER_TAP_TOGGLE(FMU),
+    [NHL]  = ACTION_LAYER_TAP_TOGGLE(NHL)
 };
 
 
@@ -129,6 +259,13 @@ void * matrix_scan_user(void)
     switch (layer) {
         case FMU:
             ergodox_right_led_1_on();
+        break;
+        case PMQ:
+            ergodox_right_led_2_on();
+        break;
+        case PMN:
+            ergodox_right_led_3_on();
+        break;
         default:
             ergodox_board_led_off();
         break;
diff --git a/keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md b/keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md
new file mode 100644 (file)
index 0000000..2a4d3a5
--- /dev/null
@@ -0,0 +1,31 @@
+# coderkun’s Neo2 layout for the ErgoDox EZ
+
+The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but also provide layers to use QWERTZ with activated Neo driver and to use (basic) Neo when no driver is available (standard QWERTZ driver is active) (e. g. on other computers, in virtual machines) and to make heavily use of thumb keys.
+
+The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course).
+
+It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols.
+
+
+## Layers
+
+0. Default layer for Neo2
+1. Poor man’s QWERTZ
+2. Poor man’s Neo
+3. F-keys, mouse keys und Unicode symbols
+4. Neo’s software layers 4 rebuilt in hardware
+
+
+## Build
+
+1. Enable Unicode in Makefile
+
+    ```
+    UNICODE_ENABLE   = yes
+    ```
+2. Build as usual
+
+    ```
+    make clean
+    make KEYMAP=coderkun_neo2
+    ```
diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex
new file mode 100644 (file)
index 0000000..ecf97c9
--- /dev/null
@@ -0,0 +1,1142 @@
+:100000000C944C030C9490030C9490030C94900368\r
+:100010000C9490030C9490030C9490030C94900314\r
+:100020000C9490030C9490030C94BD0C0C948F0DC5\r
+:100030000C9490030C9490030C9490030C949003F4\r
+:100040000C9490030C94C4210C9490030C94900392\r
+:100050000C9490030C94551B0C9490030C949003F7\r
+:100060000C9490030C9490030C9490030C949003C4\r
+:100070000C9490030C9490030C9490030C949003B4\r
+:100080000C9490030C9490030C9490030C949003A4\r
+:100090000C9490030C9490030C9490030C94900394\r
+:1000A0000C9490030C9490030C9490039E03A30370\r
+:1000B000A803AD03B203B703BC03C103C603FC0D21\r
+:1000C0001E0E0C0F1E0E0C0F630E860E0C0FDB0E99\r
+:1000D000EE0ED011D011FF11FF11421280129914AF\r
+:1000E0009914991299149A139A136D1499149914D6\r
+:1000F0008414012E022E012C022C0001E101350294\r
+:100100003502E100013502350001E1012E022E0128\r
+:100110002C022C02E10001E6012E022E02E6012C47\r
+:10012000022C0001E10130023002E1012C022C001E\r
+:1001300001E10164026402E100016402640001E67D\r
+:100140000130023002E6012C022C000000002200E7\r
+:10015000C001C002C003C004C005C006C007C0087B\r
+:10016000C02E002D0237021E020452000025141476\r
+:100170000004001D00F400387426141A0015001B3A\r
+:1001800000F500377124140900160006002B00C189\r
+:1001900000271413001700190036782D0031020AC9\r
+:1001A00000070005000000230201541F0200003672\r
+:1001B0000200003500C5003200000027020000499F\r
+:1001C0000021140D000B000E000000240225020F78\r
+:1001D000001100100050004C002602180008004FCB\r
+:1001E0000029002C00C3001C000C005100C700288F\r
+:1001F00000C4002F001200520020022A001F1434F5\r
+:1002000000330038020252000024160100010001F0\r
+:1002100000010000000100010001000100010001D7\r
+:1002200000010001000100010001003778251601DE\r
+:10023000000100010001000100261601000100017B\r
+:100240000036710100010001000100010000000101\r
+:1002500000010001000000010000002414010064FE\r
+:100260000000000100000001002102010001000166\r
+:100270000000000100010001000100010001000177\r
+:1002800000010001000100010001000100C800019F\r
+:1002900000010001002E140100C90001000100014D\r
+:1002A00000010001003100010001000100035200C3\r
+:1002B0000001000100010001000100000001000137\r
+:1002C000002000010001000100010001001F0001E9\r
+:1002D0000001000100010001001E000100010001F9\r
+:1002E000000100220227002100010001000100019D\r
+:1002F00000010001000000010001000100000001F8\r
+:1003000000000001000100010000000100000001E8\r
+:10031000000100010001004A00000001000100C2CC\r
+:1003200000220026004A0001000100C60023004D03\r
+:1003300000010001000100010024004E0001000145\r
+:10034000000100010025004B000100010001000137\r
+:100350000001000100010000000100010001000196\r
+:100360000001000000010001002000010001000167\r
+:1003700000010001001F0001000100010001000157\r
+:10038000001E0001000100010001002202270021DF\r
+:100390000001000100010001000100010000000156\r
+:1003A0000001000100000001000000010001000147\r
+:1003B0000000000100000001000100010001004AEE\r
+:1003C00000000001000100C200220026004A0001D6\r
+:1003D000000100CA0023004D0001000100010001DE\r
+:1003E0000024004E00010001000100010025004B27\r
+:1003F00000010001000100010001000100010000F6\r
+:1004000000220001000100010001000000010001C4\r
+:10041000003C00010001000100010001003B00015F\r
+:100420000001000100010001003A0001000100018B\r
+:10043000000100010001003D000100010001000178\r
+:1004400000010001000000010001000100000001A6\r
+:100450000000000100010001000000010000000197\r
+:100460000001000100010030140000010001000142\r
+:10047000003E00420001000100010001003F004376\r
+:1004800000010001000100010040004400010001E2\r
+:1004900000010001004100450001000100010001D0\r
+:1004A0000001000100010000001603450072006712\r
+:1004B000006F0044006F007800200045005A0000E3\r
+:1004C0000016034500720067006F0044006F00785B\r
+:1004D00000200045005A0000000403090409026DD1\r
+:1004E00000040100A0FA0904000001030101000951\r
+:1004F0002111010001223F000705810308000A09BC\r
+:100500000401000103010200092111010001224D33\r
+:10051000000705820308000A090402000103000025\r
+:10052000000921110100012236000705830308009C\r
+:100530000A09040300010300000009211101000160\r
+:100540002239000705840310000112011001000088\r
+:100550000008EDFE07130100010200010501090674\r
+:10056000A101050719E029E7150025019508750186\r
+:10057000810205081901290595057501910295016A\r
+:100580007503910105071900297715002501957854\r
+:1005900075018102C005010980A1018502160100D3\r
+:1005A00026B7001A01002AB700751095018100C016\r
+:1005B000050C0901A1018503160100269C021A0100\r
+:1005C000002A9C02751095018100C005010902A155\r
+:1005D000010901A100050919012905150025019549\r
+:1005E0000575018102950175038101050109300935\r
+:1005F000311581257F9502750881060938158125F9\r
+:100600007F950175088106050C0A38021581257F42\r
+:10061000950175088106C0C005010906A1010507FD\r
+:1006200019E029E71500250195087501810295015A\r
+:1006300075088101050819012905950575019102C3\r
+:100640009501750391010507190029FF150025FF84\r
+:10065000950675088100C000000000000000000041\r
+:100660000000010204060A0F17202C3A4A5D718728\r
+:100670009DB3C7DAE9F5FCFFFCF5E9DAC7B39D875E\r
+:10068000715D4A3A2C20170F0A060402010000008F\r
+:10069000000000000000000011241FBECFEFDAE0D0\r
+:1006A000DEBFCDBF04B603FE24C08091EE01909161\r
+:1006B000EF01A091F001B091F1018730904BA7407C\r
+:1006C000B04BB9F41092EE011092EF011092F001CC\r
+:1006D0001092F10114BE84B7877F84BF88E10FB602\r
+:1006E000F89480936000109260000FBEE0E0FFE39A\r
+:1006F000099511E0A0E0B1E0ECE0F7E402C005905C\r
+:100700000D92A433B107D9F711E0A4E3B1E001C021\r
+:100710001D92AE3EB107E1F70E94010A0C948423BA\r
+:100720000C940000FC018281462F50E049305105B5\r
+:1007300090F5FA01EA5AFF4F0C943923882359F1B6\r
+:100740008EE391E00895882331F189E391E00895E3\r
+:10075000882309F180E391E008958823E1F083E2A2\r
+:1007600091E008958823B9F086E191E00895882307\r
+:1007700091F089E091E00895882369F084E091E0A8\r
+:100780000895882341F08BEF90E00895882319F0B5\r
+:1007900082EF90E0089580E090E0089580E090E09E\r
+:1007A000089580E090E0089581ED93E0892B11F0A9\r
+:1007B0000E94D10380E090E0089556985E982598B5\r
+:1007C0002D9826982E9827982F988FEF90E0909349\r
+:1007D00089008093880090938B0080938A00909387\r
+:1007E0008D0080938C00259A2D9A2FEF80E792E060\r
+:1007F000215080409040E1F700C00000269A2E9AD8\r
+:100800002FEF80E792E0215080409040E1F700C058\r
+:100810000000279A2F9A2FEF80E792E02150804026\r
+:100820009040E1F700C0000025982D982FEF80E759\r
+:1008300092E0215080409040E1F700C000002698EF\r
+:100840002E982FEF80E792E0215080409040E1F712\r
+:1008500000C0000027982F9856985E9825982D98EC\r
+:1008600026982E9827982F98089589EA80938000DB\r
+:1008700089E08093810024982C983F988AB18F74E6\r
+:100880008AB96E98479A8BB1806B8BB9769A0E9421\r
+:10089000DD038EEC93E0892B11F00E94CE0380E003\r
+:1008A00090E0089580E280930001809134018111ED\r
+:1008B0000EC00E94A10481E0809334012FEF83EDEC\r
+:1008C00090E3215080409040E1F700C0000080E4B8\r
+:1008D0000E94A7048093000181112EC00E94D104C0\r
+:1008E00080930001811128C00E94D10480930001EF\r
+:1008F000811122C08FE30E94D104809300018111F5\r
+:100900001BC00E94C90480E40E94A70480930001D8\r
+:10091000811112C08CE00E94D104809300018111EA\r
+:100920000BC00E94D10480930001811105C08FE3A8\r
+:100930000E94D104809300010E94C90480910001AB\r
+:1009400008951092B9008AE08093B800089594EA5F\r
+:100950009093BC009091BC0097FFFCCF9091B900A0\r
+:10096000987F983021F0903111F081E008958093C4\r
+:10097000BB0084E88093BC008091BC0087FFFCCF63\r
+:100980008091B900887F883111F0803471F780E060\r
+:10099000089584E98093BC008091BC0084FDFCCF65\r
+:1009A00008958093BB0084E88093BC008091BC00D4\r
+:1009B00087FFFCCF9091B900987F81E0983209F4CD\r
+:1009C00080E0089584E88093BC008091BC0087FF9C\r
+:1009D000FCCF8091BB00089580910001811115C06A\r
+:1009E00080E40E94A7048093000181110CC082E181\r
+:1009F0000E94D10480930001811105C08FEF0E94F5\r
+:100A0000D104809300010E94C90484B1807F84B91D\r
+:100A100085B1807F85B98AB1837F8AB98BB1837FA5\r
+:100A20008BB93E98469808950E9452048093000125\r
+:100A30000E94EC0480B38C7080BB81B3836F81BB58\r
+:100A4000A6E3B1E0E4E4F1E08EE08E0F11921D9296\r
+:100A50008E13FCCF85E394E0892B11F00C943504C0\r
+:100A60000895BF92CF92DF92EF92FF920F931F9360\r
+:100A7000CF93DF9380910001882379F08091350135\r
+:100A80008F5F80933501811108C00E9452048093CA\r
+:100A90000001811102C00E94DD0306E311E0C0E005\r
+:100AA000D0E0DD24D39482E0C82EEE24E394F12C30\r
+:100AB000C730D10500F580910001811164C080E448\r
+:100AC0000E94A70480930001811112C082E10E945C\r
+:100AD000D1048093000181110BC0C7010C2E01C00D\r
+:100AE000880F0A94EAF780950E94D1048093000150\r
+:100AF0000E94C90448C0CA30A1F028F4C83059F097\r
+:100B0000C93061F005C0CC3089F070F0CD3089F08B\r
+:100B1000209A289810C0219A29980DC0229A2A98C4\r
+:100B20000AC0239A2B9807C0529A01C0539A5B9827\r
+:100B300002C03E9A469890EA9A95F1F79FB179994A\r
+:100B400002C082E001C080E091709D25982B7C99C5\r
+:100B500002C084E001C080E0892B7D9902C038E0AA\r
+:100B600001C030E0832B7E9902C020E101C020E06B\r
+:100B7000822B9FB19095991F9927991F9295990F54\r
+:100B8000907E892B0FC08091000181114FC080E4BD\r
+:100B90000E94A704809300018823A9F1B12C0E9430\r
+:100BA000C9048B2DF8019081981719F08083C092A9\r
+:100BB00001010E94EC0421960F5F1F4FCE30D1053A\r
+:100BC00009F076CF809101018823B1F081508093A4\r
+:100BD0000101882339F08FE99FE00197F1F700C008\r
+:100BE00000000AC0A4E4B1E0E6E3F1E0CF01825FD7\r
+:100BF00091919D938E13FCCF84ED93E0892BC1F0EE\r
+:100C00000E94D40315C083E10E94D10480930001A7\r
+:100C10008111C4CF81E40E94A70480930001811157\r
+:100C2000BDCF0E94E204B82EB094B9CF80E0BACF15\r
+:100C300081E0DF91CF911F910F91FF90EF90DF90B6\r
+:100C4000CF90BF900895E82FF0E0EC5BFE4F8081DD\r
+:100C5000089508958B3B910578F4883A910540F505\r
+:100C6000853A9105D0F48430910508F0B1C0813007\r
+:100C7000910509F4ADC06BC0803E910508F467C0D2\r
+:100C8000883E910508F4A4C09C01205F3109203101\r
+:100C9000310508F05CC090650895853A910509F426\r
+:100CA00059C0863A910509F058C082E890E4089549\r
+:100CB000883A910509F454C0893A910509F453C062\r
+:100CC0008A3A910509F452C08B3A910509F451C052\r
+:100CD0008C3A910509F450C08D3A910509F44FC042\r
+:100CE000803B910509F44EC08E3A910509F44DC040\r
+:100CF0008F3A910509F44CC0813B910509F44BC032\r
+:100D0000823B910509F44AC0833B910509F449C02F\r
+:100D1000843B910509F448C0853B910509F447C01F\r
+:100D2000863B910509F446C0873B910509F445C00F\r
+:100D3000883B910509F444C0893B910509F443C0FF\r
+:100D40008A3B910509F442C080E094E4089580E074\r
+:100D500090E0089581E890E4089583E890E4089590\r
+:100D600082EE94E4089589EE94E408958AEE94E482\r
+:100D7000089585EB94E4089586EB94E4089587EB59\r
+:100D800094E408958CEC94E408958DEC94E4089533\r
+:100D900083E895E408958AE895E4089582E995E466\r
+:100DA000089584E995E4089581E296E4089583E244\r
+:100DB00096E4089584E296E4089585E296E4089521\r
+:100DC00086E296E4089587E296E408958AE296E43E\r
+:100DD0000895089596E0799FF001112494E5899F84\r
+:100DE000E00DF11D1124E60FF11DEE0FFF1FEF596D\r
+:100DF000FE4F859194910895880F991FFC01E5534A\r
+:100E0000F040859194910895880F991FFC01E55B4E\r
+:100E1000FE4F85919491089526E0729FF001112470\r
+:100E200044E5849FE00DF11D1124E60FF11DEE0F46\r
+:100E3000FF1FEF59FE4F859194919C013A95211522\r
+:100E40004FE1340708F41AC13F512115304120F415\r
+:100E50009F700E94040708959C0130532115304172\r
+:100E600018F49927906C0895811520E5920769F48C\r
+:100E70000E94BB144FEF84E39CE0415080409040BF\r
+:100E8000E1F700C000000C947A1B813020E5920746\r
+:100E900031F48091CC0181608093CC0108959C0154\r
+:100EA00030552115304108F051C0292F33272F70BC\r
+:100EB000332721303105D9F4AC014370552702C0E6\r
+:100EC000220F331F4A95E2F73C68AC0164E0440FFF\r
+:100ED000551F6A95E1F744275370242B352B73E097\r
+:100EE000880F991F7A95E1F7807699271DC02230E7\r
+:100EF000310529F4982F8827816F906A089523304F\r
+:100F00003105A9F4AC014370552721E030E002C05F\r
+:100F1000220F331F4A95E2F73C6843E0880F991F80\r
+:100F20004A95E1F7807E9770822B932B08952430A9\r
+:100F30003105E1F4AC014370552721E030E002C0F7\r
+:100F4000220F331F4A95E2F73A68E7CF9C013057EA\r
+:100F50002115304118F49F70906208959C0130581B\r
+:100F60002115304118F49F70906A0895803E9105D4\r
+:100F7000E0F4803C910558F58133910509F46FC088\r
+:100F800048F48932910509F463C08A32910509F465\r
+:100F90006DC072C089339105E9F082389105D1F0B6\r
+:100FA0008533910509F44DC067C0833E910581F1F9\r
+:100FB00038F4803E9105B9F0823E9105D9F05CC0CD\r
+:100FC000863E910561F1873E9105A1F155C00E94D1\r
+:100FD000FC0608952091DF0120FD02C021FF4CC0D6\r
+:100FE00080EE90E049C08091DF0180FFF9CF89E376\r
+:100FF00090E042C08091DF0182FF0EC08091DF014E\r
+:1010000084FF03C080E090E037C083EE90E034C0FE\r
+:101010008091DF0182FFF2CF82EE90E02DC08091BF\r
+:10102000DF0183FF0BC08091DF0184FDEBCF87EEF2\r
+:1010300090E022C08091DF0183FFF5CF86EE90E043\r
+:101040001BC08091DF0185FF07C089E290E014C0DA\r
+:101050008091DF0185FFF9CF85E390E00DC080919D\r
+:10106000DF0186FF07C08AE290E006C08091DF01C1\r
+:1010700086FFF9CF81E390E00E942A060895089543\r
+:10108000809162010895CF93DF9300D01F92CDB776\r
+:10109000DEB79C018091E501843019F593E09983D6\r
+:1010A0003B832A839093E9008FEF9091E800815071\r
+:1010B00095FD06C095ED9A95F1F700008111F5CFE9\r
+:1010C0008091E80085FF0DC040E050E063E070E0F3\r
+:1010D000CE0101960E94AD0A8091E8008E77809340\r
+:1010E000E8000F900F900F90DF91CF910895CF936C\r
+:1010F000DF9300D01F92CDB7DEB72091E5012430F9\r
+:1011000021F522E029839B838A8383E08093E90091\r
+:101110008FEF9091E800815095FD06C095ED9A956E\r
+:10112000F1F700008111F5CF8091E80085FF0DC037\r
+:1011300040E050E063E070E0CE0101960E94AD0A0D\r
+:101140008091E8008E778093E8000F900F900F90C9\r
+:10115000DF91CF9108952091E5012430F1F422E050\r
+:101160002093E9002FEF3091E800215035FD06C0B3\r
+:1011700035ED3A95F1F700002111F5CF2091E80007\r
+:1011800025FF0BC040E050E065E070E00E94AD0A32\r
+:101190008091E8008E778093E8000895CF93DF93E5\r
+:1011A000EC019091E501943009F046C080910C016A\r
+:1011B0008823D9F080910D018823B9F09093E9003C\r
+:1011C0008FEF9091E800815095FD06C095E19A95CA\r
+:1011D000F1F700008111F5CF8091E80085FF2CC068\r
+:1011E00040E050E060E170E017C081E08093E900EA\r
+:1011F0008FEF9091E800815095FD06C095ED9A958E\r
+:10120000F1F700008111F5CF8091E80085FF14C04F\r
+:1012100040E050E068E070E0CE010E94AD0A8091AD\r
+:10122000E8008E778093E80080E1FE01A2E5B1E05E\r
+:1012300001900D928A95E1F7DF91CF910895809109\r
+:10124000E401811109C00E94420C0E949F0C809110\r
+:10125000E20084608093E20008951092E401089512\r
+:1012600008950C94B1210E94101B0E94B7210E9486\r
+:10127000450F0C943F0842E061EC81E00E94BC0BFA\r
+:1012800042E061EC82E00E94BC0B42E061EC83E052\r
+:101290000E94BC0B42E161EC84E00C94BC0B809199\r
+:1012A000E701833009F455C030F4813071F08230A9\r
+:1012B00009F48EC008958A3009F47AC08B3009F49D\r
+:1012C00060C0893009F09CC020C08091E601813A5D\r
+:1012D00009F096C08091E800877F8093E8008091B4\r
+:1012E000EA019091EB01892B21F460E182E591E024\r
+:1012F00003C060E080E090E070E00E94F80A809116\r
+:10130000E8008B778093E80008958091E6018132B0\r
+:1013100009F076C08091EA019091EB01009719F0F5\r
+:10132000039709F06DC08091E800877F8093E80003\r
+:101330008091E80082FD05C08091E5018111F8CF20\r
+:101340005FC08091F100809362018091E8008B770B\r
+:1013500053C08091E601813A09F052C08091EA01C0\r
+:101360009091EB01892B09F04BC08091E800877FB9\r
+:101370008093E8008091E80080FFFCCF80910C0111\r
+:1013800036C08091E6018132D9F58091EA019091D1\r
+:10139000EB01892BA9F58091E800877F8093E80015\r
+:1013A0000E94F10B8091E80180930C010C94BB1416\r
+:1013B0008091E601813221F58091E800877F80935A\r
+:1013C000E8000E94F10B8091E90180936301089588\r
+:1013D0008091E601813AA1F48091E800877F8093B3\r
+:1013E000E8008091E80080FFFCCF8091630180934A\r
+:1013F000F1008091E8008E778093E8000C94F10B67\r
+:10140000089584B7877F84BF88E10FB6F8948093EE\r
+:101410006000109260000FBE90E080E80FB6F89474\r
+:1014200080936100909361000FBE0E94940F0E9410\r
+:10143000420C0E949F0C8091E20084608093E20045\r
+:1014400078940E94250F0E94960F82E091E00E94FE\r
+:10145000400F0E949F218091E501853069F40E9430\r
+:10146000D41A8091E3018823B1F30E94FC1A8823E7\r
+:1014700091F30E94970AEFCF0E949C0FECCF292F87\r
+:10148000332723303105C9F064F42130310581F070\r
+:101490002230310509F043C08DE690E02DED34E0B7\r
+:1014A00042C021323105F1F02232310541F137C01D\r
+:1014B00082E190E02AE435E036C099278130910539\r
+:1014C00041F08230910541F0892B49F5E9EDF4E0D6\r
+:1014D00005C0E1ECF4E002C0E9EAF4E0849190E0B8\r
+:1014E0009F0121C06430D8F4E62FF0E0EE0FFF1F1B\r
+:1014F000EE5DFE4F2081318189E090E014C06430C0\r
+:1015000070F470E0FB01EE0FFF1FE65EFE4F2081DE\r
+:101510003181FB01EA5EFE4F808190E004C080E0F3\r
+:1015200090E020E030E0FA0131832083089580E1EB\r
+:1015300089BD82E189BD09B400FEFDCF8091D8004C\r
+:101540008F7D8093D8008091E00082608093E000DE\r
+:101550008091E00081FDFCCF0895CF92DF92EF9261\r
+:10156000FF920F931F93CF93DF93EC018B016A01DE\r
+:101570000E94100C811133C0C114D10439F0F6015E\r
+:1015800080819181081B190BC80FD91FE12CF12C08\r
+:101590000115110519F18091E80085FD16C08091B3\r
+:1015A000E8008E778093E800C114D10449F0F60179\r
+:1015B00080819181E80EF91EF182E08285E00FC002\r
+:1015C0000E94100C882321F30AC089918093F100B6\r
+:1015D00001501109FFEFEF1AFF0ADACF80E0DF9127\r
+:1015E000CF911F910F91FF90EF90DF90CF900895D2\r
+:1015F0002091EC013091ED012617370748F0611575\r
+:10160000710539F42091E8002E772093E80001C09D\r
+:10161000B90140E061157105A9F12091E50122238E\r
+:1016200009F443C0253009F442C02091E80023FDAD\r
+:1016300040C02091E80022FD32C02091E80020FF48\r
+:10164000E9CF4091F3002091F20030E0342BFC010F\r
+:10165000CF016115710559F02830310540F48191B1\r
+:101660008093F100615071092F5F3F4FF1CF41E04E\r
+:101670002830310509F040E02091E8002E772093D2\r
+:10168000E800C8CF4111C9CF0AC08091E501882385\r
+:1016900061F0853061F08091E80083FD0AC080919F\r
+:1016A000E80082FFF2CF80E0089582E0089583E0B1\r
+:1016B000089581E008952091EC013091ED01261705\r
+:1016C000370748F06115710539F42091E8002E774D\r
+:1016D0002093E80001C0B901FC0120E0611571050B\r
+:1016E00091F18091E501882309F440C0853009F427\r
+:1016F0003FC08091E80083FD3DC08091E80082FDFD\r
+:101700002FC08091E80080FFE9CF2091F300809105\r
+:10171000F20090E0922B6115710559F08830910527\r
+:1017200040F424912093F1003196615071090196A3\r
+:10173000F2CF21E0089709F020E08091E8008E7751\r
+:101740008093E800CBCF2111CCCF0AC08091E50176\r
+:10175000882361F0853061F08091E80083FD0AC044\r
+:101760008091E80082FFF2CF80E0089582E0089542\r
+:1017700083E0089581E00895982F973058F590936D\r
+:10178000E900981739F07091EC002091ED0050912C\r
+:10179000F00003C0242F762F50E021FF19C03091B4\r
+:1017A000EB003E7F3093EB003091ED003D7F3093B6\r
+:1017B000ED003091EB0031603093EB007093EC0062\r
+:1017C0002093ED005093F0002091EE0027FF07C01A\r
+:1017D0009F5FD3CF8F708093E90081E0089580E010\r
+:1017E00008958091E60187FF11C08091E80082FD95\r
+:1017F00005C08091E5018111F8CF11C08091E8000A\r
+:101800008B770BC08091E501882349F08091E80037\r
+:1018100080FFF8CF8091E8008E778093E8000895EC\r
+:101820002091E4003091E50095E64091EC00842F92\r
+:10183000817040FF22C08091E80080FD1CC0809133\r
+:10184000E501882391F0853091F08091EB0085FDD2\r
+:1018500010C04091E4005091E5004217530729F36E\r
+:101860009A01915011F784E0089582E0089583E091\r
+:10187000089581E0089580E008954091E80042FFD6\r
+:10188000DECF08950E94B00C0E94B80CE0EEF0E0AC\r
+:10189000808181608083E8EDF0E080818F778083B4\r
+:1018A00019BCA7EDB0E08C918E7F8C9380818F7EE8\r
+:1018B00080831092E40108950F931F93CF93DF93D9\r
+:1018C0000E94B00C0E94B80CC8EDD0E088818F77E0\r
+:1018D000888388818068888388818F7D888319BC0C\r
+:1018E0001092E5011092E1011092E3011092E201E1\r
+:1018F00000EE10E0F80180818B7F80838881816019\r
+:10190000888342E060E080E00E94BC0BE1EEF0E002\r
+:1019100080818E7F8083E2EEF0E080818160808331\r
+:10192000808188608083F80180818E7F80838881B8\r
+:1019300080618883DF91CF911F910F910895E8ED29\r
+:10194000F0E080818F7E8083E7EDF0E08081816030\r
+:10195000808384E082BF81E08093E4010C945C0C7E\r
+:10196000E8EDF0E080818E7F80831092E2000895A0\r
+:101970001092DA001092E10008951F920F920FB6B4\r
+:101980000F9211242F933F934F935F936F937F9305\r
+:101990008F939F93AF93BF93EF93FF938091E10059\r
+:1019A00082FF0BC08091E20082FF07C08091E100BE\r
+:1019B0008B7F8093E1000E94240F8091DA0080FFEA\r
+:1019C0001FC08091D80080FF1BC08091DA008E7FFD\r
+:1019D0008093DA008091D90080FF0DC080E189BD3D\r
+:1019E00082E189BD09B400FEFDCF81E08093E5016D\r
+:1019F0000E941F0905C019BC1092E5010E942D0923\r
+:101A00008091E10080FF19C08091E20080FF15C045\r
+:101A10008091E2008E7F8093E2008091E2008061FD\r
+:101A20008093E2008091D80080628093D80019BC36\r
+:101A300085E08093E5010E9431098091E10084FFF7\r
+:101A400030C08091E20084FF2CC080E189BD82E13A\r
+:101A500089BD09B400FEFDCF8091D8008F7D8093B1\r
+:101A6000D8008091E1008F7E8093E1008091E200B8\r
+:101A70008F7E8093E2008091E20081608093E2009B\r
+:101A80008091E101882311F084E007C08091E30098\r
+:101A900087FD02C081E001C083E08093E5010E94E0\r
+:101AA00033098091E10083FF29C08091E20083FF28\r
+:101AB00025C08091E100877F8093E10082E08093E0\r
+:101AC000E5011092E1018091E1008E7F8093E100B9\r
+:101AD0008091E2008E7F8093E2008091E20080613D\r
+:101AE0008093E20042E060E080E00E94BC0B8091C5\r
+:101AF000F00088608093F0000E943009FF91EF9120\r
+:101B0000BF91AF919F918F917F916F915F914F9115\r
+:101B10003F912F910F900FBE0F901F9018951F921D\r
+:101B20000F920FB60F9211242F933F934F935F9311\r
+:101B30006F937F938F939F93AF93BF93CF93DF93D5\r
+:101B4000EF93FF93C091E900CF708091EC00D82F04\r
+:101B5000D17080FDD0E81092E9008091F000877F7D\r
+:101B60008093F00078940E94D30D1092E900809148\r
+:101B7000F00088608093F000CD2BCF70C093E90017\r
+:101B8000FF91EF91DF91CF91BF91AF919F918F9195\r
+:101B90007F916F915F914F913F912F910F900FBE69\r
+:101BA0000F901F9018951F93CF93DF93CDB7DEB79B\r
+:101BB000AA970FB6F894DEBF0FBECDBFE6EEF1E0F8\r
+:101BC00088E08E0F9091F10091938E13FBCF0E94CD\r
+:101BD0004F098091E80083FF1FC18091E601909139\r
+:101BE000E701492F50E04A30510508F015C1FA01CC\r
+:101BF000E15AFF4F0C943923803881F0823809F084\r
+:101C00000BC18091EA018F708093E9008091EB0015\r
+:101C100085FB882780F91092E90006C08091E201D7\r
+:101C20009091E301911182609091E800977F9093E9\r
+:101C3000E8008093F1001092F100C8C0282F2D7F9A\r
+:101C400009F0EAC0882319F0823061F0E5C0809184\r
+:101C5000E801813009F0E0C0933009F080E0809322\r
+:101C6000E3012BC08091E801811127C08091EA0136\r
+:101C70008F7009F4D1C08093E9002091EB0020FF20\r
+:101C80001CC0933021F48091EB00806214C09091CD\r
+:101C9000EB0090619093EB0021E030E0A90102C0DD\r
+:101CA000440F551F8A95E2F74093EA001092EA002C\r
+:101CB0008091EB0088608093EB001092E9008091A6\r
+:101CC000E800877F86C08111A7C01091E8011F77C7\r
+:101CD0008091E3008078812B8093E3008091E8007D\r
+:101CE000877F8093E8000E94F10B8091E80080FFDD\r
+:101CF000FCCF8091E30080688093E300111102C063\r
+:101D000082E001C083E08093E50186C08058823084\r
+:101D100008F082C08091E8019091E9018C3D53E088\r
+:101D2000950779F583E08A838AE289834FB7F8942F\r
+:101D3000DE01139620E03EE051E2E32FF0E0509305\r
+:101D40005700E49120FF03C0E295EF703F5FEF7012\r
+:101D50008E2F90E0EA3010F0C79601C0C0968D93A8\r
+:101D60009D932F5F243149F74FBF8091E800877F13\r
+:101D70008093E8006AE270E0CE0101960E94F80AC2\r
+:101D800014C0AE014F5F5F4F6091EA010E943F0AAD\r
+:101D9000BC01892B09F440C09091E800977F909393\r
+:101DA000E80089819A810E945B0B8091E8008B7723\r
+:101DB0008093E80031C0803879F58091E800877F12\r
+:101DC0008093E8008091E1018093F1008091E80028\r
+:101DD0008E778093E8000E94F10B1EC081111CC019\r
+:101DE0009091E8019230C0F48091E800877F809361\r
+:101DF000E8009093E1010E94F10B8091E1018111D3\r
+:101E000006C08091E30087FD02C081E001C084E04C\r
+:101E10008093E5010E943B098091E80083FF0AC09E\r
+:101E20008091E800877F8093E8008091EB008062DA\r
+:101E30008093EB00AA960FB6F894DEBF0FBECDBF1D\r
+:101E4000DF91CF911F9108950895CF938091E5017F\r
+:101E50008823A1F0C091E900CF709091EC00892F08\r
+:101E6000817090FD80E8C82B1092E9008091E80015\r
+:101E700083FD0E94D30DCF70C093E900CF910895E8\r
+:101E800090936901809368010895E0916801F09151\r
+:101E90006901309721F00190F081E02D099480E0F4\r
+:101EA0000895E0916801F0916901309721F0028076\r
+:101EB000F381E02D09940895E0916801F0916901A2\r
+:101EC000309721F00480F581E02D09940895209148\r
+:101ED0006601309167018217930771F09093670153\r
+:101EE00080936601E0916801F0916901309721F0DB\r
+:101EF0000680F781E02D09940895209164013091C6\r
+:101F000065018217930771F09093650180936401D6\r
+:101F1000E0916801F0916901309721F00084F1852A\r
+:101F2000E02D0994089508950C94930F0E94161BB8\r
+:101F30000E9414050C94DC1BCF92DF92EF92FF926B\r
+:101F40000F931F93CF93DF93CDB7DEB72B970FB6C9\r
+:101F5000F894DEBF0FBECDBF0E9431058BE6C82EC0\r
+:101F600081E0D82E00E010E0E02E802F0E942306B2\r
+:101F7000F60141916F01F42EF826B1F40F5F1F4F67\r
+:101F80000E30110589F78FEF89838A831B820E94A7\r
+:101F90001F1B8160782F9D838C8349815A816B81BF\r
+:101FA0008D810E943F1040C09091CC0191FF04C0F0\r
+:101FB0008B870E9429068B8520E030E04F2D50E072\r
+:101FC000922FBA01022E02C0759567950A94E2F726\r
+:101FD00060FF24C02E83EF8221E030E0690102C05F\r
+:101FE000CC0CDD1C9A95E2F790E08C219D21892B89\r
+:101FF00009F420E028870E941F1B8160782F9A87B0\r
+:1020000089874E815F8168858A850E943F10F8012B\r
+:10201000E559FE4F8081C826C08206C02F5F3F4F22\r
+:102020002630310569F6AACF0E94C31E10916A01BD\r
+:102030000E94450F1817A1F00E94450F80936A0176\r
+:102040002B960FB6F894DEBF0FBECDBFDF91CF91B8\r
+:102050001F910F91FF90EF90DF90CF900C943F086D\r
+:102060002B960FB6F894DEBF0FBECDBFDF91CF9198\r
+:102070001F910F91FF90EF90DF90CF900895CF9335\r
+:10208000DF93CDB7DEB72B970FB6F894DEBF0FBE48\r
+:10209000CDBF4F83588769877A878B87DE0111967A\r
+:1020A00086E0FD0111928A95E9F785E0FE013796F9\r
+:1020B00001900D928A95E1F749815A816B817C816B\r
+:1020C0008D819E810E9455172B960FB6F894DEBF26\r
+:1020D0000FBECDBFDF91CF910895CF93882309F430\r
+:1020E000C2C0C82F823859F40E94450F81FDBBC081\r
+:1020F00089E30E94F1190E94AE1A89E30CC083386B\r
+:1021000079F40E94450F80FDAEC083E50E94F1196D\r
+:102110000E94AE1A83E50E94331ACF910C94AE1A36\r
+:10212000843859F40E94450F82FD9DC087E40E94C7\r
+:10213000F1190E94AE1A87E4EECF8CEF8C0F813A32\r
+:1021400048F48C2F0E94042181118DC08C2F0E9495\r
+:10215000F119E3CF80E28C0F883048F4C77081E03A\r
+:1021600001C0880FCA95EAF70E94771AD6CF8BE58F\r
+:102170008C0F833078F4C53A29F0C63A31F083E801\r
+:1021800090E005C081E890E002C082E890E0CF9145\r
+:102190000C94670F88E58C0F833108F064C0C83A4F\r
+:1021A00039F1C93A41F1CA3A49F1CB3A51F1CC3A45\r
+:1021B00059F1CD3A61F1C03B69F1CE3A71F1CF3AB4\r
+:1021C00079F1C13B81F1C23B89F1C33B91F1C43B41\r
+:1021D00099F1C53BA1F1C63BA9F1C73BB1F1C83BA1\r
+:1021E000B9F1C93BC1F1CA3BC9F180E090E038C008\r
+:1021F00082EE90E035C089EE90E032C08AEE90E049\r
+:102200002FC085EB90E02CC086EB90E029C087EBD7\r
+:1022100090E026C08CEC90E023C08DEC90E020C0D4\r
+:1022200083E891E01DC08AE891E01AC082E991E05C\r
+:1022300017C084E991E014C081E292E011C083E20A\r
+:1022400092E00EC084E292E00BC085E292E008C00A\r
+:1022500086E292E005C087E292E002C08AE292E064\r
+:10226000CF910C947D0FCF910895882309F44BC032\r
+:10227000823859F40E94450F81FF45C089E30E94CE\r
+:10228000F1190E94AE1A89E30CC0833871F40E94E0\r
+:10229000450F80FF38C083E50E94F1190E94AE1AF5\r
+:1022A00083E50E94331A0C94AE1A843859F40E94C4\r
+:1022B000450F82FF28C087E40E94F1190E94AE1AE0\r
+:1022C00087E4EFCF9CEF980F913A58F390E2980F84\r
+:1022D000983050F4877091E001C0990F8A95EAF721\r
+:1022E000892F0E947D1ADFCF9BE5980F933020F451\r
+:1022F00080E090E00C94670F885A833120F480E0EE\r
+:1023000090E00C947D0F0895882321F00E94771AA5\r
+:102310000C94AE1A0895882321F00E947D1A0C9423\r
+:10232000AE1A0895BF92CF92DF92EF92FF920F9371\r
+:102330001F93CF93DF9300D000D000D0CDB7DEB78E\r
+:1023400025E0FC01DE01119601900D922A95E1F73E\r
+:10235000FC01408131810281258122952F706381AA\r
+:102360007481672B09F4E5C23F3F19F44F3F09F42C\r
+:10237000E0C27C0149833A8389819A812E830E943D\r
+:10238000B019182FB92E0E94AF190E947618EB2DA4\r
+:10239000E295EF70F0E0E759FF4F2E810C9439235E\r
+:1023A0008B2D807F9B2D9F70F92E882319F0F2943E\r
+:1023B00080EFF822002349F0FF2009F467C28F2D37\r
+:1023C0000E94871A0E94AE1A61C2812F0E943511A5\r
+:1023D000FF2009F4AEC28F2D0E948D1A26960FB6EB\r
+:1023E000F894DEBF0FBECDBFDF91CF911F910F914B\r
+:1023F000FF90EF90DF90CF90BF900C94AE1A3B2DE2\r
+:10240000307F8B2D8F70303211F08295807F1123B9\r
+:1024100019F0113021F12CC00023B9F0222309F466\r
+:10242000A0C1213009F09DC126960FB6F894DEBFF9\r
+:102430000FBECDBFDF91CF911F910F91FF90EF9015\r
+:10244000DF90CF90BF900C94971A222319F021307F\r
+:1024500009F46FC28E830E949A1A8E8196C100235E\r
+:1024600021F0223008F065C27CC1211162C28DC109\r
+:10247000002321F0222309F474C108C2222309F4A5\r
+:1024800084C119C22B2D26952695237030E0211585\r
+:10249000310521F021303105D1F04BC2002321F06C\r
+:1024A000812F9B2D937002C080E090E026960FB69E\r
+:1024B000F894DEBF0FBECDBFDF91CF911F910F917A\r
+:1024C000FF90EF90DF90CF90BF900C94670F0023A8\r
+:1024D00021F0812F9B2D937002C080E090E0269622\r
+:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125\r
+:1024F0000F91FF90EF90DF90CF90BF900C947D0FE5\r
+:10250000812F002319F00E94CB1D02C00E94331EB0\r
+:1025100026960FB6F894DEBF0FBECDBFDF91CF91E8\r
+:102520001F910F91FF90EF90DF90CF90BF900C9490\r
+:10253000B81E8B2D837009F07BC00111FAC1812F69\r
+:10254000829586958770880F880F912F9F70C92E6E\r
+:10255000D12CE12CF12C082E04C0CC0CDD1CEE1C7F\r
+:10256000FF1C0A94D2F714FF12C04FE050E060E065\r
+:1025700070E004C0440F551F661F771F8A95D2F77D\r
+:10258000CB01BA01609570958095909503C060E08D\r
+:1025900070E0CB012B2D269526952370422F50E01D\r
+:1025A00042305105D9F04330510569F16C297D293C\r
+:1025B0008E299F294130510551F126960FB6F89486\r
+:1025C000DEBF0FBECDBFDF91CF911F910F91FF9066\r
+:1025D000EF90DF90CF90BF900C949D186C297D29CF\r
+:1025E0008E299F2926960FB6F894DEBF0FBECDBF69\r
+:1025F000DF91CF911F910F91FF90EF90DF90CF90DF\r
+:10260000BF900C94B9180E949D18C701B601269678\r
+:102610000FB6F894DEBF0FBECDBFDF91CF911F91F3\r
+:102620000F91FF90EF90DF90CF90BF900C948118A6\r
+:10263000002319F08B2D817001C08695882309F441\r
+:1026400078C1812F829586958770880F880F912F8A\r
+:102650009F70C92ED12CE12CF12C082E04C0CC0C7B\r
+:10266000DD1CEE1CFF1C0A94D2F714FF12C04FE0D1\r
+:1026700050E060E070E004C0440F551F661F771FF4\r
+:102680008A95D2F7CB01BA016095709580959095A7\r
+:1026900003C060E070E0CB012B2D269526952370BA\r
+:1026A000422F50E042305105D9F04330510569F1D5\r
+:1026B0006C297D298E299F294130510551F126969B\r
+:1026C0000FB6F894DEBF0FBECDBFDF91CF911F9143\r
+:1026D0000F91FF90EF90DF90CF90BF900C947719FF\r
+:1026E0006C297D298E299F2926960FB6F894DEBF86\r
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053\r
+:10270000DF90CF90BF900C9493190E947719C70166\r
+:10271000B60126960FB6F894DEBF0FBECDBFDF918F\r
+:10272000CF911F910F91FF90EF90DF90CF90BF90CE\r
+:102730000C945B19103FD1F118F4103E50F4A1C075\r
+:10274000123F09F463C008F44CC0133F09F473C08E\r
+:1027500098C01F708B2D8F710023A1F00E94F41878\r
+:10276000812F26960FB6F894DEBF0FBECDBFDF9146\r
+:10277000CF911F910F91FF90EF90DF90CF90BF907E\r
+:102780000C9484110E941519812F26960FB6F89487\r
+:10279000DEBF0FBECDBFDF91CF911F910F91FF9094\r
+:1027A000EF90DF90CF90BF900C948B110023A9F095\r
+:1027B0002111BFC08B2D8F7126960FB6F894DEBF06\r
+:1027C0000FBECDBFDF91CF911F910F91FF90EF9082\r
+:1027D000DF90CF90BF900C943A19223008F0A9C036\r
+:1027E000E9CF0023A9F08B2D8F7126960FB6F894B0\r
+:1027F000DEBF0FBECDBFDF91CF911F910F91FF9034\r
+:10280000EF90DF90CF90BF900C94F418002359F311\r
+:102810008B2D8F7126960FB6F894DEBF0FBECDBFFD\r
+:10282000DF91CF911F910F91FF90EF90DF90CF90AC\r
+:10283000BF900C941519002399F08B2D8F7126965B\r
+:102840000FB6F894DEBF0FBECDBFDF91CF911F91C1\r
+:102850000F91FF90EF90DF90CF90BF900C94DF1816\r
+:1028600026960FB6F894DEBF0FBECDBFDF91CF9195\r
+:102870001F910F91FF90EF90DF90CF90BF900C943D\r
+:10288000D5180023A9F0222309F4ADCF812F269675\r
+:102890000FB6F894DEBF0FBECDBFDF91CF911F9171\r
+:1028A0000F91FF90EF90DF90CF90BF900C946D1040\r
+:1028B000222309F4ADCF812F26960FB6F894DEBF00\r
+:1028C0000FBECDBFDF91CF911F910F91FF90EF9081\r
+:1028D000DF90CF90BF900C9435114B2D4F70612F2E\r
+:1028E000C7010E94920326960FB6F894DEBF0FBE72\r
+:1028F000CDBFDF91CF911F910F91FF90EF90DF90AF\r
+:10290000CF90BF900C94F9174B2D4F70612FC701DA\r
+:1029100026960FB6F894DEBF0FBECDBFDF91CF91E4\r
+:102920001F910F91FF90EF90DF90CF90BF900C948C\r
+:10293000E90626960FB6F894DEBF0FBECDBFDF9135\r
+:10294000CF911F910F91FF90EF90DF90CF90BF90AC\r
+:1029500008950E94941A0E94691A0E94AE1A0E9459\r
+:10296000691F0E94B81E80E090E00E94670F80E01F\r
+:1029700090E00C947D0F0E94841A0C94A9140E947C\r
+:10298000B019292F22952F7030E02C3031054CF4EE\r
+:102990002A3031056CF4225031092230310588F497\r
+:1029A00007C02C30310549F02F30310531F009C016\r
+:1029B000803E48F0803F29F406C093FB882780F9C9\r
+:1029C000089580E0089581E00895CF93DF9300D0CB\r
+:1029D00000D01F92CDB7DEB70F900F900F900F90E1\r
+:1029E0000F90DF91CF910895CF93DF9300D000D067\r
+:1029F00000D0CDB7DEB726960FB6F894DEBF0FBE77\r
+:102A0000CDBFDF91CF9108951F93CF93DF93C091F6\r
+:102A1000790116E080917A01C81799F0D0E01C9FE7\r
+:102A2000F0011D9FF00D1124E558FE4F40815181AA\r
+:102A300062817381848195810E94F4142196C7700C\r
+:102A4000E9CFDF91CF911F9108954091AB01509153\r
+:102A5000AC016091AD017091AE018091AF01909198\r
+:102A6000B0010C94F4148091B00182958F7009F03C\r
+:102A700054C08091AD01882309F44FC08091790141\r
+:102A8000A0917A016091AB017091AC014091AE01CF\r
+:102A90005091AF01B6E08A1709F43FC090E04115AC\r
+:102AA0005105C1F17F3F11F46F3FA1F1B89FF001D3\r
+:102AB000B99FF00D1124E558FE4F218172132AC0F1\r
+:102AC0002081621327C02281211124C023813481F7\r
+:102AD0002417350710F421503109241B350B283CED\r
+:102AE0003105C0F42091B0012F7020612093B00116\r
+:102AF00026E0289FF001299FF00D1124E058FE4F99\r
+:102B000080818F70806180838BEA91E00E949211B6\r
+:102B10000C94041501968770BECF0895CF92DF9272\r
+:102B2000EF92FF920F931F93CF93DF93CDB7DEB752\r
+:102B300062970FB6F894DEBF0FBECDBF8C0185E063\r
+:102B4000F801DE011D9601900D928A95E1F7D801FA\r
+:102B50004C9111965C91119712966C911297139665\r
+:102B6000CD90DC9014973091AB017091AC018091C5\r
+:102B7000AE019091AF01009709F46BC17F3F19F44A\r
+:102B80003F3F09F466C1E090AD01EE2009F4C0C0FA\r
+:102B90002091B001C816D90628F0F601E81BF90B00\r
+:102BA000CF0104C0809590958C0D9D1DFF24F3945A\r
+:102BB000883C910578F0F12C207F09F0C6C07C2D6F\r
+:102BC000D98AC88A89890E94E5148BEA91E00E941B\r
+:102BD0009211B1C0822F807F09F046C0751314C0D6\r
+:102BE000341312C0611110C02F7020612093B00106\r
+:102BF0000E9425158BEA91E00E9492118091B0010C\r
+:102C0000D80115968C932EC0CD2819F15F3F11F491\r
+:102C10004F3FF9F0F62E61111CC08091790120918F\r
+:102C20007A0136E0821709F45AC090E0389FF0012B\r
+:102C3000399FF00D1124E558FE4F7181571306C0DE\r
+:102C40007081471303C07281711103C001968770B0\r
+:102C5000E9CFF62E662309F418C18091B001816096\r
+:102C60008093B001F12C11C1751308C0341306C054\r
+:102C7000611104C08091B001D801C3C04D875E8747\r
+:102C80008D859E856A8B0E94BF146A898823E1F135\r
+:102C90006623D1F12091B001822F82958F7090E050\r
+:102CA000029774F08091AB019091AC0198878F836B\r
+:102CB0001986DB86CA862C87CE0107960E94921160\r
+:102CC00086E0F801ABEAB1E001900D928A95E1F758\r
+:102CD0000E9433150E942515FF24F394D6C04D871A\r
+:102CE0005E878D859E850E94B019292F22952F70B1\r
+:102CF00030E0223031050CF0BCC09F7009F0B6C046\r
+:102D0000805E883008F4C1C0C8010E949211E4CFEF\r
+:102D1000C816D90608F453C0F601E81BF90BCF0119\r
+:102D2000883C910508F450C0F12C7C2DD98AC88AC2\r
+:102D300089890E94E514EBEAF1E086E0DF011D924B\r
+:102D40008A95E9F70E942515A0C0751314C03413A5\r
+:102D500012C0611110C08091B001F8018583C801D3\r
+:102D60000E94921186E0EBEAF1E0DF011D928A9564\r
+:102D7000E9F7FE2C8AC04D875E878D859E856A8B1C\r
+:102D80000E94BF146A89882309F4BECF662309F420\r
+:102D9000BBCF2091B001822F82958F7090E0029777\r
+:102DA0000CF48ECF8091AB019091AC019A83898312\r
+:102DB0001B82DD82CC822E83CE0101967FCF80954F\r
+:102DC00090958C0D9D1DACCFF62E662309F49CCFFB\r
+:102DD00075132EC034132CC02091B00120FD1FC0EC\r
+:102DE000822F82958F70D9F0D80115962C93159764\r
+:102DF0008F3049F08F5F982F9295907F822F8F7040\r
+:102E0000892B15968C93C8010E94921186E0F801D7\r
+:102E1000ABEAB1E001900D928A95E1F793CF86E09D\r
+:102E2000F801ABEAB1E001900D928A95E1F72DC06F\r
+:102E30004D875E878D859E850E94BF14811140CF8E\r
+:102E40008091B00181608093B001C8010E9492110D\r
+:102E50001CC0662309F458CF4D875E878D859E85FB\r
+:102E60000E94BF14882309F44FCF2ACF811148CF85\r
+:102E70000CC0243031050CF047CF9F7009F440CFCF\r
+:102E8000F8019581907F09F03BCF8F2D62960FB6A8\r
+:102E9000F894DEBF0FBECDBFDF91CF911F910F9190\r
+:102EA000FF90EF90DF90CF9008951F93CF93DF9323\r
+:102EB000CDB7DEB72C970FB6F894DEBF0FBECDBFEF\r
+:102EC0004F83588769877A878B879C87CE010796BF\r
+:102ED0000E948E15882369F08F8198852A853B850D\r
+:102EE000232BF1F19F3F09F063C08F3F09F060C0D1\r
+:102EF00037C086E0FE013796DE01119601900D92F3\r
+:102F00008A95E1F76F817885EA85FB85309741F1F5\r
+:102F10007F3F11F46F3F21F120917A0130E0C90128\r
+:102F20000196877099274091790150E084179507A1\r
+:102F300009F447C069837A83FD83EC8396E0929F0E\r
+:102F4000D001939FB00D1124A558BE4FFE013196BC\r
+:102F500001900D929A95E1F780937A010E940415F1\r
+:102F600016E08091790190917A018917C1F1189F3B\r
+:102F7000C001112485589E4F0E948E15882379F137\r
+:102F8000E09179011E9FF0011124E558FE4F408128\r
+:102F9000518162817381848195810E94F4148091B2\r
+:102FA000790190E001968770992780937901D9CFB4\r
+:102FB0004F81588569857A858B859C850E94F4149C\r
+:102FC000CFCF0E94BB1410927A0110927901EBEAE4\r
+:102FD000F1E086E0DF011D928A95E9F7C1CF2C96DA\r
+:102FE0000FB6F894DEBF0FBECDBFDF91CF911F911A\r
+:102FF0000895EF92FF920F931F93CF93DF938C016D\r
+:10300000892B09F46CC0F12CEE24E394E80121969D\r
+:10301000F8018491843740F4843008F051C0813045\r
+:1030200081F0823019F15BC0853709F444C0A8F102\r
+:103030009CE7980F903708F052C08F770E943511A7\r
+:1030400041C00E5F1F4FFE01C49180E28C0F88309B\r
+:1030500048F4C7708E2D01C0880FCA95EAF70E9408\r
+:10306000871A14C08C2F0E946D102DC00E5F1F4F49\r
+:10307000FE01C49180E28C0F883058F4C7708E2D09\r
+:1030800001C0880FCA95EAF70E948D1A0E94AE1AF5\r
+:103090001AC08C2F0E94351116C00E5F1F4FFE0103\r
+:1030A000C491CC2381F08FE99FE00197F1F700C034\r
+:1030B0000000C150F6CF0E5F1F4FFE01F49003C019\r
+:1030C0000E946D108E018F2D882309F49FCFEFE9A8\r
+:1030D000FFE03197F1F700C000008150F5CFDF919C\r
+:1030E000CF911F910F91FF90EF90089508956093F5\r
+:1030F000B5017093B6018093B7019093B8010C9419\r
+:10310000A9140F931F930091B5011091B60120915E\r
+:10311000B7013091B801DC01CB01802B912BA22BA0\r
+:10312000B32B8093B5019093B601A093B701B093F0\r
+:10313000B8011F910F910C94A9140F931F93009144\r
+:10314000B5011091B6012091B7013091B801DC01B1\r
+:10315000CB0180239123A223B3238093B5019093C5\r
+:10316000B601A093B701B093B8011F910F910C94D1\r
+:10317000A9140F931F930091B5011091B6012091EE\r
+:10318000B7013091B801DC01CB0180279127A2273C\r
+:10319000B3278093B5019093B601A093B701B09384\r
+:1031A000B8011F910F910C94A9141092B1011092C3\r
+:1031B000B2011092B3011092B4010C94A91441E031\r
+:1031C00050E060E070E004C0440F551F661F771F99\r
+:1031D0008A95D2F74093B1015093B2016093B30145\r
+:1031E0007093B4010C94A91441E050E060E070E0E9\r
+:1031F00004C0440F551F661F771F8A95D2F7809130\r
+:10320000B1019091B201A091B301B091B401482BEA\r
+:10321000592B6A2B7B2B4093B1015093B2016093E1\r
+:10322000B3017093B4010C94A91441E050E060E044\r
+:1032300070E004C0440F551F661F771F8A95D2F7B0\r
+:1032400040955095609570958091B1019091B20133\r
+:10325000A091B301B091B401482359236A237B2381\r
+:103260004093B1015093B2016093B3017093B401E4\r
+:103270000C94A91441E050E060E070E004C0440FF9\r
+:10328000551F661F771F8A95D2F78091B1019091E3\r
+:10329000B201A091B301B091B401482759276A2720\r
+:1032A0007B274093B1015093B2016093B3017093B7\r
+:1032B000B4010C94A9140F931F930091B1011091C4\r
+:1032C000B2012091B3013091B401DC01CB01802B1C\r
+:1032D000912BA22BB32B8093B1019093B201A093B9\r
+:1032E000B301B093B4011F910F910C94A9140F93E3\r
+:1032F0001F930091B1011091B2012091B30130915F\r
+:10330000B401DC01CB0180239123A223B32380935A\r
+:10331000B1019093B201A093B301B093B4011F9196\r
+:103320000F910C94A9140F931F930091B101109168\r
+:10333000B2012091B3013091B401DC01CB018027AF\r
+:103340009127A227B3278093B1019093B201A09354\r
+:10335000B301B093B4011F910F910C94A914089577\r
+:10336000CF92DF92EF92FF920F931F93CF93DF9351\r
+:103370008C01C090B501D090B601E090B701F090FB\r
+:10338000B8014091B1015091B2016091B3017091C7\r
+:10339000B401C42AD52AE62AF72ACFE1D0E0D70122\r
+:1033A000C6010C2E04C0B695A795979587950A94EB\r
+:1033B000D2F780FF07C0B8018C2F0E940C07813024\r
+:1033C000910531F4219758F7B80180E00E940C076D\r
+:1033D000DF91CF911F910F91FF90EF90DF90CF90F1\r
+:1033E000089590910C01992321F090910D01911174\r
+:1033F00009C020910E0130910F01F90132969FEF23\r
+:1034000040E01FC0982F9695969596959F3050F561\r
+:10341000E0910E01F0910F01E90FF11D877021E09D\r
+:1034200030E0A90102C0440F551F8A95E2F7CA0196\r
+:103430009181892B818308959F3F39F04F5F4E30F2\r
+:1034400041F051915813F8CF0DC05111F7CF942F7F\r
+:10345000F5CF9F3F39F0F901E90FF11D97FDFA957E\r
+:1034600082830895089590910C01992321F0909101\r
+:103470000D01911109C020910E0130910F01F90148\r
+:103480003296205F3F4F1FC0982F96959695969540\r
+:103490009F30F0F4E0910E01F0910F01E90FF11D62\r
+:1034A000877021E030E0A90102C0440F551F8A95C2\r
+:1034B000E2F7CA018095918189238183089531962D\r
+:1034C000E217F30729F090819813F9CF1082F7CF14\r
+:1034D000089581E090E0E0910E01F0910F01E80F76\r
+:1034E000F91F1082019680319105A9F708959091F6\r
+:1034F000CB01892B8093CB01089580959091CB01CE\r
+:1035000089238093CB0108951092CB010895909167\r
+:10351000CA01892B8093CA01089580959091CA01B0\r
+:1035200089238093CA0108951092CA010895809357\r
+:10353000B90108951092B901089580910E019091FA\r
+:103540000F01FC0131969C01205F3F4F80E091917B\r
+:1035500091118F5FE217F307D1F70895E0910E0103\r
+:10356000F0910F018091CB018083E0910E01F091E9\r
+:103570000F0190818091CA01892B80838091B901CC\r
+:10358000882361F0E0910E01F0910F019081892B69\r
+:1035900080830E949D1A81111092B90180910E01C1\r
+:1035A00090910F010C94510F8091E501843009F145\r
+:1035B0001092CD0120E488E190E00FB6F894A89530\r
+:1035C000809360000FBE2093600083B7817F84608A\r
+:1035D00083BF83B7816083BF7894889583B78E7FDC\r
+:1035E00083BF88E10FB6F89480936000109260006A\r
+:1035F0000FBE089508950895CF930E94FA1A0E946D\r
+:1036000031050E94FB1AC0E08C2F0E942306811115\r
+:1036100004C0CF5FCE30C1F701C081E0CF910895E3\r
+:103620000E94BB140E94450F0C943F0882E084BDA9\r
+:1036300093E095BD9AEF97BD80936E0008952FB7E4\r
+:10364000F8948091CE019091CF01A091D001B091DA\r
+:10365000D1012FBF0895CF92DF92EF92FF920F9387\r
+:103660001F932FB7F8944091CE015091CF016091F4\r
+:10367000D0017091D1012FBF6A017B01EE24FF249C\r
+:103680008C0120E030E0C016D106E206F30610F40B\r
+:10369000415051099A01281B390BC9011F910F9103\r
+:1036A000FF90EF90DF90CF9008951F920F920FB68A\r
+:1036B0000F9211248F939F93AF93BF938091CE016C\r
+:1036C0009091CF01A091D001B091D1010196A11D9F\r
+:1036D000B11D8093CE019093CF01A093D001B09300\r
+:1036E000D101BF91AF919F918F910F900FBE0F901D\r
+:1036F0001F9018950E94420CF8942FEF87EA91E6EC\r
+:10370000215080409040E1F700C0000087E090EB3E\r
+:10371000DC018093EE019093EF01A093F001B09350\r
+:10372000F1019CE088E10FB6F894A89580936000C1\r
+:103730000FBE90936000FFCFEF92FF920F931F9305\r
+:10374000CF93DF93D82FC0E08C2F0E94230600E098\r
+:1037500010E0E82EF12CC701002E02C09595879548\r
+:103760000A94E2F780FD06C00F5F1F4F0630110577\r
+:1037700091F709C0602F7C2F80E00E94EA06D813E1\r
+:10378000F3CF81E004C0CF5FCE30F1F680E0DF916F\r
+:10379000CF911F910F91FF90EF900895CF93C82F75\r
+:1037A0008CE20E949C1B882321F08C2FCF910C94DB\r
+:1037B0009C1B80E0CF910895CF930E94231D81111F\r
+:1037C00002C00E94091DC5E6C15049F00E943105A2\r
+:1037D0008FE39CE90197F1F700C00000F5CF89E283\r
+:1037E0000E94CE1B811113C18AE20E94CE1B81115F\r
+:1037F0000E94091D85E00E94CE1B81110E947A1B48\r
+:103800000E942E1D8093CC0187E00E94CE1B88234E\r
+:10381000A9F18BE10E94CE1B882351F08091CC014D\r
+:1038200081FB222720F991E0922790FB81F90EC0BD\r
+:103830008EE00E94CE1B882361F08091CC0182FB38\r
+:10384000222720F991E0922790FB82F98093CC0106\r
+:1038500015C080E10E94CE1B9091CC01882341F0DD\r
+:1038600093FB222720F981E0822780FB93F904C093\r
+:10387000892F809580FB90F99093CC018091CC01A9\r
+:103880000E94321D0E94401D8093DF0180EE0E9445\r
+:10389000CE1B882341F08091DF01982F909590FBFB\r
+:1038A00080F98093DF0189E30E94CE1B882359F0C1\r
+:1038B0008091DF0181FB222720F991E0922790FB84\r
+:1038C00081F98093DF0182EE0E94CE1B882359F09C\r
+:1038D0008091DF0182FB222720F991E0922790FB63\r
+:1038E00082F98093DF0186EE0E94CE1B882359F077\r
+:1038F0008091DF0183FB222720F991E0922790FB42\r
+:1039000083F98093DF0183EE0E94CE1B882359F058\r
+:103910008091DF0184FB222720F991E0922790FB20\r
+:1039200084F98093DF0185E30E94CE1B882359F040\r
+:103930008091DF0185FB222720F991E0922790FBFF\r
+:1039400085F98093DF0181E30E94CE1B882359F023\r
+:103950008091DF0186FB222720F991E0922790FBDE\r
+:1039600086F98093DF0181E10E94CE1B882359F004\r
+:103970008091DF0187FB222720F991E0922790FBBD\r
+:1039800087F98093DF018091DF010E94441D8091BF\r
+:10399000DF0187FB882780F980930D0187E20E9471\r
+:1039A000CE1BC82F8EE10E94CE1B8111C2608FE119\r
+:1039B0000E94CE1B8111C46080E20E94CE1B811147\r
+:1039C000C86081E20E94CE1B8111C06182E20E9428\r
+:1039D000CE1B8111C06283E20E94CE1B8111C064A4\r
+:1039E00084E20E94CE1B882311F0C06802C0CC2361\r
+:1039F00029F08C2F0E943B1D6C2F03C00E94371DA5\r
+:103A0000682F70E080E090E0CF910C947718CF9110\r
+:103A100008956DEE7EEF80E090E00E946F2360E0FD\r
+:103A200082E090E00E94612360E083E090E00E94E9\r
+:103A3000612360E084E090E00E94612360E085E023\r
+:103A400090E00C94612380E090E00E945B2321E0F1\r
+:103A50008D3E9E4F09F020E0822F089582E090E095\r
+:103A60000C945323682F82E090E00C94612383E050\r
+:103A700090E00C945323682F83E090E00C94612332\r
+:103A800084E090E00C945323682F84E090E00C9441\r
+:103A900061238091D40180FF0BC06091130185E008\r
+:103AA000689FB001112475956795759567952BC032\r
+:103AB00081FF09C06091130185E0689FB001112466\r
+:103AC0007595679520C082FF07C06091130185E05E\r
+:103AD000689FB001112417C09091D5019923D1F0AE\r
+:103AE00060911201961788F72091130185E0289FB5\r
+:103AF00090011124929FA001939F500D112470E01A\r
+:103B0000CA010E9425236038710540F461157105D2\r
+:103B100039F002C065E070E0862F08958FE70895C0\r
+:103B200081E008958091D40180FF08C06091110167\r
+:103B300070E0759567957595679521C081FF06C002\r
+:103B40006091110170E07595679519C082FF04C0FE\r
+:103B50006091110170E010C09091D5019923C1F0DE\r
+:103B6000609110019617A0F780911101899FC00103\r
+:103B7000112470E00E9425236038710528F4611536\r
+:103B8000710521F0862F08958FE7089581E008954B\r
+:103B900061E070E0F4CF803F21F40E94491D8195DF\r
+:103BA00004C0813F29F40E94491D8093D8010895E3\r
+:103BB000823F21F40E94491D819504C0833F29F46E\r
+:103BC0000E94491D8093D7010895893F19F40E94EE\r
+:103BD000921D05C08A3F31F40E94921D8195809309\r
+:103BE000D90108958B3F21F40E94921D819504C054\r
+:103BF0008C3F29F40E94921D8093DA010895843F3E\r
+:103C000021F48091D601816017C0853F21F4809115\r
+:103C1000D601826011C0863F21F48091D601846074\r
+:103C20000BC0873F21F48091D601886005C0883F92\r
+:103C300031F48091D60180618093D60108958D3F43\r
+:103C400021F48091D40181600BC08E3F21F48091DA\r
+:103C5000D401826005C08F3F29F48091D401846033\r
+:103C60008093D4010895803F39F48091D80187FF73\r
+:103C70006CC01092D80169C0813F29F48091D801AD\r
+:103C80001816BCF362C09091D701823F29F497FFC8\r
+:103C90005CC01092D70159C0833F19F41916CCF3B8\r
+:103CA00054C0893F41F48091D90118160CF04DC0E1\r
+:103CB0001092D9014AC08A3F29F48091D90187FF27\r
+:103CC00044C0F6CF8B3F39F48091DA0187FF3DC0C5\r
+:103CD0001092DA013AC08C3F29F48091DA0118166B\r
+:103CE000BCF333C0843F21F48091D6018E7F17C08E\r
+:103CF000853F21F48091D6018D7F11C0863F21F44C\r
+:103D00008091D6018B7F0BC0873F21F48091D60133\r
+:103D1000877F05C0883F31F48091D6018F7E8093E4\r
+:103D2000D60113C08D3F21F48091D4018E7F0BC04A\r
+:103D30008E3F21F48091D4018D7F05C08F3F29F4FF\r
+:103D40008091D4018B7F8093D4018091D701811120\r
+:103D50000EC08091D80181110AC08091D9018111D2\r
+:103D600006C08091DA01811102C01092D501089538\r
+:103D700086ED91E00E945C0F0E941F1B9093D3017F\r
+:103D80008093D20108951F93CF93DF938091D20146\r
+:103D90009091D3010E942B1BAC019091D5019923E6\r
+:103DA00021F02091140130E006C0209115018AE035\r
+:103DB000289F900111244217530708F486C0809170\r
+:103DC000D701C091D801D091D9011091DA018111A8\r
+:103DD00007C0C11176C0D11174C0111172C075C075\r
+:103DE0009F3F19F09F5F9093D501181624F40E940D\r
+:103DF000491D8093D7018091D70187FF05C00E949C\r
+:103E0000491D81958093D7011C1624F40E94491DF9\r
+:103E10008093D8018091D80187FF05C00E94491D79\r
+:103E200081958093D8016091D701662339F1C091C3\r
+:103E3000D801CC2319F1772767FD7095872F972F2D\r
+:103E40000E94362223E333E343E35FE30E949A2296\r
+:103E50000E9403226093D7016C2F772767FD70952E\r
+:103E6000872F972F0E94362223E333E343E35FE358\r
+:103E70000E949A220E9403226093D8011D1624F406\r
+:103E80000E94921D8093D9018091D90187FF05C0BE\r
+:103E90000E94921D81958093D901111624F40E94ED\r
+:103EA000921D8093DA018091DA0187FF05C00E949C\r
+:103EB000921D81958093DA01DF91CF911F910C942F\r
+:103EC000B81E9F3F09F08ECF96CFDF91CF911F9103\r
+:103ED0000895E6EDF1E085E0DF011D928A95E9F7AE\r
+:103EE0001092D5011092D4010895833081F128F405\r
+:103EF000813059F08230D1F00895853009F449C0FD\r
+:103F0000B8F1863009F456C0089580911501262F26\r
+:103F100030E0280F311D2F3F310524F4680F6093E6\r
+:103F2000150108958FEF8093150108958091140174\r
+:103F3000262F30E0280F311D2F3F310524F4680F64\r
+:103F40006093140108958FEF809314010895809178\r
+:103F50001301262F30E0280F311D2F3F310524F4A7\r
+:103F6000680F6093130108958FEF809313010895F4\r
+:103F700080911201262F30E0280F311D2F3F31058F\r
+:103F800024F4680F6093120108958FEF809312015B\r
+:103F9000089580911101262F30E0280F311D2F3F09\r
+:103FA000310524F4680F6093110108958FEF809319\r
+:103FB0001101089580911001262F30E0280F311D46\r
+:103FC0002F3F310524F4680F6093100108958FEF9F\r
+:103FD000809310010895833011F128F4813049F065\r
+:103FE000823091F00895853081F120F18630C1F161\r
+:103FF000089580911501681720F4861B80931501A0\r
+:10400000089510921501089580911401681720F405\r
+:10401000861B8093140108951092140108958091D5\r
+:104020001301681720F4861B8093130108951092E2\r
+:104030001301089580911201681720F4861B809364\r
+:1040400012010895109212010895809111016817CC\r
+:1040500020F4861B80931101089510921101089598\r
+:1040600080911001681720F4861B80931001089539\r
+:104070001092100108950F931F938D3109F46BC0B6\r
+:1040800008F03FC08E3009F47DC0C0F4873009F4D9\r
+:104090006EC068F4863009F0AFC08091CC01817F9A\r
+:1040A0008E7F8093CC0181E08093DC01A6C08830B4\r
+:1040B00009F458C08B3009F49BC09EC0863109F4C6\r
+:1040C00097C078F4803109F470C0813109F094C050\r
+:1040D0000E94BB1490910D0181E0892780930D010E\r
+:1040E00087C0893109F484C08B3109F085C0809183\r
+:1040F000CC0181FB222720F991E0922790FB81F9E6\r
+:104100004AC0853309F45BC048F4873209F457C0CC\r
+:1041100008F45AC0893209F452C06EC0833438F4AE\r
+:104120008A3308F067C0883309F462C065C08334FD\r
+:1041300009F445C0883409F05FC00E94BB140FEF3A\r
+:1041400013ED20E3015010402040E1F700C00000D3\r
+:104150000E947A1B4DC00E94BD210E94450F0E9403\r
+:104160003F0846C00E942E1D0E94401D41C09091F4\r
+:10417000CC01892F817090FF12C0917F9E7F909318\r
+:10418000CC013BC08091CC0182FB222720F991E039\r
+:10419000922790FB82F98093CC01992349F1809179\r
+:1041A000CC0181608093CC0123C08091CC0183FB42\r
+:1041B000222720F991E0922790FB83F9ECCF61E070\r
+:1041C00070E080E090E010C08D5141E050E060E090\r
+:1041D00070E08A019B0104C0000F111F221F331FD2\r
+:1041E0008A95D2F7C901B8010E9477180E94BB14C2\r
+:1041F00081E003C08953E9CF80E01F910F910895BA\r
+:1042000080E0089580E00895CF93C82F8091DC016D\r
+:10421000813079F018F08230E9F187C0E0910E0129\r
+:10422000F0910F018081813169F0823209F07FC005\r
+:1042300009C0E0910E01F0910F018081813111F0F0\r
+:10424000823261F48C2F0E940021811104C08C2FD6\r
+:104250000E943B201DC081E090E01AC08C2F0E947C\r
+:104260000221811114C0C43179F048F4CB3079F0C7\r
+:10427000C03109F060C082E08093DC0108C0C9321F\r
+:1042800019F0C83321F057C01092DC0154C081E00E\r
+:10429000817053C0C93289F118F5C43171F1A8F4A5\r
+:1042A000C73009F046C08AE08093150194E19093ED\r
+:1042B000140193E0909313018093120188E080939E\r
+:1042C000110188E28093100134C0CE51C63088F5C8\r
+:1042D000EC2FF0E0E65DFE4F80818093DB0129C08A\r
+:1042E000CE34E9F020F4CB3421F56AE013C0C135B7\r
+:1042F00079F0C235F1F461E00DC08091DB018823D3\r
+:1043000019F01092DB0115C081E08093DC0115C02B\r
+:1043100061E006C08091DB010E94751F0AC06AE05F\r
+:104320008091DB010E94EB1F04C01092DC0180E051\r
+:1043300004C081E002C080E0ABCFCF910895E1E8F6\r
+:10434000F0E08081886080838081816080838FB786\r
+:10435000F89493E09093890090ED909388008FBF3C\r
+:104360000895EFE6F0E08081826080830895EFE6B3\r
+:10437000F0E080818D7F80830895EFE6F0E090810A\r
+:1043800082E08927808308951F920F920FB60F92C3\r
+:1043900011242F933F934F935F936F937F938F934A\r
+:1043A0009F93AF93BF93EF93FF938091DD01909123\r
+:1043B000DE0101969093DE018093DD01811103C03F\r
+:1043C00082E00E943F08E091DE01E695E695F0E08C\r
+:1043D000E95AF94FE4918091DD018E1303C080E02A\r
+:1043E0000E943F08FF91EF91BF91AF919F918F91F4\r
+:1043F0007F916F915F914F913F912F910F900FBEE1\r
+:104400000F901F90189504D06894B1118DC0089535\r
+:1044100070D088F09F5790F0B92F9927B751A0F02E\r
+:10442000D1F0660F771F881F991F1AF0BA95C9F748\r
+:1044300012C0B13081F077D0B1E0089574C0672F19\r
+:10444000782F8827B85F39F0B93FCCF386957795F8\r
+:104450006795B395D9F73EF49095809570956195E1\r
+:104460007F4F8F4F9F4F0895E89409C097FB3EF40C\r
+:1044700090958095709561957F4F8F4F9F4F9923B1\r
+:10448000A9F0F92F96E9BB279395F695879577952F\r
+:104490006795B795F111F8CFFAF4BB0F11F460FFEF\r
+:1044A0001BC06F5F7F4F8F4F9F4F16C0882311F047\r
+:1044B00096E911C0772321F09EE8872F762F05C05B\r
+:1044C000662371F096E8862F70E060E02AF09A95F6\r
+:1044D000660F771F881FDAF7880F9695879597F9EB\r
+:1044E000089557FD9058440F551F59F05F3F71F0E4\r
+:1044F0004795880F97FB991F61F09F3F79F087954B\r
+:104500000895121613061406551FF2CF4695F1DFD3\r
+:1045100008C0161617061806991FF1CF8695710563\r
+:10452000610508940895E894BB2766277727CB0197\r
+:1045300097F908950BD078C069D028F06ED018F0A4\r
+:10454000952309F05AC05FC01124EECFCADFA0F353\r
+:10455000959FD1F3950F50E0551F629FF001729F18\r
+:10456000BB27F00DB11D639FAA27F00DB11DAA1F37\r
+:10457000649F6627B00DA11D661F829F2227B00D84\r
+:10458000A11D621F739FB00DA11D621F839FA00D0F\r
+:10459000611D221F749F3327A00D611D231F849F5F\r
+:1045A000600D211D822F762F6A2F11249F575040B6\r
+:1045B0008AF0E1F088234AF0EE0FFF1FBB1F661F51\r
+:1045C000771F881F91505040A9F79E3F510570F00A\r
+:1045D00014C0AACF5F3FECF3983EDCF38695779545\r
+:1045E0006795B795F795E7959F5FC1F7FE2B880F05\r
+:1045F000911D9695879597F9089597F99F6780E89B\r
+:1046000070E060E008959FEF80EC089500240A9424\r
+:104610001616170618060906089500240A9412169D\r
+:104620001306140605060895092E0394000C11F4D0\r
+:10463000882352F0BB0F40F4BF2B11F460FF04C07D\r
+:104640006F5F7F4F8F4F9F4F089597FB072E16F494\r
+:10465000009407D077FD09D00E943F2307FC05D0C6\r
+:104660003EF4909581959F4F0895709561957F4F89\r
+:104670000895EE0FFF1F0590F491E02D0994AA1BF9\r
+:10468000BB1B51E107C0AA1FBB1FA617B70710F03D\r
+:10469000A61BB70B881F991F5A95A9F7809590956F\r
+:1046A000BC01CD010895F999FECF92BD81BDF89A64\r
+:1046B000992780B50895A8E1B0E042E050E00C945D\r
+:1046C0007623262FF999FECF1FBA92BD81BD20BD5A\r
+:1046D0000FB6F894FA9AF99A0FBE019608950E94BF\r
+:1046E0006123272F0C946223DC01CB01FC01F99993\r
+:1046F000FECF06C0F2BDE1BDF89A319600B40D922E\r
+:0C47000041505040B8F70895F894FFCFE6\r
+:10470C0020024008CE08AB08770843080101BA0123\r
+:10471C0028080A03140A3F4D36391806CB059505AF\r
+:10472C005C05EF04080521053A05010203040506A2\r
+:04473C000708090061\r
+:00000001FF\r
diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png
new file mode 100644 (file)
index 0000000..57df5a1
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png differ
diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c
new file mode 100644 (file)
index 0000000..da540c7
--- /dev/null
@@ -0,0 +1,264 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "../../../../quantum/keymap_extras/keymap_norwegian.c"
+
+#define BASE 0 // default layer
+#define BASE_MAC 1 // default layer mac
+#define NUMB_SYMB 2 // numbers and symbols
+#define NUMB_SYMB_MAC 3 // numbers and symbols mac
+#define FUNCTION 4 // function keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap 0: Basic layer PC
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |    \   |   [  |   ]  |   {  |   }  |   *  |Mac/PC|           |   ^  |   $  |   (  |   )  |   <  |   >  |   @    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |    ?   |   Q  |   W  |   F  |   P  |   G  |  "   |           |   '  |   J  |   L  |   U  |   Y  |   Å  |   Æ    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |    :   |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |   O  |   Ø    |
+ * |--------+------+------+------+------+------|  ;   |           |   =  |------+------+------+------+------+--------|
+ * |    !   |   Z  |   X  |   C  |   V  |   B  |      |           |      |   K  |   M  | RIGHT| DOWN |   UP |   _    |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | Func | Lclk | Rclk | TAB  |,/CTRL|                                       | LEFT | Esc  |   `  |   #  | Num  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,--------------.
+ *                                        |   &  |   |  |       |Insert|   /   |
+ *                                 ,------|------|------|       |------+-------+------.
+ *                                 |      |      |   +  |       |  Del |        |     |
+ *                                 | Shift| ./Spc|------|       |------|  Enter |Space|
+ *                                 |      |      |-/Alt |       | Bspc |        |     |
+ *                                 `--------------------'       `---------------------'
+ */
+[BASE] = KEYMAP(
+        // left hand
+        NO_BSLS,       NO_LBRC, NO_RBRC, NO_LCBR,  NO_RCBR, NO_ASTR,  TG(1),
+        NO_QUES,         KC_Q,         KC_W,    KC_F,   KC_P,   KC_G,   NO_QUO2,
+        NO_COLN,         KC_A,         KC_R,    KC_S,   KC_T,   KC_D,
+        KC_EXLM,        KC_Z,         KC_X,    KC_C,   KC_V,   KC_B,   NO_SCLN,
+        MO(4),     KC_BTN1,      KC_BTN2, KC_TAB,GUI_T(KC_COMMA),
+                                                      NO_AMP, NO_PIPE,
+                                                              NO_PLUS,
+                                               KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS),
+        // right hand
+             KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT,
+             NO_APOS,      KC_J,    KC_L,    KC_U,      KC_Y,     NO_AA,   NO_AE  ,
+                           KC_H,    KC_N,    KC_E,      KC_I,      KC_O,    NO_OSLH,
+             NO_EQL,        KC_K,    KC_M, KC_RIGHT,  KC_DOWN,   KC_UP, NO_UNDS,
+                                  KC_LEFT,  KC_ESC,   KC_FN7,   KC_HASH,   MO(2),
+             KC_INSERT,  NO_SLSH,
+             KC_DELT,
+             KC_BSPC,KC_ENT,KC_SPC
+    ),
+/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   \    |      |      |   {  |   }  |      |      |           |      |   $  |      |      |  <   |   >  |    @   |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |  '   |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | Func |      |      |      |,/Ctrl|                                       |      |      |  `   |      | Num  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |  |   |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |./Cmd |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+[BASE_MAC] = KEYMAP(
+       NO_BSLS_MAC, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA),
+                                           KC_TRNS, NO_PIPE_MAC,
+                                                    KC_TRNS,
+                                  KC_TRNS,GUI_T(KC_DOT) , KC_TRNS,
+    // right hand
+       KC_TRNS,  NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC,
+       NO_APOS_MAC,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                          KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3),
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 2: Number ++ layer pc
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |   %  |      |      |           |      |      |   ~  |   ´  |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   3  |  2   |  1   |   0  |      |------|           |------|      |   5  |   6  |   7  |   8  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |   4  |      |      |           |      |      |   9  |  END | PGDWN| PGUP |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       | HOME |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+[NUMB_SYMB] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS,
+       KC_TRNS, KC_3   , KC_2   , KC_1   , KC_0   , KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,
+       KC_TRNS,  KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
+                          KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above.
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |   %  |      |      |           |      |      |   ~  |   ´  |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   3  |  2   |  1   |   0  |      |------|           |------|      |   5  |   6  |   7  |   8  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |   4  |      |      |           |      |      |   9  |  END | PGDWN| PGUP |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       | HOME |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+[NUMB_SYMB_MAC] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS,
+       KC_TRNS, KC_3   , KC_2   , KC_1   , KC_0   , KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,
+       KC_TRNS,  KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
+                          KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 4: Function layer mac + pc
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |  F3  |  F2  |  F1  |     |      |------|           |------|       |  F5  |  F6  |  F7  |  F8  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |  F4  |      |      |           |      |      |  F9  |  F10 |  F11 |  F12 |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+[FUNCTION] = KEYMAP(
+       KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
+       KC_TRNS, KC_F3   , KC_F2   , KC_F1 , KC_TRNS   , KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
+       KC_TRNS,  NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+)
+};
+
+enum macro_id {
+    TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO,  GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_MODS_ONESHOT(MOD_LSFT),  // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift.
+    [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed.
+    [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first.
+    [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first.
+    [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed.
+    [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed.
+    [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed.
+    [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly
+    [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly
+    [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed
+};
+
+
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+    keyevent_t event = record->event;
+
+    switch (id) {
+        case TILDE_NO:
+            return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE);
+        case LESS_NO:
+            return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE);
+        case GRTR_NO:
+            return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE);
+        case CIRC_NO:
+            return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE);
+        case ACUT_NO:
+            return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC),  END ) : MACRO_NONE);
+        case GRV_NO:
+            return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT),  END ) : MACRO_NONE);
+        case LESS_NO_MAC:
+            return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE);
+        case GRTR_NO_MAC:
+            return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE);
+        case ACUT_NO_MAC:
+            return (event.pressed ? MACRO( T(EQL), T(SPC),  END ) : MACRO_NONE);
+    }
+    return MACRO_NONE;
+};
diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md
new file mode 100644 (file)
index 0000000..48f095c
--- /dev/null
@@ -0,0 +1,23 @@
+# Norwegian Colemak setup with osx/pc toggle
+
+## Motivation
+I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I  also wanted it to translate from a standard Norwegian keyboard OS setup.
+
+## Overview
+The setup is created to be programmer friendly.
+- Most of the symbols used in code can be activated without using layers or shift key.
+- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb.
+- Navigation is prioritized, arrows are right below the home row.
+
+## PC/Mac toggle
+The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
+
+## Layers
+Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons.
+
+## Shift-key
+Tap for the next character to be shifted, hold down for regular shift functionality
+
+## Layout
+
+![keyboard-layout](keyboard-layout.png)
diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex
new file mode 100644 (file)
index 0000000..e29c178
--- /dev/null
@@ -0,0 +1,1161 @@
+:100000000C94E9020C942D030C942D030C942D03F5
+:100010000C942D030C942D030C942D030C942D03A0
+:100020000C942D030C942D030C94720D0C94360D2E
+:100030000C94911B0C942D030C942D030C942D0304
+:100040000C942D030C942D030C942D030C942D0370
+:100050000C942D030C94171C0C942D030C942D035D
+:100060000C942D030C942D030C942D030C942D0350
+:100070000C942D030C942D030C942D030C942D0340
+:100080000C942D030C942D030C942D030C942D0330
+:100090000C942D030C942D030C942D030C942D0320
+:1000A0000C942D030C942D030C942D03260227028F
+:1000B0002F0230022B7100001E00140004001D747A
+:1000C000360219011F001A0016001B0037022C7897
+:1000D00020000800070006003102287221001500E8
+:1000E0000900190024020601220017000A00050079
+:1000F0000000378134022A000000380000003682F8
+:1001000016014C000000330000004A8223001C004E
+:100110000B00110000004D81240018000D0010009C
+:100120002E00520025000C000E0034002E02287212
+:10013000260012000F001E022D002C78270013004D
+:100140002D023802250251002F0030001C011D0134
+:100150000154000035002B002900E100E000000000
+:100160001E00140004001D00E30001001F001A001F
+:1001700016001B00E2000100200008000700060036
+:10018000E600010021001500090019002900010006
+:10019000220017000A000500000001002D000100E8
+:1001A00000002B0000001B012E00010000002900B0
+:1001B0000000010023001C000B00110000000100E2
+:1001C000240018000D0010004B00010025000C0059
+:1001D0000E0001004E004F00260012000F003700F5
+:1001E000490050002700130033003800460001008A
+:1001F0000100010034006400010000000100010062
+:1002000001000100010000003A000A300B3001003B
+:10021000E20001003B000C300D3001000100010044
+:100220003C0010300F300E30010001003D00113055
+:1002300012301330010001003E001430153016302A
+:1002400000000100010001000000010000000100A9
+:10025000B200010000000100000001003F00173063
+:1002600018301930000001004000010001000100B9
+:100270000100010041000100010001000100010036
+:1002800042000100010001000100010043000100E3
+:1002900001000100010001004400450001000100CF
+:1002A000010000000000F0A201E101260226012762
+:1002B000022702E101330233000111021101080299
+:1002C00008011A021A012C022C00013802380138E8
+:1002D000023801E101170217011202120107020799
+:1002E0000112021202E1012C022C0001050205019B
+:1002F0001502150108020801040204010E020E0194
+:10030000330233000111021101180218010F020F0C
+:10031000010F020F00011502150108020801170262
+:100320001701180218011502150111021100010927
+:100330000209010F020F0112021201040204011747
+:100340000217012C022C00010C020C0111021101F8
+:10035000170217012C022C000105020501120212DE
+:1003600001120212010F020F012C022C00011602D1
+:10037000160117021701150215010C020C011102DA
+:1003800011010A020A012C022C00011902190104B0
+:10039000020401150215012C022C00011902190199
+:1003A000120212010C020C01070207012C022C00A0
+:1003B00001060206011202120111021101160216B3
+:1003C00001170217012C022C000116021601170258
+:1003D000170104020401170217010C020C010602A6
+:1003E00006012C022C000113021301150215010C49
+:1003F000020C011902190104020401170217010875
+:100400000208012C022C000113021301180218012A
+:10041000050205010F020F010C020C010602060184
+:100420002C022C0005010906A101050719E029E7A6
+:100430001500250195087501810295017508810156
+:1004400005081901290595057501910295017503A6
+:1004500091010507190029FF150025FF950675086C
+:100460008100C005010902A1010901A100050919C6
+:100470000129051500250195057501810295017574
+:100480000381010501093009311581257F95027528
+:1004900008810609381581257F95017508810605B3
+:1004A0000C0A38021581257F950175088106C0C0A8
+:1004B00005010980A101850216010026B7001A0175
+:1004C000002AB700751095018100C0050C0901A133
+:1004D000018503160100269C021A01002A9C027560
+:1004E0001095018100C005010906A101050719E069
+:1004F00029E71500250195087501810205081901F4
+:10050000290595057501910295017503910105076E
+:100510001900297715002501957875018102C0120F
+:1005200001100100000008EDFE07130100010200A8
+:100530000109026D00040100A0FA09040000010392
+:10054000010100092111010001223F00070581037B
+:1005500008000A0904010001030102000921110138
+:100560000001224D000705820308000A0904020069
+:1005700001030000000921110100012236000705D6
+:10058000830308000A090403000103000000092195
+:100590001101000122390007058403100001040342
+:1005A000090416034500720067006F0044006F00E5
+:1005B0007800200045005A00000016034500720034
+:1005C00067006F0044006F007800200045005A006B
+:1005D000000011241FBECFEFDAE0DEBFCDBF04B6AE
+:1005E00003FE24C08091CE019091CF01A091D00153
+:1005F000B091D1018750904BA740B04BB9F4109205
+:10060000CE011092CF011092D0011092D10114BEF0
+:1006100084B7877F84BF88E10FB6F8948093600029
+:10062000109260000FBEE0E0FFE3099511E0A0E04A
+:10063000B1E0E2E5F8E402C005900D92A631B10701
+:10064000D9F711E0A6E1B1E001C01D92AE3CB107BF
+:10065000E1F70E945F090C9427240C940000FC0130
+:10066000613109F464C06231A8F46D3009F441C00D
+:100670006E3040F46B3079F16C30A0F56A3009F0DF
+:1006800084C022C06F3009F441C08281603108F01B
+:1006900043C036C0653109F45AC0663140F4633155
+:1006A00009F43FC08281643108F04CC046C0673114
+:1006B00009F459C0673108F450C0683109F459C0D1
+:1006C000693109F062C05BC08281882309F45DC092
+:1006D00027E034E05CC08281882309F456C026EE0E
+:1006E00033E055C08281882309F44FC029EC33E000
+:1006F0004EC08281882309F448C020EB33E047C014
+:10070000882309F442C02BE933E041C08281882369
+:10071000E1F12AE833E03BC08823B9F12DE633E06C
+:1007200036C08281882389F128E533E030C0828198
+:10073000882359F127E433E02AC0882331F12EE2DF
+:1007400033E025C0882309F125E133E020C0828110
+:10075000882319F024E033E01AC082818823A9F0AD
+:100760002BEE32E014C08281882379F02AEC32E04B
+:100770000EC08281882349F029EB32E008C08281D3
+:10078000882319F028EA32E002C020E030E0C901F5
+:100790000895089560919701709198018091990151
+:1007A00090919A010E94201B56985E9825982D984A
+:1007B00026982E9827982F98813019F0823031F49E
+:1007C00003C0259A2D9A0895269A2E9A08958AECA8
+:1007D00093E0009711F0FC01099580E090E0089506
+:1007E00056985E9825982D9826982E9827982F9899
+:1007F0008FEF90E0909389008093880090938B0016
+:1008000080938A0090938D0080938C00259A2D9A76
+:1008100084EF91E020E931E0F9013197F1F7019798
+:10082000D9F7269A2E9A84EF91E020E931E0F90178
+:100830003197F1F70197D9F7279A2F9A84EF91E032
+:1008400020E931E0F9013197F1F70197D9F72598BF
+:100850002D9884EF91E020E931E0F9013197F1F72B
+:100860000197D9F726982E9884EF91E020E931E09E
+:10087000F9013197F1F70197D9F727982F985698F2
+:100880005E9825982D9826982E9827982F98089549
+:1008900089EA8093800089E08093810024982C98D5
+:1008A0003F988AB18F748AB96E98479A8BB1806BE2
+:1008B0008BB9769A0E94F00389EC93E0009711F0CF
+:1008C000FC01099580E090E0089580E280930001AA
+:1008D00080911601882371F40E94B40481E0809312
+:1008E000160180E197E220E931E0F9013197F1F753
+:1008F0000197D9F780E40E94BA048093000188230D
+:1009000071F50E94E80480930001882341F50E945C
+:10091000E80480930001882311F58FE30E94E80426
+:10092000809300018823D9F40E94E00480E40E94AF
+:10093000BA0480930001882391F48CE00E94E804BB
+:1009400080930001882359F40E94E80480930001F9
+:10095000882329F48FE30E94E804809300010E9419
+:10096000E0048091000108951092B9008AE080931C
+:10097000B8000895982F84EA8093BC008091BC0051
+:1009800087FFFCCF8091B900887F883021F08031CB
+:1009900011F081E008959093BB0084E88093BC003F
+:1009A0008091BC0087FFFCCF9091B900987F98316F
+:1009B00011F480E0089580E0903409F081E008951A
+:1009C00084E98093BC008091BC0084FDFCCF089535
+:1009D0008093BB0084E88093BC008091BC0087FFBB
+:1009E000FCCF8091B90090E0887F883209F091E0D7
+:1009F000892F089584E88093BC008091BC0087FF14
+:100A0000FCCF8091BB000895E7E1F1E0E80FF11D14
+:100A1000808108950895809100018823A9F480E4DD
+:100A20000E94BA0480930001882361F482E10E944D
+:100A3000E80480930001882329F48FEF0E94E804E2
+:100A4000809300010E94E00484B1807F84B985B165
+:100A5000807F85B98AB1837F8AB98BB1837F8BB957
+:100A60003E98469808950E946504809300010E9474
+:100A70000B0580B38C7080BB81B3836F81BB80E03A
+:100A800090E0FC01E95EFE4F1082FC01EB5DFE4F41
+:100A9000108201968E309105A1F788E494E00097CA
+:100AA00011F0FC0109950895BF92CF92DF92EF9269
+:100AB000FF920F931F93CF93DF93809100018823C0
+:100AC00079F0809133018F5F80933301882341F463
+:100AD0000E94650480930001882311F40E94F003B2
+:100AE00025E2E22E21E0F22EC0E0D0E090EAB92E1D
+:100AF00081E0C82ED12C02E0C73010F580910001B2
+:100B0000882309F045C080E40E94BA048093000164
+:100B1000882399F482E10E94E804809300018823ED
+:100B200061F4C6010C2E02C0880F991F0A94E2F7E7
+:100B300080950E94E804809300010E94E00428C090
+:100B4000CA30D9F0CB3040F4C83089F0C93090F4C5
+:100B5000C73009F0A0C008C0CC30A1F0CC3080F084
+:100B6000CD3009F098C011C0209A289894C0219ADD
+:100B7000299891C0229A2A988EC0239A2B988BC0CC
+:100B8000529A01C0539A5B9886C03E9A469883C099
+:100B900080910001882311F010E03EC080E40E94A3
+:100BA000BA0480930001882399F483E10E94E80449
+:100BB00080930001882361F481E40E94BA04809349
+:100BC0000001882329F40E94FA04182F109501C00F
+:100BD00010E00E94E00420C042E07C9902C034E0B2
+:100BE00001C030E07D9902C028E001C020E07E997C
+:100BF00002C090E101C090E08FB18095881F8827E6
+:100C0000881F8295880F807E152F1C251170142B4C
+:100C1000132B122B192B182BF7018081811719F038
+:100C20001083009301010E940B0521960894E11C9A
+:100C3000F11CCE30D10509F05FCF809101018823EE
+:100C4000C9F0815080930101882329F080EA9FE058
+:100C50000197F1F70FC020E030E0F901E95EFE4FA7
+:100C6000D901AB5DBE4F8C9180832F5F3F4F2E30FB
+:100C7000310599F787EE93E0009711F0FC01099593
+:100C800081E0DF91CF911F910F91FF90EF90DF9066
+:100C9000CF90BF9008958B2D8A95F1F75FB1799B26
+:100CA0009BCF40E09ACF08959C018B3B910578F44F
+:100CB000883A910548F5853A9105B8F48430910554
+:100CC00008F09FC08130910509F099C095C0803E21
+:100CD000910508F494C0883E910508F492C0805FA5
+:100CE0009040409708F08BC085C0853A910519F473
+:100CF00081E890E47DC0863A910519F083E890E49C
+:100D000077C082E890E474C0883A910519F482EEC5
+:100D100094E46EC0893A910519F489EE94E468C0B0
+:100D20008A3A910519F48AEE94E462C08B3A9105EF
+:100D300019F485EB94E45CC08C3A910519F486EBC8
+:100D400094E456C08D3A910519F487EB94E450C0B1
+:100D5000803B910519F48CEC94E44AC08E3A9105DD
+:100D600019F48DEC94E444C08F3A910519F483E8AA
+:100D700095E43EC0813B910519F48AE895E438C0BA
+:100D8000823B910519F482E995E432C0833B9105D9
+:100D900019F484E995E42CC0843B910519F481E2AF
+:100DA00096E426C0853B910519F483E296E420C0C1
+:100DB000863B910519F484E296E41AC0873B9105BD
+:100DC00019F485E296E414C0883B910519F486E293
+:100DD00096E40EC0893B910519F487E296E408C0B9
+:100DE0008A3B910519F080E094E402C08AE296E41F
+:100DF0009C0107C0306505C021E030E002C020E062
+:100E000030E0C9010895E62FF0E0EE0FFF1F9CE0EF
+:100E1000799F90011124E20FF31F98EA899FC00186
+:100E20001124E80FF91FE455FF4F25913491C901B2
+:100E30000895FC01EE0FFF1FEC5DFE4F25913491EC
+:100E4000C9010895FC01EE0FFF1FEC55FD4F2591E0
+:100E50003491C90108950E940307AC01805091406C
+:100E600080509F4118F4CA019F710895CA018050B3
+:100E700090428050904128F4CA019F700E9422073E
+:100E80000895CA01805090438050904120F4CA01D7
+:100E90009070906C089580E54030580771F40E947E
+:100EA000261184EC99E020E931E0F9013197F1F75E
+:100EB0000197D9F70E943C1C0EC120E54130520732
+:100EC00031F48091AE0181608093AE0104C1CA010A
+:100ED000805090458050904108F056C0652F77278C
+:100EE0006F70707061307105F9F49A01A4E0220FFF
+:100EF000331FAA95E1F720703370CA01F3E0880F21
+:100F0000991FFA95E1F780769070282B392B3C6871
+:100F10004370507002C0660F771F4A95E2F76F71F9
+:100F20007070262B372B2EC06230710529F4942F58
+:100F30008827816F906A08956330710551F49A0192
+:100F400073E0220F331F7A95E1F7207E37703C68FB
+:100F50000CC06430710561F59A0163E0220F331F04
+:100F60006A95E1F7207E37703A684370507081E0EF
+:100F700090E002C0880F991F4A95E2F78F71907038
+:100F8000282B392BC9010895CA0180509047805001
+:100F9000904120F4CA019F7090620895CA01805068
+:100FA00090488050904120F4CA019F70906A089543
+:100FB000403E5105F0F4403C510588F54133510560
+:100FC00009F476C04233510548F44932510509F419
+:100FD00065C04A32510509F07AC06FC049335105E6
+:100FE00011F142385105F9F04533510509F06FC050
+:100FF00050C0433E510569F1443E510540F4403E26
+:101000005105C1F0423E510509F061C01DC0463E88
+:10101000510559F1473E510509F059C02BC0CA018D
+:101020000E94190708958091BF0180FD0AC081FDCB
+:1010300008C04DC08091BF0180FF03C089E390E0EC
+:1010400047C080EE90E044C08091BF0182FD08C09F
+:1010500004C08091BF0182FF03C082EE90E038C0DF
+:1010600084FD11C083EE90E033C08091BF0183FD09
+:1010700008C004C08091BF0183FF03C086EE90E0EA
+:1010800027C084FF03C080E090E022C087EE90E09C
+:101090001FC08091BF0185FF05C007C08091BF01BF
+:1010A00085FF03C085E390E013C089E290E010C0A3
+:1010B0008091BF0186FF05C007C08091BF0186FFF8
+:1010C00003C081E390E004C08AE290E001C0CA015D
+:1010D0000E9454060895089508951092C401089539
+:1010E00008950895809135010895DF93CF9300D03E
+:1010F0000F92CDB7DEB7AC018091C501843029F5E0
+:1011000083E08093E9002FEF95ED05C0892F8A9544
+:10111000F1F7222329F08091E800215085FFF6CFD6
+:101120008091E80085FF11C05B834A8383E0898357
+:10113000CE01019663E070E040E050E00E94D80BE1
+:101140008091E8008E778093E8000F900F900F90C9
+:10115000CF91DF910895DF93CF9300D00F92CDB759
+:10116000DEB7AC018091C501843029F583E080931E
+:10117000E9002FEF95ED05C0892F8A95F1F722231D
+:1011800029F08091E800215085FFF6CF8091E8009A
+:1011900085FF11C05B834A8382E08983CE0101967B
+:1011A00063E070E040E050E00E94D80B8091E800DE
+:1011B0008E778093E8000F900F900F90CF91DF9182
+:1011C0000895AC018091C501843001F582E08093DF
+:1011D000E9002FEF95ED05C0892F8A95F1F72223BD
+:1011E00029F08091E800215085FFF6CF8091E8003A
+:1011F00085FF0CC0CA0165E070E040E050E00E944D
+:10120000D80B8091E8008E778093E80008950F93C3
+:101210001F93182F092F9091C501943009F04CC0ED
+:10122000809102018823E1F080910D018823C1F0B3
+:101230009093E9009FEF25E105C0822F8A95F1F791
+:10124000992329F08091E800915085FFF6CF809195
+:10125000E80085FF31C0812F902F60E170E018C059
+:1012600081E08093E9009FEF25ED05C0822F8A95EC
+:10127000F1F7992329F08091E800915085FFF6CF8E
+:101280008091E80085FF18C0812F902F68E070E002
+:1012900040E050E00E94D80B8091E8008E77809368
+:1012A000E800A6E3B1E0212F302FC901FC0180E165
+:1012B00001900D928150E1F71F910F91089584B72D
+:1012C000877F84BF88E10FB6F89480936000109206
+:1012D00060000FBE80E090E020E80FB6F894209305
+:1012E0006100809361000FBE0E9424100E94B60C22
+:1012F0000E94170D8091E20084608093E200789450
+:101300000E94B50F0E94C01083E091E00E94CB0FB5
+:101310000CC00E94691B8091C301882331F00E9498
+:10132000C11B882311F00E94ED0A8091C501853010
+:1013300081F30E942A10F9CF8091C401882349F4D7
+:101340000E94B60C0E94170D8091E2008460809389
+:10135000E20008958091C701833009F457C08430BA
+:1013600030F4813071F0823009F0B1C098C08A3019
+:1013700009F485C08B3009F46AC0893009F0A7C030
+:1013800020C08091C601813A09F0A1C08091E80097
+:10139000877F8093E8008091CA019091CB01892BCF
+:1013A00021F486E391E060E103C080E090E060E03A
+:1013B00070E00E94030B8091E8008B778093E80037
+:1013C00008958091C601813209F081C08091CA01DF
+:1013D0009091CB01009719F0039709F078C08091A4
+:1013E000E800877F8093E80005C08091C5018823CD
+:1013F00009F46DC08091E80082FFF7CF8091F10081
+:10140000809335018091E8008B771CC08091C601E4
+:10141000813A09F05CC08091CA019091CB01892B7F
+:1014200009F055C08091E800877F8093E8008091A3
+:10143000E80080FFFCCF809102018093F100809151
+:10144000E8008E778093E8000E94630C08958091F5
+:10145000C6018132E1F58091CA019091CB01892BBF
+:10146000B1F58091E800877F8093E8000E94630CCB
+:101470008091C801809302010E94261108958091F5
+:10148000C601813221F58091E800877F8093E800D2
+:101490000E94630C8091C90180933401089580916A
+:1014A000C601813AA1F48091E800877F8093E8002B
+:1014B0008091E80080FFFCCF809134018093F1009F
+:1014C0008091E8008E778093E8000E94630C089575
+:1014D00081E061EC42E00E942B0C82E061EC42E092
+:1014E0000E942B0C83E061EC42E00E942B0C84E014
+:1014F00061EC42E10E942B0C08950E94BA1B0895F2
+:10150000DA019330C1F0943030F4913051F09230E0
+:1015100009F05BC00BC0913221F1923209F055C045
+:1015200037C0EFE1F5E022E130E053C0E1E3F5E060
+:101530002DE630E04EC0813051F0813020F0823015
+:1015400009F043C008C0EEE9F5E0849107C0E2EA83
+:10155000F5E0849103C0EAEBF5E08491282F30E0B8
+:1015600038C0613051F0613028F0623059F063309A
+:1015700061F50BC0E3E4F5E002C0ECE5F5E029E03D
+:1015800030E027C0E5E7F5E0FACFEEE8F5E0F7CF89
+:10159000613061F0613028F0623069F06330A9F4A5
+:1015A0000FC0E4E2F4E02FE330E013C0E3E6F4E040
+:1015B0002DE430E00EC0E0EBF4E026E330E009C0BB
+:1015C000E6EEF4E029E330E004C0E0E0F0E020E003
+:1015D00030E0ED93FC93C901089580E189BD82E17B
+:1015E00089BD09B400FEFDCF8091D8008F7D809326
+:1015F000D8008091E00082608093E0008091E0005C
+:1016000081FDFCCF08959C014091CC015091CD010A
+:101610004617570718F4F90190E043C061157105AA
+:1016200011F0AB01F8CF8091E8008E778093E8004D
+:1016300040E050E0F0CF8091C501882309F447C015
+:10164000853009F446C08091E80083FD44C0809154
+:10165000E80082FD36C08091E80080FF22C08091C2
+:10166000F3009091F200782F60E0292F30E0262BD4
+:10167000372B07C081918093F100415050402F5F7C
+:101680003F4F4115510519F02830310598F390E08E
+:101690002830310509F491E08091E8008E7780933D
+:1016A000E8004115510539F6992329F60AC08091C1
+:1016B000C501882361F0853061F08091E80083FDE9
+:1016C0000AC08091E80082FFF2CF80E0089582E0B6
+:1016D000089583E0089581E008959C014091CC0134
+:1016E0005091CD014617570718F4F90190E044C016
+:1016F0006115710511F0AB01F8CF8091E8008E778C
+:101700008093E80040E050E0F0CF8091C50188234D
+:1017100009F448C0853009F447C08091E80083FD92
+:1017200045C08091E80082FD37C08091E80080FFCD
+:1017300023C08091F3009091F200782F60E0292F70
+:1017400030E0262B372B08C084918093F10031962E
+:10175000415050402F5F3F4F4115510519F028303F
+:10176000310590F390E02830310509F491E0809143
+:10177000E8008E778093E8004115510531F69923F2
+:1017800021F60AC08091C501882361F0853061F09F
+:101790008091E80083FD0AC08091E80082FFF2CFCB
+:1017A00080E0089582E0089583E0089581E008953F
+:1017B000BF92CF92DF92EF92FF920F931F93CF933E
+:1017C000DF93182F092F7B016A010E94840CB82E29
+:1017D0008823B1F5812F902F9C01E901C114D10418
+:1017E00039F0F60180819181E81AF90AC80FD91FF2
+:1017F00000E010E022C08091E80085FD16C08091D5
+:10180000E8008E778093E800C114D10449F0F60116
+:1018100080819181800F911F9183808385E011C029
+:101820000E94840C882349F00CC089918093F100B8
+:101830000894E108F1080F5F1F4FE114F104D9F695
+:101840008B2DDF91CF911F910F91FF90EF90DF9043
+:10185000CF90BF900895382F282F2EC0822F8F70E1
+:101860008093E900231721F4762F942F50E006C0CF
+:101870007091EC009091ED005091F00091FF1BC031
+:101880008091EB008E7F8093EB008091ED008D7F47
+:101890008093ED008091EB0081608093EB0070936A
+:1018A000EC009093ED005093F0008091EE0087FDE6
+:1018B00002C080E008952F5F273080F23F703093A0
+:1018C000E90081E008958091C60188239CF404C05A
+:1018D0008091C5018823B9F08091E80082FFF8CF9C
+:1018E0008091E8008B778093E80008958091C5018E
+:1018F000882349F08091E80080FFF8CF8091E800CC
+:101900008E778093E80008954091E4005091E500BF
+:1019100024E68091EC0080FF24C08091E80080FDE7
+:101920001EC08091C501882311F482E0089585309E
+:1019300011F483E008958091EB0085FF02C081E0FF
+:1019400008958091E4009091E5008417950709F3CC
+:10195000222311F484E008952150AC01DACF80E015
+:1019600008958091E80082FFDCCFF9CF0E94290D15
+:101970000E94310DE0EEF0E0808181608083A8ED6F
+:10198000B0E08C918F778C9319BCE7EDF0E080810B
+:101990008E7F80838C918F7E8C931092C4010895EA
+:1019A000EF92FF920F931F930E94290D0E94310D19
+:1019B00008ED10E0F80180818F7780838081806856
+:1019C000808380818F7D808319BC1092C501109225
+:1019D000C1011092C3011092C20180EEE82EF12CD9
+:1019E000F70180818B7F8083F80180818160808313
+:1019F00080E060E042E00E942B0CE1EEF0E08081AC
+:101A00008E7F8083E2EEF0E0808181608083808140
+:101A100088608083F70180818E7F8083F8018081D8
+:101A2000806180831F910F91FF90EF900895E8ED02
+:101A3000F0E080818F7E8083E7EDF0E0808181603F
+:101A4000808384E082BF81E08093C4010E94D00C37
+:101A50000895E8EDF0E080818E7F80831092E200AF
+:101A600008951092DA001092E10008951F920F92EB
+:101A70000FB60F9211241F932F933F934F935F93B1
+:101A80006F937F938F939F93AF93BF93EF93FF9346
+:101A90001091E9008091EC001092E9008091F00033
+:101AA000877F8093F00078940E94440E1092E900A2
+:101AB0008091F00088608093F0001F701093E9001F
+:101AC000FF91EF91BF91AF919F918F917F916F9116
+:101AD0005F914F913F912F911F910F900FBE0F90EB
+:101AE0001F9018951F920F920FB60F9211242F93EB
+:101AF0003F934F935F936F937F938F939F93AF9396
+:101B0000BF93EF93FF938091E10082FF0BC0809120
+:101B1000E20082FF07C08091E1008B7F8093E100AB
+:101B20000E94B40F8091DA0080FF1FC08091D8001E
+:101B300080FF1BC08091DA008E7F8093DA00809155
+:101B4000D90080FF0DC080E189BD82E189BD09B463
+:101B500000FEFDCF81E08093C5010E949C0905C075
+:101B600019BC1092C5010E946D088091E10080FFB0
+:101B700019C08091E20080FF15C08091E2008E7F45
+:101B80008093E2008091E20080618093E200809186
+:101B9000D80080628093D80019BC85E08093C5018D
+:101BA0000E9471088091E10084FF30C08091E200C2
+:101BB00084FF2CC080E189BD82E189BD09B400FEAB
+:101BC000FDCF8091D8008F7D8093D8008091E10077
+:101BD0008F7E8093E1008091E2008F7E8093E2000F
+:101BE0008091E20081608093E2008091C1018823AE
+:101BF00011F084E007C08091E30087FD02C081E01E
+:101C000001C083E08093C5010E947D0A8091E100BC
+:101C100083FF29C08091E20083FF25C08091E1000D
+:101C2000877F8093E10082E08093C5011092C1011B
+:101C30008091E1008E7F8093E1008091E2008E7FB1
+:101C40008093E2008091E20080618093E20080E076
+:101C500060E042E00E942B0C8091F000886080934D
+:101C6000F0000E947008FF91EF91BF91AF919F919A
+:101C70008F917F916F915F914F913F912F910F9035
+:101C80000FBE0F901F9018951F93DF93CF93CDB782
+:101C9000DEB7AC970FB6F894DEBF0FBECDBFE6EC53
+:101CA000F1E08091F100819321E0EE3CF207C9F769
+:101CB0000E94AA098091E80083FF3EC18091C6017D
+:101CC0003091C701353009F487C0363040F43130E7
+:101CD000C9F1313070F0333009F02EC133C03830E3
+:101CE00009F4F9C0393009F409C1363009F024C1CA
+:101CF00097C0803821F0823809F01EC108C0909149
+:101D0000C2018091C301882399F0926011C0809133
+:101D1000CA018F708093E9008091EB0090E025E08C
+:101D2000969587952A95E1F7982F91701092E90082
+:101D30008091E800877F8093E8009093F1001092F3
+:101D4000F100D4C0882319F0823009F0F5C090E08A
+:101D50008F719070009721F0029709F0EDC00CC0D0
+:101D60008091C801813009F0E7C01092C30133307F
+:101D700069F58093C3012AC08091C801882331F599
+:101D80002091CA012F7009F4D7C02093E9008091F7
+:101D9000EB0080FF1BC0333021F48091EB008062A8
+:101DA00013C08091EB0080618093EB0081E090E0B4
+:101DB00002C0880F991F2A95E2F78093EA001092DB
+:101DC000EA008091EB0088608093EB001092E900BC
+:101DD0008091E800877F8DC0882309F0ADC0109105
+:101DE000C8011F778091E3008078812B8093E30006
+:101DF0008091E800877F8093E8000E94630C8091C7
+:101E0000E80080FFFCCF8091E30080688093E300CE
+:101E1000112311F482E001C083E08093C5018CC0DE
+:101E20008058823008F088C08091C8019091C90123
+:101E300023E08C3D920709F034C083E08C838AE272
+:101E40008B837FB7F894DE0115966EE040E050E09A
+:101E500011E2E62FF0E010935700849140FF03C099
+:101E600082958F706F5F8F70282F30E08A3018F066
+:101E7000C901C79602C0C901C0968D939D934F5F5B
+:101E80005F4F4431510529F77FBF8091E800877F7C
+:101E90008093E800CE0103966AE270E00E94030B93
+:101EA00014C06091CA01AE014F5F5F4F0E94800A6B
+:101EB000BC01009709F440C08091E800877F8093BF
+:101EC000E80089819A810E946D0B8091E8008B77F0
+:101ED0008093E80031C0803879F58091E800877FF1
+:101EE0008093E8008091C1018093F1008091E80027
+:101EF0008E778093E8000E94630C1EC08823E1F473
+:101F00009091C8019230C0F48091E800877F80935F
+:101F1000E8009093C1010E94630C8091C101882365
+:101F200031F48091E30087FD02C081E001C084E0CC
+:101F30008093C5010E94680A8091E80083FF0AC06F
+:101F40008091E800877F8093E8008091EB008062B9
+:101F50008093EB00AC960FB6F894DEBF0FBECDBFFA
+:101F6000CF91DF911F91089508951F938091C5012E
+:101F7000882379F01091E9008091EC001092E9003B
+:101F80008091E80083FF02C00E94440E1F701093EE
+:101F9000E9001F91089590934B0180934A010895A1
+:101FA000E0914A01F0914B01309711F480E00895DF
+:101FB0000190F081E02D09950895E0914A01F0919A
+:101FC0004B01309721F00280F381E02D09950895AF
+:101FD000E0914A01F0914B01309721F00480F581A6
+:101FE000E02D099508959C01809148019091490147
+:101FF0002817390779F03093490120934801E0917F
+:102000004A01F0914B01309729F00680F781E02DCD
+:10201000C901099508959C0180914601909147015D
+:102020002817390779F03093470120934601E09152
+:102030004A01F0914B01309729F00084F185E02DA1
+:10204000C9010995089508950E94231008950E94DA
+:102050006C080895BF92CF92DF92EF92FF920F9398
+:102060001F93DF93CF93CDB7DEB72A970FB6F894BF
+:10207000DEBF0FBECDBF0E945405EE24FF24BE2C50
+:102080008E2D0E940405C82EF701E35BFE4FD08021
+:10209000D82609F43FC08091AE0181FF02C00E94A2
+:1020A0000A0500E010E0ED2DF0E0CF01002E02C0A7
+:1020B000959587950A94E2F780FF27C00E94DF1B61
+:1020C0000983BA826C2D70E0002E02C07595679569
+:1020D0000A94E2F7617070706B8381609D838C83DA
+:1020E000402F5B2D782F8D810E949514F701E35BC3
+:1020F000FE4F81E090E0002E02C0880F991F0A94E5
+:10210000E2F72081282720831DC00F5F1F4F063074
+:10211000110559F60894E11CF11C8EE0E816F10453
+:1021200009F0ADCF0E94DF1B2FEF2E832F8318867F
+:102130008160782F9A8789874FEF5FEF60E08A850B
+:102140000E9495140E94B41F10914C010E94D00F60
+:10215000181731F00E94D00F80934C010E94271075
+:102160002A960FB6F894DEBF0FBECDBFCF91DF9198
+:102170001F910F91FF90EF90DF90CF90BF90089547
+:102180000E94D61B0E9433050E949C1C0895DF9379
+:10219000CF9300D000D00F92CDB7DEB70F900F9045
+:1021A0000F900F900F90CF91DF910895DF93CF9311
+:1021B00000D000D000D0CDB7DEB726960FB6F89489
+:1021C000DEBF0FBECDBFCF91DF9108950E940C19E5
+:1021D000482F892F82958F70282F30E02C303105C1
+:1021E0004CF42A3031056CF4225030402230310555
+:1021F000C0F407C02C30310551F02F30310589F47F
+:1022000006C0403E10F0403F61F481E008959F70A9
+:10221000892F90E023E0969587952A95E1F78170C4
+:10222000089580E008950E94E01A0E94B51A0E9465
+:10223000F81A0E949D1F0E94A91F80E090E00E9452
+:10224000F30F80E090E00E940B1008950E94D01AD6
+:102250000E9413110895882321F00E94C91A0E9438
+:10226000F81A0895882321F00E94C31A0E94F81AD0
+:102270000895282F882309F44EC0823859F40E940B
+:10228000D00F81FF48C089E30E94431A0E94F81AC8
+:1022900089E30CC0833869F40E94D00F80FF3BC0F3
+:1022A00083E50E94431A0E94F81A83E50E94811A6E
+:1022B0001FC0843859F40E94D00F82FF2CC087E4DD
+:1022C0000E94431A0E94F81A87E4F0CF8450813AA2
+:1022D00010F4822FEBCF822F805E883060F427705D
+:1022E00081E090E001C0880F2A95EAF70E94C91AA0
+:1022F0000E94F81A0895822F855A833028F480E0CE
+:1023000090E00E94F30F0895285A233120F480E0D2
+:1023100090E00E940B1008951F93182F882309F452
+:10232000D0C0823859F40E94D00F81FDCAC089E321
+:102330000E94431A0E94F81A89E30CC0833879F48A
+:102340000E94D00F80FDBDC083E50E94431A0E9409
+:10235000F81A83E50E94811A0E94F81AB2C08438E4
+:1023600059F40E94D00F82FDACC087E40E94431A4A
+:102370000E94F81A87E4EECF8450813A50F4812FFE
+:102380000E94DE21882309F09CC0812F0E94431AFD
+:10239000E3CF812F805E883050F4177081E090E0A9
+:1023A00001C0880F1A95EAF70E94C31AD5CF812F72
+:1023B000855A8330A0F4153A19F481E890E00CC0F6
+:1023C000163A19F482E890E007C0173A19F080E055
+:1023D00090E002C083E890E00E94F30F72C0812F6A
+:1023E000885A833108F06DC0183A19F482EE90E0F3
+:1023F00066C0193A19F489EE90E061C01A3A19F4EE
+:102400008AEE90E05CC01B3A19F485EB90E057C06F
+:102410001C3A19F486EB90E052C01B3B19F483EB95
+:1024200090E04DC01C3B19F484EB90E048C01D3A8D
+:1024300019F487EB90E043C0103B19F48CEC90E06A
+:102440003EC01E3A19F48DEC90E039C01F3A19F4E1
+:1024500083E891E034C0113B19F48AE891E02FC081
+:10246000123B19F482E991E02AC0133B19F484E984
+:1024700091E025C0143B19F481E292E020C0153BA5
+:1024800019F483E292E01BC0163B19F484E292E057
+:1024900016C0173B19F485E292E011C0183B19F4FD
+:1024A00086E292E00CC0193B19F487E292E007C083
+:1024B0001A3B19F080E090E002C08AE292E00E94AC
+:1024C0000B101F910895AF92BF92CF92DF92EF92BF
+:1024D000FF920F931F93DF93CF93CDB7DEB72A9769
+:1024E0000FB6F894DEBF0FBECDBF5C01DE011196C2
+:1024F000FC0185E001900D928150E1F70B81F5011F
+:10250000F580F2944FE0F422DE011696FE0131963A
+:1025100085E001900D928150E1F73E812F81898500
+:102520009A85892B09F4F0C12F3F09F0C0C13F3FC4
+:1025300009F0BDC1E9C18D2D8F70222311F4182F30
+:1025400003C0182F1295107F002349F0112309F4BE
+:1025500088C1812F0E94D31A0E94F81A82C18C2D43
+:102560000E943911112309F4CFC1812F0E94D91A79
+:102570000E94F81AC9C18D2D8F70203211F4182FC6
+:1025800003C0182F1295107FCC2021F0F1E0CF1658
+:1025900011F516C0002359F0FF2009F431C121E0E4
+:1025A000F21609F02DC1812F0E94E31AADC1FF2060
+:1025B00021F081E0F81609F4A7C10E94E61A26C1AD
+:1025C000002329F0E1E0EF1508F49EC119C1FF20B6
+:1025D00009F09AC11BC1002321F0FF2009F410C1AA
+:1025E00040C1FF2009F412C147C18D2D8695869503
+:1025F000837090E0009721F0019709F085C10AC02F
+:10260000002319F0C601937002C080E090E00E94A0
+:10261000F30F7AC1002319F0C601937002C080E065
+:1026200090E00E940B1070C1002321F08C2D0E94BD
+:10263000AB1E03C08C2D0E94151F0E94A91F64C1F0
+:102640008D2D837009F05EC0002309F05DC12C2D33
+:10265000229526952770220F220F8C2D8F70E82E41
+:10266000FF2400E010E0022E04C0EE0CFF1C001F4F
+:10267000111F0A94D2F7C4FC05C060E070E080E04E
+:1026800090E00FC06FE070E080E090E004C0660F63
+:10269000771F881F991F2A95D2F7609570958095AE
+:1026A0009095D694D694F3E0DF224D2D50E0413042
+:1026B0005105A9F0423051051CF4452B49F024C1C5
+:1026C0004230510589F04330510509F01DC113C056
+:1026D0006E297F29802B912B0E941E1A15C16E290D
+:1026E0007F29802B912B0BC06E297F29802B912B6A
+:1026F0000E940D1A09C10E941E1AC801B7010E944A
+:102700002F1A02C190E0002311F4969587958170ED
+:1027100009F4FAC02C2D229526952770220F220F3E
+:102720008C2D8F70E82EFF2400E010E0022E04C0F4
+:10273000EE0CFF1C001F111F0A94D2F7C4FC05C049
+:1027400060E070E080E090E00FC06FE070E080E05B
+:1027500090E004C0660F771F881F991F2A95D2F753
+:102760006095709580959095D694D69423E0D2226A
+:102770004D2D50E041305105A9F0423051051CF477
+:10278000452B49F0C1C04230510589F04330510515
+:1027900009F0BAC013C06E297F29802B912B0E94AB
+:1027A0007119B2C06E297F29802B912B0BC06E2925
+:1027B0007F29802B912B0E946019A6C00E9471195D
+:1027C000C801B7010E9482199FC080EFC81611F19D
+:1027D0008C1528F0E0EECE1608F43FC009C0F2EFE9
+:1027E000CF1661F1CF1628F123EFC216B1F52BC039
+:1027F0001C2D1F708D2D8F71002331F00E94CF1979
+:10280000812F0E94321180C00E94AF19812F0E9437
+:102810002B117AC0002321F0FF2009F075C004C0FD
+:1028200081E08F1508F470C08D2D8F710E9493196F
+:102830006BC08D2D8F71002329F119C08D2D8F71E3
+:102840000023A9F01FC0002329F08D2D8F710E9455
+:10285000EB195AC00E94FB1957C0002359F0FF2002
+:1028600021F08C2D0E948C114FC08D2D8F710E94F4
+:10287000CF194AC0FF2021F08C2D0E94391144C08D
+:102880008D2D8F710E94AF193FC0EFE0DE22C50190
+:102890006C2D4D2D0E942F030E94911835C0FFE032
+:1028A000DF22C5016C2D4D2D0E9453062DC089815C
+:1028B0009A810E940C196C010E940B190E940A193E
+:1028C0008D2D82958F7090E08530910509F4ACCE06
+:1028D0008630910554F4843091050CF086CE2D2D70
+:1028E000207F02970CF047CE26CE8C3091053CF429
+:1028F0008A3091050CF069CF089731F4A1CE8C3065
+:10290000910519F20F9759F22A960FB6F894DEBF87
+:102910000FBECDBFCF91DF911F910F91FF90EF9030
+:10292000DF90CF90BF90AF900895DF93CF93CDB756
+:10293000DEB72B970FB6F894DEBF0FBECDBF342F96
+:102940004F83252F588769877A878B87472F582F82
+:10295000FE01319686E0DF011D928A95E9F76B83CF
+:1029600039832A834C835D83432F522F8D819E812F
+:102970000E94D2172B960FB6F894DEBF0FBECDBFC4
+:10298000CF91DF9108950F931F930091620115C0BD
+:1029900010E0F801EE0FFF1FE00FF11FEE0FFF1F19
+:1029A000ED59FE4F4081518162817381848195810F
+:1029B0000E94D6100F5F1F4F0770809161010817AA
+:1029C00039F71F910F91089540915B0150915C017F
+:1029D00060915D0170915E0180915F019091600155
+:1029E0000E94D61008950F931F93CF93DF93809189
+:1029F000600182958F7009F06DC080915D01882320
+:102A000009F468C0609162010091610140915E012A
+:102A100050915F0110915C0170915B01EA01C095DA
+:102A2000D09555C04115510509F44FC01F3F49F4D9
+:102A300080E090E07F3F11F481E090E0882309F08E
+:102A400044C0262F30E0F901EE0FFF1FE20FF31F05
+:102A5000DF01AA0FBB1FAD59BE4F11968C91119784
+:102A6000181799F58C91781781F5EE0FFF1FEB5928
+:102A7000FE4F8081882349F513968D919C91149780
+:102A80008417950718F0841B950B02C08C0F9D1FAF
+:102A9000883C9105D0F4809160018F7080618093B3
+:102AA0006001F901EE0FFF1FE20FF31FEE0FFF1F92
+:102AB000E859FE4F80818F70806180838BE591E0C3
+:102AC0000E9463120E94C31405C06F5F6770601795
+:102AD00009F0A8CFDF91CF911F910F910895DF9258
+:102AE000EF92FF920F931F93DF93CF93CDB7DEB793
+:102AF0006B970FB6F894DEBF0FBECDBF8C01DC0123
+:102B00001296DC9012974C9111965C911197139646
+:102B1000ED90FC90149720915E0130915F016091DF
+:102B20005C0170915B012115310509F4DBC16F3F38
+:102B300009F003C27F3F09F000C2D4C1E216F306D8
+:102B400040F0C701821B930B883C910508F0EEC052
+:102B500008C0209530952E0D3F1D283C310508F00A
+:102B6000E5C080916001807F09F095C06F3F09F05A
+:102B7000EAC17F3F09F0E7C115C0741799F4DD2061
+:102B800089F4809160018F708061809360010E9460
+:102B9000E4148BE591E00E94631280916001F801DA
+:102BA0008583BCC1FD82EC825A834983DB82DE01CE
+:102BB0001696FE01319685E001900D928150E1F765
+:102BC0006885DE011B96FE01369685E001900D9228
+:102BD0008150E1F72C853B858E859F85892B09F4F3
+:102BE00051C02F3F09F0B3C13F3F09F0B0C14AC007
+:102BF000FD82EC825A834983DB82DE011B96FE0153
+:102C0000319685E001900D928150E1F7FC847B853F
+:102C10006D8580916201909161011FC0282F30E085
+:102C2000F901EE0FFF1FE20FF31FDF01AA0FBB1F19
+:102C3000AD59BE4F11968C911197F81651F48C91A5
+:102C4000781739F4EE0FFF1FEB59FE4F808168179C
+:102C5000C9F42F5F3F4F822F87708917F9F68DC116
+:102C60009F7059F0442349F459C19F7031F0D80145
+:102C700015968C91807F09F451C1405E483008F46C
+:102C80004DC148C1DD2009F449C1809160018160D6
+:102C90008093600143C16F3F09F05DC17F3F09F040
+:102CA0005AC114C0741791F4DD2081F48091600141
+:102CB000F8018583C8010E946312ABE5B1E0F80119
+:102CC00086E001900D928150E1F720C15A8349833B
+:102CD00089819A810E94E610882309F41BC1DD20B6
+:102CE00009F418C130916001832F82958F7090E0B4
+:102CF00002979CF090915C0120915B01FE0170961F
+:102D000086E0DF011D928A95E9F7998B288BFC8A72
+:102D1000EB8A3D8BCF010E946312ABE5B1E0F80175
+:102D200086E001900D928150E1F7EEC08091600144
+:102D3000807FA9F47E2DFD82EC825A834983DB8259
+:102D40006D2D8D810E94C7100BE511E0C8010E9416
+:102D5000631286E0F80111928A95E9F7C0C06F3FCF
+:102D600009F0FDC07F3F09F0FAC014C0741791F458
+:102D7000DD2081F480916001D80115968C93C80103
+:102D80000E946312EBE5F1E086E0DF011D928A9577
+:102D9000E9F7BEC05A83498389819A810E94E6106F
+:102DA000882309F4B7C0DD2009F4B4C03091600174
+:102DB000832F82958F7090E002979CF090915C0138
+:102DC00020915B01FE01769686E0DF011D928A95D7
+:102DD000E9F79F8B2E8BFA8EE98E3B8FCF010E94F5
+:102DE0006312ABE5B1E0F80186E001900D928150ED
+:102DF000E1F78AC06F3F09F0B6C07F3F09F0B3C06A
+:102E000071C0E216F30640F0C701821B930B883CA9
+:102E1000910508F053C008C0209530952E0D3F1D38
+:102E2000283C310508F04AC0DD2009F473C06F3F2B
+:102E300009F09FC07F3F09F09CC029C0741739F585
+:102E40009091600190FD1AC0892F82958F70B1F02A
+:102E5000F80195838F3031F08F5F8295807F9F706E
+:102E6000982B9583C8010E946312ABE5B1E0F8018D
+:102E700086E001900D928150E1F748C0ABE5B1E0EA
+:102E8000F80186E001900D928150E1F741C05A832C
+:102E9000498389819A810E94E610882349F0ABE535
+:102EA000B1E0F80186E001900D928150E1F72CC06D
+:102EB000809160018160809360012CC07E2DFD8235
+:102EC000EC825A834983DB826D2D8D810E94C7106D
+:102ED000EBE5F1E086E0DF011D928A95E9F70E94BB
+:102EE000E4141CC0DD20B1F05A83498389819A81A2
+:102EF0000E94E610882371F0ABE5B1E0F80186E0AE
+:102F000001900D928150E1F70E94F3140E94E414A5
+:102F100081E005C0C8010E946312FACF80E06B9681
+:102F20000FB6F894DEBF0FBECDBFCF91DF911F91DA
+:102F30000F91FF90EF90DF90089580915D018823BD
+:102F400009F458CFFBCD651709F02CCE16CE6130B1
+:102F500009F498CE4DCE651709F0B8CEA3CE65170B
+:102F600009F018CF03CF80915D01882309F0BACF13
+:102F700048CF651709F08BCF61CF5A834983898188
+:102F80009A810E940C19482F892F82958F70282FC3
+:102F900030E0223031050CF463CE243031050CF0E2
+:102FA000B9CF63CE0F931F93DF93CF93CDB7DEB727
+:102FB0002C970FB6F894DEBF0FBECDBF4F83588756
+:102FC00069877A878B879C878E01095F1F4FC801AD
+:102FD0000E946F158823D9F028853F818A859B85BB
+:102FE000892B09F46BC02F3F49F480E090E03F3F0C
+:102FF00011F481E090E0882309F060C04F8158858A
+:1030000069857A858B859C850E94D61057C0DE0124
+:103010001196F80186E001900D928150E1F7F98157
+:10302000EA814C815D814115510509F447C0EF3FAC
+:1030300009F04CC0FF3F09F049C040C0F983EA8362
+:103040005D834C83F901EE0FFF1FE20FF31FEE0FBC
+:10305000FF1FED59FE4FDE01119686E00D900192A3
+:103060008150E1F7609361010E94C31427C0919FD2
+:10307000C00111248D599E4F0E946F15882309F4B9
+:1030800045C08091620190E0FC01EE0FFF1FE80F48
+:10309000F91FEE0FFF1FED59FE4F408151816281F4
+:1030A0007381848195810E94D6108091620190E0A5
+:1030B0000196877090708093620101C016E0909134
+:1030C000620180916101981791F620C080916101A1
+:1030D000282F30E02F5F3F4FB9016770707021508B
+:1030E00030408091620190E06817790709F0A6CF1F
+:1030F0000E9426111092610110926201EBE5F1E04D
+:1031000086E0DF011D928A95E9F7D8CF2C960FB69D
+:10311000F894DEBF0FBECDBFCF91DF911F910F910D
+:103120000895CF92DF92EF92FF921F93CF93DF9398
+:10313000EC01009709F466C010E090EAC92E9FE008
+:10314000D92E81E0E82EF12CFE012196949194373E
+:1031500048F4943008F044C0913079F0923009F08E
+:1031600051C01BC0953709F437C0953750F1892FEE
+:103170008458803708F046C037C0FE0121969491EC
+:10318000892F805E883060F597708E2D01C0880F82
+:103190009A95EAF70E94D31A0FC0FE0121969491E6
+:1031A000892F805E883058F497708E2D01C0880F6B
+:1031B0009A95EAF70E94D91A0E94F81A19C0892F25
+:1031C00015C0FE01249104C0C6010197F1F72150FA
+:1031D0002223D1F721960CC0FE012196149108C03C
+:1031E000892F0E948C1104C0892F8F770E9439117A
+:1031F000212F04C0C6010197F1F72150222309F4C1
+:10320000A3CFF8CFDF91CF911F91FF90EF90DF9088
+:10321000CF90089508950895CF92DF92EF92FF9294
+:103220000F931F93CF93DF936C01E0909301F09085
+:1032300094010091950110919601809197019091D0
+:103240009801A0919901B0919A01E82AF92A0A2BD4
+:103250001B2BCFE1D0E0D801C7010C2E04C0B695DE
+:10326000A795979587950A94D2F781709070892BCE
+:1032700041F08C2FB6010E942B079C0181309105F3
+:1032800051F421978FEFCF3FD80729F780E0B6019F
+:103290000E942B079C01822FDF91CF911F910F91EC
+:1032A000FF90EF90DF90CF90089560939701709317
+:1032B00098018093990190939A010E9413110895A7
+:1032C0009B01AC01609197017091980180919901E7
+:1032D00090919A0162277327842795270E94551998
+:1032E00008959B01AC0160919701709198018091C4
+:1032F000990190919A0162237323842395230E945C
+:10330000551908959B01AC01609197017091980146
+:103310008091990190919A01622B732B842B952BAC
+:103320000E945519089521E030E040E050E004C0CB
+:10333000220F331F441F551F8A95D2F780919701A2
+:1033400090919801A0919901B0919A01282739276D
+:103350004A275B27CA01B9010E945519089521E047
+:1033600030E040E050E004C0220F331F441F551FDF
+:103370008A95D2F720953095409550958091970188
+:1033800090919801A0919901B0919A012823392335
+:103390004A235B23CA01B9010E945519089521E00F
+:1033A00030E040E050E004C0220F331F441F551F9F
+:1033B0008A95D2F78091970190919801A0919901F7
+:1033C000B0919A01282B392B4A2B5B2BCA01B901EA
+:1033D0000E945519089521E030E040E050E004C01B
+:1033E000220F331F441F551F8A95D2F7CA01B90116
+:1033F0000E945519089560E070E080E090E00E941E
+:1034000055190895609393017093940180939501E9
+:10341000909396010E94131108959B01AC01609155
+:10342000930170919401809195019091960162278A
+:103430007327842795270E94021A08959B01AC01E7
+:103440006091930170919401809195019091960102
+:1034500062237323842395230E94021A08959B01FB
+:10346000AC016091930170919401809195019091CC
+:103470009601622B732B842B952B0E94021A0895C0
+:103480000E94021A0895382F809102018823E1F0EA
+:1034900080910D018823C1F0832F869586958695AE
+:1034A0008F3070F5E0910E01F0910F01E80FF11DE2
+:1034B000377081E090E002C0880F991F3A95E2F7DB
+:1034C0002181282B21830895A0910E01B0910F0135
+:1034D000FD0120E08FEF9281931791F08F3F19F457
+:1034E000992309F4822F2F5F31962E30A1F78F3F59
+:1034F00039F0992787FD9095A80FB91F12963C9334
+:103500000895482F809102018823E9F080910D01F0
+:103510008823C9F0842F8695869586958F3020F56F
+:10352000E0910E01F0910F01E80FF11D477081E06D
+:1035300090E002C0880F991F4A95E2F7809521819B
+:1035400082238183089520E030E0E0910E01F09124
+:103550000F01E20FF31F8281841709F412822F5F9B
+:103560003F4F2E30310589F7089581E090E0E091DA
+:103570000E01F0910F01E80FF91F108201968031C2
+:103580009105A9F708959091AB01982B9093AB0109
+:10359000089580959091AB0198239093AB01089585
+:1035A0001092AB0108959091AD01982B9093AD01CD
+:1035B000089580959091AD0198239093AD01089561
+:1035C0001092AD0108958093AC0108951092AC0162
+:1035D0000895E0910E01F0910F0120E091E08181CA
+:1035E00081112F5F9F5F31969031C9F7822F089527
+:1035F000E0910E01F0910F018091AB018083E09189
+:103600000E01F0910F0180819091AD01892B808393
+:103610009091AC01992369F0E0910E01F0910F01B6
+:103620008081892B80830E94E91A882311F00E94EF
+:10363000E61A80910E0190910F010E94DD0F08950E
+:103640009B01AC01AA27BB270097A105B10521F476
+:10365000DA01C90160E001C060E1292F3A2F4B2F48
+:103660005527211531054105510519F49C01AD017E
+:1036700001C0685FDA01C90174E0B695A795979516
+:1036800087957A95D1F70097A105B10519F4DA016C
+:10369000C90101C06C5F9C01AD01F2E056954795F0
+:1036A00037952795FA95D1F7211531054105510533
+:1036B00019F49C01AD0101C06E5F56954795379591
+:1036C0002795211531054105510509F06F5F862FBA
+:1036D00008958091C501843009F11092AF0120E472
+:1036E00088E190E00FB6F894A895809360000FBE33
+:1036F0002093600083B7817F846083BF83B781603C
+:1037000083BF7894889583B78E7F83BF88E10FB697
+:10371000F89480936000109260000FBE08950895A1
+:1037200008951F920F920FB60F9211248F939F93BB
+:10373000AF93BF938091AF01882399F48091B0013A
+:103740009091B101A091B201B091B3014196A11D38
+:10375000B11D8093B0019093B101A093B201B093D9
+:10376000B301BF91AF919F918F910F900FBE0F90BA
+:103770001F9018950E9426110E94D00F0E946C087D
+:1037800008951F930E948F1B0E9454050E94901B56
+:1037900010E0812F0E940405882311F081E004C00D
+:1037A0001F5F1E30B1F780E01F91089582E084BD55
+:1037B00093E095BD9AEF97BD80936E0008958FB703
+:1037C000F8942091B0013091B1014091B201509133
+:1037D000B3018FBFC9010895EF92FF920F931F931A
+:1037E000BC018FB7F894E090B001F090B101009166
+:1037F000B2011091B3018FBFA801970140705070C2
+:10380000CB01A0E0B0E0281739074A075B0720F09A
+:103810009701261B370B05C09B01209530952E0D77
+:103820003F1DC9011F910F91FF90EF9008951F92C6
+:103830000F920FB60F9211248F939F93AF93BF9364
+:103840008091B0019091B101A091B201B091B3010A
+:103850000196A11DB11D8093B0019093B101A09379
+:10386000B201B093B301BF91AF919F918F910F902F
+:103870000FBE0F901F9018950E94B60CF89480E22E
+:103880009EE420E931E0F9013197F1F70197D9F78A
+:1038900087E090EBA7E0B0EB8093CE019093CF014F
+:1038A000A093D001B093D1012CE088E190E00FB655
+:1038B000F894A895809360000FBE20936000FFCF1E
+:1038C000EF92FF920F931F93CF93DF93082F10E097
+:1038D000812F0E940405C0E0D0E0E82EFF24C7013C
+:1038E0000C2E02C0959587950A94E2F780FF09C0D7
+:1038F00080E06C2F712F0E940307081711F481E0FC
+:1039000008C02196C630D10551F71F5F1E3001F760
+:1039100080E0DF91CF911F910F91FF90EF9008957C
+:103920001F93182F8CE20E94601C882319F0812FAE
+:103930000E94601C1F9108951F93CF93DF930E94F4
+:103940000A1E882311F40E94151E14E6C0E4DCE967
+:1039500005C00E945405CE010197F1F71150C8F738
+:1039600089E20E94901C882309F02FC18AE20E94FC
+:10397000901C882311F00E94151E85E00E94901C67
+:10398000882311F00E943C1C0E94051E8093AE010A
+:1039900087E00E94901C8823B9F18BE10E94901C63
+:1039A000882349F09091AE01892F8695809581708A
+:1039B000880F9D7F26C08EE00E94901C882359F0BE
+:1039C0009091AE01892F8695869580958170880F9C
+:1039D000880F9B7F16C080E10E94901C9091AE01E1
+:1039E000882359F0892F86958695869580958170D4
+:1039F000880F880F880F977F04C0892F809581706A
+:103A00009E7F982B9093AE018091AE010E94F51D90
+:103A10000E94FB1D8093BF0180EE0E94901C8823B2
+:103A200049F08091BF01982F909591708E7F892BDE
+:103A30008093BF0189E30E94901C882359F09091E4
+:103A4000BF01892F869580958170880F9D7F982B67
+:103A50009093BF0182EE0E94901C882369F09091A0
+:103A6000BF01892F8695869580958170880F880F74
+:103A70009B7F982B9093BF0186EE0E94901C882319
+:103A800079F09091BF01892F8695869586958095CE
+:103A90008170880F880F880F977F982B9093BF01B4
+:103AA00083EE0E94901C882369F09091BF01892FBA
+:103AB00082958F70809581708295807F9F7E982BF4
+:103AC0009093BF0185E30E94901C882379F0909128
+:103AD000BF01892F82958695877080958170829528
+:103AE000880F807E9F7D982B9093BF0181E30E9479
+:103AF000901C882389F09091BF01892F829586952B
+:103B000086958370809581708295880F880F807C60
+:103B10009F7B982B9093BF0181E10E94901C88238A
+:103B200079F08091BF01982F991F9927991F21E063
+:103B300092279795992797958F77892B8093BF0127
+:103B40008091BF010E94E91D8091BF01881F8827D5
+:103B5000881F80930D0187E20E94901C182F8EE130
+:103B60000E94901C811112608FE10E94901C8111B3
+:103B7000146080E20E94901C8111186081E20E9412
+:103B8000901C8111106182E20E94901C81111062D0
+:103B900083E20E94901C8111106484E20E94901CB8
+:103BA00081111068112341F0812F0E94EF1D612FB8
+:103BB00070E080E090E007C00E94001E90E0A0E06E
+:103BC000B0E0BC01CD010E94401ADF91CF911F915E
+:103BD0000895682F84E090E00E9404240895682FDF
+:103BE00083E090E00E9404240895682F82E090E032
+:103BF0000E940424089584E090E00E94F623089532
+:103C000083E090E00E94F623089582E090E00E9415
+:103C1000F623089580E090E00E94FE2320E08D5E70
+:103C20009E4F09F421E0822F089580E090E06DEE30
+:103C30007EEF0E94122482E090E060E00E94042463
+:103C400083E090E060E00E94042484E090E060E083
+:103C50000E94042485E090E060E00E94042408951E
+:103C60008091BA0180FF0BC09091120185E0989F6E
+:103C7000C0011124959587959595879530C081FF52
+:103C800009C09091120185E0989FC001112495957B
+:103C9000879525C082FF03C0909112010DC08091CD
+:103CA000B901882319F485E090E00895609113012B
+:103CB00090911201861728F085E0989FC001112489
+:103CC0000EC0899F90011124C901880F991F880F88
+:103CD000991F820F931F70E00E94CF23CB01803881
+:103CE000910510F08FE70895009709F481E0089599
+:103CF0008091BA0180FF05C0809114018695869558
+:103D000018C081FF04C080911401869512C082FF03
+:103D100003C0809114010DC02091B901222319F430
+:103D200081E090E0089560911501809114012617BB
+:103D300010F090E007C0289FC001112470E00E949D
+:103D4000CF23CB018038910510F08FE708950097BD
+:103D500009F481E00895803F21F40E94301E81958E
+:103D600004C0813F29F40E94301E8093B60108955B
+:103D7000823F21F40E94301E819504C0833F29F4C4
+:103D80000E94301E8093B5010895893F19F40E9466
+:103D9000781E05C08A3F31F40E94781E8195809379
+:103DA000B70108958B3F21F40E94781E819504C0CD
+:103DB0008C3F29F40E94781E8093B8010895843FB7
+:103DC00021F48091B401816017C0853F21F4809176
+:103DD000B401826011C0863F21F48091B4018460F7
+:103DE0000BC0873F21F48091B401886005C0883FF3
+:103DF00031F48091B40180618093B40108958D3FC6
+:103E000021F48091BA01816005C08E3F31F4809128
+:103E1000BA0182608093BA0108958F3F29F480919E
+:103E2000BA0184608093BA010895803F29F480919B
+:103E3000B60187FF6FC007C0813F41F48091B60192
+:103E400018160CF067C01092B60164C0823F29F4C6
+:103E50008091B50187FF5EC007C0833F41F4809128
+:103E6000B50118160CF056C01092B50153C0893F29
+:103E700029F48091B70118163CF04CC08A3F39F400
+:103E80008091B70187FF46C01092B70143C08B3FB6
+:103E900029F48091B80187FF3DC006C08C3F39F4FA
+:103EA0008091B8011816B4F51092B80133C0843F60
+:103EB00021F48091B4018E7F05C0853F31F480915B
+:103EC000B4018D7F8093B40125C0863F21F4809199
+:103ED000B4018B7FF7CF873F21F48091B401877FB6
+:103EE000F1CF883F21F48091B4018F7EEBCF8D3FDD
+:103EF00021F48091BA018E7F0BC08E3F21F4809116
+:103F0000BA018D7F05C08F3F29F48091BA018B7F64
+:103F10008093BA018091B501882371F48091B60134
+:103F2000882351F48091B701882331F48091B8013E
+:103F3000882311F41092B9010895E4EBF1E085E0D3
+:103F4000DF011D928A95E9F71092B9011092BA012A
+:103F5000089584EB91E00E94E80F0E94DF1B90938C
+:103F6000BC018093BB0108951F938091BB01909188
+:103F7000BC010E94EC1BAC012091B901222321F06D
+:103F80008091110190E006C0909110018AE0989F05
+:103F9000C00111244817590708F485C09091B50154
+:103FA000992369F48091B601882349F48091B7017F
+:103FB000882329F48091B801882309F474C02F3F25
+:103FC00019F02F5F2093B901191624F40E94301EB6
+:103FD0008093B5018091B50187FF05C00E94301E16
+:103FE00081958093B5018091B601181624F40E9442
+:103FF000301E8093B6018091B60187FF05C00E94F4
+:10400000301E81958093B6016091B501662339F128
+:104010001091B601112319F1772767FD7095872F4D
+:10402000972F0E94E02223E333E343E35FE30E9400
+:1040300044230E94AD226093B501612F772767FD6D
+:104040007095872F972F0E94E02223E333E343E309
+:104050005FE30E9444230E94AD226093B6018091E9
+:10406000B701181624F40E94781E8093B70180913E
+:10407000B70187FF05C00E94781E81958093B70124
+:104080008091B801181624F40E94781E8093B8011C
+:104090008091B80187FF05C00E94781E81958093AA
+:1040A000B8010E94A91F1F91089580E0089580E043
+:1040B0000895833099F1843030F4813069F0823092
+:1040C00009F06FC01AC0853009F44AC08530B8F1D4
+:1040D000863009F066C055C020911001822F90E013
+:1040E000860F911D8F3F910520F4260F209310011C
+:1040F00008958FEF80931001089520911101822F70
+:1041000090E0860F911D8F3F910520F4260F20939C
+:10411000110108958FEF80931101089520911201EC
+:10412000822F90E0860F911D8F3F910520F4260F7E
+:104130002093120108958FEF80931201089520912A
+:104140001301822F90E0860F911D8F3F910520F47F
+:10415000260F2093130108958FEF80931301089584
+:1041600020911401822F90E0860F911D8F3F9105C1
+:1041700020F4260F2093140108958FEF80931401EB
+:10418000089520911501822F90E0860F911D8F3F99
+:10419000910520F4260F2093150108958FEF809349
+:1041A00015010895833031F1843030F4813061F0AD
+:1041B000823009F04AC013C0853091F1853028F172
+:1041C000863009F042C037C080911001681720F492
+:1041D000861B80931001089510921001089580911C
+:1041E0001101681720F4861B809311010895109225
+:1041F0001101089580911201681720F4861B8093A5
+:104200001201089510921201089580911301681708
+:1042100020F4861B809313010895109213010895D2
+:1042200080911401681720F4861B8093140108956F
+:1042300010921401089580911501681720F4861BCF
+:1042400080931501089510921501089521E030E042
+:1042500040E050E004C0220F331F441F551F8A95D1
+:10426000D2F7CA01B9010E94401A0E94261108958E
+:104270008B3109F463C08C3100F58E3009F468C0CD
+:104280008F3068F4873009F453C0883018F48630D2
+:1042900089F537C0883081F18B3061F58DC081316F
+:1042A00009F478C0823118F4803121F55DC086317F
+:1042B00009F482C08931F1F47FC0853309F473C0F9
+:1042C000863358F4873209F46EC0883218F48E3180
+:1042D00088F06BC0893271F466C0833430F48A335D
+:1042E00008F065C0883331F467C0833409F45BC0DB
+:1042F000883481F080E008950E94051E0E94FB1D15
+:1043000059C08091AE01807F8093AE0181E080939F
+:10431000BD0108950E94261180E197E220E931E075
+:10432000F9013197F1F70197D9F70E943C1C42C07F
+:104330008091AE0180FF2AC0807F29C08091AE01AC
+:10434000982F969590959170292F220F8D7F19C0E7
+:104350008091AE01982F9695969590959170292F02
+:10436000220F220F8B7F0DC08091AE01982F969562
+:104370009695969590959170292F220F220F220FD6
+:10438000877F822B8093AE019923B1F08160809367
+:10439000AE0110C00E94261180910D0191E0892785
+:1043A00080930D0107C080E003C08D5101C0895387
+:1043B0000E94262181E0089581E008951F93182F1F
+:1043C0008091BD01813089F0813020F0823009F088
+:1043D000BFC03BC0E0910E01F0910F01E081E131DF
+:1043E00069F0E23209F0B6C009C0E0910E01F09127
+:1043F0000F01E081E13111F0E23249F4812F0E9496
+:1044000055208823F9F4812F0E943821A4C0812FE0
+:104410000E9457208823B1F4143161F0153128F43B
+:104420001B3081F0103141F40AC0193219F01833F1
+:1044300019F408C01092BD0180E090E08CC082E0C9
+:104440008093BD0181E090E086C0193201F11A32FB
+:1044500070F41431E1F0153120F4173009F064C024
+:1044600065C0812F8E51863008F05EC01BC01E349F
+:1044700009F455C01F3420F41B3409F055C049C05D
+:10448000113509F442C0123509F04EC03AC080918E
+:10449000BE01882319F01092BE0146C081E08093CE
+:1044A000BD0159C01232F9F0133260F41F3199F096
+:1044B000103218F41E3109F510C0103281F011329B
+:1044C000E1F40FC0143299F0143278F0153289F00B
+:1044D000163299F410C082E011C081E00FC083E071
+:1044E0000DC084E00BC085E009C086E007C087E00E
+:1044F00005C088E003C089E001C080E08093BE0170
+:1045000013C08091BE0161E007C08091BE0161E0EF
+:1045100009C08091BE016AE00E94592005C08091C7
+:10452000BE016AE00E94D22081E015C09AE090931B
+:10453000100184E18093110183E080931201909334
+:10454000130188E08093140188E280931501ECCF79
+:104550001092BD0180E01F91089504D06894B111BC
+:104560008DC0089570D088F09F5790F0B92F99278B
+:10457000B751A0F0D1F0660F771F881F991F1AF06E
+:10458000BA95C9F712C0B13081F077D0B1E0089583
+:1045900074C0672F782F8827B85F39F0B93FCCF304
+:1045A000869577956795B395D9F73EF49095809564
+:1045B000709561957F4F8F4F9F4F0895E89409C084
+:1045C00097FB3EF490958095709561957F4F8F4F46
+:1045D0009F4F9923A9F0F92F96E9BB279395F6955C
+:1045E000879577956795B795F111F8CFFAF4BB0FDA
+:1045F00011F460FF1BC06F5F7F4F8F4F9F4F16C03E
+:10460000882311F096E911C0772321F09EE8872FC7
+:10461000762F05C0662371F096E8862F70E060E083
+:104620002AF09A95660F771F881FDAF7880F9695FC
+:10463000879597F9089557FD9058440F551F59F0E5
+:104640005F3F71F04795880F97FB991F61F09F3F7F
+:1046500079F087950895121613061406551FF2CFA8
+:104660004695F1DF08C0161617061806991FF1CFF8
+:1046700086957105610508940895E894BB2766271F
+:104680007727CB0197F908950BD078C069D028F02F
+:104690006ED018F0952309F05AC05FC01124EECFF8
+:1046A000CADFA0F3959FD1F3950F50E0551F629F8D
+:1046B000F001729FBB27F00DB11D639FAA27F00D7B
+:1046C000B11DAA1F649F6627B00DA11D661F829FA2
+:1046D0002227B00DA11D621F739FB00DA11D621F87
+:1046E000839FA00D611D221F749F3327A00D611DA4
+:1046F000231F849F600D211D822F762F6A2F112486
+:104700009F5750408AF0E1F088234AF0EE0FFF1FD8
+:10471000BB1F661F771F881F91505040A9F79E3F0F
+:10472000510570F014C0AACF5F3FECF3983EDCF364
+:10473000869577956795B795F795E7959F5FC1F74C
+:10474000FE2B880F911D9695879597F9089597F9F7
+:104750009F6780E870E060E008959FEF80EC089527
+:1047600000240A9416161706180609060895002450
+:104770000A9412161306140605060895092E0394CA
+:10478000000C11F4882352F0BB0F40F4BF2B11F43E
+:1047900060FF04C06F5F7F4F8F4F9F4F089597FB5F
+:1047A000092E07260AD077FD04D00CD006D00020B1
+:1047B0001AF4709561957F4F0895F6F7909581955D
+:1047C0009F4F0895AA1BBB1B51E107C0AA1FBB1F27
+:1047D000A617B70710F0A61BB70B881F991F5A958D
+:1047E000A9F780959095BC01CD010895F999FECF68
+:1047F00092BD81BDF89A992780B50895A8E1B0E0EF
+:1048000042E050E00C941924262FF999FECF1FBAEC
+:1048100092BD81BD20BD0FB6F894FA9AF99A0FBEE9
+:10482000019608950E940424272F0C940524DC018E
+:10483000CB01FC01F999FECF06C0F2BDE1BDF89AAB
+:10484000319600B40D9241505040B8F70895F89455
+:02485000FFCF98
+:1048520020020172080709E108AB087508019B01F3
+:064862000A14030A0828F5
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png
new file mode 100644 (file)
index 0000000..5c4c7c7
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png differ
diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png
new file mode 100644 (file)
index 0000000..dbc51b7
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png differ
diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c
new file mode 100644 (file)
index 0000000..537b15e
--- /dev/null
@@ -0,0 +1,282 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define QWERTY 1 // qwerty keys
+#define FKEYS 2 // F keys + macros
+
+#define MACRO_PUBLIC 10
+#define MACRO_PRIVATE 11
+
+#define MACRO_STATIC 12
+#define MACRO_CONST 13
+
+#define MACRO_VOID 14
+#define MACRO_VAR 15
+#define MACRO_STRING 16
+
+#define MACRO_INT 17
+#define MACRO_FLOAT 18
+#define MACRO_BOOL 19
+
+#define MACRO_RETURN 20
+#define MACRO_NULL 21
+#define MACRO_BREAK 22
+
+#define MACRO_TODO 23
+#define MACRO_NEW 24
+#define MACRO_PARENTHESE 25
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   (    |   1  |   2  |   3  |   4  |   5  |  "   |           | Save |   6  |   7  |   8  |   9  |   0  |   [    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   )    |   Q  |   W  |   E  |   R  |   T  |Bkspa |           | Del  |   Y  |   U  |   I  |   O  |   P  |   ]    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |   {    |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   _  |   Redo |
+ * |--------+------+------+------+------+------|   /  |           |  ;   |------+------+------+------+------+--------|
+ * |   }    |Z~Alt |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   '  |   !  |   ?  |   Undo |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Tab~CL|  <   |  >   |   |  |  &   |                                       |   =  |   +  |   -  |   *  |  L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |. ~L1 | , ~L2|       |Home~L1| End~L2|
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Copy |       | UP   |        |      |
+ *                                 | Enter| Space|------|       |------|  Space |Enter |
+ *                                 | ~LSFT| ~WIN | Past |       | DOWN |   ~WIN | ~LSFT|
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_LPRN,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   LSFT(KC_QUOTE),
+        KC_RPRN,        KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_BSPACE,
+        KC_LCBR,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_RCBR,        ALT_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   KC_SLASH,
+        CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, 
+                                              LT(1,KC_DOT),  LT(2,KC_COMM),
+                                                              LCTL(KC_C),
+                                               SFT_T(KC_ENTER),GUI_T(KC_SPACE),LCTL(KC_V),
+        // right hand
+             LCTL(KC_S)  ,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,     KC_LBRACKET,
+             KC_DELETE,       KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,   KC_RBRACKET,
+                          KC_H,   KC_J,   KC_K,   KC_L,   KC_UNDS,LCTL(KC_Y),
+             KC_SCOLON,KC_N,   KC_M, KC_QUOTE  ,KC_EXLM , LSFT(KC_SLASH),   LCTL(KC_Z),
+                                  KC_EQUAL,KC_PLUS  ,  KC_MINUS,KC_ASTR  ,     TG(1),
+             LT(2,KC_HOME),         LT(1,KC_END),
+             KC_UP,
+             KC_DOWN,GUI_T(KC_SPACE), SFT_T(KC_ENTER)
+    ),
+/* Keymap 1: QWERTY layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   `    |   1  |   2  |   3  |   4  |   5  |   -  |           |   =  |   6  |   7  |   8  |   9  |  0   |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   Tab  |   Q  |   W  |   E  |   R  |   T  |      |           |      |   Y  |   U  |   I  |   O  |   P  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  Esc   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |  ;   |   '    |
+ * |--------+------+------+------+------+------|  Tab |           |  Esc |------+------+------+------+------+--------|
+ * |  LSHFT |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |  /   |    \   |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | CTRL | WIN  |  ALT |ALT GR| Esc  |                                       | PgUp | PgDw | Ins  | PtSc |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |  Cut |       |      |      |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      |      |       |      |        |      |
+ *                                 |      |      |------|       |------|   Left | Right|
+ *                                 |      |      |      |       |      |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[QWERTY] = KEYMAP(  // layer 2 : QWERTY
+        // left hand
+        KC_GRAVE,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_MINUS,
+        KC_TAB,        KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_TRNS,
+        KC_ESCAPE,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_LSHIFT,        KC_Z,  KC_X,   KC_C,   KC_V,   KC_B,   KC_TAB,
+        KC_LCTRL, KC_LGUI,KC_LALT,  KC_RALT,    KC_ESCAPE,
+                                              KC_TRNS,  LCTL(KC_X),
+                                                              KC_TRNS,
+                                               KC_TRNS,KC_TRNS,KC_TRNS,
+        // right hand
+             KC_EQUAL  ,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0, KC_TRNS,
+             KC_TRNS,       KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,            KC_TRNS,
+                          KC_H,   KC_J,   KC_K,   KC_L,   KC_SCOLON,  KC_QUOTE,
+             KC_ESCAPE,KC_N,   KC_M,   KC_TRNS,KC_DOT , KC_SLASH,   KC_NONUS_BSLASH,
+                                  KC_PGUP  ,  KC_PGDOWN,KC_INSERT  ,KC_PSCREEN,          KC_TRNS,
+             KC_TRNS,        KC_TRNS,
+             KC_TRNS,
+             KC_TRNS,KC_LEFT, KC_RIGHT
+    ),
+/* Keymap 2:  F keys + macros
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           | Calc |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |Public|Static|string|int   |return|      |           |      |//TODO|      |      |      |      |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |Privat|Const |var   |float |null  |------|           |------|new   |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |void  |bool  |break;|      |           |      |();   |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      | Alt  |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      | Cut  |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// FKEYS + MACROS
+[FKEYS] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,M(MACRO_PUBLIC),M(MACRO_STATIC),  M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS,
+       KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL),
+       KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_TRNS,
+       KC_TRNS,KC_LALT,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_TRNS,KC_TRNS,
+       // right hand
+       KC_CALCULATOR, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, M(MACRO_TODO),   KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_F12,
+                M(MACRO_NEW), KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+       KC_TRNS, M(MACRO_PARENTHESE), KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+                         KC_TRNS,KC_TRNS,  KC_TRNS,   KC_TRNS,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(QWERTY)                // FN1 - Momentary Layer 1
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+               case MACRO_PUBLIC:
+                       if (record->event.pressed) {
+                               return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END);
+                       } 
+                       break;
+               case MACRO_PRIVATE:
+                       if (record->event.pressed) {
+                               return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END);
+                       } 
+                       break;
+               case MACRO_STATIC:
+                       if (record->event.pressed) {
+                               return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_CONST:
+                       if (record->event.pressed) {
+                               return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_VOID:
+                       if (record->event.pressed) {
+                               return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_VAR:
+                       if (record->event.pressed) {
+                               return MACRO( T(V), T(A), T(R), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_STRING:
+                       if (record->event.pressed) {
+                               return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END);
+                       } 
+                       break;          
+               case MACRO_BOOL:
+                       if (record->event.pressed) {
+                               return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END);
+                       } 
+                       break;          
+               case MACRO_INT:
+                       if (record->event.pressed) {
+                               return MACRO( T(I), T(N), T(T), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_FLOAT:
+                       if (record->event.pressed) {
+                               return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_RETURN:
+                       if (record->event.pressed) {
+                               return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END);
+                       } 
+                       break;
+               case MACRO_NULL:
+                       if (record->event.pressed) {
+                               return MACRO( T(N), T(U), T(L), T(L), END);
+                       } 
+               case MACRO_BREAK:
+                       if (record->event.pressed) {
+                               return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END);
+                       } 
+                       break;
+               case MACRO_TODO:
+                       if (record->event.pressed) {
+                               return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END);
+                       } 
+                       break;
+               case MACRO_NEW:
+                       if (record->event.pressed) {
+                               return MACRO( T(N), T(E), T(W), T(SPACE), END);
+                       } 
+                       break;
+               case MACRO_PARENTHESE:
+                       if (record->event.pressed) {
+                               return MACRO(  D(LSHIFT),T(LPRN), T(RPRN),U(LSHIFT), T(SCOLON), END);
+                       } 
+                       break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md
new file mode 100644 (file)
index 0000000..3ceb77e
--- /dev/null
@@ -0,0 +1,46 @@
+# ErgoDox EZ C# Developer configuration
+
+## Changelog
+
+* Feb 12, 2016 (V1): 
+  * First version commit
+
+## About
+This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions.
+
+I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years.
+There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case.
+The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press.
+
+Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design.
+
+![CSharpDev](csharp_dev_legend.png)
+
+## Layout design principles
+* No key combination required for the most common input characters ( (),[],{},<> ... )
+* No key combination required for the most common actions (copy/paste/undo/save)
+* Regroup characters by usage ( + - * =  ...)
+* Easy access to the most commonly used characters: ; / " . ,
+* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ...
+
+## Why is it specific to C Sharp
+I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. 
+For example there is no direct access to ~ or $ keys which can be very common in some languages.
+Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os
+
+## In usage
+It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time.
+Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; )
+
+## Improvements
+This layout was shared after a bunch of iterations and only once I was happy with it.
+Still there are many way to improve or iterate on this:
+* Make it language agnostic
+* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g.  https://dzone.com/articles/most-pressed-keys-various )
+* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur
+* Layout 1 is mainly here for safety, most of its unique keys could be transfered to Layout 2 and it could then be removed
+
+## Issues 
+One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold )
+
+
index eedabc2db544c2f6b9fa7c21d91e3e686d8c4c2e..14f5b7c798099eae320766048a98d28777aca995 100644 (file)
@@ -1,17 +1,17 @@
-:100000000C9403070C9447070C9447070C9447077C\r
-:100010000C9447070C9447070C9447070C94470728\r
-:100020000C9447070C9447070C945E120C94301301\r
-:100030000C9447070C9447070C9447070C94470708\r
-:100040000C9447070C94082C0C9447070C94470712\r
-:100050000C9447070C940F220C9447070C94470705\r
-:100060000C9447070C9447070C9447070C944707D8\r
-:100070000C9447070C9447070C9447070C944707C8\r
-:100080000C9447070C9447070C9447070C944707B8\r
-:100090000C9447070C9447070C9447070C944707A8\r
-:1000A0000C9447070C9447070C9447079513B71314\r
-:1000B000A214B713A214F9131C14A21471148414FB\r
-:1000C000D217D2170018001843187F18801A801A08\r
-:1000D0009718801A8E198E195A1A801A801A6E1A59\r
+:100000000C9465020C94A9020C94A9020C94A90208\r
+:100010000C94A9020C94A9020C94A9020C94A902B4\r
+:100020000C94A9020C94A9020C94C50B0C94970C87\r
+:100030000C94A9020C94A9020C94A9020C94A90294\r
+:100040000C94A9020C9422210C94A9020C94A902EC\r
+:100050000C94A9020C94C41A0C94A9020C94A90241\r
+:100060000C94A9020C94A9020C94A9020C94A90264\r
+:100070000C94A9020C94A9020C94A9020C94A90254\r
+:100080000C94A9020C94A9020C94A9020C94A90244\r
+:100090000C94A9020C94A9020C94A9020C94A90234\r
+:1000A0000C94A9020C94A9020C94A902FC0C1E0D3C\r
+:1000B000090E1E0D090E600D830D090ED80DEB0DF6\r
+:1000C000D810D81006110611481184118413841316\r
+:1000D0009C118413931293125E138413841372136E\r
 :1000E0000000F0A12E004C002A00E1003581000044\r
 :1000F0001E00140004001D7134004D001F001A0082\r
 :1001000016001B00E1042A0020000800070006007A\r
@@ -22,7 +22,7 @@
 :10015000240018000D00100052004B0025000C0078\r
 :100160000E00360051002800260012000F00370054\r
 :100170002F002B00270013003382387130004E000F\r
-:100180002D0031003400E500C10000000100010035\r
+:100180002D0031003478E500C100000001000100BD\r
 :1001900001000100010000003A001E0220022202BC\r
 :1001A000010001003B001F022102230201000100A7\r
 :1001B0003C002F0226022F00010001003D0030020A\r
 :1002A0000100010001000100A9000100010001009E\r
 :1002B0000100AC00AA00B600010001000100AB0083\r
 :1002C000A80001000100010001000100010001007F\r
-:1002D00001000100AE000100010000000A0025300D\r
-:1002E000313662003A200025303258000A722F63FE\r
-:1002F0002030313233343536373839414243444582\r
-:10030000460A000A002530325800626F756E636538\r
-:10031000213A20006C6566742073696465206174FD\r
-:100320007461636865640A006C656674207369644F\r
-:1003300065206E6F7420726573706F6E64696E678E\r
-:100340000A00747279696E6720746F207265736534\r
-:1003500074206D637032333031380A000A444542EC\r
-:1003600055473A20656E61626C65642E0A005B73C6\r
-:100370005D004B6579626F617264207374617274A1\r
-:100380002E0A005B575D005B535D005B525D005BB6\r
-:10039000445D005B435D0016034500720067006F1B\r
-:1003A0000044006F007800200045005A000000164D\r
-:1003B000034500720067006F0044006F0078002062\r
-:1003C0000045005A0000000403090409028D0005DD\r
-:1003D0000100A0FA09040000010301010009211134\r
-:1003E000010001223F000705810308000A090401FA\r
-:1003F000000103010200092111010001224D000743\r
-:1004000005820308000A0904020001030000000934\r
-:1004100021110100012236000705830308000A09A3\r
-:100420000403000203000000092111010001222041\r
-:1004300000070584032000010705040320000109CB\r
-:100440000404000103000000092111010001223908\r
-:1004500000070585031000011201100100000008CB\r
-:10046000EDFE071301000102000105010906A101CB\r
-:10047000050719E029E71500250195087501810296\r
-:100480000508190129059505750191029501750366\r
-:100490009101050719002977150025019578750147\r
-:1004A0008102C00631FF0974A1010975150025FFFD\r
-:1004B0009520750881020976150025FF952075089D\r
-:1004C0009102C005010980A101850216010026B72D\r
-:1004D000001A01002AB700751095018100C0050CB3\r
-:1004E0000901A1018503160100269C021A01002AB8\r
-:1004F0009C02751095018100C005010902A1010946\r
-:1005000001A10005091901290515002501950575A9\r
-:100510000181029501750381010501093009311539\r
-:1005200081257F95027508810609381581257F95FB\r
-:100530000175088106050C0A38021581257F950191\r
-:1005400075088106C0C005010906A101050719E06B\r
-:1005500029E71500250195087501810295017508A7\r
-:10056000810105081901290595057501910295017B\r
-:10057000750391010507190029FF150025FF950650\r
-:1005800075088100C00A002530325820006B65795B\r
-:10059000626F6172645F7265706F72743A20000AF4\r
-:1005A0000025303258006B6579626F6172645F7349\r
-:1005B00065745F6C65643A200064656C5F6B657997\r
-:1005C0005F6269743A2063616E27742064656C3AD7\r
-:1005D00020253032580A006164645F6B65795F6280\r
-:1005E00069743A2063616E2774206164643A20253F\r
-:1005F0003032580A00646F6E652E0A00626F6F67B2\r
-:100600006D61676963207363616E3A202E2E2E2020\r
-:1006100000290A002575002F002575005D2800259A\r
-:10062000640020002564002000256400200025646B\r
-:10063000007C0025303258006D6F7573656B6579ED\r
-:10064000205B62746E7C782079207620685D287249\r
-:1006500065702F61636C293A205B006D6B5F776872\r
-:1006600065656C5F74696D655F746F5F6D6178203F\r
-:100670003D2025640A006D6B5F776865656C5F6D72\r
-:1006800061785F7370656564203D2025640A006DA4\r
-:100690006B5F74696D655F746F5F6D6178203D207D\r
-:1006A00025640A006D6B5F6D61785F7370656564CA\r
-:1006B000203D2025640A006D6B5F696E746572765B\r
-:1006C000616C203D2025640A006D6B5F64656C6180\r
-:1006D00079203D2025640A006D6B5F776865656C45\r
-:1006E0005F74696D655F746F5F6D6178203D202573\r
-:1006F000640A006D6B5F776865656C5F6D61785F3C\r
-:100700007370656564203D2025640A006D6B5F741D\r
-:10071000696D655F746F5F6D6178203D2025640AA7\r
-:10072000006D6B5F6D61785F7370656564203D205F\r
-:1007300025640A006D6B5F696E74657276616C206A\r
-:100740003D2025640A006D6B5F64656C6179203D16\r
-:100750002025640A000A00257500363A207768656E\r
-:10076000656C5F74696D655F746F5F6D61783A2069\r
-:10077000000A00257500353A20776865656C5F6D65\r
-:1007800061785F73706565643A20000A0025750022\r
-:10079000343A2074696D655F746F5F6D61783A20DB\r
-:1007A000000A00257500333A206D61785F7370652B\r
-:1007B00065643A20000A00257500323A20696E749B\r
-:1007C000657276616C286D73293A20000A002575E0\r
-:1007D00000313A2064656C6179282A31306D7329C3\r
-:1007E0003A20000A092D2056616C756573202D0A88\r
-:1007F000004D3E004D25643E20003F00736574208F\r
-:1008000064656661756C740A00433E200077686514\r
-:1008100072652064656C74613A20637572736F72DF\r
-:100820003D25642C20776865656C3D25640A536519\r
-:100830006520687474703A2F2F656E2E77696B6926\r
-:1008400070656469612E6F72672F77696B692F4DD0\r
-:100850006F7573655F6B6579730A000A092D204D0A\r
-:100860006F7573656B6579202D0A4553432F713A77\r
-:1008700009717569740A313A0964656C6179282ACD\r
-:1008800031306D73290A323A09696E746572766186\r
-:100890006C286D73290A333A096D61785F7370654E\r
-:1008A00065640A343A0974696D655F746F5F6D61E0\r
-:1008B000780A353A09776865656C5F6D61785F73B2\r
-:1008C000706565640A363A09776865656C5F7469B6\r
-:1008D0006D655F746F5F6D61780A0A703A097072B6\r
-:1008E000696E742076616C7565730A643A09736584\r
-:1008F000742064656661756C74730A75703A092BAF\r
-:10090000310A646F776E3A092D310A706775703A53\r
-:10091000092B31300A7067646F776E3A092D3130D8\r
-:100920000A0A7370656564203D2064656C746120FB\r
-:100930002A206D61785F7370656564202A202872B3\r
-:100940006570656174202F2074696D655F746F5FD9\r
-:100950006D6178290A003F004D3E2000433E200093\r
-:100960004C25640A000A092D20436F6E736F6C6575\r
-:10097000202D0A4553432F713A09717569740A6D28\r
-:100980003A096D6F7573656B65790A000A092D2048\r
-:100990004D61676963202D0A643A09646562756771\r
-:1009A0000A783A096465627567206D6174726978C6\r
-:1009B0000A6B3A096465627567206B6579626F61DD\r
-:1009C00072640A6D3A096465627567206D6F7573AC\r
-:1009D000650A763A0976657273696F6E0A733A0929\r
-:1009E0007374617475730A633A09636F6E736F6C25\r
-:1009F00065206D6F64650A302D343A096C61796544\r
-:100A000072302D34284631302D4634290A50617514\r
-:100A1000733A09626F6F746C6F616465720A653A4C\r
-:100A200009656570726F6D0A6E3A094E4B524F0A36\r
-:100A30007A3A09736C656570204C4544207465737F\r
-:100A4000740A000A002575002E6E6B726F3A200042\r
-:100A50000A002575002E737761705F6261636B73A6\r
-:100A60006C6173685F6261636B73706163653A2088\r
-:100A7000000A002575002E737761705F67726176DA\r
-:100A8000655F6573633A20000A002575002E6E6F5E\r
-:100A90005F6775693A20000A002575002E7377613B\r
-:100AA000705F72616C745F726775693A20000A004A\r
-:100AB0002575002E737761705F6C616C745F6C6775\r
-:100AC00075693A20000A002575002E636170736C09\r
-:100AD0006F636B5F746F5F636F6E74726F6C3A20DD\r
-:100AE000000A002575002E737761705F636F6E7466\r
-:100AF000726F6C5F636170736C6F636B3A20000A96\r
-:100B00000025303258006B65796D61705F636F6EE0\r
-:100B10006669672E7261773A20000A002575002EFB\r
-:100B20006D6F7573653A20000A002575002E6B65A0\r
-:100B300079626F6172643A20000A002575002E6D9B\r
-:100B400061747269783A20000A002575002E656E7E\r
-:100B500061626C653A20000A0025303258006465F5\r
-:100B60006275675F636F6E6669672E7261773A20A0\r
-:100B7000000A0025750064656661756C745F6C61C0\r
-:100B80007965723A20003F004E4B524F3A206F6613\r
-:100B9000660A004E4B524F3A206F6E0A0074696D20\r
-:100BA00065725F636F756E743A202530346C580A35\r
-:100BB000006B6579626F6172645F6E6B726F3A2071\r
-:100BC00025580A006B6579626F6172645F69646CB5\r
-:100BD000653A2025580A006B6579626F6172645F1F\r
-:100BE00070726F746F636F6C3A2025580A00686FDB\r
-:100BF00073745F6B6579626F6172645F6C65647357\r
-:100C000028293A2025580A000A092D2053746174B6\r
-:100C10007573202D0A004743433A20342E382E3274\r
-:100C2000204156522D4C4942433A20312E382E3025\r
-:100C3000204156525F415243483A20617672350A4C\r
-:100C4000004F5054494F4E533A204C554641204294\r
-:100C50004F4F544D41474943204D4F5553454B4508\r
-:100C6000592045585452414B455920434F4E534FFC\r
-:100C70004C4520434F4D4D414E44204E4B524F204A\r
-:100C80003531320A004255494C443A2035653337F4\r
-:100C90003663622D6469727479202832323A3239AF\r
-:100CA0003A3538204A616E203132203230313629CF\r
-:100CB0000A005649443A2030784645454428457252\r
-:100CC000676F446F7820455A29205049443A2030B4\r
-:100CD0007831333037284572676F446F7820455A32\r
-:100CE00029205645523A203078303030310A0044BD\r
-:100CF0004553433A20742E6D2E6B2E206B6579621E\r
-:100D00006F617264206669726D7761726520666FCB\r
-:100D100072204572676F646F780A000A092D2056A9\r
-:100D2000657273696F6E202D0A000A6D6F757365A9\r
-:100D30003A206F66660A000A6D6F7573653A206F18\r
-:100D40006E0A000A6B6579626F6172643A206F66A1\r
-:100D5000660A000A6B6579626F6172643A206F6E91\r
-:100D60000A000A6D61747269783A206F66660A003B\r
-:100D70000A6D61747269783A206F6E0A000A6465C0\r
-:100D80006275673A206F6E0A000A64656275673A99\r
-:100D9000206F66660A000A0A626F6F746C6F616486\r
-:100DA00065722E2E2E2000433E20006565636F6E17\r
-:100DB0006669673A0A00536C656570204C454420AB\r
-:100DC000746573740A000000000000000000000059\r
-:100DD00000010204060A0F17202C3A4A5D71879D14\r
-:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113\r
-:100DF0005D4A3A2C20170F0A060402010000000089\r
-:100E000000000000000011241FBECFEFDAE0DEBFBB\r
-:100E1000CDBF04B603FE24C08091F9019091FA0180\r
-:100E2000A091FB01B091FC018730904BA740B04BE3\r
-:100E3000B9F41092F9011092FA011092FB0110928C\r
-:100E4000FC0114BE84B7877F84BF88E10FB6F89495\r
-:100E500080936000109260000FBEE0E0FFE3099510\r
-:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4\r
-:100E7000AA33B107D9F711E0AAE3B1E001C01D928E\r
-:100E8000A93FB107E1F70E94980F0C94D42D0C9460\r
-:100E90000000FF93EF93E0913A01F0913B0130970E\r
-:100EA00009F00995EF91FF910895FC01859180303B\r
-:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC\r
-:100EC0000CC0419597FF09C0EDE260957095809543\r
-:100ED0009095611D711D811D911D27FF02C02195F7\r
-:100EE00030E350E2AA27660F771F881F991FAA1FB9\r
-:100EF000A41710F0A41B63955A95A9F7AA3008F01F\r
-:100F0000A95FA05DAF93F39561157105810591050A\r
-:100F100041F7ED3211F4EF93F395F21718F43F9384\r
-:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D\r
-:100F3000F9918591803021F0853219F0AADFF9CF3F\r
-:100F4000089520E0E89455915532C1F3503311F4DF\r
-:100F5000689455915A3348F4505390F3220F022E5F\r
-:100F6000220F220F200D250FF4CF0EF42195899129\r
-:100F70009991533619F3533729F1533559F1BC017F\r
-:100F800088279927E8945C3621F48991999168948F\r
-:100F90005591543639F446EF7EF077FF0DC08FEF50\r
-:100FA0009FEF0AC055374AE039F0583540E121F04B\r
-:100FB000523642E009F00895FF93EF937DDFEF9101\r
-:100FC000FF91B7CFFF93EF93FC0181918030B9F38C\r
-:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319\r
-:100FE000CDB7DEB72596A3DFCF91DF9108956111CC\r
-:100FF0000BC0FC018281882321F085EE0E946616D9\r
-:1010000003C085EE0E942E1780E090E008950895B9\r
-:101010006091BC017091BD018091BE019091BF01B2\r
-:101020000E94132156985E9825982D9826982E9800\r
-:1010300027982F98813019F0823021F00895259A51\r
-:101040002D9A0895269A2E9A089588E098E0892B83\r
-:1010500011F00E94080880E090E0089556985E988C\r
-:1010600025982D9826982E9827982F988FEF90E006\r
-:10107000909389008093880090938B0080938A00DE\r
-:1010800090938D0080938C00259A2D9A2FEF80E706\r
-:1010900092E0215080409040E1F700C00000269A85\r
-:1010A0002E9A2FEF80E792E0215080409040E1F7A8\r
-:1010B00000C00000279A2F9A2FEF80E792E021507E\r
-:1010C00080409040E1F700C0000025982D982FEF58\r
-:1010D00080E792E0215080409040E1F700C000009E\r
-:1010E00026982E982FEF80E792E021508040904084\r
-:1010F000E1F700C0000027982F9856985E98259831\r
-:101100002D9826982E9827982F98089589EA8093ED\r
-:10111000800089E08093810024982C983F988AB1C0\r
-:101120008F748AB96E98479A8BB1806B8BB9769A17\r
-:101130000E942E0887E098E0892B11F00E94070892\r
-:1011400080E090E0089580E28093000180913C016E\r
-:1011500081110EC00E94F20881E080933C012FEFC4\r
-:1011600083ED90E3215080409040E1F700C0000003\r
-:1011700080E40E94F8088093000181112EC00E9433\r
-:10118000220980930001811128C00E9422098093C6\r
-:101190000001811122C08FE30E9422098093000187\r
-:1011A00081111BC00E941A0980E40E94F8088093F4\r
-:1011B0000001811112C08CE00E942209809300017D\r
-:1011C00081110BC00E94220980930001811105C08A\r
-:1011D0008FE30E942209809300010E941A098091E6\r
-:1011E000000108951092B9008AE08093B800089534\r
-:1011F00094EA9093BC009091BC0097FFFCCF909133\r
-:10120000B900987F983021F0903111F081E0089575\r
-:101210008093BB0084E88093BC008091BC0087FF72\r
-:10122000FCCF8091B900887F883111F0803471F74C\r
-:1012300080E0089584E98093BC008091BC0084FD27\r
-:10124000FCCF08958093BB0084E88093BC0080911C\r
-:10125000BC0087FFFCCF9091B900987F81E0983265\r
-:1012600009F480E0089584E88093BC008091BC007C\r
-:1012700087FFFCCF8091BB00089580910001811110\r
-:1012800015C080E40E94F8088093000181110CC011\r
-:1012900082E10E94220980930001811105C08FEF35\r
-:1012A0000E942209809300010E941A0984B1807F64\r
-:1012B00084B985B1807F85B98AB1837F8AB98BB1C2\r
-:1012C000837F8BB93E98469808950E94A308809327\r
-:1012D00000010E943D0980B38C7080BB81B3836F95\r
-:1012E00081BBECE4F1E0AEE3B1E011921D9281E04C\r
-:1012F000EA35F807D1F786E898E0892B11F00C94CD\r
-:10130000860808959F92AF92BF92CF92DF92EF929C\r
-:10131000FF920F931F93CF93DF9380910001882357\r
-:10132000E1F080913D018F5F80933D01811115C0F7\r
-:1013300082E493E00E9455070E94A3088093000175\r
-:10134000882329F088E293E00E94550706C084E1D3\r
-:1013500093E00E9455070E942E080EE311E0C0E0C2\r
-:10136000D0E0BB24B39482E0A82ECC24C394D12C2B\r
-:1013700025E0E22E23E0F22EC73000F58091000137\r
-:10138000811162C080E40E94F808809300018111FD\r
-:1013900012C082E10E9422098093000181110BC0DA\r
-:1013A000C6010C2E01C0880F0A94EAF780950E94AE\r
-:1013B0002209809300010E941A0946C0CA30A1F098\r
-:1013C00028F4C83059F0C93061F005C0CC3089F03C\r
-:1013D00070F0CD3089F0209A289810C0219A299871\r
-:1013E0000DC0229A2A980AC0239A2B9807C0529AB5\r
-:1013F00001C0539A5B9802C03E9A4698E0EAEA958B\r
-:10140000F1F78FB1799985C092E081708B25892B96\r
-:101410007C9B02C090E001C094E0892B7D9B02C0C0\r
-:1014200090E001C098E0892B7E9B02C090E001C053\r
-:1014300090E1892B9FB19095991F9927991F9295BB\r
-:10144000990F907E892B10C080910001811176C088\r
-:1014500080E40E94F80880930001882309F45BC0AF\r
-:10146000912C0E941A09892DF8019081981739F161\r
-:10147000808380910101882301F18091D70180FF51\r
-:1014800004C08AE093E00E9455078091D70180FF55\r
-:101490000CC0809101011F928F93FF92EF920E94E6\r
-:1014A000EE070F900F900F900F908091D70180FF63\r
-:1014B00004C083E093E00E945507A09201010E94BE\r
-:1014C0003D0921960F5F1F4FCE30D10509F054CF53\r
-:1014D000809101018823B1F081508093010188231C\r
-:1014E00039F08FE99FE00197F1F700C000000AC0D2\r
-:1014F000ACE4B1E0EEE3F1E081918D9391E0EC3466\r
-:10150000F907D1F785E298E0892BD1F00E942508F0\r
-:1015100017C090E07ACF83E10E94220980930001F6\r
-:1015200081119ECF81E40E94F8088093000181110F\r
-:1015300097CF0E943309982E909493CF80E094CF58\r
-:1015400081E0DF91CF911F910F91FF90EF90DF909D\r
-:10155000CF90BF90AF909F900895E82FF0E0E45BAC\r
-:10156000FE4F80810895CF92DF92EF92FF920F930A\r
-:101570001F93CF93DF938CEE92E00E9455073CE4DB\r
-:10158000E32E31E0F32EC0E0D0E047EEC42E42E07F\r
-:10159000D42E0EED12E0DF93CF93DF92CF920E9414\r
-:1015A000EE0784EE92E00E945507F70181917F01DA\r
-:1015B00090E00E9478219F938F931F930F930E9436\r
-:1015C000EE078CED92E00E94550721968DB79EB7ED\r
-:1015D00008960FB6F8949EBF0FBE8DBFCE30D105D2\r
-:1015E000D1F6DF91CF911F910F91FF90EF90DF9097\r
-:1015F000CF9008958B3B910578F4883A910540F59A\r
-:10160000853A9105D0F48430910508F0B1C081305D\r
-:10161000910509F4ADC06BC0803E910508F467C028\r
-:10162000883E910508F4A4C09C01205F3109203157\r
-:10163000310508F05CC090650895853A910509F47C\r
-:1016400059C0863A910509F458C083E890E408959A\r
-:10165000883A910509F454C0893A910509F453C0B8\r
-:101660008A3A910509F452C08B3A910509F451C0A8\r
-:101670008C3A910509F450C08D3A910509F44FC098\r
-:10168000803B910509F44EC08E3A910509F44DC096\r
-:101690008F3A910509F44CC0813B910509F44BC088\r
-:1016A000823B910509F44AC0833B910509F449C086\r
-:1016B000843B910509F448C0853B910509F447C076\r
-:1016C000863B910509F446C0873B910509F445C066\r
-:1016D000883B910509F444C0893B910509F443C056\r
-:1016E0008A3B910509F042C08AE296E4089580E0C1\r
-:1016F00090E0089581E890E4089582E890E40895E8\r
-:1017000082EE94E4089589EE94E408958AEE94E4D8\r
-:10171000089585EB94E4089586EB94E4089587EBAF\r
-:1017200094E408958CEC94E408958DEC94E4089589\r
-:1017300083E895E408958AE895E4089582E995E4BC\r
-:10174000089584E995E4089581E296E4089583E29A\r
-:1017500096E4089584E296E4089585E296E4089577\r
-:1017600086E296E4089587E296E4089580E094E4A2\r
-:101770000895089596E0799FF001112494E5899FDA\r
-:10178000E00DF11D1124E60FF11DEE0FFF1FEC51CE\r
-:10179000FF4F859194910895880F991F805A90402A\r
-:1017A000FC01859194910895880F991F80529F4F55\r
-:1017B000FC0185919491089526E0729FF001112417\r
-:1017C00044E5849FE00DF11D1124E60FF11DEE0F9D\r
-:1017D000FF1FEC51FF4F25913491C9019A95811556\r
-:1017E0009F4110F4C9010895C9019052811590419B\r
-:1017F00028F4C9019F700E94D40B0895C901905329\r
-:101800008115904120F4C9019927906C0895211504\r
-:1018100080E5380769F40E94A11A9FEF24E34CE0A9\r
-:10182000915020404040E1F700C000000C94342269\r
-:10183000213080E5380751F48CE593E00E9455078C\r
-:101840008091D70181608093D7010895C901905597\r
-:101850008115904108F050C0832F99278F709927E8\r
-:1018600081309105D9F4A9014370552702C0880F32\r
-:10187000991F4A95E2F79C68A90164E0440F551F3F\r
-:101880006A95E1F744275370842B952B73E0220F60\r
-:10189000331F7A95E1F7207633271DC082309105FA\r
-:1018A00029F4922F8827816F906A089583309105DB\r
-:1018B000A9F4A9014370552781E090E002C0880F88\r
-:1018C000991F4A95E2F79C6843E0220F331F4A951F\r
-:1018D000E1F7207E3770822B932B08950497F1F463\r
-:1018E000A9014370552781E090E002C0880F991F3D\r
-:1018F0004A95E2F79A68E8CFC9019057811590415F\r
-:1019000020F4C9019F7090620895C9019058811513\r
-:10191000904120F4C9019F70906A0895203E3105DE\r
-:10192000E0F4203C310558F52133310509F470C04D\r
-:1019300048F42932310509F464C02A32310509F42A\r
-:101940006EC074C029333105F1F022383105D9F069\r
-:101950002533310509F44EC069C0233E310589F1B4\r
-:1019600038F4203E3105C1F0223E3105E1F05EC081\r
-:10197000263E310569F1273E3105A9F157C0C9015D\r
-:101980000E94CC0B08958091EA0180FD02C081FF86\r
-:101990004DC080EE90E04BC08091EA0180FFF9CF0E\r
-:1019A00089E390E044C08091EA0182FF0EC08091FB\r
-:1019B000EA0184FF03C080E090E039C083EE90E04C\r
-:1019C00036C08091EA0182FFF2CF82EE90E02FC014\r
-:1019D0008091EA0183FF0BC08091EA0184FDEBCF87\r
-:1019E00087EE90E024C08091EA0183FFF5CF86EE78\r
-:1019F00090E01DC08091EA0185FF07C089E290E078\r
-:101A000016C08091EA0185FFF9CF85E390E00FC011\r
-:101A10008091EA0186FF07C08AE290E008C08091C9\r
-:101A2000EA0186FFF9CF81E390E001C0C9010E947D\r
-:101A3000FA0A0895089580916D0108959FB7F8946A\r
-:101A400010925C019FBF9091F001943009F058C052\r
-:101A50009091E9009F702091EC0020FF02C020E8E7\r
-:101A600001C020E0292B94E09093E9009091EB00D5\r
-:101A700090FF43C09091EE0097FF3FC090915A01B4\r
-:101A8000992321F09091E80095FF37C010925A01F8\r
-:101A900096E03091E80035FD15C03091F00134300A\r
-:101AA00061F53091EB0035FD28C0915021F481E0C3\r
-:101AB00080935A0122C0EFE9FFE03197F1F700C0AF\r
-:101AC0000000E7CF8093F1008091E80085FD0AC017\r
-:101AD0008091E80080FFFCCF8091E8008E778093B2\r
-:101AE000E80006C08FB7F89491E090935C018FBF37\r
-:101AF0002F702093E90080E008952F702093E90073\r
-:101B00008FEF0895CF93DF9300D01F92CDB7DEB74C\r
-:101B10002091F001243019F523E029839B838A83E7\r
-:101B20002093E9008FEF9091E800815095FD06C069\r
-:101B300095ED9A95F1F700008111F5CF8091E800BD\r
-:101B400085FF0DC040E050E063E070E0CE010196FB\r
-:101B50000E9451108091E8008E778093E8000F90EA\r
-:101B60000F900F90DF91CF910895CF93DF9300D026\r
-:101B70001F92CDB7DEB72091F001243021F522E08D\r
-:101B800029839B838A8383E08093E9008FEF909180\r
-:101B9000E800815095FD06C095ED9A95F1F700009B\r
-:101BA0008111F5CF8091E80085FF0DC040E050E045\r
-:101BB00063E070E0CE0101960E9451108091E80030\r
-:101BC0008E778093E8000F900F900F90DF91CF9168\r
-:101BD00008952091F0012430F1F422E02093E900EF\r
-:101BE0002FEF3091E800215035FD06C035ED3A95D4\r
-:101BF000F1F700002111F5CF2091E80025FF0BC07F\r
-:101C000040E050E065E070E00E9451108091E800F3\r
-:101C10008E778093E8000895CF93DF93EC01809155\r
-:101C2000F001843009F047C080910C018823E1F075\r
-:101C300080910D018823C1F085E08093E9008FEF4A\r
-:101C40009091E800815095FD06C095E19A95F1F7D5\r
-:101C500000008111F5CF8091E80085FF2CC040E0A5\r
-:101C600050E060E170E017C081E08093E9008FEF01\r
-:101C70009091E800815095FD06C095ED9A95F1F799\r
-:101C800000008111F5CF8091E80085FF14C040E08D\r
-:101C900050E068E070E0CE010E9451108091E800B1\r
-:101CA0008E778093E80080E1FE01ADE5B1E0019020\r
-:101CB0000D928A95E1F7DF91CF91089583E993E042\r
-:101CC0000E9455078091EF01811109C00E94E31124\r
-:101CD0000E9440128091E20084608093E2000895A7\r
-:101CE0008FE893E00E9455071092EF0108958BE86A\r
-:101CF00093E00C94550787E893E00E9455070C94F5\r
-:101D0000F52B83E893E00E9455070E94CF210E94A3\r
-:101D1000FB2B0E94DC140C941A0D80915B018F5FE9\r
-:101D200080935B0162E30E94692D911135C010928E\r
-:101D30005B0180915C01882379F18091F00184300E\r
-:101D400049F58091E9008F709091EC0090FF02C0FE\r
-:101D500090E801C090E0982B84E08093E9008091A6\r
-:101D6000EB0080FF14C08091EE0087FF10C08091CF\r
-:101D7000E80085FF03C01092F100F9CF8091E800E0\r
-:101D800080FF05C08091E8008E778093E8009F7007\r
-:101D90009093E90010925C01089542E061EC81E0CB\r
-:101DA0000E945D1142E061EC82E00E945D1142E020\r
-:101DB00061EC83E00E945D1142E261EC84E00E94EC\r
-:101DC0005D1142E161EC85E00C945D118091F201BE\r
-:101DD000833009F455C030F4813071F0823009F459\r
-:101DE0008EC008958A3009F47AC08B3009F460C03F\r
-:101DF000893009F09CC020C08091F101813A09F03E\r
-:101E000096C08091E800877F8093E8008091F5017B\r
-:101E10009091F601892B21F060E080E090E003C012\r
-:101E200060E18DE591E070E00E949A108091E800F9\r
-:101E30008B778093E80008958091F101813209F059\r
-:101E400076C08091F5019091F601009719F0049702\r
-:101E500009F06DC08091E800877F8093E800809151\r
-:101E6000E80082FD05C08091F0018111F8CF5FC0CC\r
-:101E70008091F10080936D018091E8008B7753C0D1\r
-:101E80008091F101813A09F052C08091F501909161\r
-:101E9000F601892B09F04BC08091E800877F809381\r
-:101EA000E8008091E80080FFFCCF80910C0136C0F3\r
-:101EB0008091F1018132D9F58091F5019091F6017F\r
-:101EC000892BA9F58091E800877F8093E8000E9424\r
-:101ED00092118091F30180930C010C94A11A8091CE\r
-:101EE000F101813221F58091E800877F8093E8003D\r
-:101EF0000E9492118091F40180936E010895809167\r
-:101F0000F101813AA1F48091E800877F8093E80095\r
-:101F10008091E80080FFFCCF80916E018093F100FA\r
-:101F20008091E8008E778093E8000C9492110895D8\r
-:101F300084B7877F84BF88E10FB6F89480936000F0\r
-:101F4000109260000FBE90E080E80FB6F894809386\r
-:101F50006100909361000FBE0E9465150E94E3111D\r
-:101F60000E9440128091E20084608093E2008EE142\r
-:101F70009DE00E940E2178940E94BA140E94671579\r
-:101F800082E091E00E94D7140E94E32B82E793E065\r
-:101F90000E9455078091F001853089F48EE693E028\r
-:101FA0000E9455070E9492218091EE01882391F3AF\r
-:101FB0000E94BA21882371F30E943B10EBCF0E944C\r
-:101FC0009515E8CF292F332723303105A9F06CF47C\r
-:101FD0002130310509F442C02230310509F043C0F7\r
-:101FE0008DE890E02BEC33E042C021323105C9F09E\r
-:101FF0002232310519F137C099278130910541F01E\r
-:102000008230910541F0892B71F5E7ECF3E005C0D2\r
-:10201000EFEAF3E002C0E7E9F3E0849190E09F018A\r
-:1020200026C0653000F5E62FF0E0EE0FFF1FEB5DF8\r
-:10203000FE4F2081318189E090E019C0653098F42D\r
-:10204000E62FF0E0DF01AA0FBB1FA55EBE4F2D916A\r
-:102050003C91EA5EFE4F808190E009C082E190E011\r
-:1020600028E534E004C080E090E020E030E0FA01B0\r
-:1020700031832083089580E189BD82E189BD09B45F\r
-:1020800000FEFDCF8091D8008F7D8093D800809195\r
-:10209000E00082608093E0008091E00081FDFCCF51\r
-:1020A0000895CF92DF92EF92FF920F931F93CF93F9\r
-:1020B000DF937C018B01EA010E94B311811131C0D1\r
-:1020C000209731F088819981081B190BE80EF91EC1\r
-:1020D000C12CD12C0115110519F18091E80085FD65\r
-:1020E00014C08091E8008E778093E800209741F03B\r
-:1020F000888199818C0D9D1D9983888385E011C00D\r
-:102100000E94B311882331F30CC0F70181917F0144\r
-:102110008093F10001501109FFEFCF1ADF0ADACFE7\r
-:1021200080E0DF91CF911F910F91FF90EF90DF90B2\r
-:10213000CF9008952091F7013091F80126173707C5\r
-:1021400048F06115710539F42091E8002E7720934D\r
-:10215000E80001C0B901FC0120E061157105B9F189\r
-:102160008091F001882309F440C0853009F43FC014\r
-:102170008091E80083FD3DC08091E80082FF06C0A9\r
-:102180008091E80082FF26C080E008958091E800F9\r
-:1021900080FFE3CF2091F3008091F20090E0922B3A\r
-:1021A0006115710551F08830910538F42191209323\r
-:1021B000F100615071090196F3CF21E0089709F011\r
-:1021C00020E08091E8008E778093E800C6CF21114F\r
-:1021D000C7CFD6CF8091F001882339F0853039F010\r
-:1021E0008091E80083FFCCCF04C082E0089583E0B3\r
-:1021F000089581E008952091F7013091F8012617A4\r
-:10220000370748F06115710539F42091E8002E7701\r
-:102210002093E80001C0B901FC0120E061157105BF\r
-:10222000C1F18091F001882309F441C0853009F49F\r
-:1022300040C08091E80083FD3EC08091E80082FFAD\r
-:1022400006C08091E80082FF27C080E00895809159\r
-:10225000E80080FFE3CF2091F3008091F20090E04E\r
-:10226000922B6115710559F08830910540F4249145\r
-:102270002093F1003196615071090196F2CF21E06F\r
-:10228000089709F020E08091E8008E778093E800BD\r
-:10229000C5CF2111C6CFD5CF8091F001882339F069\r
-:1022A000853039F08091E80083FFCBCF04C082E015\r
-:1022B000089583E0089581E00895982F973058F5A8\r
-:1022C0009093E900981739F07091EC002091ED009F\r
-:1022D0005091F00003C0242F762F50E021FF19C049\r
-:1022E0003091EB003E7F3093EB003091ED003D7F6D\r
-:1022F0003093ED003091EB0031603093EB00709340\r
-:10230000EC002093ED005093F0002091EE0027FFA9\r
-:1023100007C09F5FD3CF8F708093E90081E008955D\r
-:1023200080E008958091F10187FD05C08091E8006B\r
-:1023300080FF0EC012C08091E80082FD05C0809130\r
-:10234000F0018111F8CF08958091E8008B7708C0E3\r
-:102350008091F0018111EACF08958091E8008E7795\r
-:102360008093E80008958091E4009091E50045E6AF\r
-:102370002091EC0020FF21C02091E80020FD21C029\r
-:102380002091F001222389F0253089F02091EB0083\r
-:1023900025FD0FC02091E4003091E5002817390792\r
-:1023A00039F3415041F0C901E3CF82E0089583E061\r
-:1023B000089581E0089584E008952091E80022FFC7\r
-:1023C000DFCF80E008950E9451120E945912E0EE82\r
-:1023D000F0E0808181608083E8EDF0E080818F779C\r
-:1023E000808319BCA7EDB0E08C918E7F8C938081A7\r
-:1023F0008F7E80831092EF0108950F931F93CF93E8\r
-:10240000DF930E9451120E945912C8EDD0E08881DA\r
-:102410008F77888388818068888388818F7D88838F\r
-:1024200019BC1092F0011092EC011092EE01109282\r
-:10243000ED0100EE10E0F80180818B7F80838881C0\r
-:102440008160888342E060E080E00E945D11E1EEFF\r
-:10245000F0E080818E7F8083E2EEF0E08081816019\r
-:102460008083808188608083F80180818E7F808373\r
-:10247000888180618883DF91CF911F910F910895AA\r
-:10248000E8EDF0E080818F7E8083E7EDF0E08081F1\r
-:102490008160808384E082BF81E08093EF010C94AF\r
-:1024A000FD11E8EDF0E080818E7F80831092E200E4\r
-:1024B00008951092DA001092E10008951F920F9291\r
-:1024C0000FB60F9211242F933F934F935F936F9307\r
-:1024D0007F938F939F93AF93BF93EF93FF938091DD\r
-:1024E000E10082FF0BC08091E20082FF07C0809173\r
-:1024F000E1008B7F8093E1000E948D0E8091DA00D5\r
-:1025000080FF1FC08091D80080FF1BC08091DA003F\r
-:102510008E7F8093DA008091D90080FF0DC080E12A\r
-:1025200089BD82E189BD09B400FEFDCF81E08093C1\r
-:10253000F0010E945E0E05C019BC1092F0010E94CD\r
-:10254000700E8091E10080FF19C08091E20080FF51\r
-:1025500015C08091E2008E7F8093E2008091E200BE\r
-:1025600080618093E2008091D80080628093D800DF\r
-:1025700019BC85E08093F0010E947B0E8091E10000\r
-:1025800084FF30C08091E20084FF2CC080E189BDCF\r
-:1025900082E189BD09B400FEFDCF8091D8008F7D16\r
-:1025A0008093D8008091E1008F7E8093E10080913C\r
-:1025B000E2008F7E8093E2008091E2008160809350\r
-:1025C000E2008091EC01882311F084E007C0809143\r
-:1025D000E30087FF02C083E001C081E08093F00147\r
-:1025E0000E94810E8091E10083FF29C08091E2006A\r
-:1025F00083FF25C08091E100877F8093E10082E026\r
-:102600008093F0011092EC018091E1008E7F809325\r
-:10261000E1008091E2008E7F8093E2008091E200F1\r
-:1026200080618093E20042E060E080E00E945D1102\r
-:102630008091F00088608093F0000E94770EFF91F7\r
-:10264000EF91BF91AF919F918F917F916F915F912A\r
-:102650004F913F912F910F900FBE0F901F901895A3\r
-:102660001F920F920FB60F9211242F933F934F9307\r
-:102670005F936F937F938F939F93AF93BF93CF930A\r
-:10268000EF93FF93C091E900CF708091EC0010921E\r
-:10269000E9008091F000877F8093F00078940E9499\r
-:1026A0006C131092E9008091F00088608093F00034\r
-:1026B000C093E900FF91EF91CF91BF91AF919F91AE\r
-:1026C0008F917F916F915F914F913F912F910F90DB\r
-:1026D0000FBE0F901F9018951F93CF93DF93CDB728\r
-:1026E000DEB7AA970FB6F894DEBF0FBECDBFE1EFFD\r
-:1026F000F1E08091F100819321E0E93FF207C9F711\r
-:102700000E94E60E8091E80083FF1CC12091F10138\r
-:102710003091F201832F90E08A30910508F012C1C8\r
-:10272000FC01EA5AFF4F0C94892D203881F02238A1\r
-:1027300009F008C18091F5018F708093E9008091C4\r
-:10274000EB0085FB882780F91092E90006C0809194\r
-:10275000ED019091EE01911182609091E800977FD8\r
-:102760009093E8008093F1001092F100C5C0822F91\r
-:102770008D7F09F0E7C0222319F0223061F0E2C01A\r
-:102780008091F301813009F0DDC0333009F080E041\r
-:102790008093EE0128C08091F301811124C0209123\r
-:1027A000F5012F7009F4CEC02093E9008091EB0071\r
-:1027B00080FF19C08091EB00333011F4806211C0AA\r
-:1027C00080618093EB0081E090E0022E01C0880FD1\r
-:1027D0000A94EAF78093EA001092EA008091EB00F5\r
-:1027E00088608093EB001092E9008091E800877F79\r
-:1027F00086C02111A7C01091F3011F778091E300DB\r
-:102800008078812B8093E3008091E800877F80931C\r
-:10281000E8000E9492118091E80080FFFCCF809137\r
-:10282000E30080688093E300112311F083E001C08E\r
-:1028300082E08093F00186C02058223008F082C0E8\r
-:102840008091F3019091F4018C3D23E0920779F59A\r
-:1028500083E08A838AE289834FB7F894DE01139676\r
-:1028600020E03EE051E2E32FF0E050935700E49186\r
-:1028700020FF03C0E295EF703F5FEF708E2F90E076\r
-:10288000EA3010F0C79601C0C0968D939D932F5FDC\r
-:10289000243149F74FBF8091E800877F8093E8009B\r
-:1028A0006AE270E0CE0101960E949A1014C0AE0157\r
-:1028B0004F5F5F4F6091F5010E94E20F009709F4AE\r
-:1028C00041C02091E800277F2093E800BC01898166\r
-:1028D0009A810E94FB108091E8008B778093E8003A\r
-:1028E00031C0203879F58091E800877F8093E80037\r
-:1028F0008091EC018093F1008091E8008E778093C5\r
-:10290000E8000E9492111EC021111CC09091F30199\r
-:102910009230C0F48091E800877F8093E800909324\r
-:10292000EC010E9492118091EC01811104C0809110\r
-:10293000E30087FF02C084E001C081E08093F001E2\r
-:102940000E94CD0E8091E80083FF0AC08091E800CC\r
-:10295000877F8093E8008091EB0080628093EB009A\r
-:10296000AA960FB6F894DEBF0FBECDBFDF91CF9110\r
-:102970001F910895CF938091F0018823B1F0809149\r
-:10298000E9008F709091EC0090FF02C090E801C0C8\r
-:1029900090E0C92FC82B1092E9008091E80083FDD8\r
-:1029A0000E946C13CF70C093E900CF91089590936B\r
-:1029B0007401809373010895E0917301F0917401A3\r
-:1029C000309721F00190F081E02D099480E0089586\r
-:1029D000FF920F931F93CF93DF938C01E0917301CC\r
-:1029E000F0917401309799F10280F381E02D0995FF\r
-:1029F0008091D70182FF2BC080FF04C08DE895E055\r
-:102A00000E945507E80180E1F82E07E815E0809163\r
-:102A1000D70180FF0BC088811F928F931F930F9364\r
-:102A20000E94EE070F900F900F900F90FA9421964E\r
-:102A3000F110EDCF8091D70180FF09C085E895E0C6\r
-:102A4000DF91CF911F910F91FF900C945507DF916B\r
-:102A5000CF911F910F91FF900895E0917301F09134\r
-:102A60007401309721F00480F581E02D09940895D8\r
-:102A700020917101309172018217930771F0909348\r
-:102A8000720180937101E0917301F09174013097AC\r
-:102A900021F00680F781E02D0994089520916F01BF\r
-:102AA000309170018217930771F0909370018093B9\r
-:102AB0006F01E0917301F0917401309721F000846F\r
-:102AC000F185E02D0994089508950C9464150E94F1\r
-:102AD000D1210E9465090C949722CF93C82F809131\r
-:102AE000D70182FF1EC080FF04C086EA95E00E94E5\r
-:102AF00055078091D70180FF0CC01F92CF9321EA28\r
-:102B000035E03F932F930E94EE070F900F900F90A8\r
-:102B10000F908091D70180FF04C08FE995E00E945B\r
-:102B200055078C2FCF910C941A0DCF92DF92EF9214\r
-:102B3000FF920F931F93CF93DF93CDB7DEB72B9701\r
-:102B40000FB6F894DEBF0FBECDBF0E94820936E7F4\r
-:102B5000E32E31E0F32E00E010E0C02E802F0E9423\r
-:102B6000AD0AF701D1907F01D826B1F40F5F1F4F56\r
-:102B70000E30110591F78FEF89838A831B820E94A3\r
-:102B8000DA218160782F9D838C8349815A816B8102\r
-:102B90008D810E94381641C09091D70191FF04C0E9\r
-:102BA0008B870E94B30A8B8520E030E04D2D50E0EA\r
-:102BB000922FBA01022E02C0759567950A94E2F72A\r
-:102BC00060FF25C02E83CF82EE24E394F12C02C057\r
-:102BD000EE0CFF1C9A95E2F790E08E219F2121E0F8\r
-:102BE000892B09F420E028870E94DA218160782F60\r
-:102BF0009A8789874E815F8168858A850E94381609\r
-:102C0000F801EA58FE4F80818E25808306C02F5F31\r
-:102C10003F4F2630310561F6A9CF0E94052610915D\r
-:102C200075010E94DC141817A1F00E94DC14809337\r
-:102C300075012B960FB6F894DEBF0FBECDBFDF91A6\r
-:102C4000CF911F910F91FF90EF90DF90CF900C9458\r
-:102C50006D152B960FB6F894DEBF0FBECDBFDF917A\r
-:102C6000CF911F910F91FF90EF90DF90CF9008953B\r
-:102C7000CF93DF93CDB7DEB72B970FB6F894DEBFB7\r
-:102C80000FBECDBF4F83588769877A878B87DE0158\r
-:102C9000119686E0FD0111928A95E9F785E0FE0123\r
-:102CA000379601900D928A95E1F749815A816B819F\r
-:102CB0007C818D819E810E946D1D2B960FB6F894AC\r
-:102CC000DEBF0FBECDBFDF91CF910895CF93C82F48\r
-:102CD000882309F4C1C0823859F40E94DC1481FDB4\r
-:102CE000BBC089E30E940C200E94E82089E30CC04D\r
-:102CF000833879F40E94DC1480FDAEC083E50E9425\r
-:102D00000C200E94E82083E50E945D20CF910C9466\r
-:102D1000E820843859F40E94DC1482FD9DC087E4C9\r
-:102D20000E940C200E94E82087E4EECF8CEF8C0FED\r
-:102D3000813A48F48C2F0E948E2A81118DC08C2FED\r
-:102D40000E940C20E3CF80E28C0F883048F4C770DB\r
-:102D500081E001C0880FCA95EAF70E94AF20D6CF64\r
-:102D60008BE58C0F833078F4C53A29F0C63A31F4FC\r
-:102D700082E890E005C081E890E002C083E890E03E\r
-:102D8000CF910C94381588E58C0F833108F064C01E\r
-:102D9000C83A39F1C93A41F1CA3A49F1CB3A51F14D\r
-:102DA000CC3A59F1CD3A61F1C03B69F1CE3A71F1BB\r
-:102DB000CF3A79F1C13B81F1C23B89F1C33B91F13B\r
-:102DC000C43B99F1C53BA1F1C63BA9F1C73BB1F1A9\r
-:102DD000C83BB9F1C93BC1F1CA3BC9F58AE292E0EF\r
-:102DE00038C082EE90E035C089EE90E032C08AEEC5\r
-:102DF00090E02FC085EB90E02CC086EB90E029C0DE\r
-:102E000087EB90E026C08CEC90E023C08DEC90E046\r
-:102E100020C083E891E01DC08AE891E01AC082E9F1\r
-:102E200091E017C084E991E014C081E292E011C002\r
-:102E300083E292E00EC084E292E00BC085E292E071\r
-:102E400008C086E292E005C087E292E002C080E01E\r
-:102E500090E0CF910C944E15CF910895882309F4FA\r
-:102E60004BC0823859F40E94DC1481FF45C089E3CD\r
-:102E70000E940C200E94E82089E30CC0833871F482\r
-:102E80000E94DC1480FF38C083E50E940C200E9461\r
-:102E9000E82083E50E945D200C94E820843859F4F2\r
-:102EA0000E94DC1482FF28C087E40E940C200E944C\r
-:102EB000E82087E4EFCF9CEF980F913A58F390E227\r
-:102EC000980F983050F4877091E001C0990F8A955F\r
-:102ED000EAF7892F0E94B520DFCF9BE5980F93304A\r
-:102EE00020F480E090E00C943815885A833120F467\r
-:102EF00080E090E00C944E150895882321F00E9404\r
-:102F0000AF200C94E8200895882321F00E94B5207A\r
-:102F10000C94E8200895CF92DF92EF92FF920F93E6\r
-:102F20001F93CF93DF93CDB7DEB728970FB6F894F2\r
-:102F3000DEBF0FBECDBF8C0185E0F801DE0111962A\r
-:102F400001900D928A95E1F7F80140813181F2807C\r
-:102F5000258122952F7083819481892B31F03F3F09\r
-:102F600031F481E04F3F19F403C081E001C080E0FB\r
-:102F700080FDC6C249833A8389819A812F830E944A\r
-:102F8000CA1F9E8388870E94C91F0E949C1E4E8173\r
-:102F9000E42FE295EF70F0E0E05AFF4F2F81688553\r
-:102FA0000C94892D842F807F142F1F70882311F09B\r
-:102FB0001295107FFF2059F0112309F456C2812F7A\r
-:102FC00068870E94BF200E94E82068854EC2862F35\r
-:102FD0000E942E17112309F493C2812F0E94C5204D\r
-:102FE00028960FB6F894DEBF0FBECDBFDF91CF910C\r
-:102FF0001F910F91FF90EF90DF90CF900C94E820FD\r
-:10300000342F307F842F8F70303211F08295807F83\r
-:10301000662319F0613019F12CC0FF20B1F0222392\r
-:1030200009F494C1213009F091C128960FB6F894A3\r
-:10303000DEBF0FBECDBFDF91CF911F910F91FF90EB\r
-:10304000EF90DF90CF900C94CF20222319F0213005\r
-:1030500009F456C28E830E94D2208E818AC1FF203D\r
-:1030600021F0263008F04CC271C1253008F048C26A\r
-:1030700080C1FF2021F0222309F468C1F6C1222378\r
-:1030800009F477C106C2242F26952695237030E0D7\r
-:103090002115310521F021303105C9F031C2FF2061\r
-:1030A00021F0862F942F937002C080E090E0289644\r
-:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149\r
-:1030C0000F91FF90EF90DF90CF900C943815FF2078\r
-:1030D00021F0862F942F937002C080E090E0289614\r
-:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119\r
-:1030F0000F91FF90EF90DF90CF900C944E15862F9C\r
-:10310000FF2019F00E948B2402C00E94F32428960D\r
-:103110000FB6F894DEBF0FBECDBFDF91CF911F91E8\r
-:103120000F91FF90EF90DF90CF900C947825842F33\r
-:10313000837009F076C0F110E3C1262F2295269501\r
-:103140002770220F220F862F8F70C82ED12CE12CD2\r
-:10315000F12C022E04C0CC0CDD1CEE1CFF1C0A94CA\r
-:10316000D2F764FF10C06FE070E080E090E004C030\r
-:10317000660F771F881F991F2A95D2F76095709563\r
-:103180008095909503C060E070E0CB01242F2695D8\r
-:1031900026952370422F50E042305105D1F0433044\r
-:1031A000510559F16C297D298E299F2941305105FE\r
-:1031B00041F128960FB6F894DEBF0FBECDBFDF9168\r
-:1031C000CF911F910F91FF90EF90DF90CF900C94D3\r
-:1031D000C11E6C297D298E299F2928960FB6F89447\r
-:1031E000DEBF0FBECDBFDF91CF911F910F91FF903A\r
-:1031F000EF90DF90CF900C94DB1E0E94C11EC701A0\r
-:10320000B60128960FB6F894DEBF0FBECDBFDF9192\r
-:10321000CF911F910F91FF90EF90DF90CF900C9482\r
-:10322000A71EFF2019F0842F817001C08695882386\r
-:1032300009F466C1262F229526952770220F220FAA\r
-:10324000862F8F70C82ED12CE12CF12C022E04C0B9\r
-:10325000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DE\r
-:103260006FE070E080E090E004C0660F771F881F79\r
-:10327000991F2A95D2F7609570958095909503C017\r
-:1032800060E070E0CB01242F269526952370422F15\r
-:1032900050E042305105D1F04330510559F16C29CD\r
-:1032A0007D298E299F294130510541F128960FB67D\r
-:1032B000F894DEBF0FBECDBFDF91CF911F910F916C\r
-:1032C000FF90EF90DF90CF900C94951F6C297D2993\r
-:1032D0008E299F2928960FB6F894DEBF0FBECDBF6A\r
-:1032E000DF91CF911F910F91FF90EF90DF90CF90E2\r
-:1032F0000C94AF1F0E94951FC701B60128960FB608\r
-:10330000F894DEBF0FBECDBFDF91CF911F910F911B\r
-:10331000FF90EF90DF90CF900C947B1F603FC9F13E\r
-:1033200018F4603E50F49CC0623F09F461C008F498\r
-:103330004BC0633F09F470C093C0162F1F70842FD9\r
-:103340008F71FF2099F00E94141F812F28960FB6CD\r
-:10335000F894DEBF0FBECDBFDF91CF911F910F91CB\r
-:10336000FF90EF90DF90CF900C947D170E94351F57\r
-:10337000812F28960FB6F894DEBF0FBECDBFDF9128\r
-:10338000CF911F910F91FF90EF90DF90CF900C9411\r
-:103390008417FF20A9F0253008F0B2C0842F8F7168\r
-:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148\r
-:1033B0001F910F91FF90EF90DF90CF900C945A1FC8\r
-:1033C000263008F09DC0EACFFF20A1F0842F8F7136\r
-:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118\r
-:1033E0001F910F91FF90EF90DF90CF900C94141FDE\r
-:1033F000FF2061F3842F8F7128960FB6F894DEBFFB\r
-:103400000FBECDBFDF91CF911F910F91FF90EF9035\r
-:10341000DF90CF900C94351FFF2091F0842F8F7197\r
-:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7\r
-:103430001F910F91FF90EF90DF90CF900C94FF1EA3\r
-:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7\r
-:103450001F910F91FF90EF90DF90CF900C94F51E8D\r
-:10346000FF20A1F0222309F4B1CF862F28960FB6B2\r
-:10347000F894DEBF0FBECDBFDF91CF911F910F91AA\r
-:10348000FF90EF90DF90CF900C946616222309F402\r
-:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2\r
-:1034A000DF91CF911F910F91FF90EF90DF90CF9020\r
-:1034B0000C942E174F70C8010E94F70728960FB67C\r
-:1034C000F894DEBF0FBECDBFDF91CF911F910F915A\r
-:1034D000FF90EF90DF90CF900C941A1E4F70C801B0\r
-:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107\r
-:1034F0001F910F91FF90EF90DF90CF900C94B90B3C\r
-:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6\r
-:103510001F910F91FF90EF90DF90CF9008950E9440\r
-:10352000CC200E94A1200E94E8200E94A6260E9492\r
-:10353000782580E090E00E94381580E090E00C94BF\r
-:103540004E150E94BC200C948F1A0E94CA1F292F6E\r
-:1035500022952F7030E02C3031054CF42A303105A3\r
-:103560006CF4225031092230310590F407C02C3020\r
-:10357000310551F02F30310539F00AC0803E10F08E\r
-:10358000803F31F481E0089593FB882780F9089506\r
-:1035900080E00895CF93DF9300D000D01F92CDB785\r
-:1035A000DEB70F900F900F900F900F90DF91CF919B\r
-:1035B0000895CF93DF9300D000D000D0CDB7DEB711\r
-:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128\r
-:1035D00008951F93CF93DF93C091840116E08091EB\r
-:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8\r
-:1035F0001124EA57FE4F4081518162817381848199\r
-:1036000095810E94D91A2196C770E9CFDF91CF9199\r
-:103610001F9108954091B6015091B7016091B80192\r
-:103620007091B9018091BA019091BB010C94D91AA3\r
-:10363000CF938091BB0182958F7009F05FC080911C\r
-:10364000B801882309F45AC020918401A091850112\r
-:103650006091B6017091B7018091B9019091BA0162\r
-:1036600031E06F3F09F030E0B32FC6E02A1709F4CC\r
-:1036700045C0009721F07F3F21F44B2F03C041E06C\r
-:1036800001C040E030E040FD35C0C29FF001C39F63\r
-:10369000F00D1124EA57FE4F418174132BC0408175\r
-:1036A000641328C04281411125C0438154814817C9\r
-:1036B000590710F441505109481B590B483C51051A\r
-:1036C000C8F48091BB018F7080618093BB0186E05C\r
-:1036D000829FF001839FF00D1124E557FE4F8081FA\r
-:1036E0008F708061808386EB91E00E948B17CF9171\r
-:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0\r
-:10370000CF92DF92EF92FF920F931F93CF93DF93AD\r
-:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50\r
-:103720008C0185E0F801DE011D9601900D928A95CD\r
-:10373000E1F7D8014C9111965C91119712966C911A\r
-:1037400012971396ED90FC9014977091B601E0914A\r
-:10375000B7012091B9013091BA012115310531F03D\r
-:10376000EF3F31F481E07F3F19F403C081E001C0F5\r
-:1037700080E0B82FB170CB2E80FD6CC1D090B80125\r
-:10378000DD2009F4F5C0F091BB01E216F30638F034\r
-:10379000C701821B930B883C910548F09BC0209584\r
-:1037A00030952E0D3F1D283C310508F093C08F2F1A\r
-:1037B000807F09F052C0E51314C0741312C0D62ED6\r
-:1037C00061110FC0FF70F061F093BB010E940A1BF2\r
-:1037D00086EB91E00E948B178091BB01F8018583F5\r
-:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5\r
-:1037F00003C081E001C080E080FD03C081E0862736\r
-:1038000001C080E0F82FF170FF2E80FF1CC0809176\r
-:1038100084012091850136E0821709F428C190E0E7\r
-:10382000389FF001399FF00D1124EA57FE4F718146\r
-:10383000571306C07081471303C07281671303C01A\r
-:1038400001968770E9CFD62E662309F436C18091A0\r
-:10385000BB0181608093BB0153C0E51308C07413A2\r
-:1038600006C0611104C0D8011596FC93AEC04D8707\r
-:103870005E878D859E856A8B0E94A51A6A8988233A\r
-:1038800029F1D62E662311F12091BB01822F82955A\r
-:103890008F7090E002970CF460C08091B601909117\r
-:1038A000B70198878F831986FB86EA862C87CE011D\r
-:1038B000079651C0E51731F14D875E878D859E854E\r
-:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4\r
-:1038D0008B17A4C08F2F807F69F77E2DF98AE88A25\r
-:1038E00089890E94CA1A86EB91E00E948B17E6EB49\r
-:1038F000F1E086E0DF011D928A95E9F70E940A1B3C\r
-:10390000D12CDBC07413D8CF6111D6CFD801159656\r
-:10391000FC93C8010E948B17E6EBF1E086E0DF0123\r
-:103920001D928A95E9F7C9C0D62E662379F22091B7\r
-:10393000BB01822F82958F7090E0029774F0809186\r
-:10394000B6019091B7019A8389831B82FD82EC8234\r
-:103950002E83CE0101960E948B1786E0F801A6EB1C\r
-:10396000B1E001900D928A95E1F70E94181B6FC09B\r
-:10397000E216F30628F0C701821B930B9C0104C0DA\r
-:10398000209530952E0D3F1D283C310508F052C082\r
-:10399000D62E662309F49ACFE5132CC074132AC0DF\r
-:1039A0008091BB0180FD1DC0982F92959F70C9F03A\r
-:1039B000D80115968C9315979F3039F09F5F92959B\r
-:1039C000907F8F70892B15968C93C8010E948B175E\r
-:1039D00086E0F801A6EBB1E001900D928A95E1F73F\r
-:1039E00036C086E0F801A6EBB1E001900D928A9511\r
-:1039F000E1F763C04D875E878D859E850E94A51A7D\r
-:103A0000882379F086E0F801A6EBB1E001900D92F1\r
-:103A10008A95E1F70E94181B0E940A1BDD24D394AB\r
-:103A20004CC08091BB0181608093BB01C8010E94A2\r
-:103A30008B1743C07E2DF98AE88A89890E94CA1AA9\r
-:103A4000E6EBF1E086E0DF011D928A95E9F70E943E\r
-:103A50000A1B33C0662309F439CF4D875E878D85F5\r
-:103A60009E850E94A51A882309F430CFCBCF4D87BD\r
-:103A70005E878D859E850E94CA1F292F22952F70F3\r
-:103A800030E0223031052CF49F7041F0811106C0E6\r
-:103A90000CC0243031052CF49F7049F4805E8830CE\r
-:103AA00020F0C8010E948B17CF2CDC2C06C0D80157\r
-:103AB00015969C91907F91F7F8CF8D2D62960FB659\r
-:103AC000F894DEBF0FBECDBFDF91CF911F910F9154\r
-:103AD000FF90EF90DF90CF9008951F93CF93DF93E7\r
-:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3\r
-:103AF0004F83588769877A878B879C87CE01079683\r
-:103B00000E94801B8823C1F02F8138858A859B8580\r
-:103B1000892B31F03F3F11F080E003C02F3FE1F7E8\r
-:103B200081E0811147C04F81588569857A858B85F1\r
-:103B30009C850E94D91A3EC086E0FE013796DE01C0\r
-:103B4000119601900D928A95E1F7FF81E8854A85EB\r
-:103B50005B854115510531F0EF3F31F481E0FF3FC6\r
-:103B600019F403C081E001C080E080FD23C02091F2\r
-:103B7000850130E0C9010196877099276091840121\r
-:103B800070E086179707F1F1F983EA835D834C8330\r
-:103B900096E0929FD001939FB00D1124AA57BE4F7B\r
-:103BA000FE01319601900D929A95E1F7809385017F\r
-:103BB0000E94E91A16E0809184019091850189178D\r
-:103BC00079F1189FC00111248A579E4F0E94801BD3\r
-:103BD000882331F1E09184011E9FF0011124EA57FE\r
-:103BE000FE4F4081518162817381848195810E9461\r
-:103BF000D91A8091840190E001968770992780936B\r
-:103C00008401D9CF0E94A11A1092850110928401DB\r
-:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75\r
-:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB\r
-:103C30001F910895EF92FF920F931F93CF93DF93FD\r
-:103C40009C01009709F471C0F12CEE24E394E90182\r
-:103C50002196F9018491843740F4843008F056C0ED\r
-:103C6000813081F0823021F160C0853709F449C08C\r
-:103C7000C0F19CE7980F903708F057C08F770E94EB\r
-:103C80002E1746C089010E5F1F4FFE01849190E2FE\r
-:103C9000980F983050F48770FE2D01C0FF0F8A9561\r
-:103CA000EAF78F2F0E94BF2015C00E94661614C02D\r
-:103CB00089010E5F1F4FFE01849190E2980F9830AA\r
-:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9\r
-:103CD0000E94C5200E94E820E8011AC00E942E1709\r
-:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903\r
-:103CF0009FE00197F1F700C00000C150F6CFE90145\r
-:103D000007C0FE01F490E901229602C00E946616E7\r
-:103D10008F2D882341F0EFE9FFE03197F1F700C0E4\r
-:103D200000008150F6CF9E0192CFDF91CF911F917D\r
-:103D30000F91FF90EF90089508956093C0017093E4\r
-:103D4000C1018093C2019093C3010C948F1A0F9309\r
-:103D50001F930091C0011091C1012091C2013091C7\r
-:103D6000C301062B172B282B392B0093C00110936E\r
-:103D7000C1012093C2013093C3011F910F910C9494\r
-:103D80008F1A0F931F930091C0011091C1012091D0\r
-:103D9000C2013091C301062317232823392300933E\r
-:103DA000C0011093C1012093C2013093C3011F9140\r
-:103DB0000F910C948F1A0F931F930091C0011091D3\r
-:103DC000C1012091C2013091C3010627172728277E\r
-:103DD00039270093C0011093C1012093C201309391\r
-:103DE000C3011F910F910C948F1A1092BC01109275\r
-:103DF000BD011092BE011092BF010C948F1A41E0D8\r
-:103E000050E060E070E004C0440F551F661F771F4C\r
-:103E10008A95D2F74093BC015093BD016093BE01D7\r
-:103E20007093BF010C948F1A41E050E060E070E0A5\r
-:103E300004C0440F551F661F771F8A95D2F78091E3\r
-:103E4000BC019091BD01A091BE01B091BF01842B36\r
-:103E5000952BA62BB72B8093BC019093BD01A0930B\r
-:103E6000BE01B093BF010C948F1A41E050E060E0B6\r
-:103E700070E004C0440F551F661F771F8A95D2F764\r
-:103E800040955095609570958091BC019091BD01D1\r
-:103E9000A091BE01B091BF0184239523A623B7232F\r
-:103EA0008093BC019093BD01A093BE01B093BF016C\r
-:103EB0000C948F1A41E050E060E070E004C0440FC1\r
-:103EC000551F661F771F8A95D2F78091BC0190918C\r
-:103ED000BD01A091BE01B091BF0184279527A627FF\r
-:103EE000B7278093BC019093BD01A093BE01B0930E\r
-:103EF000BF010C948F1A0F931F930091BC01109176\r
-:103F0000BD012091BE013091BF01062B172B282B3C\r
-:103F1000392B0093BC011093BD012093BE01309357\r
-:103F2000BF011F910F910C948F1A0F931F93009153\r
-:103F3000BC011091BD012091BE013091BF0106234B\r
-:103F40001723282339230093BC011093BD0120932C\r
-:103F5000BE013093BF011F910F910C948F1A0F93E4\r
-:103F60001F930091BC011091BD012091BE013091C1\r
-:103F7000BF0106271727282739270093BC01109374\r
-:103F8000BD012093BE013093BF011F910F910C948E\r
-:103F90008F1A0895CF92DF92EF92FF920F931F93A3\r
-:103FA000CF93DF93EC01C090C001D090C101E090AD\r
-:103FB000C201F090C3018091BC019091BD01A0911C\r
-:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113\r
-:103FD00010E0B701A601002E04C0769567955795AD\r
-:103FE00047950A94D2F740FF07C0BE01802F0E9478\r
-:103FF000DC0B8130910539F40150110950F7BE01F5\r
-:1040000080E00E94DC0BDF91CF911F910F91FF9018\r
-:10401000EF90DF90CF90089590910C01992361F17A\r
-:1040200090910D01992341F1982F9695969596952B\r
-:104030009F3088F4E0910E01F0910F01E90FF11D1E\r
-:10404000877021E030E001C0220F8A95EAF7818174\r
-:10405000822B818308959091D70190FF2DC01F92EC\r
-:104060008F9387ED95E09F938F930E94EE070F90BB\r
-:104070000F900F900F90089540910E0150910F01F5\r
-:1040800020E030E09FEFFA01E20FF31F6281681732\r
-:1040900099F09F3F19F4611101C0922F2F5F3F4F9C\r
-:1040A0002E30310581F79F3F39F0FA01E90FF11DFC\r
-:1040B00097FDFA9582830895089590910C019923B4\r
-:1040C00069F190910D01992349F1982F9695969554\r
-:1040D00096959F3090F4E0910E01F0910F01E90F59\r
-:1040E000F11D877021E030E001C0220F8A95EAF7C8\r
-:1040F000209581812823218308959091D70190FFF5\r
-:104100001FC01F928F9389EB95E09F938F930E941E\r
-:10411000EE070F900F900F900F90089540910E01B1\r
-:1041200050910F0120E030E0FA01E20FF31F92817D\r
-:10413000981301C012822F5F3F4F2E303105A1F737\r
-:10414000089581E090E0E0910E01F0910F01E80FF9\r
-:10415000F91F1082019680319105A9F70895909179\r
-:10416000D601982B9093D601089580959091D60111\r
-:1041700098239093D60108951092D60108959091B6\r
-:10418000D501982B9093D501089580959091D501F4\r
-:1041900098239093D50108951092D50108958093A6\r
-:1041A000C40108951092C401089540910E015091E8\r
-:1041B0000F0120E030E080E0FA01E20FF31F91816F\r
-:1041C00091118F5F2F5F3F4F2F303105A9F7089571\r
-:1041D000E0910E01F0910F018091D6018083E09172\r
-:1041E0000E01F0910F0180819091D501892B808380\r
-:1041F0009091C401992361F0E0910E01F0910F01BB\r
-:104200008081892B80830E94D52081111092C40166\r
-:1042100080910E0190910F010C94E81490933B0152\r
-:1042200080933A010895CF92DF92EF92FF920F931D\r
-:104230001F936C01EE24FF24C114D104E104F104A6\r
-:1042400021F46B017C0180E001C080E133272F2D38\r
-:104250001E2D0D2D011511052105310519F0885F61\r
-:104260006801790197018601A4E036952795179595\r
-:104270000795AA95D1F7011511052105310519F00A\r
-:104280008C5F6801790197018601F2E036952795E8\r
-:1042900017950795FA95D1F70115110521053105F7\r
-:1042A00019F08E5F68017901B701A60176956795CF\r
-:1042B00057954795452B462B472B09F08F5F1F914C\r
-:1042C0000F91FF90EF90DF90CF9008958295982FF7\r
-:1042D0009C7C96959695837344E0849F900111246D\r
-:1042E000922B892F8A7A86959575990F892B089537\r
-:1042F0001F93CF93DF931F92CDB7DEB799830E94B0\r
-:104300006621182F9981892F0E946621212F30E084\r
-:10431000322F2227A901482BCA010F90DF91CF919C\r
-:104320001F9108958091F001843009F11092D80115\r
-:1043300020E488E190E00FB6F894A895809360009F\r
-:104340000FBE2093600083B7817F846083BF83B7F3\r
-:10435000816083BF7894889583B78E7F83BF88E11F\r
-:104360000FB6F89480936000109260000FBE08951D\r
-:1043700008950895CF930E94B8210E9482090E9457\r
-:10438000B921C0E08C2F0E94AD0A811105C0CF5F1A\r
-:10439000CE30C1F780E001C081E0CF9108950C9448\r
-:1043A000A11A82E084BD93E095BD9AEF97BD8093FA\r
-:1043B0006E0008952FB7F8948091D9019091DA0199\r
-:1043C000A091DB01B091DC012FBF0895CF92DF9265\r
-:1043D000EF92FF920F931F932FB7F8944091D9015A\r
-:1043E0005091DA016091DB017091DC012FBF6A010D\r
-:1043F0007B01EE24FF248C0120E030E0C016D106C2\r
-:10440000E206F30610F441505109481B590BCA014A\r
-:104410001F910F91FF90EF90DF90CF9008951F9222\r
-:104420000F920FB60F9211248F939F93AF93BF9368\r
-:104430008091D9019091DA01A091DB01B091DC016A\r
-:104440000196A11DB11D8093D9019093DA01A0932B\r
-:10445000DB01B093DC01BF91AF919F918F910F90E1\r
-:104460000FBE0F901F9018950E94E311F8942FEF44\r
-:1044700087EA91E6215080409040E1F700C00000BB\r
-:1044800087E090EBDC018093F9019093FA01A0930F\r
-:10449000FB01B093FC012CE088E190E00FB6F894AA\r
-:1044A000A895809360000FBE20936000FFCFEF922D\r
-:1044B000FF920F931F93CF93DF93E82EF12C8F2D54\r
-:1044C0000E94AD0AC0E0D0E0082F10E098010C2E49\r
-:1044D00002C0359527950A94E2F720FD05C0219684\r
-:1044E000C630D10599F709C06C2F7F2D80E00E945E\r
-:1044F000BA0BE812F4CF81E005C0F3948EE0F81215\r
-:10450000DECF80E0DF91CF911F910F91FF90EF9070\r
-:104510000895CF93C82F8CE20E945722882321F060\r
-:104520008C2FCF910C94572280E0CF910895CF9398\r
-:104530000E94E423811102C00E94CA238CEF95E0FF\r
-:104540000E945507C5E6C15049F00E9482098FE3D9\r
-:104550009CE90197F1F700C00000F5CF85EF95E0E9\r
-:104560000E94550789E20E948922811111C18AE2C5\r
-:104570000E94892281110E94CA2385E00E9489221B\r
-:1045800081110E9434220E94EF238093D70187E09B\r
-:104590000E948922882399F18BE10E948922882335\r
-:1045A00051F09091D70191FB882780F921E0822773\r
-:1045B00080FB91F922C08EE00E948922882351F06D\r
-:1045C0009091D70192FB882780F921E0822780FB18\r
-:1045D00092F913C080E10E9489229091D70188232B\r
-:1045E00041F093FB882780F921E0822780FB93F933\r
-:1045F00004C0892F809580FB90F99093D70180911A\r
-:10460000D7010E94F3230E9401248093EA0180EEE7\r
-:104610000E948922882341F08091EA01982F909589\r
-:1046200090FB80F98093EA0189E30E948922882324\r
-:1046300059F09091EA0191FB882780F921E08227C7\r
-:1046400080FB91F99093EA0182EE0E9489228823EF\r
-:1046500059F09091EA0192FB882780F921E08227A6\r
-:1046600080FB92F99093EA0186EE0E9489228823CA\r
-:1046700059F09091EA0193FB882780F921E0822785\r
-:1046800080FB93F99093EA0183EE0E9489228823AC\r
-:1046900059F09091EA0194FB882780F921E0822764\r
-:1046A00080FB94F99093EA0185E30E948922882394\r
-:1046B00059F09091EA0195FB882780F921E0822743\r
-:1046C00080FB95F99093EA0181E30E948922882377\r
-:1046D00059F09091EA0196FB882780F921E0822722\r
-:1046E00080FB96F99093EA0181E10E948922882358\r
-:1046F00059F09091EA0197FB882780F921E0822701\r
-:1047000080FB97F99093EA018091EA010E940524C9\r
-:104710008091EA0187FB882780F980930D0187E269\r
-:104720000E948922C82F8EE10E9489228111C260D5\r
-:104730008FE10E9489228111C46080E20E94892257\r
-:104740008111C86081E20E9489228111C06182E2E8\r
-:104750000E9489228111C06283E20E948922811114\r
-:10476000C06484E20E948922882311F0C06802C0DC\r
-:10477000CC2329F08C2F0E94FC236C2F03C00E94B5\r
-:10478000F823682F70E080E090E0CF910C949D1E9C\r
-:10479000CF9108956DEE7EEF80E090E00E94BF2DF6\r
-:1047A00060E082E090E00E94B12D60E083E090E064\r
-:1047B0000E94B12D60E084E090E00E94B12D60E0A5\r
-:1047C00085E090E00C94B12D80E090E00E94AB2D4C\r
-:1047D00021E08D3E9E4F09F020E0822F089582E077\r
-:1047E00090E00C94A32D682F82E090E00C94B12D02\r
-:1047F00083E090E00C94A32D682F83E090E00C946C\r
-:10480000B12D84E090E00C94A32D682F84E090E01B\r
-:104810000C94B12D8091DF0180FF0BC060911301DA\r
-:1048200085E0689FB001112475956795759567952A\r
-:104830002AC081FF09C06091130185E0689FB00123\r
-:104840001124759567951FC082FF07C06091130101\r
-:1048500085E0689FB001112416C04091E001442317\r
-:10486000C9F060911201461788F72091130185E085\r
-:10487000289F90011124429FC001439F900D112455\r
-:1048800070E00E94752D6038710540F46115710566\r
-:1048900039F002C065E070E0862F08958FE7089533\r
-:1048A00081E008958091DF0180FF08C060911101CF\r
-:1048B00070E0759567957595679521C081FF06C075\r
-:1048C0006091110170E07595679519C082FF04C071\r
-:1048D0006091110170E010C08091E0018823C1F067\r
-:1048E000609110018617A0F790911101989FC00167\r
-:1048F000112470E00E94752D6038710528F461154F\r
-:10490000710521F0862F08958FE7089581E00895BD\r
-:1049100061E070E0F4CF803F21F40E940A24819589\r
-:1049200004C0813F29F40E940A248093E301089582\r
-:10493000823F21F40E940A24819504C0833F29F418\r
-:104940000E940A248093E2010895893F19F40E948D\r
-:10495000522405C08A3F31F40E94522481958093ED\r
-:10496000E40108958B3F21F40E945224819504C0F4\r
-:104970008C3F29F40E9452248093E5010895843FDE\r
-:1049800021F48091E101816017C0853F21F480917D\r
-:10499000E101826011C0863F21F48091E1018460D1\r
-:1049A0000BC0873F21F48091E101886005C0883FFA\r
-:1049B00031F48091E10180618093E10108958D3FA0\r
-:1049C00021F48091DF0181600BC08E3F21F4809142\r
-:1049D000DF01826005C08F3F29F48091DF01846090\r
-:1049E0008093DF010895803F39F48091E30187FFD0\r
-:1049F0006CC01092E30169C0813F29F48091E3010A\r
-:104A00001816BCF362C09091E201823F29F497FF2F\r
-:104A10005CC01092E20159C0833F19F41916CCF31F\r
-:104A200054C0893F41F48091E40118160CF04DC048\r
-:104A30001092E4014AC08A3F29F48091E40187FF83\r
-:104A400044C0F6CF8B3F39F48091E50187FF3DC02C\r
-:104A50001092E5013AC08C3F29F48091E5011816C7\r
-:104A6000BCF333C0843F21F48091E1018E7F17C0F5\r
-:104A7000853F21F48091E1018D7F11C0863F21F4B3\r
-:104A80008091E1018B7F0BC0873F21F48091E10190\r
-:104A9000877F05C0883F31F48091E1018F7E80934C\r
-:104AA000E10113C08D3F21F48091DF018E7F0BC0A7\r
-:104AB0008E3F21F48091DF018D7F05C08F3F29F467\r
-:104AC0008091DF018B7F8093DF018091E201811172\r
-:104AD0000EC08091E30181110AC08091E40181112F\r
-:104AE00006C08091E501811102C01092E001089595\r
-:104AF0008091D70183FF7EC088E396E00E9455072E\r
-:104B00008091E1011F928F9383E396E09F938F93AF\r
-:104B10000E94EE0781E396E00E9455072091E20192\r
-:104B2000822F992787FD90959F932F938EE296E091\r
-:104B30009F938F930E94EE078CE296E00E945507A8\r
-:104B40002091E301822F992787FD90959F932F93C2\r
-:104B500089E296E09F938F930E94EE0787E296E0AA\r
-:104B60000E9455072091E401822F992787FD909597\r
-:104B70009F932F9384E296E09F938F930E94EE077A\r
-:104B800082E296E00E9455072091E501822F992745\r
-:104B900087FD90959F932F938FE196E09F938F933E\r
-:104BA0000E94EE078CE196E00E9455078091E0019B\r
-:104BB0001F928F9389E196E09F938F930E94EE0757\r
-:104BC00087E196E00E9455078091DF011F928F9345\r
-:104BD00084E196E09F938F930E94EE0781E196E037\r
-:104BE0000E9455078DB79EB74C960FB6F8949EBF9E\r
-:104BF0000FBE8DBF81EE91E00E942D150E94DA213B\r
-:104C00009093DE018093DD0108951F93CF93DF938E\r
-:104C10008091DD019091DE010E94E6214091E0014A\r
-:104C2000442321F02091140130E006C020911501A9\r
-:104C30005AE0259F900111248217930708F482C03F\r
-:104C40008091E2011091E301D091E401C091E5016E\r
-:104C5000811107C0111105C0D11103C0CC2309F483\r
-:104C600071C04F3F19F04F5F4093E001181624F4D4\r
-:104C70000E940A248093E2018091E20187FF05C02F\r
-:104C80000E940A2481958093E201111624F40E9467\r
-:104C90000A248093E3018091E30187FF05C00E940D\r
-:104CA0000A2481958093E3016091E201662339F142\r
-:104CB0001091E301112319F1772767FD7095872F74\r
-:104CC000972F0E947A2C23E333E343E35FE30E94B0\r
-:104CD000DE2C0E94472C6093E201612F772767FD4D\r
-:104CE0007095872F972F0E947A2C23E333E343E3B9\r
-:104CF0005FE30E94DE2C0E94472C6093E3011D16A7\r
-:104D000024F40E9452248093E4018091E40187FFFF\r
-:104D100005C00E94522481958093E4011C1624F45E\r
-:104D20000E9452248093E5018091E50187FF05C030\r
-:104D30000E94522481958093E501DF91CF911F91CC\r
-:104D40000C947825DF91CF911F910895E1EEF1E069\r
-:104D500085E0DF011D928A95E9F71092E00110923B\r
-:104D6000DF0108958BE598E00E9455071F9281E0CE\r
-:104D70008F931F9285E08F938DE098E09F938F93A0\r
-:104D80000E94EE070F900F900F900F900F900F90D2\r
-:104D900008958330E9F128F4813061F0823009F11F\r
-:104DA0000895853009F462C008F449C0863009F4DA\r
-:104DB00074C0089520911501862F90E0820F911DF7\r
-:104DC0008F3F910520F4620F6093150103C08FEFB0\r
-:104DD00080931501809115011F928F9386E497E0CF\r
-:104DE00072C020911401862F90E0820F911D8F3F99\r
-:104DF000910520F4620F6093140103C08FEF80933C\r
-:104E00001401809114011F928F9384E397E05BC09B\r
-:104E100020911301862F90E0820F911D8F3F910505\r
-:104E200020F4620F6093130103C08FEF809313018E\r
-:104E3000809113011F928F9381E297E044C02091EB\r
-:104E40001201862F90E0820F911D8F3F910520F473\r
-:104E5000620F6093120103C08FEF80931201809163\r
-:104E600012011F928F938CE097E02DC020911101C9\r
-:104E7000862F90E0820F911D8F3F910520F4620FE5\r
-:104E80006093110103C08FEF809311018091110194\r
-:104E90001F928F9383EF96E016C020911001862F0A\r
-:104EA00090E0820F911D8F3F910520F4620F609377\r
-:104EB000100103C08FEF80931001809110011F92A9\r
-:104EC0008F9388ED96E09F938F930E94EE070F904B\r
-:104ED0000F900F900F900895833081F128F4813066\r
-:104EE00059F08230D1F00895853009F449C0B8F105\r
-:104EF000863009F456C0089580911501681720F492\r
-:104F0000861B8093150102C0109215018091150136\r
-:104F10001F928F9389EC96E054C08091140168171A\r
-:104F200020F4861B8093140102C01092140180911A\r
-:104F300014011F928F9387EB96E043C08091130179\r
-:104F4000681720F4861B8093130102C0109213018E\r
-:104F5000809113011F928F9384EA96E032C0809172\r
-:104F60001201681720F4861B8093120102C0109270\r
-:104F70001201809112011F928F938FE896E021C059\r
-:104F800080911101681720F4861B8093110102C0E3\r
-:104F900010921101809111011F928F9386E796E084\r
-:104FA00010C080911001681720F4861B80931001B7\r
-:104FB00002C010921001809110011F928F938BE517\r
-:104FC00096E09F938F930E94EE070F900F900F90A3\r
-:104FD0000F900895CF93C82F1F928F9320E639E04A\r
-:104FE0003F932F930E94EE0761E070E080E090E035\r
-:104FF00004C0660F771F881F991FCA95D2F70E94B9\r
-:105000009D1E0F900F900F900F90CF910C94A11AAE\r
-:10501000CF938D3109F465C0B0F58E3009F4CBC162\r
-:1050200000F5873009F49BC1A8F4863009F06AC204\r
-:105030008091D701817F8E7F8093D70185E699E0AB\r
-:105040000E94550787EA9DE00E94550781E0809302\r
-:10505000E70180C1883009F44FC08B3009F47CC16E\r
-:1050600051C2863109F4EDC138F4803109F4B6C17A\r
-:10507000813109F42DC246C2893109F4CBC18B318B\r
-:1050800009F486C13FC2853309F434C248F487323B\r
-:1050900009F430C208F430C2893209F42BC232C29A\r
-:1050A000833438F48A3308F029C2883309F454C1B0\r
-:1050B00029C2833409F41EC2883409F023C20E9435\r
-:1050C000A11A86E99DE00E9455079FEF23ED80E33A\r
-:1050D000915020408040E1F700C000000E9434223F\r
-:1050E00039C186EB9DE00E9455070E94012C0E9469\r
-:1050F000DC140E941A0D2EC18BEA9DE00E94550718\r
-:1051000086E79BE00E9455070E94F8231F928F9329\r
-:1051100083E79BE09F938F930E94EE0781E79BE0DC\r
-:105120000E9455070E94EF23C82F8EE59BE00E9446\r
-:1051300055071F92CF9329E53BE03F932F930E94A1\r
-:10514000EE0787E59BE00E9455078DE49BE00E94F7\r
-:1051500055078C2F81701F928F932AE43BE03F9379\r
-:105160002F930E94EE0788E49BE00E9455078EE390\r
-:105170009BE00E945507C1FB882780F91F928F93FF\r
-:105180002BE33BE03F932F930E94EE0789E39BE0E4\r
-:105190000E9455078DE29BE00E945507C2FB8827BD\r
-:1051A00080F91F928F932AE23BE03F932F930E9456\r
-:1051B000EE0788E29BE00E9455078FE19BE00E948A\r
-:1051C0005507C3FBCC27C0F91F92CF938CE19BE01E\r
-:1051D0009F938F930E94EE078AE19BE00E94550700\r
-:1051E0000E940124C82F86E09BE00E9455071F9271\r
-:1051F000CF9321E03BE03F932F930E94EE078FEF88\r
-:105200009AE00E94550786EE9AE00E9455078C2F7F\r
-:1052100081701F928F9323EE3AE03F932F930E9469\r
-:10522000EE078DB79EB780960FB6F8949EBF0FBE5F\r
-:105230008DBF81EE9AE00E9455078AEC9AE00E94A9\r
-:105240005507C1FB882780F91F928F9327EC3AE01E\r
-:105250003F932F930E94EE0785EC9AE00E9455073A\r
-:1052600083EB9AE00E945507C2FB882780F91F92C2\r
-:105270008F9320EB3AE03F932F930E94EE078EEA44\r
-:105280009AE00E9455078CE99AE00E945507C3FBFB\r
-:10529000882780F91F928F9329E93AE03F932F9353\r
-:1052A0000E94EE0787E99AE00E9455078DE89AE090\r
-:1052B0000E945507C4FB882780F91F928F932AE824\r
-:1052C0003AE03F932F930E94EE0788E89AE00E940D\r
-:1052D000550786E79AE00E945507C5FB882780F9A5\r
-:1052E0001F928F9323E73AE03F932F930E94EE079C\r
-:1052F00081E79AE00E94550785E59AE00E945507EC\r
-:10530000C6FB882780F91F928F9322E53AE03F93EE\r
-:105310002F930E94EE0780E59AE00E94550788E4EB\r
-:105320009AE00E945507C7FBCC27C0F91F92CF9384\r
-:1053300085E49AE09F938F930E94EE0783E49AE0BE\r
-:105340000E9455078DB79EB74C960FB6F8949EBF36\r
-:105350000FBE8DBFC1E0DBC08CE899E058C08091E2\r
-:10536000D701C82FC17080FF09C089E89DE00E9465\r
-:1053700055078091D701817F8E7F44C08DE79DE0E6\r
-:105380000E9455078091D70181608093D701E2CFB9\r
-:105390008091D70181FBCC27C0F991E0C927C0FBE0\r
-:1053A00081F98093D701CC2319F080E79DE025C0D7\r
-:1053B00082E69DE02CC08091D70182FBCC27C0F90A\r
-:1053C00091E0C927C0FB82F98093D701CC2319F063\r
-:1053D00083E59DE012C083E49DE019C08091D70170\r
-:1053E00083FBCC27C0F991E0C927C0FB83F98093E8\r
-:1053F000D701CC2351F087E39DE00E9455078091AF\r
-:10540000D70181608093D70182C08AE29DE00E942B\r
-:105410005507A0CF8BE19DE00E9455078FEE9CE0E1\r
-:105420000E94550782EB9CE00E94550785E89CE0AE\r
-:105430000E94550781E49CE00E94550786E19CE0AC\r
-:10544000E6CF88E09CE00E9455070E94DC141F9282\r
-:105450008F938EEE9BE09F938F930E94EE07809137\r
-:105460000C011F928F9387ED9BE09F938F930E9477\r
-:10547000EE0780916E011F928F9384EC9BE09F93C7\r
-:105480008F930E94EE0780910D011F928F9381EB05\r
-:105490009BE09F938F930E94EE078091D90190919A\r
-:1054A000DA01A091DB01B091DC01BF93AF939F9330\r
-:1054B0008F938DE99BE09F938F930E94EE078DB7AA\r
-:1054C0009EB746960FB6F8949EBF0FBE8DBF42CFD3\r
-:1054D0000E94A11AC0910D0181E0C827C0930D015F\r
-:1054E000CC2329F083E99BE00E94550710C088E88F\r
-:1054F0009BE08DCF80E003C08D5101C089530E9495\r
-:10550000EA2728CF86E89BE00E945507C0E08C2F51\r
-:10551000CF91089580E0089580E00895CF93C82F3B\r
-:105520008091E701813081F020F0823009F44CC095\r
-:1055300042C1A0910E01B0910F018C91813169F0AF\r
-:10554000823209F03AC109C0A0910E01B0910F0159\r
-:105550008C91813111F0823249F48C2F0E948A2A79\r
-:1055600081112FC08C2F0E9408282CC08C2F0E94E4\r
-:105570008C2A811126C0C431E1F070F4CB3081F067\r
-:10558000C031D1F40E94B22688E599E00E94550707\r
-:1055900082E08093E70115C0C93259F0C83361F445\r
-:1055A00085E699E00E9455078CE599E00E94550731\r
-:1055B00008C01092E70103C186E599E00E945507F3\r
-:1055C000FEC081E08170FDC0C43220F5CE3108F00C\r
-:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E\r
-:1055E0008093150194E19093140193E0909313013B\r
-:1055F0008093120188E08093110188E2809310016A\r
-:105600008CEF97E00E945507BFC0C33149F1C43108\r
-:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D\r
-:10562000C83361F0AEC0C13509F49EC0C23509F47B\r
-:1056300099C0CE3409F0A5C06AE09EC00E94B2268F\r
-:10564000A3C08091E601882319F01092E6019CC066\r
-:1056500089E098E00E94550781E08093E701B1C09E\r
-:1056600083EE97E00E94550781ED97E00E94550771\r
-:10567000809115011F928F938EEC97E09F938F93EB\r
-:105680000E94EE078CEC97E00E9455078AEB97E0AA\r
-:105690000E945507809114011F928F9387EB97E02A\r
-:1056A0009F938F930E94EE0785EB97E00E9455072A\r
-:1056B00086EA97E00E945507809113011F928F930D\r
-:1056C00083EA97E09F938F930E94EE0781EA97E029\r
-:1056D0000E94550780E997E00E94550780911201CA\r
-:1056E0001F928F938DE897E09F938F930E94EE0710\r
-:1056F0008BE897E00E94550786E797E00E945507E0\r
-:10570000809111011F928F9383E797E09F938F936E\r
-:105710000E94EE0781E797E00E9455078AE597E02F\r
-:105720000E945507809110011F928F9387E597E0A3\r
-:105730009F938F930E94EE0785E597E00E9455079F\r
-:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B\r
-:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5\r
-:10576000E60112C061E003C061E006C06AE080911A\r
-:10577000E6010E94C92608C08091E6010E946C27BC\r
-:1057800003C08AEF97E013C08091E601882369F097\r
-:105790001F928F9384EF97E09F938F930E94EE0761\r
-:1057A0000F900F900F900F9004C081EF97E00E9430\r
-:1057B000550781E006C01092E70180E002C080E05A\r
-:1057C00001CFCF910895E1E8F0E080818860808387\r
-:1057D0008081816080838FB7F89493E090938900F3\r
-:1057E00090ED909388008FBF0895EFE6F0E0808100\r
-:1057F000826080830895EFE6F0E080818D7F808372\r
-:105800000895EFE6F0E0808192E089278083089593\r
-:105810001F920F920FB60F9211242F933F934F9325\r
-:105820005F936F937F938F939F93AF93BF93EF9308\r
-:10583000FF938091E8019091E90101969093E9012D\r
-:105840008093E801811103C082E00E941A0DE0916B\r
-:10585000E901E695E695F0E0EA53F24FE491809194\r
-:10586000E8018E1303C080E00E941A0DFF91EF91B2\r
-:10587000BF91AF919F918F917F916F915F914F9168\r
-:105880003F912F910F900FBE0F901F90189504D04D\r
-:105890006894B1118DC0089570D088F09F5790F032\r
-:1058A000B92F9927B751A0F0D1F0660F771F881F45\r
-:1058B000991F1AF0BA95C9F712C0B13081F077D0AC\r
-:1058C000B1E0089574C0672F782F8827B85F39F04A\r
-:1058D000B93FCCF3869577956795B395D9F73EF4A4\r
-:1058E00090958095709561957F4F8F4F9F4F08954C\r
-:1058F000E89409C097FB3EF490958095709561956A\r
-:105900007F4F8F4F9F4F9923A9F0F92F96E9BB271F\r
-:105910009395F695879577956795B795F111F8CF9B\r
-:10592000FAF4BB0F11F460FF1BC06F5F7F4F8F4F06\r
-:105930009F4F16C0882311F096E911C0772321F0FC\r
-:105940009EE8872F762F05C0662371F096E8862F94\r
-:1059500070E060E02AF09A95660F771F881FDAF7EB\r
-:10596000880F9695879597F9089557FD9058440F9D\r
-:10597000551F59F05F3F71F04795880F97FB991FAE\r
-:1059800061F09F3F79F0879508951216130614066B\r
-:10599000551FF2CF4695F1DF08C0161617061806F8\r
-:1059A000991FF1CF86957105610508940895E894D3\r
-:1059B000BB2766277727CB0197F908950BD078C0CE\r
-:1059C00069D028F06ED018F0952309F05AC05FC056\r
-:1059D0001124EECFCADFA0F3959FD1F3950F50E0CD\r
-:1059E000551F629FF001729FBB27F00DB11D639F91\r
-:1059F000AA27F00DB11DAA1F649F6627B00DA11D37\r
-:105A0000661F829F2227B00DA11D621F739FB00DDC\r
-:105A1000A11D621F839FA00D611D221F749F33274C\r
-:105A2000A00D611D231F849F600D211D822F762FE5\r
-:105A30006A2F11249F5750408AF0E1F088234AF0E2\r
-:105A4000EE0FFF1FBB1F661F771F881F915050402E\r
-:105A5000A9F79E3F510570F014C0AACF5F3FECF349\r
-:105A6000983EDCF3869577956795B795F795E7951A\r
-:105A70009F5FC1F7FE2B880F911D9695879597F92B\r
-:105A8000089597F99F6780E870E060E008959FEFC0\r
-:105A900080EC089500240A941616170618060906C5\r
-:105AA000089500240A941216130614060506089594\r
-:105AB000092E0394000C11F4882352F0BB0F40F41C\r
-:105AC000BF2B11F460FF04C06F5F7F4F8F4F9F4F5C\r
-:105AD0000895991B79E004C0991F961708F0961B4A\r
-:105AE000881F7A95C9F78095089597FB072E16F4BD\r
-:105AF000009407D077FD09D00E948F2D07FC05D0B8\r
-:105B00003EF4909581959F4F0895709561957F4FD4\r
-:105B10000895EE0FFF1F0590F491E02D0994AA1B44\r
-:105B2000BB1B51E107C0AA1FBB1FA617B70710F088\r
-:105B3000A61BB70B881F991F5A95A9F780959095BA\r
-:105B4000BC01CD010895F999FECF92BD81BDF89AAF\r
-:105B5000992780B50895A8E1B0E042E050E00C94A8\r
-:105B6000C62D262FF999FECF1FBA92BD81BD20BD4B\r
-:105B70000FB6F894FA9AF99A0FBE019608950E940A\r
-:105B8000B12D272F0C94B22DDC01CB01FC01F9992A\r
-:105B9000FECF06C0F2BDE1BDF89A319600B40D9279\r
-:0C5BA00041505040B8F70895F894FFCF32\r
-:105BAC0020021B0D0C0EE90DB50D820D0101C50176\r
-:105BBC0028080A03140A3F4D3620394605F904C358\r
-:105BCC0004A3046A04DD03F6030F0428044804014B\r
-:0A5BDC000203040506070809000093\r
+:1002D00001000100AE00010001000000160345000E\r
+:1002E000720067006F0044006F0078002000450036\r
+:1002F0005A00000016034500720067006F004400BA\r
+:100300006F007800200045005A0000000403090433\r
+:1003100009026D00040100A0FA09040000010301B4\r
+:100320000100092111010001223F00070581030896\r
+:10033000000A090401000103010200092111010062\r
+:1003400001224D000705820308000A09040200018A\r
+:100350000300000009211101000122360007058376\r
+:100360000308000A09040300010300000009211129\r
+:100370000100012239000705840310000112011059\r
+:100380000100000008EDFE07130100010200010555\r
+:10039000010906A101050719E029E71500250195C6\r
+:1003A0000875018102050819012905950575019156\r
+:1003B000029501750391010507190029771500259C\r
+:1003C00001957875018102C005010980A1018502AE\r
+:1003D00016010026B7001A01002AB7007510950112\r
+:1003E0008100C0050C0901A1018503160100269CAE\r
+:1003F000021A01002A9C02751095018100C00501B6\r
+:100400000902A1010901A100050919012905150029\r
+:10041000250195057501810295017503810105018D\r
+:10042000093009311581257F950275088106093843\r
+:100430001581257F950175088106050C0A3802157E\r
+:1004400081257F950175088106C0C005010906A1B7\r
+:1004500001050719E029E7150025019508750181B7\r
+:100460000295017508810105081901290595057591\r
+:100470000191029501750391010507190029FF15E6\r
+:100480000025FF950675088100C0000000000000EF\r
+:100490000000000000010204060A0F17202C3A4A4F\r
+:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2\r
+:1004B000B39D87715D4A3A2C20170F0A060402018A\r
+:1004C0000000000000000000000011241FBECFEF5C\r
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A\r
+:1004E0009091EF01A091F001B091F1018730904B14\r
+:1004F000A740B04BB9F41092EE011092EF011092A8\r
+:10050000F0011092F10114BE84B7877F84BF88E1A7\r
+:100510000FB6F89480936000109260000FBEE0E088\r
+:10052000FFE3099511E0A0E0B1E0E8ECF5E402C0DA\r
+:1005300005900D92A433B107D9F711E0A4E3B1E01F\r
+:1005400001C01D92AE3EB107E1F70E940B090C9469\r
+:10055000E2220C94000061110BC0FC01828188230F\r
+:1005600021F085EE0E946C0F03C085EE0E943410CE\r
+:1005700080E090E0089508956091B1017091B2011A\r
+:100580008091B3019091B4010E94F01956985E9841\r
+:1005900025982D9826982E9827982F98813019F015\r
+:1005A000823021F00895259A2D9A0895269A2E9A40\r
+:1005B00008958CEB92E0892B11F00E94BC0280E040\r
+:1005C00090E0089556985E9825982D9826982E9834\r
+:1005D00027982F988FEF90E0909389008093880060\r
+:1005E00090938B0080938A0090938D0080938C0071\r
+:1005F000259A2D9A2FEF80E792E02150804090407D\r
+:10060000E1F700C00000269A2E9A2FEF80E792E0D3\r
+:10061000215080409040E1F700C00000279A2F9AB7\r
+:100620002FEF80E792E0215080409040E1F700C03A\r
+:10063000000025982D982FEF80E792E02150804010\r
+:100640009040E1F700C0000026982E982FEF80E739\r
+:1006500092E0215080409040E1F700C000002798D0\r
+:100660002F9856985E9825982D9826982E9827981A\r
+:100670002F98089589EA8093800089E08093810013\r
+:1006800024982C983F988AB18F748AB96E98479AAB\r
+:100690008BB1806B8BB9769A0E94E2028BEB92E071\r
+:1006A000892B11F00E94BB0280E090E0089580E267\r
+:1006B000809300018091340181110EC00E94A60335\r
+:1006C00081E0809334012FEF83ED90E3215080404F\r
+:1006D0009040E1F700C0000080E40E94AC038093EA\r
+:1006E000000181112EC00E94D60380930001811168\r
+:1006F00028C00E94D60380930001811122C08FE39D\r
+:100700000E94D6038093000181111BC00E94CE037A\r
+:1007100080E40E94AC0380930001811112C08CE040\r
+:100720000E94D6038093000181110BC00E94D60362\r
+:1007300080930001811105C08FE30E94D60380934E\r
+:1007400000010E94CE038091000108951092B9002B\r
+:100750008AE08093B800089594EA9093BC00909149\r
+:10076000BC0097FFFCCF9091B900987F983021F0A2\r
+:10077000903111F081E008958093BB0084E880936C\r
+:10078000BC008091BC0087FFFCCF8091B900887FBE\r
+:10079000883111F0803471F780E0089584E9809306\r
+:1007A000BC008091BC0084FDFCCF08958093BB0009\r
+:1007B00084E88093BC008091BC0087FFFCCF9091BF\r
+:1007C000B900987F81E0983209F480E0089584E8C8\r
+:1007D0008093BC008091BC0087FFFCCF8091BB0060\r
+:1007E000089580910001811115C080E40E94AC033E\r
+:1007F0008093000181110CC082E10E94D603809396\r
+:100800000001811105C08FEF0E94D6038093000183\r
+:100810000E94CE0384B1807F84B985B1807F85B981\r
+:100820008AB1837F8AB98BB1837F8BB93E98469812\r
+:1008300008950E945703809300010E94F10380B342\r
+:100840008C7080BB81B3836F81BBE4E4F1E0A6E3ED\r
+:10085000B1E011921D9281E0E235F807D1F78AE309\r
+:1008600093E0892B11F00C943A030895BF92CF9234\r
+:10087000DF92EF92FF920F931F93CF93DF938091BC\r
+:100880000001882379F0809135018F5F80933501D5\r
+:10089000811108C00E94570380930001811102C09A\r
+:1008A0000E94E20206E311E0C0E0D0E0DD24D39430\r
+:1008B00082E0C82EEE24E394F12CC73000F580913D\r
+:1008C0000001811162C080E40E94AC0380930001AA\r
+:1008D000811112C082E10E94D60380930001811130\r
+:1008E0000BC0C7010C2E01C0880F0A94EAF780954F\r
+:1008F0000E94D603809300010E94CE0346C0CA30F6\r
+:10090000A1F028F4C83059F0C93061F005C0CC30EE\r
+:1009100089F070F0CD3089F0209A289810C0219A83\r
+:1009200029980DC0229A2A980AC0239A2B9807C0AA\r
+:10093000529A01C0539A5B9802C03E9A4698E0EAE8\r
+:10094000EA95F1F78FB1799960C092E081708D25B9\r
+:10095000892B7C9B02C090E001C094E0892B7D9B99\r
+:1009600002C090E001C098E0892B7E9B02C090E01D\r
+:1009700001C090E1892B9FB19095991F9927991FEC\r
+:100980009295990F907E892B0FC080910001811163\r
+:1009900051C080E40E94AC03809300018823B9F128\r
+:1009A000B12C0E94CE038B2DF8019081981719F07D\r
+:1009B0008083C09201010E94F10321960F5F1F4FB7\r
+:1009C000CE30D10509F079CF809101018823B1F0B3\r
+:1009D000815080930101882339F08FE99FE00197CE\r
+:1009E000F1F700C000000AC0A4E4B1E0E6E3F1E0E2\r
+:1009F00081918D9391E0E434F907D1F789ED92E08C\r
+:100A0000892BD1F00E94D90217C090E09FCF83E1DB\r
+:100A10000E94D603809300018111C2CF81E40E941D\r
+:100A2000AC03809300018111BBCF0E94E703B82E75\r
+:100A3000B094B7CF80E0B8CF81E0DF91CF911F9124\r
+:100A40000F91FF90EF90DF90CF90BF900895E82F27\r
+:100A5000F0E0EC5BFE4F8081089508958B3B91059B\r
+:100A600078F4883A910540F5853A9105D0F48430C0\r
+:100A7000910508F0B1C08130910509F4ADC06BC09B\r
+:100A8000803E910508F467C0883E910508F4A4C033\r
+:100A90009C01205F31092031310508F05CC0906570\r
+:100AA0000895853A910509F459C0863A910509F4EB\r
+:100AB00058C083E890E40895883A910509F454C039\r
+:100AC000893A910509F453C08A3A910509F452C054\r
+:100AD0008B3A910509F451C08C3A910509F450C044\r
+:100AE0008D3A910509F44FC0803B910509F44EC041\r
+:100AF0008E3A910509F44DC08F3A910509F44CC026\r
+:100B0000813B910509F44BC0823B910509F44AC031\r
+:100B1000833B910509F449C0843B910509F448C021\r
+:100B2000853B910509F447C0863B910509F446C011\r
+:100B3000873B910509F445C0883B910509F444C001\r
+:100B4000893B910509F443C08A3B910509F042C0F5\r
+:100B50008AE296E4089580E090E0089581E890E4C8\r
+:100B6000089582E890E4089582EE94E4089589EE71\r
+:100B700094E408958AEE94E4089585EB94E408954E\r
+:100B800086EB94E4089587EB94E408958CEC94E468\r
+:100B900008958DEC94E4089583E895E408958AE837\r
+:100BA00095E4089582E995E4089584E995E408952B\r
+:100BB00081E296E4089583E296E4089584E296E45F\r
+:100BC000089585E296E4089586E296E4089587E222\r
+:100BD00096E4089580E094E40895089596E0799F5E\r
+:100BE000F001112494E5899FE00DF11D1124E60F19\r
+:100BF000F11DEE0FFF1FEC51FF4F85919491089569\r
+:100C0000880F991F805A9040FC0185919491089516\r
+:100C1000880F991F80529F4FFC01859194910895F0\r
+:100C200026E0729FF001112444E5849FE00DF11D40\r
+:100C30001124E60FF11DEE0FFF1FEC51FF4F259120\r
+:100C40003491C9019A9581159F4110F4C901089505\r
+:100C5000C90190528115904128F4C9019F700E94EA\r
+:100C600008060895C90190538115904120F4C901E7\r
+:100C70009927906C0895211580E5380769F40E9442\r
+:100C8000A5139FEF24E34CE0915020404040E1F752\r
+:100C900000C000000C94E91A213080E5380731F4D7\r
+:100CA0008091CC0181608093CC010895C901905559\r
+:100CB0008115904108F050C0832F99278F70992794\r
+:100CC00081309105D9F4A9014370552702C0880FDE\r
+:100CD000991F4A95E2F79C68A90164E0440F551FEB\r
+:100CE0006A95E1F744275370842B952B73E0220F0C\r
+:100CF000331F7A95E1F7207633271DC082309105A6\r
+:100D000029F4922F8827816F906A08958330910586\r
+:100D1000A9F4A9014370552781E090E002C0880F33\r
+:100D2000991F4A95E2F79C6843E0220F331F4A95CA\r
+:100D3000E1F7207E3770822B932B08950497F1F40E\r
+:100D4000A9014370552781E090E002C0880F991FE8\r
+:100D50004A95E2F79A68E8CFC9019057811590410A\r
+:100D600020F4C9019F7090620895C90190588115BF\r
+:100D7000904120F4C9019F70906A0895203E31058A\r
+:100D8000E0F4203C310558F52133310509F470C0F9\r
+:100D900048F42932310509F464C02A32310509F4D6\r
+:100DA0006EC074C029333105F1F022383105D9F015\r
+:100DB0002533310509F44EC069C0233E310589F160\r
+:100DC00038F4203E3105C1F0223E3105E1F05EC02D\r
+:100DD000263E310569F1273E3105A9F157C0C90109\r
+:100DE0000E94000608958091DF0180FD02C081FF0E\r
+:100DF0004DC080EE90E04BC08091DF0180FFF9CFC5\r
+:100E000089E390E044C08091DF0182FF0EC08091B1\r
+:100E1000DF0184FF03C080E090E039C083EE90E002\r
+:100E200036C08091DF0182FFF2CF82EE90E02FC0CA\r
+:100E30008091DF0183FF0BC08091DF0184FDEBCF48\r
+:100E400087EE90E024C08091DF0183FFF5CF86EE2E\r
+:100E500090E01DC08091DF0185FF07C089E290E02E\r
+:100E600016C08091DF0185FFF9CF85E390E00FC0C8\r
+:100E70008091DF0186FF07C08AE290E008C0809180\r
+:100E8000DF0186FFF9CF81E390E001C0C9010E9434\r
+:100E90002E0508950895809162010895CF93DF9300\r
+:100EA00000D01F92CDB7DEB72091E501243019F5AF\r
+:100EB00023E029839B838A832093E9008FEF90911D\r
+:100EC000E800815095FD06C095ED9A95F1F7000078\r
+:100ED0008111F5CF8091E80085FF0DC040E050E022\r
+:100EE00063E070E0CE0101960E94B8098091E800AD\r
+:100EF0008E778093E8000F900F900F90DF91CF9145\r
+:100F00000895CF93DF9300D01F92CDB7DEB7209125\r
+:100F1000E501243021F522E029839B838A8383E045\r
+:100F20008093E9008FEF9091E800815095FD06C015\r
+:100F300095ED9A95F1F700008111F5CF8091E800C9\r
+:100F400085FF0DC040E050E063E070E0CE01019607\r
+:100F50000E94B8098091E8008E778093E8000F9096\r
+:100F60000F900F90DF91CF9108952091E5012430EB\r
+:100F7000F1F422E02093E9002FEF3091E8002150B6\r
+:100F800035FD06C035ED3A95F1F700002111F5CF9A\r
+:100F90002091E80025FF0BC040E050E065E070E0E4\r
+:100FA0000E94B8098091E8008E778093E800089548\r
+:100FB000CF93DF93EC018091E501843009F046C0C6\r
+:100FC00090910C019923D9F090910D019923B9F0DA\r
+:100FD0008093E9008FEF9091E800815095FD06C065\r
+:100FE00095E19A95F1F700008111F5CF8091E80025\r
+:100FF00085FF2CC040E050E060E170E017C081E068\r
+:101000008093E9008FEF9091E800815095FD06C034\r
+:1010100095ED9A95F1F700008111F5CF8091E800E8\r
+:1010200085FF14C040E050E068E070E0CE010E940F\r
+:10103000B8098091E8008E778093E80080E1FE0196\r
+:10104000A2E5B1E001900D928A95E1F7DF91CF9191\r
+:1010500008958091E401811109C00E944A0B0E9409\r
+:10106000A70B8091E20084608093E20008951092C3\r
+:10107000E401089508950C940F210E94801A0E94A3\r
+:1010800015210E94440E0C944A0742E061EC81E075\r
+:101090000E94C40A42E061EC82E00E94C40A42E07D\r
+:1010A00061EC83E00E94C40A42E161EC84E00C94AC\r
+:1010B000C40A8091E701833009F455C030F48130CF\r
+:1010C00071F0823009F48EC008958A3009F47AC034\r
+:1010D0008B3009F460C0893009F09CC020C0809139\r
+:1010E000E601813A09F096C08091E800877F8093FD\r
+:1010F000E8008091EA019091EB01892B21F060E0FA\r
+:1011000080E090E003C060E182E591E070E00E9441\r
+:10111000010A8091E8008B778093E8000895809120\r
+:10112000E601813209F076C08091EA019091EB01ED\r
+:10113000009719F0039709F06DC08091E800877F50\r
+:101140008093E8008091E80082FD05C08091E50170\r
+:101150008111F8CF5FC08091F1008093620180918E\r
+:10116000E8008B7753C08091E601813A09F052C0C4\r
+:101170008091EA019091EB01892B09F04BC080919D\r
+:10118000E800877F8093E8008091E80080FFFCCF33\r
+:1011900080910C0136C08091E6018132D9F58091B1\r
+:1011A000EA019091EB01892BA9F58091E800877FF6\r
+:1011B0008093E8000E94F90A8091E80180930C0175\r
+:1011C0000C94A5138091E601813221F58091E8000D\r
+:1011D000877F8093E8000E94F90A8091E90180935B\r
+:1011E000630108958091E601813AA1F48091E800BD\r
+:1011F000877F8093E8008091E80080FFFCCF80919A\r
+:1012000063018093F1008091E8008E778093E8007D\r
+:101210000C94F90A089584B7877F84BF88E10FB6DC\r
+:10122000F89480936000109260000FBE90E080E818\r
+:101230000FB6F89480936100909361000FBE0E94F6\r
+:10124000930E0E944A0B0E94A70B8091E2008460DB\r
+:101250008093E20078940E94220E0E94950E82E014\r
+:1012600091E00E943F0E0E94FD208091E5018530B3\r
+:1012700069F40E94431A8091E3018823B1F30E942C\r
+:101280006B1A882391F30E94A209EFCF0E949B0E54\r
+:10129000ECCF292F332723303105A9F06CF421300E\r
+:1012A000310509F442C02230310509F043C08DE612\r
+:1012B00090E020E133E042C021323105C9F0223212\r
+:1012C000310519F137C099278130910541F08230FD\r
+:1012D000910541F0892B71F5ECE0F3E005C0E4EFF6\r
+:1012E000F2E002C0ECEDF2E0849190E09F0126C0B4\r
+:1012F000643000F5E62FF0E0EE0FFF1FEE5DFE4FCD\r
+:101300002081318189E090E019C0643098F4E62FA3\r
+:10131000F0E0DF01AA0FBB1FA65EBE4F2D913C91EE\r
+:10132000EA5EFE4F808190E009C082E190E02DE707\r
+:1013300033E004C080E090E020E030E0FA01318347\r
+:101340002083089580E189BD82E189BD09B400FE52\r
+:10135000FDCF8091D8008F7D8093D8008091E000F0\r
+:1013600082608093E0008091E00081FDFCCF0895D1\r
+:10137000CF92DF92EF92FF920F931F93CF93DF9361\r
+:101380007C018B01EA010E941A0B811131C0209768\r
+:1013900031F088819981081B190BE80EF91EC12CC8\r
+:1013A000D12C0115110519F18091E80085FD14C0BB\r
+:1013B0008091E8008E778093E800209741F0888143\r
+:1013C00099818C0D9D1D9983888385E011C00E94B1\r
+:1013D0001A0B882331F30CC0F70181917F018093B0\r
+:1013E000F10001501109FFEFCF1ADF0ADACF80E0D8\r
+:1013F000DF91CF911F910F91FF90EF90DF90CF90F1\r
+:1014000008952091EC013091ED012617370748F03F\r
+:101410006115710539F42091E8002E772093E800DA\r
+:1014200001C0B901FC0120E061157105B9F180919D\r
+:10143000E501882309F440C0853009F43FC080915C\r
+:10144000E80083FD3DC08091E80082FF06C08091E6\r
+:10145000E80082FF26C080E008958091E80080FFC8\r
+:10146000E3CF2091F3008091F20090E0922B611580\r
+:10147000710551F08830910538F421912093F100E5\r
+:10148000615071090196F3CF21E0089709F020E03F\r
+:101490008091E8008E778093E800C6CF2111C7CFF6\r
+:1014A000D6CF8091E501882339F0853039F08091DD\r
+:1014B000E80083FFCCCF04C082E0089583E0089564\r
+:1014C00081E008952091EC013091ED012617370756\r
+:1014D00048F06115710539F42091E8002E772093CA\r
+:1014E000E80001C0B901FC0120E061157105C1F1FE\r
+:1014F0008091E501882309F441C0853009F440C09A\r
+:101500008091E80083FD3EC08091E80082FF06C024\r
+:101510008091E80082FF27C080E008958091E80074\r
+:1015200080FFE3CF2091F3008091F20090E0922BB6\r
+:101530006115710559F08830910540F4249120938C\r
+:10154000F1003196615071090196F2CF21E00897C0\r
+:1015500009F020E08091E8008E778093E800C5CF05\r
+:101560002111C6CFD5CF8091E501882339F0853090\r
+:1015700039F08091E80083FFCBCF04C082E008956A\r
+:1015800083E0089581E00895982F973058F590935F\r
+:10159000E900981739F07091EC002091ED0050911E\r
+:1015A000F00003C0242F762F50E021FF19C03091A6\r
+:1015B000EB003E7F3093EB003091ED003D7F3093A8\r
+:1015C000ED003091EB0031603093EB007093EC0054\r
+:1015D0002093ED005093F0002091EE0027FF07C00C\r
+:1015E0009F5FD3CF8F708093E90081E0089580E002\r
+:1015F00008958091E60187FD05C08091E80080FF95\r
+:101600000EC012C08091E80082FD05C08091E50106\r
+:101610008111F8CF08958091E8008B7708C0809100\r
+:10162000E5018111EACF08958091E8008E778093DB\r
+:10163000E80008958091E4009091E50045E620914E\r
+:10164000EC0020FF21C02091E80020FD21C0209166\r
+:10165000E501222389F0253089F02091EB0025FD5A\r
+:101660000FC02091E4003091E5002817390739F3C5\r
+:10167000415041F0C901E3CF82E0089583E008952D\r
+:1016800081E0089584E008952091E80022FFDFCFF3\r
+:1016900080E008950E94B80B0E94C00BE0EEF0E0DD\r
+:1016A000808181608083E8EDF0E080818F778083A6\r
+:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA\r
+:1016C00080831092E40108950F931F93CF93DF93CB\r
+:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4\r
+:1016E000888388818068888388818F7D888319BCFE\r
+:1016F0001092E5011092E1011092E3011092E201D3\r
+:1017000000EE10E0F80180818B7F8083888181600A\r
+:10171000888342E060E080E00E94C40AE1EEF0E0ED\r
+:1017200080818E7F8083E2EEF0E080818160808323\r
+:10173000808188608083F80180818E7F80838881AA\r
+:1017400080618883DF91CF911F910F910895E8ED1B\r
+:10175000F0E080818F7E8083E7EDF0E08081816022\r
+:10176000808384E082BF81E08093E4010C94640B69\r
+:10177000E8EDF0E080818E7F80831092E200089592\r
+:101780001092DA001092E10008951F920F920FB6A6\r
+:101790000F9211242F933F934F935F936F937F93F7\r
+:1017A0008F939F93AF93BF93EF93FF938091E1004B\r
+:1017B00082FF0BC08091E20082FF07C08091E100B0\r
+:1017C0008B7F8093E1000E94210E8091DA0080FFE0\r
+:1017D0001FC08091D80080FF1BC08091DA008E7FEF\r
+:1017E0008093DA008091D90080FF0DC080E189BD2F\r
+:1017F00082E189BD09B400FEFDCF81E08093E5015F\r
+:101800000E94290805C019BC1092E5010E94370802\r
+:101810008091E10080FF19C08091E20080FF15C037\r
+:101820008091E2008E7F8093E2008091E2008061EF\r
+:101830008093E2008091D80080628093D80019BC28\r
+:1018400085E08093E5010E943B088091E10084FFE0\r
+:1018500030C08091E20084FF2CC080E189BD82E12C\r
+:1018600089BD09B400FEFDCF8091D8008F7D8093A3\r
+:10187000D8008091E1008F7E8093E1008091E200AA\r
+:101880008F7E8093E2008091E20081608093E2008D\r
+:101890008091E101882311F084E007C08091E3008A\r
+:1018A00087FF02C083E001C081E08093E5010E94D0\r
+:1018B0003D088091E10083FF29C08091E20083FF11\r
+:1018C00025C08091E100877F8093E10082E08093D2\r
+:1018D000E5011092E1018091E1008E7F8093E100AB\r
+:1018E0008091E2008E7F8093E2008091E20080612F\r
+:1018F0008093E20042E060E080E00E94C40A8091B0\r
+:10190000F00088608093F0000E943A08FF91EF9108\r
+:10191000BF91AF919F918F917F916F915F914F9107\r
+:101920003F912F910F900FBE0F901F9018951F920F\r
+:101930000F920FB60F9211242F933F934F935F9303\r
+:101940006F937F938F939F93AF93BF93CF93EF93B7\r
+:10195000FF93C091E900CF708091EC001092E900F4\r
+:101960008091F000877F8093F00078940E94D30CE0\r
+:101970001092E9008091F00088608093F000C0939D\r
+:10198000E900FF91EF91CF91BF91AF919F918F911E\r
+:101990007F916F915F914F913F912F910F900FBE6B\r
+:1019A0000F901F9018951F93CF93DF93CDB7DEB79D\r
+:1019B000AA970FB6F894DEBF0FBECDBFE6EEF1E0FA\r
+:1019C0008091F100819321E0EE3EF207C9F70E9479\r
+:1019D00059088091E80083FF1CC12091E6013091F5\r
+:1019E000E701832F90E08A30910508F012C1FC01D5\r
+:1019F000EA5AFF4F0C949722203881F0223809F0E0\r
+:101A000008C18091EA018F708093E9008091EB001A\r
+:101A100085FB882780F91092E90006C08091E201D9\r
+:101A20009091E301911182609091E800977F9093EB\r
+:101A3000E8008093F1001092F100C5C0822F8D7FE5\r
+:101A400009F0E7C0222319F0223061F0E2C0809152\r
+:101A5000E801813009F0DDC0333009F080E0809387\r
+:101A6000E30128C08091E801811124C02091EA019E\r
+:101A70002F7009F4CEC02093E9008091EB0080FF25\r
+:101A800019C08091EB00333011F4806211C0806185\r
+:101A90008093EB0081E090E0022E01C0880F0A9451\r
+:101AA000EAF78093EA001092EA008091EB008860E8\r
+:101AB0008093EB001092E9008091E800877F86C058\r
+:101AC0002111A7C01091E8011F778091E300807871\r
+:101AD000812B8093E3008091E800877F8093E8006A\r
+:101AE0000E94F90A8091E80080FFFCCF8091E3001A\r
+:101AF00080688093E300112311F083E001C082E04D\r
+:101B00008093E50186C02058223008F082C0809181\r
+:101B1000E8019091E9018C3D23E0920779F583E09B\r
+:101B20008A838AE289834FB7F894DE01139620E016\r
+:101B30003EE051E2E32FF0E050935700E49120FFA4\r
+:101B400003C0E295EF703F5FEF708E2F90E0EA30B8\r
+:101B500010F0C79601C0C0968D939D932F5F2431DE\r
+:101B600049F74FBF8091E800877F8093E8006AE2E1\r
+:101B700070E0CE0101960E94010A14C0AE014F5FD1\r
+:101B80005F4F6091EA010E944909009709F441C042\r
+:101B90002091E800277F2093E800BC0189819A8189\r
+:101BA0000E94620A8091E8008B778093E80031C040\r
+:101BB000203879F58091E800877F8093E800809154\r
+:101BC000E1018093F1008091E8008E778093E80036\r
+:101BD0000E94F90A1EC021111CC09091E8019230A8\r
+:101BE000C0F48091E800877F8093E8009093E10142\r
+:101BF0000E94F90A8091E101811104C08091E30003\r
+:101C000087FF02C084E001C081E08093E5010E946B\r
+:101C100045088091E80083FF0AC08091E800877F33\r
+:101C20008093E8008091EB0080628093EB00AA969D\r
+:101C30000FB6F894DEBF0FBECDBFDF91CF911F91DD\r
+:101C400008950895CF938091E5018823B1F08091A4\r
+:101C5000E9008F709091EC0090FF02C090E801C005\r
+:101C600090E0C92FC82B1092E9008091E80083FD15\r
+:101C70000E94D30CCF70C093E900CF910895909348\r
+:101C80006901809368010895E0916801F09169010C\r
+:101C9000309721F00190F081E02D099480E00895C3\r
+:101CA000E0916801F0916901309721F00280F381A1\r
+:101CB000E02D09940895E0916801F0916901309751\r
+:101CC00021F00480F581E02D0994089520916601AA\r
+:101CD000309167018217930771F0909367018093A9\r
+:101CE0006601E0916801F0916901309721F006806A\r
+:101CF000F781E02D099408952091640130916501E8\r
+:101D00008217930771F09093650180936401E091CD\r
+:101D10006801F0916901309721F00084F185E02D90\r
+:101D20000994089508950C94920E0E94861A0E94B8\r
+:101D300019040C944C1BCF92DF92EF92FF920F93F9\r
+:101D40001F93CF93DF93CDB7DEB72B970FB6F894E1\r
+:101D5000DEBF0FBECDBF0E9436043BE6E32E31E06E\r
+:101D6000F32E00E010E0C02E802F0E942705F7011F\r
+:101D7000D1907F01D826B1F40F5F1F4F0E301105AF\r
+:101D800091F78FEF89838A831B820E948F1A81606B\r
+:101D9000782F9D838C8349815A816B818D810E942C\r
+:101DA0003E0F41C09091CC0191FF04C08B870E94EF\r
+:101DB0002D058B8520E030E04D2D50E0922FBA01AB\r
+:101DC000022E02C0759567950A94E2F760FF25C060\r
+:101DD0002E83CF82EE24E394F12C02C0EE0CFF1C84\r
+:101DE0009A95E2F790E08E219F2121E0892B09F45A\r
+:101DF00020E028870E948F1A8160782F9A87898730\r
+:101E00004E815F8168858A850E943E0FF801E55901\r
+:101E1000FE4F80818E25808306C02F5F3F4F263086\r
+:101E2000310561F6A9CF0E94301E10916A010E940F\r
+:101E3000440E1817A1F00E94440E80936A012B965D\r
+:101E40000FB6F894DEBF0FBECDBFDF91CF911F91CB\r
+:101E50000F91FF90EF90DF90CF900C944A072B9654\r
+:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB\r
+:101E70000F91FF90EF90DF90CF900895CF93DF9375\r
+:101E8000CDB7DEB72B970FB6F894DEBF0FBECDBF30\r
+:101E90004F83588769877A878B87DE01119686E0A2\r
+:101EA000FD0111928A95E9F785E0FE0137960190D0\r
+:101EB0000D928A95E1F749815A816B817C818D81F0\r
+:101EC0009E810E9471162B960FB6F894DEBF0FBE4E\r
+:101ED000CDBFDF91CF910895CF93C82F882309F408\r
+:101EE000C1C0823859F40E94440E81FDBBC089E311\r
+:101EF0000E9410190E94CA1989E30CC0833879F432\r
+:101F00000E94440E80FDAEC083E50E9410190E941D\r
+:101F1000CA1983E50E945019CF910C94CA198438CC\r
+:101F200059F40E94440E82FD9DC087E40E9410195E\r
+:101F30000E94CA1987E4EECF8CEF8C0F813A48F4E7\r
+:101F40008C2F0E94652081118DC08C2F0E9410194A\r
+:101F5000E3CF80E28C0F883048F4C77081E001C085\r
+:101F6000880FCA95EAF70E949119D6CF8BE58C0F9E\r
+:101F7000833078F4C53A29F0C63A31F482E890E02B\r
+:101F800005C081E890E002C083E890E0CF910C9416\r
+:101F9000660E88E58C0F833108F064C0C83A39F1C9\r
+:101FA000C93A41F1CA3A49F1CB3A51F1CC3A59F127\r
+:101FB000CD3A61F1C03B69F1CE3A71F1CF3A79F196\r
+:101FC000C13B81F1C23B89F1C33B91F1C43B99F123\r
+:101FD000C53BA1F1C63BA9F1C73BB1F1C83BB9F183\r
+:101FE000C93BC1F1CA3BC9F58AE292E038C082EE32\r
+:101FF00090E035C089EE90E032C08AEE90E02FC0CC\r
+:1020000085EB90E02CC086EB90E029C087EB90E058\r
+:1020100026C08CEC90E023C08DEC90E020C083E8DB\r
+:1020200091E01DC08AE891E01AC082E991E017C0F2\r
+:1020300084E991E014C081E292E011C083E292E071\r
+:102040000EC084E292E00BC085E292E008C086E216\r
+:1020500092E005C087E292E002C080E090E0CF917C\r
+:102060000C947C0ECF910895882309F44BC08238DC\r
+:1020700059F40E94440E81FF45C089E30E94101963\r
+:102080000E94CA1989E30CC0833871F40E94440E7F\r
+:1020900080FF38C083E50E9410190E94CA1983E5A9\r
+:1020A0000E9450190C94CA19843859F40E94440EA5\r
+:1020B00082FF28C087E40E9410190E94CA1987E491\r
+:1020C000EFCF9CEF980F913A58F390E2980F983029\r
+:1020D00050F4877091E001C0990F8A95EAF7892F33\r
+:1020E0000E949719DFCF9BE5980F933020F480E092\r
+:1020F00090E00C94660E885A833120F480E090E0E2\r
+:102100000C947C0E0895882321F00E9491190C9460\r
+:10211000CA190895882321F00E9497190C94CA19AE\r
+:102120000895CF92DF92EF92FF920F931F93CF9378\r
+:10213000DF93CDB7DEB728970FB6F894DEBF0FBE9A\r
+:10214000CDBF8C0185E0F801DE01119601900D9262\r
+:102150008A95E1F7F80140813181F280258122954D\r
+:102160002F7083819481892B31F03F3F31F481E0DE\r
+:102170004F3F19F403C081E001C080E080FDC4C27C\r
+:1021800049833A8389819A812F830E94CE189E8346\r
+:1021900088870E94CD180E94A0174E81E42FE295F7\r
+:1021A000EF70F0E0E05AFF4F2F8168850C94972282\r
+:1021B000842F807F142F1F70882311F01295107FB9\r
+:1021C000FF2059F0112309F454C2812F68870E941F\r
+:1021D000A1190E94CA1968854CC2862F0E9434102A\r
+:1021E000112309F491C2812F0E94A71928960FB6D6\r
+:1021F000F894DEBF0FBECDBFDF91CF911F910F913D\r
+:10220000FF90EF90DF90CF900C94CA19342F307F5D\r
+:10221000842F8F70303211F08295807F662319F001\r
+:10222000613019F12BC0FF20B1F0222309F493C1D2\r
+:10223000213009F090C128960FB6F894DEBF0FBE8A\r
+:10224000CDBFDF91CF911F910F91FF90EF90DF9065\r
+:10225000CF900C94B119222319F0213009F454C203\r
+:102260008E830E94B4198E8189C1FF2021F0223013\r
+:1022700008F04AC270C1211147C280C1FF2021F07D\r
+:10228000222309F468C1F5C1222309F477C105C2EC\r
+:10229000242F26952695237030E02115310521F055\r
+:1022A00021303105C9F030C2FF2021F0862F942F54\r
+:1022B000937002C080E090E028960FB6F894DEBFDD\r
+:1022C0000FBECDBFDF91CF911F910F91FF90EF9087\r
+:1022D000DF90CF900C94660EFF2021F0862F942F74\r
+:1022E000937002C080E090E028960FB6F894DEBFAD\r
+:1022F0000FBECDBFDF91CF911F910F91FF90EF9057\r
+:10230000DF90CF900C947C0E862FFF2019F00E9456\r
+:10231000381D02C00E94A01D28960FB6F894DEBF9B\r
+:102320000FBECDBFDF91CF911F910F91FF90EF9026\r
+:10233000DF90CF900C94251E842F837009F076C017\r
+:10234000F110E2C1262F229526952770220F220F29\r
+:10235000862F8F70C82ED12CE12CF12C022E04C0B8\r
+:10236000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DD\r
+:102370006FE070E080E090E004C0660F771F881F78\r
+:10238000991F2A95D2F7609570958095909503C016\r
+:1023900060E070E0CB01242F269526952370422F14\r
+:1023A00050E042305105D1F04330510559F16C29CC\r
+:1023B0007D298E299F294130510541F128960FB67C\r
+:1023C000F894DEBF0FBECDBFDF91CF911F910F916B\r
+:1023D000FF90EF90DF90CF900C94C5176C297D296A\r
+:1023E0008E299F2928960FB6F894DEBF0FBECDBF69\r
+:1023F000DF91CF911F910F91FF90EF90DF90CF90E1\r
+:102400000C94DF170E94C517C701B60128960FB6B6\r
+:10241000F894DEBF0FBECDBFDF91CF911F910F911A\r
+:10242000FF90EF90DF90CF900C94AB17FF2019F046\r
+:10243000842F817001C08695882309F465C1262FF9\r
+:10244000229526952770220F220F862F8F70C82E77\r
+:10245000D12CE12CF12C022E04C0CC0CDD1CEE1C86\r
+:10246000FF1C0A94D2F764FF10C06FE070E080E0B8\r
+:1024700090E004C0660F771F881F991F2A95D2F736\r
+:10248000609570958095909503C060E070E0CB01F9\r
+:10249000242F269526952370422F50E04230510577\r
+:1024A000D1F04330510559F16C297D298E299F299E\r
+:1024B0004130510541F128960FB6F894DEBF0FBEAA\r
+:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3\r
+:1024D000CF900C9499186C297D298E299F292896D4\r
+:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125\r
+:1024F0000F91FF90EF90DF90CF900C94B3180E9453\r
+:102500009918C701B60128960FB6F894DEBF0FBE22\r
+:10251000CDBFDF91CF911F910F91FF90EF90DF9092\r
+:10252000CF900C947F18603FC9F118F4603E50F4CE\r
+:102530009BC0623F09F460C008F44AC0633F09F4DD\r
+:102540006FC092C0162F1F70842F8F71FF2099F0DB\r
+:102550000E941818812F28960FB6F894DEBF0FBE80\r
+:10256000CDBFDF91CF911F910F91FF90EF90DF9042\r
+:10257000CF900C9483100E943918812F28960FB6A3\r
+:10258000F894DEBF0FBECDBFDF91CF911F910F91A9\r
+:10259000FF90EF90DF90CF900C948A10FF20A1F075\r
+:1025A0002111B2C0842F8F7128960FB6F894DEBF28\r
+:1025B0000FBECDBFDF91CF911F910F91FF90EF9094\r
+:1025C000DF90CF900C945E18223008F09DC0EACFC7\r
+:1025D000FF20A1F0842F8F7128960FB6F894DEBFEC\r
+:1025E0000FBECDBFDF91CF911F910F91FF90EF9064\r
+:1025F000DF90CF900C941818FF2061F3842F8F7117\r
+:1026000028960FB6F894DEBF0FBECDBFDF91CF91F5\r
+:102610001F910F91FF90EF90DF90CF900C9439189D\r
+:10262000FF2091F0842F8F7128960FB6F894DEBFAB\r
+:102630000FBECDBFDF91CF911F910F91FF90EF9013\r
+:10264000DF90CF900C94031828960FB6F894DEBF55\r
+:102650000FBECDBFDF91CF911F910F91FF90EF90F3\r
+:10266000DF90CF900C94F917FF20A1F0222309F4FA\r
+:10267000B1CF862F28960FB6F894DEBF0FBECDBF20\r
+:10268000DF91CF911F910F91FF90EF90DF90CF904E\r
+:102690000C946C0F222309F4B1CF862F28960FB625\r
+:1026A000F894DEBF0FBECDBFDF91CF911F910F9188\r
+:1026B000FF90EF90DF90CF900C9434104F70C801D2\r
+:1026C0000E94AB0228960FB6F894DEBF0FBECDBFB6\r
+:1026D000DF91CF911F910F91FF90EF90DF90CF90FE\r
+:1026E0000C941E174F70C80128960FB6F894DEBFE1\r
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053\r
+:10270000DF90CF900C94ED0528960FB6F894DEBFBD\r
+:102710000FBECDBFDF91CF911F910F91FF90EF9032\r
+:10272000DF90CF9008950E94AE190E9483190E94F5\r
+:10273000CA190E94D11E0E94251E80E090E00E94CE\r
+:10274000660E80E090E00C947C0E0E949E190C9422\r
+:1027500093130E94CE18292F22952F7030E02C3031\r
+:1027600031054CF42A3031056CF422503109223005\r
+:10277000310590F407C02C30310551F02F30310570\r
+:1027800039F00AC0803E10F0803F31F481E00895B6\r
+:1027900093FB882780F9089580E00895CF93DF9315\r
+:1027A00000D000D01F92CDB7DEB70F900F900F90E2\r
+:1027B0000F900F90DF91CF910895CF93DF9300D0CA\r
+:1027C00000D000D0CDB7DEB726960FB6F894DEBFA6\r
+:1027D0000FBECDBFDF91CF9108951F93CF93DF93AD\r
+:1027E000C091790116E080917A01C81799F0D0E084\r
+:1027F0001C9FF0011D9FF00D1124E558FE4F4081F4\r
+:10280000518162817381848195810E94DD132196BB\r
+:10281000C770E9CFDF91CF911F9108954091AB012F\r
+:102820005091AC016091AD017091AE018091AF010A\r
+:102830009091B0010C94DD13CF938091B0018295FB\r
+:102840008F7009F05FC08091AD01882309F45AC0F0\r
+:1028500020917901A0917A016091AB017091AC0156\r
+:102860008091AE019091AF0131E06F3F09F030E00F\r
+:10287000B32FC6E02A1709F445C0009721F07F3F27\r
+:1028800021F44B2F03C041E001C040E030E040FDA7\r
+:1028900035C0C29FF001C39FF00D1124E558FE4FD3\r
+:1028A000418174132BC04081641328C042814111BF\r
+:1028B00025C0438154814817590710F441505109EC\r
+:1028C000481B590B483C5105C8F48091B0018F70EA\r
+:1028D00080618093B00186E0829FF001839FF00DBC\r
+:1028E0001124E058FE4F80818F70806180838BEAD5\r
+:1028F00091E00E949110CF910C94ED132F5F3F4F08\r
+:102900002770B8CFCF910895CF92DF92EF92FF92C8\r
+:102910000F931F93CF93DF93CDB7DEB762970FB6B8\r
+:10292000F894DEBF0FBECDBF8C0185E0F801DE015B\r
+:102930001D9601900D928A95E1F7D8014C91119660\r
+:102940005C91119712966C9112971396ED90FC90F2\r
+:1029500014977091AB01E091AC012091AE013091E0\r
+:10296000AF012115310531F0EF3F31F481E07F3FB8\r
+:1029700019F403C081E001C080E0B82FB170CB2E04\r
+:1029800080FD6CC1D090AD01DD2009F4F5C0F0915F\r
+:10299000B001E216F30638F0C701821B930B883CA6\r
+:1029A000910548F09BC0209530952E0D3F1D283C89\r
+:1029B000310508F093C08F2F807F09F052C0E513D6\r
+:1029C00014C0741312C0D62E61110FC0FF70F061D5\r
+:1029D000F093B0010E940E148BEA91E00E949110D6\r
+:1029E0008091B001F80185836CC1EF2831F05F3F21\r
+:1029F00031F481E04F3F19F403C081E001C080E071\r
+:102A000080FD03C081E0862701C080E0F82FF170CF\r
+:102A1000FF2E80FF1CC08091790120917A0136E061\r
+:102A2000821709F428C190E0389FF001399FF00D1A\r
+:102A30001124E558FE4F7181571306C0708147136A\r
+:102A400003C07281671303C001968770E9CFD62E49\r
+:102A5000662309F436C18091B00181608093B00192\r
+:102A600053C0E51308C0741306C0611104C0D80137\r
+:102A70001596FC93AEC04D875E878D859E856A8BCB\r
+:102A80000E94A9136A89882329F1D62E662311F1A1\r
+:102A90002091B001822F82958F7090E002970CF404\r
+:102AA00060C08091AB019091AC0198878F831986AB\r
+:102AB000FB86EA862C87CE01079651C0E51731F1D7\r
+:102AC0004D875E878D859E856A8B0E94A9136A89D2\r
+:102AD00081112EC0C8010E949110A4C08F2F807F49\r
+:102AE00069F77E2DF98AE88A89890E94CE138BEADC\r
+:102AF00091E00E949110EBEAF1E086E0DF011D9287\r
+:102B00008A95E9F70E940E14D12CDBC07413D8CF3C\r
+:102B10006111D6CFD8011596FC93C8010E9491107F\r
+:102B2000EBEAF1E086E0DF011D928A95E9F7C9C082\r
+:102B3000D62E662379F22091B001822F82958F7074\r
+:102B400090E0029774F08091AB019091AC019A8370\r
+:102B500089831B82FD82EC822E83CE0101960E9426\r
+:102B6000911086E0F801ABEAB1E001900D928A95F0\r
+:102B7000E1F70E941C146FC0E216F30628F0C701AB\r
+:102B8000821B930B9C0104C0209530952E0D3F1D98\r
+:102B9000283C310508F052C0D62E662309F49ACF9E\r
+:102BA000E5132CC074132AC08091B00180FD1DC0B4\r
+:102BB000982F92959F70C9F0D80115968C93159710\r
+:102BC0009F3039F09F5F9295907F8F70892B15967B\r
+:102BD0008C93C8010E94911086E0F801ABEAB1E045\r
+:102BE00001900D928A95E1F736C086E0F801ABEAD4\r
+:102BF000B1E001900D928A95E1F763C04D875E8741\r
+:102C00008D859E850E94A913882379F086E0F801BE\r
+:102C1000ABEAB1E001900D928A95E1F70E941C1495\r
+:102C20000E940E14DD24D3944CC08091B0018160C9\r
+:102C30008093B001C8010E94911043C07E2DF98A93\r
+:102C4000E88A89890E94CE13EBEAF1E086E0DF0191\r
+:102C50001D928A95E9F70E940E1433C0662309F489\r
+:102C600039CF4D875E878D859E850E94A913882365\r
+:102C700009F430CFCBCF4D875E878D859E850E942E\r
+:102C8000CE18292F22952F7030E0223031052CF4F8\r
+:102C90009F7041F0811106C00CC0243031052CF426\r
+:102CA0009F7049F4805E883020F0C8010E94911026\r
+:102CB000CF2CDC2C06C0D80115969C91907F91F703\r
+:102CC000F8CF8D2D62960FB6F894DEBF0FBECDBF44\r
+:102CD000DF91CF911F910F91FF90EF90DF90CF90F8\r
+:102CE00008951F93CF93DF93CDB7DEB72C970FB620\r
+:102CF000F894DEBF0FBECDBF4F83588769877A87B0\r
+:102D00008B879C87CE0107960E9484148823C1F08C\r
+:102D10002F8138858A859B85892B31F03F3F11F0C3\r
+:102D200080E003C02F3FE1F781E0811147C04F8170\r
+:102D3000588569857A858B859C850E94DD133EC008\r
+:102D400086E0FE013796DE01119601900D928A957C\r
+:102D5000E1F7FF81E8854A855B854115510531F032\r
+:102D6000EF3F31F481E0FF3F19F403C081E001C07F\r
+:102D700080E080FD23C020917A0130E0C9010196F6\r
+:102D8000877099276091790170E086179707F1F1B4\r
+:102D9000F983EA835D834C8396E0929FD001939FF1\r
+:102DA000B00D1124A558BE4FFE01319601900D9231\r
+:102DB0009A95E1F780937A010E94ED1316E08091D5\r
+:102DC000790190917A01891779F1189FC001112436\r
+:102DD00085589E4F0E948414882331F1E091790137\r
+:102DE0001E9FF0011124E558FE4F40815181628100\r
+:102DF0007381848195810E94DD138091790190E037\r
+:102E000001968770992780937901D9CF0E94A513E5\r
+:102E100010927A0110927901EBEAF1E086E0DF018D\r
+:102E20001D928A95E9F7CACF2C960FB6F894DEBFAB\r
+:102E30000FBECDBFDF91CF911F910895EF92FF920A\r
+:102E40000F931F93CF93DF939C01009709F471C0F8\r
+:102E5000F12CEE24E394E9012196F9018491843761\r
+:102E600040F4843008F056C0813081F0823021F186\r
+:102E700060C0853709F449C0C0F19CE7980F9037CE\r
+:102E800008F057C08F770E94341046C089010E5F4A\r
+:102E90001F4FFE01849190E2980F983050F4877094\r
+:102EA000FE2D01C0FF0F8A95EAF78F2F0E94A1190E\r
+:102EB00015C00E946C0F14C089010E5F1F4FFE01E8\r
+:102EC000849190E2980F983068F48770FE2D01C0CD\r
+:102ED000FF0F8A95EAF78F2F0E94A7190E94CA193F\r
+:102EE000E8011AC00E943410FBCF2E5F3F4FFE0155\r
+:102EF000C491CC2341F08FE99FE00197F1F700C026\r
+:102F00000000C150F6CFE90107C0FE01F490E901CD\r
+:102F1000229602C00E946C0F8F2D882341F0EFE9AA\r
+:102F2000FFE03197F1F700C000008150F6CF9E011D\r
+:102F300092CFDF91CF911F910F91FF90EF90089565\r
+:102F400008956093B5017093B6018093B701909393\r
+:102F5000B8010C9493130F931F930091B501109136\r
+:102F6000B6012091B7013091B801062B172B282B01\r
+:102F7000392B0093B5011093B6012093B70130931C\r
+:102F8000B8011F910F910C9493130F931F9300910D\r
+:102F9000B5011091B6012091B7013091B801062317\r
+:102FA0001723282339230093B5011093B6012093EA\r
+:102FB000B7013093B8011F910F910C9493130F93A5\r
+:102FC0001F930091B5011091B6012091B701309186\r
+:102FD000B80106271727282739270093B501109332\r
+:102FE000B6012093B7013093B8011F910F910C9453\r
+:102FF00093131092B1011092B2011092B30110928A\r
+:10300000B4010C94931341E050E060E070E004C020\r
+:10301000440F551F661F771F8A95D2F74093B10161\r
+:103020005093B2016093B3017093B4010C94931365\r
+:1030300041E050E060E070E004C0440F551F661F9F\r
+:10304000771F8A95D2F78091B1019091B201A0913A\r
+:10305000B301B091B401842B952BA62BB72B809391\r
+:10306000B1019093B201A093B301B093B4010C9459\r
+:10307000931341E050E060E070E004C0440F551F3E\r
+:10308000661F771F8A95D2F7409550956095709589\r
+:103090008091B1019091B201A091B301B091B401BE\r
+:1030A00084239523A623B7238093B1019093B20183\r
+:1030B000A093B301B093B4010C94931341E050E09A\r
+:1030C00060E070E004C0440F551F661F771F8A95AB\r
+:1030D000D2F78091B1019091B201A091B301B0916A\r
+:1030E000B40184279527A627B7278093B101909331\r
+:1030F000B201A093B301B093B4010C9493130F9356\r
+:103100001F930091B1011091B2012091B301309150\r
+:10311000B401062B172B282B392B0093B1011093E8\r
+:10312000B2012093B3013093B4011F910F910C941D\r
+:1031300093130F931F930091B1011091B20120914D\r
+:10314000B3013091B40106231723282339230093B8\r
+:10315000B1011093B2012093B3013093B4011F91D8\r
+:103160000F910C9493130F931F930091B101109141\r
+:10317000B2012091B3013091B40106271727282707\r
+:1031800039270093B1011093B2012093B30130931A\r
+:10319000B4011F910F910C9493130895CF92DF9275\r
+:1031A000EF92FF920F931F93CF93DF93EC01C090A8\r
+:1031B000B501D090B601E090B701F090B8018091D0\r
+:1031C000B1019091B201A091B301B091B401C82AAC\r
+:1031D000D92AEA2AFB2A0FE110E0B701A601002E46\r
+:1031E00004C076956795579547950A94D2F740FFA6\r
+:1031F00007C0BE01802F0E9410068130910539F46E\r
+:103200000150110950F7BE0180E00E941006DF91C5\r
+:10321000CF911F910F91FF90EF90DF90CF90089585\r
+:1032200090910C019923D9F090910D019923B9F057\r
+:10323000982F9695969596959F3088F5E0910E017A\r
+:10324000F0910F01E90FF11D877021E030E001C01E\r
+:10325000220F8A95EAF78181822B8183089540911C\r
+:103260000E0150910F0120E030E09FEFFA01E20FD4\r
+:10327000F31F6281681799F09F3F19F4611101C033\r
+:10328000922F2F5F3F4F2E30310581F79F3F39F04E\r
+:10329000FA01E90FF11D97FDFA95828308950895CB\r
+:1032A00090910C019923E1F090910D019923C1F0C7\r
+:1032B000982F9695969596959F3020F5E0910E0162\r
+:1032C000F0910F01E90FF11D877021E030E001C09E\r
+:1032D000220F8A95EAF7209581812823218308957A\r
+:1032E00040910E0150910F0120E030E0FA01E20F11\r
+:1032F000F31F9281981301C012822F5F3F4F2E302F\r
+:103300003105A1F7089581E090E0E0910E01F09180\r
+:103310000F01E80FF91F1082019680319105A9F77E\r
+:1033200008959091CB01982B9093CB0108958095AF\r
+:103330009091CB0198239093CB0108951092CB01EB\r
+:1033400008959091CA01982B9093CA010895809591\r
+:103350009091CA0198239093CA0108951092CA01CE\r
+:1033600008958093B90108951092B901089540918C\r
+:103370000E0150910F0120E030E080E0FA01E20FF1\r
+:10338000F31F918191118F5F2F5F3F4F2F303105D8\r
+:10339000A9F70895E0910E01F0910F018091CB0102\r
+:1033A0008083E0910E01F0910F0180819091CA011C\r
+:1033B000892B80839091B901992361F0E0910E01EE\r
+:1033C000F0910F018081892B80830E94B7198111B0\r
+:1033D0001092B90180910E0190910F010C94500E42\r
+:1033E000CF92DF92EF92FF920F931F936C01EE2426\r
+:1033F000FF24C114D104E104F10421F46B017C0128\r
+:1034000080E001C080E133272F2D1E2D0D2D0115E9\r
+:1034100011052105310519F0885F680179019701CF\r
+:103420008601A4E03695279517950795AA95D1F7BB\r
+:10343000011511052105310519F08C5F680179012D\r
+:1034400097018601F2E03695279517950795FA952D\r
+:10345000D1F7011511052105310519F08E5F6801BD\r
+:103460007901B701A6017695679557954795452B44\r
+:10347000462B472B09F08F5F1F910F91FF90EF9024\r
+:10348000DF90CF9008958091E501843009F110928A\r
+:10349000CD0120E488E190E00FB6F894A8958093E0\r
+:1034A00060000FBE2093600083B7817F846083BF7C\r
+:1034B00083B7816083BF7894889583B78E7F83BFFD\r
+:1034C00088E10FB6F89480936000109260000FBE00\r
+:1034D000089508950895CF930E94691A0E943604B2\r
+:1034E0000E946A1AC0E08C2F0E942705811105C036\r
+:1034F000CF5FCE30C1F780E001C081E0CF91089569\r
+:103500000E94A5130E94440E0C944A0782E084BDD9\r
+:1035100093E095BD9AEF97BD80936E0008952FB705\r
+:10352000F8948091CE019091CF01A091D001B091FB\r
+:10353000D1012FBF0895CF92DF92EF92FF920F93A8\r
+:103540001F932FB7F8944091CE015091CF01609115\r
+:10355000D0017091D1012FBF6A017B01EE24FF24BD\r
+:103560008C0120E030E0C016D106E206F30610F42C\r
+:1035700041505109481B590BCA011F910F91FF90EF\r
+:10358000EF90DF90CF9008951F920F920FB60F9299\r
+:1035900011248F939F93AF93BF938091CE0190910D\r
+:1035A000CF01A091D001B091D1010196A11DB11D13\r
+:1035B0008093CE019093CF01A093D001B093D1011D\r
+:1035C000BF91AF919F918F910F900FBE0F901F9061\r
+:1035D00018950E944A0BF8942FEF87EA91E6215044\r
+:1035E00080409040E1F700C0000087E090EBDC01F4\r
+:1035F0008093EE019093EF01A093F001B093F1015D\r
+:103600002CE088E190E00FB6F894A89580936000D4\r
+:103610000FBE20936000FFCFEF92FF920F931F9396\r
+:10362000CF93DF93E82EF12C8F2D0E942705C0E069\r
+:10363000D0E0082F10E098010C2E02C03595279598\r
+:103640000A94E2F720FD05C02196C630D10599F70E\r
+:1036500009C06C2F7F2D80E00E94EE05E812F4CFA8\r
+:1036600081E005C0F3948EE0F812DECF80E0DF91B8\r
+:10367000CF911F910F91FF90EF900895CF93C82F96\r
+:103680008CE20E940C1B882321F08C2FCF910C948C\r
+:103690000C1B80E0CF910895CF930E94911C811163\r
+:1036A00002C00E94771CC5E6C15049F00E94360452\r
+:1036B0008FE39CE90197F1F700C00000F5CF89E2A4\r
+:1036C0000E943E1B811111C18AE20E943E1B8111A2\r
+:1036D0000E94771C85E00E943E1B81110E94E91A1E\r
+:1036E0000E949C1C8093CC0187E00E943E1B882393\r
+:1036F00099F18BE10E943E1B882351F09091CC01FF\r
+:1037000091FB882780F921E0822780FB91F922C074\r
+:103710008EE00E943E1B882351F09091CC0192FBD9\r
+:10372000882780F921E0822780FB92F913C080E18D\r
+:103730000E943E1B9091CC01882341F093FB882787\r
+:1037400080F921E0822780FB93F904C0892F8095BE\r
+:1037500080FB90F99093CC018091CC010E94A01C39\r
+:103760000E94AE1C8093DF0180EE0E943E1B8823E6\r
+:1037700041F08091DF01982F909590FB80F9809324\r
+:10378000DF0189E30E943E1B882359F09091DF01FD\r
+:1037900091FB882780F921E0822780FB91F99093A3\r
+:1037A000DF0182EE0E943E1B882359F09091DF01D9\r
+:1037B00092FB882780F921E0822780FB92F9909381\r
+:1037C000DF0186EE0E943E1B882359F09091DF01B5\r
+:1037D00093FB882780F921E0822780FB93F990935F\r
+:1037E000DF0183EE0E943E1B882359F09091DF0198\r
+:1037F00094FB882780F921E0822780FB94F990933D\r
+:10380000DF0185E30E943E1B882359F09091DF0180\r
+:1038100095FB882780F921E0822780FB95F990931A\r
+:10382000DF0181E30E943E1B882359F09091DF0164\r
+:1038300096FB882780F921E0822780FB96F99093F8\r
+:10384000DF0181E10E943E1B882359F09091DF0146\r
+:1038500097FB882780F921E0822780FB97F99093D6\r
+:10386000DF018091DF010E94B21C8091DF0187FBA4\r
+:10387000882780F980930D0187E20E943E1BC82FA4\r
+:103880008EE10E943E1B8111C2608FE10E943E1BAF\r
+:103890008111C46080E20E943E1B8111C86081E2F8\r
+:1038A0000E943E1B8111C06182E20E943E1B811179\r
+:1038B000C06283E20E943E1B8111C06484E20E94C8\r
+:1038C0003E1B882311F0C06802C0CC2329F08C2F46\r
+:1038D0000E94A91C6C2F03C00E94A51C682F70E0D9\r
+:1038E00080E090E0CF910C94A117CF9108956DEEF8\r
+:1038F0007EEF80E090E00E94CD2260E082E090E0E8\r
+:103900000E94BF2260E083E090E00E94BF2260E05E\r
+:1039100084E090E00E94BF2260E085E090E00C949B\r
+:10392000BF2280E090E00E94B92221E08D3E9E4FB0\r
+:1039300009F020E0822F089582E090E00C94B122FB\r
+:10394000682F82E090E00C94BF2283E090E00C941A\r
+:10395000B122682F83E090E00C94BF2284E090E0D5\r
+:103960000C94B122682F84E090E00C94BF228091E7\r
+:10397000D40180FF0BC06091130185E0689FB00106\r
+:10398000112475956795759567952AC081FF09C0C3\r
+:103990006091130185E0689FB001112475956795CA\r
+:1039A0001FC082FF07C06091130185E0689FB001CE\r
+:1039B000112416C04091D5014423C9F06091120131\r
+:1039C000461788F72091130185E0289F9001112464\r
+:1039D000429FC001439F900D112470E00E948322FA\r
+:1039E0006038710540F46115710539F002C065E079\r
+:1039F00070E0862F08958FE7089581E00895809103\r
+:103A0000D40180FF08C06091110170E07595679541\r
+:103A10007595679521C081FF06C06091110170E026\r
+:103A20007595679519C082FF04C06091110170E01F\r
+:103A300010C08091D5018823C1F0609110018617D4\r
+:103A4000A0F790911101989FC001112470E00E948D\r
+:103A500083226038710528F46115710521F0862FE5\r
+:103A600008958FE7089581E0089561E070E0F4CF54\r
+:103A7000803F21F40E94B71C819504C0813F29F446\r
+:103A80000E94B71C8093D8010895823F21F40E94C0\r
+:103A9000B71C819504C0833F29F40E94B71C809312\r
+:103AA000D7010895893F19F40E94FF1C05C08A3F81\r
+:103AB00031F40E94FF1C81958093D90108958B3FBA\r
+:103AC00021F40E94FF1C819504C08C3F29F40E94C0\r
+:103AD000FF1C8093DA010895843F21F48091D60180\r
+:103AE000816017C0853F21F48091D601826011C0AA\r
+:103AF000863F21F48091D60184600BC0873F21F47A\r
+:103B00008091D601886005C0883F31F48091D6014C\r
+:103B100080618093D60108958D3F21F48091D40176\r
+:103B200081600BC08E3F21F48091D401826005C07A\r
+:103B30008F3F29F48091D40184608093D40108954B\r
+:103B4000803F39F48091D80187FF6CC01092D80172\r
+:103B500069C0813F29F48091D8011816BCF362C076\r
+:103B60009091D701823F29F497FF5CC01092D70152\r
+:103B700059C0833F19F41916CCF354C0893F41F45E\r
+:103B80008091D90118160CF04DC01092D9014AC08D\r
+:103B90008A3F29F48091D90187FF44C0F6CF8B3F3B\r
+:103BA00039F48091DA0187FF3DC01092DA013AC002\r
+:103BB0008C3F29F48091DA011816BCF333C0843F9E\r
+:103BC00021F48091D6018E7F17C0853F21F480912A\r
+:103BD000D6018D7F11C0863F21F48091D6018B7F65\r
+:103BE0000BC0873F21F48091D601877F05C0883FB5\r
+:103BF00031F48091D6018F7E8093D60113C08D3F22\r
+:103C000021F48091D4018E7F0BC08E3F21F48091EE\r
+:103C1000D4018D7F05C08F3F29F48091D4018B7F23\r
+:103C20008093D4018091D70181110EC08091D80179\r
+:103C300081110AC08091D901811106C08091DA01F9\r
+:103C4000811102C01092D501089586ED91E00E9485\r
+:103C50005B0E0E948F1A9093D3018093D201089536\r
+:103C60001F93CF93DF938091D2019091D3010E9453\r
+:103C70009B1A4091D501442321F02091140130E09A\r
+:103C800006C0209115015AE0259F9001112482174A\r
+:103C9000930708F482C08091D7011091D801D09188\r
+:103CA000D901C091DA01811107C0111105C0D111EC\r
+:103CB00003C0CC2309F471C04F3F19F04F5F40930C\r
+:103CC000D501181624F40E94B71C8093D701809167\r
+:103CD000D70187FF05C00E94B71C81958093D7014B\r
+:103CE000111624F40E94B71C8093D8018091D8014A\r
+:103CF00087FF05C00E94B71C81958093D801609111\r
+:103D0000D701662339F11091D801112319F17727D2\r
+:103D100067FD7095872F972F0E94942123E333E34B\r
+:103D200043E35FE30E94F8210E9461216093D70181\r
+:103D3000612F772767FD7095872F972F0E94942119\r
+:103D400023E333E343E35FE30E94F8210E94612110\r
+:103D50006093D8011D1624F40E94FF1C8093D901A2\r
+:103D60008091D90187FF05C00E94FF1C8195809337\r
+:103D7000D9011C1624F40E94FF1C8093DA01809163\r
+:103D8000DA0187FF05C00E94FF1C81958093DA014C\r
+:103D9000DF91CF911F910C94251EDF91CF911F9140\r
+:103DA0000895E6EDF1E085E0DF011D928A95E9F7DF\r
+:103DB0001092D5011092D4010895833081F128F436\r
+:103DC000813059F08230D1F00895853009F449C02E\r
+:103DD000B8F1863009F456C0089520911501862F58\r
+:103DE00090E0820F911D8F3F910520F4620F609348\r
+:103DF000150108958FEF8093150108952091140106\r
+:103E0000862F90E0820F911D8F3F910520F4620F65\r
+:103E10006093140108958FEF809314010895209109\r
+:103E20001301862F90E0820F911D8F3F910520F4A2\r
+:103E3000620F6093130108958FEF8093130108952B\r
+:103E400020911201862F90E0820F911D8F3F9105E6\r
+:103E500020F4620F6093120108958FEF8093120196\r
+:103E6000089520911101862F90E0820F911D8F3FC0\r
+:103E7000910520F4620F6093110108958FEF8093F4\r
+:103E80001101089520911001862F90E0820F911D5D\r
+:103E90008F3F910520F4620F6093100108958FEF1A\r
+:103EA000809310010895833011F128F4813049F096\r
+:103EB000823091F00895853081F120F18630C1F192\r
+:103EC000089580911501681720F4861B80931501D1\r
+:103ED000089510921501089580911401681720F437\r
+:103EE000861B809314010895109214010895809107\r
+:103EF0001301681720F4861B809313010895109214\r
+:103F00001301089580911201681720F4861B809395\r
+:103F100012010895109212010895809111016817FD\r
+:103F200020F4861B809311010895109211010895C9\r
+:103F300080911001681720F4861B8093100108956A\r
+:103F40001092100108958D3109F442C020F58E3091\r
+:103F500009F479C070F4873009F45EC020F486302B\r
+:103F600009F442C033C08830D1F18B3009F4A7C0C6\r
+:103F70002DC0863109F4A3C038F4803109F46DC036\r
+:103F8000813109F47BC022C0893109F498C08B319A\r
+:103F900009F44FC01BC0853309F479C048F4873257\r
+:103FA00009F475C008F478C0893209F470C00EC0F5\r
+:103FB000833438F48A3308F071C0883309F47FC041\r
+:103FC00005C0833409F463C08834C1F080E00895EB\r
+:103FD0000E941B210E94440E0E944A0770C00E944A\r
+:103FE0009C1C0E94AE1C6BC08091CC01817F8E7F97\r
+:103FF0008093CC0181E08093DC0108950E94A51399\r
+:104000002FEF83ED90E3215080409040E1F700C016\r
+:1040100000000E94E91A53C09091CC01892F817051\r
+:1040200090FF03C0917F9E7F26C091609093CC014A\r
+:1040300046C09091CC0191FB882780F921E082272E\r
+:1040400080FB91F913C09091CC0192FB882780F9F5\r
+:1040500021E0822780FB92F909C09091CC0193FB6B\r
+:10406000882780F921E0822780FB93F99093CC0187\r
+:10407000882329F191609093CC0108950E94A513A3\r
+:1040800080910D0191E0892780930D0118C061E0B6\r
+:1040900070E080E090E00FC023EE01C027EC280F15\r
+:1040A00061E070E080E090E004C0660F771F881F39\r
+:1040B000991F2A95D2F70E94A1170E94A51381E0AB\r
+:1040C000089580E0089580E00895CF93C82F8091EF\r
+:1040D000DC01813079F018F08230D1F184C0A091F8\r
+:1040E0000E01B0910F018C91813169F0823209F09B\r
+:1040F0007CC009C0A0910E01B0910F018C9181315B\r
+:1041000011F0823249F48C2F0E94612081111DC070\r
+:104110008C2F0E94A31F1AC08C2F0E946320811134\r
+:1041200014C0C43179F048F4CB3079F0C03109F0D3\r
+:1041300060C082E08093DC0108C0C93219F0C83346\r
+:1041400021F057C01092DC0154C081E0817053C04F\r
+:10415000C93289F118F5C43171F1A8F4C73009F0FA\r
+:1041600046C08AE08093150194E19093140193E096\r
+:10417000909313018093120188E08093110188E2EB\r
+:104180008093100134C0CE51C63088F5EC2FF0E09A\r
+:10419000E65DFE4F80818093DB0129C0CE34E9F0DB\r
+:1041A00020F4CB3421F56AE013C0C13579F0C23573\r
+:1041B000F1F461E00DC08091DB01882319F01092C9\r
+:1041C000DB0115C081E08093DC0115C061E006C011\r
+:1041D0008091DB010E94DD1E0AC06AE08091DB0154\r
+:1041E0000E94531F04C01092DC0180E004C081E0F3\r
+:1041F00002C080E0ABCFCF910895E1E8F0E080818C\r
+:10420000886080838081816080838FB7F89493E099\r
+:104210009093890090ED909388008FBF0895EFE60A\r
+:10422000F0E08081826080830895EFE6F0E0808195\r
+:104230008D7F80830895EFE6F0E0808192E089270A\r
+:10424000808308951F920F920FB60F9211242F931F\r
+:104250003F934F935F936F937F938F939F93AF930E\r
+:10426000BF93EF93FF938091DD019091DE01019662\r
+:104270009093DE018093DD01811103C082E00E94F2\r
+:104280004A07E091DE01E695E695F0E0E657FB4F40\r
+:10429000E4918091DD018E1303C080E00E944A0703\r
+:1042A000FF91EF91BF91AF919F918F917F916F910E\r
+:1042B0005F914F913F912F910F900FBE0F901F90E4\r
+:1042C000189504D06894B1118DC0089570D088F00D\r
+:1042D0009F5790F0B92F9927B751A0F0D1F0660FF2\r
+:1042E000771F881F991F1AF0BA95C9F712C0B1300D\r
+:1042F00081F077D0B1E0089574C0672F782F8827B8\r
+:10430000B85F39F0B93FCCF3869577956795B3954B\r
+:10431000D9F73EF490958095709561957F4F8F4FBA\r
+:104320009F4F0895E89409C097FB3EF490958095BF\r
+:10433000709561957F4F8F4F9F4F9923A9F0F92F6B\r
+:1043400096E9BB279395F695879577956795B795E9\r
+:10435000F111F8CFFAF4BB0F11F460FF1BC06F5FCF\r
+:104360007F4F8F4F9F4F16C0882311F096E911C0E1\r
+:10437000772321F09EE8872F762F05C0662371F002\r
+:1043800096E8862F70E060E02AF09A95660F771F16\r
+:10439000881FDAF7880F9695879597F9089557FD46\r
+:1043A0009058440F551F59F05F3F71F04795880FA3\r
+:1043B00097FB991F61F09F3F79F08795089512163A\r
+:1043C00013061406551FF2CF4695F1DF08C01616E6\r
+:1043D00017061806991FF1CF869571056105089497\r
+:1043E0000895E894BB2766277727CB0197F90895AE\r
+:1043F0000BD078C069D028F06ED018F0952309F062\r
+:104400005AC05FC01124EECFCADFA0F3959FD1F34D\r
+:10441000950F50E0551F629FF001729FBB27F00D72\r
+:10442000B11D639FAA27F00DB11DAA1F649F6627C7\r
+:10443000B00DA11D661F829F2227B00DA11D621F16\r
+:10444000739FB00DA11D621F839FA00D611D221FD0\r
+:10445000749F3327A00D611D231F849F600D211DB4\r
+:10446000822F762F6A2F11249F5750408AF0E1F057\r
+:1044700088234AF0EE0FFF1FBB1F661F771F881FA0\r
+:1044800091505040A9F79E3F510570F014C0AACF3B\r
+:104490005F3FECF3983EDCF3869577956795B7958B\r
+:1044A000F795E7959F5FC1F7FE2B880F911D9695B5\r
+:1044B000879597F9089597F99F6780E870E060E025\r
+:1044C00008959FEF80EC089500240A9416161706AD\r
+:1044D00018060906089500240A94121613061406F5\r
+:1044E00005060895092E0394000C11F4882352F058\r
+:1044F000BB0F40F4BF2B11F460FF04C06F5F7F4F10\r
+:104500008F4F9F4F089597FB072E16F4009407D006\r
+:1045100077FD09D00E949D2207FC05D03EF49095BE\r
+:1045200081959F4F0895709561957F4F0895EE0F87\r
+:10453000FF1F0590F491E02D0994AA1BBB1B51E1CC\r
+:1045400007C0AA1FBB1FA617B70710F0A61BB70B03\r
+:10455000881F991F5A95A9F780959095BC01CD01A8\r
+:104560000895F999FECF92BD81BDF89A992780B53B\r
+:104570000895A8E1B0E042E050E00C94D422262F48\r
+:10458000F999FECF1FBA92BD81BD20BD0FB6F89438\r
+:10459000FA9AF99A0FBE019608950E94BF22272F1A\r
+:1045A0000C94C022DC01CB01FC01F999FECF06C0BE\r
+:1045B000F2BDE1BDF89A319600B40D9241505040E1\r
+:0845C000B8F70895F894FFCF4D\r
+:1045C80020024B07D807B50781074E070101BA013A\r
+:1045D80028080A03140A3F4D36394B04FE03C80362\r
+:1045E8008F0322033B0354036D03010203040506F2\r
+:0445F80007080900A7\r
 :00000001FF\r
index f0c584015329965fef75d888faca322c2766f47f..6575f7b5e378d7bce55f6a23e3e9327f9894526f 100644 (file)
Binary files a/keyboard/ergodox_ez/keymaps/default/default.png and b/keyboard/ergodox_ez/keymaps/default/default.png differ
index 169d31367c65db65467447cabf6a0fa360f24e18..7d9f045f43a0f75ad26880ab65e09317ef3a5bd3 100644 (file)
Binary files a/keyboard/ergodox_ez/keymaps/default/default_highres.png and b/keyboard/ergodox_ez/keymaps/default/default_highres.png differ
index b2f0a051d565b1730a6729399c8cb2a1579f45db..f252bf71d5a3d7d8784cec68e5bccef23a6606fa 100644 (file)
@@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
  * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|   '    |
+ * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd |
  * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
  * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         // right hand
              KC_RGHT,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
              TG(SYMB),    KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             KC_BSLS,
-                          KC_H,   KC_J,   KC_K,   KC_L,   LT(MDIA, KC_SCLN),KC_QUOT,
+                          KC_H,   KC_J,   KC_K,   KC_L,   LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
              MEH_T(KC_NO),KC_N,   KC_M,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,
                                   KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          KC_FN1,
              KC_LALT,        CTL_T(KC_ESC),
index a1a8ad44f851b24e75cc36dc7be748abf989efe0..8f6dba45e9a67d28de86d871996b180384b66f2e 100644 (file)
@@ -1,5 +1,10 @@
 # ErgoDox EZ Default Configuration
 
+## Changelog
+
+* Feb 2, 2016 (V1.1): 
+  * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows).
+
 This is what we ship with out of the factory. :) The image says it all:
 
 ![Default](default_highres.png)
diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png
new file mode 100644 (file)
index 0000000..1d25837
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png differ
diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex
new file mode 100644 (file)
index 0000000..542a466
--- /dev/null
@@ -0,0 +1,1472 @@
+:100000000C9403070C9447070C9447070C9447077C\r
+:100010000C9447070C9447070C9447070C94470728\r
+:100020000C9447070C9447070C945B120C942D1307\r
+:100030000C9447070C9447070C9447070C94470708\r
+:100040000C9447070C94072C0C9447070C94470713\r
+:100050000C9447070C94FF210C9447070C94470716\r
+:100060000C9447070C9447070C9447070C944707D8\r
+:100070000C9447070C9447070C9447070C944707C8\r
+:100080000C9447070C9447070C9447070C944707B8\r
+:100090000C9447070C9447070C9447070C944707A8\r
+:1000A0000C9447070C9447070C9447079A13BC130A\r
+:1000B000AA14BC13AA1401142414AA1479148C14BD\r
+:1000C000D317D31702180218451883189C1A9C1AC4\r
+:1000D0009C189C1A9D199D19701A9C1A9C1A871AB3\r
+:1000E0000000F0A135002B003171E1000152000049\r
+:1000F0001E00140004001D00E0004D001F001A0047\r
+:1001000016001B0050002A0020000800070006000F\r
+:100110004F002C002100150009001900E2004A00E0\r
+:10012000220017000A00050000004C0001542F00B7\r
+:100130000000E60000004900025430000000E60024\r
+:100140000000290023001C000B00110000006500C6\r
+:10015000240018000D001000E2004B0025000C00E8\r
+:100160000E00360052002800260012000F00370053\r
+:100170005100E3002700130033003800E4004E0074\r
+:100180002E002D003471E500025200000100010034\r
+:1001900001000100010000003A001E0220022202BC\r
+:1001A000010001003B001F022102230201000100A7\r
+:1001B0003C002F0226022F00010001003D0030020A\r
+:1001C00027023000010001003E00310235003502F7\r
+:1001D000000001000100010000000100000001001A\r
+:1001E0000100010000000100000001003F0052007A\r
+:1001F00051002402000001004000240021001E00E4\r
+:10020000270001004100250022001F0027000100F7\r
+:100210004200260023002000370001004300250291\r
+:100220002E0231002E0001004400450001000100B3\r
+:1002300001000000010001000100010001000000B8\r
+:1002400001000100010001000100010001000100A6\r
+:10025000F2000100010001000100F000F1000100C6\r
+:10026000F400010001000100F3000100F5000100AD\r
+:100270000100010001000100000001000100010077\r
+:100280000000010000000100010001000000010069\r
+:100290000000010001000100010001000000010058\r
+:1002A0000100010001000100A9000100010001009E\r
+:1002B0000100AC00AA00B600010001000100AB0083\r
+:1002C000A80001000100010001000100010001007F\r
+:1002D00001000100AE000100010000000A0025300D\r
+:1002E000313662003A200025303258000A722F63FE\r
+:1002F0002030313233343536373839414243444582\r
+:10030000460A000A002530325800626F756E636538\r
+:10031000213A20006C6566742073696465206174FD\r
+:100320007461636865640A006C656674207369644F\r
+:1003300065206E6F7420726573706F6E64696E678E\r
+:100340000A00747279696E6720746F207265736534\r
+:1003500074206D637032333031380A000A444542EC\r
+:1003600055473A20656E61626C65642E0A005B73C6\r
+:100370005D004B6579626F617264207374617274A1\r
+:100380002E0A005B575D005B535D005B525D005BB6\r
+:10039000445D005B435D0016034500720067006F1B\r
+:1003A0000044006F007800200045005A000000164D\r
+:1003B000034500720067006F0044006F0078002062\r
+:1003C0000045005A0000000403090409028D0005DD\r
+:1003D0000100A0FA09040000010301010009211134\r
+:1003E000010001223F000705810308000A090401FA\r
+:1003F000000103010200092111010001224D000743\r
+:1004000005820308000A0904020001030000000934\r
+:1004100021110100012236000705830308000A09A3\r
+:100420000403000203000000092111010001222041\r
+:1004300000070584032000010705040320000109CB\r
+:100440000404000103000000092111010001223908\r
+:1004500000070585031000011201100100000008CB\r
+:10046000EDFE071301000102000105010906A101CB\r
+:10047000050719E029E71500250195087501810296\r
+:100480000508190129059505750191029501750366\r
+:100490009101050719002977150025019578750147\r
+:1004A0008102C00631FF0974A1010975150025FFFD\r
+:1004B0009520750881020976150025FF952075089D\r
+:1004C0009102C005010980A101850216010026B72D\r
+:1004D000001A01002AB700751095018100C0050CB3\r
+:1004E0000901A1018503160100269C021A01002AB8\r
+:1004F0009C02751095018100C005010902A1010946\r
+:1005000001A10005091901290515002501950575A9\r
+:100510000181029501750381010501093009311539\r
+:1005200081257F95027508810609381581257F95FB\r
+:100530000175088106050C0A38021581257F950191\r
+:1005400075088106C0C005010906A101050719E06B\r
+:1005500029E71500250195087501810295017508A7\r
+:10056000810105081901290595057501910295017B\r
+:10057000750391010507190029FF150025FF950650\r
+:1005800075088100C00A002530325820006B65795B\r
+:10059000626F6172645F7265706F72743A20000AF4\r
+:1005A0000025303258006B6579626F6172645F7349\r
+:1005B00065745F6C65643A200064656C5F6B657997\r
+:1005C0005F6269743A2063616E27742064656C3AD7\r
+:1005D00020253032580A006164645F6B65795F6280\r
+:1005E00069743A2063616E2774206164643A20253F\r
+:1005F0003032580A00646F6E652E0A00626F6F67B2\r
+:100600006D61676963207363616E3A202E2E2E2020\r
+:1006100000290A002575002F002575005D2800259A\r
+:10062000640020002564002000256400200025646B\r
+:10063000007C0025303258006D6F7573656B6579ED\r
+:10064000205B62746E7C782079207620685D287249\r
+:1006500065702F61636C293A205B006D6B5F776872\r
+:1006600065656C5F74696D655F746F5F6D6178203F\r
+:100670003D2025640A006D6B5F776865656C5F6D72\r
+:1006800061785F7370656564203D2025640A006DA4\r
+:100690006B5F74696D655F746F5F6D6178203D207D\r
+:1006A00025640A006D6B5F6D61785F7370656564CA\r
+:1006B000203D2025640A006D6B5F696E746572765B\r
+:1006C000616C203D2025640A006D6B5F64656C6180\r
+:1006D00079203D2025640A006D6B5F776865656C45\r
+:1006E0005F74696D655F746F5F6D6178203D202573\r
+:1006F000640A006D6B5F776865656C5F6D61785F3C\r
+:100700007370656564203D2025640A006D6B5F741D\r
+:10071000696D655F746F5F6D6178203D2025640AA7\r
+:10072000006D6B5F6D61785F7370656564203D205F\r
+:1007300025640A006D6B5F696E74657276616C206A\r
+:100740003D2025640A006D6B5F64656C6179203D16\r
+:100750002025640A000A00257500363A207768656E\r
+:10076000656C5F74696D655F746F5F6D61783A2069\r
+:10077000000A00257500353A20776865656C5F6D65\r
+:1007800061785F73706565643A20000A0025750022\r
+:10079000343A2074696D655F746F5F6D61783A20DB\r
+:1007A000000A00257500333A206D61785F7370652B\r
+:1007B00065643A20000A00257500323A20696E749B\r
+:1007C000657276616C286D73293A20000A002575E0\r
+:1007D00000313A2064656C6179282A31306D7329C3\r
+:1007E0003A20000A092D2056616C756573202D0A88\r
+:1007F000004D3E004D25643E20003F00736574208F\r
+:1008000064656661756C740A00433E200077686514\r
+:1008100072652064656C74613A20637572736F72DF\r
+:100820003D25642C20776865656C3D25640A536519\r
+:100830006520687474703A2F2F656E2E77696B6926\r
+:1008400070656469612E6F72672F77696B692F4DD0\r
+:100850006F7573655F6B6579730A000A092D204D0A\r
+:100860006F7573656B6579202D0A4553432F713A77\r
+:1008700009717569740A313A0964656C6179282ACD\r
+:1008800031306D73290A323A09696E746572766186\r
+:100890006C286D73290A333A096D61785F7370654E\r
+:1008A00065640A343A0974696D655F746F5F6D61E0\r
+:1008B000780A353A09776865656C5F6D61785F73B2\r
+:1008C000706565640A363A09776865656C5F7469B6\r
+:1008D0006D655F746F5F6D61780A0A703A097072B6\r
+:1008E000696E742076616C7565730A643A09736584\r
+:1008F000742064656661756C74730A75703A092BAF\r
+:10090000310A646F776E3A092D310A706775703A53\r
+:10091000092B31300A7067646F776E3A092D3130D8\r
+:100920000A0A7370656564203D2064656C746120FB\r
+:100930002A206D61785F7370656564202A202872B3\r
+:100940006570656174202F2074696D655F746F5FD9\r
+:100950006D6178290A003F004D3E2000433E200093\r
+:100960004C25640A000A092D20436F6E736F6C6575\r
+:10097000202D0A4553432F713A09717569740A6D28\r
+:100980003A096D6F7573656B65790A000A092D2048\r
+:100990004D61676963202D0A643A09646562756771\r
+:1009A0000A783A096465627567206D6174726978C6\r
+:1009B0000A6B3A096465627567206B6579626F61DD\r
+:1009C00072640A6D3A096465627567206D6F7573AC\r
+:1009D000650A763A0976657273696F6E0A733A0929\r
+:1009E0007374617475730A633A09636F6E736F6C25\r
+:1009F00065206D6F64650A302D343A096C61796544\r
+:100A000072302D34284631302D4634290A50617514\r
+:100A1000733A09626F6F746C6F616465720A653A4C\r
+:100A200009656570726F6D0A6E3A094E4B524F0A36\r
+:100A30007A3A09736C656570204C4544207465737F\r
+:100A4000740A000A002575002E6E6B726F3A200042\r
+:100A50000A002575002E737761705F6261636B73A6\r
+:100A60006C6173685F6261636B73706163653A2088\r
+:100A7000000A002575002E737761705F67726176DA\r
+:100A8000655F6573633A20000A002575002E6E6F5E\r
+:100A90005F6775693A20000A002575002E7377613B\r
+:100AA000705F72616C745F726775693A20000A004A\r
+:100AB0002575002E737761705F6C616C745F6C6775\r
+:100AC00075693A20000A002575002E636170736C09\r
+:100AD0006F636B5F746F5F636F6E74726F6C3A20DD\r
+:100AE000000A002575002E737761705F636F6E7466\r
+:100AF000726F6C5F636170736C6F636B3A20000A96\r
+:100B00000025303258006B65796D61705F636F6EE0\r
+:100B10006669672E7261773A20000A002575002EFB\r
+:100B20006D6F7573653A20000A002575002E6B65A0\r
+:100B300079626F6172643A20000A002575002E6D9B\r
+:100B400061747269783A20000A002575002E656E7E\r
+:100B500061626C653A20000A0025303258006465F5\r
+:100B60006275675F636F6E6669672E7261773A20A0\r
+:100B7000000A0025750064656661756C745F6C61C0\r
+:100B80007965723A20003F004E4B524F3A206F6613\r
+:100B9000660A004E4B524F3A206F6E0A0074696D20\r
+:100BA00065725F636F756E743A202530346C580A35\r
+:100BB000006B6579626F6172645F6E6B726F3A2071\r
+:100BC00025580A006B6579626F6172645F69646CB5\r
+:100BD000653A2025580A006B6579626F6172645F1F\r
+:100BE00070726F746F636F6C3A2025580A00686FDB\r
+:100BF00073745F6B6579626F6172645F6C65647357\r
+:100C000028293A2025580A000A092D2053746174B6\r
+:100C10007573202D0A004743433A20342E392E3372\r
+:100C2000204156522D4C4942433A20312E382E3124\r
+:100C3000204156525F415243483A20617672350A4C\r
+:100C4000004F5054494F4E533A204C554641204294\r
+:100C50004F4F544D41474943204D4F5553454B4508\r
+:100C6000592045585452414B455920434F4E534FFC\r
+:100C70004C4520434F4D4D414E44204E4B524F204A\r
+:100C80003531320A004255494C443A203230303630\r
+:100C90003038342D6469727479202830313A313615\r
+:100CA0003A3235204A616E203331203230313629D4\r
+:100CB0000A005649443A2030784645454428457252\r
+:100CC000676F446F7820455A29205049443A2030B4\r
+:100CD0007831333037284572676F446F7820455A32\r
+:100CE00029205645523A203078303030310A0044BD\r
+:100CF0004553433A20742E6D2E6B2E206B6579621E\r
+:100D00006F617264206669726D7761726520666FCB\r
+:100D100072204572676F646F780A000A092D2056A9\r
+:100D2000657273696F6E202D0A000A6D6F757365A9\r
+:100D30003A206F66660A000A6D6F7573653A206F18\r
+:100D40006E0A000A6B6579626F6172643A206F66A1\r
+:100D5000660A000A6B6579626F6172643A206F6E91\r
+:100D60000A000A6D61747269783A206F66660A003B\r
+:100D70000A6D61747269783A206F6E0A000A6465C0\r
+:100D80006275673A206F6E0A000A64656275673A99\r
+:100D9000206F66660A000A0A626F6F746C6F616486\r
+:100DA00065722E2E2E2000433E20006565636F6E17\r
+:100DB0006669673A0A00536C656570204C454420AB\r
+:100DC000746573740A000000000000000000000059\r
+:100DD00000010204060A0F17202C3A4A5D71879D14\r
+:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113\r
+:100DF0005D4A3A2C20170F0A060402010000000089\r
+:100E000000000000000011241FBECFEFDAE0DEBFBB\r
+:100E1000CDBF04B603FE24C08091F9019091FA0180\r
+:100E2000A091FB01B091FC018730904BA740B04BE3\r
+:100E3000B9F41092F9011092FA011092FB0110928C\r
+:100E4000FC0114BE84B7877F84BF88E10FB6F89495\r
+:100E500080936000109260000FBEE0E0FFE3099510\r
+:100E600011E0A0E0B1E0EAEAFBE502C005900D92D6\r
+:100E7000AA33B107D9F711E0AAE3B1E001C01D928E\r
+:100E8000A93FB107E1F70E94930F0C94D32D0C9466\r
+:100E90000000FF93EF93E0913A01F0913B0130970E\r
+:100EA00009F00995EF91FF910895FC01859180303B\r
+:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC\r
+:100EC0000CC0419597FF09C0EDE260957095809543\r
+:100ED0009095611D711D811D911D27FF02C02195F7\r
+:100EE00030E350E2AA27660F771F881F991FAA1FB9\r
+:100EF000A41710F0A41B63955A95A9F7AA3008F01F\r
+:100F0000A95FA05DAF93F39561157105810591050A\r
+:100F100041F7ED3211F4EF93F395F21718F43F9384\r
+:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D\r
+:100F3000F9918591803021F0853219F0AADFF9CF3F\r
+:100F4000089520E0E89455915532C1F3503311F4DF\r
+:100F5000689455915A3348F4505390F3220F022E5F\r
+:100F6000220F220F200D250FF4CF0EF42195899129\r
+:100F70009991533619F3533729F1533559F1BC017F\r
+:100F800088279927E8945C3621F48991999168948F\r
+:100F90005591543639F446EF7EF077FF0DC08FEF50\r
+:100FA0009FEF0AC055374AE039F0583540E121F04B\r
+:100FB000523642E009F00895FF93EF937DDFEF9101\r
+:100FC000FF91B7CFFF93EF93FC0181918030B9F38C\r
+:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319\r
+:100FE000CDB7DEB72596A3DFCF91DF9108956111CC\r
+:100FF0000BC0FC018281882321F085EE0E947016CF\r
+:1010000003C085EE0E94381780E090E008950895AF\r
+:101010006091BC017091BD018091BE019091BF01B2\r
+:101020000E94FE2056985E9825982D9826982E9816\r
+:1010300027982F98813019F0823021F00895259A51\r
+:101040002D9A0895269A2E9A089588E098E0892B83\r
+:1010500011F00E94080880E090E0089556985E988C\r
+:1010600025982D9826982E9827982F988FEF90E006\r
+:10107000909389008093880090938B0080938A00DE\r
+:1010800090938D0080938C00259A2D9A2FEF80E706\r
+:1010900092E0215080409040E1F700C00000269A85\r
+:1010A0002E9A2FEF80E792E0215080409040E1F7A8\r
+:1010B00000C00000279A2F9A2FEF80E792E021507E\r
+:1010C00080409040E1F700C0000025982D982FEF58\r
+:1010D00080E792E0215080409040E1F700C000009E\r
+:1010E00026982E982FEF80E792E021508040904084\r
+:1010F000E1F700C0000027982F9856985E98259831\r
+:101100002D9826982E9827982F98089589EA8093ED\r
+:10111000800089E08093810024982C983F988AB1C0\r
+:101120008F748AB96E98479A8BB1806B8BB9769A17\r
+:101130000E942E0887E098E0892B11F00E94070892\r
+:1011400080E090E0089580E28093000180913C016E\r
+:1011500081110EC00E94F20881E080933C012FEFC4\r
+:1011600083ED90E3215080409040E1F700C0000003\r
+:1011700080E40E94F8088093000181112EC00E9433\r
+:10118000220980930001811128C00E9422098093C6\r
+:101190000001811122C08FE30E9422098093000187\r
+:1011A00081111BC00E941A0980E40E94F8088093F4\r
+:1011B0000001811112C08CE00E942209809300017D\r
+:1011C00081110BC00E94220980930001811105C08A\r
+:1011D0008FE30E942209809300010E941A098091E6\r
+:1011E000000108951092B9008AE08093B800089534\r
+:1011F00094EA9093BC009091BC0097FFFCCF909133\r
+:10120000B900987F983021F0903111F081E0089575\r
+:101210008093BB0084E88093BC008091BC0087FF72\r
+:10122000FCCF8091B900887F883111F0803471F74C\r
+:1012300080E0089584E98093BC008091BC0084FD27\r
+:10124000FCCF08958093BB0084E88093BC0080911C\r
+:10125000BC0087FFFCCF9091B900987F81E0983265\r
+:1012600009F480E0089584E88093BC008091BC007C\r
+:1012700087FFFCCF8091BB00089580910001811110\r
+:1012800015C080E40E94F8088093000181110CC011\r
+:1012900082E10E94220980930001811105C08FEF35\r
+:1012A0000E942209809300010E941A0984B1807F64\r
+:1012B00084B985B1807F85B98AB1837F8AB98BB1C2\r
+:1012C000837F8BB93E98469808950E94A308809327\r
+:1012D00000010E943D0980B38C7080BB81B3836F95\r
+:1012E00081BBAEE3B1E0ECE4F1E08EE08E0F119251\r
+:1012F0001D928E13FCCF86E898E0892B11F00C9498\r
+:10130000860808959F92AF92BF92CF92DF92EF929C\r
+:10131000FF920F931F93CF93DF9380910001882357\r
+:10132000E1F080913D018F5F80933D01811115C0F7\r
+:1013300082E493E00E9455070E94A3088093000175\r
+:10134000882329F088E293E00E94550706C084E1D3\r
+:1013500093E00E9455070E942E080EE311E0C0E0C2\r
+:10136000D0E0BB24B39482E0A82ECC24C394D12C2B\r
+:1013700025E0E22E23E0F22EC730D10500F5809162\r
+:101380000001811164C080E40E94F808809300018C\r
+:10139000811112C082E10E94220980930001811113\r
+:1013A0000BC0C6010C2E01C0880F0A94EAF7809585\r
+:1013B0000E942209809300010E941A0948C0CA3085\r
+:1013C000A1F028F4C83059F0C93061F005C0CC3024\r
+:1013D00089F070F0CD3089F0209A289810C0219AB9\r
+:1013E00029980DC0229A2A980AC0239A2B9807C0E0\r
+:1013F000529A01C0539A5B9802C03E9A469890EA6E\r
+:101400009A95F1F79FB1799902C082E001C080E01E\r
+:1014100091709B25982B7C9902C084E001C080E0EC\r
+:10142000892B7D9902C038E001C030E0832B7E9982\r
+:1014300002C020E101C020E0822B9FB19095991F4E\r
+:101440009927991F9295990F907E892B10C08091B2\r
+:101450000001811174C080E40E94F80880930001AB\r
+:10146000882309F459C0912C0E941A09892DF8018A\r
+:101470009081981739F1808380910101882301F1CF\r
+:101480008091D70180FF04C08AE093E00E94550755\r
+:101490008091D70180FF0CC0809101011F928F9332\r
+:1014A000FF92EF920E94EE070F900F900F900F9017\r
+:1014B0008091D70180FF04C083E093E00E9455072C\r
+:1014C000A09201010E943D0921960F5F1F4FCE306F\r
+:1014D000D10509F051CF809101018823B1F08150ED\r
+:1014E00080930101882339F08FE99FE00197F1F79C\r
+:1014F00000C000000AC0ACE4B1E0EEE3F1E0CF01CF\r
+:10150000825F91919D938E13FCCF85E298E0892BA9\r
+:10151000C1F00E94250815C083E10E942209809332\r
+:1015200000018111A0CF81E40E94F808809300019E\r
+:10153000811199CF0E943309982E909495CF80E025\r
+:1015400096CF81E0DF91CF911F910F91FF90EF90A7\r
+:10155000DF90CF90BF90AF909F900895E82FF0E07C\r
+:10156000E45BFE4F80810895CF92DF92EF92FF926D\r
+:101570000F931F93CF93DF938CEE92E00E94550759\r
+:101580008CE4E82E81E0F82EC0E0D0E097EEC92E82\r
+:1015900092E0D92E0EED12E0DF93CF93DF92CF923F\r
+:1015A0000E94EE0784EE92E00E945507F7018191B8\r
+:1015B0007F0190E00E9464219F938F931F930F936C\r
+:1015C0000E94EE078CED92E00E94550721968DB7A0\r
+:1015D0009EB708960FB6F8949EBF0FBE8DBFCE3053\r
+:1015E000D105D1F6DF91CF911F910F91FF90EF9030\r
+:1015F000DF90CF9008958B3B910578F4883A910560\r
+:1016000040F5853A9105D0F48430910508F0B1C0D9\r
+:101610008130910509F4ADC06BC0803E910508F49E\r
+:1016200067C0883E910508F4A4C09C01205F310981\r
+:101630002031310508F05CC090650895853A910528\r
+:1016400009F459C0863A910509F058C082E890E43F\r
+:101650000895883A910509F454C0893A910509F42E\r
+:1016600053C08A3A910509F452C08B3A910509F4A6\r
+:1016700051C08C3A910509F450C08D3A910509F496\r
+:101680004FC0803B910509F44EC08E3A910509F494\r
+:101690004DC08F3A910509F44CC0813B910509F486\r
+:1016A0004BC0823B910509F44AC0833B910509F484\r
+:1016B00049C0843B910509F448C0853B910509F474\r
+:1016C00047C0863B910509F446C0873B910509F464\r
+:1016D00045C0883B910509F444C0893B910509F454\r
+:1016E00043C08A3B910509F442C080E094E4089528\r
+:1016F00080E090E0089581E890E4089583E890E424\r
+:10170000089582EE94E4089589EE94E408958AEEB3\r
+:1017100094E4089585EB94E4089586EB94E40895A9\r
+:1017200087EB94E408958CEC94E408958DEC94E4B4\r
+:10173000089583E895E408958AE895E4089582E998\r
+:1017400095E4089584E995E4089581E296E4089586\r
+:1017500083E296E4089584E296E4089585E296E4AF\r
+:10176000089586E296E4089587E296E408958AE271\r
+:1017700096E40895089596E0799FF001112494E588\r
+:10178000899FE00DF11D1124E60FF11DEE0FFF1FE3\r
+:10179000EC51FF4F859194910895880F991FFC019A\r
+:1017A000E05AF040859194910895880F991FFC01AB\r
+:1017B000E052FF4F85919491089526E0729FF001C9\r
+:1017C000112444E5849FE00DF11D1124E60FF11D65\r
+:1017D000EE0FFF1FEC51FF4F859194919C013A95BC\r
+:1017E00021154FE1340708F41EC13F512115304146\r
+:1017F00020F49F700E94D50B08959C013053211551\r
+:10180000304118F49927906C0895811520E59207CE\r
+:1018100069F40E94BE1A4FEF84E39CE0415080407F\r
+:101820009040E1F700C000000C942422813020E5B4\r
+:10183000920751F48CE593E00E9455078091D701FF\r
+:1018400081608093D70108959C0130552115304166\r
+:1018500008F051C0292F33272F703327213031054D\r
+:10186000D9F4AC014370552702C0220F331F4A95AB\r
+:10187000E2F73C68AC0164E0440F551F6A95E1F75C\r
+:1018800044275370242B352B73E0880F991F7A95CA\r
+:10189000E1F7807699271DC02230310529F4982F71\r
+:1018A0008827816F906A089523303105A9F4AC012F\r
+:1018B0004370552721E030E002C0220F331F4A95C4\r
+:1018C000E2F73C6843E0880F991F4A95E1F7807E74\r
+:1018D0009770822B932B089524303105E1F4AC01ED\r
+:1018E0004370552721E030E002C0220F331F4A9594\r
+:1018F000E2F73A68E7CF9C0130572115304118F4E0\r
+:101900009F70906208959C0130582115304118F461\r
+:101910009F70906A0895803E9105E0F4803C9105A7\r
+:1019200058F58133910509F46FC048F48932910567\r
+:1019300009F463C08A32910509F46DC072C089331D\r
+:101940009105E9F082389105D1F08533910509F4CC\r
+:101950004DC067C0833E910581F138F4803E91050A\r
+:10196000B9F0823E9105D9F05CC0863E910561F1E7\r
+:10197000873E9105A1F155C00E94CD0B089520919D\r
+:10198000EA0120FD02C021FF4CC080EE90E049C07A\r
+:101990008091EA0180FFF9CF89E390E042C0809115\r
+:1019A000EA0182FF0EC08091EA0184FF03C080E05B\r
+:1019B00090E037C083EE90E034C08091EA0182FF6E\r
+:1019C000F2CF82EE90E02DC08091EA0183FF0BC040\r
+:1019D0008091EA0184FDEBCF87EE90E022C08091F8\r
+:1019E000EA0183FFF5CF86EE90E01BC08091EA010B\r
+:1019F00085FF07C089E290E014C08091EA0185FF6D\r
+:101A0000F9CF85E390E00DC08091EA0186FF07C021\r
+:101A10008AE290E006C08091EA0186FFF9CF81E377\r
+:101A200090E00E94FB0A0895089580916D01089549\r
+:101A30009FB7F89410925C019FBF9091F001943091\r
+:101A400009F057C09091E9009F703091EC00232F6E\r
+:101A5000217030FD20E8922B24E02093E9002091B2\r
+:101A6000EB0020FF43C02091EE0027FF3FC02091F4\r
+:101A70005A01222321F02091E80025FF37C010925F\r
+:101A80005A0126E03091E80035FD15C03091F00193\r
+:101A9000343061F53091EB0035FD28C0215021F440\r
+:101AA00081E080935A0122C0EFE9FFE03197F1F71E\r
+:101AB00000C00000E7CF8093F1008091E80085FD31\r
+:101AC0000AC08091E80080FFFCCF8091E8008E770B\r
+:101AD0008093E80006C08FB7F89421E020935C0162\r
+:101AE0008FBF9F709093E90080E008959F7090935E\r
+:101AF000E9008FEF0895CF93DF9300D01F92CDB709\r
+:101B0000DEB79C018091F001843019F593E0998350\r
+:101B10003B832A839093E9008FEF9091E8008150F6\r
+:101B200095FD06C095ED9A95F1F700008111F5CF6E\r
+:101B30008091E80085FF0DC040E050E063E070E078\r
+:101B4000CE0101960E944B108091E8008E77809321\r
+:101B5000E8000F900F900F90DF91CF910895CF93F1\r
+:101B6000DF9300D01F92CDB7DEB72091F001243073\r
+:101B700021F522E029839B838A8383E08093E90017\r
+:101B80008FEF9091E800815095FD06C095ED9A95F4\r
+:101B9000F1F700008111F5CF8091E80085FF0DC0BD\r
+:101BA00040E050E063E070E0CE0101960E944B10EF\r
+:101BB0008091E8008E778093E8000F900F900F904F\r
+:101BC000DF91CF9108952091F0012430F1F422E0CB\r
+:101BD0002093E9002FEF3091E800215035FD06C039\r
+:101BE00035ED3A95F1F700002111F5CF2091E8008D\r
+:101BF00025FF0BC040E050E065E070E00E944B1014\r
+:101C00008091E8008E778093E8000895CF93DF936A\r
+:101C10002091F001243009F048C0EC0180910C01C2\r
+:101C20008823E1F080910D018823C1F085E0809345\r
+:101C3000E9008FEF9091E800815095FD06C095E195\r
+:101C40009A95F1F700008111F5CF8091E80085FFAA\r
+:101C50002CC040E050E060E170E017C081E080936C\r
+:101C6000E9008FEF9091E800815095FD06C095ED59\r
+:101C70009A95F1F700008111F5CF8091E80085FF7A\r
+:101C800014C040E050E068E070E0CE010E944B10CC\r
+:101C90008091E8008E778093E80080E1FE01ADE559\r
+:101CA000B1E001900D928A95E1F7DF91CF9108950F\r
+:101CB00083E993E00E9455078091EF01811109C0EB\r
+:101CC0000E94E0110E943D128091E20084608093A6\r
+:101CD000E20008958FE893E00E9455071092EF010B\r
+:101CE00008958BE893E00C94550787E893E00E94F1\r
+:101CF00055070C94F42B83E893E00E9455070E944B\r
+:101D0000BA210E94FA2B0E94E2140C94140D209127\r
+:101D10005B012F5F822F62E30E94682D992319F0E7\r
+:101D200020935B01089510925B0180915C018823F0\r
+:101D300071F18091F001843041F58091E9008F705C\r
+:101D40002091EC00922F917020FD90E8892B94E077\r
+:101D50009093E9009091EB0090FF14C09091EE00F9\r
+:101D600097FF10C09091E80095FF03C01092F1001A\r
+:101D7000F9CF9091E80090FF05C09091E8009E7720\r
+:101D80009093E8008F708093E90010925C010895B1\r
+:101D900042E061EC81E00E945A1142E061EC82E095\r
+:101DA0000E945A1142E061EC83E00E945A1142E223\r
+:101DB00061EC84E00E945A1142E161EC85E00C94F0\r
+:101DC0005A118091F201833009F455C030F481300A\r
+:101DD00071F0823009F48EC008958A3009F47AC017\r
+:101DE0008B3009F460C0893009F09CC020C080911C\r
+:101DF000F101813A09F096C08091E800877F8093D5\r
+:101E0000E8008091F5019091F601892B21F460E1C1\r
+:101E10008DE591E003C060E080E090E070E00E941A\r
+:101E200096108091E8008B778093E8000895809168\r
+:101E3000F101813209F076C08091F5019091F601AF\r
+:101E4000009719F0049709F06DC08091E800877F32\r
+:101E50008093E8008091E80082FD05C08091F00148\r
+:101E60008111F8CF5FC08091F10080936D01809166\r
+:101E7000E8008B7753C08091F101813A09F052C09C\r
+:101E80008091F5019091F601892B09F04BC080916A\r
+:101E9000E800877F8093E8008091E80080FFFCCF16\r
+:101EA00080910C0136C08091F1018132D9F5809189\r
+:101EB000F5019091F601892BA9F58091E800877FC3\r
+:101EC0008093E8000E948F118091F30180930C01B0\r
+:101ED0000C94BE1A8091F101813221F58091E800C5\r
+:101EE000877F8093E8000E948F118091F401809396\r
+:101EF0006E0108958091F101813AA1F48091E8008A\r
+:101F0000877F8093E8008091E80080FFFCCF80917C\r
+:101F10006E018093F1008091E8008E778093E80055\r
+:101F20000C948F11089584B7877F84BF88E10FB622\r
+:101F3000F89480936000109260000FBE90E080E8FB\r
+:101F40000FB6F89480936100909361000FBE0E94D9\r
+:101F50006F150E94E0110E943D128091E2008460A2\r
+:101F60008093E20088E19DE00E94F92078940E942D\r
+:101F7000C2140E94711582E091E00E94DD140E945B\r
+:101F8000E22B82E793E00E9455078091F0018530B3\r
+:101F900089F48EE693E00E9455070E947E2180918D\r
+:101FA000EE01882391F30E94A621882371F30E94F9\r
+:101FB0003510EBCF0E949F15E8CF292F3327233010\r
+:101FC0003105C9F064F42130310581F0223031054A\r
+:101FD00009F043C08DE890E02BEC33E042C02132A1\r
+:101FE0003105F1F02232310541F137C082E190E054\r
+:101FF00028E534E036C099278130910541F08230E0\r
+:10200000910541F0892B49F5E7ECF3E005C0EFEAD3\r
+:10201000F3E002C0E7E9F3E0849190E09F0121C082\r
+:102020006530D8F4E62FF0E0EE0FFF1FEB5DFE4FBA\r
+:102030002081318189E090E014C0653070F470E057\r
+:10204000FB01EE0FFF1FE55EFE4F20813181FB019A\r
+:10205000EA5EFE4F808190E004C080E090E020E0E6\r
+:1020600030E0FA0131832083089580E189BD82E167\r
+:1020700089BD09B400FEFDCF8091D8008F7D80938B\r
+:10208000D8008091E00082608093E0008091E000C1\r
+:1020900081FDFCCF0895CF92DF92EF92FF920F93D4\r
+:1020A0001F93CF93DF93EC018B016A010E94AE1165\r
+:1020B000811133C0C114D10439F0F60180819181BE\r
+:1020C000081B190BC80FD91FE12CF12C01151105A4\r
+:1020D00019F18091E80085FD16C08091E8008E77A7\r
+:1020E0008093E800C114D10449F0F6018081918108\r
+:1020F000E80EF91EF182E08285E00FC00E94AE1169\r
+:10210000882321F30AC089918093F10001501109BD\r
+:10211000FFEFEF1AFF0ADACF80E0DF91CF911F9136\r
+:102120000F91FF90EF90DF90CF9008952091F701ED\r
+:102130003091F8012617370748F06115710539F419\r
+:102140002091E8002E772093E80001C0B90140E01B\r
+:1021500061157105A9F12091F001222309F443C012\r
+:10216000253009F442C02091E80023FD40C02091B1\r
+:10217000E80022FD32C02091E80020FFE9CF409125\r
+:10218000F3002091F20030E0342BFC01CF01611507\r
+:10219000710559F02830310540F481918093F100A8\r
+:1021A000615071092F5F3F4FF1CF41E02830310579\r
+:1021B00009F040E02091E8002E772093E800C8CF96\r
+:1021C0004111C9CF0AC08091F001882361F08530A8\r
+:1021D00061F08091E80083FD0AC08091E80082FFF1\r
+:1021E000F2CF80E0089582E0089583E0089581E0D1\r
+:1021F00008952091F7013091F8012617370748F02C\r
+:102200006115710539F42091E8002E772093E800DC\r
+:1022100001C0B901FC0120E06115710591F18091C7\r
+:10222000F001882309F440C0853009F43FC0809153\r
+:10223000E80083FD3DC08091E80082FD2FC08091C1\r
+:10224000E80080FFE9CF2091F3008091F20090E058\r
+:10225000922B6115710559F08830910540F4249155\r
+:102260002093F1003196615071090196F2CF21E07F\r
+:10227000089709F020E08091E8008E778093E800CD\r
+:10228000CBCF2111CCCF0AC08091F001882361F01F\r
+:10229000853061F08091E80083FD0AC08091E800FC\r
+:1022A00082FFF2CF80E0089582E0089583E00895F0\r
+:1022B00081E00895982F973058F59093E90098178A\r
+:1022C00039F07091EC002091ED005091F00003C0C6\r
+:1022D000242F762F50E021FF19C03091EB003E7F74\r
+:1022E0003093EB003091ED003D7F3093ED00309165\r
+:1022F000EB0031603093EB007093EC002093ED0025\r
+:102300005093F0002091EE0027FF07C09F5FD3CFCE\r
+:102310008F708093E90081E0089580E008958091B6\r
+:10232000F10187FF11C08091E80082FD05C0809116\r
+:10233000F0018111F8CF11C08091E8008B770BC0BC\r
+:102340008091F001882349F08091E80080FFF8CF68\r
+:102350008091E8008E778093E80008952091E40052\r
+:102360003091E50095E64091EC00842F817040FFAC\r
+:1023700022C08091E80080FD1CC08091F00188237C\r
+:1023800091F0853091F08091EB0085FD10C0409177\r
+:10239000E4005091E5004217530729F39A01915048\r
+:1023A00011F784E0089582E0089583E0089581E0C4\r
+:1023B000089580E008954091E80042FFDECF08953F\r
+:1023C0000E944E120E945612E0EEF0E08081816081\r
+:1023D0008083E8EDF0E080818F77808319BCA7EDE2\r
+:1023E000B0E08C918E7F8C9380818F7E8083109261\r
+:1023F000EF0108950F931F93CF93DF930E944E1226\r
+:102400000E945612C8EDD0E088818F77888388813A\r
+:102410008068888388818F7D888319BC1092F00141\r
+:102420001092EC011092EE011092ED0100EE10E01E\r
+:10243000F80180818B7F808388818160888342E07E\r
+:1024400060E080E00E945A11E1EEF0E080818E7F32\r
+:102450008083E2EEF0E0808181608083808188600B\r
+:102460008083F80180818E7F80838881806188836A\r
+:10247000DF91CF911F910F910895E8EDF0E08081F9\r
+:102480008F7E8083E7EDF0E080818160808384E04F\r
+:1024900082BF81E08093EF010C94FA11E8EDF0E047\r
+:1024A00080818E7F80831092E20008951092DA007E\r
+:1024B0001092E10008951F920F920FB60F9211240F\r
+:1024C0002F933F934F935F936F937F938F939F933C\r
+:1024D000AF93BF93EF93FF938091E10082FF0BC016\r
+:1024E0008091E20082FF07C08091E1008B7F8093A2\r
+:1024F000E1000E94870E8091DA0080FF1FC080916A\r
+:10250000D80080FF1BC08091DA008E7F8093DA00B4\r
+:102510008091D90080FF0DC080E189BD82E189BD35\r
+:1025200009B400FEFDCF81E08093F0010E94580EB7\r
+:1025300005C019BC1092F0010E946A0E8091E10062\r
+:1025400080FF19C08091E20080FF15C08091E200F9\r
+:102550008E7F8093E2008091E20080618093E200B0\r
+:102560008091D80080628093D80019BC85E0809368\r
+:10257000F0010E94750E8091E10084FF30C08091CF\r
+:10258000E20084FF2CC080E189BD82E189BD09B4ED\r
+:1025900000FEFDCF8091D8008F7D8093D800809180\r
+:1025A000E1008F7E8093E1008091E2008F7E809336\r
+:1025B000E2008091E20081608093E2008091EC0172\r
+:1025C000882311F084E007C08091E30087FD02C0FA\r
+:1025D00081E001C083E08093F0010E947B0E809136\r
+:1025E000E10083FF29C08091E20083FF25C0809134\r
+:1025F000E100877F8093E10082E08093F0011092F8\r
+:10260000EC018091E1008E7F8093E1008091E200F7\r
+:102610008E7F8093E2008091E20080618093E200EF\r
+:1026200042E060E080E00E945A118091F0008860F2\r
+:102630008093F0000E94710EFF91EF91BF91AF91D6\r
+:102640009F918F917F916F915F914F913F912F91CA\r
+:102650000F900FBE0F901F9018951F920F920FB6FC\r
+:102660000F9211242F933F934F935F936F937F9318\r
+:102670008F939F93AF93BF93CF93DF93EF93FF938A\r
+:10268000C091E900CF708091EC00D82FD17080FD0F\r
+:10269000D0E81092E9008091F000877F8093F000ED\r
+:1026A00078940E9471131092E9008091F000886084\r
+:1026B0008093F000CD2BCF70C093E900FF91EF9194\r
+:1026C000DF91CF91BF91AF919F918F917F916F914A\r
+:1026D0005F914F913F912F910F900FBE0F901F90E0\r
+:1026E00018951F93CF93DF93CDB7DEB7AA970FB698\r
+:1026F000F894DEBF0FBECDBFE1EFF1E088E08E0FB2\r
+:102700009091F10091938E13FBCF0E94E10E809186\r
+:10271000E80083FF1FC18091F1019091F201492FE0\r
+:1027200050E04A30510508F015C1FA01EA5AFF4F4E\r
+:102730000C94882D803881F0823809F00BC180918B\r
+:10274000F5018F708093E9008091EB0085FB88276D\r
+:1027500080F91092E90006C08091ED019091EE01A0\r
+:10276000911182609091E800977F9093E8008093A8\r
+:10277000F1001092F100C8C0282F2D7F09F0EAC0A7\r
+:10278000882319F0823061F0E5C08091F301813037\r
+:1027900009F0E0C0933009F080E08093EE012BC097\r
+:1027A0008091F301811127C08091F5018F7009F4A8\r
+:1027B000D1C08093E9002091EB0020FF1CC0933032\r
+:1027C00021F48091EB00806214C09091EB00906145\r
+:1027D0009093EB0021E030E0A90102C0440F551FA7\r
+:1027E0008A95E2F74093EA001092EA008091EB00AC\r
+:1027F00088608093EB001092E9008091E800877F69\r
+:1028000086C08111A7C01091F3011F778091E3006A\r
+:102810008078812B8093E3008091E800877F80930C\r
+:10282000E8000E948F118091E80080FFFCCF80912A\r
+:10283000E30080688093E300111102C082E001C0D0\r
+:1028400083E08093F00186C08058823008F082C017\r
+:102850008091F3019091F4018C3D53E0950779F557\r
+:1028600083E08A838AE289834FB7F894DE01139666\r
+:1028700020E03EE051E2E32FF0E050935700E49176\r
+:1028800020FF03C0E295EF703F5FEF708E2F90E066\r
+:10289000EA3010F0C79601C0C0968D939D932F5FCC\r
+:1028A000243149F74FBF8091E800877F8093E8008B\r
+:1028B0006AE270E0CE0101960E94961014C0AE014B\r
+:1028C0004F5F5F4F6091F5010E94DD0FBC01892BC6\r
+:1028D00009F440C09091E800977F9093E8008981C7\r
+:1028E0009A810E94F9108091E8008B778093E8002C\r
+:1028F00031C0803879F58091E800877F8093E800C7\r
+:102900008091EC018093F1008091E8008E778093B4\r
+:10291000E8000E948F111EC081111CC09091F3012C\r
+:102920009230C0F48091E800877F8093E800909314\r
+:10293000EC010E948F118091EC01811106C0809101\r
+:10294000E30087FD02C081E001C084E08093F001D4\r
+:102950000E94C80E8091E80083FF0AC08091E800C1\r
+:10296000877F8093E8008091EB0080628093EB008A\r
+:10297000AA960FB6F894DEBF0FBECDBFDF91CF9100\r
+:102980001F910895CF938091F0018823A1F0C09109\r
+:10299000E900CF709091EC00892F817090FD80E864\r
+:1029A000C82B1092E9008091E80083FD0E9471130A\r
+:1029B000CF70C093E900CF910895909374018093F4\r
+:1029C00073010895E0917301F0917401309721F043\r
+:1029D0000190F081E02D099480E00895EF92FF923C\r
+:1029E0000F931F93CF93DF93E0917301F0917401E4\r
+:1029F0003097B1F18C010280F381E02D099580912F\r
+:102A0000D70182FF2DC080FF04C08DE895E00E94B1\r
+:102A10005507E80110E187E8E82E85E0F82E80915F\r
+:102A2000D70180FF0BC088811F928F93FF92EF9296\r
+:102A30000E94EE070F900F900F900F90115021966B\r
+:102A40001111EDCF8091D70180FF0AC085E895E094\r
+:102A5000DF91CF911F910F91FF90EF900C9455074C\r
+:102A6000DF91CF911F910F91FF90EF900895E0912A\r
+:102A70007301F0917401309721F00480F581E02D0D\r
+:102A80000994089520917101309172018217930782\r
+:102A900071F09093720180937101E0917301F09154\r
+:102AA0007401309721F00680F781E02D0994089594\r
+:102AB00020916F01309170018217930771F090930C\r
+:102AC000700180936F01E0917301F0917401309770\r
+:102AD00021F00084F185E02D0994089508950C9467\r
+:102AE0006E150E94C0210E9465090C948622CF9326\r
+:102AF000C82F8091D70182FF1EC080FF04C086EAE4\r
+:102B000095E00E9455078091D70180FF0CC01F926D\r
+:102B1000CF9381EA95E09F938F930E94EE070F90E9\r
+:102B20000F900F900F908091D70180FF04C08FE924\r
+:102B300095E00E9455078C2FCF910C94140DCF92E5\r
+:102B4000DF92EF92FF920F931F93CF93DF93CDB756\r
+:102B5000DEB72B970FB6F894DEBF0FBECDBF0E9435\r
+:102B6000820986E7C82E81E0D82E00E010E0E02E32\r
+:102B7000802F0E94AE0AF60141916F01F42EF826D3\r
+:102B8000B1F40F5F1F4F0E30110589F78FEF898366\r
+:102B90008A831B820E94C9218160782F9D838C8348\r
+:102BA00049815A816B818D810E94421640C090916B\r
+:102BB000D70191FF04C08B870E94B40A8B8520E067\r
+:102BC00030E04F2D50E0922FBA01022E02C07595D1\r
+:102BD00067950A94E2F760FF24C02E83EF8221E01C\r
+:102BE00030E0690102C0CC0CDD1C9A95E2F790E060\r
+:102BF0008C219D21892B09F420E028870E94C9217E\r
+:102C00008160782F9A8789874E815F8168858A8560\r
+:102C10000E944216F801EA58FE4F8081C826C08201\r
+:102C200006C02F5F3F4F2630310569F6AACF0E94BC\r
+:102C3000F725109175010E94E2141817A1F00E9467\r
+:102C4000E214809375012B960FB6F894DEBF0FBE89\r
+:102C5000CDBFDF91CF911F910F91FF90EF90DF904B\r
+:102C6000CF900C9477152B960FB6F894DEBF0FBE5D\r
+:102C7000CDBFDF91CF911F910F91FF90EF90DF902B\r
+:102C8000CF900895CF93DF93CDB7DEB72B970FB6D4\r
+:102C9000F894DEBF0FBECDBF4F83588769877A8710\r
+:102CA0008B87DE01119686E0FD0111928A95E9F786\r
+:102CB00085E0FE01379601900D928A95E1F74981F2\r
+:102CC0005A816B817C818D819E810E94581D2B963B\r
+:102CD0000FB6F894DEBF0FBECDBFDF91CF91089540\r
+:102CE000CF93882309F4C2C0C82F823859F40E94B8\r
+:102CF000E21481FDBBC089E30E94F41F0E94D3202F\r
+:102D000089E30CC0833879F40E94E21480FDAEC0E0\r
+:102D100083E50E94F41F0E94D32083E50E94472090\r
+:102D2000CF910C94D320843859F40E94E21482FD90\r
+:102D30009DC087E40E94F41F0E94D32087E4EECF59\r
+:102D40008CEF8C0F813A48F48C2F0E948A2A8111D3\r
+:102D50008DC08C2F0E94F41FE3CF80E28C0F88304F\r
+:102D600048F4C77081E001C0880FCA95EAF70E9455\r
+:102D70009C20D6CF8BE58C0F833078F4C53A29F0B0\r
+:102D8000C63A31F083E890E005C081E890E002C0E7\r
+:102D900082E890E0CF910C94421588E58C0F833146\r
+:102DA00008F064C0C83A39F1C93A41F1CA3A49F168\r
+:102DB000CB3A51F1CC3A59F1CD3A61F1C03B69F1CE\r
+:102DC000CE3A71F1CF3A79F1C13B81F1C23B89F141\r
+:102DD000C33B91F1C43B99F1C53BA1F1C63BA9F1BD\r
+:102DE000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11D\r
+:102DF00080E090E038C082EE90E035C089EE90E04F\r
+:102E000032C08AEE90E02FC085EB90E02CC086EBBC\r
+:102E100090E029C087EB90E026C08CEC90E023C0C6\r
+:102E20008DEC90E020C083E891E01DC08AE891E03D\r
+:102E30001AC082E991E017C084E991E014C081E2F0\r
+:102E400092E011C083E292E00EC084E292E00BC0F7\r
+:102E500085E292E008C086E292E005C087E292E057\r
+:102E600002C08AE292E0CF910C945815CF91089558\r
+:102E7000882309F44BC0823859F40E94E21481FF80\r
+:102E800045C089E30E94F41F0E94D32089E30CC04F\r
+:102E9000833871F40E94E21480FF38C083E50E94F9\r
+:102EA000F41F0E94D32083E50E9447200C94D32076\r
+:102EB000843859F40E94E21482FF28C087E40E94FB\r
+:102EC000F41F0E94D32087E4EFCF9CEF980F913A34\r
+:102ED00058F390E2980F983050F4877091E001C059\r
+:102EE000990F8A95EAF7892F0E94A220DFCF9BE5F0\r
+:102EF000980F933020F480E090E00C944215885AAB\r
+:102F0000833120F480E090E00C94581508958823D4\r
+:102F100021F00E949C200C94D3200895882321F056\r
+:102F20000E94A2200C94D3200895BF92CF92DF92EA\r
+:102F3000EF92FF920F931F93CF93DF9300D000D0B7\r
+:102F400000D0CDB7DEB725E0FC01DE01119601907F\r
+:102F50000D922A95E1F7FC014081318102812581A2\r
+:102F600022952F7063817481672B09F4E5C23F3F7E\r
+:102F700019F44F3F09F4E0C27C0149833A83898107\r
+:102F80009A812E830E94B31F182FB92E0E94B21F60\r
+:102F90000E94791EEB2DE295EF70F0E0E05AFF4FB2\r
+:102FA0002E810C94882D8B2D807F9B2D9F70F92E68\r
+:102FB000882319F0F29480EFF822002349F0FF20D3\r
+:102FC00009F467C28F2D0E94AC200E94D32061C2F9\r
+:102FD000812F0E943817FF2009F4AEC28F2D0E9466\r
+:102FE000B22026960FB6F894DEBF0FBECDBFDF919C\r
+:102FF000CF911F910F91FF90EF90DF90CF90BF90F6\r
+:103000000C94D3203B2D307F8B2D8F70303211F0FC\r
+:103010008295807F112319F0113021F12CC00023FB\r
+:10302000B9F0222309F4A0C1213009F09DC12696F0\r
+:103030000FB6F894DEBF0FBECDBFDF91CF911F91C9\r
+:103040000F91FF90EF90DF90CF90BF900C94BC2039\r
+:10305000222319F0213009F46FC28E830E94BF2011\r
+:103060008E8196C1002321F0223008F065C27CC118\r
+:10307000211162C28DC1002321F0222309F474C101\r
+:1030800008C2222309F484C119C22B2D2695269546\r
+:10309000237030E02115310521F021303105D1F0C8\r
+:1030A0004BC2002321F0812F9B2D937002C080E042\r
+:1030B00090E026960FB6F894DEBF0FBECDBFDF912D\r
+:1030C000CF911F910F91FF90EF90DF90CF90BF9025\r
+:1030D0000C944215002321F0812F9B2D937002C088\r
+:1030E00080E090E026960FB6F894DEBF0FBECDBF0D\r
+:1030F000DF91CF911F910F91FF90EF90DF90CF90D4\r
+:10310000BF900C945815812F002319F00E947D2444\r
+:1031100002C00E94E52426960FB6F894DEBF0FBECB\r
+:10312000CDBFDF91CF911F910F91FF90EF90DF9076\r
+:10313000CF90BF900C946A258B2D837009F07BC0D3\r
+:103140000111FAC1812F829586958770880F880FAB\r
+:10315000912F9F70C92ED12CE12CF12C082E04C088\r
+:10316000CC0CDD1CEE1CFF1C0A94D2F714FF12C01D\r
+:103170004FE050E060E070E004C0440F551F661F50\r
+:10318000771F8A95D2F7CB01BA016095709580952B\r
+:10319000909503C060E070E0CB012B2D269526951D\r
+:1031A0002370422F50E042305105D9F04330510591\r
+:1031B00069F16C297D298E299F294130510551F1F2\r
+:1031C00026960FB6F894DEBF0FBECDBFDF91CF912C\r
+:1031D0001F910F91FF90EF90DF90CF90BF900C94D4\r
+:1031E000A01E6C297D298E299F2926960FB6F8945A\r
+:1031F000DEBF0FBECDBFDF91CF911F910F91FF902A\r
+:10320000EF90DF90CF90BF900C94BC1E0E94A01E48\r
+:10321000C701B60126960FB6F894DEBF0FBECDBF2C\r
+:10322000DF91CF911F910F91FF90EF90DF90CF90A2\r
+:10323000BF900C94841E002319F08B2D817001C067\r
+:103240008695882309F478C1812F829586958770A9\r
+:10325000880F880F912F9F70C92ED12CE12CF12C53\r
+:10326000082E04C0CC0CDD1CEE1CFF1C0A94D2F707\r
+:1032700014FF12C04FE050E060E070E004C0440F63\r
+:10328000551F661F771F8A95D2F7CB01BA0160954B\r
+:1032900070958095909503C060E070E0CB012B2D78\r
+:1032A000269526952370422F50E042305105D9F0E3\r
+:1032B0004330510569F16C297D298E299F294130C0\r
+:1032C000510551F126960FB6F894DEBF0FBECDBF63\r
+:1032D000DF91CF911F910F91FF90EF90DF90CF90F2\r
+:1032E000BF900C947A1F6C297D298E299F292696E0\r
+:1032F0000FB6F894DEBF0FBECDBFDF91CF911F9107\r
+:103300000F91FF90EF90DF90CF90BF900C94961F9D\r
+:103310000E947A1FC701B60126960FB6F894DEBF49\r
+:103320000FBECDBFDF91CF911F910F91FF90EF9016\r
+:10333000DF90CF90BF900C945E1F103FD1F118F436\r
+:10334000103E50F4A1C0123F09F463C008F44CC011\r
+:10335000133F09F473C098C01F708B2D8F71002329\r
+:10336000A1F00E94F71E812F26960FB6F894DEBFBB\r
+:103370000FBECDBFDF91CF911F910F91FF90EF90C6\r
+:10338000DF90CF90BF900C9487170E94181F812F59\r
+:1033900026960FB6F894DEBF0FBECDBFDF91CF915A\r
+:1033A0001F910F91FF90EF90DF90CF90BF900C9402\r
+:1033B0008E170023A9F02111BFC08B2D8F71269687\r
+:1033C0000FB6F894DEBF0FBECDBFDF91CF911F9136\r
+:1033D0000F91FF90EF90DF90CF90BF900C943D1F26\r
+:1033E000223008F0A9C0E9CF0023A9F08B2D8F71FE\r
+:1033F00026960FB6F894DEBF0FBECDBFDF91CF91FA\r
+:103400001F910F91FF90EF90DF90CF90BF900C94A1\r
+:10341000F71E002359F38B2D8F7126960FB6F89463\r
+:10342000DEBF0FBECDBFDF91CF911F910F91FF90F7\r
+:10343000EF90DF90CF90BF900C94181F002399F06D\r
+:103440008B2D8F7126960FB6F894DEBF0FBECDBFC1\r
+:10345000DF91CF911F910F91FF90EF90DF90CF9070\r
+:10346000BF900C94E21E26960FB6F894DEBF0FBEF6\r
+:10347000CDBFDF91CF911F910F91FF90EF90DF9023\r
+:10348000CF90BF900C94D81E0023A9F0222309F4FA\r
+:10349000ADCF812F26960FB6F894DEBF0FBECDBFFD\r
+:1034A000DF91CF911F910F91FF90EF90DF90CF9020\r
+:1034B000BF900C947016222309F4ADCF812F26966D\r
+:1034C0000FB6F894DEBF0FBECDBFDF91CF911F9135\r
+:1034D0000F91FF90EF90DF90CF90BF900C94381732\r
+:1034E0004B2D4F70612FC7010E94F70726960FB62C\r
+:1034F000F894DEBF0FBECDBFDF91CF911F910F912A\r
+:10350000FF90EF90DF90CF90BF900C94FC1D4B2D5F\r
+:103510004F70612FC70126960FB6F894DEBF0FBE1D\r
+:10352000CDBFDF91CF911F910F91FF90EF90DF9072\r
+:10353000CF90BF900C94BA0B26960FB6F894DEBFCE\r
+:103540000FBECDBFDF91CF911F910F91FF90EF90F4\r
+:10355000DF90CF90BF9008950E94B9200E948E20E6\r
+:103560000E94D3200E949D260E946A2580E090E060\r
+:103570000E94421580E090E00C9458150E94A9200A\r
+:103580000C94AC1A0E94B31F292F22952F7030E0A3\r
+:103590002C3031054CF42A3031056CF422503109BD\r
+:1035A0002230310588F407C02C30310549F02F3026\r
+:1035B000310531F009C0803E48F0803F29F406C053\r
+:1035C00093FB882780F9089580E0089581E00895AD\r
+:1035D000CF93DF9300D000D01F92CDB7DEB70F900E\r
+:1035E0000F900F900F900F90DF91CF910895CF9390\r
+:1035F000DF9300D000D000D0CDB7DEB726960FB64F\r
+:10360000F894DEBF0FBECDBFDF91CF9108951F9319\r
+:10361000CF93DF93C091840116E080918501C81794\r
+:1036200099F0D0E01C9FF0011D9FF00D1124EA5786\r
+:10363000FE4F4081518162817381848195810E9416\r
+:10364000F71A2196C770E9CFDF91CF911F910895A6\r
+:103650004091B6015091B7016091B8017091B901E4\r
+:103660008091BA019091BB010C94F71A8091BB0133\r
+:1036700082958F7009F054C08091B801882309F4B5\r
+:103680004FC080918401A09185016091B601709135\r
+:10369000B7014091B9015091BA01B6E08A1709F417\r
+:1036A0003FC090E041155105C1F17F3F11F46F3FDC\r
+:1036B000A1F1B89FF001B99FF00D1124EA57FE4F18\r
+:1036C000218172132AC02081621327C02281211117\r
+:1036D00024C0238134812417350710F42150310987\r
+:1036E000241B350B283C3105C0F42091BB012F7001\r
+:1036F00020612093BB0126E0289FF001299FF00D57\r
+:103700001124E557FE4F80818F708061808386EBA6\r
+:1037100091E00E9495170C94071B01968770BECF0D\r
+:103720000895CF92DF92EF92FF920F931F93CF9362\r
+:10373000DF93CDB7DEB762970FB6F894DEBF0FBE4A\r
+:10374000CDBF8C0185E0F801DE011D9601900D9240\r
+:103750008A95E1F7D8014C9111965C9111971296D8\r
+:103760006C9112971396CD90DC9014973091B6011E\r
+:103770007091B7018091B9019091BA01009709F455\r
+:103780006BC17F3F19F43F3F09F466C1E090B80177\r
+:10379000EE2009F4C0C02091BB01C816D90628F05C\r
+:1037A000F601E81BF90BCF0104C0809590958C0DB4\r
+:1037B0009D1DFF24F394883C910578F0F12C207F27\r
+:1037C00009F0C6C07C2DD98AC88A89890E94E81A66\r
+:1037D00086EB91E00E949517B1C0822F807F09F09F\r
+:1037E00046C0751314C0341312C0611110C02F707D\r
+:1037F00020612093BB010E94281B86EB91E00E9470\r
+:1038000095178091BB01D80115968C932EC0CD28B9\r
+:1038100019F15F3F11F44F3FF9F0F62E61111CC012\r
+:10382000809184012091850136E0821709F45AC005\r
+:1038300090E0389FF001399FF00D1124EA57FE4FB8\r
+:103840007181571306C07081471303C072817111D3\r
+:1038500003C001968770E9CFF62E662309F418C1DC\r
+:103860008091BB0181608093BB01F12C11C1751364\r
+:1038700008C0341306C0611104C08091BB01D80197\r
+:10388000C3C04D875E878D859E856A8B0E94C21A54\r
+:103890006A898823E1F16623D1F12091BB01822F4F\r
+:1038A00082958F7090E0029774F08091B6019091AC\r
+:1038B000B70198878F831986DB86CA862C87CE014D\r
+:1038C00007960E94951786E0F801A6EBB1E00190FB\r
+:1038D0000D928A95E1F70E94361B0E94281BFF2457\r
+:1038E000F394D6C04D875E878D859E850E94B31F59\r
+:1038F000292F22952F7030E0223031050CF0BCC00A\r
+:103900009F7009F0B6C0805E883008F4C1C0C8015D\r
+:103910000E949517E4CFC816D90608F453C0F601E3\r
+:10392000E81BF90BCF01883C910508F450C0F12C3D\r
+:103930007C2DD98AC88A89890E94E81AE6EBF1E0D1\r
+:1039400086E0DF011D928A95E9F70E94281BA0C03E\r
+:10395000751314C0341312C0611110C08091BB01E3\r
+:10396000F8018583C8010E94951786E0E6EBF1E037\r
+:10397000DF011D928A95E9F7FE2C8AC04D875E878C\r
+:103980008D859E856A8B0E94C21A6A89882309F4F4\r
+:10399000BECF662309F4BBCF2091BB01822F829555\r
+:1039A0008F7090E002970CF48ECF8091B6019091C9\r
+:1039B000B7019A8389831B82DD82CC822E83CE015C\r
+:1039C00001967FCF809590958C0D9D1DACCFF62EE6\r
+:1039D000662309F49CCF75132EC034132CC020919C\r
+:1039E000BB0120FD1FC0822F82958F70D9F0D801B6\r
+:1039F00015962C9315978F3049F08F5F982F9295DD\r
+:103A0000907F822F8F70892B15968C93C8010E940E\r
+:103A1000951786E0F801A6EBB1E001900D928A952A\r
+:103A2000E1F793CF86E0F801A6EBB1E001900D92AB\r
+:103A30008A95E1F72DC04D875E878D859E850E9412\r
+:103A4000C21A811140CF8091BB0181608093BB017C\r
+:103A5000C8010E9495171CC0662309F458CF4D87F2\r
+:103A60005E878D859E850E94C21A882309F44FCFF8\r
+:103A70002ACF811148CF0CC0243031050CF047CF3C\r
+:103A80009F7009F440CFF8019581907F09F03BCFFA\r
+:103A90008F2D62960FB6F894DEBF0FBECDBFDF91BB\r
+:103AA000CF911F910F91FF90EF90DF90CF900895ED\r
+:103AB0001F93CF93DF93CDB7DEB72C970FB6F89453\r
+:103AC000DEBF0FBECDBF4F83588769877A878B874C\r
+:103AD0009C87CE0107960E94911B882369F08F81F5\r
+:103AE00098852A853B85232BF1F19F3F09F063C020\r
+:103AF0008F3F09F060C037C086E0FE013796DE01D7\r
+:103B0000119601900D928A95E1F76F817885EA858B\r
+:103B1000FB85309741F17F3F11F46F3F21F12091F8\r
+:103B2000850130E0C9010196877099274091840191\r
+:103B300050E08417950709F447C069837A83FD83B1\r
+:103B4000EC8396E0929FD001939FB00D1124AA5769\r
+:103B5000BE4FFE01319601900D929A95E1F7809348\r
+:103B600085010E94071B16E08091840190918501D8\r
+:103B70008917C1F1189FC00111248A579E4F0E94D6\r
+:103B8000911B882379F1E09184011E9FF00111249B\r
+:103B9000EA57FE4F40815181628173818481958112\r
+:103BA0000E94F71A8091840190E00196877099270E\r
+:103BB00080938401D9CF4F81588569857A858B851B\r
+:103BC0009C850E94F71ACFCF0E94BE1A10928501E1\r
+:103BD00010928401E6EBF1E086E0DF011D928A9508\r
+:103BE000E9F7C1CF2C960FB6F894DEBF0FBECDBF5C\r
+:103BF000DF91CF911F910895EF92FF920F931F9342\r
+:103C0000CF93DF938C01892B09F46CC0F12CEE2447\r
+:103C1000E394E8012196F8018491843740F48430DC\r
+:103C200008F051C0813081F0823019F15BC08537D6\r
+:103C300009F444C0A8F19CE7980F903708F052C0EF\r
+:103C40008F770E94381741C00E5F1F4FFE01C4914D\r
+:103C500080E28C0F883048F4C7708E2D01C0880F29\r
+:103C6000CA95EAF70E94AC2014C08C2F0E947016EF\r
+:103C70002DC00E5F1F4FFE01C49180E28C0F883073\r
+:103C800058F4C7708E2D01C0880FCA95EAF70E94BC\r
+:103C9000B2200E94D3201AC08C2F0E94381716C061\r
+:103CA0000E5F1F4FFE01C491CC2381F08FE99FE08E\r
+:103CB0000197F1F700C00000C150F6CF0E5F1F4F13\r
+:103CC000FE01F49003C00E9470168E018F2D882390\r
+:103CD00009F49FCFEFE9FFE03197F1F700C0000052\r
+:103CE0008150F5CFDF91CF911F910F91FF90EF9011\r
+:103CF000089508956093C0017093C1018093C2013B\r
+:103D00009093C3010C94AC1A0F931F930091C001C0\r
+:103D10001091C1012091C2013091C301DC01CB019E\r
+:103D2000802B912BA22BB32B8093C0019093C101C8\r
+:103D3000A093C201B093C3011F910F910C94AC1AD0\r
+:103D40000F931F930091C0011091C1012091C201F6\r
+:103D50003091C301DC01CB0180239123A223B32343\r
+:103D60008093C0019093C101A093C201B093C3019D\r
+:103D70001F910F910C94AC1A0F931F930091C001E7\r
+:103D80001091C1012091C2013091C301DC01CB012E\r
+:103D900080279127A227B3278093C0019093C10168\r
+:103DA000A093C201B093C3011F910F910C94AC1A60\r
+:103DB0001092BC011092BD011092BE011092BF0181\r
+:103DC0000C94AC1A41E050E060E070E004C0440F95\r
+:103DD000551F661F771F8A95D2F74093BC015093F9\r
+:103DE000BD016093BE017093BF010C94AC1A41E019\r
+:103DF00050E060E070E004C0440F551F661F771F5D\r
+:103E00008A95D2F78091BC019091BD01A091BE012D\r
+:103E1000B091BF01482B592B6A2B7B2B4093BC01DF\r
+:103E20005093BD016093BE017093BF010C94AC1A16\r
+:103E300041E050E060E070E004C0440F551F661F91\r
+:103E4000771F8A95D2F7409550956095709580912F\r
+:103E5000BC019091BD01A091BE01B091BF0148236A\r
+:103E600059236A237B234093BC015093BD01609387\r
+:103E7000BE017093BF010C94AC1A41E050E060E0C9\r
+:103E800070E004C0440F551F661F771F8A95D2F754\r
+:103E90008091BC019091BD01A091BE01B091BF0184\r
+:103EA000482759276A277B274093BC015093BD01BF\r
+:103EB0006093BE017093BF010C94AC1A0F931F93D3\r
+:103EC0000091BC011091BD012091BE013091BF0154\r
+:103ED000DC01CB01802B912BA22BB32B8093BC0157\r
+:103EE0009093BD01A093BE01B093BF011F910F91AC\r
+:103EF0000C94AC1A0F931F930091BC011091BD015B\r
+:103F00002091BE013091BF01DC01CB0180239123C0\r
+:103F1000A223B3238093BC019093BD01A093BE0163\r
+:103F2000B093BF011F910F910C94AC1A0F931F9384\r
+:103F30000091BC011091BD012091BE013091BF01E3\r
+:103F4000DC01CB0180279127A227B3278093BC01F6\r
+:103F50009093BD01A093BE01B093BF011F910F913B\r
+:103F60000C94AC1A0895CF92DF92EF92FF920F93C8\r
+:103F70001F93CF93DF938C01C090C001D090C101FB\r
+:103F8000E090C201F090C3014091BC015091BD018D\r
+:103F90006091BE017091BF01C42AD52AE62AF72A92\r
+:103FA000CFE1D0E0D701C6010C2E04C0B695A7958D\r
+:103FB000979587950A94D2F780FF07C0B8018C2F98\r
+:103FC0000E94DD0B8130910531F4219758F7B8013B\r
+:103FD00080E00E94DD0BDF91CF911F910F91FF9048\r
+:103FE000EF90DF90CF90089590910C01992321F0EC\r
+:103FF00090910D01911109C020910E0130910F0196\r
+:10400000F90132969FEF40E030C0982F9695969533\r
+:1040100096959F30A0F4E0910E01F0910F01E90F09\r
+:10402000F11D877021E030E0A90102C0440F551F47\r
+:104030008A95E2F7CA019181892B81830895909135\r
+:10404000D70190FF23C01F928F9387ED95E09F9338\r
+:104050008F930E94EE070F900F900F900F9008958E\r
+:104060009F3F39F04F5F4E3041F051915813F8CFD8\r
+:104070000DC05111F7CF942FF5CF9F3F39F0F901C3\r
+:10408000E90FF11D97FDFA958283089508959091A7\r
+:104090000C01992321F090910D01911109C02091FB\r
+:1040A0000E0130910F01F9013296205F3F4F30C071\r
+:1040B000982F9695969596959F30A8F4E0910E01CD\r
+:1040C000F0910F01E90FF11D877021E030E0A901A7\r
+:1040D00002C0440F551F8A95E2F7CA01809591816D\r
+:1040E0008923818308959091D70190FF16C01F9274\r
+:1040F0008F9389EB95E09F938F930E94EE070F902B\r
+:104100000F900F900F9008953196E217F30729F062\r
+:1041100090819813F9CF1082F7CF089581E090E055\r
+:10412000E0910E01F0910F01E80FF91F1082019646\r
+:1041300080319105A9F708959091D601892B80933C\r
+:10414000D601089580959091D60189238093D60158\r
+:1041500008951092D60108959091D501892B8093EE\r
+:10416000D501089580959091D50189238093D5013B\r
+:1041700008951092D50108958093C4010895109276\r
+:10418000C401089580910E0190910F01FC013196B8\r
+:104190009C01205F3F4F80E0919191118F5FE2176A\r
+:1041A000F307D1F70895E0910E01F0910F0180918E\r
+:1041B000D6018083E0910E01F0910F0190818091F2\r
+:1041C000D501892B80838091C401882361F0E0911F\r
+:1041D0000E01F0910F019081892B80830E94C220F3\r
+:1041E00081111092C40180910E0190910F010C94E5\r
+:1041F000EE1490933B0180933A010895CF92DF92A1\r
+:10420000EF92FF926C01EE24FF24C114D104E1046B\r
+:10421000F10421F0C701B60120E101C020E0C72E62\r
+:10422000D82EE92EFF24C114D104E104F10419F0C1\r
+:10423000285FC701B6016B017C0154E0F694E79456\r
+:10424000D794C7945A95D1F7C114D104E104F1046D\r
+:1042500019F02C5FC701B6016B017C0142E0F694B6\r
+:10426000E794D794C7944A95D1F7C114D104E104D7\r
+:10427000F10419F02E5FC701B601DC01CB01B69540\r
+:10428000A79597958795892B8A2B8B2B09F02F5F04\r
+:10429000822FFF90EF90DF90CF9008958295982F16\r
+:1042A0009C7C392F36953695282F237344E0249F24\r
+:1042B000C0011124932F982B292F2A7A2695892F14\r
+:1042C0008575880F822B08951F93CF93DF931F92DC\r
+:1042D000CDB7DEB799830E944E21182F9981892F7F\r
+:1042E0000E944E21212F30E0322F2227A901482B96\r
+:1042F000CA010F90DF91CF911F9108958091F00135\r
+:10430000843009F11092D80120E488E190E00FB6E2\r
+:10431000F894A895809360000FBE2093600083B747\r
+:10432000817F846083BF83B7816083BF78948895E1\r
+:1043300083B78E7F83BF88E10FB6F89480936000C7\r
+:10434000109260000FBE089508950895CF930E94C3\r
+:10435000A4210E9482090E94A521C0E08C2F0E9406\r
+:10436000AE0A811104C0CF5FCE30C1F701C081E039\r
+:10437000CF9108950E94BE1A0E94E2140C94140D6D\r
+:1043800082E084BD93E095BD9AEF97BD80936E0067\r
+:1043900008952FB7F8948091D9019091DA01A091F6\r
+:1043A000DB01B091DC012FBF0895CF92DF92EF9235\r
+:1043B000FF920F931F932FB7F8944091D90150911A\r
+:1043C000DA016091DB017091DC012FBF6A017B0192\r
+:1043D000EE24FF248C0120E030E0C016D106E20676\r
+:1043E000F30610F4415051099A01281B390BC901F9\r
+:1043F0001F910F91FF90EF90DF90CF9008951F9243\r
+:104400000F920FB60F9211248F939F93AF93BF9388\r
+:104410008091D9019091DA01A091DB01B091DC018A\r
+:104420000196A11DB11D8093D9019093DA01A0934B\r
+:10443000DB01B093DC01BF91AF919F918F910F9001\r
+:104440000FBE0F901F9018950E94E011F8942FEF67\r
+:1044500087EA91E6215080409040E1F700C00000DB\r
+:1044600087E090EBDC018093F9019093FA01A0932F\r
+:10447000FB01B093FC019CE088E10FB6F894A8958D\r
+:10448000809360000FBE90936000FFCFEF92FF9289\r
+:104490000F931F93CF93DF93D82FC0E08C2F0E94F0\r
+:1044A000AE0A00E010E0E82EF12CC701002E02C099\r
+:1044B000959587950A94E2F780FD06C00F5F1F4F20\r
+:1044C0000630110591F709C0602F7C2F80E00E9413\r
+:1044D000BB0BD813F3CF81E004C0CF5FCE30F1F631\r
+:1044E00080E0DF91CF911F910F91FF90EF900895A1\r
+:1044F000CF93C82F8CE20E944622882321F08C2F74\r
+:10450000CF910C94462280E0CF910895CF930E94E2\r
+:10451000D523811102C00E94BB238CEF95E00E943D\r
+:104520005507C5E6C15049F00E9482098FE39CE916\r
+:104530000197F1F700C00000F5CF85EF95E00E94EC\r
+:10454000550789E20E947822811113C18AE20E94F4\r
+:10455000782281110E94BB2385E00E94782281117C\r
+:104560000E9424220E94E0238093D70187E00E94CA\r
+:1045700078228823A9F18BE10E947822882351F0C8\r
+:104580008091D70181FB222720F991E0922790FBAF\r
+:1045900081F90EC08EE00E947822882361F080911C\r
+:1045A000D70182FB222720F991E0922790FB82F924\r
+:1045B0008093D70115C080E10E9478229091D701A5\r
+:1045C000882341F093FB222720F981E0822780FB9A\r
+:1045D00093F904C0892F809580FB90F99093D701BF\r
+:1045E0008091D7010E94E4230E94F2238093EA0184\r
+:1045F00080EE0E947822882341F08091EA01982F72\r
+:10460000909590FB80F98093EA0189E30E947822DB\r
+:10461000882359F08091EA0181FB222720F991E05B\r
+:10462000922790FB81F98093EA0182EE0E94782222\r
+:10463000882359F08091EA0182FB222720F991E03A\r
+:10464000922790FB82F98093EA0186EE0E947822FD\r
+:10465000882359F08091EA0183FB222720F991E019\r
+:10466000922790FB83F98093EA0183EE0E947822DF\r
+:10467000882359F08091EA0184FB222720F991E0F8\r
+:10468000922790FB84F98093EA0185E30E947822C7\r
+:10469000882359F08091EA0185FB222720F991E0D7\r
+:1046A000922790FB85F98093EA0181E30E947822AA\r
+:1046B000882359F08091EA0186FB222720F991E0B6\r
+:1046C000922790FB86F98093EA0181E10E9478228B\r
+:1046D000882359F08091EA0187FB222720F991E095\r
+:1046E000922790FB87F98093EA018091EA010E946A\r
+:1046F000F6238091EA0187FB882780F980930D01DA\r
+:1047000087E20E947822C82F8EE10E9478228111D0\r
+:10471000C2608FE10E9478228111C46080E20E9411\r
+:1047200078228111C86081E20E9478228111C061E3\r
+:1047300082E20E9478228111C06283E20E94782284\r
+:104740008111C06484E20E947822882311F0C0683D\r
+:1047500002C0CC2329F08C2F0E94ED236C2F03C0C4\r
+:104760000E94E923682F70E080E090E0CF910C94E4\r
+:104770007A1ECF9108956DEE7EEF80E090E00E946A\r
+:10478000BE2D60E082E090E00E94B02D60E083E00A\r
+:1047900090E00E94B02D60E084E090E00E94B02D97\r
+:1047A00060E085E090E00C94B02D80E090E00E9405\r
+:1047B000AA2D21E08D3E9E4F09F020E0822F089522\r
+:1047C00082E090E00C94A22D682F82E090E00C949F\r
+:1047D000B02D83E090E00C94A22D682F83E090E050\r
+:1047E0000C94B02D84E090E00C94A22D682F84E00E\r
+:1047F00090E00C94B02D8091DF0180FF0BC06091A0\r
+:10480000130185E0689FB001112475956795759532\r
+:1048100067952BC081FF09C06091130185E0689FF7\r
+:10482000B00111247595679520C082FF07C0609183\r
+:10483000130185E0689FB001112417C09091E00139\r
+:104840009923D1F060911201961788F720911301F6\r
+:1048500085E0289F90011124929FA001939F500D05\r
+:10486000112470E0CA010E94742D6038710540F473\r
+:104870006115710539F002C065E070E0862F08957A\r
+:104880008FE7089581E008958091DF0180FF08C0DF\r
+:104890006091110170E0759567957595679521C0D8\r
+:1048A00081FF06C06091110170E07595679519C090\r
+:1048B00082FF04C06091110170E010C09091E0018E\r
+:1048C0009923C1F0609110019617A0F78091110112\r
+:1048D000899FC001112470E00E94742D6038710519\r
+:1048E00028F46115710521F0862F08958FE708954A\r
+:1048F00081E0089561E070E0F4CF803F21F40E94F0\r
+:10490000FB23819504C0813F29F40E94FB238093FF\r
+:10491000E3010895823F21F40E94FB23819504C0A6\r
+:10492000833F29F40E94FB238093E2010895893F8D\r
+:1049300019F40E94442405C08A3F31F40E944424A3\r
+:1049400081958093E40108958B3F21F40E944424D3\r
+:10495000819504C08C3F29F40E9444248093E50192\r
+:104960000895843F21F48091E101816017C0853F63\r
+:1049700021F48091E101826011C0863F21F4809191\r
+:10498000E10184600BC0873F21F48091E1018860E0\r
+:1049900005C0883F31F48091E10180618093E1019D\r
+:1049A00008958D3F21F48091DF0181600BC08E3F1F\r
+:1049B00021F48091DF01826005C08F3F29F480914E\r
+:1049C000DF0184608093DF010895803F39F4809196\r
+:1049D000E30187FF6CC01092E30169C0813F29F4B5\r
+:1049E0008091E3011816BCF362C09091E201823F0E\r
+:1049F00029F497FF5CC01092E20159C0833F19F47B\r
+:104A00001916CCF354C0893F41F48091E401181683\r
+:104A10000CF04DC01092E4014AC08A3F29F4809105\r
+:104A2000E40187FF44C0F6CF8B3F39F48091E50164\r
+:104A300087FF3DC01092E5013AC08C3F29F4809178\r
+:104A4000E5011816BCF333C0843F21F48091E101E5\r
+:104A50008E7F17C0853F21F48091E1018D7F11C0C9\r
+:104A6000863F21F48091E1018B7F0BC0873F21F4C9\r
+:104A70008091E101877F05C0883F31F48091E10199\r
+:104A80008F7E8093E10113C08D3F21F48091DF017F\r
+:104A90008E7F0BC08E3F21F48091DF018D7F05C09A\r
+:104AA0008F3F29F48091DF018B7F8093DF0180911C\r
+:104AB000E20181110EC08091E30181110AC0809151\r
+:104AC000E401811106C08091E501811102C01092BC\r
+:104AD000E00108958091D70183FF7EC088E396E0CE\r
+:104AE0000E9455078091E1011F928F9383E396E026\r
+:104AF0009F938F930E94EE0781E396E00E945507F3\r
+:104B00008091E201282F332727FD30953F938F9323\r
+:104B10008EE296E09F938F930E94EE078CE296E0E0\r
+:104B20000E9455078091E301282F332727FD3095F8\r
+:104B30003F938F9389E296E09F938F930E94EE07B5\r
+:104B400087E296E00E9455078091E401282F3327E1\r
+:104B500027FD30953F938F9384E296E09F938F9348\r
+:104B60000E94EE0782E296E00E9455078091E501DF\r
+:104B7000282F332727FD30953F938F938FE196E0C1\r
+:104B80009F938F930E94EE078CE196E00E94550759\r
+:104B90008091E0011F928F9389E196E09F938F931C\r
+:104BA0000E94EE0787E196E00E9455078091DF01A1\r
+:104BB0001F928F9384E196E09F938F930E94EE075C\r
+:104BC00081E196E00E9455078DB79EB74C960FB6CF\r
+:104BD000F8949EBF0FBE8DBF81EE91E00E94371505\r
+:104BE0000E94C9219093DE018093DD0108951F93F7\r
+:104BF000CF93DF938091DD019091DE010E94D5215A\r
+:104C0000AC019091E001992321F02091140130E052\r
+:104C100006C0209115018AE0289F900111244217B7\r
+:104C2000530708F486C08091E201C091E301D0915E\r
+:104C3000E4011091E501811107C0C11176C0D111C5\r
+:104C400074C0111172C075C09F3F19F09F5F90939F\r
+:104C5000E001181624F40E94FB238093E201809166\r
+:104C6000E20187FF05C00E94FB2381958093E2014A\r
+:104C70001C1624F40E94FB238093E3018091E3013E\r
+:104C800087FF05C00E94FB2381958093E30160911B\r
+:104C9000E201662339F1C091E301CC2319F17727B2\r
+:104CA00067FD7095872F972F0E94792C23E333E3BC\r
+:104CB00043E35FE30E94DD2C0E94462C6093E201F7\r
+:104CC0006C2F772767FD7095872F972F0E94792C7F\r
+:104CD00023E333E343E35FE30E94DD2C0E94462C91\r
+:104CE0006093E3011D1624F40E9444248093E401A0\r
+:104CF0008091E40187FF05C00E9444248195809340\r
+:104D0000E401111624F40E9444248093E50180916B\r
+:104D1000E50187FF05C00E94442481958093E50149\r
+:104D2000DF91CF911F910C946A259F3F09F08ECFA0\r
+:104D300096CFDF91CF911F910895E1EEF1E085E0EC\r
+:104D4000DF011D928A95E9F71092E0011092DF01D0\r
+:104D500008958BE598E00E9455071F9281E08F939C\r
+:104D60001F9285E08F938DE098E09F938F930E9430\r
+:104D7000EE070F900F900F900F900F900F900895E7\r
+:104D80008330E9F128F4813061F0823009F108952F\r
+:104D9000853009F462C008F449C0863009F474C053\r
+:104DA000089580911501262F30E0280F311D2F3FE7\r
+:104DB000310524F4680F6093150103C08FEF8093D1\r
+:104DC0001501809115011F928F9386E497E072C0C0\r
+:104DD00080911401262F30E0280F311D2F3F31051F\r
+:104DE00024F4680F6093140103C08FEF80931401C3\r
+:104DF000809114011F928F9384E397E05BC08091B0\r
+:104E00001301262F30E0280F311D2F3F310524F4E8\r
+:104E1000680F6093130103C08FEF8093130180919B\r
+:104E200013011F928F9381E297E044C08091120199\r
+:104E3000262F30E0280F311D2F3F310524F4680F55\r
+:104E40006093120103C08FEF8093120180911201D1\r
+:104E50001F928F938CE097E02DC080911101262F37\r
+:104E600030E0280F311D2F3F310524F4680F609387\r
+:104E7000110103C08FEF80931101809111011F92E6\r
+:104E80008F9383EF96E016C080911001262F30E0BB\r
+:104E9000280F311D2F3F310524F4680F6093100156\r
+:104EA00003C08FEF80931001809110011F928F93A8\r
+:104EB00088ED96E09F938F930E94EE070F900F90DE\r
+:104EC0000F900F900895833081F128F4813059F0CC\r
+:104ED0008230D1F00895853009F449C0B8F18630A8\r
+:104EE00009F456C0089580911501681720F4861BB7\r
+:104EF0008093150102C010921501809115011F9237\r
+:104F00008F9389EC96E054C080911401681720F4C7\r
+:104F1000861B8093140102C0109214018091140129\r
+:104F20001F928F9387EB96E043C08091130168171F\r
+:104F300020F4861B8093130102C01092130180910C\r
+:104F400013011F928F9384EA96E032C08091120180\r
+:104F5000681720F4861B8093120102C01092120180\r
+:104F6000809112011F928F938FE896E021C080916B\r
+:104F70001101681720F4861B8093110102C0109262\r
+:104F80001101809111011F928F9386E796E010C066\r
+:104F900080911001681720F4861B8093100102C0D5\r
+:104FA00010921001809110011F928F938BE596E073\r
+:104FB0009F938F930E94EE070F900F900F900F908A\r
+:104FC0000895CF93C82F1F928F9380E699E09F9307\r
+:104FD0008F930E94EE0781E090E0A0E0B0E0BC017A\r
+:104FE000CD0104C0660F771F881F991FCA95D2F79D\r
+:104FF0000E947A1E0F900F900F900F90CF910C94FB\r
+:10500000BE1ACF938D3109F465C0B0F58E3009F426\r
+:10501000CCC100F5873009F49BC1A8F4863009F0B3\r
+:105020006DC28091D701817F8E7F8093D70185E605\r
+:1050300099E00E94550787EA9DE00E94550781E0AC\r
+:105040008093E70180C1883009F44FC08B3009F4A8\r
+:105050007CC154C2863109F4F0C138F4803109F4BE\r
+:10506000B8C1813109F430C249C2893109F4CEC1D5\r
+:105070008B3109F486C142C2853309F437C248F442\r
+:10508000873209F433C208F433C2893209F42EC2DC\r
+:1050900035C2833438F48A3308F02CC2883309F4DB\r
+:1050A00054C12CC2833409F421C2883409F026C2C9\r
+:1050B0000E94BE1A86E99DE00E9455079FEF23EDEE\r
+:1050C00080E3915020408040E1F700C000000E9442\r
+:1050D000242239C186EB9DE00E9455070E94002CD6\r
+:1050E0000E94E2140E94140D2EC18BEA9DE00E94E2\r
+:1050F000550786E79BE00E9455070E94E9231F920F\r
+:105100008F9383E79BE09F938F930E94EE0781E745\r
+:105110009BE00E9455070E94E023C82F8EE59BE08C\r
+:105120000E9455071F92CF9389E59BE09F938F9331\r
+:105130000E94EE0787E59BE00E9455078DE49BE007\r
+:105140000E9455078C2F81701F928F938AE49BE0F9\r
+:105150009F938F930E94EE0788E49BE00E9455077F\r
+:105160008EE39BE00E945507C1FB882780F91F92C0\r
+:105170008F938BE39BE09F938F930E94EE0789E3CD\r
+:105180009BE00E9455078DE29BE00E945507C2FB01\r
+:10519000882780F91F928F938AE29BE09F938F93D9\r
+:1051A0000E94EE0788E29BE00E9455078FE19BE09A\r
+:1051B0000E945507C3FBCC27C0F91F92CF938CE107\r
+:1051C0009BE09F938F930E94EE078AE19BE00E94F1\r
+:1051D00055070E94F223C82F86E09BE00E945507E6\r
+:1051E0001F92CF9381E09BE09F938F930E94EE07E5\r
+:1051F0008FEF9AE00E94550786EE9AE00E945507CD\r
+:105200008C2F81701F928F9383EE9AE09F938F93E0\r
+:105210000E94EE078DB79EB780960FB6F8949EBF9A\r
+:105220000FBE8DBF81EE9AE00E9455078AEC9AE08E\r
+:105230000E945507C1FB882780F91F928F9387EC46\r
+:105240009AE09F938F930E94EE0785EC9AE00E946C\r
+:10525000550783EB9AE00E945507C2FB882780F927\r
+:105260001F928F9380EB9AE09F938F930E94EE079B\r
+:105270008EEA9AE00E9455078CE99AE00E94550751\r
+:10528000C3FB882780F91F928F9389E99AE09F9347\r
+:105290008F930E94EE0787E99AE00E9455078DE8F8\r
+:1052A0009AE00E945507C4FB882780F91F928F93CC\r
+:1052B0008AE89AE09F938F930E94EE0788E89AE02D\r
+:1052C0000E94550786E79AE00E945507C5FB88278C\r
+:1052D00080F91F928F9383E79AE09F938F930E94A8\r
+:1052E000EE0781E79AE00E94550785E59AE00E9463\r
+:1052F0005507C6FB882780F91F928F9382E59AE0B5\r
+:105300009F938F930E94EE0780E59AE00E945507D5\r
+:1053100088E49AE00E945507C7FBCC27C0F91F928A\r
+:10532000CF9385E49AE09F938F930E94EE0783E4E6\r
+:105330009AE00E9455078DB79EB74C960FB6F89429\r
+:105340009EBF0FBE8DBFC1E0DEC08CE899E05BC0A0\r
+:105350008091D701C82FC17080FF09C089E89DE006\r
+:105360000E9455078091D701817F8E7F47C08DE7CE\r
+:105370009DE00E9455078091D70181608093D701FD\r
+:10538000E2CF9091D70191FBCC27C0F981E0C827EB\r
+:10539000892FC0FB81F98093D701CC2319F080E7D6\r
+:1053A0009DE027C082E69DE02EC09091D70192FB40\r
+:1053B000CC27C0F981E0C827892FC0FB82F98093F0\r
+:1053C000D701CC2319F083E59DE013C083E49DE071\r
+:1053D0001AC09091D70193FBCC27C0F981E0C82770\r
+:1053E000892FC0FB83F98093D701CC2351F087E349\r
+:1053F0009DE00E9455078091D70181608093D7017D\r
+:1054000082C08AE29DE00E9455079DCF8BE19DE01E\r
+:105410000E9455078FEE9CE00E94550782EB9CE0AE\r
+:105420000E94550785E89CE00E94550781E49CE0B6\r
+:105430000E94550786E19CE0E6CF88E09CE00E9450\r
+:1054400055070E94E2141F928F938EEE9BE09F936C\r
+:105450008F930E94EE0780910C011F928F9387ED2E\r
+:105460009BE09F938F930E94EE0780916E011F92A5\r
+:105470008F9384EC9BE09F938F930E94EE07809123\r
+:105480000D011F928F9381EB9BE09F938F930E945E\r
+:10549000EE078091D9019091DA01A091DB01B091E2\r
+:1054A000DC01BF93AF939F938F938DE99BE09F9314\r
+:1054B0008F930E94EE078DB79EB746960FB6F8946D\r
+:1054C0009EBF0FBE8DBF3FCF0E94BE1AC0910D017F\r
+:1054D00081E0C827C0930D01CC2329F083E99BE02C\r
+:1054E0000E94550710C088E89BE08DCF80E003C084\r
+:1054F0008D5101C089530E94E12725CF86E89BE0AA\r
+:105500000E945507C0E08C2FCF91089580E0089548\r
+:1055100080E00895CF93C82F8091E701813081F01A\r
+:1055200020F0823009F44FC045C1E0910E01F091A6\r
+:105530000F018081813169F0823209F03DC109C0DB\r
+:10554000E0910E01F0910F018081813111F08232E2\r
+:1055500061F48C2F0E94862A811104C08C2F0E9436\r
+:1055600001282FC081E090E02CC08C2F0E94882A57\r
+:10557000811126C0C431E1F070F4CB3081F0C0312C\r
+:10558000D1F40E94A92688E599E00E94550782E09F\r
+:105590008093E70115C0C93259F0C83361F485E63C\r
+:1055A00099E00E9455078CE599E00E94550708C0D4\r
+:1055B0001092E70103C186E599E00E945507FEC0FD\r
+:1055C00081E08170FDC0C43220F5CE3108F0C0C04A\r
+:1055D000CB3099F1C8F4C73009F0D2C08AE080938B\r
+:1055E000150194E19093140193E09093130180933B\r
+:1055F000120188E08093110188E2809310018CEF02\r
+:1056000097E00E945507BFC0C33149F1C431C1F0D2\r
+:10561000B7C0CB3409F4A9C028F4C93289F0C83323\r
+:1056200061F0AEC0C13509F49EC0C23509F499C01D\r
+:10563000CE3409F0A5C06AE09EC00E94A926A3C08E\r
+:105640008091E601882319F01092E6019CC089E060\r
+:1056500098E00E94550781E08093E701B1C083EE96\r
+:1056600097E00E94550781ED97E00E9455078091D1\r
+:1056700015011F928F938EEC97E09F938F930E945A\r
+:10568000EE078CEC97E00E9455078AEB97E00E94AA\r
+:105690005507809114011F928F9387EB97E09F939A\r
+:1056A0008F930E94EE0785EB97E00E94550786EAEC\r
+:1056B00097E00E945507809113011F928F9383EA10\r
+:1056C00097E09F938F930E94EE0781EA97E00E94F4\r
+:1056D000550780E997E00E945507809112011F92BB\r
+:1056E0008F938DE897E09F938F930E94EE078BE84E\r
+:1056F00097E00E94550786E797E00E945507809142\r
+:1057000011011F928F9383E797E09F938F930E94DD\r
+:10571000EE0781E797E00E9455078AE597E00E942F\r
+:105720005507809110011F928F9387E597E09F9313\r
+:105730008F930E94EE0785E597E00E9455078DB78D\r
+:105740009EB748960FB6F8949EBF0FBE8DBF1BC084\r
+:10575000CE51EC2FF0E0E15DFE4F80818093E601B9\r
+:1057600012C061E003C061E006C06AE08091E6011A\r
+:105770000E94C02608C08091E6010E94632703C0F2\r
+:105780008AEF97E013C08091E601882369F01F92A9\r
+:105790008F9384EF97E09F938F930E94EE070F9073\r
+:1057A0000F900F900F9004C081EF97E00E94550773\r
+:1057B00081E006C01092E70180E002C080E001CFE6\r
+:1057C000CF910895E1E8F0E0808188608083808156\r
+:1057D000816080838FB7F89493E09093890090ED77\r
+:1057E000909388008FBF0895EFE6F0E0808182609B\r
+:1057F00080830895EFE6F0E080818D7F80830895B7\r
+:10580000EFE6F0E0908182E08927808308951F927F\r
+:105810000F920FB60F9211242F933F934F935F93E4\r
+:105820006F937F938F939F93AF93BF93EF93FF9368\r
+:105830008091E8019091E90101969093E9018093AC\r
+:10584000E801811103C082E00E94140DE091E9019A\r
+:10585000E695E695F0E0EA53F24FE4918091E80195\r
+:105860008E1303C080E00E94140DFF91EF91BF9151\r
+:10587000AF919F918F917F916F915F914F913F91E8\r
+:105880002F910F900FBE0F901F90189504D0689421\r
+:10589000B1118DC0089570D088F09F5790F0B92F46\r
+:1058A0009927B751A0F0D1F0660F771F881F991F75\r
+:1058B0001AF0BA95C9F712C0B13081F077D0B1E0D3\r
+:1058C000089574C0672F782F8827B85F39F0B93FE3\r
+:1058D000CCF3869577956795B395D9F73EF4909577\r
+:1058E0008095709561957F4F8F4F9F4F0895E894F5\r
+:1058F00009C097FB3EF490958095709561957F4F18\r
+:105900008F4F9F4F9923A9F0F92F96E9BB279395C5\r
+:10591000F695879577956795B795F111F8CFFAF4D5\r
+:10592000BB0F11F460FF1BC06F5F7F4F8F4F9F4F06\r
+:1059300016C0882311F096E911C0772321F09EE864\r
+:10594000872F762F05C0662371F096E8862F70E0CA\r
+:1059500060E02AF09A95660F771F881FDAF7880FA4\r
+:105960009695879597F9089557FD9058440F551FC0\r
+:1059700059F05F3F71F04795880F97FB991F61F0D1\r
+:105980009F3F79F087950895121613061406551F48\r
+:10599000F2CF4695F1DF08C0161617061806991FB4\r
+:1059A000F1CF86957105610508940895E894BB27A9\r
+:1059B00066277727CB0197F908950BD078C069D077\r
+:1059C00028F06ED018F0952309F05AC05FC011245A\r
+:1059D000EECFCADFA0F3959FD1F3950F50E0551F8E\r
+:1059E000629FF001729FBB27F00DB11D639FAA2734\r
+:1059F000F00DB11DAA1F649F6627B00DA11D661F83\r
+:105A0000829F2227B00DA11D621F739FB00DA11DA3\r
+:105A1000621F839FA00D611D221F749F3327A00D5D\r
+:105A2000611D231F849F600D211D822F762F6A2FF9\r
+:105A300011249F5750408AF0E1F088234AF0EE0F7E\r
+:105A4000FF1FBB1F661F771F881F91505040A9F78B\r
+:105A50009E3F510570F014C0AACF5F3FECF3983E13\r
+:105A6000DCF3869577956795B795F795E7959F5FF2\r
+:105A7000C1F7FE2B880F911D9695879597F908958C\r
+:105A800097F99F6780E870E060E008959FEF80ECF1\r
+:105A9000089500240A941616170618060906089594\r
+:105AA00000240A9412161306140605060895092EFA\r
+:105AB0000394000C11F4882352F0BB0F40F4BF2B69\r
+:105AC00011F460FF04C06F5F7F4F8F4F9F4F0895A9\r
+:105AD000991B79E004C0991F961708F0961B881F40\r
+:105AE0007A95C9F78095089597FB072E16F40094D0\r
+:105AF00007D077FD09D00E948E2D07FC05D03EF41B\r
+:105B0000909581959F4F0895709561957F4F089569\r
+:105B1000EE0FFF1F0590F491E02D0994AA1BBB1B0B\r
+:105B200051E107C0AA1FBB1FA617B70710F0A61B9D\r
+:105B3000B70B881F991F5A95A9F780959095BC01BE\r
+:105B4000CD010895F999FECF92BD81BDF89A9927AC\r
+:105B500080B50895A8E1B0E042E050E00C94C52D76\r
+:105B6000262FF999FECF1FBA92BD81BD20BD0FB679\r
+:105B7000F894FA9AF99A0FBE019608950E94B02DF2\r
+:105B8000272F0C94B12DDC01CB01FC01F999FECF3C\r
+:105B900006C0F2BDE1BDF89A319600B40D924150B5\r
+:0A5BA0005040B8F70895F894FFCFC5\r
+:105BAA002002150D060EE30DAF0D7B0D0101C50197\r
+:105BBA0028080A03140A3F4D3620394605F904C35A\r
+:105BCA0004A3046A04DD03F6030F0428044804014D\r
+:0A5BDA000203040506070809000095\r
+:00000001FF\r
diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c
new file mode 100644 (file)
index 0000000..bdac229
--- /dev/null
@@ -0,0 +1,184 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   Grv  |   1  |   2  |   3  |   4  |   5  |  L1  |           |  L2  |   6  |   7  |   8  |   9  |   0  |   =    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   Tab  |   Q  |   W  |   E  |   R  |   T  |  [   |           |   ]  |   Y  |   U  |   I  |   O  |   P  |   -    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | \/LCtrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |'/RCtrl |
+ * |--------+------+------+------+------+------| RAlt |           | RAlt |------+------+------+------+------+--------|
+ * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  | RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | ~L1  | LCtrl|  Left| Right| LAlt |                                       | LAlt | Up   | Down | RCtrl|  ~L2 |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | Del  | Ins  |       | Esc  | App  |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  LGui  |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_GRV,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   TG(SYMB),
+        KC_TAB,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_LBRC,
+        CTL_T(KC_BSLS), KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_LSFT,        KC_Z,         KC_X,   KC_C,   KC_V,   KC_B,   KC_RALT,
+        MO(SYMB),       KC_LCTRL,     KC_LEFT,KC_RGHT,KC_LALT,
+                                                      KC_DELT,KC_INS,
+                                                              KC_HOME,
+                                               KC_SPC,KC_BSPC,KC_END,
+        // right hand
+             TG(MDIA),    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_EQL,
+             KC_RBRC,     KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             KC_MINS,
+                          KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,          CTL_T(KC_QUOT),
+             KC_RALT,     KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,          KC_RSFT,
+                                  KC_LALT,KC_UP,  KC_DOWN,KC_RCTRL,         MO(MDIA),
+             KC_ESC,      KC_APP,
+             KC_PGUP,
+             KC_PGDN,     KC_LGUI, KC_ENT
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |   0  |    0 |   .  |   =  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_TRNS,KC_TRNS,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,
+                         KC_0,   KC_0,    KC_DOT,  KC_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |Brwser|
+ *                                 |      |      |------|       |------|      |Back  |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+        if (record->event.pressed) {
+          register_code(KC_RSFT);
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md
new file mode 100644 (file)
index 0000000..4839988
--- /dev/null
@@ -0,0 +1,10 @@
+# ErgoDox EZ Emacs-OSX-DeadKeys Configuration
+
+Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There
+are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable.
+
+Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it.
+
+Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet.
+
+![Default](default_highres.png)
index d18d061b9650faf597ce762d4f662cea8ad298cb..928c0ecc3f3aedcd200539fe5d4ff0e51787e1c0 100644 (file)
@@ -1,38 +1,38 @@
-:100000000C9400070C9444070C9444070C94440788\r
-:100010000C9444070C9444070C9444070C94440734\r
-:100020000C9444070C9444070C945B120C942D130D\r
-:100030000C9444070C9444070C9444070C94440714\r
-:100040000C9444070C94052C0C9444070C9444071E\r
-:100050000C9444070C940C220C9444070C94440711\r
-:100060000C9444070C9444070C9444070C944407E4\r
-:100070000C9444070C9444070C9444070C944407D4\r
-:100080000C9444070C9444070C9444070C944407C4\r
-:100090000C9444070C9444070C9444070C944407B4\r
-:1000A0000C9444070C9444070C9444079213B41323\r
-:1000B0009F14B4139F14F61319149F146E14811413\r
-:1000C000CF17CF17FD17FD1740187C187D1A7D1A22\r
-:1000D00094187D1A8B198B19571A7D1A7D1A6B1A71\r
+:100000000C9465020C94A9020C94A9020C94A90208\r
+:100010000C94A9020C94A9020C94A9020C94A902B4\r
+:100020000C94A9020C94A9020C94C50B0C94970C87\r
+:100030000C94A9020C94A9020C94A9020C94A90294\r
+:100040000C94A9020C9422210C94A9020C94A902EC\r
+:100050000C94A9020C94C41A0C94A9020C94A90241\r
+:100060000C94A9020C94A9020C94A9020C94A90264\r
+:100070000C94A9020C94A9020C94A9020C94A90254\r
+:100080000C94A9020C94A9020C94A9020C94A90244\r
+:100090000C94A9020C94A9020C94A9020C94A90234\r
+:1000A0000C94A9020C94A9020C94A902FC0C1E0D3C\r
+:1000B000090E1E0D090E600D830D090ED80DEB0DF6\r
+:1000C000D810D81006110611481184118413841316\r
+:1000D0009C118413931293125E138413841372136E\r
 :1000E0000000F0A12E004C002A00E1003581000044\r
 :1000F0001E00140004001D7134004D001F001A0082\r
-:1001000016001B00E1042A0020000800070006007A\r
+:1001000016001B00E104C1002000080007000600E3\r
 :1001100050002C0021001500090019004F004A0072\r
 :10012000220017000A000500000065745000015409\r
 :100130000000007F0000E3004F0001540000007742\r
 :100140000000E20023001C000B00110000002971D8\r
 :10015000240018000D74100052004B0025000C0004\r
 :100160000E00360051002800260012000F00370054\r
-:100170002F002B00270013003382387130004E000F\r
+:100170002F002B81270013003382387130004E008E\r
 :100180002D0031003478E500C100000001000100BD\r
-:1001900001000100010000003A001E0220022202BC\r
-:1001A000010001003B001F022102230201000100A7\r
-:1001B0003C002F0226022F00010001003D0030020A\r
-:1001C00027023000010001003E00310235003502F7\r
+:1001900001000100010000003A001E0022002602BA\r
+:1001A000010001003B001F002300270201000100A5\r
+:1001B0003C00200024002F004B0101003D002100E5\r
+:1001C000250030004E0101003E00010026002700FE\r
 :1001D000000001000100010000000100000001001A\r
-:1001E0000100010000000100000001003F0052007A\r
-:1001F00051002402000001004000240021001E00E4\r
-:10020000010001004100250022001F00370001000D\r
-:1002100042002600230020002700010043002502A1\r
-:100220002E0231002E0001004400450001000100B3\r
+:1001E0000100010000000100000001003F000100CB\r
+:1001F0002402310200000100400022022D022602EA\r
+:100200000100010041002E002D0027020100010025\r
+:1002100042001F0213002000010001004300010002\r
+:100220002E02010001000100440045000100010010\r
 :1002300001000000010001000100010001000000B8\r
 :1002400001000100010001000100010001000100A6\r
 :10025000F2000100010001000100F000F1000100C6\r
 :1002A0000100010001000100A9000100010001009E\r
 :1002B0000100AC00AA00B600010001000100AB0083\r
 :1002C000A80001000100010001000100010001007F\r
-:1002D00001000100AE000100010000000A0025300D\r
-:1002E000313662003A200025303258000A722F63FE\r
-:1002F0002030313233343536373839414243444582\r
-:10030000460A000A002530325800626F756E636538\r
-:10031000213A20006C6566742073696465206174FD\r
-:100320007461636865640A006C656674207369644F\r
-:1003300065206E6F7420726573706F6E64696E678E\r
-:100340000A00747279696E6720746F207265736534\r
-:1003500074206D637032333031380A000A444542EC\r
-:1003600055473A20656E61626C65642E0A005B73C6\r
-:100370005D004B6579626F617264207374617274A1\r
-:100380002E0A005B575D005B535D005B525D005BB6\r
-:10039000445D005B435D0016034500720067006F1B\r
-:1003A0000044006F007800200045005A000000164D\r
-:1003B000034500720067006F0044006F0078002062\r
-:1003C0000045005A0000000403090409028D0005DD\r
-:1003D0000100A0FA09040000010301010009211134\r
-:1003E000010001223F000705810308000A090401FA\r
-:1003F000000103010200092111010001224D000743\r
-:1004000005820308000A0904020001030000000934\r
-:1004100021110100012236000705830308000A09A3\r
-:100420000403000203000000092111010001222041\r
-:1004300000070584032000010705040320000109CB\r
-:100440000404000103000000092111010001223908\r
-:1004500000070585031000011201100100000008CB\r
-:10046000EDFE071301000102000105010906A101CB\r
-:10047000050719E029E71500250195087501810296\r
-:100480000508190129059505750191029501750366\r
-:100490009101050719002977150025019578750147\r
-:1004A0008102C00631FF0974A1010975150025FFFD\r
-:1004B0009520750881020976150025FF952075089D\r
-:1004C0009102C005010980A101850216010026B72D\r
-:1004D000001A01002AB700751095018100C0050CB3\r
-:1004E0000901A1018503160100269C021A01002AB8\r
-:1004F0009C02751095018100C005010902A1010946\r
-:1005000001A10005091901290515002501950575A9\r
-:100510000181029501750381010501093009311539\r
-:1005200081257F95027508810609381581257F95FB\r
-:100530000175088106050C0A38021581257F950191\r
-:1005400075088106C0C005010906A101050719E06B\r
-:1005500029E71500250195087501810295017508A7\r
-:10056000810105081901290595057501910295017B\r
-:10057000750391010507190029FF150025FF950650\r
-:1005800075088100C00A002530325820006B65795B\r
-:10059000626F6172645F7265706F72743A20000AF4\r
-:1005A0000025303258006B6579626F6172645F7349\r
-:1005B00065745F6C65643A200064656C5F6B657997\r
-:1005C0005F6269743A2063616E27742064656C3AD7\r
-:1005D00020253032580A006164645F6B65795F6280\r
-:1005E00069743A2063616E2774206164643A20253F\r
-:1005F0003032580A00646F6E652E0A00626F6F67B2\r
-:100600006D61676963207363616E3A202E2E2E2020\r
-:1006100000290A002575002F002575005D2800259A\r
-:10062000640020002564002000256400200025646B\r
-:10063000007C0025303258006D6F7573656B6579ED\r
-:10064000205B62746E7C782079207620685D287249\r
-:1006500065702F61636C293A205B006D6B5F776872\r
-:1006600065656C5F74696D655F746F5F6D6178203F\r
-:100670003D2025640A006D6B5F776865656C5F6D72\r
-:1006800061785F7370656564203D2025640A006DA4\r
-:100690006B5F74696D655F746F5F6D6178203D207D\r
-:1006A00025640A006D6B5F6D61785F7370656564CA\r
-:1006B000203D2025640A006D6B5F696E746572765B\r
-:1006C000616C203D2025640A006D6B5F64656C6180\r
-:1006D00079203D2025640A006D6B5F776865656C45\r
-:1006E0005F74696D655F746F5F6D6178203D202573\r
-:1006F000640A006D6B5F776865656C5F6D61785F3C\r
-:100700007370656564203D2025640A006D6B5F741D\r
-:10071000696D655F746F5F6D6178203D2025640AA7\r
-:10072000006D6B5F6D61785F7370656564203D205F\r
-:1007300025640A006D6B5F696E74657276616C206A\r
-:100740003D2025640A006D6B5F64656C6179203D16\r
-:100750002025640A000A00257500363A207768656E\r
-:10076000656C5F74696D655F746F5F6D61783A2069\r
-:10077000000A00257500353A20776865656C5F6D65\r
-:1007800061785F73706565643A20000A0025750022\r
-:10079000343A2074696D655F746F5F6D61783A20DB\r
-:1007A000000A00257500333A206D61785F7370652B\r
-:1007B00065643A20000A00257500323A20696E749B\r
-:1007C000657276616C286D73293A20000A002575E0\r
-:1007D00000313A2064656C6179282A31306D7329C3\r
-:1007E0003A20000A092D2056616C756573202D0A88\r
-:1007F000004D3E004D25643E20003F00736574208F\r
-:1008000064656661756C740A00433E200077686514\r
-:1008100072652064656C74613A20637572736F72DF\r
-:100820003D25642C20776865656C3D25640A536519\r
-:100830006520687474703A2F2F656E2E77696B6926\r
-:1008400070656469612E6F72672F77696B692F4DD0\r
-:100850006F7573655F6B6579730A000A092D204D0A\r
-:100860006F7573656B6579202D0A4553432F713A77\r
-:1008700009717569740A313A0964656C6179282ACD\r
-:1008800031306D73290A323A09696E746572766186\r
-:100890006C286D73290A333A096D61785F7370654E\r
-:1008A00065640A343A0974696D655F746F5F6D61E0\r
-:1008B000780A353A09776865656C5F6D61785F73B2\r
-:1008C000706565640A363A09776865656C5F7469B6\r
-:1008D0006D655F746F5F6D61780A0A703A097072B6\r
-:1008E000696E742076616C7565730A643A09736584\r
-:1008F000742064656661756C74730A75703A092BAF\r
-:10090000310A646F776E3A092D310A706775703A53\r
-:10091000092B31300A7067646F776E3A092D3130D8\r
-:100920000A0A7370656564203D2064656C746120FB\r
-:100930002A206D61785F7370656564202A202872B3\r
-:100940006570656174202F2074696D655F746F5FD9\r
-:100950006D6178290A003F004D3E2000433E200093\r
-:100960004C25640A000A092D20436F6E736F6C6575\r
-:10097000202D0A4553432F713A09717569740A6D28\r
-:100980003A096D6F7573656B65790A000A092D2048\r
-:100990004D61676963202D0A643A09646562756771\r
-:1009A0000A783A096465627567206D6174726978C6\r
-:1009B0000A6B3A096465627567206B6579626F61DD\r
-:1009C00072640A6D3A096465627567206D6F7573AC\r
-:1009D000650A763A0976657273696F6E0A733A0929\r
-:1009E0007374617475730A633A09636F6E736F6C25\r
-:1009F00065206D6F64650A302D343A096C61796544\r
-:100A000072302D34284631302D4634290A50617514\r
-:100A1000733A09626F6F746C6F616465720A653A4C\r
-:100A200009656570726F6D0A6E3A094E4B524F0A36\r
-:100A30007A3A09736C656570204C4544207465737F\r
-:100A4000740A000A002575002E6E6B726F3A200042\r
-:100A50000A002575002E737761705F6261636B73A6\r
-:100A60006C6173685F6261636B73706163653A2088\r
-:100A7000000A002575002E737761705F67726176DA\r
-:100A8000655F6573633A20000A002575002E6E6F5E\r
-:100A90005F6775693A20000A002575002E7377613B\r
-:100AA000705F72616C745F726775693A20000A004A\r
-:100AB0002575002E737761705F6C616C745F6C6775\r
-:100AC00075693A20000A002575002E636170736C09\r
-:100AD0006F636B5F746F5F636F6E74726F6C3A20DD\r
-:100AE000000A002575002E737761705F636F6E7466\r
-:100AF000726F6C5F636170736C6F636B3A20000A96\r
-:100B00000025303258006B65796D61705F636F6EE0\r
-:100B10006669672E7261773A20000A002575002EFB\r
-:100B20006D6F7573653A20000A002575002E6B65A0\r
-:100B300079626F6172643A20000A002575002E6D9B\r
-:100B400061747269783A20000A002575002E656E7E\r
-:100B500061626C653A20000A0025303258006465F5\r
-:100B60006275675F636F6E6669672E7261773A20A0\r
-:100B7000000A0025750064656661756C745F6C61C0\r
-:100B80007965723A20003F004E4B524F3A206F6613\r
-:100B9000660A004E4B524F3A206F6E0A0074696D20\r
-:100BA00065725F636F756E743A202530346C580A35\r
-:100BB000006B6579626F6172645F6E6B726F3A2071\r
-:100BC00025580A006B6579626F6172645F69646CB5\r
-:100BD000653A2025580A006B6579626F6172645F1F\r
-:100BE00070726F746F636F6C3A2025580A00686FDB\r
-:100BF00073745F6B6579626F6172645F6C65647357\r
-:100C000028293A2025580A000A092D2053746174B6\r
-:100C10007573202D0A004743433A20342E382E3274\r
-:100C2000204156522D4C4942433A20312E382E3025\r
-:100C3000204156525F415243483A20617672350A4C\r
-:100C4000004F5054494F4E533A204C554641204294\r
-:100C50004F4F544D41474943204D4F5553454B4508\r
-:100C6000592045585452414B455920434F4E534FFC\r
-:100C70004C4520434F4D4D414E44204E4B524F204A\r
-:100C80003531320A004255494C443A2038366235F3\r
-:100C9000363839202830353A32353A3435204A61F1\r
-:100CA0006E2032302032303136290A005649443A1B\r
-:100CB00020307846454544284572676F446F782058\r
-:100CC000455A29205049443A20307831333037286A\r
-:100CD0004572676F446F7820455A29205645523A2D\r
-:100CE000203078303030310A00444553433A207484\r
-:100CF0002E6D2E6B2E206B6579626F61726420669B\r
-:100D000069726D7761726520666F72204572676FD8\r
-:100D1000646F780A000A092D2056657273696F6E38\r
-:100D2000202D0A000A6D6F7573653A206F66660A9A\r
-:100D3000000A6D6F7573653A206F6E0A000A6B6565\r
-:100D400079626F6172643A206F66660A000A6B65A9\r
-:100D500079626F6172643A206F6E0A000A6D617485\r
-:100D60007269783A206F66660A000A6D617472696A\r
-:100D7000783A206F6E0A000A64656275673A206FE0\r
-:100D80006E0A000A64656275673A206F66660A003B\r
-:100D90000A0A626F6F746C6F616465722E2E2E206A\r
-:100DA00000433E20006565636F6E6669673A0A001E\r
-:100DB000536C656570204C454420746573740A005B\r
-:100DC0000000000000000000000000010204060A0C\r
-:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD\r
-:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD\r
-:100DF0000F0A0604020100000000000000000000CD\r
-:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74\r
-:100E100024C08091F9019091FA01A091FB01B09159\r
-:100E2000FC018730904BA740B04BB9F41092F90108\r
-:100E30001092FA011092FB011092FC0114BE84B7CB\r
-:100E4000877F84BF88E10FB6F8948093600010928A\r
-:100E500060000FBEE0E0FFE3099511E0A0E0B1E023\r
-:100E6000E6EAFBE502C005900D92AA33B107D9F777\r
-:100E700011E0AAE3B1E001C01D92A93FB107E1F77B\r
-:100E80000E94950F0C94D12D0C940000FF93EF93CA\r
-:100E9000E0913A01F0913B01309709F00995EF910B\r
-:100EA000FF910895FC018591803011F0EFDFFBCFB9\r
-:100EB0000895FF27E0E230E247FF0CC0419597FF1D\r
-:100EC00009C0EDE26095709580959095611D711D4A\r
-:100ED000811D911D27FF02C0219530E350E2AA2712\r
-:100EE000660F771F881F991FAA1FA41710F0A41B55\r
-:100EF00063955A95A9F7AA3008F0A95FA05DAF9352\r
-:100F0000F395611571058105910541F7ED3211F4F5\r
-:100F1000EF93F395F21718F43F93F395FBCF8F916E\r
-:100F2000B5DFFA95E1F70895E991F991859180305F\r
-:100F300021F0853219F0AADFF9CF089520E0E89476\r
-:100F400055915532C1F3503311F4689455915A3389\r
-:100F500048F4505390F3220F022E220F220F200D3F\r
-:100F6000250FF4CF0EF4219589919991533619F3F9\r
-:100F7000533729F1533559F1BC0188279927E89453\r
-:100F80005C3621F48991999168945591543639F4DD\r
-:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709\r
-:100FA0004AE039F0583540E121F0523642E009F08C\r
-:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC\r
-:100FC000EF93FC0181918030B9F360DFFBCFFF9399\r
-:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0\r
-:100FE000A3DFCF91DF91089561110BC0FC018281D5\r
-:100FF000882321F085EE0E94631603C085EE0E94CF\r
-:101000002B1780E090E0089508956091BC017091E5\r
-:10101000BD018091BE019091BF010E9410215698A0\r
-:101020005E9825982D9826982E9827982F9881308D\r
-:1010300019F0823021F00895259A2D9A0895269A64\r
-:101040002E9A089585E098E0892B11F00E940508FA\r
-:1010500080E090E0089556985E9825982D982698FF\r
-:101060002E9827982F988FEF90E090938900809387\r
-:10107000880090938B0080938A0090938D008093DA\r
-:101080008C00259A2D9A2FEF80E792E02150804026\r
-:101090009040E1F700C00000269A2E9A2FEF80E7DB\r
-:1010A00092E0215080409040E1F700C00000279A74\r
-:1010B0002F9A2FEF80E792E0215080409040E1F797\r
-:1010C00000C0000025982D982FEF80E792E0215076\r
-:1010D00080409040E1F700C0000026982E982FEF46\r
-:1010E00080E792E0215080409040E1F700C000008E\r
-:1010F00027982F9856985E9825982D9826982E9880\r
-:1011000027982F98089589EA8093800089E080933A\r
-:10111000810024982C983F988AB18F748AB96E9870\r
-:10112000479A8BB1806B8BB9769A0E942B0884E02A\r
-:1011300098E0892B11F00E94040880E090E0089567\r
-:1011400080E28093000180913C0181110EC00E94D9\r
-:10115000EF0881E080933C012FEF83ED90E3215075\r
-:1011600080409040E1F700C0000080E40E94F50854\r
-:101170008093000181112EC00E941F0980930001FD\r
-:10118000811128C00E941F0980930001811122C093\r
-:101190008FE30E941F098093000181111BC00E94F0\r
-:1011A000170980E40E94F50880930001811112C0A4\r
-:1011B0008CE00E941F098093000181110BC00E94E6\r
-:1011C0001F0980930001811105C08FE30E941F0950\r
-:1011D000809300010E9417098091000108951092E8\r
-:1011E000B9008AE08093B800089594EA9093BC0017\r
-:1011F0009091BC0097FFFCCF9091B900987F9830F8\r
-:1012000021F0903111F081E008958093BB0084E8D3\r
-:101210008093BC008091BC0087FFFCCF8091B90017\r
-:10122000887F883111F0803471F780E0089584E977\r
-:101230008093BC008091BC0084FDFCCF0895809316\r
-:10124000BB0084E88093BC008091BC0087FFFCCF8A\r
-:101250009091B900987F81E0983209F480E0089578\r
-:1012600084E88093BC008091BC0087FFFCCF809114\r
-:10127000BB00089580910001811115C080E40E9497\r
-:10128000F5088093000181110CC082E10E941F09C2\r
-:1012900080930001811105C08FEF0E941F09809388\r
-:1012A00000010E94170984B1807F84B985B1807FD5\r
-:1012B00085B98AB1837F8AB98BB1837F8BB93E9818\r
-:1012C000469808950E94A008809300010E943A0960\r
-:1012D00080B38C7080BB81B3836F81BBECE4F1E0A1\r
-:1012E000AEE3B1E011921D9281E0EA35F807D1F743\r
-:1012F00083E898E0892B11F00C94830808959F925D\r
-:10130000AF92BF92CF92DF92EF92FF920F931F9313\r
-:10131000CF93DF93809100018823E1F080913D011C\r
-:101320008F5F80933D01811115C082E493E00E949C\r
-:1013300052070E94A00880930001882329F088E2C8\r
-:1013400093E00E94520706C084E193E00E94520796\r
-:101350000E942B080EE311E0C0E0D0E0BB24B39460\r
-:1013600082E0A82ECC24C394D12C25E0E22E23E0E9\r
-:10137000F22EC73000F580910001811162C080E437\r
-:101380000E94F50880930001811112C082E10E9441\r
-:101390001F098093000181110BC0C6010C2E01C0F2\r
-:1013A000880F0A94EAF780950E941F098093000134\r
-:1013B0000E94170946C0CA30A1F028F4C83059F07D\r
-:1013C000C93061F005C0CC3089F070F0CD3089F0C3\r
-:1013D000209A289810C0219A29980DC0229A2A98FC\r
-:1013E0000AC0239A2B9807C0529A01C0539A5B985F\r
-:1013F00002C03E9A4698E0EAEA95F1F78FB17999F2\r
-:1014000085C092E081708B25892B7C9B02C090E087\r
-:1014100001C094E0892B7D9B02C090E001C098E060\r
-:10142000892B7E9B02C090E001C090E1892B9FB187\r
-:101430009095991F9927991F9295990F907E892BC6\r
-:1014400010C080910001811176C080E40E94F508EF\r
-:1014500080930001882309F45BC0912C0E94170936\r
-:10146000892DF8019081981739F1808380910101CD\r
-:10147000882301F18091D70180FF04C08AE093E0C6\r
-:101480000E9452078091D70180FF0CC0809101011A\r
-:101490001F928F93FF92EF920E94EB070F900F9095\r
-:1014A0000F900F908091D70180FF04C083E093E0FC\r
-:1014B0000E945207A09201010E943A0921960F5FF3\r
-:1014C0001F4FCE30D10509F054CF80910101882300\r
-:1014D000B1F0815080930101882339F08FE99FE0BA\r
-:1014E0000197F1F700C000000AC0ACE4B1E0EEE300\r
-:1014F000F1E081918D9391E0EC34F907D1F782E22C\r
-:1015000098E0892BD1F00E94220817C090E07ACF92\r
-:1015100083E10E941F098093000181119ECF81E425\r
-:101520000E94F50880930001811197CF0E94300935\r
-:10153000982E909493CF80E094CF81E0DF91CF916B\r
-:101540001F910F91FF90EF90DF90CF90BF90AF90E1\r
-:101550009F900895E82FF0E0E45BFE4F80810895AE\r
-:10156000CF92DF92EF92FF920F931F93CF93DF936F\r
-:101570008CEE92E00E9452073CE4E32E31E0F32E21\r
-:10158000C0E0D0E047EEC42E42E0D42E0EED12E0D3\r
-:10159000DF93CF93DF92CF920E94EB0784EE92E02D\r
-:1015A0000E945207F70181917F0190E00E9475210E\r
-:1015B0009F938F931F930F930E94EB078CED92E004\r
-:1015C0000E94520721968DB79EB708960FB6F894E1\r
-:1015D0009EBF0FBE8DBFCE30D105D1F6DF91CF912A\r
-:1015E0001F910F91FF90EF90DF90CF9008958B3B6C\r
-:1015F000910578F4883A910540F5853A9105D0F443\r
-:101600008430910508F0B1C08130910509F4ADC076\r
-:101610006BC0803E910508F467C0883E910508F4D0\r
-:10162000A4C09C01205F31092031310508F05CC065\r
-:1016300090650895853A910509F459C0863A910557\r
-:1016400009F458C083E890E40895883A910509F4B4\r
-:1016500054C0893A910509F453C08A3A910509F4B6\r
-:1016600052C08B3A910509F451C08C3A910509F4A6\r
-:1016700050C08D3A910509F44FC0803B910509F4A3\r
-:101680004EC08E3A910509F44DC08F3A910509F488\r
-:101690004CC0813B910509F44BC0823B910509F494\r
-:1016A0004AC0833B910509F449C0843B910509F484\r
-:1016B00048C0853B910509F447C0863B910509F474\r
-:1016C00046C0873B910509F445C0883B910509F464\r
-:1016D00044C0893B910509F443C08A3B910509F058\r
-:1016E00042C08AE296E4089580E090E0089581E89F\r
-:1016F00090E4089582E890E4089582EE94E40895D9\r
-:1017000089EE94E408958AEE94E4089585EB94E4D8\r
-:10171000089586EB94E4089587EB94E408958CECA7\r
-:1017200094E408958DEC94E4089583E895E4089595\r
-:101730008AE895E4089582E995E4089584E995E4BA\r
-:10174000089581E296E4089583E296E4089584E2A0\r
-:1017500096E4089585E296E4089586E296E4089575\r
-:1017600087E296E4089580E094E40895089596E071\r
-:10177000799FF001112494E5899FE00DF11D11245A\r
-:10178000E60FF11DEE0FFF1FEC51FF4F8591949175\r
-:101790000895880F991F805A9040FC01859194917B\r
-:1017A0000895880F991F80529F4FFC018591949155\r
-:1017B000089526E0729FF001112444E5849FE00D16\r
-:1017C000F11D1124E60FF11DEE0FFF1FEC51FF4F2D\r
-:1017D00025913491C9019A9581159F4110F4C90151\r
-:1017E0000895C90190528115904128F4C9019F7054\r
-:1017F0000E94D10B0895C90190538115904120F4A6\r
-:10180000C9019927906C0895211580E5380769F47E\r
-:101810000E949E1A9FEF24E34CE0915020404040EC\r
-:10182000E1F700C000000C943122213080E5380738\r
-:1018300051F48CE593E00E9452078091D7018160BA\r
-:101840008093D7010895C90190558115904108F002\r
-:1018500050C0832F99278F70992781309105D9F433\r
-:10186000A9014370552702C0880F991F4A95E2F7D6\r
-:101870009C68A90164E0440F551F6A95E1F744276D\r
-:101880005370842B952B73E0220F331F7A95E1F769\r
-:10189000207633271DC08230910529F4922F8827A6\r
-:1018A000816F906A089583309105A9F4A90143706E\r
-:1018B000552781E090E002C0880F991F4A95E2F712\r
-:1018C0009C6843E0220F331F4A95E1F7207E377072\r
-:1018D000822B932B08950497F1F4A90143705527A7\r
-:1018E00081E090E002C0880F991F4A95E2F79A685C\r
-:1018F000E8CFC90190578115904120F4C9019F702C\r
-:1019000090620895C90190588115904120F4C90151\r
-:101910009F70906A0895203E3105E0F4203C310527\r
-:1019200058F52133310509F470C048F429323105E6\r
-:1019300009F464C02A32310509F46EC074C0293339\r
-:101940003105F1F022383105D9F02533310509F49C\r
-:101950004EC069C0233E310589F138F4203E31057F\r
-:10196000C1F0223E3105E1F05EC0263E310569F14D\r
-:10197000273E3105A9F157C0C9010E94C90B08953E\r
-:101980008091EA0180FD02C081FF4DC080EE90E0B1\r
-:101990004BC08091EA0180FFF9CF89E390E044C019\r
-:1019A0008091EA0182FF0EC08091EA0184FF03C0AA\r
-:1019B00080E090E039C083EE90E036C08091EA018B\r
-:1019C00082FFF2CF82EE90E02FC08091EA0183FF88\r
-:1019D0000BC08091EA0184FDEBCF87EE90E024C03C\r
-:1019E0008091EA0183FFF5CF86EE90E01DC08091E3\r
-:1019F000EA0185FF07C089E290E016C08091EA0104\r
-:101A000085FFF9CF85E390E00FC08091EA0186FF62\r
-:101A100007C08AE290E008C08091EA0186FFF9CF12\r
-:101A200081E390E001C0C9010E94F70A089508957A\r
-:101A300080916D0108959FB7F89410925C019FBF4B\r
-:101A40009091F001943009F058C09091E9009F7096\r
-:101A50002091EC0020FF02C020E801C020E0292BEB\r
-:101A600094E09093E9009091EB0090FF43C0909137\r
-:101A7000EE0097FF3FC090915A01992321F0909179\r
-:101A8000E80095FF37C010925A0196E03091E800C7\r
-:101A900035FD15C03091F001343061F53091EB0027\r
-:101AA00035FD28C0915021F481E080935A0122C075\r
-:101AB000EFE9FFE03197F1F700C00000E7CF809336\r
-:101AC000F1008091E80085FD0AC08091E80080FF68\r
-:101AD000FCCF8091E8008E778093E80006C08FB736\r
-:101AE000F89491E090935C018FBF2F702093E900F0\r
-:101AF00080E008952F702093E9008FEF0895CF9331\r
-:101B0000DF9300D01F92CDB7DEB72091F0012430D3\r
-:101B100019F523E029839B838A832093E9008FEFC3\r
-:101B20009091E800815095FD06C095ED9A95F1F7EA\r
-:101B300000008111F5CF8091E80085FF0DC040E0E5\r
-:101B400050E063E070E0CE0101960E944E1080915B\r
-:101B5000E8008E778093E8000F900F900F90DF9150\r
-:101B6000CF910895CF93DF9300D01F92CDB7DEB70A\r
-:101B70002091F001243021F522E029839B838A8380\r
-:101B800083E08093E9008FEF9091E800815095FD0C\r
-:101B900006C095ED9A95F1F700008111F5CF80917F\r
-:101BA000E80085FF0DC040E050E063E070E0CE014A\r
-:101BB00001960E944E108091E8008E778093E80095\r
-:101BC0000F900F900F90DF91CF9108952091F00129\r
-:101BD0002430F1F422E02093E9002FEF3091E80067\r
-:101BE000215035FD06C035ED3A95F1F70000211181\r
-:101BF000F5CF2091E80025FF0BC040E050E065E004\r
-:101C000070E00E944E108091E8008E778093E8008B\r
-:101C10000895CF93DF93EC018091F001843009F0B7\r
-:101C200047C080910C018823E1F080910D01882349\r
-:101C3000C1F085E08093E9008FEF9091E80081503A\r
-:101C400095FD06C095E19A95F1F700008111F5CF59\r
-:101C50008091E80085FF2CC040E050E060E170E03A\r
-:101C600017C081E08093E9008FEF9091E8008150E8\r
-:101C700095FD06C095ED9A95F1F700008111F5CF1D\r
-:101C80008091E80085FF14C040E050E068E070E01B\r
-:101C9000CE010E944E108091E8008E778093E8007C\r
-:101CA00080E1FE01ADE5B1E001900D928A95E1F78A\r
-:101CB000DF91CF91089583E993E00E9452078091CC\r
-:101CC000EF01811109C00E94E0110E943D12809134\r
-:101CD000E20084608093E20008958FE893E00E9420\r
-:101CE00052071092EF0108958BE893E00C9452078D\r
-:101CF00087E893E00E9452070C94F22B83E893E06C\r
-:101D00000E9452070E94CC210E94F82B0E94D914F5\r
-:101D10000C94170D80915B018F5F80935B0162E3F0\r
-:101D20000E94662D911135C010925B0180915C017B\r
-:101D3000882379F18091F001843049F58091E900A0\r
-:101D40008F709091EC0090FF02C090E801C090E08D\r
-:101D5000982B84E08093E9008091EB0080FF14C011\r
-:101D60008091EE0087FF10C08091E80085FF03C0DE\r
-:101D70001092F100F9CF8091E80080FF05C08091BA\r
-:101D8000E8008E778093E8009F709093E9001092AE\r
-:101D90005C01089542E061EC81E00E945A1142E04A\r
-:101DA00061EC82E00E945A1142E061EC83E00E9403\r
-:101DB0005A1142E261EC84E00E945A1142E161EC66\r
-:101DC00085E00C945A118091F201833009F455C0DA\r
-:101DD00030F4813071F0823009F48EC008958A3079\r
-:101DE00009F47AC08B3009F460C0893009F09CC0D6\r
-:101DF00020C08091F101813A09F096C08091E800FD\r
-:101E0000877F8093E8008091F5019091F601892BFE\r
-:101E100021F060E080E090E003C060E18DE591E0BA\r
-:101E200070E00E9497108091E8008B778093E80023\r
-:101E300008958091F101813209F076C08091F50119\r
-:101E40009091F601009719F0049709F06DC0809108\r
-:101E5000E800877F8093E8008091E80082FD05C05C\r
-:101E60008091F0018111F8CF5FC08091F1008093E3\r
-:101E70006D018091E8008B7753C08091F101813A28\r
-:101E800009F052C08091F5019091F601892B09F07B\r
-:101E90004BC08091E800877F8093E8008091E80044\r
-:101EA00080FFFCCF80910C0136C08091F10181321E\r
-:101EB000D9F58091F5019091F601892BA9F58091D2\r
-:101EC000E800877F8093E8000E948F118091F301E2\r
-:101ED00080930C010C949E1A8091F101813221F5BE\r
-:101EE0008091E800877F8093E8000E948F118091A5\r
-:101EF000F40180936E0108958091F101813AA1F47B\r
-:101F00008091E800877F8093E8008091E80080FF5F\r
-:101F1000FCCF80916E018093F1008091E8008E7774\r
-:101F20008093E8000C948F11089584B7877F84BF55\r
-:101F300088E10FB6F89480936000109260000FBEA5\r
-:101F400090E080E80FB6F894809361009093610070\r
-:101F50000FBE0E9462150E94E0110E943D12809106\r
-:101F6000E20084608093E2008BE19DE00E940B21FF\r
-:101F700078940E94B7140E94641582E091E00E9458\r
-:101F8000D4140E94E02B82E793E00E9452078091D4\r
-:101F9000F001853089F48EE693E00E9452070E949A\r
-:101FA0008F218091EE01882391F30E94B72188232D\r
-:101FB00071F30E943810EBCF0E949215E8CF292FC1\r
-:101FC000332723303105A9F06CF42130310509F4B1\r
-:101FD00042C02230310509F043C08DE890E02BEC7F\r
-:101FE00033E042C021323105C9F02232310519F106\r
-:101FF00037C099278130910541F08230910541F039\r
-:10200000892B71F5E7ECF3E005C0EFEAF3E002C0DD\r
-:10201000E7E9F3E0849190E09F0126C0653000F588\r
-:10202000E62FF0E0EE0FFF1FEB5DFE4F20813181C8\r
-:1020300089E090E019C0653098F4E62FF0E0DF0108\r
-:10204000AA0FBB1FA55EBE4F2D913C91EA5EFE4FCD\r
-:10205000808190E009C082E190E028E534E004C08E\r
-:1020600080E090E020E030E0FA01318320830895A1\r
-:1020700080E189BD82E189BD09B400FEFDCF809178\r
-:10208000D8008F7D8093D8008091E000826080939B\r
-:10209000E0008091E00081FDFCCF0895CF92DF92B7\r
-:1020A000EF92FF920F931F93CF93DF937C018B01ED\r
-:1020B000EA010E94B011811131C0209731F088816E\r
-:1020C0009981081B190BE80EF91EC12CD12C0115A2\r
-:1020D000110519F18091E80085FD14C08091E80098\r
-:1020E0008E778093E800209741F0888199818C0D4C\r
-:1020F0009D1D9983888385E011C00E94B0118823BB\r
-:1021000031F30CC0F70181917F018093F100015000\r
-:102110001109FFEFCF1ADF0ADACF80E0DF91CF910C\r
-:102120001F910F91FF90EF90DF90CF900895209135\r
-:10213000F7013091F8012617370748F0611571054E\r
-:1021400039F42091E8002E772093E80001C0B9010E\r
-:10215000FC0120E061157105B9F18091F00188233F\r
-:1021600009F440C0853009F43FC08091E80083FD48\r
-:102170003DC08091E80082FF06C08091E80082FFA8\r
-:1021800026C080E008958091E80080FFE3CF209191\r
-:10219000F3008091F20090E0922B6115710551F0EF\r
-:1021A0008830910538F421912093F1006150710934\r
-:1021B0000196F3CF21E0089709F020E08091E80034\r
-:1021C0008E778093E800C6CF2111C7CFD6CF8091FC\r
-:1021D000F001882339F0853039F08091E80083FFE1\r
-:1021E000CCCF04C082E0089583E0089581E0089593\r
-:1021F0002091F7013091F8012617370748F0611553\r
-:10220000710539F42091E8002E772093E80001C091\r
-:10221000B901FC0120E061157105C1F18091F00167\r
-:10222000882309F441C0853009F440C08091E8005A\r
-:1022300083FD3EC08091E80082FF06C08091E800E7\r
-:1022400082FF27C080E008958091E80080FFE3CFFF\r
-:102250002091F3008091F20090E0922B61157105BE\r
-:1022600059F08830910540F424912093F100319683\r
-:10227000615071090196F2CF21E0089709F020E042\r
-:102280008091E8008E778093E800C5CF2111C6CFFA\r
-:10229000D5CF8091F001882339F0853039F08091D5\r
-:1022A000E80083FFCBCF04C082E0089583E0089567\r
-:1022B00081E00895982F973058F59093E90098178A\r
-:1022C00039F07091EC002091ED005091F00003C0C6\r
-:1022D000242F762F50E021FF19C03091EB003E7F74\r
-:1022E0003093EB003091ED003D7F3093ED00309165\r
-:1022F000EB0031603093EB007093EC002093ED0025\r
-:102300005093F0002091EE0027FF07C09F5FD3CFCE\r
-:102310008F708093E90081E0089580E008958091B6\r
-:10232000F10187FD05C08091E80080FF0EC012C05A\r
-:102330008091E80082FD05C08091F0018111F8CF05\r
-:1023400008958091E8008B7708C08091F001811199\r
-:10235000EACF08958091E8008E778093E800089591\r
-:102360008091E4009091E50045E62091EC0020FF8B\r
-:1023700021C02091E80020FD21C02091F0012223FE\r
-:1023800089F0253089F02091EB0025FD0FC02091C8\r
-:10239000E4003091E5002817390739F3415041F046\r
-:1023A000C901E3CF82E0089583E0089581E00895B4\r
-:1023B00084E008952091E80022FFDFCF80E00895B7\r
-:1023C0000E944E120E945612E0EEF0E08081816081\r
-:1023D0008083E8EDF0E080818F77808319BCA7EDE2\r
-:1023E000B0E08C918E7F8C9380818F7E8083109261\r
-:1023F000EF0108950F931F93CF93DF930E944E1226\r
-:102400000E945612C8EDD0E088818F77888388813A\r
-:102410008068888388818F7D888319BC1092F00141\r
-:102420001092EC011092EE011092ED0100EE10E01E\r
-:10243000F80180818B7F808388818160888342E07E\r
-:1024400060E080E00E945A11E1EEF0E080818E7F32\r
-:102450008083E2EEF0E0808181608083808188600B\r
-:102460008083F80180818E7F80838881806188836A\r
-:10247000DF91CF911F910F910895E8EDF0E08081F9\r
-:102480008F7E8083E7EDF0E080818160808384E04F\r
-:1024900082BF81E08093EF010C94FA11E8EDF0E047\r
-:1024A00080818E7F80831092E20008951092DA007E\r
-:1024B0001092E10008951F920F920FB60F9211240F\r
-:1024C0002F933F934F935F936F937F938F939F933C\r
-:1024D000AF93BF93EF93FF938091E10082FF0BC016\r
-:1024E0008091E20082FF07C08091E1008B7F8093A2\r
-:1024F000E1000E948A0E8091DA0080FF1FC0809167\r
-:10250000D80080FF1BC08091DA008E7F8093DA00B4\r
-:102510008091D90080FF0DC080E189BD82E189BD35\r
-:1025200009B400FEFDCF81E08093F0010E945B0EB4\r
-:1025300005C019BC1092F0010E946D0E8091E1005F\r
-:1025400080FF19C08091E20080FF15C08091E200F9\r
-:102550008E7F8093E2008091E20080618093E200B0\r
-:102560008091D80080628093D80019BC85E0809368\r
-:10257000F0010E94780E8091E10084FF30C08091CC\r
-:10258000E20084FF2CC080E189BD82E189BD09B4ED\r
-:1025900000FEFDCF8091D8008F7D8093D800809180\r
-:1025A000E1008F7E8093E1008091E2008F7E809336\r
-:1025B000E2008091E20081608093E2008091EC0172\r
-:1025C000882311F084E007C08091E30087FF02C0F8\r
-:1025D00083E001C081E08093F0010E947E0E809133\r
-:1025E000E10083FF29C08091E20083FF25C0809134\r
-:1025F000E100877F8093E10082E08093F0011092F8\r
-:10260000EC018091E1008E7F8093E1008091E200F7\r
-:102610008E7F8093E2008091E20080618093E200EF\r
-:1026200042E060E080E00E945A118091F0008860F2\r
-:102630008093F0000E94740EFF91EF91BF91AF91D3\r
-:102640009F918F917F916F915F914F913F912F91CA\r
-:102650000F900FBE0F901F9018951F920F920FB6FC\r
-:102660000F9211242F933F934F935F936F937F9318\r
-:102670008F939F93AF93BF93CF93EF93FF93C091AB\r
-:10268000E900CF708091EC001092E9008091F00099\r
-:10269000877F8093F00078940E9469131092E9007C\r
-:1026A0008091F00088608093F000C093E900FF9172\r
-:1026B000EF91CF91BF91AF919F918F917F916F914A\r
-:1026C0005F914F913F912F910F900FBE0F901F90F0\r
-:1026D00018951F93CF93DF93CDB7DEB7AA970FB6A8\r
-:1026E000F894DEBF0FBECDBFE1EFF1E08091F100C5\r
-:1026F000819321E0E93FF207C9F70E94E30E809140\r
-:10270000E80083FF1CC12091F1013091F201832F79\r
-:1027100090E08A30910508F012C1FC01EA5AFF4F9F\r
-:102720000C94862D203881F0223809F008C1809160\r
-:10273000F5018F708093E9008091EB0085FB88277D\r
-:1027400080F91092E90006C08091ED019091EE01B0\r
-:10275000911182609091E800977F9093E8008093B8\r
-:10276000F1001092F100C5C0822F8D7F09F0E7C003\r
-:10277000222319F0223061F0E2C08091F301813010\r
-:1027800009F0DDC0333009F080E08093EE0128C00D\r
-:102790008091F301811124C02091F5012F7009F47B\r
-:1027A000CEC02093E9008091EB0080FF19C080919A\r
-:1027B000EB00333011F4806211C080618093EB0034\r
-:1027C00081E090E0022E01C0880F0A94EAF780931E\r
-:1027D000EA001092EA008091EB0088608093EB00A1\r
-:1027E0001092E9008091E800877F86C02111A7C080\r
-:1027F0001091F3011F778091E3008078812B809303\r
-:10280000E3008091E800877F8093E8000E948F11A9\r
-:102810008091E80080FFFCCF8091E3008068809386\r
-:10282000E300112311F083E001C082E08093F00106\r
-:1028300086C02058223008F082C08091F301909128\r
-:10284000F4018C3D23E0920779F583E08A838AE2E4\r
-:1028500089834FB7F894DE01139620E03EE051E201\r
-:10286000E32FF0E050935700E49120FF03C0E2957E\r
-:10287000EF703F5FEF708E2F90E0EA3010F0C79658\r
-:1028800001C0C0968D939D932F5F243149F74FBFB0\r
-:102890008091E800877F8093E8006AE270E0CE01D3\r
-:1028A00001960E94971014C0AE014F5F5F4F609178\r
-:1028B000F5010E94DF0F009709F441C02091E80064\r
-:1028C000277F2093E800BC0189819A810E94F8103B\r
-:1028D0008091E8008B778093E80031C0203879F54B\r
-:1028E0008091E800877F8093E8008091EC018093DD\r
-:1028F000F1008091E8008E778093E8000E948F11AC\r
-:102900001EC021111CC09091F3019230C0F480913F\r
-:10291000E800877F8093E8009093EC010E948F117C\r
-:102920008091EC01811104C08091E30087FF02C017\r
-:1029300084E001C081E08093F0010E94CA0E809182\r
-:10294000E80083FF0AC08091E800877F8093E80059\r
-:102950008091EB0080628093EB00AA960FB6F8940A\r
-:10296000DEBF0FBECDBFDF91CF911F910895CF93F2\r
-:102970008091F0018823B1F08091E9008F709091EF\r
-:10298000EC0090FF02C090E801C090E0C92FC82B76\r
-:102990001092E9008091E80083FD0E946913CF70D6\r
-:1029A000C093E900CF9108959093740180937301CF\r
-:1029B0000895E0917301F0917401309721F0019036\r
-:1029C000F081E02D099480E00895FF920F931F930A\r
-:1029D000CF93DF938C01E0917301F09174013097F4\r
-:1029E00099F10280F381E02D09958091D70182FF52\r
-:1029F0002BC080FF04C08DE895E00E945207E801DB\r
-:102A000080E1F82E07E815E08091D70180FF0BC028\r
-:102A100088811F928F931F930F930E94EB070F9053\r
-:102A20000F900F900F90FA942196F110EDCF8091B6\r
-:102A3000D70180FF09C085E895E0DF91CF911F9114\r
-:102A40000F91FF900C945207DF91CF911F910F913E\r
-:102A5000FF900895E0917301F0917401309721F097\r
-:102A60000480F581E02D0994089520917101309141\r
-:102A700072018217930771F0909372018093710134\r
-:102A8000E0917301F0917401309721F00680F78195\r
-:102A9000E02D0994089520916F0130917001821703\r
-:102AA000930771F09093700180936F01E09173012F\r
-:102AB000F0917401309721F00084F185E02D0994A4\r
-:102AC000089508950C9461150E94CE210E94620918\r
-:102AD0000C949422CF93C82F8091D70182FF1EC0FF\r
-:102AE00080FF04C086EA95E00E9452078091D701DA\r
-:102AF00080FF0CC01F92CF9321EA35E03F932F93C4\r
-:102B00000E94EB070F900F900F900F908091D701CC\r
-:102B100080FF04C08FE995E00E9452078C2FCF916F\r
-:102B20000C94170DCF92DF92EF92FF920F931F93A9\r
-:102B3000CF93DF93CDB7DEB72B970FB6F894DEBFF8\r
-:102B40000FBECDBF0E947F0936E7E32E31E0F32EA2\r
-:102B500000E010E0C02E802F0E94AA0AF701D19059\r
-:102B60007F01D826B1F40F5F1F4F0E30110591F78A\r
-:102B70008FEF89838A831B820E94D7218160782FFF\r
-:102B80009D838C8349815A816B818D810E9435168A\r
-:102B900041C09091D70191FF04C08B870E94B00A79\r
-:102BA0008B8520E030E04D2D50E0922FBA01022EAF\r
-:102BB00002C0759567950A94E2F760FF25C02E83E1\r
-:102BC000CF82EE24E394F12C02C0EE0CFF1C9A9508\r
-:102BD000E2F790E08E219F2121E0892B09F420E08B\r
-:102BE00028870E94D7218160782F9A8789874E8114\r
-:102BF0005F8168858A850E943516F801EA58FE4F84\r
-:102C000080818E25808306C02F5F3F4F263031059F\r
-:102C100061F6A9CF0E940226109175010E94D91475\r
-:102C20001817A1F00E94D914809375012B960FB646\r
-:102C3000F894DEBF0FBECDBFDF91CF911F910F91F2\r
-:102C4000FF90EF90DF90CF900C946A152B960FB603\r
-:102C5000F894DEBF0FBECDBFDF91CF911F910F91D2\r
-:102C6000FF90EF90DF90CF900895CF93DF93CDB793\r
-:102C7000DEB72B970FB6F894DEBF0FBECDBF4F83E4\r
-:102C8000588769877A878B87DE01119686E0FD0178\r
-:102C900011928A95E9F785E0FE01379601900D9231\r
-:102CA0008A95E1F749815A816B817C818D819E8172\r
-:102CB0000E946A1D2B960FB6F894DEBF0FBECDBFE3\r
-:102CC000DF91CF910895CF93C82F882309F4C1C015\r
-:102CD000823859F40E94D91481FDBBC089E30E9457\r
-:102CE00009200E94E52089E30CC0833879F40E9412\r
-:102CF000D91480FDAEC083E50E9409200E94E52022\r
-:102D000083E50E945A20CF910C94E520843859F431\r
-:102D10000E94D91482FD9DC087E40E9409200E9470\r
-:102D2000E52087E4EECF8CEF8C0F813A48F48C2FAE\r
-:102D30000E948B2A81118DC08C2F0E940920E3CF25\r
-:102D400080E28C0F883048F4C77081E001C0880FA2\r
-:102D5000CA95EAF70E94AC20D6CF8BE58C0F833062\r
-:102D600078F4C53A29F0C63A31F482E890E005C01B\r
-:102D700081E890E002C083E890E0CF910C94351593\r
-:102D800088E58C0F833108F064C0C83A39F1C93A3C\r
-:102D900041F1CA3A49F1CB3A51F1CC3A59F1CD3A25\r
-:102DA00061F1C03B69F1CE3A71F1CF3A79F1C13BA3\r
-:102DB00081F1C23B89F1C33B91F1C43B99F1C53B21\r
-:102DC000A1F1C63BA9F1C73BB1F1C83BB9F1C93B81\r
-:102DD000C1F1CA3BC9F58AE292E038C082EE90E0C8\r
-:102DE00035C089EE90E032C08AEE90E02FC085EBCE\r
-:102DF00090E02CC086EB90E029C087EB90E026C0E5\r
-:102E00008CEC90E023C08DEC90E020C083E891E052\r
-:102E10001DC08AE891E01AC082E991E017C084E9F8\r
-:102E200091E014C081E292E011C083E292E00EC012\r
-:102E300084E292E00BC085E292E008C086E292E074\r
-:102E400005C087E292E002C080E090E0CF910C9450\r
-:102E50004B15CF910895882309F44BC0823859F45B\r
-:102E60000E94D91481FF45C089E30E9409200E9475\r
-:102E7000E52089E30CC0833871F40E94D91480FFE7\r
-:102E800038C083E50E9409200E94E52083E50E9466\r
-:102E90005A200C94E520843859F40E94D91482FFFA\r
-:102EA00028C087E40E9409200E94E52087E4EFCF34\r
-:102EB0009CEF980F913A58F390E2980F983050F4A5\r
-:102EC000877091E001C0990F8A95EAF7892F0E94D7\r
-:102ED000B220DFCF9BE5980F933020F480E090E0A4\r
-:102EE0000C943515885A833120F480E090E00C94DE\r
-:102EF0004B150895882321F00E94AC200C94E52006\r
-:102F00000895882321F00E94B2200C94E5200895B2\r
-:102F1000CF92DF92EF92FF920F931F93CF93DF93A5\r
-:102F2000CDB7DEB728970FB6F894DEBF0FBECDBF82\r
-:102F30008C0185E0F801DE01119601900D928A95D1\r
-:102F4000E1F7F80140813181F280258122952F70CF\r
-:102F500083819481892B31F03F3F31F481E04F3FF1\r
-:102F600019F403C081E001C080E080FDC6C249833E\r
-:102F70003A8389819A812F830E94C71F9E83888705\r
-:102F80000E94C61F0E94991E4E81E42FE295EF70A9\r
-:102F9000F0E0E05AFF4F2F8168850C94862D842F36\r
-:102FA000807F142F1F70882311F01295107FFF204F\r
-:102FB00059F0112309F456C2812F68870E94BC2062\r
-:102FC0000E94E52068854EC2862F0E942B17112390\r
-:102FD00009F493C2812F0E94C22028960FB6F8945C\r
-:102FE000DEBF0FBECDBFDF91CF911F910F91FF903C\r
-:102FF000EF90DF90CF900C94E520342F307F842F1A\r
-:103000008F70303211F08295807F662319F0613025\r
-:1030100019F12CC0FF20B1F0222309F494C1213012\r
-:1030200009F091C128960FB6F894DEBF0FBECDBF50\r
-:10303000DF91CF911F910F91FF90EF90DF90CF9094\r
-:103040000C94CC20222319F0213009F456C28E832F\r
-:103050000E94CF208E818AC1FF2021F0263008F007\r
-:103060004CC271C1253008F048C280C1FF2021F058\r
-:10307000222309F468C1F6C1222309F477C106C2EC\r
-:10308000242F26952695237030E02115310521F057\r
-:1030900021303105C9F031C2FF2021F0862F942F55\r
-:1030A000937002C080E090E028960FB6F894DEBFDF\r
-:1030B0000FBECDBFDF91CF911F910F91FF90EF9089\r
-:1030C000DF90CF900C943515FF2021F0862F942FA0\r
-:1030D000937002C080E090E028960FB6F894DEBFAF\r
-:1030E0000FBECDBFDF91CF911F910F91FF90EF9059\r
-:1030F000DF90CF900C944B15862FFF2019F00E9483\r
-:10310000882402C00E94F02428960FB6F894DEBFEF\r
-:103110000FBECDBFDF91CF911F910F91FF90EF9028\r
-:10312000DF90CF900C947525842F837009F076C0C2\r
-:10313000F110E3C1262F229526952770220F220F2A\r
-:10314000862F8F70C82ED12CE12CF12C022E04C0BA\r
-:10315000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DF\r
-:103160006FE070E080E090E004C0660F771F881F7A\r
-:10317000991F2A95D2F7609570958095909503C018\r
-:1031800060E070E0CB01242F269526952370422F16\r
-:1031900050E042305105D1F04330510559F16C29CE\r
-:1031A0007D298E299F294130510541F128960FB67E\r
-:1031B000F894DEBF0FBECDBFDF91CF911F910F916D\r
-:1031C000FF90EF90DF90CF900C94BE1E6C297D296C\r
-:1031D0008E299F2928960FB6F894DEBF0FBECDBF6B\r
-:1031E000DF91CF911F910F91FF90EF90DF90CF90E3\r
-:1031F0000C94D81E0E94BE1EC701B60128960FB6B9\r
-:10320000F894DEBF0FBECDBFDF91CF911F910F911C\r
-:10321000FF90EF90DF90CF900C94A41EFF2019F048\r
-:10322000842F817001C08695882309F466C1262FFA\r
-:10323000229526952770220F220F862F8F70C82E79\r
-:10324000D12CE12CF12C022E04C0CC0CDD1CEE1C88\r
-:10325000FF1C0A94D2F764FF10C06FE070E080E0BA\r
-:1032600090E004C0660F771F881F991F2A95D2F738\r
-:10327000609570958095909503C060E070E0CB01FB\r
-:10328000242F269526952370422F50E04230510579\r
-:10329000D1F04330510559F16C297D298E299F29A0\r
-:1032A0004130510541F128960FB6F894DEBF0FBEAC\r
-:1032B000CDBFDF91CF911F910F91FF90EF90DF90E5\r
-:1032C000CF900C94921F6C297D298E299F292896D6\r
-:1032D0000FB6F894DEBF0FBECDBFDF91CF911F9127\r
-:1032E0000F91FF90EF90DF90CF900C94AC1F0E9455\r
-:1032F000921FC701B60128960FB6F894DEBF0FBE25\r
-:10330000CDBFDF91CF911F910F91FF90EF90DF9094\r
-:10331000CF900C94781F603FC9F118F4603E50F4D0\r
-:103320009CC0623F09F461C008F44BC0633F09F4DC\r
-:1033300070C093C0162F1F70842F8F71FF2099F0DB\r
-:103340000E94111F812F28960FB6F894DEBF0FBE82\r
-:10335000CDBFDF91CF911F910F91FF90EF90DF9044\r
-:10336000CF900C947A170E94321F812F28960FB6A7\r
-:10337000F894DEBF0FBECDBFDF91CF911F910F91AB\r
-:10338000FF90EF90DF90CF900C948117FF20A9F071\r
-:10339000253008F0B2C0842F8F7128960FB6F894AC\r
-:1033A000DEBF0FBECDBFDF91CF911F910F91FF9078\r
-:1033B000EF90DF90CF900C94571F263008F09DC0FF\r
-:1033C000EACFFF20A1F0842F8F7128960FB6F894D2\r
-:1033D000DEBF0FBECDBFDF91CF911F910F91FF9048\r
-:1033E000EF90DF90CF900C94111FFF2061F3842F9A\r
-:1033F0008F7128960FB6F894DEBF0FBECDBFDF9158\r
-:10340000CF911F910F91FF90EF90DF90CF900C9490\r
-:10341000321FFF2091F0842F8F7128960FB6F894F9\r
-:10342000DEBF0FBECDBFDF91CF911F910F91FF90F7\r
-:10343000EF90DF90CF900C94FC1E28960FB6F89476\r
-:10344000DEBF0FBECDBFDF91CF911F910F91FF90D7\r
-:10345000EF90DF90CF900C94F21EFF20A1F022237A\r
-:1034600009F4B1CF862F28960FB6F894DEBF0FBEB1\r
-:10347000CDBFDF91CF911F910F91FF90EF90DF9023\r
-:10348000CF900C946316222309F4B1CF862F28968F\r
-:103490000FB6F894DEBF0FBECDBFDF91CF911F9165\r
-:1034A0000F91FF90EF90DF90CF900C942B174F70FF\r
-:1034B000C8010E94F40728960FB6F894DEBF0FBE2D\r
-:1034C000CDBFDF91CF911F910F91FF90EF90DF90D3\r
-:1034D000CF900C94171E4F70C80128960FB6F89421\r
-:1034E000DEBF0FBECDBFDF91CF911F910F91FF9037\r
-:1034F000EF90DF90CF900C94B60B28960FB6F8940F\r
-:10350000DEBF0FBECDBFDF91CF911F910F91FF9016\r
-:10351000EF90DF90CF9008950E94C9200E949E20D6\r
-:103520000E94E5200E94A3260E94752580E090E07D\r
-:103530000E94351580E090E00C944B150E94B92054\r
-:103540000C948C1A0E94C71F292F22952F7030E0EF\r
-:103550002C3031054CF42A3031056CF422503109FD\r
-:103560002230310590F407C02C30310551F02F3056\r
-:10357000310539F00AC0803E10F0803F31F481E01F\r
-:10358000089593FB882780F9089580E00895CF93EC\r
-:10359000DF9300D000D01F92CDB7DEB70F900F9011\r
-:1035A0000F900F900F90DF91CF910895CF93DF93FD\r
-:1035B00000D000D000D0CDB7DEB726960FB6F89475\r
-:1035C000DEBF0FBECDBFDF91CF9108951F93CF9384\r
-:1035D000DF93C091840116E080918501C81799F0AE\r
-:1035E000D0E01C9FF0011D9FF00D1124EA57FE4F03\r
-:1035F0004081518162817381848195810E94D61AB4\r
-:103600002196C770E9CFDF91CF911F910895409126\r
-:10361000B6015091B7016091B8017091B9018091E4\r
-:10362000BA019091BB010C94D61ACF938091BB0143\r
-:1036300082958F7009F05FC08091B801882309F4EA\r
-:103640005AC020918401A09185016091B6017091CA\r
-:10365000B7018091B9019091BA0131E06F3F09F053\r
-:1036600030E0B32FC6E02A1709F445C0009721F0D7\r
-:103670007F3F21F44B2F03C041E001C040E030E028\r
-:1036800040FD35C0C29FF001C39FF00D1124EA57E1\r
-:10369000FE4F418174132BC04081641328C04281C6\r
-:1036A000411125C0438154814817590710F44150F6\r
-:1036B0005109481B590B483C5105C8F48091BB0186\r
-:1036C0008F7080618093BB0186E0829FF001839FB1\r
-:1036D000F00D1124E557FE4F80818F70806180834B\r
-:1036E00086EB91E00E948817CF910C94E61A2F5F29\r
-:1036F0003F4F2770B8CFCF910895CF92DF92EF92CE\r
-:10370000FF920F931F93CF93DF93CDB7DEB76297EE\r
-:103710000FB6F894DEBF0FBECDBF8C0185E0F80177\r
-:10372000DE011D9601900D928A95E1F7D8014C912A\r
-:1037300011965C91119712966C9112971396ED90D9\r
-:10374000FC9014977091B601E091B7012091B901F6\r
-:103750003091BA012115310531F0EF3F31F481E0AC\r
-:103760007F3F19F403C081E001C080E0B82FB17041\r
-:10377000CB2E80FD6CC1D090B801DD2009F4F5C0DE\r
-:10378000F091BB01E216F30638F0C701821B930BE0\r
-:10379000883C910548F09BC0209530952E0D3F1D2B\r
-:1037A000283C310508F093C08F2F807F09F052C06C\r
-:1037B000E51314C0741312C0D62E61110FC0FF7030\r
-:1037C000F061F093BB010E94071B86EB91E00E9421\r
-:1037D00088178091BB01F80185836CC1EF2831F017\r
-:1037E0005F3F31F481E04F3F19F403C081E001C035\r
-:1037F00080E080FD03C081E0862701C080E0F82FD3\r
-:10380000F170FF2E80FF1CC0809184012091850102\r
-:1038100036E0821709F428C190E0389FF001399F03\r
-:10382000F00D1124EA57FE4F7181571306C07081C5\r
-:10383000471303C07281671303C001968770E9CFF5\r
-:10384000D62E662309F436C18091BB018160809336\r
-:10385000BB0153C0E51308C0741306C0611104C056\r
-:10386000D8011596FC93AEC04D875E878D859E85E9\r
-:103870006A8B0E94A21A6A89882329F1D62E6623B0\r
-:1038800011F12091BB01822F82958F7090E00297F9\r
-:103890000CF460C08091B6019091B70198878F8336\r
-:1038A0001986FB86EA862C87CE01079651C0E5175C\r
-:1038B00031F14D875E878D859E856A8B0E94A21AA5\r
-:1038C0006A8981112EC0C8010E948817A4C08F2F59\r
-:1038D000807F69F77E2DF98AE88A89890E94C71A54\r
-:1038E00086EB91E00E948817E6EBF1E086E0DF01CD\r
-:1038F0001D928A95E9F70E94071BD12CDBC0741337\r
-:10390000D8CF6111D6CFD8011596FC93C8010E947B\r
-:103910008817E6EBF1E086E0DF011D928A95E9F772\r
-:10392000C9C0D62E662379F22091BB01822F8295E1\r
-:103930008F7090E0029774F08091B6019091B7017A\r
-:103940009A8389831B82FD82EC822E83CE010196AD\r
-:103950000E94881786E0F801A6EBB1E001900D9275\r
-:103960008A95E1F70E94151B6FC0E216F30628F056\r
-:10397000C701821B930B9C0104C0209530952E0D2E\r
-:103980003F1D283C310508F052C0D62E662309F4AD\r
-:103990009ACFE5132CC074132AC08091BB0180FD1F\r
-:1039A0001DC0982F92959F70C9F0D80115968C93E1\r
-:1039B00015979F3039F09F5F9295907F8F70892B7C\r
-:1039C00015968C93C8010E94881786E0F801A6EB33\r
-:1039D000B1E001900D928A95E1F736C086E0F801DA\r
-:1039E000A6EBB1E001900D928A95E1F763C04D8797\r
-:1039F0005E878D859E850E94A21A882379F086E0D5\r
-:103A0000F801A6EBB1E001900D928A95E1F70E94D2\r
-:103A1000151B0E94071BDD24D3944CC08091BB0171\r
-:103A200081608093BB01C8010E94881743C07E2D2E\r
-:103A3000F98AE88A89890E94C71AE6EBF1E086E0F4\r
-:103A4000DF011D928A95E9F70E94071B33C06623A8\r
-:103A500009F439CF4D875E878D859E850E94A21A15\r
-:103A6000882309F430CFCBCF4D875E878D859E8527\r
-:103A70000E94C71F292F22952F7030E02230310578\r
-:103A80002CF49F7041F0811106C00CC02430310528\r
-:103A90002CF49F7049F4805E883020F0C8010E94A9\r
-:103AA0008817CF2CDC2C06C0D80115969C91907FEE\r
-:103AB00091F7F8CF8D2D62960FB6F894DEBF0FBE4A\r
-:103AC000CDBFDF91CF911F910F91FF90EF90DF90CD\r
-:103AD000CF9008951F93CF93DF93CDB7DEB72C9788\r
-:103AE0000FB6F894DEBF0FBECDBF4F8358876987EE\r
-:103AF0007A878B879C87CE0107960E947D1B88233F\r
-:103B0000C1F02F8138858A859B85892B31F03F3F15\r
-:103B100011F080E003C02F3FE1F781E0811147C041\r
-:103B20004F81588569857A858B859C850E94D61A38\r
-:103B30003EC086E0FE013796DE01119601900D929F\r
-:103B40008A95E1F7FF81E8854A855B854115510536\r
-:103B500031F0EF3F31F481E0FF3F19F403C081E021\r
-:103B600001C080E080FD23C02091850130E0C901C3\r
-:103B70000196877099276091840170E086179707F6\r
-:103B8000F1F1F983EA835D834C8396E0929FD00143\r
-:103B9000939FB00D1124AA57BE4FFE01319601909C\r
-:103BA0000D929A95E1F7809385010E94E61A16E03E\r
-:103BB0008091840190918501891779F1189FC00146\r
-:103BC00011248A579E4F0E947D1B882331F1E0917A\r
-:103BD00084011E9FF0011124EA57FE4F408151815C\r
-:103BE00062817381848195810E94D61A80918401BB\r
-:103BF00090E001968770992780938401D9CF0E9425\r
-:103C00009E1A1092850110928401E6EBF1E086E0A5\r
-:103C1000DF011D928A95E9F7CACF2C960FB6F8946A\r
-:103C2000DEBF0FBECDBFDF91CF911F910895EF9200\r
-:103C3000FF920F931F93CF93DF939C01009709F49A\r
-:103C400071C0F12CEE24E394E9012196F9018491ED\r
-:103C5000843740F4843008F056C0813081F08230DF\r
-:103C600021F160C0853709F449C0C0F19CE7980F85\r
-:103C7000903708F057C08F770E942B1746C08901F4\r
-:103C80000E5F1F4FFE01849190E2980F983050F420\r
-:103C90008770FE2D01C0FF0F8A95EAF78F2F0E94D3\r
-:103CA000BC2015C00E94631614C089010E5F1F4F0F\r
-:103CB000FE01849190E2980F983068F48770FE2D91\r
-:103CC00001C0FF0F8A95EAF78F2F0E94C2200E9441\r
-:103CD000E520E8011AC00E942B17FBCF2E5F3F4F53\r
-:103CE000FE01C491CC2341F08FE99FE00197F1F7E9\r
-:103CF00000C00000C150F6CFE90107C0FE01F490FA\r
-:103D0000E901229602C00E9463168F2D882341F09C\r
-:103D1000EFE9FFE03197F1F700C000008150F6CFE6\r
-:103D20009E0192CFDF91CF911F910F91FF90EF9065\r
-:103D3000089508956093C0017093C1018093C201FA\r
-:103D40009093C3010C948C1A0F931F930091C001A0\r
-:103D50001091C1012091C2013091C301062B172B94\r
-:103D6000282B392B0093C0011093C1012093C2016D\r
-:103D70003093C3011F910F910C948C1A0F931F93D2\r
-:103D80000091C0011091C1012091C2013091C30185\r
-:103D900006231723282339230093C0011093C10160\r
-:103DA0002093C2013093C3011F910F910C948C1A80\r
-:103DB0000F931F930091C0011091C1012091C20186\r
-:103DC0003091C30106271727282739270093C00100\r
-:103DD0001093C1012093C2013093C3011F910F9131\r
-:103DE0000C948C1A1092BC011092BD011092BE016D\r
-:103DF0001092BF010C948C1A41E050E060E070E03A\r
-:103E000004C0440F551F661F771F8A95D2F7409351\r
-:103E1000BC015093BD016093BE017093BF010C942F\r
-:103E20008C1A41E050E060E070E004C0440F551F80\r
-:103E3000661F771F8A95D2F78091BC019091BD01D2\r
-:103E4000A091BE01B091BF01842B952BA62BB72B5F\r
-:103E50008093BC019093BD01A093BE01B093BF01BC\r
-:103E60000C948C1A41E050E060E070E004C0440F14\r
-:103E7000551F661F771F8A95D2F74095509560951C\r
-:103E800070958091BC019091BD01A091BE01B0914F\r
-:103E9000BF0184239523A623B7238093BC0190936D\r
-:103EA000BD01A093BE01B093BF010C948C1A41E0F8\r
-:103EB00050E060E070E004C0440F551F661F771F9C\r
-:103EC0008A95D2F78091BC019091BD01A091BE016D\r
-:103ED000B091BF0184279527A627B7278093BC01FF\r
-:103EE0009093BD01A093BE01B093BF010C948C1AB6\r
-:103EF0000F931F930091BC011091BD012091BE0151\r
-:103F00003091BF01062B172B282B392B0093BC01B6\r
-:103F10001093BD012093BE013093BF011F910F91FB\r
-:103F20000C948C1A0F931F930091BC011091BD014A\r
-:103F30002091BE013091BF01062317232823392386\r
-:103F40000093BC011093BD012093BE013093BF01CB\r
-:103F50001F910F910C948C1A0F931F930091BC0129\r
-:103F60001091BD012091BE013091BF010627172796\r
-:103F7000282739270093BC011093BD012093BE016F\r
-:103F80003093BF011F910F910C948C1A0895CF921A\r
-:103F9000DF92EF92FF920F931F93CF93DF93EC0189\r
-:103FA000C090C001D090C101E090C201F090C30167\r
-:103FB0008091BC019091BD01A091BE01B091BF0163\r
-:103FC000C82AD92AEA2AFB2A0FE110E0B701A60184\r
-:103FD000002E04C076956795579547950A94D2F7B9\r
-:103FE00040FF07C0BE01802F0E94D90B8130910590\r
-:103FF00039F40150110950F7BE0180E00E94D90B3D\r
-:10400000DF91CF911F910F91FF90EF90DF90CF90B4\r
-:10401000089590910C01992361F190910D019923DC\r
-:1040200041F1982F9695969596959F3088F4E0915A\r
-:104030000E01F0910F01E90FF11D877021E030E0D2\r
-:1040400001C0220F8A95EAF78181822B818308952E\r
-:104050009091D70190FF2DC01F928F9387ED95E02F\r
-:104060009F938F930E94EB070F900F900F900F90EC\r
-:10407000089540910E0150910F0120E030E09FEF34\r
-:10408000FA01E20FF31F6281681799F09F3F19F45C\r
-:10409000611101C0922F2F5F3F4F2E30310581F704\r
-:1040A0009F3F39F0FA01E90FF11D97FDFA958283E0\r
-:1040B0000895089590910C01992369F190910D0153\r
-:1040C000992349F1982F9695969596959F3090F45F\r
-:1040D000E0910E01F0910F01E90FF11D877021E0D1\r
-:1040E00030E001C0220F8A95EAF7209581812823CC\r
-:1040F000218308959091D70190FF1FC01F928F9345\r
-:1041000089EB95E09F938F930E94EB070F900F90A0\r
-:104110000F900F90089540910E0150910F0120E0F3\r
-:1041200030E0FA01E20FF31F9281981301C012826E\r
-:104130002F5F3F4F2E303105A1F7089581E090E0C9\r
-:10414000E0910E01F0910F01E80FF91F1082019626\r
-:1041500080319105A9F708959091D601982B9093FD\r
-:10416000D601089580959091D60198239093D60119\r
-:1041700008951092D60108959091D501982B9093AF\r
-:10418000D501089580959091D50198239093D501FC\r
-:1041900008951092D50108958093C4010895109256\r
-:1041A000C401089540910E0150910F0120E030E0CC\r
-:1041B00080E0FA01E20FF31F918191118F5F2F5F71\r
-:1041C0003F4F2F303105A9F70895E0910E01F0918E\r
-:1041D0000F018091D6018083E0910E01F0910F01D3\r
-:1041E00080819091D501892B80839091C40199237E\r
-:1041F00061F0E0910E01F0910F018081892B8083A5\r
-:104200000E94D22081111092C40180910E019091E0\r
-:104210000F010C94E51490933B0180933A010895AB\r
-:10422000CF92DF92EF92FF920F931F936C01EE24D7\r
-:10423000FF24C114D104E104F10421F46B017C01D9\r
-:1042400080E001C080E133272F2D1E2D0D2D01159B\r
-:1042500011052105310519F0885F68017901970181\r
-:104260008601A4E03695279517950795AA95D1F76D\r
-:10427000011511052105310519F08C5F68017901DF\r
-:1042800097018601F2E03695279517950795FA95DF\r
-:10429000D1F7011511052105310519F08E5F68016F\r
-:1042A0007901B701A6017695679557954795452BF6\r
-:1042B000462B472B09F08F5F1F910F91FF90EF90D6\r
-:1042C000DF90CF9008958295982F9C7C9695969537\r
-:1042D000837344E0849F90011124922B892F8A7A62\r
-:1042E00086959575990F892B08951F93CF93DF932A\r
-:1042F0001F92CDB7DEB799830E946321182F998151\r
-:10430000892F0E946321212F30E0322F2227A9011B\r
-:10431000482BCA010F90DF91CF911F910895809192\r
-:10432000F001843009F11092D80120E488E190E096\r
-:104330000FB6F894A895809360000FBE209360009C\r
-:1043400083B7817F846083BF83B7816083BF7894A4\r
-:10435000889583B78E7F83BF88E10FB6F8948093EA\r
-:104360006000109260000FBE089508950895CF93E5\r
-:104370000E94B5210E947F090E94B621C0E08C2FC7\r
-:104380000E94AA0A811105C0CF5FCE30C1F780E03C\r
-:1043900001C081E0CF9108950C949E1A82E084BD03\r
-:1043A00093E095BD9AEF97BD80936E0008952FB767\r
-:1043B000F8948091D9019091DA01A091DB01B0913C\r
-:1043C000DC012FBF0895CF92DF92EF92FF920F93FF\r
-:1043D0001F932FB7F8944091D9015091DA01609161\r
-:1043E000DB017091DC012FBF6A017B01EE24FF2409\r
-:1043F0008C0120E030E0C016D106E206F30610F48E\r
-:1044000041505109481B590BCA011F910F91FF9050\r
-:10441000EF90DF90CF9008951F920F920FB60F92FA\r
-:1044200011248F939F93AF93BF938091D901909163\r
-:10443000DA01A091DB01B091DC010196A11DB11D53\r
-:104440008093D9019093DA01A093DB01B093DC0152\r
-:10445000BF91AF919F918F910F900FBE0F901F90C2\r
-:1044600018950E94E011F8942FEF87EA91E6215009\r
-:1044700080409040E1F700C0000087E090EBDC0155\r
-:104480008093F9019093FA01A093FB01B093FC0192\r
-:104490002CE088E190E00FB6F894A8958093600036\r
-:1044A0000FBE20936000FFCFEF92FF920F931F93F8\r
-:1044B000CF93DF93E82EF12C8F2D0E94AA0AC0E043\r
-:1044C000D0E0082F10E098010C2E02C035952795FA\r
-:1044D0000A94E2F720FD05C02196C630D10599F770\r
-:1044E00009C06C2F7F2D80E00E94B70BE812F4CF3B\r
-:1044F00081E005C0F3948EE0F812DECF80E0DF911A\r
-:10450000CF911F910F91FF90EF900895CF93C82FF7\r
-:104510008CE20E945422882321F08C2FCF910C949E\r
-:10452000542280E0CF910895CF930E94E12381111E\r
-:1045300002C00E94C7238CEF95E00E945207C5E697\r
-:10454000C15049F00E947F098FE39CE90197F1F780\r
-:1045500000C00000F5CF85EF95E00E94520789E288\r
-:104560000E948622811111C18AE20E948622811155\r
-:104570000E94C72385E00E94862281110E94312279\r
-:104580000E94EC238093D70187E00E948622882333\r
-:1045900099F18BE10E948622882351F09091D701F6\r
-:1045A00091FB882780F921E0822780FB91F922C0C6\r
-:1045B0008EE00E948622882351F09091D70192FBD1\r
-:1045C000882780F921E0822780FB92F913C080E1DF\r
-:1045D0000E9486229091D701882341F093FB88277F\r
-:1045E00080F921E0822780FB93F904C0892F809510\r
-:1045F00080FB90F99093D7018091D7010E94F0231E\r
-:104600000E94FE238093EA0180EE0E948622882386\r
-:1046100041F08091EA01982F909590FB80F980936A\r
-:10462000EA0189E30E948622882359F09091EA01E9\r
-:1046300091FB882780F921E0822780FB91F99093F4\r
-:10464000EA0182EE0E948622882359F09091EA01C5\r
-:1046500092FB882780F921E0822780FB92F99093D2\r
-:10466000EA0186EE0E948622882359F09091EA01A1\r
-:1046700093FB882780F921E0822780FB93F99093B0\r
-:10468000EA0183EE0E948622882359F09091EA0184\r
-:1046900094FB882780F921E0822780FB94F990938E\r
-:1046A000EA0185E30E948622882359F09091EA016D\r
-:1046B00095FB882780F921E0822780FB95F990936C\r
-:1046C000EA0181E30E948622882359F09091EA0151\r
-:1046D00096FB882780F921E0822780FB96F990934A\r
-:1046E000EA0181E10E948622882359F09091EA0133\r
-:1046F00097FB882780F921E0822780FB97F9909328\r
-:10470000EA018091EA010E9402248091EA0187FB7C\r
-:10471000882780F980930D0187E20E948622C82FA6\r
-:104720008EE10E9486228111C2608FE10E94862262\r
-:104730008111C46080E20E9486228111C86081E2FA\r
-:104740000E9486228111C06182E20E94862281112C\r
-:10475000C06283E20E9486228111C06484E20E94CA\r
-:104760008622882311F0C06802C0CC2329F08C2F48\r
-:104770000E94F9236C2F03C00E94F523682F70E07C\r
-:1047800080E090E0CF910C949A1ECF9108956DEE49\r
-:104790007EEF80E090E00E94BC2D60E082E090E03F\r
-:1047A0000E94AE2D60E083E090E00E94AE2D60E0BC\r
-:1047B00084E090E00E94AE2D60E085E090E00C94F3\r
-:1047C000AE2D80E090E00E94A82D21E08D3E9E4F0E\r
-:1047D00009F020E0822F089582E090E00C94A02D53\r
-:1047E000682F82E090E00C94AE2D83E090E00C9472\r
-:1047F000A02D682F83E090E00C94AE2D84E090E033\r
-:104800000C94A02D682F84E090E00C94AE2D809144\r
-:10481000DF0180FF0BC06091130185E0689FB0014C\r
-:10482000112475956795759567952AC081FF09C014\r
-:104830006091130185E0689FB0011124759567951B\r
-:104840001FC082FF07C06091130185E0689FB0011F\r
-:10485000112416C04091E0014423C9F06091120177\r
-:10486000461788F72091130185E0289F90011124B5\r
-:10487000429FC001439F900D112470E00E94722D51\r
-:104880006038710540F46115710539F002C065E0CA\r
-:1048900070E0862F08958FE7089581E00895809154\r
-:1048A000DF0180FF08C06091110170E07595679588\r
-:1048B0007595679521C081FF06C06091110170E078\r
-:1048C0007595679519C082FF04C06091110170E071\r
-:1048D00010C08091E0018823C1F06091100186171B\r
-:1048E000A0F790911101989FC001112470E00E94DF\r
-:1048F000722D6038710528F46115710521F0862F3D\r
-:1049000008958FE7089581E0089561E070E0F4CFA5\r
-:10491000803F21F40E940724819504C0813F29F43F\r
-:104920000E9407248093E3010895823F21F40E94AE\r
-:104930000724819504C0833F29F40E9407248093B3\r
-:10494000E2010895893F19F40E944F2405C08A3F6F\r
-:1049500031F40E944F2481958093E40108958B3FA8\r
-:1049600021F40E944F24819504C08C3F29F40E94B9\r
-:104970004F248093E5010895843F21F48091E10163\r
-:10498000816017C0853F21F48091E101826011C0F0\r
-:10499000863F21F48091E10184600BC0873F21F4C0\r
-:1049A0008091E101886005C0883F31F48091E10188\r
-:1049B00080618093E10108958D3F21F48091DF01B2\r
-:1049C00081600BC08E3F21F48091DF01826005C0C1\r
-:1049D0008F3F29F48091DF0184608093DF01089587\r
-:1049E000803F39F48091E30187FF6CC01092E301AE\r
-:1049F00069C0813F29F48091E3011816BCF362C0BD\r
-:104A00009091E201823F29F497FF5CC01092E2018D\r
-:104A100059C0833F19F41916CCF354C0893F41F4AF\r
-:104A20008091E40118160CF04DC01092E4014AC0C8\r
-:104A30008A3F29F48091E40187FF44C0F6CF8B3F81\r
-:104A400039F48091E50187FF3DC01092E5013AC03D\r
-:104A50008C3F29F48091E5011816BCF333C0843FE4\r
-:104A600021F48091E1018E7F17C0853F21F4809170\r
-:104A7000E1018D7F11C0863F21F48091E1018B7FA0\r
-:104A80000BC0873F21F48091E101877F05C0883FFB\r
-:104A900031F48091E1018F7E8093E10113C08D3F5D\r
-:104AA00021F48091DF018E7F0BC08E3F21F4809135\r
-:104AB000DF018D7F05C08F3F29F48091DF018B7F5F\r
-:104AC0008093DF018091E20181110EC08091E301AA\r
-:104AD00081110AC08091E401811106C08091E50135\r
-:104AE000811102C01092E00108958091D70183FFE7\r
-:104AF0007EC088E396E00E9452078091E1011F92F8\r
-:104B00008F9383E396E09F938F930E94EB0781E35B\r
-:104B100096E00E9452072091E201822F992787FD9B\r
-:104B200090959F932F938EE296E09F938F930E9490\r
-:104B3000EB078CE296E00E9452072091E301822F5E\r
-:104B4000992787FD90959F932F9389E296E09F93F5\r
-:104B50008F930E94EB0787E296E00E945207209114\r
-:104B6000E401822F992787FD90959F932F9384E2EC\r
-:104B700096E09F938F930E94EB0782E296E00E945B\r
-:104B800052072091E501822F992787FD90959F93E9\r
-:104B90002F938FE196E09F938F930E94EB078CE118\r
-:104BA00096E00E9452078091E0011F928F9389E165\r
-:104BB00096E09F938F930E94EB0787E196E00E9417\r
-:104BC00052078091DF011F928F9384E196E09F93BB\r
-:104BD0008F930E94EB0781E196E00E9452078DB708\r
-:104BE0009EB74C960FB6F8949EBF0FBE8DBF81EE58\r
-:104BF00091E00E942A150E94D7219093DE018093B4\r
-:104C0000DD0108951F93CF93DF938091DD01909193\r
-:104C1000DE010E94E3214091E001442321F0209134\r
-:104C2000140130E006C0209115015AE0259F900143\r
-:104C300011248217930708F482C08091E201109139\r
-:104C4000E301D091E401C091E501811107C0111188\r
-:104C500005C0D11103C0CC2309F471C04F3F19F036\r
-:104C60004F5F4093E001181624F40E9407248093BC\r
-:104C7000E2018091E20187FF05C00E94072481952F\r
-:104C80008093E201111624F40E9407248093E3012B\r
-:104C90008091E30187FF05C00E94072481958093DE\r
-:104CA000E3016091E201662339F11091E3011123E0\r
-:104CB00019F1772767FD7095872F972F0E94772C22\r
-:104CC00023E333E343E35FE30E94DB2C0E94442CA5\r
-:104CD0006093E201612F772767FD7095872F972FEB\r
-:104CE0000E94772C23E333E343E35FE30E94DB2C52\r
-:104CF0000E94442C6093E3011D1624F40E944F246B\r
-:104D00008093E4018091E40187FF05C00E944F2455\r
-:104D100081958093E4011C1624F40E944F24809313\r
-:104D2000E5018091E50187FF05C00E944F24819530\r
-:104D30008093E501DF91CF911F910C947525DF9150\r
-:104D4000CF911F910895E1EEF1E085E0DF011D9222\r
-:104D50008A95E9F71092E0011092DF0108958BE542\r
-:104D600098E00E9452071F9281E08F931F9285E086\r
-:104D70008F938DE098E09F938F930E94EB070F90A5\r
-:104D80000F900F900F900F900F9008958330E9F1DE\r
-:104D900028F4813061F0823009F10895853009F4FA\r
-:104DA00062C008F449C0863009F474C008952091A7\r
-:104DB0001501862F90E0820F911D8F3F910520F401\r
-:104DC000620F6093150103C08FEF809315018091EE\r
-:104DD00015011F928F9386E497E072C02091140111\r
-:104DE000862F90E0820F911D8F3F910520F4620F76\r
-:104DF0006093140103C08FEF80931401809114011C\r
-:104E00001F928F9384E397E05BC020911301862F5C\r
-:104E100090E0820F911D8F3F910520F4620F609307\r
-:104E2000130103C08FEF80931301809113011F9230\r
-:104E30008F9381E297E044C020911201862F90E089\r
-:104E4000820F911D8F3F910520F4620F6093120134\r
-:104E500003C08FEF80931201809112011F928F93F4\r
-:104E60008CE097E02DC020911101862F90E0820FF9\r
-:104E7000911D8F3F910520F4620F6093110103C0D3\r
-:104E80008FEF80931101809111011F928F9383EF17\r
-:104E900096E016C020911001862F90E0820F911DA0\r
-:104EA0008F3F910520F4620F6093100103C08FEFD4\r
-:104EB00080931001809110011F928F9388ED96E0EE\r
-:104EC0009F938F930E94EB070F900F900F900F907E\r
-:104ED0000895833081F128F4813059F08230D1F087\r
-:104EE0000895853009F449C0B8F1863009F456C0F8\r
-:104EF000089580911501681720F4861B8093150191\r
-:104F000002C010921501809115011F928F9389ECB8\r
-:104F100096E054C080911401681720F4861B80939A\r
-:104F2000140102C010921401809114011F928F93FA\r
-:104F300087EB96E043C080911301681720F4861B2D\r
-:104F40008093130102C010921301809113011F92EC\r
-:104F50008F9384EA96E032C080911201681720F4A2\r
-:104F6000861B8093120102C01092120180911201DF\r
-:104F70001F928F938FE896E021C0809111016817EE\r
-:104F800020F4861B8093110102C0109211018091C0\r
-:104F900011011F928F9386E796E010C08091100157\r
-:104FA000681720F4861B8093100102C01092100134\r
-:104FB000809110011F928F938BE596E09F938F93C2\r
-:104FC0000E94EB070F900F900F900F900895CF93D2\r
-:104FD000C82F1F928F9320E639E03F932F930E94B2\r
-:104FE000EB0761E070E080E090E004C0660F771F9F\r
-:104FF000881F991FCA95D2F70E949A1E0F900F9092\r
-:105000000F900F90CF910C949E1ACF938D3109F48D\r
-:1050100065C0B0F58E3009F4CBC100F5873009F4D6\r
-:105020009BC1A8F4863009F06AC28091D701817FC4\r
-:105030008E7F8093D70185E699E00E94520781EA2E\r
-:105040009DE00E94520781E08093E70180C1883093\r
-:1050500009F44FC08B3009F47CC151C2863109F488\r
-:10506000EDC138F4803109F4B6C1813109F42DC2A3\r
-:1050700046C2893109F4CBC18B3109F486C13FC2E4\r
-:10508000853309F434C248F4873209F430C208F495\r
-:1050900030C2893209F42BC232C2833438F48A33E5\r
-:1050A00008F029C2883309F454C129C2833409F4B1\r
-:1050B0001EC2883409F023C20E949E1A80E99DE036\r
-:1050C0000E9452079FEF23ED80E3915020408040E3\r
-:1050D000E1F700C000000E94312239C180EB9DE061\r
-:1050E0000E9452070E94FE2B0E94D9140E94170DA5\r
-:1050F0002EC185EA9DE00E94520786E79BE00E9450\r
-:1051000052070E94F5231F928F9383E79BE09F93A2\r
-:105110008F930E94EB0781E79BE00E9452070E9459\r
-:10512000EC23C82F8EE59BE00E9452071F92CF937D\r
-:1051300029E53BE03F932F930E94EB0787E59BE037\r
-:105140000E9452078DE49BE00E9452078C2F8170D1\r
-:105150001F928F932AE43BE03F932F930E94EB072B\r
-:1051600088E49BE00E9452078EE39BE00E94520776\r
-:10517000C1FB882780F91F928F932BE33BE03F937D\r
-:105180002F930E94EB0789E39BE00E9452078DE278\r
-:105190009BE00E945207C2FB882780F91F928F93E1\r
-:1051A0002AE23BE03F932F930E94EB0788E29BE0CB\r
-:1051B0000E9452078FE19BE00E945207C3FBCC275D\r
-:1051C000C0F91F92CF938CE19BE09F938F930E9435\r
-:1051D000EB078AE19BE00E9452070E94FE23C82F42\r
-:1051E00086E09BE00E9452071F92CF9321E03BE0B4\r
-:1051F0003F932F930E94EB078FEF9AE00E94520794\r
-:1052000086EE9AE00E9452078C2F81701F928F9336\r
-:1052100023EE3AE03F932F930E94EB078DB79EB7A2\r
-:1052200080960FB6F8949EBF0FBE8DBF81EE9AE0B8\r
-:105230000E9452078AEC9AE00E945207C1FB88271D\r
-:1052400080F91F928F9327EC3AE03F932F930E94AF\r
-:10525000EB0785EC9AE00E94520783EB9AE00E94EC\r
-:105260005207C2FB882780F91F928F9320EB3AE008\r
-:105270003F932F930E94EB078EEA9AE00E94520719\r
-:105280008CE99AE00E945207C3FB882780F91F929D\r
-:105290008F9329E93AE03F932F930E94EB0787E928\r
-:1052A0009AE00E9452078DE89AE00E945207C4FBE0\r
-:1052B000882780F91F928F932AE83AE03F932F9333\r
-:1052C0000E94EB0788E89AE00E94520786E79AE07E\r
-:1052D0000E945207C5FB882780F91F928F9323E70E\r
-:1052E0003AE03F932F930E94EB0781E79AE00E94F8\r
-:1052F000520785E59AE00E945207C6FB882780F98D\r
-:105300001F928F9322E53AE03F932F930E94EB0781\r
-:1053100080E59AE00E94520788E49AE00E945207D2\r
-:10532000C7FBCC27C0F91F92CF9385E49AE09F93E7\r
-:105330008F930E94EB0783E49AE00E9452078DB797\r
-:105340009EB74C960FB6F8949EBF0FBE8DBFC1E0BE\r
-:10535000DBC08CE899E058C08091D701C82FC1709C\r
-:1053600080FF09C083E89DE00E9452078091D70129\r
-:10537000817F8E7F44C087E79DE00E945207809125\r
-:10538000D70181608093D701E2CF8091D70181FB63\r
-:10539000CC27C0F991E0C927C0FB81F98093D701E0\r
-:1053A000CC2319F08AE69DE025C08CE59DE02CC059\r
-:1053B0008091D70182FBCC27C0F991E0C927C0FBBF\r
-:1053C00082F98093D701CC2319F08DE49DE012C0BF\r
-:1053D0008DE39DE019C08091D70183FBCC27C0F9F4\r
-:1053E00091E0C927C0FB83F98093D701CC2351F00A\r
-:1053F00081E39DE00E9452078091D70181608093F4\r
-:10540000D70182C084E29DE00E945207A0CF85E1CF\r
-:105410009DE00E94520789EE9CE00E9452078CEAB0\r
-:105420009CE00E94520785E89CE00E94520781E4BC\r
-:105430009CE00E94520786E19CE0E6CF88E09CE079\r
-:105440000E9452070E94D9141F928F938EEE9BE008\r
-:105450009F938F930E94EB0780910C011F928F9373\r
-:1054600087ED9BE09F938F930E94EB0780916E01E5\r
-:105470001F928F9384EC9BE09F938F930E94EB0786\r
-:1054800080910D011F928F9381EB9BE09F938F93EF\r
-:105490000E94EB078091D9019091DA01A091DB0184\r
-:1054A000B091DC01BF93AF939F938F938DE99BE005\r
-:1054B0009F938F930E94EB078DB79EB746960FB6CA\r
-:1054C000F8949EBF0FBE8DBF42CF0E949E1AC0911E\r
-:1054D0000D0181E0C827C0930D01CC2329F083E999\r
-:1054E0009BE00E94520710C088E89BE08DCF80E0CF\r
-:1054F00003C08D5101C089530E94E72728CF86E859\r
-:105500009BE00E945207C0E08C2FCF91089580E06D\r
-:10551000089580E00895CF93C82F8091E7018130EE\r
-:1055200081F020F0823009F44CC042C1A0910E01FC\r
-:10553000B0910F018C91813169F0823209F03AC14A\r
-:1055400009C0A0910E01B0910F018C91813111F031\r
-:10555000823249F48C2F0E94872A81112FC08C2F10\r
-:105560000E9405282CC08C2F0E94892A811126C0F8\r
-:10557000C431E1F070F4CB3081F0C031D1F40E943D\r
-:10558000AF2688E599E00E94520782E08093E70108\r
-:1055900015C0C93259F0C83361F485E699E00E941C\r
-:1055A00052078CE599E00E94520708C01092E7016B\r
-:1055B00003C186E599E00E945207FEC081E0817038\r
-:1055C000FDC0C43220F5CE3108F0C0C0CB3099F117\r
-:1055D000C8F4C73009F0D2C08AE08093150194E185\r
-:1055E0009093140193E0909313018093120188E04B\r
-:1055F0008093110188E2809310018CEF97E00E9464\r
-:105600005207BFC0C33149F1C431C1F0B7C0CB3478\r
-:1056100009F4A9C028F4C93289F0C83361F0AEC0DA\r
-:10562000C13509F49EC0C23509F499C0CE3409F0E1\r
-:10563000A5C06AE09EC00E94AF26A3C08091E6018B\r
-:10564000882319F01092E6019CC089E098E00E943E\r
-:10565000520781E08093E701B1C083EE97E00E949A\r
-:10566000520781ED97E00E945207809115011F9229\r
-:105670008F938EEC97E09F938F930E94EB078CECB7\r
-:1056800097E00E9452078AEB97E00E9452078091B0\r
-:1056900014011F928F9387EB97E09F938F930E9443\r
-:1056A000EB0785EB97E00E94520786EA97E00E949D\r
-:1056B0005207809113011F928F9383EA97E09F9383\r
-:1056C0008F930E94EB0781EA97E00E94520780E9DE\r
-:1056D00097E00E945207809112011F928F938DE8EC\r
-:1056E00097E09F938F930E94EB078BE897E00E94CF\r
-:1056F000520786E797E00E945207809111011F929E\r
-:105700008F9383E797E09F938F930E94EB0781E746\r
-:1057100097E00E9452078AE597E00E945207809125\r
-:1057200010011F928F9387E597E09F938F930E94BC\r
-:10573000EB0785E597E00E9452078DB79EB7489624\r
-:105740000FB6F8949EBF0FBE8DBF1BC0CE51EC2F7D\r
-:10575000F0E0E15DFE4F80818093E60112C061E0E0\r
-:1057600003C061E006C06AE08091E6010E94C6269F\r
-:1057700008C08091E6010E94692703C08AEF97E084\r
-:1057800013C08091E601882369F01F928F9384EF04\r
-:1057900097E09F938F930E94EB070F900F900F90CD\r
-:1057A0000F9004C081EF97E00E94520781E006C08D\r
-:1057B0001092E70180E002C080E001CFCF91089510\r
-:1057C000E1E8F0E08081886080838081816080836F\r
-:1057D0008FB7F89493E09093890090ED90938800B0\r
-:1057E0008FBF0895EFE6F0E08081826080830895A6\r
-:1057F000EFE6F0E080818D7F80830895EFE6F0E0B2\r
-:10580000808192E08927808308951F920F920FB6BE\r
-:105810000F9211242F933F934F935F936F937F9336\r
-:105820008F939F93AF93BF93EF93FF938091E80182\r
-:105830009091E90101969093E9018093E80181112B\r
-:1058400003C082E00E94170DE091E901E695E6951C\r
-:10585000F0E0E054F24FE4918091E8018E1303C030\r
-:1058600080E00E94170DFF91EF91BF91AF919F9142\r
-:105870008F917F916F915F914F913F912F910F90F9\r
-:105880000FBE0F901F90189504D06894B1118DC071\r
-:10589000089570D088F09F5790F0B92F9927B7518D\r
-:1058A000A0F0D1F0660F771F881F991F1AF0BA95E4\r
-:1058B000C9F712C0B13081F077D0B1E0089574C05B\r
-:1058C000672F782F8827B85F39F0B93FCCF38695DA\r
-:1058D00077956795B395D9F73EF490958095709537\r
-:1058E00061957F4F8F4F9F4F0895E89409C097FBB4\r
-:1058F0003EF490958095709561957F4F8F4F9F4FA7\r
-:105900009923A9F0F92F96E9BB279395F6958795EA\r
-:1059100077956795B795F111F8CFFAF4BB0F11F4AD\r
-:1059200060FF1BC06F5F7F4F8F4F9F4F16C0882354\r
-:1059300011F096E911C0772321F09EE8872F762F8A\r
-:1059400005C0662371F096E8862F70E060E02AF0CB\r
-:105950009A95660F771F881FDAF7880F96958795B7\r
-:1059600097F9089557FD9058440F551F59F05F3F20\r
-:1059700071F04795880F97FB991F61F09F3F79F071\r
-:1059800087950895121613061406551FF2CF4695F3\r
-:10599000F1DF08C0161617061806991FF1CF869575\r
-:1059A0007105610508940895E894BB276627772759\r
-:1059B000CB0197F908950BD078C069D028F06ED04C\r
-:1059C00018F0952309F05AC05FC01124EECFCADF4A\r
-:1059D000A0F3959FD1F3950F50E0551F629FF00102\r
-:1059E000729FBB27F00DB11D639FAA27F00DB11D5B\r
-:1059F000AA1F649F6627B00DA11D661F829F2227E4\r
-:105A0000B00DA11D621F739FB00DA11D621F839F6A\r
-:105A1000A00D611D221F749F3327A00D611D231F40\r
-:105A2000849F600D211D822F762F6A2F11249F578E\r
-:105A300050408AF0E1F088234AF0EE0FFF1FBB1FB1\r
-:105A4000661F771F881F91505040A9F79E3F510550\r
-:105A500070F014C0AACF5F3FECF3983EDCF386955C\r
-:105A600077956795B795F795E7959F5FC1F7FE2BFB\r
-:105A7000880F911D9695879597F9089597F99F67D7\r
-:105A800080E870E060E008959FEF80EC08950024C6\r
-:105A90000A941616170618060906089500240A9493\r
-:105AA00012161306140605060895092E0394000C19\r
-:105AB00011F4882352F0BB0F40F4BF2B11F460FFA8\r
-:105AC00004C06F5F7F4F8F4F9F4F0895991B79E000\r
-:105AD00004C0991F961708F0961B881F7A95C9F77E\r
-:105AE0008095089597FB072E16F4009407D077FD54\r
-:105AF00009D00E948C2D07FC05D03EF4909581952D\r
-:105B00009F4F0895709561957F4F0895EE0FFF1F89\r
-:105B10000590F491E02D0994AA1BBB1B51E107C02D\r
-:105B2000AA1FBB1FA617B70710F0A61BB70B881F2D\r
-:105B3000991F5A95A9F780959095BC01CD010895BC\r
-:105B4000F999FECF92BD81BDF89A992780B5089545\r
-:105B5000A8E1B0E042E050E00C94C32D262FF99963\r
-:105B6000FECF1FBA92BD81BD20BD0FB6F894FA9A40\r
-:105B7000F99A0FBE019608950E94AE2D272F0C941E\r
-:105B8000AF2DDC01CB01FC01F999FECF06C0F2BDBF\r
-:105B9000E1BDF89A319600B40D9241505040B8F7EB\r
-:065BA0000895F894FFCF08\r
-:105BA6002002180D090EE60DB20D7F0D0101C5018B\r
-:105BB60028080A03140A3F4D3620394605F904C35E\r
-:105BC60004A3046A04DD03F6030F04280448040151\r
-:0A5BD6000203040506070809000099\r
+:1002D00001000100AE00010001000000160345000E\r
+:1002E000720067006F0044006F0078002000450036\r
+:1002F0005A00000016034500720067006F004400BA\r
+:100300006F007800200045005A0000000403090433\r
+:1003100009026D00040100A0FA09040000010301B4\r
+:100320000100092111010001223F00070581030896\r
+:10033000000A090401000103010200092111010062\r
+:1003400001224D000705820308000A09040200018A\r
+:100350000300000009211101000122360007058376\r
+:100360000308000A09040300010300000009211129\r
+:100370000100012239000705840310000112011059\r
+:100380000100000008EDFE07130100010200010555\r
+:10039000010906A101050719E029E71500250195C6\r
+:1003A0000875018102050819012905950575019156\r
+:1003B000029501750391010507190029771500259C\r
+:1003C00001957875018102C005010980A1018502AE\r
+:1003D00016010026B7001A01002AB7007510950112\r
+:1003E0008100C0050C0901A1018503160100269CAE\r
+:1003F000021A01002A9C02751095018100C00501B6\r
+:100400000902A1010901A100050919012905150029\r
+:10041000250195057501810295017503810105018D\r
+:10042000093009311581257F950275088106093843\r
+:100430001581257F950175088106050C0A3802157E\r
+:1004400081257F950175088106C0C005010906A1B7\r
+:1004500001050719E029E7150025019508750181B7\r
+:100460000295017508810105081901290595057591\r
+:100470000191029501750391010507190029FF15E6\r
+:100480000025FF950675088100C0000000000000EF\r
+:100490000000000000010204060A0F17202C3A4A4F\r
+:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2\r
+:1004B000B39D87715D4A3A2C20170F0A060402018A\r
+:1004C0000000000000000000000011241FBECFEF5C\r
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A\r
+:1004E0009091EF01A091F001B091F1018730904B14\r
+:1004F000A740B04BB9F41092EE011092EF011092A8\r
+:10050000F0011092F10114BE84B7877F84BF88E1A7\r
+:100510000FB6F89480936000109260000FBEE0E088\r
+:10052000FFE3099511E0A0E0B1E0E8ECF5E402C0DA\r
+:1005300005900D92A433B107D9F711E0A4E3B1E01F\r
+:1005400001C01D92AE3EB107E1F70E940B090C9469\r
+:10055000E2220C94000061110BC0FC01828188230F\r
+:1005600021F085EE0E946C0F03C085EE0E943410CE\r
+:1005700080E090E0089508956091B1017091B2011A\r
+:100580008091B3019091B4010E94F01956985E9841\r
+:1005900025982D9826982E9827982F98813019F015\r
+:1005A000823021F00895259A2D9A0895269A2E9A40\r
+:1005B00008958CEB92E0892B11F00E94BC0280E040\r
+:1005C00090E0089556985E9825982D9826982E9834\r
+:1005D00027982F988FEF90E0909389008093880060\r
+:1005E00090938B0080938A0090938D0080938C0071\r
+:1005F000259A2D9A2FEF80E792E02150804090407D\r
+:10060000E1F700C00000269A2E9A2FEF80E792E0D3\r
+:10061000215080409040E1F700C00000279A2F9AB7\r
+:100620002FEF80E792E0215080409040E1F700C03A\r
+:10063000000025982D982FEF80E792E02150804010\r
+:100640009040E1F700C0000026982E982FEF80E739\r
+:1006500092E0215080409040E1F700C000002798D0\r
+:100660002F9856985E9825982D9826982E9827981A\r
+:100670002F98089589EA8093800089E08093810013\r
+:1006800024982C983F988AB18F748AB96E98479AAB\r
+:100690008BB1806B8BB9769A0E94E2028BEB92E071\r
+:1006A000892B11F00E94BB0280E090E0089580E267\r
+:1006B000809300018091340181110EC00E94A60335\r
+:1006C00081E0809334012FEF83ED90E3215080404F\r
+:1006D0009040E1F700C0000080E40E94AC038093EA\r
+:1006E000000181112EC00E94D60380930001811168\r
+:1006F00028C00E94D60380930001811122C08FE39D\r
+:100700000E94D6038093000181111BC00E94CE037A\r
+:1007100080E40E94AC0380930001811112C08CE040\r
+:100720000E94D6038093000181110BC00E94D60362\r
+:1007300080930001811105C08FE30E94D60380934E\r
+:1007400000010E94CE038091000108951092B9002B\r
+:100750008AE08093B800089594EA9093BC00909149\r
+:10076000BC0097FFFCCF9091B900987F983021F0A2\r
+:10077000903111F081E008958093BB0084E880936C\r
+:10078000BC008091BC0087FFFCCF8091B900887FBE\r
+:10079000883111F0803471F780E0089584E9809306\r
+:1007A000BC008091BC0084FDFCCF08958093BB0009\r
+:1007B00084E88093BC008091BC0087FFFCCF9091BF\r
+:1007C000B900987F81E0983209F480E0089584E8C8\r
+:1007D0008093BC008091BC0087FFFCCF8091BB0060\r
+:1007E000089580910001811115C080E40E94AC033E\r
+:1007F0008093000181110CC082E10E94D603809396\r
+:100800000001811105C08FEF0E94D6038093000183\r
+:100810000E94CE0384B1807F84B985B1807F85B981\r
+:100820008AB1837F8AB98BB1837F8BB93E98469812\r
+:1008300008950E945703809300010E94F10380B342\r
+:100840008C7080BB81B3836F81BBE4E4F1E0A6E3ED\r
+:10085000B1E011921D9281E0E235F807D1F78AE309\r
+:1008600093E0892B11F00C943A030895BF92CF9234\r
+:10087000DF92EF92FF920F931F93CF93DF938091BC\r
+:100880000001882379F0809135018F5F80933501D5\r
+:10089000811108C00E94570380930001811102C09A\r
+:1008A0000E94E20206E311E0C0E0D0E0DD24D39430\r
+:1008B00082E0C82EEE24E394F12CC73000F580913D\r
+:1008C0000001811162C080E40E94AC0380930001AA\r
+:1008D000811112C082E10E94D60380930001811130\r
+:1008E0000BC0C7010C2E01C0880F0A94EAF780954F\r
+:1008F0000E94D603809300010E94CE0346C0CA30F6\r
+:10090000A1F028F4C83059F0C93061F005C0CC30EE\r
+:1009100089F070F0CD3089F0209A289810C0219A83\r
+:1009200029980DC0229A2A980AC0239A2B9807C0AA\r
+:10093000529A01C0539A5B9802C03E9A4698E0EAE8\r
+:10094000EA95F1F78FB1799960C092E081708D25B9\r
+:10095000892B7C9B02C090E001C094E0892B7D9B99\r
+:1009600002C090E001C098E0892B7E9B02C090E01D\r
+:1009700001C090E1892B9FB19095991F9927991FEC\r
+:100980009295990F907E892B0FC080910001811163\r
+:1009900051C080E40E94AC03809300018823B9F128\r
+:1009A000B12C0E94CE038B2DF8019081981719F07D\r
+:1009B0008083C09201010E94F10321960F5F1F4FB7\r
+:1009C000CE30D10509F079CF809101018823B1F0B3\r
+:1009D000815080930101882339F08FE99FE00197CE\r
+:1009E000F1F700C000000AC0A4E4B1E0E6E3F1E0E2\r
+:1009F00081918D9391E0E434F907D1F789ED92E08C\r
+:100A0000892BD1F00E94D90217C090E09FCF83E1DB\r
+:100A10000E94D603809300018111C2CF81E40E941D\r
+:100A2000AC03809300018111BBCF0E94E703B82E75\r
+:100A3000B094B7CF80E0B8CF81E0DF91CF911F9124\r
+:100A40000F91FF90EF90DF90CF90BF900895E82F27\r
+:100A5000F0E0EC5BFE4F8081089508958B3B91059B\r
+:100A600078F4883A910540F5853A9105D0F48430C0\r
+:100A7000910508F0B1C08130910509F4ADC06BC09B\r
+:100A8000803E910508F467C0883E910508F4A4C033\r
+:100A90009C01205F31092031310508F05CC0906570\r
+:100AA0000895853A910509F459C0863A910509F4EB\r
+:100AB00058C083E890E40895883A910509F454C039\r
+:100AC000893A910509F453C08A3A910509F452C054\r
+:100AD0008B3A910509F451C08C3A910509F450C044\r
+:100AE0008D3A910509F44FC0803B910509F44EC041\r
+:100AF0008E3A910509F44DC08F3A910509F44CC026\r
+:100B0000813B910509F44BC0823B910509F44AC031\r
+:100B1000833B910509F449C0843B910509F448C021\r
+:100B2000853B910509F447C0863B910509F446C011\r
+:100B3000873B910509F445C0883B910509F444C001\r
+:100B4000893B910509F443C08A3B910509F042C0F5\r
+:100B50008AE296E4089580E090E0089581E890E4C8\r
+:100B6000089582E890E4089582EE94E4089589EE71\r
+:100B700094E408958AEE94E4089585EB94E408954E\r
+:100B800086EB94E4089587EB94E408958CEC94E468\r
+:100B900008958DEC94E4089583E895E408958AE837\r
+:100BA00095E4089582E995E4089584E995E408952B\r
+:100BB00081E296E4089583E296E4089584E296E45F\r
+:100BC000089585E296E4089586E296E4089587E222\r
+:100BD00096E4089580E094E40895089596E0799F5E\r
+:100BE000F001112494E5899FE00DF11D1124E60F19\r
+:100BF000F11DEE0FFF1FEC51FF4F85919491089569\r
+:100C0000880F991F805A9040FC0185919491089516\r
+:100C1000880F991F80529F4FFC01859194910895F0\r
+:100C200026E0729FF001112444E5849FE00DF11D40\r
+:100C30001124E60FF11DEE0FFF1FEC51FF4F259120\r
+:100C40003491C9019A9581159F4110F4C901089505\r
+:100C5000C90190528115904128F4C9019F700E94EA\r
+:100C600008060895C90190538115904120F4C901E7\r
+:100C70009927906C0895211580E5380769F40E9442\r
+:100C8000A5139FEF24E34CE0915020404040E1F752\r
+:100C900000C000000C94E91A213080E5380731F4D7\r
+:100CA0008091CC0181608093CC010895C901905559\r
+:100CB0008115904108F050C0832F99278F70992794\r
+:100CC00081309105D9F4A9014370552702C0880FDE\r
+:100CD000991F4A95E2F79C68A90164E0440F551FEB\r
+:100CE0006A95E1F744275370842B952B73E0220F0C\r
+:100CF000331F7A95E1F7207633271DC082309105A6\r
+:100D000029F4922F8827816F906A08958330910586\r
+:100D1000A9F4A9014370552781E090E002C0880F33\r
+:100D2000991F4A95E2F79C6843E0220F331F4A95CA\r
+:100D3000E1F7207E3770822B932B08950497F1F40E\r
+:100D4000A9014370552781E090E002C0880F991FE8\r
+:100D50004A95E2F79A68E8CFC9019057811590410A\r
+:100D600020F4C9019F7090620895C90190588115BF\r
+:100D7000904120F4C9019F70906A0895203E31058A\r
+:100D8000E0F4203C310558F52133310509F470C0F9\r
+:100D900048F42932310509F464C02A32310509F4D6\r
+:100DA0006EC074C029333105F1F022383105D9F015\r
+:100DB0002533310509F44EC069C0233E310589F160\r
+:100DC00038F4203E3105C1F0223E3105E1F05EC02D\r
+:100DD000263E310569F1273E3105A9F157C0C90109\r
+:100DE0000E94000608958091DF0180FD02C081FF0E\r
+:100DF0004DC080EE90E04BC08091DF0180FFF9CFC5\r
+:100E000089E390E044C08091DF0182FF0EC08091B1\r
+:100E1000DF0184FF03C080E090E039C083EE90E002\r
+:100E200036C08091DF0182FFF2CF82EE90E02FC0CA\r
+:100E30008091DF0183FF0BC08091DF0184FDEBCF48\r
+:100E400087EE90E024C08091DF0183FFF5CF86EE2E\r
+:100E500090E01DC08091DF0185FF07C089E290E02E\r
+:100E600016C08091DF0185FFF9CF85E390E00FC0C8\r
+:100E70008091DF0186FF07C08AE290E008C0809180\r
+:100E8000DF0186FFF9CF81E390E001C0C9010E9434\r
+:100E90002E0508950895809162010895CF93DF9300\r
+:100EA00000D01F92CDB7DEB72091E501243019F5AF\r
+:100EB00023E029839B838A832093E9008FEF90911D\r
+:100EC000E800815095FD06C095ED9A95F1F7000078\r
+:100ED0008111F5CF8091E80085FF0DC040E050E022\r
+:100EE00063E070E0CE0101960E94B8098091E800AD\r
+:100EF0008E778093E8000F900F900F90DF91CF9145\r
+:100F00000895CF93DF9300D01F92CDB7DEB7209125\r
+:100F1000E501243021F522E029839B838A8383E045\r
+:100F20008093E9008FEF9091E800815095FD06C015\r
+:100F300095ED9A95F1F700008111F5CF8091E800C9\r
+:100F400085FF0DC040E050E063E070E0CE01019607\r
+:100F50000E94B8098091E8008E778093E8000F9096\r
+:100F60000F900F90DF91CF9108952091E5012430EB\r
+:100F7000F1F422E02093E9002FEF3091E8002150B6\r
+:100F800035FD06C035ED3A95F1F700002111F5CF9A\r
+:100F90002091E80025FF0BC040E050E065E070E0E4\r
+:100FA0000E94B8098091E8008E778093E800089548\r
+:100FB000CF93DF93EC018091E501843009F046C0C6\r
+:100FC00090910C019923D9F090910D019923B9F0DA\r
+:100FD0008093E9008FEF9091E800815095FD06C065\r
+:100FE00095E19A95F1F700008111F5CF8091E80025\r
+:100FF00085FF2CC040E050E060E170E017C081E068\r
+:101000008093E9008FEF9091E800815095FD06C034\r
+:1010100095ED9A95F1F700008111F5CF8091E800E8\r
+:1010200085FF14C040E050E068E070E0CE010E940F\r
+:10103000B8098091E8008E778093E80080E1FE0196\r
+:10104000A2E5B1E001900D928A95E1F7DF91CF9191\r
+:1010500008958091E401811109C00E944A0B0E9409\r
+:10106000A70B8091E20084608093E20008951092C3\r
+:10107000E401089508950C940F210E94801A0E94A3\r
+:1010800015210E94440E0C944A0742E061EC81E075\r
+:101090000E94C40A42E061EC82E00E94C40A42E07D\r
+:1010A00061EC83E00E94C40A42E161EC84E00C94AC\r
+:1010B000C40A8091E701833009F455C030F48130CF\r
+:1010C00071F0823009F48EC008958A3009F47AC034\r
+:1010D0008B3009F460C0893009F09CC020C0809139\r
+:1010E000E601813A09F096C08091E800877F8093FD\r
+:1010F000E8008091EA019091EB01892B21F060E0FA\r
+:1011000080E090E003C060E182E591E070E00E9441\r
+:10111000010A8091E8008B778093E8000895809120\r
+:10112000E601813209F076C08091EA019091EB01ED\r
+:10113000009719F0039709F06DC08091E800877F50\r
+:101140008093E8008091E80082FD05C08091E50170\r
+:101150008111F8CF5FC08091F1008093620180918E\r
+:10116000E8008B7753C08091E601813A09F052C0C4\r
+:101170008091EA019091EB01892B09F04BC080919D\r
+:10118000E800877F8093E8008091E80080FFFCCF33\r
+:1011900080910C0136C08091E6018132D9F58091B1\r
+:1011A000EA019091EB01892BA9F58091E800877FF6\r
+:1011B0008093E8000E94F90A8091E80180930C0175\r
+:1011C0000C94A5138091E601813221F58091E8000D\r
+:1011D000877F8093E8000E94F90A8091E90180935B\r
+:1011E000630108958091E601813AA1F48091E800BD\r
+:1011F000877F8093E8008091E80080FFFCCF80919A\r
+:1012000063018093F1008091E8008E778093E8007D\r
+:101210000C94F90A089584B7877F84BF88E10FB6DC\r
+:10122000F89480936000109260000FBE90E080E818\r
+:101230000FB6F89480936100909361000FBE0E94F6\r
+:10124000930E0E944A0B0E94A70B8091E2008460DB\r
+:101250008093E20078940E94220E0E94950E82E014\r
+:1012600091E00E943F0E0E94FD208091E5018530B3\r
+:1012700069F40E94431A8091E3018823B1F30E942C\r
+:101280006B1A882391F30E94A209EFCF0E949B0E54\r
+:10129000ECCF292F332723303105A9F06CF421300E\r
+:1012A000310509F442C02230310509F043C08DE612\r
+:1012B00090E020E133E042C021323105C9F0223212\r
+:1012C000310519F137C099278130910541F08230FD\r
+:1012D000910541F0892B71F5ECE0F3E005C0E4EFF6\r
+:1012E000F2E002C0ECEDF2E0849190E09F0126C0B4\r
+:1012F000643000F5E62FF0E0EE0FFF1FEE5DFE4FCD\r
+:101300002081318189E090E019C0643098F4E62FA3\r
+:10131000F0E0DF01AA0FBB1FA65EBE4F2D913C91EE\r
+:10132000EA5EFE4F808190E009C082E190E02DE707\r
+:1013300033E004C080E090E020E030E0FA01318347\r
+:101340002083089580E189BD82E189BD09B400FE52\r
+:10135000FDCF8091D8008F7D8093D8008091E000F0\r
+:1013600082608093E0008091E00081FDFCCF0895D1\r
+:10137000CF92DF92EF92FF920F931F93CF93DF9361\r
+:101380007C018B01EA010E941A0B811131C0209768\r
+:1013900031F088819981081B190BE80EF91EC12CC8\r
+:1013A000D12C0115110519F18091E80085FD14C0BB\r
+:1013B0008091E8008E778093E800209741F0888143\r
+:1013C00099818C0D9D1D9983888385E011C00E94B1\r
+:1013D0001A0B882331F30CC0F70181917F018093B0\r
+:1013E000F10001501109FFEFCF1ADF0ADACF80E0D8\r
+:1013F000DF91CF911F910F91FF90EF90DF90CF90F1\r
+:1014000008952091EC013091ED012617370748F03F\r
+:101410006115710539F42091E8002E772093E800DA\r
+:1014200001C0B901FC0120E061157105B9F180919D\r
+:10143000E501882309F440C0853009F43FC080915C\r
+:10144000E80083FD3DC08091E80082FF06C08091E6\r
+:10145000E80082FF26C080E008958091E80080FFC8\r
+:10146000E3CF2091F3008091F20090E0922B611580\r
+:10147000710551F08830910538F421912093F100E5\r
+:10148000615071090196F3CF21E0089709F020E03F\r
+:101490008091E8008E778093E800C6CF2111C7CFF6\r
+:1014A000D6CF8091E501882339F0853039F08091DD\r
+:1014B000E80083FFCCCF04C082E0089583E0089564\r
+:1014C00081E008952091EC013091ED012617370756\r
+:1014D00048F06115710539F42091E8002E772093CA\r
+:1014E000E80001C0B901FC0120E061157105C1F1FE\r
+:1014F0008091E501882309F441C0853009F440C09A\r
+:101500008091E80083FD3EC08091E80082FF06C024\r
+:101510008091E80082FF27C080E008958091E80074\r
+:1015200080FFE3CF2091F3008091F20090E0922BB6\r
+:101530006115710559F08830910540F4249120938C\r
+:10154000F1003196615071090196F2CF21E00897C0\r
+:1015500009F020E08091E8008E778093E800C5CF05\r
+:101560002111C6CFD5CF8091E501882339F0853090\r
+:1015700039F08091E80083FFCBCF04C082E008956A\r
+:1015800083E0089581E00895982F973058F590935F\r
+:10159000E900981739F07091EC002091ED0050911E\r
+:1015A000F00003C0242F762F50E021FF19C03091A6\r
+:1015B000EB003E7F3093EB003091ED003D7F3093A8\r
+:1015C000ED003091EB0031603093EB007093EC0054\r
+:1015D0002093ED005093F0002091EE0027FF07C00C\r
+:1015E0009F5FD3CF8F708093E90081E0089580E002\r
+:1015F00008958091E60187FD05C08091E80080FF95\r
+:101600000EC012C08091E80082FD05C08091E50106\r
+:101610008111F8CF08958091E8008B7708C0809100\r
+:10162000E5018111EACF08958091E8008E778093DB\r
+:10163000E80008958091E4009091E50045E620914E\r
+:10164000EC0020FF21C02091E80020FD21C0209166\r
+:10165000E501222389F0253089F02091EB0025FD5A\r
+:101660000FC02091E4003091E5002817390739F3C5\r
+:10167000415041F0C901E3CF82E0089583E008952D\r
+:1016800081E0089584E008952091E80022FFDFCFF3\r
+:1016900080E008950E94B80B0E94C00BE0EEF0E0DD\r
+:1016A000808181608083E8EDF0E080818F778083A6\r
+:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA\r
+:1016C00080831092E40108950F931F93CF93DF93CB\r
+:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4\r
+:1016E000888388818068888388818F7D888319BCFE\r
+:1016F0001092E5011092E1011092E3011092E201D3\r
+:1017000000EE10E0F80180818B7F8083888181600A\r
+:10171000888342E060E080E00E94C40AE1EEF0E0ED\r
+:1017200080818E7F8083E2EEF0E080818160808323\r
+:10173000808188608083F80180818E7F80838881AA\r
+:1017400080618883DF91CF911F910F910895E8ED1B\r
+:10175000F0E080818F7E8083E7EDF0E08081816022\r
+:10176000808384E082BF81E08093E4010C94640B69\r
+:10177000E8EDF0E080818E7F80831092E200089592\r
+:101780001092DA001092E10008951F920F920FB6A6\r
+:101790000F9211242F933F934F935F936F937F93F7\r
+:1017A0008F939F93AF93BF93EF93FF938091E1004B\r
+:1017B00082FF0BC08091E20082FF07C08091E100B0\r
+:1017C0008B7F8093E1000E94210E8091DA0080FFE0\r
+:1017D0001FC08091D80080FF1BC08091DA008E7FEF\r
+:1017E0008093DA008091D90080FF0DC080E189BD2F\r
+:1017F00082E189BD09B400FEFDCF81E08093E5015F\r
+:101800000E94290805C019BC1092E5010E94370802\r
+:101810008091E10080FF19C08091E20080FF15C037\r
+:101820008091E2008E7F8093E2008091E2008061EF\r
+:101830008093E2008091D80080628093D80019BC28\r
+:1018400085E08093E5010E943B088091E10084FFE0\r
+:1018500030C08091E20084FF2CC080E189BD82E12C\r
+:1018600089BD09B400FEFDCF8091D8008F7D8093A3\r
+:10187000D8008091E1008F7E8093E1008091E200AA\r
+:101880008F7E8093E2008091E20081608093E2008D\r
+:101890008091E101882311F084E007C08091E3008A\r
+:1018A00087FF02C083E001C081E08093E5010E94D0\r
+:1018B0003D088091E10083FF29C08091E20083FF11\r
+:1018C00025C08091E100877F8093E10082E08093D2\r
+:1018D000E5011092E1018091E1008E7F8093E100AB\r
+:1018E0008091E2008E7F8093E2008091E20080612F\r
+:1018F0008093E20042E060E080E00E94C40A8091B0\r
+:10190000F00088608093F0000E943A08FF91EF9108\r
+:10191000BF91AF919F918F917F916F915F914F9107\r
+:101920003F912F910F900FBE0F901F9018951F920F\r
+:101930000F920FB60F9211242F933F934F935F9303\r
+:101940006F937F938F939F93AF93BF93CF93EF93B7\r
+:10195000FF93C091E900CF708091EC001092E900F4\r
+:101960008091F000877F8093F00078940E94D30CE0\r
+:101970001092E9008091F00088608093F000C0939D\r
+:10198000E900FF91EF91CF91BF91AF919F918F911E\r
+:101990007F916F915F914F913F912F910F900FBE6B\r
+:1019A0000F901F9018951F93CF93DF93CDB7DEB79D\r
+:1019B000AA970FB6F894DEBF0FBECDBFE6EEF1E0FA\r
+:1019C0008091F100819321E0EE3EF207C9F70E9479\r
+:1019D00059088091E80083FF1CC12091E6013091F5\r
+:1019E000E701832F90E08A30910508F012C1FC01D5\r
+:1019F000EA5AFF4F0C949722203881F0223809F0E0\r
+:101A000008C18091EA018F708093E9008091EB001A\r
+:101A100085FB882780F91092E90006C08091E201D9\r
+:101A20009091E301911182609091E800977F9093EB\r
+:101A3000E8008093F1001092F100C5C0822F8D7FE5\r
+:101A400009F0E7C0222319F0223061F0E2C0809152\r
+:101A5000E801813009F0DDC0333009F080E0809387\r
+:101A6000E30128C08091E801811124C02091EA019E\r
+:101A70002F7009F4CEC02093E9008091EB0080FF25\r
+:101A800019C08091EB00333011F4806211C0806185\r
+:101A90008093EB0081E090E0022E01C0880F0A9451\r
+:101AA000EAF78093EA001092EA008091EB008860E8\r
+:101AB0008093EB001092E9008091E800877F86C058\r
+:101AC0002111A7C01091E8011F778091E300807871\r
+:101AD000812B8093E3008091E800877F8093E8006A\r
+:101AE0000E94F90A8091E80080FFFCCF8091E3001A\r
+:101AF00080688093E300112311F083E001C082E04D\r
+:101B00008093E50186C02058223008F082C0809181\r
+:101B1000E8019091E9018C3D23E0920779F583E09B\r
+:101B20008A838AE289834FB7F894DE01139620E016\r
+:101B30003EE051E2E32FF0E050935700E49120FFA4\r
+:101B400003C0E295EF703F5FEF708E2F90E0EA30B8\r
+:101B500010F0C79601C0C0968D939D932F5F2431DE\r
+:101B600049F74FBF8091E800877F8093E8006AE2E1\r
+:101B700070E0CE0101960E94010A14C0AE014F5FD1\r
+:101B80005F4F6091EA010E944909009709F441C042\r
+:101B90002091E800277F2093E800BC0189819A8189\r
+:101BA0000E94620A8091E8008B778093E80031C040\r
+:101BB000203879F58091E800877F8093E800809154\r
+:101BC000E1018093F1008091E8008E778093E80036\r
+:101BD0000E94F90A1EC021111CC09091E8019230A8\r
+:101BE000C0F48091E800877F8093E8009093E10142\r
+:101BF0000E94F90A8091E101811104C08091E30003\r
+:101C000087FF02C084E001C081E08093E5010E946B\r
+:101C100045088091E80083FF0AC08091E800877F33\r
+:101C20008093E8008091EB0080628093EB00AA969D\r
+:101C30000FB6F894DEBF0FBECDBFDF91CF911F91DD\r
+:101C400008950895CF938091E5018823B1F08091A4\r
+:101C5000E9008F709091EC0090FF02C090E801C005\r
+:101C600090E0C92FC82B1092E9008091E80083FD15\r
+:101C70000E94D30CCF70C093E900CF910895909348\r
+:101C80006901809368010895E0916801F09169010C\r
+:101C9000309721F00190F081E02D099480E00895C3\r
+:101CA000E0916801F0916901309721F00280F381A1\r
+:101CB000E02D09940895E0916801F0916901309751\r
+:101CC00021F00480F581E02D0994089520916601AA\r
+:101CD000309167018217930771F0909367018093A9\r
+:101CE0006601E0916801F0916901309721F006806A\r
+:101CF000F781E02D099408952091640130916501E8\r
+:101D00008217930771F09093650180936401E091CD\r
+:101D10006801F0916901309721F00084F185E02D90\r
+:101D20000994089508950C94920E0E94861A0E94B8\r
+:101D300019040C944C1BCF92DF92EF92FF920F93F9\r
+:101D40001F93CF93DF93CDB7DEB72B970FB6F894E1\r
+:101D5000DEBF0FBECDBF0E9436043BE6E32E31E06E\r
+:101D6000F32E00E010E0C02E802F0E942705F7011F\r
+:101D7000D1907F01D826B1F40F5F1F4F0E301105AF\r
+:101D800091F78FEF89838A831B820E948F1A81606B\r
+:101D9000782F9D838C8349815A816B818D810E942C\r
+:101DA0003E0F41C09091CC0191FF04C08B870E94EF\r
+:101DB0002D058B8520E030E04D2D50E0922FBA01AB\r
+:101DC000022E02C0759567950A94E2F760FF25C060\r
+:101DD0002E83CF82EE24E394F12C02C0EE0CFF1C84\r
+:101DE0009A95E2F790E08E219F2121E0892B09F45A\r
+:101DF00020E028870E948F1A8160782F9A87898730\r
+:101E00004E815F8168858A850E943E0FF801E55901\r
+:101E1000FE4F80818E25808306C02F5F3F4F263086\r
+:101E2000310561F6A9CF0E94301E10916A010E940F\r
+:101E3000440E1817A1F00E94440E80936A012B965D\r
+:101E40000FB6F894DEBF0FBECDBFDF91CF911F91CB\r
+:101E50000F91FF90EF90DF90CF900C944A072B9654\r
+:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB\r
+:101E70000F91FF90EF90DF90CF900895CF93DF9375\r
+:101E8000CDB7DEB72B970FB6F894DEBF0FBECDBF30\r
+:101E90004F83588769877A878B87DE01119686E0A2\r
+:101EA000FD0111928A95E9F785E0FE0137960190D0\r
+:101EB0000D928A95E1F749815A816B817C818D81F0\r
+:101EC0009E810E9471162B960FB6F894DEBF0FBE4E\r
+:101ED000CDBFDF91CF910895CF93C82F882309F408\r
+:101EE000C1C0823859F40E94440E81FDBBC089E311\r
+:101EF0000E9410190E94CA1989E30CC0833879F432\r
+:101F00000E94440E80FDAEC083E50E9410190E941D\r
+:101F1000CA1983E50E945019CF910C94CA198438CC\r
+:101F200059F40E94440E82FD9DC087E40E9410195E\r
+:101F30000E94CA1987E4EECF8CEF8C0F813A48F4E7\r
+:101F40008C2F0E94652081118DC08C2F0E9410194A\r
+:101F5000E3CF80E28C0F883048F4C77081E001C085\r
+:101F6000880FCA95EAF70E949119D6CF8BE58C0F9E\r
+:101F7000833078F4C53A29F0C63A31F482E890E02B\r
+:101F800005C081E890E002C083E890E0CF910C9416\r
+:101F9000660E88E58C0F833108F064C0C83A39F1C9\r
+:101FA000C93A41F1CA3A49F1CB3A51F1CC3A59F127\r
+:101FB000CD3A61F1C03B69F1CE3A71F1CF3A79F196\r
+:101FC000C13B81F1C23B89F1C33B91F1C43B99F123\r
+:101FD000C53BA1F1C63BA9F1C73BB1F1C83BB9F183\r
+:101FE000C93BC1F1CA3BC9F58AE292E038C082EE32\r
+:101FF00090E035C089EE90E032C08AEE90E02FC0CC\r
+:1020000085EB90E02CC086EB90E029C087EB90E058\r
+:1020100026C08CEC90E023C08DEC90E020C083E8DB\r
+:1020200091E01DC08AE891E01AC082E991E017C0F2\r
+:1020300084E991E014C081E292E011C083E292E071\r
+:102040000EC084E292E00BC085E292E008C086E216\r
+:1020500092E005C087E292E002C080E090E0CF917C\r
+:102060000C947C0ECF910895882309F44BC08238DC\r
+:1020700059F40E94440E81FF45C089E30E94101963\r
+:102080000E94CA1989E30CC0833871F40E94440E7F\r
+:1020900080FF38C083E50E9410190E94CA1983E5A9\r
+:1020A0000E9450190C94CA19843859F40E94440EA5\r
+:1020B00082FF28C087E40E9410190E94CA1987E491\r
+:1020C000EFCF9CEF980F913A58F390E2980F983029\r
+:1020D00050F4877091E001C0990F8A95EAF7892F33\r
+:1020E0000E949719DFCF9BE5980F933020F480E092\r
+:1020F00090E00C94660E885A833120F480E090E0E2\r
+:102100000C947C0E0895882321F00E9491190C9460\r
+:10211000CA190895882321F00E9497190C94CA19AE\r
+:102120000895CF92DF92EF92FF920F931F93CF9378\r
+:10213000DF93CDB7DEB728970FB6F894DEBF0FBE9A\r
+:10214000CDBF8C0185E0F801DE01119601900D9262\r
+:102150008A95E1F7F80140813181F280258122954D\r
+:102160002F7083819481892B31F03F3F31F481E0DE\r
+:102170004F3F19F403C081E001C080E080FDC4C27C\r
+:1021800049833A8389819A812F830E94CE189E8346\r
+:1021900088870E94CD180E94A0174E81E42FE295F7\r
+:1021A000EF70F0E0E05AFF4F2F8168850C94972282\r
+:1021B000842F807F142F1F70882311F01295107FB9\r
+:1021C000FF2059F0112309F454C2812F68870E941F\r
+:1021D000A1190E94CA1968854CC2862F0E9434102A\r
+:1021E000112309F491C2812F0E94A71928960FB6D6\r
+:1021F000F894DEBF0FBECDBFDF91CF911F910F913D\r
+:10220000FF90EF90DF90CF900C94CA19342F307F5D\r
+:10221000842F8F70303211F08295807F662319F001\r
+:10222000613019F12BC0FF20B1F0222309F493C1D2\r
+:10223000213009F090C128960FB6F894DEBF0FBE8A\r
+:10224000CDBFDF91CF911F910F91FF90EF90DF9065\r
+:10225000CF900C94B119222319F0213009F454C203\r
+:102260008E830E94B4198E8189C1FF2021F0223013\r
+:1022700008F04AC270C1211147C280C1FF2021F07D\r
+:10228000222309F468C1F5C1222309F477C105C2EC\r
+:10229000242F26952695237030E02115310521F055\r
+:1022A00021303105C9F030C2FF2021F0862F942F54\r
+:1022B000937002C080E090E028960FB6F894DEBFDD\r
+:1022C0000FBECDBFDF91CF911F910F91FF90EF9087\r
+:1022D000DF90CF900C94660EFF2021F0862F942F74\r
+:1022E000937002C080E090E028960FB6F894DEBFAD\r
+:1022F0000FBECDBFDF91CF911F910F91FF90EF9057\r
+:10230000DF90CF900C947C0E862FFF2019F00E9456\r
+:10231000381D02C00E94A01D28960FB6F894DEBF9B\r
+:102320000FBECDBFDF91CF911F910F91FF90EF9026\r
+:10233000DF90CF900C94251E842F837009F076C017\r
+:10234000F110E2C1262F229526952770220F220F29\r
+:10235000862F8F70C82ED12CE12CF12C022E04C0B8\r
+:10236000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DD\r
+:102370006FE070E080E090E004C0660F771F881F78\r
+:10238000991F2A95D2F7609570958095909503C016\r
+:1023900060E070E0CB01242F269526952370422F14\r
+:1023A00050E042305105D1F04330510559F16C29CC\r
+:1023B0007D298E299F294130510541F128960FB67C\r
+:1023C000F894DEBF0FBECDBFDF91CF911F910F916B\r
+:1023D000FF90EF90DF90CF900C94C5176C297D296A\r
+:1023E0008E299F2928960FB6F894DEBF0FBECDBF69\r
+:1023F000DF91CF911F910F91FF90EF90DF90CF90E1\r
+:102400000C94DF170E94C517C701B60128960FB6B6\r
+:10241000F894DEBF0FBECDBFDF91CF911F910F911A\r
+:10242000FF90EF90DF90CF900C94AB17FF2019F046\r
+:10243000842F817001C08695882309F465C1262FF9\r
+:10244000229526952770220F220F862F8F70C82E77\r
+:10245000D12CE12CF12C022E04C0CC0CDD1CEE1C86\r
+:10246000FF1C0A94D2F764FF10C06FE070E080E0B8\r
+:1024700090E004C0660F771F881F991F2A95D2F736\r
+:10248000609570958095909503C060E070E0CB01F9\r
+:10249000242F269526952370422F50E04230510577\r
+:1024A000D1F04330510559F16C297D298E299F299E\r
+:1024B0004130510541F128960FB6F894DEBF0FBEAA\r
+:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3\r
+:1024D000CF900C9499186C297D298E299F292896D4\r
+:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125\r
+:1024F0000F91FF90EF90DF90CF900C94B3180E9453\r
+:102500009918C701B60128960FB6F894DEBF0FBE22\r
+:10251000CDBFDF91CF911F910F91FF90EF90DF9092\r
+:10252000CF900C947F18603FC9F118F4603E50F4CE\r
+:102530009BC0623F09F460C008F44AC0633F09F4DD\r
+:102540006FC092C0162F1F70842F8F71FF2099F0DB\r
+:102550000E941818812F28960FB6F894DEBF0FBE80\r
+:10256000CDBFDF91CF911F910F91FF90EF90DF9042\r
+:10257000CF900C9483100E943918812F28960FB6A3\r
+:10258000F894DEBF0FBECDBFDF91CF911F910F91A9\r
+:10259000FF90EF90DF90CF900C948A10FF20A1F075\r
+:1025A0002111B2C0842F8F7128960FB6F894DEBF28\r
+:1025B0000FBECDBFDF91CF911F910F91FF90EF9094\r
+:1025C000DF90CF900C945E18223008F09DC0EACFC7\r
+:1025D000FF20A1F0842F8F7128960FB6F894DEBFEC\r
+:1025E0000FBECDBFDF91CF911F910F91FF90EF9064\r
+:1025F000DF90CF900C941818FF2061F3842F8F7117\r
+:1026000028960FB6F894DEBF0FBECDBFDF91CF91F5\r
+:102610001F910F91FF90EF90DF90CF900C9439189D\r
+:10262000FF2091F0842F8F7128960FB6F894DEBFAB\r
+:102630000FBECDBFDF91CF911F910F91FF90EF9013\r
+:10264000DF90CF900C94031828960FB6F894DEBF55\r
+:102650000FBECDBFDF91CF911F910F91FF90EF90F3\r
+:10266000DF90CF900C94F917FF20A1F0222309F4FA\r
+:10267000B1CF862F28960FB6F894DEBF0FBECDBF20\r
+:10268000DF91CF911F910F91FF90EF90DF90CF904E\r
+:102690000C946C0F222309F4B1CF862F28960FB625\r
+:1026A000F894DEBF0FBECDBFDF91CF911F910F9188\r
+:1026B000FF90EF90DF90CF900C9434104F70C801D2\r
+:1026C0000E94AB0228960FB6F894DEBF0FBECDBFB6\r
+:1026D000DF91CF911F910F91FF90EF90DF90CF90FE\r
+:1026E0000C941E174F70C80128960FB6F894DEBFE1\r
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053\r
+:10270000DF90CF900C94ED0528960FB6F894DEBFBD\r
+:102710000FBECDBFDF91CF911F910F91FF90EF9032\r
+:10272000DF90CF9008950E94AE190E9483190E94F5\r
+:10273000CA190E94D11E0E94251E80E090E00E94CE\r
+:10274000660E80E090E00C947C0E0E949E190C9422\r
+:1027500093130E94CE18292F22952F7030E02C3031\r
+:1027600031054CF42A3031056CF422503109223005\r
+:10277000310590F407C02C30310551F02F30310570\r
+:1027800039F00AC0803E10F0803F31F481E00895B6\r
+:1027900093FB882780F9089580E00895CF93DF9315\r
+:1027A00000D000D01F92CDB7DEB70F900F900F90E2\r
+:1027B0000F900F90DF91CF910895CF93DF9300D0CA\r
+:1027C00000D000D0CDB7DEB726960FB6F894DEBFA6\r
+:1027D0000FBECDBFDF91CF9108951F93CF93DF93AD\r
+:1027E000C091790116E080917A01C81799F0D0E084\r
+:1027F0001C9FF0011D9FF00D1124E558FE4F4081F4\r
+:10280000518162817381848195810E94DD132196BB\r
+:10281000C770E9CFDF91CF911F9108954091AB012F\r
+:102820005091AC016091AD017091AE018091AF010A\r
+:102830009091B0010C94DD13CF938091B0018295FB\r
+:102840008F7009F05FC08091AD01882309F45AC0F0\r
+:1028500020917901A0917A016091AB017091AC0156\r
+:102860008091AE019091AF0131E06F3F09F030E00F\r
+:10287000B32FC6E02A1709F445C0009721F07F3F27\r
+:1028800021F44B2F03C041E001C040E030E040FDA7\r
+:1028900035C0C29FF001C39FF00D1124E558FE4FD3\r
+:1028A000418174132BC04081641328C042814111BF\r
+:1028B00025C0438154814817590710F441505109EC\r
+:1028C000481B590B483C5105C8F48091B0018F70EA\r
+:1028D00080618093B00186E0829FF001839FF00DBC\r
+:1028E0001124E058FE4F80818F70806180838BEAD5\r
+:1028F00091E00E949110CF910C94ED132F5F3F4F08\r
+:102900002770B8CFCF910895CF92DF92EF92FF92C8\r
+:102910000F931F93CF93DF93CDB7DEB762970FB6B8\r
+:10292000F894DEBF0FBECDBF8C0185E0F801DE015B\r
+:102930001D9601900D928A95E1F7D8014C91119660\r
+:102940005C91119712966C9112971396ED90FC90F2\r
+:1029500014977091AB01E091AC012091AE013091E0\r
+:10296000AF012115310531F0EF3F31F481E07F3FB8\r
+:1029700019F403C081E001C080E0B82FB170CB2E04\r
+:1029800080FD6CC1D090AD01DD2009F4F5C0F0915F\r
+:10299000B001E216F30638F0C701821B930B883CA6\r
+:1029A000910548F09BC0209530952E0D3F1D283C89\r
+:1029B000310508F093C08F2F807F09F052C0E513D6\r
+:1029C00014C0741312C0D62E61110FC0FF70F061D5\r
+:1029D000F093B0010E940E148BEA91E00E949110D6\r
+:1029E0008091B001F80185836CC1EF2831F05F3F21\r
+:1029F00031F481E04F3F19F403C081E001C080E071\r
+:102A000080FD03C081E0862701C080E0F82FF170CF\r
+:102A1000FF2E80FF1CC08091790120917A0136E061\r
+:102A2000821709F428C190E0389FF001399FF00D1A\r
+:102A30001124E558FE4F7181571306C0708147136A\r
+:102A400003C07281671303C001968770E9CFD62E49\r
+:102A5000662309F436C18091B00181608093B00192\r
+:102A600053C0E51308C0741306C0611104C0D80137\r
+:102A70001596FC93AEC04D875E878D859E856A8BCB\r
+:102A80000E94A9136A89882329F1D62E662311F1A1\r
+:102A90002091B001822F82958F7090E002970CF404\r
+:102AA00060C08091AB019091AC0198878F831986AB\r
+:102AB000FB86EA862C87CE01079651C0E51731F1D7\r
+:102AC0004D875E878D859E856A8B0E94A9136A89D2\r
+:102AD00081112EC0C8010E949110A4C08F2F807F49\r
+:102AE00069F77E2DF98AE88A89890E94CE138BEADC\r
+:102AF00091E00E949110EBEAF1E086E0DF011D9287\r
+:102B00008A95E9F70E940E14D12CDBC07413D8CF3C\r
+:102B10006111D6CFD8011596FC93C8010E9491107F\r
+:102B2000EBEAF1E086E0DF011D928A95E9F7C9C082\r
+:102B3000D62E662379F22091B001822F82958F7074\r
+:102B400090E0029774F08091AB019091AC019A8370\r
+:102B500089831B82FD82EC822E83CE0101960E9426\r
+:102B6000911086E0F801ABEAB1E001900D928A95F0\r
+:102B7000E1F70E941C146FC0E216F30628F0C701AB\r
+:102B8000821B930B9C0104C0209530952E0D3F1D98\r
+:102B9000283C310508F052C0D62E662309F49ACF9E\r
+:102BA000E5132CC074132AC08091B00180FD1DC0B4\r
+:102BB000982F92959F70C9F0D80115968C93159710\r
+:102BC0009F3039F09F5F9295907F8F70892B15967B\r
+:102BD0008C93C8010E94911086E0F801ABEAB1E045\r
+:102BE00001900D928A95E1F736C086E0F801ABEAD4\r
+:102BF000B1E001900D928A95E1F763C04D875E8741\r
+:102C00008D859E850E94A913882379F086E0F801BE\r
+:102C1000ABEAB1E001900D928A95E1F70E941C1495\r
+:102C20000E940E14DD24D3944CC08091B0018160C9\r
+:102C30008093B001C8010E94911043C07E2DF98A93\r
+:102C4000E88A89890E94CE13EBEAF1E086E0DF0191\r
+:102C50001D928A95E9F70E940E1433C0662309F489\r
+:102C600039CF4D875E878D859E850E94A913882365\r
+:102C700009F430CFCBCF4D875E878D859E850E942E\r
+:102C8000CE18292F22952F7030E0223031052CF4F8\r
+:102C90009F7041F0811106C00CC0243031052CF426\r
+:102CA0009F7049F4805E883020F0C8010E94911026\r
+:102CB000CF2CDC2C06C0D80115969C91907F91F703\r
+:102CC000F8CF8D2D62960FB6F894DEBF0FBECDBF44\r
+:102CD000DF91CF911F910F91FF90EF90DF90CF90F8\r
+:102CE00008951F93CF93DF93CDB7DEB72C970FB620\r
+:102CF000F894DEBF0FBECDBF4F83588769877A87B0\r
+:102D00008B879C87CE0107960E9484148823C1F08C\r
+:102D10002F8138858A859B85892B31F03F3F11F0C3\r
+:102D200080E003C02F3FE1F781E0811147C04F8170\r
+:102D3000588569857A858B859C850E94DD133EC008\r
+:102D400086E0FE013796DE01119601900D928A957C\r
+:102D5000E1F7FF81E8854A855B854115510531F032\r
+:102D6000EF3F31F481E0FF3F19F403C081E001C07F\r
+:102D700080E080FD23C020917A0130E0C9010196F6\r
+:102D8000877099276091790170E086179707F1F1B4\r
+:102D9000F983EA835D834C8396E0929FD001939FF1\r
+:102DA000B00D1124A558BE4FFE01319601900D9231\r
+:102DB0009A95E1F780937A010E94ED1316E08091D5\r
+:102DC000790190917A01891779F1189FC001112436\r
+:102DD00085589E4F0E948414882331F1E091790137\r
+:102DE0001E9FF0011124E558FE4F40815181628100\r
+:102DF0007381848195810E94DD138091790190E037\r
+:102E000001968770992780937901D9CF0E94A513E5\r
+:102E100010927A0110927901EBEAF1E086E0DF018D\r
+:102E20001D928A95E9F7CACF2C960FB6F894DEBFAB\r
+:102E30000FBECDBFDF91CF911F910895EF92FF920A\r
+:102E40000F931F93CF93DF939C01009709F471C0F8\r
+:102E5000F12CEE24E394E9012196F9018491843761\r
+:102E600040F4843008F056C0813081F0823021F186\r
+:102E700060C0853709F449C0C0F19CE7980F9037CE\r
+:102E800008F057C08F770E94341046C089010E5F4A\r
+:102E90001F4FFE01849190E2980F983050F4877094\r
+:102EA000FE2D01C0FF0F8A95EAF78F2F0E94A1190E\r
+:102EB00015C00E946C0F14C089010E5F1F4FFE01E8\r
+:102EC000849190E2980F983068F48770FE2D01C0CD\r
+:102ED000FF0F8A95EAF78F2F0E94A7190E94CA193F\r
+:102EE000E8011AC00E943410FBCF2E5F3F4FFE0155\r
+:102EF000C491CC2341F08FE99FE00197F1F700C026\r
+:102F00000000C150F6CFE90107C0FE01F490E901CD\r
+:102F1000229602C00E946C0F8F2D882341F0EFE9AA\r
+:102F2000FFE03197F1F700C000008150F6CF9E011D\r
+:102F300092CFDF91CF911F910F91FF90EF90089565\r
+:102F400008956093B5017093B6018093B701909393\r
+:102F5000B8010C9493130F931F930091B501109136\r
+:102F6000B6012091B7013091B801062B172B282B01\r
+:102F7000392B0093B5011093B6012093B70130931C\r
+:102F8000B8011F910F910C9493130F931F9300910D\r
+:102F9000B5011091B6012091B7013091B801062317\r
+:102FA0001723282339230093B5011093B6012093EA\r
+:102FB000B7013093B8011F910F910C9493130F93A5\r
+:102FC0001F930091B5011091B6012091B701309186\r
+:102FD000B80106271727282739270093B501109332\r
+:102FE000B6012093B7013093B8011F910F910C9453\r
+:102FF00093131092B1011092B2011092B30110928A\r
+:10300000B4010C94931341E050E060E070E004C020\r
+:10301000440F551F661F771F8A95D2F74093B10161\r
+:103020005093B2016093B3017093B4010C94931365\r
+:1030300041E050E060E070E004C0440F551F661F9F\r
+:10304000771F8A95D2F78091B1019091B201A0913A\r
+:10305000B301B091B401842B952BA62BB72B809391\r
+:10306000B1019093B201A093B301B093B4010C9459\r
+:10307000931341E050E060E070E004C0440F551F3E\r
+:10308000661F771F8A95D2F7409550956095709589\r
+:103090008091B1019091B201A091B301B091B401BE\r
+:1030A00084239523A623B7238093B1019093B20183\r
+:1030B000A093B301B093B4010C94931341E050E09A\r
+:1030C00060E070E004C0440F551F661F771F8A95AB\r
+:1030D000D2F78091B1019091B201A091B301B0916A\r
+:1030E000B40184279527A627B7278093B101909331\r
+:1030F000B201A093B301B093B4010C9493130F9356\r
+:103100001F930091B1011091B2012091B301309150\r
+:10311000B401062B172B282B392B0093B1011093E8\r
+:10312000B2012093B3013093B4011F910F910C941D\r
+:1031300093130F931F930091B1011091B20120914D\r
+:10314000B3013091B40106231723282339230093B8\r
+:10315000B1011093B2012093B3013093B4011F91D8\r
+:103160000F910C9493130F931F930091B101109141\r
+:10317000B2012091B3013091B40106271727282707\r
+:1031800039270093B1011093B2012093B30130931A\r
+:10319000B4011F910F910C9493130895CF92DF9275\r
+:1031A000EF92FF920F931F93CF93DF93EC01C090A8\r
+:1031B000B501D090B601E090B701F090B8018091D0\r
+:1031C000B1019091B201A091B301B091B401C82AAC\r
+:1031D000D92AEA2AFB2A0FE110E0B701A601002E46\r
+:1031E00004C076956795579547950A94D2F740FFA6\r
+:1031F00007C0BE01802F0E9410068130910539F46E\r
+:103200000150110950F7BE0180E00E941006DF91C5\r
+:10321000CF911F910F91FF90EF90DF90CF90089585\r
+:1032200090910C019923D9F090910D019923B9F057\r
+:10323000982F9695969596959F3088F5E0910E017A\r
+:10324000F0910F01E90FF11D877021E030E001C01E\r
+:10325000220F8A95EAF78181822B8183089540911C\r
+:103260000E0150910F0120E030E09FEFFA01E20FD4\r
+:10327000F31F6281681799F09F3F19F4611101C033\r
+:10328000922F2F5F3F4F2E30310581F79F3F39F04E\r
+:10329000FA01E90FF11D97FDFA95828308950895CB\r
+:1032A00090910C019923E1F090910D019923C1F0C7\r
+:1032B000982F9695969596959F3020F5E0910E0162\r
+:1032C000F0910F01E90FF11D877021E030E001C09E\r
+:1032D000220F8A95EAF7209581812823218308957A\r
+:1032E00040910E0150910F0120E030E0FA01E20F11\r
+:1032F000F31F9281981301C012822F5F3F4F2E302F\r
+:103300003105A1F7089581E090E0E0910E01F09180\r
+:103310000F01E80FF91F1082019680319105A9F77E\r
+:1033200008959091CB01982B9093CB0108958095AF\r
+:103330009091CB0198239093CB0108951092CB01EB\r
+:1033400008959091CA01982B9093CA010895809591\r
+:103350009091CA0198239093CA0108951092CA01CE\r
+:1033600008958093B90108951092B901089540918C\r
+:103370000E0150910F0120E030E080E0FA01E20FF1\r
+:10338000F31F918191118F5F2F5F3F4F2F303105D8\r
+:10339000A9F70895E0910E01F0910F018091CB0102\r
+:1033A0008083E0910E01F0910F0180819091CA011C\r
+:1033B000892B80839091B901992361F0E0910E01EE\r
+:1033C000F0910F018081892B80830E94B7198111B0\r
+:1033D0001092B90180910E0190910F010C94500E42\r
+:1033E000CF92DF92EF92FF920F931F936C01EE2426\r
+:1033F000FF24C114D104E104F10421F46B017C0128\r
+:1034000080E001C080E133272F2D1E2D0D2D0115E9\r
+:1034100011052105310519F0885F680179019701CF\r
+:103420008601A4E03695279517950795AA95D1F7BB\r
+:10343000011511052105310519F08C5F680179012D\r
+:1034400097018601F2E03695279517950795FA952D\r
+:10345000D1F7011511052105310519F08E5F6801BD\r
+:103460007901B701A6017695679557954795452B44\r
+:10347000462B472B09F08F5F1F910F91FF90EF9024\r
+:10348000DF90CF9008958091E501843009F110928A\r
+:10349000CD0120E488E190E00FB6F894A8958093E0\r
+:1034A00060000FBE2093600083B7817F846083BF7C\r
+:1034B00083B7816083BF7894889583B78E7F83BFFD\r
+:1034C00088E10FB6F89480936000109260000FBE00\r
+:1034D000089508950895CF930E94691A0E943604B2\r
+:1034E0000E946A1AC0E08C2F0E942705811105C036\r
+:1034F000CF5FCE30C1F780E001C081E0CF91089569\r
+:103500000E94A5130E94440E0C944A0782E084BDD9\r
+:1035100093E095BD9AEF97BD80936E0008952FB705\r
+:10352000F8948091CE019091CF01A091D001B091FB\r
+:10353000D1012FBF0895CF92DF92EF92FF920F93A8\r
+:103540001F932FB7F8944091CE015091CF01609115\r
+:10355000D0017091D1012FBF6A017B01EE24FF24BD\r
+:103560008C0120E030E0C016D106E206F30610F42C\r
+:1035700041505109481B590BCA011F910F91FF90EF\r
+:10358000EF90DF90CF9008951F920F920FB60F9299\r
+:1035900011248F939F93AF93BF938091CE0190910D\r
+:1035A000CF01A091D001B091D1010196A11DB11D13\r
+:1035B0008093CE019093CF01A093D001B093D1011D\r
+:1035C000BF91AF919F918F910F900FBE0F901F9061\r
+:1035D00018950E944A0BF8942FEF87EA91E6215044\r
+:1035E00080409040E1F700C0000087E090EBDC01F4\r
+:1035F0008093EE019093EF01A093F001B093F1015D\r
+:103600002CE088E190E00FB6F894A89580936000D4\r
+:103610000FBE20936000FFCFEF92FF920F931F9396\r
+:10362000CF93DF93E82EF12C8F2D0E942705C0E069\r
+:10363000D0E0082F10E098010C2E02C03595279598\r
+:103640000A94E2F720FD05C02196C630D10599F70E\r
+:1036500009C06C2F7F2D80E00E94EE05E812F4CFA8\r
+:1036600081E005C0F3948EE0F812DECF80E0DF91B8\r
+:10367000CF911F910F91FF90EF900895CF93C82F96\r
+:103680008CE20E940C1B882321F08C2FCF910C948C\r
+:103690000C1B80E0CF910895CF930E94911C811163\r
+:1036A00002C00E94771CC5E6C15049F00E94360452\r
+:1036B0008FE39CE90197F1F700C00000F5CF89E2A4\r
+:1036C0000E943E1B811111C18AE20E943E1B8111A2\r
+:1036D0000E94771C85E00E943E1B81110E94E91A1E\r
+:1036E0000E949C1C8093CC0187E00E943E1B882393\r
+:1036F00099F18BE10E943E1B882351F09091CC01FF\r
+:1037000091FB882780F921E0822780FB91F922C074\r
+:103710008EE00E943E1B882351F09091CC0192FBD9\r
+:10372000882780F921E0822780FB92F913C080E18D\r
+:103730000E943E1B9091CC01882341F093FB882787\r
+:1037400080F921E0822780FB93F904C0892F8095BE\r
+:1037500080FB90F99093CC018091CC010E94A01C39\r
+:103760000E94AE1C8093DF0180EE0E943E1B8823E6\r
+:1037700041F08091DF01982F909590FB80F9809324\r
+:10378000DF0189E30E943E1B882359F09091DF01FD\r
+:1037900091FB882780F921E0822780FB91F99093A3\r
+:1037A000DF0182EE0E943E1B882359F09091DF01D9\r
+:1037B00092FB882780F921E0822780FB92F9909381\r
+:1037C000DF0186EE0E943E1B882359F09091DF01B5\r
+:1037D00093FB882780F921E0822780FB93F990935F\r
+:1037E000DF0183EE0E943E1B882359F09091DF0198\r
+:1037F00094FB882780F921E0822780FB94F990933D\r
+:10380000DF0185E30E943E1B882359F09091DF0180\r
+:1038100095FB882780F921E0822780FB95F990931A\r
+:10382000DF0181E30E943E1B882359F09091DF0164\r
+:1038300096FB882780F921E0822780FB96F99093F8\r
+:10384000DF0181E10E943E1B882359F09091DF0146\r
+:1038500097FB882780F921E0822780FB97F99093D6\r
+:10386000DF018091DF010E94B21C8091DF0187FBA4\r
+:10387000882780F980930D0187E20E943E1BC82FA4\r
+:103880008EE10E943E1B8111C2608FE10E943E1BAF\r
+:103890008111C46080E20E943E1B8111C86081E2F8\r
+:1038A0000E943E1B8111C06182E20E943E1B811179\r
+:1038B000C06283E20E943E1B8111C06484E20E94C8\r
+:1038C0003E1B882311F0C06802C0CC2329F08C2F46\r
+:1038D0000E94A91C6C2F03C00E94A51C682F70E0D9\r
+:1038E00080E090E0CF910C94A117CF9108956DEEF8\r
+:1038F0007EEF80E090E00E94CD2260E082E090E0E8\r
+:103900000E94BF2260E083E090E00E94BF2260E05E\r
+:1039100084E090E00E94BF2260E085E090E00C949B\r
+:10392000BF2280E090E00E94B92221E08D3E9E4FB0\r
+:1039300009F020E0822F089582E090E00C94B122FB\r
+:10394000682F82E090E00C94BF2283E090E00C941A\r
+:10395000B122682F83E090E00C94BF2284E090E0D5\r
+:103960000C94B122682F84E090E00C94BF228091E7\r
+:10397000D40180FF0BC06091130185E0689FB00106\r
+:10398000112475956795759567952AC081FF09C0C3\r
+:103990006091130185E0689FB001112475956795CA\r
+:1039A0001FC082FF07C06091130185E0689FB001CE\r
+:1039B000112416C04091D5014423C9F06091120131\r
+:1039C000461788F72091130185E0289F9001112464\r
+:1039D000429FC001439F900D112470E00E948322FA\r
+:1039E0006038710540F46115710539F002C065E079\r
+:1039F00070E0862F08958FE7089581E00895809103\r
+:103A0000D40180FF08C06091110170E07595679541\r
+:103A10007595679521C081FF06C06091110170E026\r
+:103A20007595679519C082FF04C06091110170E01F\r
+:103A300010C08091D5018823C1F0609110018617D4\r
+:103A4000A0F790911101989FC001112470E00E948D\r
+:103A500083226038710528F46115710521F0862FE5\r
+:103A600008958FE7089581E0089561E070E0F4CF54\r
+:103A7000803F21F40E94B71C819504C0813F29F446\r
+:103A80000E94B71C8093D8010895823F21F40E94C0\r
+:103A9000B71C819504C0833F29F40E94B71C809312\r
+:103AA000D7010895893F19F40E94FF1C05C08A3F81\r
+:103AB00031F40E94FF1C81958093D90108958B3FBA\r
+:103AC00021F40E94FF1C819504C08C3F29F40E94C0\r
+:103AD000FF1C8093DA010895843F21F48091D60180\r
+:103AE000816017C0853F21F48091D601826011C0AA\r
+:103AF000863F21F48091D60184600BC0873F21F47A\r
+:103B00008091D601886005C0883F31F48091D6014C\r
+:103B100080618093D60108958D3F21F48091D40176\r
+:103B200081600BC08E3F21F48091D401826005C07A\r
+:103B30008F3F29F48091D40184608093D40108954B\r
+:103B4000803F39F48091D80187FF6CC01092D80172\r
+:103B500069C0813F29F48091D8011816BCF362C076\r
+:103B60009091D701823F29F497FF5CC01092D70152\r
+:103B700059C0833F19F41916CCF354C0893F41F45E\r
+:103B80008091D90118160CF04DC01092D9014AC08D\r
+:103B90008A3F29F48091D90187FF44C0F6CF8B3F3B\r
+:103BA00039F48091DA0187FF3DC01092DA013AC002\r
+:103BB0008C3F29F48091DA011816BCF333C0843F9E\r
+:103BC00021F48091D6018E7F17C0853F21F480912A\r
+:103BD000D6018D7F11C0863F21F48091D6018B7F65\r
+:103BE0000BC0873F21F48091D601877F05C0883FB5\r
+:103BF00031F48091D6018F7E8093D60113C08D3F22\r
+:103C000021F48091D4018E7F0BC08E3F21F48091EE\r
+:103C1000D4018D7F05C08F3F29F48091D4018B7F23\r
+:103C20008093D4018091D70181110EC08091D80179\r
+:103C300081110AC08091D901811106C08091DA01F9\r
+:103C4000811102C01092D501089586ED91E00E9485\r
+:103C50005B0E0E948F1A9093D3018093D201089536\r
+:103C60001F93CF93DF938091D2019091D3010E9453\r
+:103C70009B1A4091D501442321F02091140130E09A\r
+:103C800006C0209115015AE0259F9001112482174A\r
+:103C9000930708F482C08091D7011091D801D09188\r
+:103CA000D901C091DA01811107C0111105C0D111EC\r
+:103CB00003C0CC2309F471C04F3F19F04F5F40930C\r
+:103CC000D501181624F40E94B71C8093D701809167\r
+:103CD000D70187FF05C00E94B71C81958093D7014B\r
+:103CE000111624F40E94B71C8093D8018091D8014A\r
+:103CF00087FF05C00E94B71C81958093D801609111\r
+:103D0000D701662339F11091D801112319F17727D2\r
+:103D100067FD7095872F972F0E94942123E333E34B\r
+:103D200043E35FE30E94F8210E9461216093D70181\r
+:103D3000612F772767FD7095872F972F0E94942119\r
+:103D400023E333E343E35FE30E94F8210E94612110\r
+:103D50006093D8011D1624F40E94FF1C8093D901A2\r
+:103D60008091D90187FF05C00E94FF1C8195809337\r
+:103D7000D9011C1624F40E94FF1C8093DA01809163\r
+:103D8000DA0187FF05C00E94FF1C81958093DA014C\r
+:103D9000DF91CF911F910C94251EDF91CF911F9140\r
+:103DA0000895E6EDF1E085E0DF011D928A95E9F7DF\r
+:103DB0001092D5011092D4010895833081F128F436\r
+:103DC000813059F08230D1F00895853009F449C02E\r
+:103DD000B8F1863009F456C0089520911501862F58\r
+:103DE00090E0820F911D8F3F910520F4620F609348\r
+:103DF000150108958FEF8093150108952091140106\r
+:103E0000862F90E0820F911D8F3F910520F4620F65\r
+:103E10006093140108958FEF809314010895209109\r
+:103E20001301862F90E0820F911D8F3F910520F4A2\r
+:103E3000620F6093130108958FEF8093130108952B\r
+:103E400020911201862F90E0820F911D8F3F9105E6\r
+:103E500020F4620F6093120108958FEF8093120196\r
+:103E6000089520911101862F90E0820F911D8F3FC0\r
+:103E7000910520F4620F6093110108958FEF8093F4\r
+:103E80001101089520911001862F90E0820F911D5D\r
+:103E90008F3F910520F4620F6093100108958FEF1A\r
+:103EA000809310010895833011F128F4813049F096\r
+:103EB000823091F00895853081F120F18630C1F192\r
+:103EC000089580911501681720F4861B80931501D1\r
+:103ED000089510921501089580911401681720F437\r
+:103EE000861B809314010895109214010895809107\r
+:103EF0001301681720F4861B809313010895109214\r
+:103F00001301089580911201681720F4861B809395\r
+:103F100012010895109212010895809111016817FD\r
+:103F200020F4861B809311010895109211010895C9\r
+:103F300080911001681720F4861B8093100108956A\r
+:103F40001092100108958D3109F442C020F58E3091\r
+:103F500009F479C070F4873009F45EC020F486302B\r
+:103F600009F442C033C08830D1F18B3009F4A7C0C6\r
+:103F70002DC0863109F4A3C038F4803109F46DC036\r
+:103F8000813109F47BC022C0893109F498C08B319A\r
+:103F900009F44FC01BC0853309F479C048F4873257\r
+:103FA00009F475C008F478C0893209F470C00EC0F5\r
+:103FB000833438F48A3308F071C0883309F47FC041\r
+:103FC00005C0833409F463C08834C1F080E00895EB\r
+:103FD0000E941B210E94440E0E944A0770C00E944A\r
+:103FE0009C1C0E94AE1C6BC08091CC01817F8E7F97\r
+:103FF0008093CC0181E08093DC0108950E94A51399\r
+:104000002FEF83ED90E3215080409040E1F700C016\r
+:1040100000000E94E91A53C09091CC01892F817051\r
+:1040200090FF03C0917F9E7F26C091609093CC014A\r
+:1040300046C09091CC0191FB882780F921E082272E\r
+:1040400080FB91F913C09091CC0192FB882780F9F5\r
+:1040500021E0822780FB92F909C09091CC0193FB6B\r
+:10406000882780F921E0822780FB93F99093CC0187\r
+:10407000882329F191609093CC0108950E94A513A3\r
+:1040800080910D0191E0892780930D0118C061E0B6\r
+:1040900070E080E090E00FC023EE01C027EC280F15\r
+:1040A00061E070E080E090E004C0660F771F881F39\r
+:1040B000991F2A95D2F70E94A1170E94A51381E0AB\r
+:1040C000089580E0089580E00895CF93C82F8091EF\r
+:1040D000DC01813079F018F08230D1F184C0A091F8\r
+:1040E0000E01B0910F018C91813169F0823209F09B\r
+:1040F0007CC009C0A0910E01B0910F018C9181315B\r
+:1041000011F0823249F48C2F0E94612081111DC070\r
+:104110008C2F0E94A31F1AC08C2F0E946320811134\r
+:1041200014C0C43179F048F4CB3079F0C03109F0D3\r
+:1041300060C082E08093DC0108C0C93219F0C83346\r
+:1041400021F057C01092DC0154C081E0817053C04F\r
+:10415000C93289F118F5C43171F1A8F4C73009F0FA\r
+:1041600046C08AE08093150194E19093140193E096\r
+:10417000909313018093120188E08093110188E2EB\r
+:104180008093100134C0CE51C63088F5EC2FF0E09A\r
+:10419000E65DFE4F80818093DB0129C0CE34E9F0DB\r
+:1041A00020F4CB3421F56AE013C0C13579F0C23573\r
+:1041B000F1F461E00DC08091DB01882319F01092C9\r
+:1041C000DB0115C081E08093DC0115C061E006C011\r
+:1041D0008091DB010E94DD1E0AC06AE08091DB0154\r
+:1041E0000E94531F04C01092DC0180E004C081E0F3\r
+:1041F00002C080E0ABCFCF910895E1E8F0E080818C\r
+:10420000886080838081816080838FB7F89493E099\r
+:104210009093890090ED909388008FBF0895EFE60A\r
+:10422000F0E08081826080830895EFE6F0E0808195\r
+:104230008D7F80830895EFE6F0E0808192E089270A\r
+:10424000808308951F920F920FB60F9211242F931F\r
+:104250003F934F935F936F937F938F939F93AF930E\r
+:10426000BF93EF93FF938091DD019091DE01019662\r
+:104270009093DE018093DD01811103C082E00E94F2\r
+:104280004A07E091DE01E695E695F0E0E657FB4F40\r
+:10429000E4918091DD018E1303C080E00E944A0703\r
+:1042A000FF91EF91BF91AF919F918F917F916F910E\r
+:1042B0005F914F913F912F910F900FBE0F901F90E4\r
+:1042C000189504D06894B1118DC0089570D088F00D\r
+:1042D0009F5790F0B92F9927B751A0F0D1F0660FF2\r
+:1042E000771F881F991F1AF0BA95C9F712C0B1300D\r
+:1042F00081F077D0B1E0089574C0672F782F8827B8\r
+:10430000B85F39F0B93FCCF3869577956795B3954B\r
+:10431000D9F73EF490958095709561957F4F8F4FBA\r
+:104320009F4F0895E89409C097FB3EF490958095BF\r
+:10433000709561957F4F8F4F9F4F9923A9F0F92F6B\r
+:1043400096E9BB279395F695879577956795B795E9\r
+:10435000F111F8CFFAF4BB0F11F460FF1BC06F5FCF\r
+:104360007F4F8F4F9F4F16C0882311F096E911C0E1\r
+:10437000772321F09EE8872F762F05C0662371F002\r
+:1043800096E8862F70E060E02AF09A95660F771F16\r
+:10439000881FDAF7880F9695879597F9089557FD46\r
+:1043A0009058440F551F59F05F3F71F04795880FA3\r
+:1043B00097FB991F61F09F3F79F08795089512163A\r
+:1043C00013061406551FF2CF4695F1DF08C01616E6\r
+:1043D00017061806991FF1CF869571056105089497\r
+:1043E0000895E894BB2766277727CB0197F90895AE\r
+:1043F0000BD078C069D028F06ED018F0952309F062\r
+:104400005AC05FC01124EECFCADFA0F3959FD1F34D\r
+:10441000950F50E0551F629FF001729FBB27F00D72\r
+:10442000B11D639FAA27F00DB11DAA1F649F6627C7\r
+:10443000B00DA11D661F829F2227B00DA11D621F16\r
+:10444000739FB00DA11D621F839FA00D611D221FD0\r
+:10445000749F3327A00D611D231F849F600D211DB4\r
+:10446000822F762F6A2F11249F5750408AF0E1F057\r
+:1044700088234AF0EE0FFF1FBB1F661F771F881FA0\r
+:1044800091505040A9F79E3F510570F014C0AACF3B\r
+:104490005F3FECF3983EDCF3869577956795B7958B\r
+:1044A000F795E7959F5FC1F7FE2B880F911D9695B5\r
+:1044B000879597F9089597F99F6780E870E060E025\r
+:1044C00008959FEF80EC089500240A9416161706AD\r
+:1044D00018060906089500240A94121613061406F5\r
+:1044E00005060895092E0394000C11F4882352F058\r
+:1044F000BB0F40F4BF2B11F460FF04C06F5F7F4F10\r
+:104500008F4F9F4F089597FB072E16F4009407D006\r
+:1045100077FD09D00E949D2207FC05D03EF49095BE\r
+:1045200081959F4F0895709561957F4F0895EE0F87\r
+:10453000FF1F0590F491E02D0994AA1BBB1B51E1CC\r
+:1045400007C0AA1FBB1FA617B70710F0A61BB70B03\r
+:10455000881F991F5A95A9F780959095BC01CD01A8\r
+:104560000895F999FECF92BD81BDF89A992780B53B\r
+:104570000895A8E1B0E042E050E00C94D422262F48\r
+:10458000F999FECF1FBA92BD81BD20BD0FB6F89438\r
+:10459000FA9AF99A0FBE019608950E94BF22272F1A\r
+:1045A0000C94C022DC01CB01FC01F999FECF06C0BE\r
+:1045B000F2BDE1BDF89A319600B40D9241505040E1\r
+:0845C000B8F70895F894FFCF4D\r
+:1045C80020024B07D807B50781074E070101BA013A\r
+:1045D80028080A03140A3F4D36394B04FE03C80362\r
+:1045E8008F0322033B0354036D03010203040506F2\r
+:0445F80007080900A7\r
 :00000001FF\r
index 667078517cfb10dc178fedd142f3830146020730..20c95f1ee0cd8394cffac0f82468dc0dcea68592 100644 (file)
@@ -1,3 +1,4 @@
+#include <keymap_extras/keymap_colemak.h>
 #include "ergodox_ez.h"
 #include "debug.h"
 #include "action_layer.h"
@@ -6,12 +7,6 @@
 #define SYMB 1 // symbols
 #define MDIA 2 // media keys
 
-/* About this file: This is just an experimental keymap for my own use, with some ideas I'm testing out.
-*  Changlog:
-*  Jan 19: * Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic.
-*          * Made ' into dual-action key (Win/Cmd when held down).
-*/
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /* Keymap 0: Basic layer
  *
@@ -29,23 +24,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                                        ,-------------.       ,-------------.
  *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
  *                                 ,------|------|------|       |------+--------+------.
- *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
- *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 |      | L1   | Home |       | PgUp |        |      |
+ *                                 | Space| Tap/ |------|       |------| Tab/L1 |Enter |
+ *                                 |      |Toggle| End  |       | PgDn |        |      |
  *                                 `--------------------'       `----------------------'
  */
 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
 // Otherwise, it needs KC_*
 [BASE] = KEYMAP(  // layer 0 : default
         // left hand
-        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT,
-        KC_DELT,        KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),
-        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
-        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   ALL_T(KC_NO),
-        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
-                                              ALT_T(KC_APP),  KC_LGUI,
-                                                              KC_HOME,
-                                               KC_SPC,KC_BSPC,KC_END,
+        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,    KC_5,   KC_LEFT,
+        KC_DELT,        KC_Q,         KC_W,   KC_E,   KC_R,    KC_T,   TG(SYMB),
+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,    KC_G,
+        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,    KC_B,   ALL_T(KC_NO),
+        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT, KC_RGHT,
+                                              ALT_T(KC_APP),   KC_LGUI,
+                                                               KC_HOME,
+                                               KC_SPC,KC_FN1,KC_END,
         // right hand
              KC_RGHT,     KC_6,KC_7,       KC_8,   KC_9,   KC_0,            KC_MINS,
              TG(SYMB),    KC_Y,KC_U,       KC_I,   KC_O,   KC_P,            KC_BSLS,
@@ -54,20 +49,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                KC_UP,      KC_DOWN,KC_LBRC,KC_RBRC,         KC_FN1,
              KC_LALT,        CTL_T(KC_ESC),
              KC_PGUP,
-             KC_PGDN,KC_TAB, KC_ENT
+             KC_PGDN,LT(SYMB, KC_TAB), KC_ENT
     ),
 /* Keymap 1: Symbol Layer
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
  * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |        |   1  |   2  |   3  |   4  |      |      |           |      |      |   %  |   =  |   @  |      |   F12  |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |        |   5  |   6  |   7  |   8  |   9  |------|           |------|   &  |   _  |   -  |   ;  |   +  |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
+ * |        |   (  |   )  |   [  |   ]  |   0  |      |           |      |   |  |   (  |   )  |      |      |        |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
  *   `----------------------------------'                                       `----------------------------------'
  *                                        ,-------------.       ,-------------.
  *                                        |      |      |       |      |      |
@@ -80,20 +75,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 // SYMBOLS
 [SYMB] = KEYMAP(
        // left hand
-       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
-       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
-       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
-       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
-       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-                                       KC_TRNS,KC_TRNS,
-                                               KC_TRNS,
-                               KC_TRNS,KC_TRNS,KC_TRNS,
-       // right hand
+       KC_TRNS, KC_F1,  KC_F2,  KC_F3,         KC_F4,        KC_F5,   KC_TRNS,
+       KC_TRNS, KC_1,   KC_2,   KC_3,          KC_4,         KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_5,   KC_6,   KC_7,          KC_8,         KC_9,
+       KC_TRNS, KC_LPRN,KC_RPRN,KC_LBRC,       KC_RBRC,      KC_0,    KC_TRNS,
+       KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
+                                                                              KC_TRNS,KC_TRNS,
+                                                                                      KC_TRNS,
+                                                                      KC_TRNS,KC_TRNS,KC_TRNS,
+               // right hand
        KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
-       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
-                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
-       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,
-                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_PERC,KC_EQL,  KC_AT,   KC_TRNS, KC_F12,
+                KC_AMPR, KC_UNDS,KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
+       KC_TRNS, KC_PIPE, KC_LPRN,KC_RPRN, KC_3,    KC_TRNS, KC_TRNS,
+                         KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS,
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS
index 1ec3400696babf5ed447f81d2d764cc1dec586e2..82e1c5e4a0e6384d4a08eea92ef5031b0bb6e728 100644 (file)
@@ -4,6 +4,23 @@ This is my personal layout which I use to test out ideas which may or may not ma
 
 Changelog:
 
+## Feb 11, 2016:
+
+* Updated ASCII legend for thumb clusters
+* Made it so outer left-hand thumb key is L1 momentary toggle
+* Added % and @ to L1
+* Swapped positions for _ and - on L1
+
+## Feb 5, 2016:
+
+* A whole new design for the symbol layer. Specifically:
+  * Put the minus, underscore, and semicolon right in the homerow for the right hand
+  * Parens are in better places for me
+  * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer
+  * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down
+  * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace)
+  
+
 ## Jan 19, 2016:
 
 * Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic.
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex b/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex
new file mode 100644 (file)
index 0000000..574e810
--- /dev/null
@@ -0,0 +1,1473 @@
+:100000000C9403070C9447070C9447070C9447077C\r
+:100010000C9447070C9447070C9447070C94470728\r
+:100020000C9447070C9447070C9460120C943213FD\r
+:100030000C9447070C9447070C9447070C94470708\r
+:100040000C9447070C940C2C0C9447070C9447070E\r
+:100050000C9447070C9413220C9447070C94470701\r
+:100060000C9447070C9447070C9447070C944707D8\r
+:100070000C9447070C9447070C9447070C944707C8\r
+:100080000C9447070C9447070C9447070C944707B8\r
+:100090000C9447070C9447070C9447070C944707A8\r
+:1000A0000C9447070C9447070C9447079713B91310\r
+:1000B000A414B913A414FB131E14A41473148614EB\r
+:1000C000D417D4170218021844188018801A801AFE\r
+:1000D0009818801A8F198F195A1A801A801A6E1A56\r
+:1000E0000000F0A129002B003900E100E30000002E\r
+:1000F0001E00140004001D0035004D001F001A00F2\r
+:1001000016001B0064004C002000080007000600D9\r
+:1001100050002A0021001500090019004F004A0074\r
+:10012000220017000A0005000000E0002E00015226\r
+:10013000000002520000E200AB0001520000025237\r
+:100140000000E60023001C000B0011000000E4008A\r
+:10015000240018000D00100051004B0025000C0079\r
+:100160000E00360052002C00260012000F0037004F\r
+:1001700031002800270013003300380030004E0003\r
+:100180002D002F003482E500E7000000010001008F\r
+:1001900001000100010000003A001E0231002202AD\r
+:1001A000010001003B001414210235000100010090\r
+:1001B0003C00241425022514010001003D002714F1\r
+:1001C00026022614010001003E0064142E023014A1\r
+:1001D000000001000100010000000100000001001A\r
+:1001E0000100010000000100000001003F0052007A\r
+:1001F00051002302000001004000240021001E00E5\r
+:10020000010001004100250022001F00370001000D\r
+:100210004200260023002000270001004300300296\r
+:1002200030002D14270201004400450001000100A8\r
+:1002300001000000010001000100010001000000B8\r
+:100240003A000100F700FB00010001003B00F40050\r
+:10025000F200FA00FD00F5003C00F000F100F900AA\r
+:10026000FE00F4003D00F500F300FC00FF0001007B\r
+:100270003E000100F800F60000000100010001004E\r
+:100280000000010000000100010001000000010069\r
+:10029000000001003F0001000100B4000000010067\r
+:1002A0004000AA00AC00B600010001004100A80017\r
+:1002B000AD00B5000100B7004200A900AE00B900D2\r
+:1002C0000100B60043000100AB00B70001000100CF\r
+:1002D0004400450001000100010000000A00253033\r
+:1002E000313662003A200025303258000A722F63FE\r
+:1002F0002030313233343536373839414243444582\r
+:10030000460A000A002530325800626F756E636538\r
+:10031000213A20006C6566742073696465206174FD\r
+:100320007461636865640A006C656674207369644F\r
+:1003300065206E6F7420726573706F6E64696E678E\r
+:100340000A00747279696E6720746F207265736534\r
+:1003500074206D637032333031380A000A444542EC\r
+:1003600055473A20656E61626C65642E0A005B73C6\r
+:100370005D004B6579626F617264207374617274A1\r
+:100380002E0A005B575D005B535D005B525D005BB6\r
+:10039000445D005B435D0016034500720067006F1B\r
+:1003A0000044006F007800200045005A000000164D\r
+:1003B000034500720067006F0044006F0078002062\r
+:1003C0000045005A0000000403090409028D0005DD\r
+:1003D0000100A0FA09040000010301010009211134\r
+:1003E000010001223F000705810308000A090401FA\r
+:1003F000000103010200092111010001224D000743\r
+:1004000005820308000A0904020001030000000934\r
+:1004100021110100012236000705830308000A09A3\r
+:100420000403000203000000092111010001222041\r
+:1004300000070584032000010705040320000109CB\r
+:100440000404000103000000092111010001223908\r
+:1004500000070585031000011201100100000008CB\r
+:10046000EDFE071301000102000105010906A101CB\r
+:10047000050719E029E71500250195087501810296\r
+:100480000508190129059505750191029501750366\r
+:100490009101050719002977150025019578750147\r
+:1004A0008102C00631FF0974A1010975150025FFFD\r
+:1004B0009520750881020976150025FF952075089D\r
+:1004C0009102C005010980A101850216010026B72D\r
+:1004D000001A01002AB700751095018100C0050CB3\r
+:1004E0000901A1018503160100269C021A01002AB8\r
+:1004F0009C02751095018100C005010902A1010946\r
+:1005000001A10005091901290515002501950575A9\r
+:100510000181029501750381010501093009311539\r
+:1005200081257F95027508810609381581257F95FB\r
+:100530000175088106050C0A38021581257F950191\r
+:1005400075088106C0C005010906A101050719E06B\r
+:1005500029E71500250195087501810295017508A7\r
+:10056000810105081901290595057501910295017B\r
+:10057000750391010507190029FF150025FF950650\r
+:1005800075088100C00A002530325820006B65795B\r
+:10059000626F6172645F7265706F72743A20000AF4\r
+:1005A0000025303258006B6579626F6172645F7349\r
+:1005B00065745F6C65643A200064656C5F6B657997\r
+:1005C0005F6269743A2063616E27742064656C3AD7\r
+:1005D00020253032580A006164645F6B65795F6280\r
+:1005E00069743A2063616E2774206164643A20253F\r
+:1005F0003032580A00646F6E652E0A00626F6F67B2\r
+:100600006D61676963207363616E3A202E2E2E2020\r
+:1006100000290A002575002F002575005D2800259A\r
+:10062000640020002564002000256400200025646B\r
+:10063000007C0025303258006D6F7573656B6579ED\r
+:10064000205B62746E7C782079207620685D287249\r
+:1006500065702F61636C293A205B006D6B5F776872\r
+:1006600065656C5F74696D655F746F5F6D6178203F\r
+:100670003D2025640A006D6B5F776865656C5F6D72\r
+:1006800061785F7370656564203D2025640A006DA4\r
+:100690006B5F74696D655F746F5F6D6178203D207D\r
+:1006A00025640A006D6B5F6D61785F7370656564CA\r
+:1006B000203D2025640A006D6B5F696E746572765B\r
+:1006C000616C203D2025640A006D6B5F64656C6180\r
+:1006D00079203D2025640A006D6B5F776865656C45\r
+:1006E0005F74696D655F746F5F6D6178203D202573\r
+:1006F000640A006D6B5F776865656C5F6D61785F3C\r
+:100700007370656564203D2025640A006D6B5F741D\r
+:10071000696D655F746F5F6D6178203D2025640AA7\r
+:10072000006D6B5F6D61785F7370656564203D205F\r
+:1007300025640A006D6B5F696E74657276616C206A\r
+:100740003D2025640A006D6B5F64656C6179203D16\r
+:100750002025640A000A00257500363A207768656E\r
+:10076000656C5F74696D655F746F5F6D61783A2069\r
+:10077000000A00257500353A20776865656C5F6D65\r
+:1007800061785F73706565643A20000A0025750022\r
+:10079000343A2074696D655F746F5F6D61783A20DB\r
+:1007A000000A00257500333A206D61785F7370652B\r
+:1007B00065643A20000A00257500323A20696E749B\r
+:1007C000657276616C286D73293A20000A002575E0\r
+:1007D00000313A2064656C6179282A31306D7329C3\r
+:1007E0003A20000A092D2056616C756573202D0A88\r
+:1007F000004D3E004D25643E20003F00736574208F\r
+:1008000064656661756C740A00433E200077686514\r
+:1008100072652064656C74613A20637572736F72DF\r
+:100820003D25642C20776865656C3D25640A536519\r
+:100830006520687474703A2F2F656E2E77696B6926\r
+:1008400070656469612E6F72672F77696B692F4DD0\r
+:100850006F7573655F6B6579730A000A092D204D0A\r
+:100860006F7573656B6579202D0A4553432F713A77\r
+:1008700009717569740A313A0964656C6179282ACD\r
+:1008800031306D73290A323A09696E746572766186\r
+:100890006C286D73290A333A096D61785F7370654E\r
+:1008A00065640A343A0974696D655F746F5F6D61E0\r
+:1008B000780A353A09776865656C5F6D61785F73B2\r
+:1008C000706565640A363A09776865656C5F7469B6\r
+:1008D0006D655F746F5F6D61780A0A703A097072B6\r
+:1008E000696E742076616C7565730A643A09736584\r
+:1008F000742064656661756C74730A75703A092BAF\r
+:10090000310A646F776E3A092D310A706775703A53\r
+:10091000092B31300A7067646F776E3A092D3130D8\r
+:100920000A0A7370656564203D2064656C746120FB\r
+:100930002A206D61785F7370656564202A202872B3\r
+:100940006570656174202F2074696D655F746F5FD9\r
+:100950006D6178290A003F004D3E2000433E200093\r
+:100960004C25640A000A092D20436F6E736F6C6575\r
+:10097000202D0A4553432F713A09717569740A6D28\r
+:100980003A096D6F7573656B65790A000A092D2048\r
+:100990004D61676963202D0A643A09646562756771\r
+:1009A0000A783A096465627567206D6174726978C6\r
+:1009B0000A6B3A096465627567206B6579626F61DD\r
+:1009C00072640A6D3A096465627567206D6F7573AC\r
+:1009D000650A763A0976657273696F6E0A733A0929\r
+:1009E0007374617475730A633A09636F6E736F6C25\r
+:1009F00065206D6F64650A302D343A096C61796544\r
+:100A000072302D34284631302D4634290A50617514\r
+:100A1000733A09626F6F746C6F616465720A653A4C\r
+:100A200009656570726F6D0A6E3A094E4B524F0A36\r
+:100A30007A3A09736C656570204C4544207465737F\r
+:100A4000740A000A002575002E6E6B726F3A200042\r
+:100A50000A002575002E737761705F6261636B73A6\r
+:100A60006C6173685F6261636B73706163653A2088\r
+:100A7000000A002575002E737761705F67726176DA\r
+:100A8000655F6573633A20000A002575002E6E6F5E\r
+:100A90005F6775693A20000A002575002E7377613B\r
+:100AA000705F72616C745F726775693A20000A004A\r
+:100AB0002575002E737761705F6C616C745F6C6775\r
+:100AC00075693A20000A002575002E636170736C09\r
+:100AD0006F636B5F746F5F636F6E74726F6C3A20DD\r
+:100AE000000A002575002E737761705F636F6E7466\r
+:100AF000726F6C5F636170736C6F636B3A20000A96\r
+:100B00000025303258006B65796D61705F636F6EE0\r
+:100B10006669672E7261773A20000A002575002EFB\r
+:100B20006D6F7573653A20000A002575002E6B65A0\r
+:100B300079626F6172643A20000A002575002E6D9B\r
+:100B400061747269783A20000A002575002E656E7E\r
+:100B500061626C653A20000A0025303258006465F5\r
+:100B60006275675F636F6E6669672E7261773A20A0\r
+:100B7000000A0025750064656661756C745F6C61C0\r
+:100B80007965723A20003F004E4B524F3A206F6613\r
+:100B9000660A004E4B524F3A206F6E0A0074696D20\r
+:100BA00065725F636F756E743A202530346C580A35\r
+:100BB000006B6579626F6172645F6E6B726F3A2071\r
+:100BC00025580A006B6579626F6172645F69646CB5\r
+:100BD000653A2025580A006B6579626F6172645F1F\r
+:100BE00070726F746F636F6C3A2025580A00686FDB\r
+:100BF00073745F6B6579626F6172645F6C65647357\r
+:100C000028293A2025580A000A092D2053746174B6\r
+:100C10007573202D0A004743433A20342E382E3274\r
+:100C2000204156522D4C4942433A20312E382E3025\r
+:100C3000204156525F415243483A20617672350A4C\r
+:100C4000004F5054494F4E533A204C554641204294\r
+:100C50004F4F544D41474943204D4F5553454B4508\r
+:100C6000592045585452414B455920434F4E534FFC\r
+:100C70004C4520434F4D4D414E44204E4B524F204A\r
+:100C80003531320A004255494C443A206664616469\r
+:100C90003765632D6469727479202831393A3332AB\r
+:100CA0003A3137204A616E203238203230313629CD\r
+:100CB0000A005649443A2030784645454428457252\r
+:100CC000676F446F7820455A29205049443A2030B4\r
+:100CD0007831333037284572676F446F7820455A32\r
+:100CE00029205645523A203078303030310A0044BD\r
+:100CF0004553433A20742E6D2E6B2E206B6579621E\r
+:100D00006F617264206669726D7761726520666FCB\r
+:100D100072204572676F646F780A000A092D2056A9\r
+:100D2000657273696F6E202D0A000A6D6F757365A9\r
+:100D30003A206F66660A000A6D6F7573653A206F18\r
+:100D40006E0A000A6B6579626F6172643A206F66A1\r
+:100D5000660A000A6B6579626F6172643A206F6E91\r
+:100D60000A000A6D61747269783A206F66660A003B\r
+:100D70000A6D61747269783A206F6E0A000A6465C0\r
+:100D80006275673A206F6E0A000A64656275673A99\r
+:100D9000206F66660A000A0A626F6F746C6F616486\r
+:100DA00065722E2E2E2000433E20006565636F6E17\r
+:100DB0006669673A0A00536C656570204C454420AB\r
+:100DC000746573740A000000000000000000000059\r
+:100DD00000010204060A0F17202C3A4A5D71879D14\r
+:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113\r
+:100DF0005D4A3A2C20170F0A060402010000000089\r
+:100E000000000000000011241FBECFEFDAE0DEBFBB\r
+:100E1000CDBF04B603FE24C08091F9019091FA0180\r
+:100E2000A091FB01B091FC018730904BA740B04BE3\r
+:100E3000B9F41092F9011092FA011092FB0110928C\r
+:100E4000FC0114BE84B7877F84BF88E10FB6F89495\r
+:100E500080936000109260000FBEE0E0FFE3099510\r
+:100E600011E0A0E0B1E0E4EBFBE502C005900D92DB\r
+:100E7000AA33B107D9F711E0AAE3B1E001C01D928E\r
+:100E8000A93FB107E1F70E949A0F0C94D82D0C945A\r
+:100E90000000FF93EF93E0913A01F0913B0130970E\r
+:100EA00009F00995EF91FF910895FC01859180303B\r
+:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC\r
+:100EC0000CC0419597FF09C0EDE260957095809543\r
+:100ED0009095611D711D811D911D27FF02C02195F7\r
+:100EE00030E350E2AA27660F771F881F991FAA1FB9\r
+:100EF000A41710F0A41B63955A95A9F7AA3008F01F\r
+:100F0000A95FA05DAF93F39561157105810591050A\r
+:100F100041F7ED3211F4EF93F395F21718F43F9384\r
+:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D\r
+:100F3000F9918591803021F0853219F0AADFF9CF3F\r
+:100F4000089520E0E89455915532C1F3503311F4DF\r
+:100F5000689455915A3348F4505390F3220F022E5F\r
+:100F6000220F220F200D250FF4CF0EF42195899129\r
+:100F70009991533619F3533729F1533559F1BC017F\r
+:100F800088279927E8945C3621F48991999168948F\r
+:100F90005591543639F446EF7EF077FF0DC08FEF50\r
+:100FA0009FEF0AC055374AE039F0583540E121F04B\r
+:100FB000523642E009F00895FF93EF937DDFEF9101\r
+:100FC000FF91B7CFFF93EF93FC0181918030B9F38C\r
+:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319\r
+:100FE000CDB7DEB72596A3DFCF91DF9108956111CC\r
+:100FF0000BC0FC018281882321F085EE0E946816D7\r
+:1010000003C085EE0E94301780E090E008950895B7\r
+:101010006091BC017091BD018091BE019091BF01B2\r
+:101020000E94132156985E9825982D9826982E9800\r
+:1010300027982F98813029F0823031F4269A2E9A01\r
+:101040000895259A2D9A089556985E98089588E0F7\r
+:1010500098E0892B11F00E94080880E090E0089544\r
+:1010600056985E9825982D9826982E9827982F9810\r
+:101070008FEF90E0909389008093880090938B008D\r
+:1010800080938A0090938D0080938C00259A2D9AEE\r
+:101090002FEF80E792E0215080409040E1F700C0C0\r
+:1010A0000000269A2E9A2FEF80E792E02150804090\r
+:1010B0009040E1F700C00000279A2F9A2FEF80E7B9\r
+:1010C00092E0215080409040E1F700C00000259858\r
+:1010D0002D982FEF80E792E0215080409040E1F77B\r
+:1010E00000C0000026982E982FEF80E792E0215054\r
+:1010F00080409040E1F700C0000027982F98569854\r
+:101100005E9825982D9826982E9827982F980895C0\r
+:1011100089EA8093800089E08093810024982C984C\r
+:101120003F988AB18F748AB96E98479A8BB1806B59\r
+:101130008BB9769A0E94300887E098E0892B11F0ED\r
+:101140000E94070880E090E0089580E2809300010B\r
+:1011500080913C0181110EC00E94F40881E08093CF\r
+:101160003C012FEF83ED90E3215080409040E1F768\r
+:1011700000C0000080E40E94FA0880930001811101\r
+:101180002EC00E94240980930001811128C00E9472\r
+:10119000240980930001811122C08FE30E94240959\r
+:1011A0008093000181111BC00E941C0980E40E94F1\r
+:1011B000FA0880930001811112C08CE00E9424097A\r
+:1011C0008093000181110BC00E94240980930001CB\r
+:1011D000811105C08FE30E942409809300010E94C1\r
+:1011E0001C098091000108951092B9008AE0809353\r
+:1011F000B800089594EA9093BC009091BC0097FFCA\r
+:10120000FCCF9091B900987F983021F0903111F087\r
+:1012100081E008958093BB0084E88093BC008091B6\r
+:10122000BC0087FFFCCF8091B900887F883111F026\r
+:10123000803471F780E0089584E98093BC00809148\r
+:10124000BC0084FDFCCF08958093BB0084E88093AC\r
+:10125000BC008091BC0087FFFCCF9091B900987FC3\r
+:1012600081E0983209F480E0089584E88093BC001E\r
+:101270008091BC0087FFFCCF8091BB0008958091D6\r
+:101280000001811115C080E40E94FA0880930001DA\r
+:1012900081110CC082E10E94240980930001811118\r
+:1012A00005C08FEF0E942409809300010E941C0951\r
+:1012B00084B1807F84B985B1807F85B98AB1837F0D\r
+:1012C0008AB98BB1837F8BB93E98469808950E9466\r
+:1012D000A508809300010E943F0980B38C7080BBF9\r
+:1012E00081B3836F81BBECE4F1E0AEE3B1E0119236\r
+:1012F0001D9281E0EA35F807D1F788E898E0892B5C\r
+:1013000011F00C94880808959F92AF92BF92CF92EB\r
+:10131000DF92EF92FF920F931F93CF93DF93809111\r
+:1013200000018823E1F080913D018F5F80933D01B2\r
+:10133000811115C082E493E00E9455070E94A50820\r
+:1013400080930001882329F088E293E00E945507EA\r
+:1013500006C084E193E00E9455070E9430080EE326\r
+:1013600011E0C0E0D0E0BB24B39482E0A82ECC24EE\r
+:10137000C394D12C25E0E22E23E0F22EC73000F5F5\r
+:1013800080910001811162C080E40E94FA0880937C\r
+:101390000001811112C082E10E94240980930001A2\r
+:1013A00081110BC0C6010C2E01C0880F0A94EAF708\r
+:1013B00080950E942409809300010E941C0946C068\r
+:1013C000CA30A1F028F4C83059F0C93061F005C026\r
+:1013D000CC3089F070F0CD3089F0209A289810C078\r
+:1013E000219A29980DC0229A2A980AC0239A2B98EC\r
+:1013F00007C0529A01C0539A5B9802C03E9A469821\r
+:10140000E0EAEA95F1F78FB1799985C092E08170B1\r
+:101410008B25892B7C9B02C090E001C094E0892B36\r
+:101420007D9B02C090E001C098E0892B7E9B02C0AA\r
+:1014300090E001C090E1892B9FB19095991F992769\r
+:10144000991F9295990F907E892B10C08091000171\r
+:10145000811176C080E40E94FA08809300018823FD\r
+:1014600009F45BC0912C0E941C09892DF801908120\r
+:10147000981739F1808380910101882301F18091CF\r
+:10148000D70180FF04C08AE093E00E945507809155\r
+:10149000D70180FF0CC0809101011F928F93FF92B2\r
+:1014A000EF920E94EE070F900F900F900F90809197\r
+:1014B000D70180FF04C083E093E00E945507A0920B\r
+:1014C00001010E943F0921960F5F1F4FCE30D105C9\r
+:1014D00009F054CF809101018823B1F081508093AD\r
+:1014E0000101882339F08FE99FE00197F1F700C0EF\r
+:1014F00000000AC0ACE4B1E0EEE3F1E081918D932D\r
+:1015000091E0EC34F907D1F787E298E0892BD1F02C\r
+:101510000E94270817C090E07ACF83E10E94240937\r
+:101520008093000181119ECF81E40E94FA0880938C\r
+:101530000001811197CF0E943509982E909493CF86\r
+:1015400080E094CF81E0DF91CF911F910F91FF90C8\r
+:10155000EF90DF90CF90BF90AF909F900895E82FCD\r
+:10156000F0E0E45BFE4F80810895CF92DF92EF922E\r
+:10157000FF920F931F93CF93DF938CEE92E00E9424\r
+:1015800055073CE4E32E31E0F32EC0E0D0E047EE17\r
+:10159000C42E42E0D42E0EED12E0DF93CF93DF9203\r
+:1015A000CF920E94EE0784EE92E00E945507F70169\r
+:1015B00081917F0190E00E9478219F938F931F93E8\r
+:1015C0000F930E94EE078CED92E00E945507219642\r
+:1015D0008DB79EB708960FB6F8949EBF0FBE8DBF0D\r
+:1015E000CE30D105D1F6DF91CF911F910F91FF90B1\r
+:1015F000EF90DF90CF9008958B3B910578F4883A77\r
+:10160000910540F5853A9105D0F48430910508F0B4\r
+:10161000B1C08130910509F4ADC06BC0803E910529\r
+:1016200008F467C0883E910508F4A4C09C01205FBF\r
+:1016300031092031310508F05CC090650895853A84\r
+:10164000910509F459C0863A910509F458C083E818\r
+:1016500090E40895883A910509F454C0893A9105B7\r
+:1016600009F453C08A3A910509F452C08B3A9105A6\r
+:1016700009F451C08C3A910509F450C08D3A910596\r
+:1016800009F44FC0803B910509F44EC08E3A910594\r
+:1016900009F44DC08F3A910509F44CC0813B910586\r
+:1016A00009F44BC0823B910509F44AC0833B910584\r
+:1016B00009F449C0843B910509F448C0853B910574\r
+:1016C00009F447C0863B910509F446C0873B910564\r
+:1016D00009F445C0883B910509F444C0893B910554\r
+:1016E00009F443C08A3B910509F042C08AE296E4BE\r
+:1016F000089580E090E0089581E890E4089582E8FC\r
+:1017000090E4089582EE94E4089589EE94E40895B7\r
+:101710008AEE94E4089585EB94E4089586EB94E4CE\r
+:10172000089587EB94E408958CEC94E408958DEC8F\r
+:1017300094E4089583E895E408958AE895E408958B\r
+:1017400082E995E4089584E995E4089581E296E4B8\r
+:10175000089583E296E4089584E296E4089585E28C\r
+:1017600096E4089586E296E4089587E296E4089563\r
+:1017700080E094E40895089596E0799FF0011124A3\r
+:1017800094E5899FE00DF11D1124E60FF11DEE0F88\r
+:10179000FF1FEC51FF4F859194910895880F991F79\r
+:1017A000805A9040FC01859194910895880F991F6B\r
+:1017B00080529F4FFC0185919491089526E0729F7D\r
+:1017C000F001112444E5849FE00DF11D1124E60F82\r
+:1017D000F11DEE0FFF1FEC51FF4F25913491C90110\r
+:1017E0009A9581159F4110F4C9010895C90190523D\r
+:1017F0008115904128F4C9019F700E94D60B08956D\r
+:10180000C90190538115904120F4C9019927906C2A\r
+:101810000895211580E5380769F40E94A11A9FEF09\r
+:1018200024E34CE0915020404040E1F700C000002C\r
+:101830000C943822213080E5380751F48CE593E090\r
+:101840000E9455078091D70181608093D701089548\r
+:10185000C90190558115904108F050C0832F9927F8\r
+:101860008F70992781309105D9F4A90143705527CC\r
+:1018700002C0880F991F4A95E2F79C68A90164E0AD\r
+:10188000440F551F6A95E1F744275370842B952B1D\r
+:1018900073E0220F331F7A95E1F7207633271DC0BE\r
+:1018A0008230910529F4922F8827816F906A0895DC\r
+:1018B00083309105A9F4A9014370552781E090E098\r
+:1018C00002C0880F991F4A95E2F79C6843E0220FF7\r
+:1018D000331F4A95E1F7207E3770822B932B0895B2\r
+:1018E0000497F1F4A9014370552781E090E002C00C\r
+:1018F000880F991F4A95E2F79A68E8CFC901905777\r
+:101900008115904120F4C9019F7090620895C9012A\r
+:1019100090588115904120F4C9019F70906A0895F4\r
+:10192000203E3105E0F4203C310558F521333105E6\r
+:1019300009F470C048F42932310509F464C02A3230\r
+:10194000310509F46EC074C029333105F1F0223835\r
+:101950003105D9F02533310509F44EC069C0233E65\r
+:10196000310589F138F4203E3105C1F0223E3105C0\r
+:10197000E1F05EC0263E310569F1273E3105A9F14F\r
+:1019800057C0C9010E94CE0B08958091EA0180FDE5\r
+:1019900002C081FF4DC080EE90E04BC08091EA0113\r
+:1019A00080FFF9CF89E390E044C08091EA0182FF93\r
+:1019B0000EC08091EA0184FF03C080E090E039C04E\r
+:1019C00083EE90E036C08091EA0182FFF2CF82EE92\r
+:1019D00090E02FC08091EA0183FF0BC08091EA0163\r
+:1019E00084FDEBCF87EE90E024C08091EA0183FF75\r
+:1019F000F5CF86EE90E01DC08091EA0185FF07C01B\r
+:101A000089E290E016C08091EA0185FFF9CF85E375\r
+:101A100090E00FC08091EA0186FF07C08AE290E063\r
+:101A200008C08091EA0186FFF9CF81E390E001C010\r
+:101A3000C9010E94FC0A0895089580916D010895DE\r
+:101A40009FB7F89410925C019FBF9091F001943081\r
+:101A500009F058C09091E9009F702091EC0020FFA0\r
+:101A600002C020E801C020E0292B94E09093E90017\r
+:101A70009091EB0090FF43C09091EE0097FF3FC024\r
+:101A800090915A01992321F09091E80095FF37C079\r
+:101A900010925A0196E03091E80035FD15C0309162\r
+:101AA000F001343061F53091EB0035FD28C09150E4\r
+:101AB00021F481E080935A0122C0EFE9FFE03197E1\r
+:101AC000F1F700C00000E7CF8093F1008091E800BB\r
+:101AD00085FD0AC08091E80080FFFCCF8091E8007E\r
+:101AE0008E778093E80006C08FB7F89491E09093CA\r
+:101AF0005C018FBF2F702093E90080E008952F7064\r
+:101B00002093E9008FEF0895CF93DF9300D01F92C9\r
+:101B1000CDB7DEB72091F001243019F523E02983F9\r
+:101B20009B838A832093E9008FEF9091E800815096\r
+:101B300095FD06C095ED9A95F1F700008111F5CF5E\r
+:101B40008091E80085FF0DC040E050E063E070E068\r
+:101B5000CE0101960E9453108091E8008E77809309\r
+:101B6000E8000F900F900F90DF91CF910895CF93E1\r
+:101B7000DF9300D01F92CDB7DEB72091F001243063\r
+:101B800021F522E029839B838A8383E08093E90007\r
+:101B90008FEF9091E800815095FD06C095ED9A95E4\r
+:101BA000F1F700008111F5CF8091E80085FF0DC0AD\r
+:101BB00040E050E063E070E0CE0101960E945310D7\r
+:101BC0008091E8008E778093E8000F900F900F903F\r
+:101BD000DF91CF9108952091F0012430F1F422E0BB\r
+:101BE0002093E9002FEF3091E800215035FD06C029\r
+:101BF00035ED3A95F1F700002111F5CF2091E8007D\r
+:101C000025FF0BC040E050E065E070E00E945310FB\r
+:101C10008091E8008E778093E8000895CF93DF935A\r
+:101C2000EC018091F001843009F047C080910C01F3\r
+:101C30008823E1F080910D018823C1F085E0809335\r
+:101C4000E9008FEF9091E800815095FD06C095E185\r
+:101C50009A95F1F700008111F5CF8091E80085FF9A\r
+:101C60002CC040E050E060E170E017C081E080935C\r
+:101C7000E9008FEF9091E800815095FD06C095ED49\r
+:101C80009A95F1F700008111F5CF8091E80085FF6A\r
+:101C900014C040E050E068E070E0CE010E945310B4\r
+:101CA0008091E8008E778093E80080E1FE01ADE549\r
+:101CB000B1E001900D928A95E1F7DF91CF910895FF\r
+:101CC00083E993E00E9455078091EF01811109C0DB\r
+:101CD0000E94E5110E9442128091E200846080938C\r
+:101CE000E20008958FE893E00E9455071092EF01FB\r
+:101CF00008958BE893E00C94550787E893E00E94E1\r
+:101D000055070C94F92B83E893E00E9455070E9435\r
+:101D1000CF210E94FF2B0E94DE140C941C0D809199\r
+:101D20005B018F5F80935B0162E30E946D2D9111D7\r
+:101D300035C010925B0180915C01882379F180911C\r
+:101D4000F001843049F58091E9008F709091EC00AA\r
+:101D500090FF02C090E801C090E0982B84E080934F\r
+:101D6000E9008091EB0080FF14C08091EE0087FFB6\r
+:101D700010C08091E80085FF03C01092F100F9CFF8\r
+:101D80008091E80080FF05C08091E8008E77809305\r
+:101D9000E8009F709093E90010925C01089542E082\r
+:101DA00061EC81E00E945F1142E061EC82E00E9400\r
+:101DB0005F1142E061EC83E00E945F1142E261EC5E\r
+:101DC00084E00E945F1142E161EC85E00C945F11B8\r
+:101DD0008091F201833009F455C030F4813071F004\r
+:101DE000823009F48EC008958A3009F47AC08B30AD\r
+:101DF00009F460C0893009F09CC020C08091F101D5\r
+:101E0000813A09F096C08091E800877F8093E800CE\r
+:101E10008091F5019091F601892B21F060E080E03E\r
+:101E200090E003C060E18DE591E070E00E949C10BD\r
+:101E30008091E8008B778093E80008958091F1010C\r
+:101E4000813209F076C08091F5019091F6010097FA\r
+:101E500019F0049709F06DC08091E800877F8093A6\r
+:101E6000E8008091E80082FD05C08091F0018111B9\r
+:101E7000F8CF5FC08091F10080936D018091E80000\r
+:101E80008B7753C08091F101813A09F052C0809163\r
+:101E9000F5019091F601892B09F04BC08091E80083\r
+:101EA000877F8093E8008091E80080FFFCCF8091DD\r
+:101EB0000C0136C08091F1018132D9F58091F50194\r
+:101EC0009091F601892BA9F58091E800877F809396\r
+:101ED000E8000E9494118091F30180930C010C940E\r
+:101EE000A11A8091F101813221F58091E800877F6C\r
+:101EF0008093E8000E9494118091F40180936E0118\r
+:101F000008958091F101813AA1F48091E800877FE2\r
+:101F10008093E8008091E80080FFFCCF80916E0103\r
+:101F20008093F1008091E8008E778093E8000C9414\r
+:101F30009411089584B7877F84BF88E10FB6F89421\r
+:101F400080936000109260000FBE90E080E80FB6B2\r
+:101F5000F89480936100909361000FBE0E94671512\r
+:101F60000E94E5110E9442128091E20084608093F9\r
+:101F7000E20080E29DE00E940E2178940E94BC1451\r
+:101F80000E94691582E091E00E94D9140E94E72B1B\r
+:101F900082E793E00E9455078091F001853089F433\r
+:101FA0008EE693E00E9455070E9492218091EE01F7\r
+:101FB000882391F30E94BA21882371F30E943D1077\r
+:101FC000EBCF0E949715E8CF292F33272330310517\r
+:101FD000A9F06CF42130310509F442C022303105FA\r
+:101FE00009F043C08DE890E02BEC33E042C0213291\r
+:101FF0003105C9F02232310519F137C099278130F6\r
+:10200000910541F08230910541F0892B71F5E7ECA3\r
+:10201000F3E005C0EFEAF3E002C0E7E9F3E0849102\r
+:1020200090E09F0126C0653000F5E62FF0E0EE0F4E\r
+:10203000FF1FEB5DFE4F2081318189E090E019C0E8\r
+:10204000653098F4E62FF0E0DF01AA0FBB1FA55E14\r
+:10205000BE4F2D913C91EA5EFE4F808190E009C019\r
+:1020600082E190E028E534E004C080E090E020E0E8\r
+:1020700030E0FA0131832083089580E189BD82E157\r
+:1020800089BD09B400FEFDCF8091D8008F7D80937B\r
+:10209000D8008091E00082608093E0008091E000B1\r
+:1020A00081FDFCCF0895CF92DF92EF92FF920F93C4\r
+:1020B0001F93CF93DF937C018B01EA010E94B5113E\r
+:1020C000811131C0209731F088819981081B190B4B\r
+:1020D000E80EF91EC12CD12C0115110519F18091C2\r
+:1020E000E80085FD14C08091E8008E778093E800B9\r
+:1020F000209741F0888199818C0D9D1D998388835B\r
+:1021000085E011C00E94B511882331F30CC0F7019E\r
+:1021100081917F018093F10001501109FFEFCF1AE7\r
+:10212000DF0ADACF80E0DF91CF911F910F91FF900E\r
+:10213000EF90DF90CF9008952091F7013091F80152\r
+:102140002617370748F06115710539F42091E8002A\r
+:102150002E772093E80001C0B901FC0120E0611551\r
+:102160007105B9F18091F001882309F440C08530F0\r
+:1021700009F43FC08091E80083FD3DC08091E800F4\r
+:1021800082FF06C08091E80082FF26C080E00895AB\r
+:102190008091E80080FFE3CF2091F3008091F2006E\r
+:1021A00090E0922B6115710551F08830910538F45B\r
+:1021B00021912093F100615071090196F3CF21E044\r
+:1021C000089709F020E08091E8008E778093E8007E\r
+:1021D000C6CF2111C7CFD6CF8091F001882339F027\r
+:1021E000853039F08091E80083FFCCCF04C082E0D5\r
+:1021F000089583E0089581E008952091F7013091DA\r
+:10220000F8012617370748F06115710539F4209158\r
+:10221000E8002E772093E80001C0B901FC0120E01E\r
+:1022200061157105C1F18091F001882309F441C065\r
+:10223000853009F440C08091E80083FD3EC0809164\r
+:10224000E80082FF06C08091E80082FF27C080E09E\r
+:1022500008958091E80080FFE3CF2091F300809102\r
+:10226000F20090E0922B6115710559F088309105CC\r
+:1022700040F424912093F100319661507109019648\r
+:10228000F2CF21E0089709F020E08091E8008E77F6\r
+:102290008093E800C5CF2111C6CFD5CF8091F00142\r
+:1022A000882339F0853039F08091E80083FFCBCF67\r
+:1022B00004C082E0089583E0089581E00895982F96\r
+:1022C000973058F59093E900981739F07091EC0029\r
+:1022D0002091ED005091F00003C0242F762F50E0A4\r
+:1022E00021FF19C03091EB003E7F3093EB0030911D\r
+:1022F000ED003D7F3093ED003091EB003160309385\r
+:10230000EB007093EC002093ED005093F0002091CF\r
+:10231000EE0027FF07C09F5FD3CF8F708093E90047\r
+:1023200081E0089580E008958091F10187FD05C066\r
+:102330008091E80080FF0EC012C08091E80082FD0D\r
+:1023400005C08091F0018111F8CF08958091E800D7\r
+:102350008B7708C08091F0018111EACF08958091B8\r
+:10236000E8008E778093E80008958091E4009091D2\r
+:10237000E50045E62091EC0020FF21C02091E80017\r
+:1023800020FD21C02091F001222389F0253089F021\r
+:102390002091EB0025FD0FC02091E4003091E50075\r
+:1023A0002817390739F3415041F0C901E3CF82E0E2\r
+:1023B000089583E0089581E0089584E008952091D0\r
+:1023C000E80022FFDFCF80E008950E9453120E94B0\r
+:1023D0005B12E0EEF0E0808181608083E8EDF0E068\r
+:1023E00080818F77808319BCA7EDB0E08C918E7FC0\r
+:1023F0008C9380818F7E80831092EF0108950F93DC\r
+:102400001F93CF93DF930E9453120E945B12C8ED7B\r
+:10241000D0E088818F7788838881806888838881ED\r
+:102420008F7D888319BC1092F0011092EC011092FC\r
+:10243000EE011092ED0100EE10E0F80180818B7F3B\r
+:10244000808388818160888342E060E080E00E9430\r
+:102450005F11E1EEF0E080818E7F8083E2EEF0E0BC\r
+:10246000808181608083808188608083F8018081A1\r
+:102470008E7F8083888180618883DF91CF911F91D7\r
+:102480000F910895E8EDF0E080818F7E8083E7ED85\r
+:10249000F0E080818160808384E082BF81E080936E\r
+:1024A000EF010C94FF11E8EDF0E080818E7F8083D6\r
+:1024B0001092E20008951092DA001092E10008955F\r
+:1024C0001F920F920FB60F9211242F933F934F93A9\r
+:1024D0005F936F937F938F939F93AF93BF93EF938C\r
+:1024E000FF938091E10082FF0BC08091E20082FFA8\r
+:1024F00007C08091E1008B7F8093E1000E948F0EE6\r
+:102500008091DA0080FF1FC08091D80080FF1BC03F\r
+:102510008091DA008E7F8093DA008091D90080FF6D\r
+:102520000DC080E189BD82E189BD09B400FEFDCF07\r
+:1025300081E08093F0010E94600E05C019BC1092EA\r
+:10254000F0010E94720E8091E10080FF19C080911D\r
+:10255000E20080FF15C08091E2008E7F8093E20050\r
+:102560008091E20080618093E2008091D8008062D7\r
+:102570008093D80019BC85E08093F0010E947D0E05\r
+:102580008091E10084FF30C08091E20084FF2CC084\r
+:1025900080E189BD82E189BD09B400FEFDCF809153\r
+:1025A000D8008F7D8093D8008091E1008F7E80934A\r
+:1025B000E1008091E2008F7E8093E2008091E20052\r
+:1025C00081608093E2008091EC01882311F084E027\r
+:1025D00007C08091E30087FF02C083E001C081E073\r
+:1025E0008093F0010E94830E8091E10083FF29C057\r
+:1025F0008091E20083FF25C08091E100877F809376\r
+:10260000E10082E08093F0011092EC018091E10002\r
+:102610008E7F8093E1008091E2008E7F8093E200C4\r
+:102620008091E20080618093E20042E060E080E01F\r
+:102630000E945F118091F00088608093F0000E94FA\r
+:10264000790EFF91EF91BF91AF919F918F917F9103\r
+:102650006F915F914F913F912F910F900FBE0F900F\r
+:102660001F9018951F920F920FB60F9211242F935F\r
+:102670003F934F935F936F937F938F939F93AF930A\r
+:10268000BF93CF93EF93FF93C091E900CF708091F8\r
+:10269000EC001092E9008091F000877F8093F000B9\r
+:1026A00078940E946E131092E9008091F000886087\r
+:1026B0008093F000C093E900FF91EF91CF91BF911B\r
+:1026C000AF919F918F917F916F915F914F913F91CA\r
+:1026D0002F910F900FBE0F901F9018951F93CF93BF\r
+:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63\r
+:1026F000CDBFE1EFF1E08091F100819321E0E93F6E\r
+:10270000F207C9F70E94E80E8091E80083FF1CC120\r
+:102710002091F1013091F201832F90E08A309105F0\r
+:1027200008F012C1FC01EA5AFF4F0C948D2D20389D\r
+:1027300081F0223809F008C18091F5018F708093F3\r
+:10274000E9008091EB0085FB882780F91092E90071\r
+:1027500006C08091ED019091EE01911182609091FF\r
+:10276000E800977F9093E8008093F1001092F100C9\r
+:10277000C5C0822F8D7F09F0E7C0222319F02230D7\r
+:1027800061F0E2C08091F301813009F0DDC03330A7\r
+:1027900009F080E08093EE0128C08091F30181115F\r
+:1027A00024C02091F5012F7009F4CEC02093E900D8\r
+:1027B0008091EB0080FF19C08091EB00333011F461\r
+:1027C000806211C080618093EB0081E090E0022E76\r
+:1027D00001C0880F0A94EAF78093EA001092EA0099\r
+:1027E0008091EB0088608093EB001092E90080916B\r
+:1027F000E800877F86C02111A7C01091F3011F77E1\r
+:102800008091E3008078812B8093E3008091E80041\r
+:10281000877F8093E8000E9494118091E80080FFF8\r
+:10282000FCCF8091E30080688093E300112311F0D6\r
+:1028300083E001C082E08093F00186C020582230FE\r
+:1028400008F082C08091F3019091F4018C3D23E067\r
+:10285000920779F583E08A838AE289834FB7F894F7\r
+:10286000DE01139620E03EE051E2E32FF0E05093CA\r
+:102870005700E49120FF03C0E295EF703F5FEF70D7\r
+:102880008E2F90E0EA3010F0C79601C0C0968D936D\r
+:102890009D932F5F243149F74FBF8091E800877FD8\r
+:1028A0008093E8006AE270E0CE0101960E949C10DD\r
+:1028B00014C0AE014F5F5F4F6091F5010E94E40FBD\r
+:1028C000009709F441C02091E800277F2093E80099\r
+:1028D000BC0189819A810E94FD108091E8008B776C\r
+:1028E0008093E80031C0203879F58091E800877F37\r
+:1028F0008093E8008091EC018093F1008091E800E2\r
+:102900008E778093E8000E9494111EC021111CC094\r
+:102910009091F3019230C0F48091E800877F80931A\r
+:10292000E8009093EC010E9494118091EC018111D8\r
+:1029300004C08091E30087FF02C084E001C081E011\r
+:102940008093F0010E94CF0E8091E80083FF0AC0BF\r
+:102950008091E800877F8093E8008091EB0080629F\r
+:102960008093EB00AA960FB6F894DEBF0FBECDBFE2\r
+:10297000DF91CF911F910895CF938091F00188232B\r
+:10298000B1F08091E9008F709091EC0090FF02C04F\r
+:1029900090E801C090E0C92FC82B1092E900809107\r
+:1029A000E80083FD0E946E13CF70C093E900CF91C1\r
+:1029B000089590937401809373010895E0917301D9\r
+:1029C000F0917401309721F00190F081E02D09948D\r
+:1029D00080E00895FF920F931F93CF93DF938C01B4\r
+:1029E000E0917301F0917401309799F10280F381C5\r
+:1029F000E02D09958091D70182FF2BC080FF04C094\r
+:102A00008DE895E00E945507E80180E1F82E07E87F\r
+:102A100015E08091D70180FF0BC088811F928F93B2\r
+:102A20001F930F930E94EE070F900F900F900F903F\r
+:102A3000FA942196F110EDCF8091D70180FF09C063\r
+:102A400085E895E0DF91CF911F910F91FF900C9455\r
+:102A50005507DF91CF911F910F91FF900895E0915D\r
+:102A60007301F0917401309721F00480F581E02D1D\r
+:102A70000994089520917101309172018217930792\r
+:102A800071F09093720180937101E0917301F09164\r
+:102A90007401309721F00680F781E02D09940895A4\r
+:102AA00020916F01309170018217930771F090931C\r
+:102AB000700180936F01E0917301F0917401309780\r
+:102AC00021F00084F185E02D0994089508950C9477\r
+:102AD00066150E94D5210E9467090C949B22CF9312\r
+:102AE000C82F8091D70182FF1EC080FF04C086EAF4\r
+:102AF00095E00E9455078091D70180FF0CC01F927E\r
+:102B0000CF9321EA35E03F932F930E94EE070F9079\r
+:102B10000F900F900F908091D70180FF04C08FE934\r
+:102B200095E00E9455078C2FCF910C941C0DCF92ED\r
+:102B3000DF92EF92FF920F931F93CF93DF93CDB766\r
+:102B4000DEB72B970FB6F894DEBF0FBECDBF0E9445\r
+:102B5000840936E7E32E31E0F32E00E010E0C02ECA\r
+:102B6000802F0E94AF0AF701D1907F01D826B1F4DF\r
+:102B70000F5F1F4F0E30110591F78FEF89838A8306\r
+:102B80001B820E94DE218160782F9D838C83498186\r
+:102B90005A816B818D810E943A1641C09091D70174\r
+:102BA00091FF04C08B870E94B50A8B8520E030E03E\r
+:102BB0004D2D50E0922FBA01022E02C075956795F7\r
+:102BC0000A94E2F760FF25C02E83CF82EE24E394BF\r
+:102BD000F12C02C0EE0CFF1C9A95E2F790E08E21DA\r
+:102BE0009F2121E0892B09F420E028870E94DE2123\r
+:102BF0008160782F9A8789874E815F8168858A8571\r
+:102C00000E943A16F801EA58FE4F80818E25808393\r
+:102C100006C02F5F3F4F2630310561F6A9CF0E94D5\r
+:102C20000926109175010E94DE141817A1F00E9468\r
+:102C3000DE14809375012B960FB6F894DEBF0FBE9D\r
+:102C4000CDBFDF91CF911F910F91FF90EF90DF905B\r
+:102C5000CF900C946F152B960FB6F894DEBF0FBE75\r
+:102C6000CDBFDF91CF911F910F91FF90EF90DF903B\r
+:102C7000CF900895CF93DF93CDB7DEB72B970FB6E4\r
+:102C8000F894DEBF0FBECDBF4F83588769877A8720\r
+:102C90008B87DE01119686E0FD0111928A95E9F796\r
+:102CA00085E0FE01379601900D928A95E1F7498102\r
+:102CB0005A816B817C818D819E810E946D1D2B9636\r
+:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550\r
+:102CD000CF93C82F882309F4C1C0823859F40E94C9\r
+:102CE000DE1481FDBBC089E30E940C200E94E82015\r
+:102CF00089E30CC0833879F40E94DE1480FDAEC0F5\r
+:102D000083E50E940C200E94E82083E50E945D205C\r
+:102D1000CF910C94E820843859F40E94DE1482FD8F\r
+:102D20009DC087E40E940C200E94E82087E4EECF3B\r
+:102D30008CEF8C0F813A48F48C2F0E94922A8111DB\r
+:102D40008DC08C2F0E940C20E3CF80E28C0F883046\r
+:102D500048F4C77081E001C0880FCA95EAF70E9465\r
+:102D6000AF20D6CF8BE58C0F833078F4C53A29F0AD\r
+:102D7000C63A31F482E890E005C081E890E002C0F4\r
+:102D800083E890E0CF910C943A1588E58C0F83315D\r
+:102D900008F064C0C83A39F1C93A41F1CA3A49F178\r
+:102DA000CB3A51F1CC3A59F1CD3A61F1C03B69F1DE\r
+:102DB000CE3A71F1CF3A79F1C13B81F1C23B89F151\r
+:102DC000C33B91F1C43B99F1C53BA1F1C63BA9F1CD\r
+:102DD000C73BB1F1C83BB9F1C93BC1F1CA3BC9F529\r
+:102DE0008AE292E038C082EE90E035C089EE90E051\r
+:102DF00032C08AEE90E02FC085EB90E02CC086EBCD\r
+:102E000090E029C087EB90E026C08CEC90E023C0D6\r
+:102E10008DEC90E020C083E891E01DC08AE891E04D\r
+:102E20001AC082E991E017C084E991E014C081E200\r
+:102E300092E011C083E292E00EC084E292E00BC007\r
+:102E400085E292E008C086E292E005C087E292E067\r
+:102E500002C080E090E0CF910C945015CF9108957E\r
+:102E6000882309F44BC0823859F40E94DE1481FF94\r
+:102E700045C089E30E940C200E94E82089E30CC031\r
+:102E8000833871F40E94DE1480FF38C083E50E940D\r
+:102E90000C200E94E82083E50E945D200C94E8202D\r
+:102EA000843859F40E94DE1482FF28C087E40E940F\r
+:102EB0000C200E94E82087E4EFCF9CEF980F913A16\r
+:102EC00058F390E2980F983050F4877091E001C069\r
+:102ED000990F8A95EAF7892F0E94B520DFCF9BE5ED\r
+:102EE000980F933020F480E090E00C943A15885AC3\r
+:102EF000833120F480E090E00C94501508958823ED\r
+:102F000021F00E94AF200C94E8200895882321F03E\r
+:102F10000E94B5200C94E8200895CF92DF92EF92A2\r
+:102F2000FF920F931F93CF93DF93CDB7DEB7289710\r
+:102F30000FB6F894DEBF0FBECDBF8C0185E0F8015F\r
+:102F4000DE01119601900D928A95E1F7F80140811A\r
+:102F50003181F280258122952F7083819481892B84\r
+:102F600031F03F3F31F481E04F3F19F403C081E07D\r
+:102F700001C080E080FDC4C249833A8389819A817F\r
+:102F80002F830E94CA1F9E8388870E94C91F0E94A8\r
+:102F90009C1E4E81E42FE295EF70F0E0E05AFF4F67\r
+:102FA0002F8168850C948D2D842F807F142F1F70A6\r
+:102FB000882311F01295107FFF2059F0112309F496\r
+:102FC00054C2812F68870E94BF200E94E820688534\r
+:102FD0004CC2862F0E943017112309F491C2812F11\r
+:102FE0000E94C52028960FB6F894DEBF0FBECDBF55\r
+:102FF000DF91CF911F910F91FF90EF90DF90CF90D5\r
+:103000000C94E820342F307F842F8F70303211F0F1\r
+:103010008295807F662319F0613019F12BC0FF2063\r
+:10302000B1F0222309F493C1213009F090C1289610\r
+:103030000FB6F894DEBF0FBECDBFDF91CF911F91C9\r
+:103040000F91FF90EF90DF90CF900C94CF20222330\r
+:1030500019F0213009F454C28E830E94D2208E814F\r
+:1030600089C1FF2021F0223008F04AC270C121112D\r
+:1030700047C280C1FF2021F0222309F468C1F5C1B5\r
+:10308000222309F477C105C2242F269526952370A3\r
+:1030900030E02115310521F021303105C9F030C271\r
+:1030A000FF2021F0862F942F937002C080E090E0E3\r
+:1030B00028960FB6F894DEBF0FBECDBFDF91CF913B\r
+:1030C0001F910F91FF90EF90DF90CF900C943A15E5\r
+:1030D000FF2021F0862F942F937002C080E090E0B3\r
+:1030E00028960FB6F894DEBF0FBECDBFDF91CF910B\r
+:1030F0001F910F91FF90EF90DF90CF900C9450159F\r
+:10310000862FFF2019F00E948F2402C00E94F7240E\r
+:1031100028960FB6F894DEBF0FBECDBFDF91CF91DA\r
+:103120001F910F91FF90EF90DF90CF900C947C2532\r
+:10313000842F837009F076C0F110E2C1262F22950A\r
+:1031400026952770220F220F862F8F70C82ED12C24\r
+:10315000E12CF12C022E04C0CC0CDD1CEE1CFF1C5B\r
+:103160000A94D2F764FF10C06FE070E080E090E056\r
+:1031700004C0660F771F881F991F2A95D2F76095A4\r
+:1031800070958095909503C060E070E0CB01242F8E\r
+:10319000269526952370422F50E042305105D1F0FC\r
+:1031A0004330510559F16C297D298E299F294130E1\r
+:1031B000510541F128960FB6F894DEBF0FBECDBF82\r
+:1031C000DF91CF911F910F91FF90EF90DF90CF9003\r
+:1031D0000C94C11E6C297D298E299F2928960FB633\r
+:1031E000F894DEBF0FBECDBFDF91CF911F910F913D\r
+:1031F000FF90EF90DF90CF900C94DB1E0E94C11ED9\r
+:10320000C701B60128960FB6F894DEBF0FBECDBF3A\r
+:10321000DF91CF911F910F91FF90EF90DF90CF90B2\r
+:103220000C94A71EFF2019F0842F817001C0869591\r
+:10323000882309F465C1262F229526952770220F31\r
+:10324000220F862F8F70C82ED12CE12CF12C022E4C\r
+:1032500004C0CC0CDD1CEE1CFF1C0A94D2F764FFEA\r
+:1032600010C06FE070E080E090E004C0660F771F50\r
+:10327000881F991F2A95D2F7609570958095909533\r
+:1032800003C060E070E0CB01242F269526952370C3\r
+:10329000422F50E042305105D1F04330510559F1F1\r
+:1032A0006C297D298E299F294130510541F12896AD\r
+:1032B0000FB6F894DEBF0FBECDBFDF91CF911F9147\r
+:1032C0000F91FF90EF90DF90CF900C94951F6C2999\r
+:1032D0007D298E299F2928960FB6F894DEBF0FBE50\r
+:1032E000CDBFDF91CF911F910F91FF90EF90DF90B5\r
+:1032F000CF900C94AF1F0E94951FC701B60128966E\r
+:103300000FB6F894DEBF0FBECDBFDF91CF911F91F6\r
+:103310000F91FF90EF90DF90CF900C947B1F603F58\r
+:10332000C9F118F4603E50F49BC0623F09F460C0DC\r
+:1033300008F44AC0633F09F46FC092C0162F1F7093\r
+:10334000842F8F71FF2099F00E94141F812F2896DF\r
+:103350000FB6F894DEBF0FBECDBFDF91CF911F91A6\r
+:103360000F91FF90EF90DF90CF900C947F170E9409\r
+:10337000351F812F28960FB6F894DEBF0FBECDBF44\r
+:10338000DF91CF911F910F91FF90EF90DF90CF9041\r
+:103390000C948617FF20A1F02111B2C0842F8F71E9\r
+:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148\r
+:1033B0001F910F91FF90EF90DF90CF900C945A1FC8\r
+:1033C000223008F09DC0EACFFF20A1F0842F8F713A\r
+:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118\r
+:1033E0001F910F91FF90EF90DF90CF900C94141FDE\r
+:1033F000FF2061F3842F8F7128960FB6F894DEBFFB\r
+:103400000FBECDBFDF91CF911F910F91FF90EF9035\r
+:10341000DF90CF900C94351FFF2091F0842F8F7197\r
+:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7\r
+:103430001F910F91FF90EF90DF90CF900C94FF1EA3\r
+:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7\r
+:103450001F910F91FF90EF90DF90CF900C94F51E8D\r
+:10346000FF20A1F0222309F4B1CF862F28960FB6B2\r
+:10347000F894DEBF0FBECDBFDF91CF911F910F91AA\r
+:10348000FF90EF90DF90CF900C946816222309F400\r
+:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2\r
+:1034A000DF91CF911F910F91FF90EF90DF90CF9020\r
+:1034B0000C9430174F70C8010E94F70728960FB67A\r
+:1034C000F894DEBF0FBECDBFDF91CF911F910F915A\r
+:1034D000FF90EF90DF90CF900C941A1E4F70C801B0\r
+:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107\r
+:1034F0001F910F91FF90EF90DF90CF900C94BB0B3A\r
+:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6\r
+:103510001F910F91FF90EF90DF90CF9008950E9440\r
+:10352000CC200E94A1200E94E8200E94AA260E948E\r
+:103530007C2580E090E00E943A1580E090E00C94B9\r
+:1035400050150E94BC200C948F1A0E94CA1F292F6C\r
+:1035500022952F7030E02C3031054CF42A303105A3\r
+:103560006CF4225031092230310590F407C02C3020\r
+:10357000310551F02F30310539F00AC0803E10F08E\r
+:10358000803F31F481E0089593FB882780F9089506\r
+:1035900080E00895CF93DF9300D000D01F92CDB785\r
+:1035A000DEB70F900F900F900F900F90DF91CF919B\r
+:1035B0000895CF93DF9300D000D000D0CDB7DEB711\r
+:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128\r
+:1035D00008951F93CF93DF93C091840116E08091EB\r
+:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8\r
+:1035F0001124EA57FE4F4081518162817381848199\r
+:1036000095810E94D91A2196C770E9CFDF91CF9199\r
+:103610001F9108954091B6015091B7016091B80192\r
+:103620007091B9018091BA019091BB010C94D91AA3\r
+:10363000CF938091BB0182958F7009F05FC080911C\r
+:10364000B801882309F45AC020918401A091850112\r
+:103650006091B6017091B7018091B9019091BA0162\r
+:1036600031E06F3F09F030E0B32FC6E02A1709F4CC\r
+:1036700045C0009721F07F3F21F44B2F03C041E06C\r
+:1036800001C040E030E040FD35C0C29FF001C39F63\r
+:10369000F00D1124EA57FE4F418174132BC0408175\r
+:1036A000641328C04281411125C0438154814817C9\r
+:1036B000590710F441505109481B590B483C51051A\r
+:1036C000C8F48091BB018F7080618093BB0186E05C\r
+:1036D000829FF001839FF00D1124E557FE4F8081FA\r
+:1036E0008F708061808386EB91E00E948D17CF916F\r
+:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0\r
+:10370000CF92DF92EF92FF920F931F93CF93DF93AD\r
+:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50\r
+:103720008C0185E0F801DE011D9601900D928A95CD\r
+:10373000E1F7D8014C9111965C91119712966C911A\r
+:1037400012971396ED90FC9014977091B601E0914A\r
+:10375000B7012091B9013091BA012115310531F03D\r
+:10376000EF3F31F481E07F3F19F403C081E001C0F5\r
+:1037700080E0B82FB170CB2E80FD6CC1D090B80125\r
+:10378000DD2009F4F5C0F091BB01E216F30638F034\r
+:10379000C701821B930B883C910548F09BC0209584\r
+:1037A00030952E0D3F1D283C310508F093C08F2F1A\r
+:1037B000807F09F052C0E51314C0741312C0D62ED6\r
+:1037C00061110FC0FF70F061F093BB010E940A1BF2\r
+:1037D00086EB91E00E948D178091BB01F8018583F3\r
+:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5\r
+:1037F00003C081E001C080E080FD03C081E0862736\r
+:1038000001C080E0F82FF170FF2E80FF1CC0809176\r
+:1038100084012091850136E0821709F428C190E0E7\r
+:10382000389FF001399FF00D1124EA57FE4F718146\r
+:10383000571306C07081471303C07281671303C01A\r
+:1038400001968770E9CFD62E662309F436C18091A0\r
+:10385000BB0181608093BB0153C0E51308C07413A2\r
+:1038600006C0611104C0D8011596FC93AEC04D8707\r
+:103870005E878D859E856A8B0E94A51A6A8988233A\r
+:1038800029F1D62E662311F12091BB01822F82955A\r
+:103890008F7090E002970CF460C08091B601909117\r
+:1038A000B70198878F831986FB86EA862C87CE011D\r
+:1038B000079651C0E51731F14D875E878D859E854E\r
+:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4\r
+:1038D0008D17A4C08F2F807F69F77E2DF98AE88A23\r
+:1038E00089890E94CA1A86EB91E00E948D17E6EB47\r
+:1038F000F1E086E0DF011D928A95E9F70E940A1B3C\r
+:10390000D12CDBC07413D8CF6111D6CFD801159656\r
+:10391000FC93C8010E948D17E6EBF1E086E0DF0121\r
+:103920001D928A95E9F7C9C0D62E662379F22091B7\r
+:10393000BB01822F82958F7090E0029774F0809186\r
+:10394000B6019091B7019A8389831B82FD82EC8234\r
+:103950002E83CE0101960E948D1786E0F801A6EB1A\r
+:10396000B1E001900D928A95E1F70E94181B6FC09B\r
+:10397000E216F30628F0C701821B930B9C0104C0DA\r
+:10398000209530952E0D3F1D283C310508F052C082\r
+:10399000D62E662309F49ACFE5132CC074132AC0DF\r
+:1039A0008091BB0180FD1DC0982F92959F70C9F03A\r
+:1039B000D80115968C9315979F3039F09F5F92959B\r
+:1039C000907F8F70892B15968C93C8010E948D175C\r
+:1039D00086E0F801A6EBB1E001900D928A95E1F73F\r
+:1039E00036C086E0F801A6EBB1E001900D928A9511\r
+:1039F000E1F763C04D875E878D859E850E94A51A7D\r
+:103A0000882379F086E0F801A6EBB1E001900D92F1\r
+:103A10008A95E1F70E94181B0E940A1BDD24D394AB\r
+:103A20004CC08091BB0181608093BB01C8010E94A2\r
+:103A30008D1743C07E2DF98AE88A89890E94CA1AA7\r
+:103A4000E6EBF1E086E0DF011D928A95E9F70E943E\r
+:103A50000A1B33C0662309F439CF4D875E878D85F5\r
+:103A60009E850E94A51A882309F430CFCBCF4D87BD\r
+:103A70005E878D859E850E94CA1F292F22952F70F3\r
+:103A800030E0223031052CF49F7041F0811106C0E6\r
+:103A90000CC0243031052CF49F7049F4805E8830CE\r
+:103AA00020F0C8010E948D17CF2CDC2C06C0D80155\r
+:103AB00015969C91907F91F7F8CF8D2D62960FB659\r
+:103AC000F894DEBF0FBECDBFDF91CF911F910F9154\r
+:103AD000FF90EF90DF90CF9008951F93CF93DF93E7\r
+:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3\r
+:103AF0004F83588769877A878B879C87CE01079683\r
+:103B00000E94801B8823C1F02F8138858A859B8580\r
+:103B1000892B31F03F3F11F080E003C02F3FE1F7E8\r
+:103B200081E0811147C04F81588569857A858B85F1\r
+:103B30009C850E94D91A3EC086E0FE013796DE01C0\r
+:103B4000119601900D928A95E1F7FF81E8854A85EB\r
+:103B50005B854115510531F0EF3F31F481E0FF3FC6\r
+:103B600019F403C081E001C080E080FD23C02091F2\r
+:103B7000850130E0C9010196877099276091840121\r
+:103B800070E086179707F1F1F983EA835D834C8330\r
+:103B900096E0929FD001939FB00D1124AA57BE4F7B\r
+:103BA000FE01319601900D929A95E1F7809385017F\r
+:103BB0000E94E91A16E0809184019091850189178D\r
+:103BC00079F1189FC00111248A579E4F0E94801BD3\r
+:103BD000882331F1E09184011E9FF0011124EA57FE\r
+:103BE000FE4F4081518162817381848195810E9461\r
+:103BF000D91A8091840190E001968770992780936B\r
+:103C00008401D9CF0E94A11A1092850110928401DB\r
+:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75\r
+:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB\r
+:103C30001F910895EF92FF920F931F93CF93DF93FD\r
+:103C40009C01009709F471C0F12CEE24E394E90182\r
+:103C50002196F9018491843740F4843008F056C0ED\r
+:103C6000813081F0823021F160C0853709F449C08C\r
+:103C7000C0F19CE7980F903708F057C08F770E94EB\r
+:103C8000301746C089010E5F1F4FFE01849190E2FC\r
+:103C9000980F983050F48770FE2D01C0FF0F8A9561\r
+:103CA000EAF78F2F0E94BF2015C00E94681614C02B\r
+:103CB00089010E5F1F4FFE01849190E2980F9830AA\r
+:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9\r
+:103CD0000E94C5200E94E820E8011AC00E94301707\r
+:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903\r
+:103CF0009FE00197F1F700C00000C150F6CFE90145\r
+:103D000007C0FE01F490E901229602C00E946816E5\r
+:103D10008F2D882341F0EFE9FFE03197F1F700C0E4\r
+:103D200000008150F6CF9E0192CFDF91CF911F917D\r
+:103D30000F91FF90EF90089508956093C0017093E4\r
+:103D4000C1018093C2019093C3010C948F1A0F9309\r
+:103D50001F930091C0011091C1012091C2013091C7\r
+:103D6000C301062B172B282B392B0093C00110936E\r
+:103D7000C1012093C2013093C3011F910F910C9494\r
+:103D80008F1A0F931F930091C0011091C1012091D0\r
+:103D9000C2013091C301062317232823392300933E\r
+:103DA000C0011093C1012093C2013093C3011F9140\r
+:103DB0000F910C948F1A0F931F930091C0011091D3\r
+:103DC000C1012091C2013091C3010627172728277E\r
+:103DD00039270093C0011093C1012093C201309391\r
+:103DE000C3011F910F910C948F1A1092BC01109275\r
+:103DF000BD011092BE011092BF010C948F1A41E0D8\r
+:103E000050E060E070E004C0440F551F661F771F4C\r
+:103E10008A95D2F74093BC015093BD016093BE01D7\r
+:103E20007093BF010C948F1A41E050E060E070E0A5\r
+:103E300004C0440F551F661F771F8A95D2F78091E3\r
+:103E4000BC019091BD01A091BE01B091BF01842B36\r
+:103E5000952BA62BB72B8093BC019093BD01A0930B\r
+:103E6000BE01B093BF010C948F1A41E050E060E0B6\r
+:103E700070E004C0440F551F661F771F8A95D2F764\r
+:103E800040955095609570958091BC019091BD01D1\r
+:103E9000A091BE01B091BF0184239523A623B7232F\r
+:103EA0008093BC019093BD01A093BE01B093BF016C\r
+:103EB0000C948F1A41E050E060E070E004C0440FC1\r
+:103EC000551F661F771F8A95D2F78091BC0190918C\r
+:103ED000BD01A091BE01B091BF0184279527A627FF\r
+:103EE000B7278093BC019093BD01A093BE01B0930E\r
+:103EF000BF010C948F1A0F931F930091BC01109176\r
+:103F0000BD012091BE013091BF01062B172B282B3C\r
+:103F1000392B0093BC011093BD012093BE01309357\r
+:103F2000BF011F910F910C948F1A0F931F93009153\r
+:103F3000BC011091BD012091BE013091BF0106234B\r
+:103F40001723282339230093BC011093BD0120932C\r
+:103F5000BE013093BF011F910F910C948F1A0F93E4\r
+:103F60001F930091BC011091BD012091BE013091C1\r
+:103F7000BF0106271727282739270093BC01109374\r
+:103F8000BD012093BE013093BF011F910F910C948E\r
+:103F90008F1A0895CF92DF92EF92FF920F931F93A3\r
+:103FA000CF93DF93EC01C090C001D090C101E090AD\r
+:103FB000C201F090C3018091BC019091BD01A0911C\r
+:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113\r
+:103FD00010E0B701A601002E04C0769567955795AD\r
+:103FE00047950A94D2F740FF07C0BE01802F0E9478\r
+:103FF000DE0B8130910539F40150110950F7BE01F3\r
+:1040000080E00E94DE0BDF91CF911F910F91FF9016\r
+:10401000EF90DF90CF90089590910C01992361F17A\r
+:1040200090910D01992341F1982F9695969596952B\r
+:104030009F3088F4E0910E01F0910F01E90FF11D1E\r
+:10404000877021E030E001C0220F8A95EAF7818174\r
+:10405000822B818308959091D70190FF2DC01F92EC\r
+:104060008F9387ED95E09F938F930E94EE070F90BB\r
+:104070000F900F900F90089540910E0150910F01F5\r
+:1040800020E030E09FEFFA01E20FF31F6281681732\r
+:1040900099F09F3F19F4611101C0922F2F5F3F4F9C\r
+:1040A0002E30310581F79F3F39F0FA01E90FF11DFC\r
+:1040B00097FDFA9582830895089590910C019923B4\r
+:1040C00069F190910D01992349F1982F9695969554\r
+:1040D00096959F3090F4E0910E01F0910F01E90F59\r
+:1040E000F11D877021E030E001C0220F8A95EAF7C8\r
+:1040F000209581812823218308959091D70190FFF5\r
+:104100001FC01F928F9389EB95E09F938F930E941E\r
+:10411000EE070F900F900F900F90089540910E01B1\r
+:1041200050910F0120E030E0FA01E20FF31F92817D\r
+:10413000981301C012822F5F3F4F2E303105A1F737\r
+:10414000089581E090E0E0910E01F0910F01E80FF9\r
+:10415000F91F1082019680319105A9F70895909179\r
+:10416000D601982B9093D601089580959091D60111\r
+:1041700098239093D60108951092D60108959091B6\r
+:10418000D501982B9093D501089580959091D501F4\r
+:1041900098239093D50108951092D50108958093A6\r
+:1041A000C40108951092C401089540910E015091E8\r
+:1041B0000F0120E030E080E0FA01E20FF31F91816F\r
+:1041C00091118F5F2F5F3F4F2F303105A9F7089571\r
+:1041D000E0910E01F0910F018091D6018083E09172\r
+:1041E0000E01F0910F0180819091D501892B808380\r
+:1041F0009091C401992361F0E0910E01F0910F01BB\r
+:104200008081892B80830E94D52081111092C40166\r
+:1042100080910E0190910F010C94EA1490933B0150\r
+:1042200080933A010895CF92DF92EF92FF920F931D\r
+:104230001F936C01EE24FF24C114D104E104F104A6\r
+:1042400021F46B017C0180E001C080E133272F2D38\r
+:104250001E2D0D2D011511052105310519F0885F61\r
+:104260006801790197018601A4E036952795179595\r
+:104270000795AA95D1F7011511052105310519F00A\r
+:104280008C5F6801790197018601F2E036952795E8\r
+:1042900017950795FA95D1F70115110521053105F7\r
+:1042A00019F08E5F68017901B701A60176956795CF\r
+:1042B00057954795452B462B472B09F08F5F1F914C\r
+:1042C0000F91FF90EF90DF90CF9008958295982FF7\r
+:1042D0009C7C96959695837344E0849F900111246D\r
+:1042E000922B892F8A7A86959575990F892B089537\r
+:1042F0001F93CF93DF931F92CDB7DEB799830E94B0\r
+:104300006621182F9981892F0E946621212F30E084\r
+:10431000322F2227A901482BCA010F90DF91CF919C\r
+:104320001F9108958091F001843009F11092D80115\r
+:1043300020E488E190E00FB6F894A895809360009F\r
+:104340000FBE2093600083B7817F846083BF83B7F3\r
+:10435000816083BF7894889583B78E7F83BF88E11F\r
+:104360000FB6F89480936000109260000FBE08951D\r
+:1043700008950895CF930E94B8210E9484090E9455\r
+:10438000B921C0E08C2F0E94AF0A811105C0CF5F18\r
+:10439000CE30C1F780E001C081E0CF9108950E9446\r
+:1043A000A11A0E94DE140C941C0D82E084BD93E0DF\r
+:1043B00095BD9AEF97BD80936E0008952FB7F8943E\r
+:1043C0008091D9019091DA01A091DB01B091DC01DB\r
+:1043D0002FBF0895CF92DF92EF92FF920F931F931A\r
+:1043E0002FB7F8944091D9015091DA016091DB0127\r
+:1043F0007091DC012FBF6A017B01EE24FF248C0148\r
+:1044000020E030E0C016D106E206F30610F4415079\r
+:104410005109481B590BCA011F910F91FF90EF9052\r
+:10442000DF90CF9008951F920F920FB60F92112434\r
+:104430008F939F93AF93BF938091D9019091DA01AD\r
+:10444000A091DB01B091DC010196A11DB11D80930B\r
+:10445000D9019093DA01A093DB01B093DC01BF9105\r
+:10446000AF919F918F910F900FBE0F901F90189555\r
+:104470000E94E511F8942FEF87EA91E621508040E1\r
+:104480009040E1F700C0000087E090EBDC018093F2\r
+:10449000F9019093FA01A093FB01B093FC012CE089\r
+:1044A00088E190E00FB6F894A895809360000FBE65\r
+:1044B00020936000FFCFEF92FF920F931F93CF9353\r
+:1044C000DF93E82EF12C8F2D0E94AF0AC0E0D0E0E0\r
+:1044D000082F10E098010C2E02C0359527950A94FC\r
+:1044E000E2F720FD05C02196C630D10599F709C035\r
+:1044F0006C2F7F2D80E00E94BC0BE812F4CF81E08E\r
+:1045000005C0F3948EE0F812DECF80E0DF91CF910A\r
+:104510001F910F91FF90EF900895CF93C82F8CE2D9\r
+:104520000E945B22882321F08C2FCF910C945B2278\r
+:1045300080E0CF910895CF930E94E823811102C0BB\r
+:104540000E94CE238CEF95E00E945507C5E6C1502E\r
+:1045500049F00E9484098FE39CE90197F1F700C0BC\r
+:104560000000F5CF85EF95E00E94550789E20E9493\r
+:104570008D22811111C18AE20E948D2281110E9437\r
+:10458000CE2385E00E948D2281110E9438220E9454\r
+:10459000F3238093D70187E00E948D22882399F12D\r
+:1045A0008BE10E948D22882351F09091D70191FBDD\r
+:1045B000882780F921E0822780FB91F922C08EE0D4\r
+:1045C0000E948D22882351F09091D70192FB882779\r
+:1045D00080F921E0822780FB92F913C080E10E94DC\r
+:1045E0008D229091D701882341F093FB882780F991\r
+:1045F00021E0822780FB93F904C0892F809580FBFE\r
+:1046000090F99093D7018091D7010E94F7230E94DF\r
+:1046100005248093EA0180EE0E948D22882341F0D8\r
+:104620008091EA01982F909590FB80F98093EA01A0\r
+:1046300089E30E948D22882359F09091EA0191FB31\r
+:10464000882780F921E0822780FB91F99093EA0185\r
+:1046500082EE0E948D22882359F09091EA0192FB0C\r
+:10466000882780F921E0822780FB92F99093EA0164\r
+:1046700086EE0E948D22882359F09091EA0193FBE7\r
+:10468000882780F921E0822780FB93F99093EA0143\r
+:1046900083EE0E948D22882359F09091EA0194FBC9\r
+:1046A000882780F921E0822780FB94F99093EA0122\r
+:1046B00085E30E948D22882359F09091EA0195FBB1\r
+:1046C000882780F921E0822780FB95F99093EA0101\r
+:1046D00081E30E948D22882359F09091EA0196FB94\r
+:1046E000882780F921E0822780FB96F99093EA01E0\r
+:1046F00081E10E948D22882359F09091EA0197FB75\r
+:10470000882780F921E0822780FB97F99093EA01BE\r
+:104710008091EA010E9409248091EA0187FB8827A1\r
+:1047200080F980930D0187E20E948D22C82F8EE1CF\r
+:104730000E948D228111C2608FE10E948D22811121\r
+:10474000C46080E20E948D228111C86081E20E94D3\r
+:104750008D228111C06182E20E948D228111C0628E\r
+:1047600083E20E948D228111C06484E20E948D2226\r
+:10477000882311F0C06802C0CC2329F08C2F0E943E\r
+:1047800000246C2F03C00E94FC23682F70E080E09F\r
+:1047900090E0CF910C949D1ECF9108956DEE7EEF29\r
+:1047A00080E090E00E94C32D60E082E090E00E94F3\r
+:1047B000B52D60E083E090E00E94B52D60E084E0DC\r
+:1047C00090E00E94B52D60E085E090E00C94B52D5E\r
+:1047D00080E090E00E94AF2D21E08D3E9E4F09F0D9\r
+:1047E00020E0822F089582E090E00C94A72D682F9E\r
+:1047F00082E090E00C94B52D83E090E00C94A72D1E\r
+:10480000682F83E090E00C94B52D84E090E00C9448\r
+:10481000A72D682F84E090E00C94B52D8091DF01E6\r
+:1048200080FF0BC06091130185E0689FB0011124E7\r
+:1048300075956795759567952AC081FF09C0609148\r
+:10484000130185E0689FB0011124759567951FC01D\r
+:1048500082FF07C06091130185E0689FB0011124B9\r
+:1048600016C04091E0014423C9F06091120146173F\r
+:1048700088F72091130185E0289F90011124429F21\r
+:10488000C001439F900D112470E00E94792D603883\r
+:10489000710540F46115710539F002C065E070E002\r
+:1048A000862F08958FE7089581E008958091DF01B4\r
+:1048B00080FF08C06091110170E07595679575954E\r
+:1048C000679521C081FF06C06091110170E0759568\r
+:1048D000679519C082FF04C06091110170E010C09B\r
+:1048E0008091E0018823C1F0609110018617A0F744\r
+:1048F00090911101989FC001112470E00E94792DC0\r
+:104900006038710528F46115710521F0862F08952E\r
+:104910008FE7089581E0089561E070E0F4CF803F73\r
+:1049200021F40E940E24819504C0813F29F40E9445\r
+:104930000E248093E3010895823F21F40E940E2407\r
+:10494000819504C0833F29F40E940E248093E201E4\r
+:104950000895893F19F40E94562405C08A3F31F416\r
+:104960000E94562481958093E40108958B3F21F4A1\r
+:104970000E945624819504C08C3F29F40E9456243D\r
+:104980008093E5010895843F21F48091E1018160E5\r
+:1049900017C0853F21F48091E101826011C0863FFC\r
+:1049A00021F48091E10184600BC0873F21F4809164\r
+:1049B000E101886005C0883F31F48091E1018061A8\r
+:1049C0008093E10108958D3F21F48091DF018160A2\r
+:1049D0000BC08E3F21F48091DF01826005C08F3FC4\r
+:1049E00029F48091DF0184608093DF010895803F86\r
+:1049F00039F48091E30187FF6CC01092E30169C034\r
+:104A0000813F29F48091E3011816BCF362C09091B4\r
+:104A1000E201823F29F497FF5CC01092E20159C085\r
+:104A2000833F19F41916CCF354C0893F41F48091A7\r
+:104A3000E40118160CF04DC01092E4014AC08A3F00\r
+:104A400029F48091E40187FF44C0F6CF8B3F39F40D\r
+:104A50008091E50187FF3DC01092E5013AC08C3F8F\r
+:104A600029F48091E5011816BCF333C0843F21F48A\r
+:104A70008091E1018E7F17C0853F21F48091E10193\r
+:104A80008D7F11C0863F21F48091E1018B7F0BC0A7\r
+:104A9000873F21F48091E101877F05C0883F31F491\r
+:104AA0008091E1018F7E8093E10113C08D3F21F45D\r
+:104AB0008091DF018E7F0BC08E3F21F48091DF015A\r
+:104AC0008D7F05C08F3F29F48091DF018B7F80931C\r
+:104AD000DF018091E20181110EC08091E30181111B\r
+:104AE0000AC08091E401811106C08091E501811125\r
+:104AF00002C01092E00108958091D70183FF7EC02B\r
+:104B000088E396E00E9455078091E1011F928F9300\r
+:104B100083E396E09F938F930E94EE0781E396E0F4\r
+:104B20000E9455072091E201822F992787FD9095D9\r
+:104B30009F932F938EE296E09F938F930E94EE07B0\r
+:104B40008CE296E00E9455072091E301822F99277D\r
+:104B500087FD90959F932F9389E296E09F938F9383\r
+:104B60000E94EE0787E296E00E9455072091E4013B\r
+:104B7000822F992787FD90959F932F9384E296E04B\r
+:104B80009F938F930E94EE0782E296E00E94550762\r
+:104B90002091E501822F992787FD90959F932F9370\r
+:104BA0008FE196E09F938F930E94EE078CE196E051\r
+:104BB0000E9455078091E0011F928F9389E196E052\r
+:104BC0009F938F930E94EE0787E196E00E9455071E\r
+:104BD0008091DF011F928F9384E196E09F938F93E2\r
+:104BE0000E94EE0781E196E00E9455078DB79EB7BF\r
+:104BF0004C960FB6F8949EBF0FBE8DBF81EE91E02C\r
+:104C00000E942F150E94DE219093DE018093DD012A\r
+:104C100008951F93CF93DF938091DD019091DE0182\r
+:104C20000E94EA214091E001442321F020911401E7\r
+:104C300030E006C0209115015AE0259F9001112413\r
+:104C40008217930708F482C08091E2011091E3017A\r
+:104C5000D091E401C091E501811107C0111105C097\r
+:104C6000D11103C0CC2309F471C04F3F19F04F5F3D\r
+:104C70004093E001181624F40E940E248093E20170\r
+:104C80008091E20187FF05C00E940E2481958093E8\r
+:104C9000E201111624F40E940E248093E301809116\r
+:104CA000E30187FF05C00E940E2481958093E301F4\r
+:104CB0006091E201662339F11091E301112319F1AA\r
+:104CC000772767FD7095872F972F0E947E2C23E30F\r
+:104CD00033E343E35FE30E94E22C0E944B2C60939A\r
+:104CE000E201612F772767FD7095872F972F0E942C\r
+:104CF0007E2C23E333E343E35FE30E94E22C0E9434\r
+:104D00004B2C6093E3011D1624F40E9456248093DB\r
+:104D1000E4018091E40187FF05C00E94562481953B\r
+:104D20008093E4011C1624F40E9456248093E5012C\r
+:104D30008091E50187FF05C00E94562481958093EC\r
+:104D4000E501DF91CF911F910C947C25DF91CF91EC\r
+:104D50001F910895E1EEF1E085E0DF011D928A9553\r
+:104D6000E9F71092E0011092DF0108958BE598E0D9\r
+:104D70000E9455071F9281E08F931F9285E08F93C9\r
+:104D80008DE098E09F938F930E94EE070F900F9015\r
+:104D90000F900F900F900F9008958330E9F128F451\r
+:104DA000813061F0823009F10895853009F462C0E4\r
+:104DB00008F449C0863009F474C0089520911501A3\r
+:104DC000862F90E0820F911D8F3F910520F4620F96\r
+:104DD0006093150103C08FEF809315018091150139\r
+:104DE0001F928F9386E497E072C020911401862F62\r
+:104DF00090E0820F911D8F3F910520F4620F609328\r
+:104E0000140103C08FEF80931401809114011F924D\r
+:104E10008F9384E397E05BC020911301862F90E08D\r
+:104E2000820F911D8F3F910520F4620F6093130153\r
+:104E300003C08FEF80931301809113011F928F9312\r
+:104E400081E297E044C020911201862F90E0820F0A\r
+:104E5000911D8F3F910520F4620F6093120103C0F2\r
+:104E60008FEF80931201809112011F928F938CE03B\r
+:104E700097E02DC020911101862F90E0820F911DA7\r
+:104E80008F3F910520F4620F6093110103C08FEFF3\r
+:104E900080931101809111011F928F9383EF96E00F\r
+:104EA00016C020911001862F90E0820F911D8F3F38\r
+:104EB000910520F4620F6093100103C08FEF80937F\r
+:104EC0001001809110011F928F9388ED96E09F93BF\r
+:104ED0008F930E94EE070F900F900F900F90089500\r
+:104EE000833081F128F4813059F08230D1F0089577\r
+:104EF000853009F449C0B8F1863009F456C00895E8\r
+:104F000080911501681720F4861B8093150102C05B\r
+:104F100010921501809115011F928F9389EC96E0F4\r
+:104F200054C080911401681720F4861B80931401EB\r
+:104F300002C010921401809114011F928F9387EB8D\r
+:104F400096E043C080911301681720F4861B80937C\r
+:104F5000130102C010921301809113011F928F93CD\r
+:104F600084EA96E032C080911201681720F4861B13\r
+:104F70008093120102C010921201809112011F92BF\r
+:104F80008F938FE896E021C080911101681720F47B\r
+:104F9000861B8093110102C01092110180911101B2\r
+:104FA0001F928F9386E796E010C0809110016817DA\r
+:104FB00020F4861B8093100102C010921001809192\r
+:104FC00010011F928F938BE596E09F938F930E9421\r
+:104FD000EE070F900F900F900F900895CF93C82F6A\r
+:104FE0001F928F9320E639E03F932F930E94EE07A4\r
+:104FF00061E070E080E090E004C0660F771F881FDA\r
+:10500000991FCA95D2F70E949D1E0F900F900F9086\r
+:105010000F90CF910C94A11ACF938D3109F465C0F4\r
+:10502000B0F58E3009F4CBC100F5873009F49BC18F\r
+:10503000A8F4863009F06AC28091D701817F8E7F03\r
+:105040008093D70185E699E00E94550787EA9DE0A5\r
+:105050000E94550781E08093E70180C1883009F400\r
+:105060004FC08B3009F47CC151C2863109F4EDC1C7\r
+:1050700038F4803109F4B6C1813109F42DC246C239\r
+:10508000893109F4CBC18B3109F486C13FC2853324\r
+:1050900009F434C248F4873209F430C208F430C24B\r
+:1050A000893209F42BC232C2833438F48A3308F0CF\r
+:1050B00029C2883309F454C129C2833409F41EC2B9\r
+:1050C000883409F023C20E94A11A86E99DE00E945B\r
+:1050D00055079FEF23ED80E3915020408040E1F79A\r
+:1050E00000C000000E94382239C186EB9DE00E947A\r
+:1050F00055070E94052C0E94DE140E941C0D2EC133\r
+:105100008BEA9DE00E94550786E79BE00E945507C9\r
+:105110000E94FC231F928F9383E79BE09F938F93C2\r
+:105120000E94EE0781E79BE00E9455070E94F3234F\r
+:10513000C82F8EE59BE00E9455071F92CF9329E56B\r
+:105140003BE03F932F930E94EE0787E59BE00E9490\r
+:1051500055078DE49BE00E9455078C2F81701F92AC\r
+:105160008F932AE43BE03F932F930E94EE0788E45D\r
+:105170009BE00E9455078EE39BE00E945507C1FB10\r
+:10518000882780F91F928F932BE33BE03F932F9367\r
+:105190000E94EE0789E39BE00E9455078DE29BE0A9\r
+:1051A0000E945507C2FB882780F91F928F932AE23D\r
+:1051B0003BE03F932F930E94EE0788E29BE00E9422\r
+:1051C00055078FE19BE00E945507C3FBCC27C0F930\r
+:1051D0001F92CF938CE19BE09F938F930E94EE07E9\r
+:1051E0008AE19BE00E9455070E940524C82F86E0B3\r
+:1051F0009BE00E9455071F92CF9321E03BE03F9335\r
+:105200002F930E94EE078FEF9AE00E94550786EEDB\r
+:105210009AE00E9455078C2F81701F928F9323EE86\r
+:105220003AE03F932F930E94EE078DB79EB780968A\r
+:105230000FB6F8949EBF0FBE8DBF81EE9AE00E941C\r
+:1052400055078AEC9AE00E945507C1FB882780F930\r
+:105250001F928F9327EC3AE03F932F930E94EE0723\r
+:1052600085EC9AE00E94550783EB9AE00E9455076F\r
+:10527000C2FB882780F91F928F9320EB3AE03F937F\r
+:105280002F930E94EE078EEA9AE00E9455078CE960\r
+:105290009AE00E945507C3FB882780F91F928F93DD\r
+:1052A00029E93AE03F932F930E94EE0787E99AE0BD\r
+:1052B0000E9455078DE89AE00E945507C4FB882795\r
+:1052C00080F91F928F932AE83AE03F932F930E9430\r
+:1052D000EE0788E89AE00E94550786E79AE00E9468\r
+:1052E0005507C5FB882780F91F928F9323E73AE083\r
+:1052F0003F932F930E94EE0781E79AE00E945507A3\r
+:1053000085E59AE00E945507C6FB882780F91F9221\r
+:105310008F9322E53AE03F932F930E94EE0780E5BA\r
+:105320009AE00E94550788E49AE00E945507C7FB5F\r
+:10533000CC27C0F91F92CF9385E49AE09F938F9377\r
+:105340000E94EE0783E49AE00E9455078DB79EB74E\r
+:105350004C960FB6F8949EBF0FBE8DBFC1E0DBC068\r
+:105360008CE899E058C08091D701C82FC17080FFA8\r
+:1053700009C089E89DE00E9455078091D701817F8F\r
+:105380008E7F44C08DE79DE00E9455078091D70134\r
+:1053900081608093D701E2CF8091D70181FBCC2738\r
+:1053A000C0F991E0C927C0FB81F98093D701CC23D4\r
+:1053B00019F080E79DE025C082E69DE02CC0809139\r
+:1053C000D70182FBCC27C0F991E0C927C0FB82F945\r
+:1053D0008093D701CC2319F083E59DE012C083E4CC\r
+:1053E0009DE019C08091D70183FBCC27C0F991E0E3\r
+:1053F000C927C0FB83F98093D701CC2351F087E301\r
+:105400009DE00E9455078091D70181608093D7016C\r
+:1054100082C08AE29DE00E945507A0CF8BE19DE00B\r
+:105420000E9455078FEE9CE00E94550782EB9CE09E\r
+:105430000E94550785E89CE00E94550781E49CE0A6\r
+:105440000E94550786E19CE0E6CF88E09CE00E9440\r
+:1054500055070E94DE141F928F938EEE9BE09F9360\r
+:105460008F930E94EE0780910C011F928F9387ED1E\r
+:105470009BE09F938F930E94EE0780916E011F9295\r
+:105480008F9384EC9BE09F938F930E94EE07809113\r
+:105490000D011F928F9381EB9BE09F938F930E944E\r
+:1054A000EE078091D9019091DA01A091DB01B091D2\r
+:1054B000DC01BF93AF939F938F938DE99BE09F9304\r
+:1054C0008F930E94EE078DB79EB746960FB6F8945D\r
+:1054D0009EBF0FBE8DBF42CF0E94A11AC0910D0189\r
+:1054E00081E0C827C0930D01CC2329F083E99BE01C\r
+:1054F0000E94550710C088E89BE08DCF80E003C074\r
+:105500008D5101C089530E94EE2728CF86E89BE089\r
+:105510000E945507C0E08C2FCF91089580E0089538\r
+:1055200080E00895CF93C82F8091E701813081F00A\r
+:1055300020F0823009F44CC042C1A0910E01B0911C\r
+:105540000F018C91813169F0823209F03AC109C0B2\r
+:10555000A0910E01B0910F018C91813111F0823236\r
+:1055600049F48C2F0E948E2A81112FC08C2F0E940B\r
+:105570000C282CC08C2F0E94902A811126C0C43187\r
+:10558000E1F070F4CB3081F0C031D1F40E94B62646\r
+:1055900088E599E00E94550782E08093E70115C0F5\r
+:1055A000C93259F0C83361F485E699E00E94550785\r
+:1055B0008CE599E00E94550708C01092E70103C1ED\r
+:1055C00086E599E00E945507FEC081E08170FDC02C\r
+:1055D000C43220F5CE3108F0C0C0CB3099F1C8F408\r
+:1055E000C73009F0D2C08AE08093150194E190930E\r
+:1055F000140193E0909313018093120188E080934B\r
+:10560000110188E2809310018CEF97E00E9455070A\r
+:10561000BFC0C33149F1C431C1F0B7C0CB3409F4C4\r
+:10562000A9C028F4C93289F0C83361F0AEC0C135D1\r
+:1056300009F49EC0C23509F499C0CE3409F0A5C062\r
+:105640006AE09EC00E94B626A3C08091E60188232E\r
+:1056500019F01092E6019CC089E098E00E9455077D\r
+:1056600081E08093E701B1C083EE97E00E94550787\r
+:1056700081ED97E00E945507809115011F928F934D\r
+:105680008EEC97E09F938F930E94EE078CEC97E04F\r
+:105690000E9455078AEB97E00E94550780911401FC\r
+:1056A0001F928F9387EB97E09F938F930E94EE0753\r
+:1056B00085EB97E00E94550786EA97E00E94550720\r
+:1056C000809113011F928F9383EA97E09F938F93AA\r
+:1056D0000E94EE0781EA97E00E94550780E997E073\r
+:1056E0000E945507809112011F928F938DE897E0D9\r
+:1056F0009F938F930E94EE078BE897E00E945507D7\r
+:1057000086E797E00E945507809111011F928F93C1\r
+:1057100083E797E09F938F930E94EE0781E797E0DE\r
+:105720000E9455078AE597E00E9455078091100175\r
+:105730001F928F9387E597E09F938F930E94EE07C8\r
+:1057400085E597E00E9455078DB79EB748960FB63E\r
+:10575000F8949EBF0FBE8DBF1BC0CE51EC2FF0E062\r
+:10576000E15DFE4F80818093E60112C061E003C0DD\r
+:1057700061E006C06AE08091E6010E94CD2608C083\r
+:105780008091E6010E94702703C08AEF97E013C062\r
+:105790008091E601882369F01F928F9384EF97E050\r
+:1057A0009F938F930E94EE070F900F900F900F9092\r
+:1057B00004C081EF97E00E94550781E006C0109277\r
+:1057C000E70180E002C080E001CFCF910895E1E8D9\r
+:1057D000F0E08081886080838081816080838FB7E2\r
+:1057E000F89493E09093890090ED909388008FBF98\r
+:1057F0000895EFE6F0E08081826080830895EFE60F\r
+:10580000F0E080818D7F80830895EFE6F0E0808175\r
+:1058100092E08927808308951F920F920FB60F920E\r
+:1058200011242F933F934F935F936F937F938F93A5\r
+:105830009F93AF93BF93EF93FF938091E801909173\r
+:10584000E90101969093E9018093E801811103C079\r
+:1058500082E00E941C0DE091E901E695E695F0E0FA\r
+:10586000EA53F24FE4918091E8018E1303C080E087\r
+:105870000E941C0DFF91EF91BF91AF919F918F916D\r
+:105880007F916F915F914F913F912F910F900FBE3C\r
+:105890000F901F90189504D06894B1118DC0089591\r
+:1058A00070D088F09F5790F0B92F9927B751A0F08A\r
+:1058B000D1F0660F771F881F991F1AF0BA95C9F7A4\r
+:1058C00012C0B13081F077D0B1E0089574C0672F75\r
+:1058D000782F8827B85F39F0B93FCCF38695779554\r
+:1058E0006795B395D9F73EF490958095709561953D\r
+:1058F0007F4F8F4F9F4F0895E89409C097FB3EF468\r
+:1059000090958095709561957F4F8F4F9F4F99230C\r
+:10591000A9F0F92F96E9BB279395F695879577958A\r
+:105920006795B795F111F8CFFAF4BB0F11F460FF4A\r
+:105930001BC06F5F7F4F8F4F9F4F16C0882311F0A2\r
+:1059400096E911C0772321F09EE8872F762F05C0B6\r
+:10595000662371F096E8862F70E060E02AF09A9551\r
+:10596000660F771F881FDAF7880F9695879597F946\r
+:10597000089557FD9058440F551F59F05F3F71F03F\r
+:105980004795880F97FB991F61F09F3F79F08795A6\r
+:105990000895121613061406551FF2CF4695F1DF2F\r
+:1059A00008C0161617061806991FF1CF86957105BF\r
+:1059B000610508940895E894BB2766277727CB01F3\r
+:1059C00097F908950BD078C069D028F06ED018F000\r
+:1059D000952309F05AC05FC01124EECFCADFA0F3AF\r
+:1059E000959FD1F3950F50E0551F629FF001729F74\r
+:1059F000BB27F00DB11D639FAA27F00DB11DAA1F93\r
+:105A0000649F6627B00DA11D661F829F2227B00DDF\r
+:105A1000A11D621F739FB00DA11D621F839FA00D6A\r
+:105A2000611D221F749F3327A00D611D231F849FBA\r
+:105A3000600D211D822F762F6A2F11249F57504011\r
+:105A40008AF0E1F088234AF0EE0FFF1FBB1F661FAC\r
+:105A5000771F881F91505040A9F79E3F510570F065\r
+:105A600014C0AACF5F3FECF3983EDCF386957795A0\r
+:105A70006795B795F795E7959F5FC1F7FE2B880F60\r
+:105A8000911D9695879597F9089597F99F6780E8F6\r
+:105A900070E060E008959FEF80EC089500240A9480\r
+:105AA0001616170618060906089500240A941216F9\r
+:105AB0001306140605060895092E0394000C11F42C\r
+:105AC000882352F0BB0F40F4BF2B11F460FF04C0D9\r
+:105AD0006F5F7F4F8F4F9F4F0895991B79E004C0F0\r
+:105AE000991F961708F0961B881F7A95C9F780951D\r
+:105AF000089597FB072E16F4009407D077FD09D080\r
+:105B00000E94932D07FC05D03EF4909581959F4F00\r
+:105B10000895709561957F4F0895EE0FFF1F0590D2\r
+:105B2000F491E02D0994AA1BBB1B51E107C0AA1FE9\r
+:105B3000BB1FA617B70710F0A61BB70B881F991F2E\r
+:105B40005A95A9F780959095BC01CD010895F999D2\r
+:105B5000FECF92BD81BDF89A992780B50895A8E13E\r
+:105B6000B0E042E050E00C94CA2D262FF999FECF08\r
+:105B70001FBA92BD81BD20BD0FB6F894FA9AF99A6A\r
+:105B80000FBE019608950E94B52D272F0C94B62DB7\r
+:105B9000DC01CB01FC01F999FECF06C0F2BDE1BDED\r
+:105BA000F89A319600B40D9241505040B8F70895DC\r
+:045BB000F894FFCF97\r
+:105BB40020021D0D0E0EEB0DB70D840D0101C50164\r
+:105BC40028080A03140A3F4D3620394605F904C350\r
+:105BD40004A3046A04DD03F6030F04280448040143\r
+:0A5BE400020304050607080900008B\r
+:00000001FF\r
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c
new file mode 100644 (file)
index 0000000..751049a
--- /dev/null
@@ -0,0 +1,210 @@
+// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan.
+//
+// chschmitz, 2016-01-27
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_extras/keymap_german.h"
+
+// Layer names
+#define BASE 0 // default layer
+#define SYMB 1 // symbol layer
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * X'es mark the spots where this is different from the "german" layout which it is based on.
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |X Esc  X|   1  |   2  |   3  |   4  |   5  |X `  X|           |XPRSCX|   6  |   7  |   8  |   9  |   0  |   ß    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |X Tab  X|   Q  |   W  |   E  |   R  |   T  |X L1 X|           |X L1 X|   Z  |   U  |   I  |   O  |   P  |   Ü    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  Caps  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ö  |  Ä/L2  |
+ * |--------+------+------+------+------+------|X L2 X|           |X L2 X|------+------+------+------+------+--------|
+ * | LShift |   Y  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |X -  X| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |XLGuiX|X  ^ X|X  < X|XLEFTX|XRIGHT|                                       |XDownX|X Up X|X #  X|X  + X|XRGuiX|
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |XCTRLX|XALTX |       | Alt  |Ctrl/Esc|
+ *                                 ,------+------+------|       |------+--------+------.
+ *                                 |XXX   |XXX   | Home |       | PgUp |XXX     |XXX   |
+ *                                 | Bkspc|Del   |------|       |------|  Enter | Space|
+ *                                 |      |      | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_ESC,         KC_1,           KC_2,     KC_3,     KC_4,     KC_5,   DE_ACUT,
+        KC_TAB,         KC_Q,           KC_W,     KC_E,     KC_R,     KC_T,   MO(1),
+        KC_CAPS,         KC_A,           KC_S,     KC_D,     KC_F,     KC_G,
+        KC_LSFT,         DE_Y,           KC_X,     KC_C,     KC_V,     KC_B,   MO(2),
+        KC_LGUI,      DE_CIRC, DE_LESS,  KC_LEFT,  KC_RIGHT,
+                                               KC_LCTRL, KC_LALT,
+                                                              KC_HOME,
+                                               KC_BSPC,KC_DELT,KC_END,
+        // right hand
+        KC_PSCREEN,  KC_6,   KC_7,    KC_8,    KC_9,   KC_0,             KC_MINS,
+        MO(1),       DE_Z,   KC_U,    KC_I,    KC_O,   KC_P,             DE_UE,
+                     KC_H,   KC_J,    KC_K,    KC_L,   DE_OE,            LT(MDIA,DE_AE),
+        MO(2),       KC_N,   KC_M,    KC_COMM, KC_DOT, DE_MINS,          KC_RSFT,
+                             KC_DOWN, KC_UP,   DE_HASH,  DE_PLUS,          KC_RGUI,
+        KC_RALT, KC_RCTRL,
+        KC_PGUP,
+        KC_PGDN, KC_ENT, KC_SPC
+    ),
+// [BASE] = KEYMAP(  // layer 0 : default
+//         // left hand
+//         KC_CIRC,         KC_1,           KC_2,     KC_3,     KC_4,     KC_5,   KC_MPLY,
+//         KC_DELT,         KC_Q,           KC_W,     KC_E,     KC_R,     KC_T,   TG(1),
+//         KC_CAPS,         KC_A,           KC_S,     KC_D,     KC_F,     KC_G,
+//         KC_LSFT,         DE_Y,           KC_X,     KC_C,     KC_V,     KC_B,   ALL_T(KC_NO),
+//         LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT,  DE_MINS,  DE_PLUS,
+//                                                ALT_T(KC_APP), KC_LGUI,
+//                                                               KC_HOME,
+//                                                KC_SPC,KC_BSPC,KC_END,
+//         // right hand
+//         KC_MNXT,     KC_6,   KC_7,    KC_8,    KC_9,   KC_0,             KC_MINS,
+//         TG(2),       DE_Z,   KC_U,    KC_I,    KC_O,   KC_P,             DE_UE,
+//                      KC_H,   KC_J,    KC_K,    KC_L,   DE_OE,            LT(MDIA,DE_AE),
+//         MEH_T(KC_NO),KC_N,   KC_M,    KC_COMM, KC_DOT, CTL_T(DE_MINS),   KC_RSFT,
+//                              KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT,          KC_FN1,
+//         KC_LALT,CTL_T(KC_ESC),
+//         KC_PGUP,
+//         KC_PGDN,KC_TAB, KC_ENT
+//     ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,DE_EXLM,DE_AT,  DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS,
+       KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV,
+       KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_TRNS,KC_TRNS,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    DE_ASTR, KC_F12,
+                KC_DOWN, KC_4,   KC_5,    KC_6,    DE_PLUS, KC_TRNS,
+       KC_TRNS, DE_AMPR, KC_1,   KC_2,    KC_3,    DE_BSLS, KC_TRNS,
+                         KC_TRNS,KC_DOT,  KC_0,    DE_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      | Lclk | MsUp | Rclk |      |      |           |      |      |VolDwn| Mute |VolUp |      |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------|           |------|      | Prev | Stop | Play | Next |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |WhRght|WhDown| WhUp |WhLeft|WhClk |      |           |      |BwSrch|BwBack|BwHome|BwRefr|BwFwd |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |MsAcl0|MsAcl1|MsAcl2|                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |Brwser|Brwser|
+ *                                 | Lclk | Rclk |------|       |------|Back  |Forwd |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
+       KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_BTN1, KC_BTN2, KC_TRNS,
+    // right hand
+       KC_TRNS, KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11,
+       KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
+                KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
+       KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
+                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_WBAK, KC_WFWD
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+        if (record->event.pressed) {
+          register_code(KC_RSFT);
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+        case SYMB:
+            ergodox_right_led_1_on();
+            break;
+        case MDIA:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            ergodox_board_led_off();
+            break;
+    }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png
new file mode 100644 (file)
index 0000000..a0ef551
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png differ
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png
new file mode 100644 (file)
index 0000000..56aea1d
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png differ
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png
new file mode 100644 (file)
index 0000000..76a1aa5
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png differ
diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md
new file mode 100644 (file)
index 0000000..557d85a
--- /dev/null
@@ -0,0 +1,35 @@
+# German Layout for the ErgoDox
+
+This layout is inspired by the "kinesis-qwerty-mod" from benblazak's
+[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the 
+[qmk_firmware](https://github.com/jackhumbert/qmk_firmware).
+The goal was to have a layout that is pretty close to an ordinary German
+keyboard, so I don't have to make adjustments on the operating system level
+and I keep some of the muscle memory to use a regular keyboard.
+
+Modifications I made with regard to the aforementioned layouts:
+
+* The key layout is pretty close to the layout of a German Kinesis Ergo Elan.
+  The only exception I made is that I reversed the "up" and "down" cursor keys,
+  since that feels more natural to me.
+
+* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed.
+
+* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place.
+
+* I added a PrintScreen key which I use quite regularly for screenshots.
+
+## Default Layer
+
+![Layout of the default layer](layout.png "Layout of the default layer")
+
+## Code Layer
+
+![Layout of the code layer](layout-code.png "Layout of the code layer")
+
+## Media Layer
+
+![Layout of the media layer](layout-media.png "Layout of the media layer")
+
+Christoph Schmitz &lt;schm4704 at web dot de&gt;
+2016-01-28
index 2677a3d8faf7e358072368ddd5d2bb92418bdf24..f8f73a1afdb67bdf9226529e5de5cf75f830fe6a 100644 (file)
@@ -8,29 +8,6 @@
 #define MDIA 2 // media keys
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|   '    |
- * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
- *                                 ,------|------|------|       |------+--------+------.
- *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
- *                                 |      |ace   | End  |       | PgDn |        |      |
- *                                 `--------------------'       `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
 [BASE] = KEYMAP(  // layer 0 : default
         // left hand
         KC_NO,          KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_NO,
@@ -51,28 +28,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
              KC_PGUP,
              KC_PGDN, KC_SPC,KC_SPC
     ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        |      |      |       |      |      |
- *                                 ,------|------|------|       |------+------+------.
- *                                 |      |      |      |       |      |      |      |
- *                                 |      |      |------|       |------|      |      |
- *                                 |      |      |      |       |      |      |      |
- *                                 `--------------------'       `--------------------'
- */
-// SYMBOLS
 [SYMB] = KEYMAP(
        // left hand
        KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
@@ -93,29 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS
 ),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |
- * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
- * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |
- *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        |      |      |       |      |      |
- *                                 ,------|------|------|       |------+------+------.
- *                                 |      |      |      |       |      |      |Brwser|
- *                                 |      |      |------|       |------|      |Back  |
- *                                 |      |      |      |       |      |      |      |
- *                                 `--------------------'       `--------------------'
- */
-// MEDIA AND MOUSE
-KEYMAP(
+[MDIA] = KEYMAP(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_TRNS,
        KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,  
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/README.md b/keyboard/ergodox_ez/keymaps/jacobono/README.md
new file mode 100644 (file)
index 0000000..48de050
--- /dev/null
@@ -0,0 +1,34 @@
+# Default Layer #
+
+I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor.
+
+![default-layer](img/colemak-default-layer.png)
+
+## Special Keys ##
+
+`SC1` => `LGUI + TAB`
+
+`SC2` => `LGUI + SPACE + TAB`
+
+`L1` => Switch to QWERTY Layout
+
+`T(L2)` => Toggle Symbol Layer
+
+`T(L3)` =>  Toggle Number and D-Pad Layer
+
+# QWERTY #
+
+Nothing special here -- just need this layer tucked away for the `WASD`.  Which is literally the only reason I use it.
+Just have the same button to toggle back to colemak.
+
+# Symbol Layer #
+
+![symbol-layer](img/symbol-layer.png)
+
+This is just putting matching closing symbols next to each other -- useful when editing lisp.
+
+# Number and D-Pad Layer #
+
+Just a basic number layer with a D-PAD on the other side.
+
+![number-dpad-layer](img/number-dpad-layer.png)
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png
new file mode 100644 (file)
index 0000000..06f63c4
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png differ
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png
new file mode 100644 (file)
index 0000000..4dd7182
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png differ
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png
new file mode 100644 (file)
index 0000000..ee224cf
Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png differ
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex b/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex
new file mode 100644 (file)
index 0000000..cf68f85
--- /dev/null
@@ -0,0 +1,1142 @@
+:100000000C940D030C9451030C9451030C94510364\r
+:100010000C9451030C9451030C9451030C94510310\r
+:100020000C9451030C9451030C946A0C0C943C0DE9\r
+:100030000C9451030C9451030C9451030C945103F0\r
+:100040000C9451030C94C1210C9451030C94510352\r
+:100050000C9451030C94521B0C9451030C945103B7\r
+:100060000C9451030C9451030C9451030C945103C0\r
+:100070000C9451030C9451030C9451030C945103B0\r
+:100080000C9451030C9451030C9451030C945103A0\r
+:100090000C9451030C9451030C9451030C94510390\r
+:1000A0000C9451030C9451030C945103A90DCB0DE6\r
+:1000B000B90ECB0DB90E100E330EB90E880E9B0E75\r
+:1000C0007D117D11AC11AC11EF112D1246144614A7\r
+:1000D00046124614471347131A1446144614311493\r
+:1000E0000000F0A201002B002A00E10001540000F2\r
+:1000F0001E00140004001D71010003521F001A00AD\r
+:1001000015001B0001002800200009001600060051\r
+:1001100052002C00210013001700190002522C0A73\r
+:1001200022000A00070005000000E3005000010063\r
+:1001300000000100000065004F00010000002B08D6\r
+:100140000000297123000D000B000E000000E200EA\r
+:1001500024000F001100100002522C0A2500180084\r
+:100160000800360051002C0026001C000C0037004F\r
+:10017000010028002700330012003871E600035206\r
+:100180004C002B004C00E500E70000002A002B008B\r
+:10019000E000E100010000001E00140004001D71D9\r
+:1001A00034004D001F001A0016001B00E104E3009C\r
+:1001B000200008000700060050002C002100150058\r
+:1001C0000900190002524A00220017000A00050027\r
+:1001D00000002B00500001000000E20000004C0075\r
+:1001E0004F0001000000E6000000E20023001C00B8\r
+:1001F0000B00110000002971240018000D001000F0\r
+:1002000002524B0025000C000E0036005100280061\r
+:10021000260012000F0037002F00E7002700130010\r
+:100220003384387130004E004C003100E400E500AA\r
+:10023000C1000000010001000100010001000000F8\r
+:100240003A00010031020100010001003B001F02E1\r
+:100250001E022202010001003C0025022E022302A0\r
+:10026000010001003D002E002D00210201000100CF\r
+:100270003E002D02340224020000010001000100B2\r
+:100280000000010000000100010001000000010069\r
+:10029000000001003F00350234023300000001007D\r
+:1002A00040002F0226022F00010001004100300211\r
+:1002B000270230000100010042002002340031001A\r
+:1002C0000100010043003302350038000100010045\r
+:1002D0004400450001000100010000000100010090\r
+:1002E0000100010001000000010001000100010007\r
+:1002F00001000100010001005000010001000100A7\r
+:100300000100520051000100010001000100010044\r
+:100310004F00010001000100010001000100010087\r
+:1003200000000100010001000000010000000100C8\r
+:100330000100010000000100000001000100210295\r
+:100340002E002402000001000100240021001E00F4\r
+:10035000360001000100250022001F0027000100D7\r
+:1003600001002600230020003700010001002E02BA\r
+:100370002D002502380001000100010001000100EC\r
+:100380000100000001000100010001000100000067\r
+:100390000100010001000100010001000100010055\r
+:1003A000F2000100010001000100F000F100010075\r
+:1003B000F400010001000100F3000100F50001005C\r
+:1003C0000100010001000100000001000100010026\r
+:1003D0000000010000000100010001000000010018\r
+:1003E0000000010001000100010001000000010007\r
+:1003F0000100010001000100A9000100010001004D\r
+:100400000100AC00AA00B600010001000100AB0031\r
+:10041000A80001000100010001000100010001002D\r
+:1004200001000100AE0001000100000016034500BC\r
+:10043000720067006F0044006F00780020004500E4\r
+:100440005A00000016034500720067006F00440068\r
+:100450006F007800200045005A00000004030904E2\r
+:1004600009026D00040100A0FA0904000001030163\r
+:100470000100092111010001223F00070581030845\r
+:10048000000A090401000103010200092111010011\r
+:1004900001224D000705820308000A090402000139\r
+:1004A0000300000009211101000122360007058325\r
+:1004B0000308000A090403000103000000092111D8\r
+:1004C0000100012239000705840310000112011008\r
+:1004D0000100000008EDFE07130100010200010504\r
+:1004E000010906A101050719E029E7150025019575\r
+:1004F0000875018102050819012905950575019105\r
+:10050000029501750391010507190029771500254A\r
+:1005100001957875018102C005010980A10185025C\r
+:1005200016010026B7001A01002AB70075109501C0\r
+:100530008100C0050C0901A1018503160100269C5C\r
+:10054000021A01002A9C02751095018100C0050164\r
+:100550000902A1010901A1000509190129051500D8\r
+:10056000250195057501810295017503810105013C\r
+:10057000093009311581257F9502750881060938F2\r
+:100580001581257F950175088106050C0A3802152D\r
+:1005900081257F950175088106C0C005010906A166\r
+:1005A00001050719E029E715002501950875018166\r
+:1005B0000295017508810105081901290595057540\r
+:1005C0000191029501750391010507190029FF1595\r
+:1005D0000025FF950675088100C00000000000009E\r
+:1005E0000000000000010204060A0F17202C3A4AFE\r
+:1005F0005D71879DB3C7DAE9F5FCFFFCF5E9DAC761\r
+:10060000B39D87715D4A3A2C20170F0A0604020138\r
+:100610000000000000000000000011241FBECFEF0A\r
+:10062000DAE0DEBFCDBF04B603FE24C08091EE0148\r
+:100630009091EF01A091F001B091F1018730904BC2\r
+:10064000A740B04BB9F41092EE011092EF01109256\r
+:10065000F0011092F10114BE84B7877F84BF88E156\r
+:100660000FB6F89480936000109260000FBEE0E037\r
+:10067000FFE3099511E0A0E0B1E0E6E0F7E402C095\r
+:1006800005900D92A433B107D9F711E0A4E3B1E0CE\r
+:1006900001C01D92AE3EB107E1F70E94AE090C9475\r
+:1006A00081230C94000061110BC0FC01828188231E\r
+:1006B00021F085EE0E941A1003C085EE0E94E21020\r
+:1006C00080E090E0089508956091B1017091B201C9\r
+:1006D0008091B3019091B4010E94811A56985E985E\r
+:1006E00025982D9826982E9827982F98813019F0C4\r
+:1006F000823021F00895259A2D9A0895269A2E9AEF\r
+:10070000089584E693E0892B11F00E94640380E051\r
+:1007100090E0089556985E9825982D9826982E98E2\r
+:1007200027982F988FEF90E090938900809388000E\r
+:1007300090938B0080938A0090938D0080938C001F\r
+:10074000259A2D9A2FEF80E792E02150804090402B\r
+:10075000E1F700C00000269A2E9A2FEF80E792E082\r
+:10076000215080409040E1F700C00000279A2F9A66\r
+:100770002FEF80E792E0215080409040E1F700C0E9\r
+:10078000000025982D982FEF80E792E021508040BF\r
+:100790009040E1F700C0000026982E982FEF80E7E8\r
+:1007A00092E0215080409040E1F700C0000027987F\r
+:1007B0002F9856985E9825982D9826982E982798C9\r
+:1007C0002F98089589EA8093800089E080938100C2\r
+:1007D00024982C983F988AB18F748AB96E98479A5A\r
+:1007E0008BB1806B8BB9769A0E948A0383E693E083\r
+:1007F000892B11F00E94630380E090E0089580E26D\r
+:10080000809300018091340181110EC00E944E043A\r
+:1008100081E0809334012FEF83ED90E321508040FD\r
+:100820009040E1F700C0000080E40E9454048093EF\r
+:10083000000181112EC00E947E048093000181116D\r
+:1008400028C00E947E0480930001811122C08FE3A2\r
+:100850000E947E048093000181111BC00E947604D7\r
+:1008600080E40E94540480930001811112C08CE046\r
+:100870000E947E048093000181110BC00E947E04BF\r
+:1008800080930001811105C08FE30E947E04809354\r
+:1008900000010E9476048091000108951092B90031\r
+:1008A0008AE08093B800089594EA9093BC009091F8\r
+:1008B000BC0097FFFCCF9091B900987F983021F051\r
+:1008C000903111F081E008958093BB0084E880931B\r
+:1008D000BC008091BC0087FFFCCF8091B900887F6D\r
+:1008E000883111F0803471F780E0089584E98093B5\r
+:1008F000BC008091BC0084FDFCCF08958093BB00B8\r
+:1009000084E88093BC008091BC0087FFFCCF90916D\r
+:10091000B900987F81E0983209F480E0089584E876\r
+:100920008093BC008091BC0087FFFCCF8091BB000E\r
+:10093000089580910001811115C080E40E94540443\r
+:100940008093000181110CC082E10E947E0480939B\r
+:100950000001811105C08FEF0E947E048093000189\r
+:100960000E94760484B1807F84B985B1807F85B987\r
+:100970008AB1837F8AB98BB1837F8BB93E984698C1\r
+:1009800008950E94FF03809300010E94990480B3A0\r
+:100990008C7080BB81B3836F81BBA6E3B1E0E4E4DC\r
+:1009A000F1E08EE08E0F11921D928E13FCCF82EE3D\r
+:1009B00093E0892B11F00C94E2030895BF92CF923B\r
+:1009C000DF92EF92FF920F931F93CF93DF9380916B\r
+:1009D0000001882379F0809135018F5F8093350184\r
+:1009E000811108C00E94FF0380930001811102C0A1\r
+:1009F0000E948A0306E311E0C0E0D0E0DD24D39436\r
+:100A000082E0C82EEE24E394F12CC730D10500F526\r
+:100A100080910001811164C080E40E94540480939D\r
+:100A20000001811112C082E10E947E0480930001C6\r
+:100A300081110BC0C7010C2E01C0880F0A94EAF780\r
+:100A400080950E947E04809300010E94760448C035\r
+:100A5000CA30A1F028F4C83059F0C93061F005C09F\r
+:100A6000CC3089F070F0CD3089F0209A289810C0F1\r
+:100A7000219A29980DC0229A2A980AC0239A2B9865\r
+:100A800007C0529A01C0539A5B9802C03E9A46989A\r
+:100A900090EA9A95F1F79FB1799902C082E001C07E\r
+:100AA00080E091709D25982B7C9902C084E001C064\r
+:100AB00080E0892B7D9902C038E001C030E0832BB3\r
+:100AC0007E9902C020E101C020E0822B9FB1909569\r
+:100AD000991F9927991F9295990F907E892B0FC086\r
+:100AE0008091000181114FC080E40E9454048093E2\r
+:100AF00000018823A9F1B12C0E9476048B2DF80106\r
+:100B00009081981719F08083C09201010E94990486\r
+:100B100021960F5F1F4FCE30D10509F076CF80911F\r
+:100B200001018823B1F0815080930101882339F0BD\r
+:100B30008FE99FE00197F1F700C000000AC0A4E42C\r
+:100B4000B1E0E6E3F1E0CF01825F91919D938E13D6\r
+:100B5000FCCF81E893E0892BC1F00E94810315C08E\r
+:100B600083E10E947E04809300018111C4CF81E45F\r
+:100B70000E945404809300018111BDCF0E948F0414\r
+:100B8000B82EB094B9CF80E0BACF81E0DF91CF9199\r
+:100B90001F910F91FF90EF90DF90CF90BF9008953D\r
+:100BA000E82FF0E0EC5BFE4F8081089508958B3BC9\r
+:100BB000910578F4883A910540F5853A9105D0F48D\r
+:100BC0008430910508F0B1C08130910509F4ADC0C1\r
+:100BD0006BC0803E910508F467C0883E910508F41B\r
+:100BE000A4C09C01205F31092031310508F05CC0B0\r
+:100BF00090650895853A910509F459C0863A9105A2\r
+:100C000009F058C082E890E40895883A910509F403\r
+:100C100054C0893A910509F453C08A3A910509F400\r
+:100C200052C08B3A910509F451C08C3A910509F4F0\r
+:100C300050C08D3A910509F44FC0803B910509F4ED\r
+:100C40004EC08E3A910509F44DC08F3A910509F4D2\r
+:100C50004CC0813B910509F44BC0823B910509F4DE\r
+:100C60004AC0833B910509F449C0843B910509F4CE\r
+:100C700048C0853B910509F447C0863B910509F4BE\r
+:100C800046C0873B910509F445C0883B910509F4AE\r
+:100C900044C0893B910509F443C08A3B910509F49E\r
+:100CA00042C080E094E4089580E090E0089581E8F7\r
+:100CB00090E4089583E890E4089582EE94E4089522\r
+:100CC00089EE94E408958AEE94E4089585EB94E423\r
+:100CD000089586EB94E4089587EB94E408958CECF2\r
+:100CE00094E408958DEC94E4089583E895E40895E0\r
+:100CF0008AE895E4089582E995E4089584E995E405\r
+:100D0000089581E296E4089583E296E4089584E2EA\r
+:100D100096E4089585E296E4089586E296E40895BF\r
+:100D200087E296E408958AE296E40895089596E0AD\r
+:100D3000799FF001112494E5899FE00DF11D1124A4\r
+:100D4000E60FF11DEE0FFF1FEC51FF4F85919491BF\r
+:100D50000895880F991FFC01E05AF0408591949105\r
+:100D60000895880F991FFC01E052FF4F85919491DF\r
+:100D7000089526E0729FF001112444E5849FE00D60\r
+:100D8000F11D1124E60FF11DEE0FFF1FEC51FF4F77\r
+:100D9000859194919C013A9521154FE1340708F40F\r
+:100DA0001AC13F512115304120F49F700E94B106B5\r
+:100DB00008959C0130532115304118F49927906C07\r
+:100DC0000895811520E5920769F40E9468144FEF99\r
+:100DD00084E39CE0415080409040E1F700C0000077\r
+:100DE0000C94771B813020E5920731F48091CC017F\r
+:100DF00081608093CC0108959C01305521153041CC\r
+:100E000008F051C0292F33272F70332721303105A7\r
+:100E1000D9F4AC014370552702C0220F331F4A9505\r
+:100E2000E2F73C68AC0164E0440F551F6A95E1F7B6\r
+:100E300044275370242B352B73E0880F991F7A9524\r
+:100E4000E1F7807699271DC02230310529F4982FCB\r
+:100E50008827816F906A089523303105A9F4AC0189\r
+:100E60004370552721E030E002C0220F331F4A951E\r
+:100E7000E2F73C6843E0880F991F4A95E1F7807ECE\r
+:100E80009770822B932B089524303105E1F4AC0147\r
+:100E90004370552721E030E002C0220F331F4A95EE\r
+:100EA000E2F73A68E7CF9C0130572115304118F43A\r
+:100EB0009F70906208959C0130582115304118F4BC\r
+:100EC0009F70906A0895803E9105E0F4803C910502\r
+:100ED00058F58133910509F46FC048F489329105C2\r
+:100EE00009F463C08A32910509F46DC072C0893378\r
+:100EF0009105E9F082389105D1F08533910509F427\r
+:100F00004DC067C0833E910581F138F4803E910564\r
+:100F1000B9F0823E9105D9F05CC0863E910561F141\r
+:100F2000873E9105A1F155C00E94A9060895209120\r
+:100F3000DF0120FD02C021FF4CC080EE90E049C0DF\r
+:100F40008091DF0180FFF9CF89E390E042C080917A\r
+:100F5000DF0182FF0EC08091DF0184FF03C080E0CB\r
+:100F600090E037C083EE90E034C08091DF0182FFD3\r
+:100F7000F2CF82EE90E02DC08091DF0183FF0BC0A5\r
+:100F80008091DF0184FDEBCF87EE90E022C080915D\r
+:100F9000DF0183FFF5CF86EE90E01BC08091DF017B\r
+:100FA00085FF07C089E290E014C08091DF0185FFD2\r
+:100FB000F9CF85E390E00DC08091DF0186FF07C087\r
+:100FC0008AE290E006C08091DF0186FFF9CF81E3DD\r
+:100FD00090E00E94D70508950895809162010895D8\r
+:100FE000CF93DF9300D01F92CDB7DEB79C018091E5\r
+:100FF000E501843019F593E099833B832A8390932C\r
+:10100000E9008FEF9091E800815095FD06C095EDC5\r
+:101010009A95F1F700008111F5CF8091E80085FFE6\r
+:101020000DC040E050E063E070E0CE0101960E9408\r
+:101030005A0A8091E8008E778093E8000F900F9015\r
+:101040000F90DF91CF910895CF93DF9300D01F923F\r
+:10105000CDB7DEB72091E501243021F522E02983C8\r
+:101060009B838A8383E08093E9008FEF9091E8006F\r
+:10107000815095FD06C095ED9A95F1F7000081111C\r
+:10108000F5CF8091E80085FF0DC040E050E063E0BF\r
+:1010900070E0CE0101960E945A0A8091E8008E7796\r
+:1010A0008093E8000F900F900F90DF91CF910895FB\r
+:1010B0002091E5012430F1F422E02093E9002FEFA4\r
+:1010C0003091E800215035FD06C035ED3A95F1F735\r
+:1010D00000002111F5CF2091E80025FF0BC040E072\r
+:1010E00050E065E070E00E945A0A8091E8008E7737\r
+:1010F0008093E8000895CF93DF93EC019091E50190\r
+:10110000943009F046C080910C018823D9F0809179\r
+:101110000D018823B9F09093E9008FEF9091E800DA\r
+:10112000815095FD06C095E19A95F1F70000811177\r
+:10113000F5CF8091E80085FF2CC040E050E060E1F1\r
+:1011400070E017C081E08093E9008FEF9091E80094\r
+:10115000815095FD06C095ED9A95F1F7000081113B\r
+:10116000F5CF8091E80085FF14C040E050E068E0D2\r
+:1011700070E0CE010E945A0A8091E8008E77809339\r
+:10118000E80080E1FE01A2E5B1E001900D928A95B0\r
+:10119000E1F7DF91CF9108958091E401811109C0B9\r
+:1011A0000E94EF0B0E944C0C8091E20084608093BF\r
+:1011B000E20008951092E401089508950C94AE2180\r
+:1011C0000E940D1B0E94B4210E94F20E0C94EC07A9\r
+:1011D00042E061EC81E00E94690B42E061EC82E058\r
+:1011E0000E94690B42E061EC83E00E94690B42E1DE\r
+:1011F00061EC84E00C94690B8091E701833009F481\r
+:1012000055C030F4813071F0823009F48EC00895F9\r
+:101210008A3009F47AC08B3009F460C0893009F053\r
+:101220009CC020C08091E601813A09F096C080916F\r
+:10123000E800877F8093E8008091EA019091EB01BC\r
+:10124000892B21F460E182E591E003C060E080E059\r
+:1012500090E070E00E94A50A8091E8008B7780936F\r
+:10126000E80008958091E601813209F076C080910E\r
+:10127000EA019091EB01009719F0039709F06DC016\r
+:101280008091E800877F8093E8008091E80082FDEC\r
+:1012900005C08091E5018111F8CF5FC08091F10018\r
+:1012A000809362018091E8008B7753C08091E601C2\r
+:1012B000813A09F052C08091EA019091EB01892BAB\r
+:1012C00009F04BC08091E800877F8093E80080910F\r
+:1012D000E80080FFFCCF80910C0136C08091E601D0\r
+:1012E0008132D9F58091EA019091EB01892BA9F522\r
+:1012F0008091E800877F8093E8000E949E0B809198\r
+:10130000E80180930C010C9468148091E60181320D\r
+:1013100021F58091E800877F8093E8000E949E0B72\r
+:101320008091E9018093630108958091E601813AFB\r
+:10133000A1F48091E800877F8093E8008091E80025\r
+:1013400080FFFCCF809163018093F1008091E800E1\r
+:101350008E778093E8000C949E0B089584B7877F66\r
+:1013600084BF88E10FB6F89480936000109260000B\r
+:101370000FBE90E080E80FB6F894809361009093E0\r
+:1013800061000FBE0E94410F0E94EF0B0E944C0CA7\r
+:101390008091E20084608093E20078940E94D20EF3\r
+:1013A0000E94430F82E091E00E94ED0E0E949C217A\r
+:1013B0008091E501853069F40E94D11A8091E301A2\r
+:1013C0008823B1F30E94F91A882391F30E94440AFA\r
+:1013D000EFCF0E94490FECCF292F3327233031055F\r
+:1013E000C9F064F42130310581F02230310509F073\r
+:1013F00043C08DE690E020E634E042C02132310562\r
+:10140000F1F02232310541F137C082E190E02DEC5C\r
+:1014100034E036C099278130910541F08230910542\r
+:1014200041F0892B49F5ECE5F4E005C0E4E4F4E093\r
+:1014300002C0ECE2F4E0849190E09F0121C06430AE\r
+:10144000D8F4E62FF0E0EE0FFF1FEE5DFE4F208197\r
+:10145000318189E090E014C0643070F470E0FB01E9\r
+:10146000EE0FFF1FE65EFE4F20813181FB01EA5E39\r
+:10147000FE4F808190E004C080E090E020E030E00A\r
+:10148000FA0131832083089580E189BD82E189BD1D\r
+:1014900009B400FEFDCF8091D8008F7D8093D800E5\r
+:1014A0008091E00082608093E0008091E00081FD07\r
+:1014B000FCCF0895CF92DF92EF92FF920F931F938C\r
+:1014C000CF93DF93EC018B016A010E94BD0B811168\r
+:1014D00033C0C114D10439F0F60180819181081B19\r
+:1014E000190BC80FD91FE12CF12C0115110519F1A9\r
+:1014F0008091E80085FD16C08091E8008E7780938A\r
+:10150000E800C114D10449F0F60180819181E80E10\r
+:10151000F91EF182E08285E00FC00E94BD0B882396\r
+:1015200021F30AC089918093F10001501109FFEF66\r
+:10153000EF1AFF0ADACF80E0DF91CF911F910F9170\r
+:10154000FF90EF90DF90CF9008952091EC013091C3\r
+:10155000ED012617370748F06115710539F4209120\r
+:10156000E8002E772093E80001C0B90140E0611542\r
+:101570007105A9F12091E501222309F443C025302A\r
+:1015800009F442C02091E80023FD40C02091E8000A\r
+:1015900022FD32C02091E80020FFE9CF4091F30006\r
+:1015A0002091F20030E0342BFC01CF016115710570\r
+:1015B00059F02830310540F481918093F100615059\r
+:1015C00071092F5F3F4FF1CF41E02830310509F01D\r
+:1015D00040E02091E8002E772093E800C8CF411129\r
+:1015E000C9CF0AC08091E501882361F0853061F0A0\r
+:1015F0008091E80083FD0AC08091E80082FFF2CF6D\r
+:1016000080E0089582E0089583E0089581E00895E0\r
+:101610002091EC013091ED012617370748F0611554\r
+:10162000710539F42091E8002E772093E80001C07D\r
+:10163000B901FC0120E06115710591F18091E5018E\r
+:10164000882309F440C0853009F43FC08091E80048\r
+:1016500083FD3DC08091E80082FD2FC08091E800AD\r
+:1016600080FFE9CF2091F3008091F20090E0922B6F\r
+:101670006115710559F08830910540F4249120934B\r
+:10168000F1003196615071090196F2CF21E008977F\r
+:1016900009F020E08091E8008E778093E800CBCFBE\r
+:1016A0002111CCCF0AC08091E501882361F08530FB\r
+:1016B00061F08091E80083FD0AC08091E80082FF1C\r
+:1016C000F2CF80E0089582E0089583E0089581E0FC\r
+:1016D0000895982F973058F59093E900981739F0AE\r
+:1016E0007091EC002091ED005091F00003C0242F88\r
+:1016F000762F50E021FF19C03091EB003E7F3093F0\r
+:10170000EB003091ED003D7F3093ED003091EB0028\r
+:1017100031603093EB007093EC002093ED00509318\r
+:10172000F0002091EE0027FF07C09F5FD3CF8F709E\r
+:101730008093E90081E0089580E008958091E601BA\r
+:1017400087FF11C08091E80082FD05C08091E5010E\r
+:101750008111F8CF11C08091E8008B770BC0809188\r
+:10176000E501882349F08091E80080FFF8CF80915F\r
+:10177000E8008E778093E80008952091E40030918E\r
+:10178000E50095E64091EC00842F817040FF22C077\r
+:101790008091E80080FD1CC08091E501882391F0D4\r
+:1017A000853091F08091EB0085FD10C04091E40000\r
+:1017B0005091E5004217530729F39A01915011F710\r
+:1017C00084E0089582E0089583E0089581E008951B\r
+:1017D00080E008954091E80042FFDECF08950E9426\r
+:1017E0005D0C0E94650CE0EEF0E0808181608083FA\r
+:1017F000E8EDF0E080818F77808319BCA7EDB0E041\r
+:101800008C918E7F8C9380818F7E80831092E401F7\r
+:1018100008950F931F93CF93DF930E945D0C0E9456\r
+:10182000650CC8EDD0E088818F77888388818068D7\r
+:10183000888388818F7D888319BC1092E50110927E\r
+:10184000E1011092E3011092E20100EE10E0F801D4\r
+:1018500080818B7F808388818160888342E060E023\r
+:1018600080E00E94690BE1EEF0E080818E7F808352\r
+:10187000E2EEF0E0808181608083808188608083F7\r
+:10188000F80180818E7F8083888180618883DF91E9\r
+:10189000CF911F910F910895E8EDF0E080818F7E48\r
+:1018A0008083E7EDF0E080818160808384E082BF07\r
+:1018B00081E08093E4010C94090CE8EDF0E0808174\r
+:1018C0008E7F80831092E20008951092DA001092C9\r
+:1018D000E10008951F920F920FB60F9211242F93DB\r
+:1018E0003F934F935F936F937F938F939F93AF93A8\r
+:1018F000BF93EF93FF938091E10082FF0BC0809133\r
+:10190000E20082FF07C08091E1008B7F8093E100BD\r
+:101910000E94D10E8091DA0080FF1FC08091D80014\r
+:1019200080FF1BC08091DA008E7F8093DA00809167\r
+:10193000D90080FF0DC080E189BD82E189BD09B475\r
+:1019400000FEFDCF81E08093E5010E94CC0805C038\r
+:1019500019BC1092E5010E94DA088091E10080FF35\r
+:1019600019C08091E20080FF15C08091E2008E7F57\r
+:101970008093E2008091E20080618093E200809198\r
+:10198000D80080628093D80019BC85E08093E5017F\r
+:101990000E94DE088091E10084FF30C08091E20067\r
+:1019A00084FF2CC080E189BD82E189BD09B400FEBD\r
+:1019B000FDCF8091D8008F7D8093D8008091E10089\r
+:1019C0008F7E8093E1008091E2008F7E8093E20021\r
+:1019D0008091E20081608093E2008091E1018823A0\r
+:1019E00011F084E007C08091E30087FD02C081E030\r
+:1019F00001C083E08093E5010E94E0088091E1004E\r
+:101A000083FF29C08091E20083FF25C08091E1001F\r
+:101A1000877F8093E10082E08093E5011092E101ED\r
+:101A20008091E1008E7F8093E1008091E2008E7FC3\r
+:101A30008093E2008091E20080618093E20042E0C6\r
+:101A400060E080E00E94690B8091F00088608093E4\r
+:101A5000F0000E94DD08FF91EF91BF91AF919F913F\r
+:101A60008F917F916F915F914F913F912F910F9047\r
+:101A70000FBE0F901F9018951F920F920FB60F92E6\r
+:101A800011242F933F934F935F936F937F938F9383\r
+:101A90009F93AF93BF93CF93DF93EF93FF93C09147\r
+:101AA000E900CF708091EC00D82FD17080FDD0E894\r
+:101AB0001092E9008091F000877F8093F000789485\r
+:101AC0000E94800D1092E9008091F0008860809360\r
+:101AD000F000CD2BCF70C093E900FF91EF91DF9123\r
+:101AE000CF91BF91AF919F918F917F916F915F91B6\r
+:101AF0004F913F912F910F900FBE0F901F9018950F\r
+:101B00001F93CF93DF93CDB7DEB7AA970FB6F894A4\r
+:101B1000DEBF0FBECDBFE6EEF1E088E08E0F909104\r
+:101B2000F10091938E13FBCF0E94FC088091E80096\r
+:101B300083FF1FC18091E6019091E701492F50E09A\r
+:101B40004A30510508F015C1FA01EA5AFF4F0C94CA\r
+:101B50003623803881F0823809F00BC18091EA0188\r
+:101B60008F708093E9008091EB0085FB882780F9D6\r
+:101B70001092E90006C08091E2019091E301911179\r
+:101B800082609091E800977F9093E8008093F10045\r
+:101B90001092F100C8C0282F2D7F09F0EAC08823D9\r
+:101BA00019F0823061F0E5C08091E801813009F0E0\r
+:101BB000E0C0933009F080E08093E3012BC0809176\r
+:101BC000E801811127C08091EA018F7009F4D1C02A\r
+:101BD0008093E9002091EB0020FF1CC0933021F49A\r
+:101BE0008091EB00806214C09091EB009061909323\r
+:101BF000EB0021E030E0A90102C0440F551F8A9597\r
+:101C0000E2F74093EA001092EA008091EB008860CE\r
+:101C10008093EB001092E9008091E800877F86C0F6\r
+:101C20008111A7C01091E8011F778091E3008078AF\r
+:101C3000812B8093E3008091E800877F8093E80008\r
+:101C40000E949E0B8091E80080FFFCCF8091E30012\r
+:101C500080688093E300111102C082E001C083E03C\r
+:101C60008093E50186C08058823008F082C0809160\r
+:101C7000E8019091E9018C3D53E0950779F583E007\r
+:101C80008A838AE289834FB7F894DE01139620E0B5\r
+:101C90003EE051E2E32FF0E050935700E49120FF43\r
+:101CA00003C0E295EF703F5FEF708E2F90E0EA3057\r
+:101CB00010F0C79601C0C0968D939D932F5F24317D\r
+:101CC00049F74FBF8091E800877F8093E8006AE280\r
+:101CD00070E0CE0101960E94A50A14C0AE014F5FCC\r
+:101CE0005F4F6091EA010E94EC09BC01892B09F465\r
+:101CF00040C09091E800977F9093E80089819A8195\r
+:101D00000E94080B8091E8008B778093E80031C037\r
+:101D1000803879F58091E800877F8093E800809192\r
+:101D2000E1018093F1008091E8008E778093E800D4\r
+:101D30000E949E0B1EC081111CC09091E801923040\r
+:101D4000C0F48091E800877F8093E8009093E101E0\r
+:101D50000E949E0B8091E101811106C08091E300F9\r
+:101D600087FD02C081E001C084E08093E5010E940C\r
+:101D7000E8088091E80083FF0AC08091E800877F2F\r
+:101D80008093E8008091EB0080628093EB00AA963C\r
+:101D90000FB6F894DEBF0FBECDBFDF91CF911F917C\r
+:101DA00008950895CF938091E5018823A1F0C09113\r
+:101DB000E900CF709091EC00892F817090FD80E850\r
+:101DC000C82B1092E9008091E80083FD0E94800DED\r
+:101DD000CF70C093E900CF910895909369018093EB\r
+:101DE00068010895E0916801F0916901309721F050\r
+:101DF0000190F081E02D099480E00895E091680160\r
+:101E0000F0916901309721F00280F381E02D09946F\r
+:101E10000895E0916801F0916901309721F0048004\r
+:101E2000F581E02D099408952091660130916701B4\r
+:101E30008217930771F09093670180936601E09198\r
+:101E40006801F0916901309721F00680F781E02D5B\r
+:101E500009940895209164013091650182179307D8\r
+:101E600071F09093650180936401E0916801F091B5\r
+:101E70006901309721F00084F185E02D09940895DF\r
+:101E800008950C94400F0E94131B0E94C1040C94EF\r
+:101E9000D91BCF92DF92EF92FF920F931F93CF93B4\r
+:101EA000DF93CDB7DEB72B970FB6F894DEBF0FBE2A\r
+:101EB000CDBF0E94DE048BE6C82E81E0D82E00E064\r
+:101EC00010E0E02E802F0E94D005F60141916F01B5\r
+:101ED000F42EF826B1F40F5F1F4F0E30110589F76D\r
+:101EE0008FEF89838A831B820E941C1B8160782F5D\r
+:101EF0009D838C8349815A816B818D810E94EC0F77\r
+:101F000040C09091CC0191FF04C08B870E94D60500\r
+:101F10008B8520E030E04F2D50E0922FBA01022E49\r
+:101F200002C0759567950A94E2F760FF24C02E837E\r
+:101F3000EF8221E030E0690102C0CC0CDD1C9A95F3\r
+:101F4000E2F790E08C219D21892B09F420E028877D\r
+:101F50000E941C1B8160782F9A8789874E815F8140\r
+:101F600068858A850E94EC0FF801E559FE4F808153\r
+:101F7000C826C08206C02F5F3F4F2630310569F664\r
+:101F8000AACF0E94C01E10916A010E94F20E18177B\r
+:101F9000A1F00E94F20E80936A012B960FB6F8947E\r
+:101FA000DEBF0FBECDBFDF91CF911F910F91FF908C\r
+:101FB000EF90DF90CF900C94EC072B960FB6F8942F\r
+:101FC000DEBF0FBECDBFDF91CF911F910F91FF906C\r
+:101FD000EF90DF90CF900895CF93DF93CDB7DEB72A\r
+:101FE0002B970FB6F894DEBF0FBECDBF4F83588737\r
+:101FF00069877A878B87DE01119686E0FD01119251\r
+:102000008A95E9F785E0FE01379601900D928A9551\r
+:10201000E1F749815A816B817C818D819E810E948B\r
+:1020200002172B960FB6F894DEBF0FBECDBFDF911F\r
+:10203000CF910895CF93882309F4C2C0C82F823866\r
+:1020400059F40E94F20E81FDBBC089E30E949E19E3\r
+:102050000E945B1A89E30CC0833879F40E94F20E67\r
+:1020600080FDAEC083E50E949E190E945B1A83E545\r
+:102070000E94E019CF910C945B1A843859F40E94A5\r
+:10208000F20E82FD9DC087E40E949E190E945B1A99\r
+:1020900087E4EECF8CEF8C0F813A48F48C2F0E94AE\r
+:1020A000012181118DC08C2F0E949E19E3CF80E207\r
+:1020B0008C0F883048F4C77081E001C0880FCA9542\r
+:1020C000EAF70E94241AD6CF8BE58C0F833078F480\r
+:1020D000C53A29F0C63A31F083E890E005C081E8BE\r
+:1020E00090E002C082E890E0CF910C94140F88E554\r
+:1020F0008C0F833108F064C0C83A39F1C93A41F114\r
+:10210000CA3A49F1CB3A51F1CC3A59F1CD3A61F1A1\r
+:10211000C03B69F1CE3A71F1CF3A79F1C13B81F11F\r
+:10212000C23B89F1C33B91F1C43B99F1C53BA1F19D\r
+:10213000C63BA9F1C73BB1F1C83BB9F1C93BC1F1FD\r
+:10214000CA3BC9F180E090E038C082EE90E035C033\r
+:1021500089EE90E032C08AEE90E02FC085EB90E0EF\r
+:102160002CC086EB90E029C087EB90E026C08CEC79\r
+:1021700090E023C08DEC90E020C083E891E01DC08A\r
+:102180008AE891E01AC082E991E017C084E991E001\r
+:1021900014C081E292E011C083E292E00EC084E2BA\r
+:1021A00092E00BC085E292E008C086E292E005C0B2\r
+:1021B00087E292E002C08AE292E0CF910C942A0F6B\r
+:1021C000CF910895882309F44BC0823859F40E94B6\r
+:1021D000F20E81FF45C089E30E949E190E945B1A9E\r
+:1021E00089E30CC0833871F40E94F20E80FF38C07E\r
+:1021F00083E50E949E190E945B1A83E50E94E01904\r
+:102200000C945B1A843859F40E94F20E82FF28C0A5\r
+:1022100087E40E949E190E945B1A87E4EFCF9CEF2F\r
+:10222000980F913A58F390E2980F983050F48770D5\r
+:1022300091E001C0990F8A95EAF7892F0E942A1A26\r
+:10224000DFCF9BE5980F933020F480E090E00C9472\r
+:10225000140F885A833120F480E090E00C942A0F08\r
+:102260000895882321F00E94241A0C945B1A089583\r
+:10227000882321F00E942A1A0C945B1A0895BF92B9\r
+:10228000CF92DF92EF92FF920F931F93CF93DF9342\r
+:1022900000D000D000D0CDB7DEB725E0FC01DE01D4\r
+:1022A000119601900D922A95E1F7FC014081318150\r
+:1022B0000281258122952F7063817481672B09F437\r
+:1022C000E5C23F3F19F44F3F09F4E0C27C01498366\r
+:1022D0003A8389819A812E830E945D19182FB92E25\r
+:1022E0000E945C190E942318EB2DE295EF70F0E03C\r
+:1022F000E05AFF4F2E810C9436238B2D807F9B2D2F\r
+:102300009F70F92E882319F0F29480EFF8220023B1\r
+:1023100049F0FF2009F467C28F2D0E94341A0E94F1\r
+:102320005B1A61C2812F0E94E210FF2009F4AEC245\r
+:102330008F2D0E943A1A26960FB6F894DEBF0FBE74\r
+:10234000CDBFDF91CF911F910F91FF90EF90DF9064\r
+:10235000CF90BF900C945B1A3B2D307F8B2D8F70EC\r
+:10236000303211F08295807F112319F0113021F164\r
+:102370002CC00023B9F0222309F4A0C1213009F0B8\r
+:102380009DC126960FB6F894DEBF0FBECDBFDF917C\r
+:10239000CF911F910F91FF90EF90DF90CF90BF9062\r
+:1023A0000C94441A222319F0213009F46FC28E8351\r
+:1023B0000E94471A8E8196C1002321F0223008F036\r
+:1023C00065C27CC1211162C28DC1002321F022238C\r
+:1023D00009F474C108C2222309F484C119C22B2D47\r
+:1023E00026952695237030E02115310521F0213006\r
+:1023F0003105D1F04BC2002321F0812F9B2D93702A\r
+:1024000002C080E090E026960FB6F894DEBF0FBEC3\r
+:10241000CDBFDF91CF911F910F91FF90EF90DF9093\r
+:10242000CF90BF900C94140F002321F0812F9B2D8F\r
+:10243000937002C080E090E026960FB6F894DEBF5D\r
+:102440000FBECDBFDF91CF911F910F91FF90EF9005\r
+:10245000DF90CF90BF900C942A0F812F002319F0AA\r
+:102460000E94C81D02C00E94301E26960FB6F89426\r
+:10247000DEBF0FBECDBFDF91CF911F910F91FF90B7\r
+:10248000EF90DF90CF90BF900C94B51E8B2D837092\r
+:1024900009F07BC00111FAC1812F82958695877062\r
+:1024A000880F880F912F9F70C92ED12CE12CF12C11\r
+:1024B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C5\r
+:1024C00014FF12C04FE050E060E070E004C0440F21\r
+:1024D000551F661F771F8A95D2F7CB01BA01609509\r
+:1024E00070958095909503C060E070E0CB012B2D36\r
+:1024F000269526952370422F50E042305105D9F0A1\r
+:102500004330510569F16C297D298E299F2941307D\r
+:10251000510551F126960FB6F894DEBF0FBECDBF20\r
+:10252000DF91CF911F910F91FF90EF90DF90CF90AF\r
+:10253000BF900C944A186C297D298E299F292696D4\r
+:102540000FB6F894DEBF0FBECDBFDF91CF911F91C4\r
+:102550000F91FF90EF90DF90CF90BF900C94661892\r
+:102560000E944A18C701B60126960FB6F894DEBF3E\r
+:102570000FBECDBFDF91CF911F910F91FF90EF90D4\r
+:10258000DF90CF90BF900C942E18002319F08B2D64\r
+:10259000817001C08695882309F478C1812F8295C6\r
+:1025A00086958770880F880F912F9F70C92ED12C28\r
+:1025B000E12CF12C082E04C0CC0CDD1CEE1CFF1C01\r
+:1025C0000A94D2F714FF12C04FE050E060E070E0D0\r
+:1025D00004C0440F551F661F771F8A95D2F7CB01A1\r
+:1025E000BA01609570958095909503C060E070E0A9\r
+:1025F000CB012B2D269526952370422F50E042309B\r
+:102600005105D9F04330510569F16C297D298E2996\r
+:102610009F294130510551F126960FB6F894DEBF3F\r
+:102620000FBECDBFDF91CF911F910F91FF90EF9023\r
+:10263000DF90CF90BF900C9424196C297D298E29AE\r
+:102640009F2926960FB6F894DEBF0FBECDBFDF914F\r
+:10265000CF911F910F91FF90EF90DF90CF90BF909F\r
+:102660000C9440190E942419C701B60126960FB692\r
+:10267000F894DEBF0FBECDBFDF91CF911F910F91B8\r
+:10268000FF90EF90DF90CF90BF900C940819103F0F\r
+:10269000D1F118F4103E50F4A1C0123F09F463C008\r
+:1026A00008F44CC0133F09F473C098C01F708B2D01\r
+:1026B0008F710023A1F00E94A118812F26960FB6DA\r
+:1026C000F894DEBF0FBECDBFDF91CF911F910F9168\r
+:1026D000FF90EF90DF90CF90BF900C9431110E944B\r
+:1026E000C218812F26960FB6F894DEBF0FBECDBF5D\r
+:1026F000DF91CF911F910F91FF90EF90DF90CF90DE\r
+:10270000BF900C9438110023A9F02111BFC08B2D6C\r
+:102710008F7126960FB6F894DEBF0FBECDBFDF9146\r
+:10272000CF911F910F91FF90EF90DF90CF90BF90CE\r
+:102730000C94E718223008F0A9C0E9CF0023A9F0D3\r
+:102740008B2D8F7126960FB6F894DEBF0FBECDBFCE\r
+:10275000DF91CF911F910F91FF90EF90DF90CF907D\r
+:10276000BF900C94A118002359F38B2D8F712696DE\r
+:102770000FB6F894DEBF0FBECDBFDF91CF911F9192\r
+:102780000F91FF90EF90DF90CF90BF900C94C21804\r
+:10279000002399F08B2D8F7126960FB6F894DEBF2B\r
+:1027A0000FBECDBFDF91CF911F910F91FF90EF90A2\r
+:1027B000DF90CF90BF900C948C1826960FB6F894AB\r
+:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064\r
+:1027D000EF90DF90CF90BF900C9482180023A9F067\r
+:1027E000222309F4ADCF812F26960FB6F894DEBFD1\r
+:1027F0000FBECDBFDF91CF911F910F91FF90EF9052\r
+:10280000DF90CF90BF900C941A10222309F4ADCF23\r
+:10281000812F26960FB6F894DEBF0FBECDBFDF9195\r
+:10282000CF911F910F91FF90EF90DF90CF90BF90CD\r
+:102830000C94E2104B2D4F70612FC7010E9453037F\r
+:1028400026960FB6F894DEBF0FBECDBFDF91CF91B5\r
+:102850001F910F91FF90EF90DF90CF90BF900C945D\r
+:10286000A6174B2D4F70612FC70126960FB6F8940F\r
+:10287000DEBF0FBECDBFDF91CF911F910F91FF90B3\r
+:10288000EF90DF90CF90BF900C94960626960FB6EF\r
+:10289000F894DEBF0FBECDBFDF91CF911F910F9196\r
+:1028A000FF90EF90DF90CF90BF9008950E94411A63\r
+:1028B0000E94161A0E945B1A0E94661F0E94B51E93\r
+:1028C00080E090E00E94140F80E090E00C942A0FCA\r
+:1028D0000E94311A0C9456140E945D19292F2295DA\r
+:1028E0002F7030E02C3031054CF42A3031056CF477\r
+:1028F000225031092230310588F407C02C303105CF\r
+:1029000049F02F30310531F009C0803E48F0803F5A\r
+:1029100029F406C093FB882780F9089580E0089584\r
+:1029200081E00895CF93DF9300D000D01F92CDB700\r
+:10293000DEB70F900F900F900F900F90DF91CF9117\r
+:102940000895CF93DF9300D000D000D0CDB7DEB78D\r
+:1029500026960FB6F894DEBF0FBECDBFDF91CF91A4\r
+:1029600008951F93CF93DF93C091790116E0809172\r
+:102970007A01C81799F0D0E01C9FF0011D9FF00D5F\r
+:102980001124E558FE4F4081518162817381848119\r
+:1029900095810E94A1142196C770E9CFDF91CF9154\r
+:1029A0001F9108954091AB015091AC016091AD0130\r
+:1029B0007091AE018091AF019091B0010C94A1147F\r
+:1029C0008091B00182958F7009F054C08091AD0163\r
+:1029D000882309F44FC080917901A0917A01609118\r
+:1029E000AB017091AC014091AE015091AF01B6E0E6\r
+:1029F0008A1709F43FC090E041155105C1F17F3FAE\r
+:102A000011F46F3FA1F1B89FF001B99FF00D1124AF\r
+:102A1000E558FE4F218172132AC02081621327C01E\r
+:102A20002281211124C0238134812417350710F419\r
+:102A300021503109241B350B283C3105C0F420916D\r
+:102A4000B0012F7020612093B00126E0289FF00193\r
+:102A5000299FF00D1124E058FE4F80818F70806116\r
+:102A600080838BEA91E00E943F110C94B11401968F\r
+:102A70008770BECF0895CF92DF92EF92FF920F93AF\r
+:102A80001F93CF93DF93CDB7DEB762970FB6F8945D\r
+:102A9000DEBF0FBECDBF8C0185E0F801DE011D96C3\r
+:102AA00001900D928A95E1F7D8014C9111965C91B5\r
+:102AB000119712966C9112971396CD90DC90149703\r
+:102AC0003091AB017091AC018091AE019091AF015A\r
+:102AD000009709F46BC17F3F19F43F3F09F466C1C9\r
+:102AE000E090AD01EE2009F4C0C02091B001C816FD\r
+:102AF000D90628F0F601E81BF90BCF0104C0809538\r
+:102B000090958C0D9D1DFF24F394883C910578F0E1\r
+:102B1000F12C207F09F0C6C07C2DD98AC88A89890A\r
+:102B20000E9492148BEA91E00E943F11B1C0822F63\r
+:102B3000807F09F046C0751314C0341312C06111B0\r
+:102B400010C02F7020612093B0010E94D2148BEA34\r
+:102B500091E00E943F118091B001D80115968C93AD\r
+:102B60002EC0CD2819F15F3F11F44F3FF9F0F62E3A\r
+:102B700061111CC08091790120917A0136E08217A1\r
+:102B800009F45AC090E0389FF001399FF00D1124EC\r
+:102B9000E558FE4F7181571306C07081471303C07B\r
+:102BA0007281711103C001968770E9CFF62E6623FA\r
+:102BB00009F418C18091B00181608093B001F12CBB\r
+:102BC00011C1751308C0341306C0611104C080918F\r
+:102BD000B001D801C3C04D875E878D859E856A8B05\r
+:102BE0000E946C146A898823E1F16623D1F1209157\r
+:102BF000B001822F82958F7090E0029774F08091DF\r
+:102C0000AB019091AC0198878F831986DB86CA86C9\r
+:102C10002C87CE0107960E943F1186E0F801ABEAAF\r
+:102C2000B1E001900D928A95E1F70E94E0140E94B4\r
+:102C3000D214FF24F394D6C04D875E878D859E8580\r
+:102C40000E945D19292F22952F7030E02230310526\r
+:102C50000CF0BCC09F7009F0B6C0805E883008F4EC\r
+:102C6000C1C0C8010E943F11E4CFC816D90608F4BC\r
+:102C700053C0F601E81BF90BCF01883C910508F41D\r
+:102C800050C0F12C7C2DD98AC88A89890E9492145F\r
+:102C9000EBEAF1E086E0DF011D928A95E9F70E94F8\r
+:102CA000D214A0C0751314C0341312C0611110C027\r
+:102CB0008091B001F8018583C8010E943F1186E030\r
+:102CC000EBEAF1E0DF011D928A95E9F7FE2C8AC05C\r
+:102CD0004D875E878D859E856A8B0E946C146A89FC\r
+:102CE000882309F4BECF662309F4BBCF2091B0013D\r
+:102CF000822F82958F7090E002970CF48ECF809196\r
+:102D0000AB019091AC019A8389831B82DD82CC82D6\r
+:102D10002E83CE0101967FCF809590958C0D9D1DC1\r
+:102D2000ACCFF62E662309F49CCF75132EC0341356\r
+:102D30002CC02091B00120FD1FC0822F82958F7082\r
+:102D4000D9F0D80115962C9315978F3049F08F5FE5\r
+:102D5000982F9295907F822F8F70892B15968C9348\r
+:102D6000C8010E943F1186E0F801ABEAB1E0019092\r
+:102D70000D928A95E1F793CF86E0F801ABEAB1E0D6\r
+:102D800001900D928A95E1F72DC04D875E878D8564\r
+:102D90009E850E946C14811140CF8091B0018160AA\r
+:102DA0008093B001C8010E943F111CC0662309F442\r
+:102DB00058CF4D875E878D859E850E946C14882331\r
+:102DC00009F44FCF2ACF811148CF0CC024303105F0\r
+:102DD0000CF047CF9F7009F440CFF8019581907FA8\r
+:102DE00009F03BCF8F2D62960FB6F894DEBF0FBE71\r
+:102DF000CDBFDF91CF911F910F91FF90EF90DF90AA\r
+:102E0000CF9008951F93CF93DF93CDB7DEB72C9764\r
+:102E10000FB6F894DEBF0FBECDBF4F8358876987CA\r
+:102E20007A878B879C87CE0107960E943B15882363\r
+:102E300069F08F8198852A853B85232BF1F19F3F8F\r
+:102E400009F063C08F3F09F060C037C086E0FE0123\r
+:102E50003796DE01119601900D928A95E1F76F8108\r
+:102E60007885EA85FB85309741F17F3F11F46F3F0C\r
+:102E700021F120917A0130E0C901019687709927EC\r
+:102E80004091790150E08417950709F447C06983A0\r
+:102E90007A83FD83EC8396E0929FD001939FB00DDF\r
+:102EA0001124A558BE4FFE01319601900D929A95BE\r
+:102EB000E1F780937A010E94B11416E080917901C4\r
+:102EC00090917A018917C1F1189FC001112485588A\r
+:102ED0009E4F0E943B15882379F1E09179011E9F56\r
+:102EE000F0011124E558FE4F4081518162817381C8\r
+:102EF000848195810E94A1148091790190E00196CE\r
+:102F00008770992780937901D9CF4F81588569853A\r
+:102F10007A858B859C850E94A114CFCF0E9468146E\r
+:102F200010927A0110927901EBEAF1E086E0DF017C\r
+:102F30001D928A95E9F7C1CF2C960FB6F894DEBFA3\r
+:102F40000FBECDBFDF91CF911F910895EF92FF92F9\r
+:102F50000F931F93CF93DF938C01892B09F46CC0DF\r
+:102F6000F12CEE24E394E8012196F8018491843752\r
+:102F700040F4843008F051C0813081F0823019F182\r
+:102F80005BC0853709F444C0A8F19CE7980F9037DF\r
+:102F900008F052C08F770E94E21041C00E5F1F4FB1\r
+:102FA000FE01C49180E28C0F883048F4C7708E2DEA\r
+:102FB00001C0880FCA95EAF70E94341A14C08C2FFA\r
+:102FC0000E941A102DC00E5F1F4FFE01C49180E2B7\r
+:102FD0008C0F883058F4C7708E2D01C0880FCA95A9\r
+:102FE000EAF70E943A1A0E945B1A1AC08C2F0E94BC\r
+:102FF000E21016C00E5F1F4FFE01C491CC2381F07A\r
+:103000008FE99FE00197F1F700C00000C150F6CFB3\r
+:103010000E5F1F4FFE01F49003C00E941A108E0134\r
+:103020008F2D882309F49FCFEFE9FFE03197F1F767\r
+:1030300000C000008150F5CFDF91CF911F910F911B\r
+:10304000FF90EF90089508956093B5017093B601D5\r
+:103050008093B7019093B8010C9456140F931F936B\r
+:103060000091B5011091B6012091B7013091B801DE\r
+:10307000DC01CB01802B912BA22BB32B8093B501CC\r
+:103080009093B601A093B701B093B8011F910F912F\r
+:103090000C9456140F931F930091B5011091B60133\r
+:1030A0002091B7013091B801DC01CB01802391233D\r
+:1030B000A223B3238093B5019093B601A093B701E7\r
+:1030C000B093B8011F910F910C9456140F931F9356\r
+:1030D0000091B5011091B6012091B7013091B8016E\r
+:1030E000DC01CB0180279127A227B3278093B5016C\r
+:1030F0009093B601A093B701B093B8011F910F91BF\r
+:103100000C9456141092B1011092B2011092B301B6\r
+:103110001092B4010C94561441E050E060E070E06D\r
+:1031200004C0440F551F661F771F8A95D2F740933E\r
+:10313000B1015093B2016093B3017093B4010C9448\r
+:10314000561441E050E060E070E004C0440F551FA9\r
+:10315000661F771F8A95D2F78091B1019091B201D5\r
+:10316000A091B301B091B401482B592B6A2B7B2B52\r
+:103170004093B1015093B2016093B3017093B401D5\r
+:103180000C94561441E050E060E070E004C0440F3D\r
+:10319000551F661F771F8A95D2F740955095609509\r
+:1031A00070958091B1019091B201A091B301B0915D\r
+:1031B000B401482359236A237B234093B1015093E0\r
+:1031C000B2016093B3017093B4010C94561441E0C2\r
+:1031D00050E060E070E004C0440F551F661F771F89\r
+:1031E0008A95D2F78091B1019091B201A091B3017B\r
+:1031F000B091B401482759276A277B274093B10132\r
+:103200005093B2016093B3017093B4010C945614BF\r
+:103210000F931F930091B1011091B2012091B3015E\r
+:103220003091B401DC01CB01802B912BA22BB32B6D\r
+:103230008093B1019093B201A093B301B093B40114\r
+:103240001F910F910C9456140F931F930091B1018D\r
+:103250001091B2012091B3013091B401DC01CB0196\r
+:1032600080239123A223B3238093B1019093B201D1\r
+:10327000A093B301B093B4011F910F910C94561415\r
+:103280000F931F930091B1011091B2012091B301EE\r
+:103290003091B401DC01CB0180279127A227B3270D\r
+:1032A0008093B1019093B201A093B301B093B401A4\r
+:1032B0001F910F910C9456140895CF92DF92EF92C4\r
+:1032C000FF920F931F93CF93DF938C01C090B501B2\r
+:1032D000D090B601E090B701F090B8014091B101F3\r
+:1032E0005091B2016091B3017091B401C42AD52A02\r
+:1032F000E62AF72ACFE1D0E0D701C6010C2E04C0A0\r
+:10330000B695A795979587950A94D2F780FF07C041\r
+:10331000B8018C2F0E94B9068130910531F42197B4\r
+:1033200058F7B80180E00E94B906DF91CF911F9154\r
+:103330000F91FF90EF90DF90CF90089590910C0146\r
+:10334000992321F090910D01911109C020910E0156\r
+:1033500030910F01F90132969FEF40E01FC0982F86\r
+:103360009695969596959F3050F5E0910E01F091C7\r
+:103370000F01E90FF11D877021E030E0A90102C0C3\r
+:10338000440F551F8A95E2F7CA019181892B8183E9\r
+:1033900008959F3F39F04F5F4E3041F051915813DF\r
+:1033A000F8CF0DC05111F7CF942FF5CF9F3F39F0D3\r
+:1033B000F901E90FF11D97FDFA95828308950895AB\r
+:1033C00090910C01992321F090910D01911109C068\r
+:1033D00020910E0130910F01F9013296205F3F4F8D\r
+:1033E0001FC0982F9695969596959F30F0F4E09192\r
+:1033F0000E01F0910F01E90FF11D877021E030E01F\r
+:10340000A90102C0440F551F8A95E2F7CA018095B1\r
+:1034100091818923818308953196E217F30729F07A\r
+:1034200090819813F9CF1082F7CF089581E090E052\r
+:10343000E0910E01F0910F01E80FF91F1082019643\r
+:1034400080319105A9F708959091CB01892B809344\r
+:10345000CB01089580959091CB0189238093CB0176\r
+:1034600008951092CB0108959091CA01892B809301\r
+:10347000CA01089580959091CA0189238093CA0159\r
+:1034800008951092CA0108958093B9010895109289\r
+:10349000B901089580910E0190910F01FC013196C0\r
+:1034A0009C01205F3F4F80E0919191118F5FE21767\r
+:1034B000F307D1F70895E0910E01F0910F0180918B\r
+:1034C000CB018083E0910E01F0910F0190818091FA\r
+:1034D000CA01892B80838091B901882361F0E09132\r
+:1034E0000E01F0910F019081892B80830E944A1A6E\r
+:1034F00081111092B90180910E0190910F010C94ED\r
+:10350000FE0ECF92DF92EF92FF926C01EE24FF2429\r
+:10351000C114D104E104F10421F0C701B60120E196\r
+:1035200001C020E0C72ED82EE92EFF24C114D104FB\r
+:10353000E104F10419F0285FC701B6016B017C01B9\r
+:1035400054E0F694E794D794C7945A95D1F7C114F0\r
+:10355000D104E104F10419F02C5FC701B6016B013D\r
+:103560007C0142E0F694E794D794C7944A95D1F74A\r
+:10357000C114D104E104F10419F02E5FC701B601B2\r
+:10358000DC01CB01B695A79597958795892B8A2B5A\r
+:103590008B2B09F02F5F822FFF90EF90DF90CF9061\r
+:1035A00008958091E501843009F11092CD0120E465\r
+:1035B00088E190E00FB6F894A895809360000FBE64\r
+:1035C0002093600083B7817F846083BF83B781606D\r
+:1035D00083BF7894889583B78E7F83BF88E10FB6C9\r
+:1035E000F89480936000109260000FBE08950895D3\r
+:1035F0000895CF930E94F71A0E94DE040E94F81AE1\r
+:10360000C0E08C2F0E94D005811104C0CF5FCE3066\r
+:10361000C1F701C081E0CF9108950E9468140E9413\r
+:10362000F20E0C94EC0782E084BD93E095BD9AEF16\r
+:1036300097BD80936E0008952FB7F8948091CE01C6\r
+:103640009091CF01A091D001B091D1012FBF0895E9\r
+:10365000CF92DF92EF92FF920F931F932FB7F894C0\r
+:103660004091CE015091CF016091D0017091D10174\r
+:103670002FBF6A017B01EE24FF248C0120E030E0A3\r
+:10368000C016D106E206F30610F4415051099A0122\r
+:10369000281B390BC9011F910F91FF90EF90DF900C\r
+:1036A000CF9008951F920F920FB60F9211248F930F\r
+:1036B0009F93AF93BF938091CE019091CF01A09142\r
+:1036C000D001B091D1010196A11DB11D8093CE0111\r
+:1036D0009093CF01A093D001B093D101BF91AF914E\r
+:1036E0009F918F910F900FBE0F901F9018950E9481\r
+:1036F000EF0BF8942FEF87EA91E62150804090403D\r
+:10370000E1F700C0000087E090EBDC018093EE0160\r
+:103710009093EF01A093F001B093F1019CE088E158\r
+:103720000FB6F894A895809360000FBE9093600048\r
+:10373000FFCFEF92FF920F931F93CF93DF93D82F7A\r
+:10374000C0E08C2F0E94D00500E010E0E82EF12CA4\r
+:10375000C701002E02C0959587950A94E2F780FD77\r
+:1037600006C00F5F1F4F0630110591F709C0602F8B\r
+:103770007C2F80E00E949706D813F3CF81E004C02D\r
+:10378000CF5FCE30F1F680E0DF91CF911F910F91A6\r
+:10379000FF90EF900895CF93C82F8CE20E94991B61\r
+:1037A000882321F08C2FCF910C94991B80E0CF912E\r
+:1037B0000895CF930E94201D811102C00E94061D12\r
+:1037C000C5E6C15049F00E94DE048FE39CE90197F1\r
+:1037D000F1F700C00000F5CF89E20E94CB1B8111F8\r
+:1037E00013C18AE20E94CB1B81110E94061D85E055\r
+:1037F0000E94CB1B81110E94771B0E942B1D80937E\r
+:10380000CC0187E00E94CB1B8823A9F18BE10E94A9\r
+:10381000CB1B882351F08091CC0181FB222720F91A\r
+:1038200091E0922790FB81F90EC08EE00E94CB1BA5\r
+:10383000882361F08091CC0182FB222720F991E05E\r
+:10384000922790FB82F98093CC0115C080E10E9401\r
+:10385000CB1B9091CC01882341F093FB222720F9C8\r
+:1038600081E0822780FB93F904C0892F809580FB3B\r
+:1038700090F99093CC018091CC010E942F1D0E9461\r
+:103880003D1D8093DF0180EE0E94CB1B882341F019\r
+:103890008091DF01982F909590FB80F98093DF0154\r
+:1038A00089E30E94CB1B882359F08091DF0181FBC3\r
+:1038B000222720F991E0922790FB81F98093DF0184\r
+:1038C00082EE0E94CB1B882359F08091DF0182FB9E\r
+:1038D000222720F991E0922790FB82F98093DF0163\r
+:1038E00086EE0E94CB1B882359F08091DF0183FB79\r
+:1038F000222720F991E0922790FB83F98093DF0142\r
+:1039000083EE0E94CB1B882359F08091DF0184FB5A\r
+:10391000222720F991E0922790FB84F98093DF0120\r
+:1039200085E30E94CB1B882359F08091DF0185FB42\r
+:10393000222720F991E0922790FB85F98093DF01FF\r
+:1039400081E30E94CB1B882359F08091DF0186FB25\r
+:10395000222720F991E0922790FB86F98093DF01DE\r
+:1039600081E10E94CB1B882359F08091DF0187FB06\r
+:10397000222720F991E0922790FB87F98093DF01BD\r
+:103980008091DF010E94411D8091DF0187FB882724\r
+:1039900080F980930D0187E20E94CB1BC82F8EE136\r
+:1039A0000E94CB1B8111C2608FE10E94CB1B811151\r
+:1039B000C46080E20E94CB1B8111C86081E20E943A\r
+:1039C000CB1B8111C06182E20E94CB1B8111C062BE\r
+:1039D00083E20E94CB1B8111C06484E20E94CB1B56\r
+:1039E000882311F0C06802C0CC2329F08C2F0E94DC\r
+:1039F000381D6C2F03C00E94341D682F70E080E0DA\r
+:103A000090E0CF910C942418CF9108956DEE7EEF45\r
+:103A100080E090E00E946C2360E082E090E00E94F1\r
+:103A20005E2360E083E090E00E945E2360E084E03B\r
+:103A300090E00E945E2360E085E090E00C945E23BD\r
+:103A400080E090E00E94582321E08D3E9E4F09F0D7\r
+:103A500020E0822F089582E090E00C945023682F9C\r
+:103A600082E090E00C945E2383E090E00C9450237D\r
+:103A7000682F83E090E00C945E2384E090E00C9447\r
+:103A80005023682F84E090E00C945E238091D40151\r
+:103A900080FF0BC06091130185E0689FB001112485\r
+:103AA00075956795759567952BC081FF09C06091E5\r
+:103AB000130185E0689FB00111247595679520C0BA\r
+:103AC00082FF07C06091130185E0689FB001112457\r
+:103AD00017C09091D5019923D1F0609112019617EA\r
+:103AE00088F72091130185E0289F90011124929F6F\r
+:103AF000A001939F500D112470E0CA010E9422235F\r
+:103B00006038710540F46115710539F002C065E057\r
+:103B100070E0862F08958FE7089581E008958091E1\r
+:103B2000D40180FF08C06091110170E07595679520\r
+:103B30007595679521C081FF06C06091110170E005\r
+:103B40007595679519C082FF04C06091110170E0FE\r
+:103B500010C09091D5019923C1F060911001961782\r
+:103B6000A0F780911101899FC001112470E00E948B\r
+:103B700022236038710528F46115710521F0862F24\r
+:103B800008958FE7089581E0089561E070E0F4CF33\r
+:103B9000803F21F40E94461D819504C0813F29F495\r
+:103BA0000E94461D8093D8010895823F21F40E940F\r
+:103BB000461D819504C0833F29F40E94461D8093D1\r
+:103BC000D7010895893F19F40E948F1D05C08A3FCF\r
+:103BD00031F40E948F1D81958093D90108958B3F08\r
+:103BE00021F40E948F1D819504C08C3F29F40E940E\r
+:103BF0008F1D8093DA010895843F21F48091D601CE\r
+:103C0000816017C0853F21F48091D601826011C088\r
+:103C1000863F21F48091D60184600BC0873F21F458\r
+:103C20008091D601886005C0883F31F48091D6012B\r
+:103C300080618093D60108958D3F21F48091D40155\r
+:103C400081600BC08E3F21F48091D401826005C059\r
+:103C50008F3F29F48091D40184608093D40108952A\r
+:103C6000803F39F48091D80187FF6CC01092D80151\r
+:103C700069C0813F29F48091D8011816BCF362C055\r
+:103C80009091D701823F29F497FF5CC01092D70131\r
+:103C900059C0833F19F41916CCF354C0893F41F43D\r
+:103CA0008091D90118160CF04DC01092D9014AC06C\r
+:103CB0008A3F29F48091D90187FF44C0F6CF8B3F1A\r
+:103CC00039F48091DA0187FF3DC01092DA013AC0E1\r
+:103CD0008C3F29F48091DA011816BCF333C0843F7D\r
+:103CE00021F48091D6018E7F17C0853F21F4809109\r
+:103CF000D6018D7F11C0863F21F48091D6018B7F44\r
+:103D00000BC0873F21F48091D601877F05C0883F93\r
+:103D100031F48091D6018F7E8093D60113C08D3F00\r
+:103D200021F48091D4018E7F0BC08E3F21F48091CD\r
+:103D3000D4018D7F05C08F3F29F48091D4018B7F02\r
+:103D40008093D4018091D70181110EC08091D80158\r
+:103D500081110AC08091D901811106C08091DA01D8\r
+:103D6000811102C01092D501089586ED91E00E9464\r
+:103D7000090F0E941C1B9093D3018093D2010895D8\r
+:103D80001F93CF93DF938091D2019091D3010E9432\r
+:103D9000281BAC019091D501992321F020911401A9\r
+:103DA00030E006C0209115018AE0289F900111247F\r
+:103DB0004217530708F486C08091D701C091D801FB\r
+:103DC000D091D9011091DA01811107C0C11176C0DB\r
+:103DD000D11174C0111172C075C09F3F19F09F5F5F\r
+:103DE0009093D501181624F40E94461D8093D701A4\r
+:103DF0008091D70187FF05C00E94461D8195809361\r
+:103E0000D7011C1624F40E94461D8093D80180918E\r
+:103E1000D80187FF05C00E94461D81958093D80177\r
+:103E20006091D701662339F1C091D801CC2319F1F3\r
+:103E3000772767FD7095872F972F0E94332223E302\r
+:103E400033E343E35FE30E9497220E9400226093E2\r
+:103E5000D7016C2F772767FD7095872F972F0E94CA\r
+:103E6000332223E333E343E35FE30E9497220E947C\r
+:103E700000226093D8011D1624F40E948F1D8093A8\r
+:103E8000D9018091D90187FF05C00E948F1D8195BE\r
+:103E90008093D901111624F40E948F1D8093DA01BA\r
+:103EA0008091DA0187FF05C00E948F1D8195809364\r
+:103EB000DA01DF91CF911F910C94B51E9F3F09F05D\r
+:103EC0008ECF96CFDF91CF911F910895E6EDF1E06F\r
+:103ED00085E0DF011D928A95E9F71092D5011092D5\r
+:103EE000D4010895833081F128F4813059F0823073\r
+:103EF000D1F00895853009F449C0B8F1863009F44D\r
+:103F000056C0089580911501262F30E0280F311DED\r
+:103F10002F3F310524F4680F6093150108958FEF4A\r
+:103F200080931501089580911401262F30E0280F09\r
+:103F3000311D2F3F310524F4680F6093140108955B\r
+:103F40008FEF80931401089580911301262F30E0A4\r
+:103F5000280F311D2F3F310524F4680F60931301A2\r
+:103F600008958FEF80931301089580911201262FF9\r
+:103F700030E0280F311D2F3F310524F4680F609386\r
+:103F8000120108958FEF809312010895809111011D\r
+:103F9000262F30E0280F311D2F3F310524F4680F04\r
+:103FA0006093110108958FEF80931101089580911E\r
+:103FB0001001262F30E0280F311D2F3F310524F44A\r
+:103FC000680F6093100108958FEF8093100108959A\r
+:103FD000833011F128F4813049F0823091F0089556\r
+:103FE000853081F120F18630C1F10895809115016D\r
+:103FF000681720F4861B809315010895109215010F\r
+:10400000089580911401681720F4861B8093140191\r
+:10401000089510921401089580911301681720F4F7\r
+:10402000861B8093130108951092130108958091C7\r
+:104030001201681720F4861B8093120108951092D4\r
+:104040001201089580911101681720F4861B809356\r
+:1040500011010895109211010895809110016817BF\r
+:1040600020F4861B8093100108951092100108958A\r
+:104070000F931F938D3109F46BC008F03FC08E3051\r
+:1040800009F47DC0C0F4873009F46EC068F486304E\r
+:1040900009F0AFC08091CC01817F8E7F8093CC01ED\r
+:1040A00081E08093DC01A6C0883009F458C08B30D1\r
+:1040B00009F49BC09EC0863109F497C078F4803122\r
+:1040C00009F470C0813109F094C00E946814909185\r
+:1040D0000D0181E0892780930D0187C0893109F4A2\r
+:1040E00084C08B3109F085C08091CC0181FB2227EF\r
+:1040F00020F991E0922790FB81F94AC0853309F4B9\r
+:104100005BC048F4873209F457C008F45AC08932BA\r
+:1041100009F452C06EC0833438F48A3308F067C0A3\r
+:10412000883309F462C065C0833409F445C088341B\r
+:1041300009F05FC00E9468140FEF13ED20E30150F7\r
+:1041400010402040E1F700C000000E94771B4DC0E6\r
+:104150000E94BA210E94F20E0E94EC0746C00E9403\r
+:104160002B1D0E943D1D41C09091CC01892F817073\r
+:1041700090FF12C0917F9E7F9093CC013BC08091B5\r
+:10418000CC0182FB222720F991E0922790FB82F953\r
+:104190008093CC01992349F18091CC018160809377\r
+:1041A000CC0123C08091CC0183FB222720F991E030\r
+:1041B000922790FB83F9ECCF61E070E080E090E023\r
+:1041C00010C08D5141E050E060E070E08A019B0139\r
+:1041D00004C0000F111F221F331F8A95D2F7C90197\r
+:1041E000B8010E9424180E94681481E003C089531A\r
+:1041F000E9CF80E01F910F91089580E0089580E05D\r
+:104200000895CF93C82F8091DC01813079F018F0A8\r
+:104210008230E9F187C0E0910E01F0910F018081B9\r
+:10422000813169F0823209F07FC009C0E0910E014E\r
+:10423000F0910F018081813111F0823261F48C2F75\r
+:104240000E94FD20811104C08C2F0E9438201DC0C7\r
+:1042500081E090E01AC08C2F0E94FF20811114C0D1\r
+:10426000C43179F048F4CB3079F0C03109F060C046\r
+:1042700082E08093DC0108C0C93219F0C83321F014\r
+:1042800057C01092DC0154C081E0817053C0C93224\r
+:1042900089F118F5C43171F1A8F4C73009F046C0AE\r
+:1042A0008AE08093150194E19093140193E0909338\r
+:1042B00013018093120188E08093110188E28093BA\r
+:1042C000100134C0CE51C63088F5EC2FF0E0E65D29\r
+:1042D000FE4F80818093DB0129C0CE34E9F020F4C9\r
+:1042E000CB3421F56AE013C0C13579F0C235F1F461\r
+:1042F00061E00DC08091DB01882319F01092DB0191\r
+:1043000015C081E08093DC0115C061E006C080919A\r
+:10431000DB010E94721F0AC06AE08091DB010E94EB\r
+:10432000E81F04C01092DC0180E004C081E002C0FC\r
+:1043300080E0ABCFCF910895E1E8F0E08081886024\r
+:1043400080838081816080838FB7F89493E090931D\r
+:10435000890090ED909388008FBF0895EFE6F0E01C\r
+:104360008081826080830895EFE6F0E080818D7F18\r
+:1043700080830895EFE6F0E0908182E089278083D2\r
+:1043800008951F920F920FB60F9211242F933F930F\r
+:104390004F935F936F937F938F939F93AF93BF934D\r
+:1043A000EF93FF938091DD019091DE010196909350\r
+:1043B000DE018093DD01811103C082E00E94EC07E1\r
+:1043C000E091DE01E695E695F0E0E652FA4FE491E1\r
+:1043D0008091DD018E1303C080E00E94EC07FF9105\r
+:1043E000EF91BF91AF919F918F917F916F915F916D\r
+:1043F0004F913F912F910F900FBE0F901F901895E6\r
+:1044000004D06894B1118DC0089570D088F09F5782\r
+:1044100090F0B92F9927B751A0F0D1F0660F771F10\r
+:10442000881F991F1AF0BA95C9F712C0B13081F0F0\r
+:1044300077D0B1E0089574C0672F782F8827B85FD0\r
+:1044400039F0B93FCCF3869577956795B395D9F751\r
+:104450003EF490958095709561957F4F8F4F9F4F5B\r
+:104460000895E89409C097FB3EF490958095709567\r
+:1044700061957F4F8F4F9F4F9923A9F0F92F96E9B0\r
+:10448000BB279395F695879577956795B795F11125\r
+:10449000F8CFFAF4BB0F11F460FF1BC06F5F7F4FC2\r
+:1044A0008F4F9F4F16C0882311F096E911C07723D4\r
+:1044B00021F09EE8872F762F05C0662371F096E8DD\r
+:1044C000862F70E060E02AF09A95660F771F881FAC\r
+:1044D000DAF7880F9695879597F9089557FD9058C4\r
+:1044E000440F551F59F05F3F71F04795880F97FBB8\r
+:1044F000991F61F09F3F79F0879508951216130672\r
+:104500001406551FF2CF4695F1DF08C016161706A0\r
+:104510001806991FF1CF86957105610508940895D5\r
+:10452000E894BB2766277727CB0197F908950BD02E\r
+:1045300078C069D028F06ED018F0952309F05AC0E1\r
+:104540005FC01124EECFCADFA0F3959FD1F3950F82\r
+:1045500050E0551F629FF001729FBB27F00DB11D07\r
+:10456000639FAA27F00DB11DAA1F649F6627B00D97\r
+:10457000A11D661F829F2227B00DA11D621F739F80\r
+:10458000B00DA11D621F839FA00D611D221F749F8E\r
+:104590003327A00D611D231F849F600D211D822FD5\r
+:1045A000762F6A2F11249F5750408AF0E1F088231C\r
+:1045B0004AF0EE0FFF1FBB1F661F771F881F915029\r
+:1045C0005040A9F79E3F510570F014C0AACF5F3F3D\r
+:1045D000ECF3983EDCF3869577956795B795F7955C\r
+:1045E000E7959F5FC1F7FE2B880F911D96958795E4\r
+:1045F00097F9089597F99F6780E870E060E0089563\r
+:104600009FEF80EC089500240A94161617061806EA\r
+:104610000906089500240A941216130614060506C6\r
+:104620000895092E0394000C11F4882352F0BB0F57\r
+:1046300040F4BF2B11F460FF04C06F5F7F4F8F4FBA\r
+:104640009F4F089597FB072E16F4009407D077FD2F\r
+:1046500009D00E943C2307FC05D03EF4909581953B\r
+:104660009F4F0895709561957F4F0895EE0FFF1F3E\r
+:104670000590F491E02D0994AA1BBB1B51E107C0E2\r
+:10468000AA1FBB1FA617B70710F0A61BB70B881FE2\r
+:10469000991F5A95A9F780959095BC01CD01089571\r
+:1046A000F999FECF92BD81BDF89A992780B50895FA\r
+:1046B000A8E1B0E042E050E00C947323262FF99972\r
+:1046C000FECF1FBA92BD81BD20BD0FB6F894FA9AF5\r
+:1046D000F99A0FBE019608950E945E23272F0C942D\r
+:1046E0005F23DC01CB01FC01F999FECF06C0F2BDCE\r
+:1046F000E1BDF89A319600B40D9241505040B8F7A0\r
+:064700000895F894FFCFBC\r
+:104706002002ED077B0858082408F0070101BA01CA\r
+:1047160028080A03140A3F4D36399B054E0518052D\r
+:10472600DF0472048B04A404BD040102030405061D\r
+:044736000708090067\r
+:00000001FF\r
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/keymap.c b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c
new file mode 100644 (file)
index 0000000..ed8dfc7
--- /dev/null
@@ -0,0 +1,273 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define COLEMAK 0 // new colemak layout
+#define QWERTY 1 // default layer
+#define SYMB 2 // symbols
+#define NUMPAD 3 // number pad
+#define MDIA 4 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+       /* Keymap 0: Basic COLEMAK layer
+        *
+        * ,--------------------------------------------------.           ,--------------------------------------------------.
+        * |        |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |        |
+        * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+        * | Tab    |   Q  |   W  |   F  |   P  |   G  |      |           |      |   J  |   L  |   U  |   Y  |   ;  |  TAB   |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * | BkSp   |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |   O  |  DEL   |
+        * |--------+------+------+------+------+------|      |          LGUI(TAB)------+------+------+------+------+--------|
+        * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
+        * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+        *   |  L1  |      |      | UP   |MO(L2)|                                       |MO(L2)| Down |      |  ALT | RGUI   |
+        *   `----------------------------------'                                       `------------------------------------'
+        *                                        ,-------------.       ,---------------.
+        *                                        | LGUI | App  |       |Ctrl/Esc|  Alt |
+        *                                 ,------|------|------|       |--------+--------+------.
+        *                                 |      |      |QUKSL |       |  QUKSL |        |      |
+   *                                 |Space |ENTER |------|       |--------| ENTER  |Space |
+        *                                 |      |      |MO(L3)|       | MO(L3) |        |      |
+        *                                 `--------------------'       `------------------------'
+        */
+
+       // If it accepts an argument (i.e, is a function), it doesn't need KC_.
+       // Otherwise, it needs KC_*
+       [COLEMAK] = KEYMAP(  // layer 0 : Colemak layout default layer
+           // left hand
+            KC_TRNS,        KC_1,         KC_2,   KC_3,   KC_4,    KC_5,   KC_LEFT,
+            KC_TAB,         KC_Q,         KC_W,   KC_F,   KC_P,    KC_G,   KC_TRNS,
+            KC_BSPC,        KC_A,         KC_R,   KC_S,   KC_T,    KC_D,
+            KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,    KC_B,   KC_TRNS,
+            TG(QWERTY),     KC_TRNS,      KC_TRNS,KC_UP,  MO(SYMB),
+            KC_LGUI,        KC_APP,
+            LGUI(S(KC_SPC)),
+            KC_SPC,KC_ENT,MO(NUMPAD),
+           // right hand
+            KC_RGHT,      KC_6,    KC_7,    KC_8,    KC_9,   KC_0,              KC_DELT,
+            KC_TRNS,      KC_J,    KC_L,    KC_U,    KC_Y,   KC_SCLN,           KC_TAB,
+            KC_H,         KC_N,    KC_E,    KC_I,    KC_O,   KC_DEL,
+            LGUI(KC_TAB), KC_K,    KC_M,    KC_COMM, KC_DOT, CTL_T(KC_SLSH),    KC_RSFT,
+            MO(SYMB),     KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI,
+            CTL_T(KC_ESC), KC_LALT,
+            LGUI(S(KC_SPC)),
+            MO(NUMPAD), KC_ENT, KC_SPC),
+
+       /* Keymap 1: Basic QWERTY layer
+        *
+        * ,--------------------------------------------------.           ,--------------------------------------------------.
+        * | BkSp   |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   DEL  |
+        * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+        * | Tab    |   Q  |   W  |   E  |   R  |   T  |  L0  |           |  L0  |   Y  |   U  |   I  |   O  |   P  |   \    |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+   * | Ctrl   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L4|  CTRL  |
+   * |--------+------+------+------+------+------| Alt  |           | Alt  |------+------+------+------+------+--------|
+   * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |
+   * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+   *   |Grv/L3|  '"  |AltShf| Left |MO(L2)|                                       |MO(L2)| Down |   [  |   ]  | ~L3  |
+   *   `----------------------------------'                                       `----------------------------------'
+   *                                        ,-------------.       ,---------------.
+   *                                        | Tab  | BkSp |       | Alt  |Ctrl/Esc|
+   *                                 ,------|------|------|       |------+--------+------.
+   *                                 |      |      | Home |       | PgUp |        |      |
+   *                                 | Space| LGUI |------|       |------|  RGUI  |Enter |
+   *                                 |      |      | End  |       | PgDn |        |      |
+   *                                `--------------------'       `----------------------'
+   */
+       // If it accepts an argument (i.e, is a function), it doesn't need KC_.
+       // Otherwise, it needs KC_*
+       [QWERTY] = KEYMAP(  // layer 1
+           // left hand
+           KC_BSPC,           KC_1,         KC_2,   KC_3,   KC_4,    KC_5,   KC_LEFT,
+           KC_TAB,            KC_Q,         KC_W,   KC_E,   KC_R,    KC_T,   KC_TRNS,
+           KC_LCTRL,          KC_A,         KC_S,   KC_D,   KC_F,    KC_G,
+           KC_LSFT,           CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,    KC_B,   KC_LALT,
+           KC_TRNS, KC_QUOT,  LALT(KC_LSFT),  KC_LEFT, MO(SYMB),
+           KC_TAB,  KC_DELT,
+           KC_HOME,
+           KC_SPC, KC_LGUI, KC_END,
+           // right hand
+           KC_RGHT,      KC_6,    KC_7,    KC_8,    KC_9,              KC_0,           KC_DELT,
+           KC_TRNS,      KC_Y,    KC_U,    KC_I,    KC_O,              KC_P,           KC_BSLS,
+           KC_H,         KC_J,    KC_K,    KC_L,    LT(MDIA, KC_SCLN), KC_RCTRL,
+           KC_RALT,      KC_N,    KC_M,    KC_COMM, KC_DOT,            CTL_T(KC_SLSH), KC_RSFT,
+           MO(SYMB),     KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1,
+           KC_LALT, CTL_T(KC_ESC),
+           KC_PGUP,
+           KC_PGDN, KC_RGUI, KC_ENT),
+
+
+       /* Keymap 2: Symbol Layer
+        *
+        * ,--------------------------------------------------.           ,--------------------------------------------------.
+        * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+        * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+        * |        |      |   @  |   *  |   =  |   _  |      |           |      |   ~  |   {  |   }  |   #  |   :  |   F12  |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |   |  |   !  |   +  |   -  |   "  |------|           |------|   "  |   (  |   )  |   '  |   `  |        |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |      |   %  |   ^  |   $  |   &  |      |           |      |   ;  |   [  |   ]  |   \  |   /  |        |
+        * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+        *   |      |      |      |      |      |                                       |      |      |      |      |      |
+        *   `----------------------------------'                                       `----------------------------------'
+        *                                        ,-------------.       ,-------------.
+        *                                        |      |      |       |      |      |
+        *                                 ,------|------|------|       |------+------+------.
+        *                                 |      |      |      |       |      |      |      |
+        *                                 |      |      |------|       |------|      |      |
+        *                                 |      |      |      |       |      |      |      |
+        *                                 `--------------------'       `--------------------'
+        */
+       // SYMBOL
+       [SYMB] = KEYMAP(
+           // left hand
+           KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_AT,   KC_ASTR, KC_EQL,  KC_UNDS, KC_TRNS,
+           KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE),
+           KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR,  KC_AMPR, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS,
+           KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS,
+
+           // right hand
+           KC_TRNS, KC_F6,      KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,
+           KC_TRNS, KC_TILD,    KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12,
+           S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS,
+           KC_TRNS, KC_SCLN,    KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS,
+           KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS,
+           KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS),
+
+       /* Keymap 3: Numpad Layer
+        *
+        * ,--------------------------------------------------.           ,--------------------------------------------------.
+        * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+        * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+        * |        |      |      |  UP  |      |      |      |           |      |   $  |   7  |   8  |   9  |   +  |        |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |      | LEFT | DOWN | RIGHT|      |------|           |------|   =  |   4  |   5  |   6  |   -  |        |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   *  |        |
+        * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+        *   |      |      |      |      |      |                                       |   ,  |   0  |   .  |   /  |      |
+        *   `----------------------------------'                                       `----------------------------------'
+        *                                        ,-------------.       ,-------------.
+        *                                        |      |      |       |      |      |
+        *                                 ,------|------|------|       |------+------+------.
+        *                                 |      |      |      |       |      |      |      |
+        *                                 |      |      |------|       |------|      |      |
+        *                                 |      |      |      |       |      |      |      |
+        *                                 `--------------------'       `--------------------'
+        */
+       // Numpad
+       [NUMPAD] = KEYMAP(
+           // left hand
+           KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+           KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,
+           KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RIGHT,KC_TRNS,
+           KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+           KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+           KC_TRNS,KC_TRNS,
+           KC_TRNS,
+           KC_TRNS,KC_TRNS,KC_TRNS,
+           // right hand
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,
+           KC_TRNS, KC_DLR,  KC_7,    KC_8,    KC_9,    KC_PLUS,  KC_TRNS,
+                    KC_EQL,  KC_4,    KC_5,    KC_6,    KC_MINS,  KC_TRNS,
+           KC_TRNS, KC_AMPR, KC_1,    KC_2,    KC_3,    KC_ASTR,  KC_TRNS,
+                             KC_COMMA,KC_0,    KC_DOT,  KC_SLSH,  KC_TRNS,
+           KC_TRNS, KC_TRNS,
+           KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS),
+
+       /* Keymap 4: Media and mouse keys
+        *
+        * ,--------------------------------------------------.           ,--------------------------------------------------.
+        * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+        * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+        * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |
+        * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+        * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
+        * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+        *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |
+        *   `----------------------------------'                                       `----------------------------------'
+        *                                        ,-------------.       ,-------------.
+        *                                        |      |      |       |      |      |
+        *                                 ,------|------|------|       |------+------+------.
+        *                                 |      |      |      |       |      |      |Brwser|
+        *                                 |      |      |------|       |------|      |Back  |
+        *                                 |      |      |      |       |      |      |      |
+        *                                 `--------------------'       `--------------------'
+        */
+       // MEDIA AND MOUSE
+       KEYMAP(
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+           KC_TRNS, KC_TRNS,
+           KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS,
+           // right hand
+           KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+           KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+           KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+           KC_TRNS, KC_TRNS,
+           KC_TRNS,
+           KC_TRNS, KC_TRNS, KC_WBAK),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+       [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+       // MACRODOWN only works in this function
+       switch(id) {
+               case 0:
+                       if (record->event.pressed) {
+                               register_code(KC_RSFT);
+                       } else {
+                               unregister_code(KC_RSFT);
+                       }
+                       break;
+       }
+       return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+       uint8_t layer = biton32(layer_state);
+
+       ergodox_board_led_off();
+       ergodox_right_led_1_off();
+       ergodox_right_led_2_off();
+       ergodox_right_led_3_off();
+       switch (layer) {
+               // TODO: Make this relevant to the ErgoDox EZ.
+               case 1:
+                       ergodox_right_led_1_on();
+                       break;
+               case 2:
+                       ergodox_right_led_2_on();
+                       break;
+               default:
+                       // none
+                       break;
+       }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c
new file mode 100644 (file)
index 0000000..178c290
--- /dev/null
@@ -0,0 +1,271 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_extras/keymap_colemak.h"
+
+enum {
+    BASE = 0,
+    BASE_CM,
+    SYMB,
+    MACR
+};
+
+enum {
+    LWIN = 1,
+    PC1,
+    PC2,
+    PC3,
+    PC4,
+    DL_BASE,
+    DL_BASE_CM,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0a: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   Q  |   W  |   F  |   P  |   G  |  L1  |           |  L1  |   J  |   L  |   U  |   Y  |   ;  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | Esc    |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |  O   |   '    |
+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | LAlt | LGui |       | LAlt | RAlt |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |Backsp| Home |       | PgUp |        |      |
+ *                                 | Space|ace/  |------|       |------|  Tab/  |Enter/|
+ *                                 | /Shft|Ctrl  |  1)  |       |  2)  |  Ctrl  |Shift |
+ *                                 `--------------------'       `----------------------'
+ *
+ * 1) End/L1
+ * 2) PgDown/L2
+ */
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_EQL,         KC_1,     KC_2,   KC_3,   KC_4,          KC_5,   KC_LEFT,
+        KC_DELT,        KC_Q,     KC_W,   KC_F,   KC_P,          KC_G,   TG(SYMB),
+        KC_ESC,         KC_A,     KC_R,   KC_S,   KC_T,          KC_D,
+        KC_LSFT,        KC_Z,     KC_X,   KC_C,   KC_V,          KC_B,   ALL_T(KC_NO),
+        LT(SYMB,KC_GRV),KC_QUOT,  LALT(KC_LSFT),  KC_LEFT,       KC_RGHT,
+                                                             KC_LALT,       F(LWIN),
+                                                                            KC_HOME,
+                                               SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
+        // right hand
+             KC_RGHT,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
+             TG(SYMB),    KC_J,   KC_L,   KC_U,   KC_Y,   KC_SCLN,          KC_BSLS,
+                          KC_H,   KC_N,   KC_E,   KC_I,   KC_O,             KC_QUOT,
+             MEH_T(KC_NO),KC_K,   KC_M,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,
+                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          LT(SYMB,KC_NO),
+             KC_LALT,         KC_RALT,
+             KC_PGUP,
+             LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
+    ),
+/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY)
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   Q  |   W  |   F  |   P  |   G  |  L1  |           |  L1  |   J  |   L  |   U  |   Y  |   ;  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | Esc    |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |  O   |   '    |
+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | LAlt | LGui |       | LAlt | RAlt |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |Backsp| Home |       | PgUp |        |      |
+ *                                 | Space|ace/  |------|       |------|  Tab/  |Enter/|
+ *                                 | /Shft|Ctrl  |  1)  |       |  2)  |  Ctrl  |Shift |
+ *                                 `--------------------'       `----------------------'
+ *
+ * 1) End/L1
+ * 2) PgDown/L2
+ */
+[BASE_CM] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_EQL,         KC_1,     KC_2,   KC_3,   KC_4,          KC_5,   KC_LEFT,
+        KC_DELT,        CM_Q,     CM_W,   CM_F,   CM_P,          CM_G,   TG(SYMB),
+        KC_ESC,         CM_A,     CM_R,   CM_S,   CM_T,          CM_D,
+        KC_LSFT,        CM_Z,     CM_X,   CM_C,   CM_V,          CM_B,   ALL_T(KC_NO),
+        LT(SYMB,KC_GRV),KC_QUOT,  LALT(KC_LSFT),  KC_LEFT,       KC_RGHT,
+                                                             KC_LALT,       F(LWIN),
+                                                                            KC_HOME,
+                                               SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
+        // right hand
+             KC_RGHT,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
+             TG(SYMB),    CM_J,   CM_L,   CM_U,   CM_Y,   KC_P, /*CM_SCLN*/ KC_BSLS,
+                          CM_H,   CM_N,   CM_E,   CM_I,   CM_O,             KC_QUOT,
+             MEH_T(KC_NO),CM_K,   CM_M,   CM_COMM,CM_DOT, CTL_T(CM_SLSH),   KC_RSFT,
+                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          LT(SYMB,KC_NO),
+             KC_LALT,         KC_RALT,
+             KC_PGUP,
+             LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_TRNS,KC_TRNS,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,
+                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Macros
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        | DLa  | DLb  |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        | PC1  | PC2  | PC3  | PC4  |      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MACROS
+[MACR] = KEYMAP(
+       KC_NO,   KC_NO,     KC_NO,        KC_NO,   KC_NO,   KC_NO,   KC_NO,
+       KC_NO,   F(DL_BASE),F(DL_BASE_CM),KC_NO,   KC_NO,   KC_NO,   KC_NO,
+       KC_NO,   F(PC1),    F(PC2),       F(PC3),  F(PC4),  KC_NO,
+       KC_NO,   KC_NO,     KC_NO,        KC_NO,   KC_NO,   KC_NO,   KC_NO,
+       KC_NO,   KC_NO,     KC_NO,        KC_NO,   KC_NO,
+                                           KC_TRNS,KC_TRNS,
+                                                   KC_TRNS,
+                                   KC_TRNS,KC_TRNS,KC_TRNS,
+    // right hand
+       KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+       KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+                 KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,    KC_NO,
+       KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+                          KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [LWIN] = ACTION_MACRO(LWIN),
+    [PC1] = ACTION_MACRO(PC1),
+    [PC2] = ACTION_MACRO(PC2),
+    [PC3] = ACTION_MACRO(PC3),
+    [PC4] = ACTION_MACRO(PC4),
+    [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE),
+    [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+    switch(id) {
+    case 0:
+        if (record->event.pressed) {
+            register_code(KC_RSFT);
+        } else {
+            unregister_code(KC_RSFT);
+        }
+        break;
+    case LWIN:
+        if (record->event.pressed) {
+             register_code(KC_RSFT);
+             unregister_code(KC_RSFT);
+             register_code(KC_LGUI);
+        } else {
+             unregister_code(KC_LGUI);
+        }
+    case PC1:
+        if (!record->event.pressed) {
+             return MACRO(T(SLCK), T(SLCK), T(1), T(ENT), END);
+        }
+    case PC2:
+        if (!record->event.pressed) {
+             return MACRO(T(SLCK), T(SLCK), T(2), T(ENT), END);
+        }
+    case PC3:
+        if (!record->event.pressed) {
+             return MACRO(T(SLCK), T(SLCK), T(3), T(ENT), END);
+        }
+    case PC4:
+        if (!record->event.pressed) {
+             return MACRO(T(SLCK), T(SLCK), T(4), T(ENT), END);
+        }
+    }
+    return MACRO_NONE;
+}
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+    return NULL;
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case SYMB:
+            ergodox_right_led_1_on();
+            break;
+        case MACR:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+};
diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex
new file mode 100644 (file)
index 0000000..4bb1714
--- /dev/null
@@ -0,0 +1,1493 @@
+:100000000C9476070C94BA070C94BA070C94BA07B0\r
+:100010000C94BA070C94BA070C94BA070C94BA075C\r
+:100020000C94BA070C94BA070C9405130C94D713CC\r
+:100030000C94BA070C94BA070C94BA070C94BA073C\r
+:100040000C94BA070C94B12C0C94BA070C94BA0710\r
+:100050000C94BA070C94A9220C94BA070C94BA0712\r
+:100060000C94BA070C94BA070C94BA070C94BA070C\r
+:100070000C94BA070C94BA070C94BA070C94BA07FC\r
+:100080000C94BA070C94BA070C94BA070C94BA07EC\r
+:100090000C94BA070C94BA070C94BA070C94BA07DC\r
+:1000A0000C94BA070C94BA070C94BA07441466145B\r
+:1000B000541566145415AB14CE1454152315361567\r
+:1000C0007D187D18AC18AC18EF182D19461B461B6F\r
+:1000D0004619461B471A471A1A1B461B461B311B5B\r
+:1000E0000147024701470247012102210128022856\r
+:1000F0000001470247014702470120022001280270\r
+:1001000028000147024701470247011F021F01283B\r
+:100110000228000147024701470247011E021E0153\r
+:1001200028022800000001C002C003C004C005C0AE\r
+:10013000018C028C2E004C002900E1003582000069\r
+:100140001E00140004001D0034004D821F001A0020\r
+:1001500015001B00E1042A712000090016000600AA\r
+:1001600050002C7221001300170019004F004A00A4\r
+:1001700022000A00070005000000E20050000254BF\r
+:100180000000007F000001204F00025400000077B3\r
+:100190000000E20023000D000B000E000000E6004E\r
+:1001A00024000F001100100052004B002500180021\r
+:1001B000080036005100287226001C000C00370091\r
+:1001C0002F002B71270033001200387130004E834E\r
+:1001D0002D0031003400E500008200002E004C00AC\r
+:1001E0002900E100358200001E00140004001D00FB\r
+:1001F00034004D821F001A0016001B00E1042A7112\r
+:10020000200008000700060050002C722100150095\r
+:10021000090019004F004A00220017000A000500DB\r
+:100220000000E200500002540000007F00000120A6\r
+:100230004F000254000000770000E20023001C0081\r
+:100240000B0011000000E600240018000D00100053\r
+:1002500052004B0025000C000E00360051002872A1\r
+:10026000260012000F0037002F002B71270013000B\r
+:100270003300387130004E832D0031003400E5002A\r
+:1002800000820000010001000100010001000000E7\r
+:100290003A001E0220022202010001003B001F0260\r
+:1002A00021022302010001003C002F0226022F0040\r
+:1002B000010001003D003002270230000100010072\r
+:1002C0003E0031023500350200000100010001004E\r
+:1002D0000000010000000100010001000000010019\r
+:1002E000000001003F005200510024020000010004\r
+:1002F0004000240021001E000100010041002500F3\r
+:1003000022001F00370001004200260023002000C9\r
+:1003100027000100430025022E0231002E000100BB\r
+:100320004400450001000100010000000000000041\r
+:100330000000000000000000000006200220000075\r
+:100340000000010000000720032000000000010061\r
+:100350000000000004200000000001000000000078\r
+:100360000520000000000100000000000000000067\r
+:10037000000001000000000000000000000001007B\r
+:10038000000000000000000000000100000000006C\r
+:10039000000000000000010000000000000000005C\r
+:1003A000000001000000000000000000000001004B\r
+:1003B000000000000000000000000100000000003C\r
+:1003C000000000000000010000000000000000002C\r
+:1003D000000000000A002530313662003A20002576\r
+:1003E000303258000A722F632030313233343536C0\r
+:1003F0003738394142434445460A000A0025303225\r
+:100400005800626F756E6365213A20006C656674F2\r
+:1004100020736964652061747461636865640A00AF\r
+:100420006C6566742073696465206E6F74207265F4\r
+:1004300073706F6E64696E670A00747279696E67B3\r
+:1004400020746F207265736574206D637032333071\r
+:1004500031380A005B735D004B6579626F617264CD\r
+:100460002073746172742E0A005B575D005B535DEC\r
+:10047000005B525D005B445D005B435D001603451D\r
+:1004800000720067006F0044006F00780020004594\r
+:10049000005A00000016034500720067006F004418\r
+:1004A000006F007800200045005A00000004030996\r
+:1004B0000409028D00050100A0FA090400000103EF\r
+:1004C000010100092111010001223F0007058103FC\r
+:1004D00008000A09040100010301020009211101B9\r
+:1004E0000001224D000705820308000A09040200EA\r
+:1004F0000103000000092111010001223600070557\r
+:10050000830308000A090403000203000000092114\r
+:1005100011010001222000070584032000010705C6\r
+:100520000403200001090404000103000000092164\r
+:100530001101000122390007058503100001120195\r
+:10054000100100000008EDFE071301000102000188\r
+:1005500005010906A101050719E029E71500250194\r
+:100560009508750181020508190129059505750190\r
+:10057000910295017503910105071900297715006E\r
+:100580002501957875018102C00631FF0974A1012A\r
+:100590000975150025FF952075088102097615005B\r
+:1005A00025FF952075089102C005010980A10185EC\r
+:1005B0000216010026B7001A01002AB7007510952F\r
+:1005C000018100C0050C0901A10185031601002667\r
+:1005D0009C021A01002A9C02751095018100C00539\r
+:1005E000010902A1010901A1000509190129051547\r
+:1005F00000250195057501810295017503810105AD\r
+:1006000001093009311581257F9502750881060998\r
+:10061000381581257F950175088106050C0A380279\r
+:100620001581257F950175088106C0C00501090661\r
+:10063000A101050719E029E71500250195087501B5\r
+:1006400081029501750881010508190129059505A3\r
+:10065000750191029501750391010507190029FFA4\r
+:10066000150025FF950675088100C00A0025303267\r
+:100670005820006B6579626F6172645F7265706F9C\r
+:1006800072743A20000A0025303258006B65796296\r
+:100690006F6172645F7365745F6C65643A200064B7\r
+:1006A000656C5F6B65795F6269743A2063616E2780\r
+:1006B000742064656C3A20253032580A0061646405\r
+:1006C0005F6B65795F6269743A2063616E2774209D\r
+:1006D0006164643A20253032580A00646F6E652EDA\r
+:1006E0000A00626F6F676D61676963207363616E93\r
+:1006F0003A202E2E2E2000290A002575002F0025D5\r
+:1007000075005D2800256400200025640020002578\r
+:10071000640020002564007C0025303258006D6F95\r
+:100720007573656B6579205B62746E7C78207920C7\r
+:100730007620685D287265702F61636C293A205BB2\r
+:10074000006D6B5F776865656C5F74696D655F747C\r
+:100750006F5F6D6178203D2025640A006D6B5F77C7\r
+:100760006865656C5F6D61785F7370656564203D79\r
+:100770002025640A006D6B5F74696D655F746F5F3F\r
+:100780006D6178203D2025640A006D6B5F6D617896\r
+:100790005F7370656564203D2025640A006D6B5FA2\r
+:1007A000696E74657276616C203D2025640A006D67\r
+:1007B0006B5F64656C6179203D2025640A006D6B78\r
+:1007C0005F776865656C5F74696D655F746F5F6D99\r
+:1007D0006178203D2025640A006D6B5F7768656550\r
+:1007E0006C5F6D61785F7370656564203D20256482\r
+:1007F0000A006D6B5F74696D655F746F5F6D617822\r
+:10080000203D2025640A006D6B5F6D61785F737019\r
+:10081000656564203D2025640A006D6B5F696E7418\r
+:10082000657276616C203D2025640A006D6B5F6403\r
+:10083000656C6179203D2025640A000A0025750059\r
+:10084000363A20776865656C5F74696D655F746FB3\r
+:100850005F6D61783A20000A00257500353A2077EF\r
+:100860006865656C5F6D61785F73706565643A207B\r
+:10087000000A00257500343A2074696D655F746F55\r
+:100880005F6D61783A20000A00257500333A206DCB\r
+:1008900061785F73706565643A20000A0025750011\r
+:1008A000323A20696E74657276616C286D73293AEC\r
+:1008B00020000A00257500313A2064656C617928B2\r
+:1008C0002A31306D73293A20000A092D2056616CB7\r
+:1008D000756573202D0A004D3E004D25643E2000B5\r
+:1008E0003F007365742064656661756C740A00432B\r
+:1008F0003E200077686572652064656C74613A20FB\r
+:10090000637572736F723D25642C20776865656C22\r
+:100910003D25640A53656520687474703A2F2F650D\r
+:100920006E2E77696B6970656469612E6F72672FCF\r
+:1009300077696B692F4D6F7573655F6B6579730AA6\r
+:10094000000A092D204D6F7573656B6579202D0A9E\r
+:100950004553432F713A09717569740A313A096434\r
+:10096000656C6179282A31306D73290A323A096938\r
+:100970006E74657276616C286D73290A333A096D5D\r
+:1009800061785F73706565640A343A0974696D65EE\r
+:100990005F746F5F6D61780A353A09776865656CD9\r
+:1009A0005F6D61785F73706565640A363A097768D0\r
+:1009B00065656C5F74696D655F746F5F6D61780A02\r
+:1009C0000A703A097072696E742076616C7565738D\r
+:1009D0000A643A097365742064656661756C7473A2\r
+:1009E0000A75703A092B310A646F776E3A092D3116\r
+:1009F0000A706775703A092B31300A7067646F7737\r
+:100A00006E3A092D31300A0A7370656564203D2005\r
+:100A100064656C7461202A206D61785F7370656510\r
+:100A200064202A2028726570656174202F20746903\r
+:100A30006D655F746F5F6D6178290A003F004D3E00\r
+:100A40002000433E20004C25640A000A092D204363\r
+:100A50006F6E736F6C65202D0A4553432F713A09F1\r
+:100A6000717569740A6D3A096D6F7573656B657997\r
+:100A70000A000A092D204D61676963202D0A643A36\r
+:100A80000964656275670A783A096465627567206A\r
+:100A90006D61747269780A6B3A09646562756720E2\r
+:100AA0006B6579626F6172640A6D3A09646562759B\r
+:100AB00067206D6F7573650A763A0976657273699A\r
+:100AC0006F6E0A733A097374617475730A633A0935\r
+:100AD000636F6E736F6C65206D6F64650A302D34C3\r
+:100AE0003A096C61796572302D34284631302D46D3\r
+:100AF00034290A506175733A09626F6F746C6F61C3\r
+:100B00006465720A653A09656570726F6D0A6E3ABE\r
+:100B1000094E4B524F0A7A3A09736C656570204C46\r
+:100B2000454420746573740A000A002575002E6E12\r
+:100B30006B726F3A20000A002575002E7377617082\r
+:100B40005F6261636B736C6173685F6261636B7337\r
+:100B5000706163653A20000A002575002E73776185\r
+:100B6000705F67726176655F6573633A20000A00A3\r
+:100B70002575002E6E6F5F6775693A20000A0025A3\r
+:100B800075002E737761705F72616C745F72677548\r
+:100B9000693A20000A002575002E737761705F6C3A\r
+:100BA000616C745F6C6775693A20000A00257500F6\r
+:100BB0002E636170736C6F636B5F746F5F636F6ED6\r
+:100BC00074726F6C3A20000A002575002E737761ED\r
+:100BD000705F636F6E74726F6C5F636170736C6F64\r
+:100BE000636B3A20000A0025303258006B65796D3E\r
+:100BF00061705F636F6E6669672E7261773A20007D\r
+:100C00000A002575002E6D6F7573653A20000A0085\r
+:100C10002575002E6B6579626F6172643A20000A57\r
+:100C2000002575002E6D61747269783A20000A0003\r
+:100C30002575002E656E61626C653A20000A0025FC\r
+:100C40003032580064656275675F636F6E6669670E\r
+:100C50002E7261773A20000A00257500646566618E\r
+:100C6000756C745F6C617965723A20003F004E4B81\r
+:100C7000524F3A206F66660A004E4B524F3A206F31\r
+:100C80006E0A0074696D65725F636F756E743A20E9\r
+:100C90002530346C580A006B6579626F6172645F4D\r
+:100CA0006E6B726F3A2025580A006B6579626F612E\r
+:100CB00072645F69646C653A2025580A006B657937\r
+:100CC000626F6172645F70726F746F636F6C3A20F1\r
+:100CD00025580A00686F73745F6B6579626F617283\r
+:100CE000645F6C65647328293A2025580A000A0954\r
+:100CF0002D20537461747573202D0A004743433AC5\r
+:100D000020342E392E33204156522D4C4942433A3D\r
+:100D100020312E382E31204156525F415243483AFD\r
+:100D200020617672350A004F5054494F4E533A2095\r
+:100D30004C55464120424F4F544D41474943204D69\r
+:100D40004F5553454B45592045585452414B4559F1\r
+:100D500020434F4E534F4C4520434F4D4D414E4441\r
+:100D6000204E4B524F203531320A004255494C44F7\r
+:100D70003A20333064623330302D646972747920E4\r
+:100D80002830373A35373A3335204A616E203237CA\r
+:100D90002032303136290A005649443A203078460C\r
+:100DA000454544284572676F446F7820455A29208D\r
+:100DB0005049443A20307831333037284572676FD4\r
+:100DC000446F7820455A29205645523A20307830D1\r
+:100DD0003030310A00444553433A20742E6D2E6B57\r
+:100DE0002E206B6579626F617264206669726D771F\r
+:100DF00061726520666F72204572676F646F780A52\r
+:100E0000000A092D2056657273696F6E202D0A0045\r
+:100E10000A6D6F7573653A206F66660A000A6D6F1A\r
+:100E20007573653A206F6E0A000A6B6579626F61AF\r
+:100E300072643A206F66660A000A6B6579626F61B8\r
+:100E400072643A206F6E0A000A6D61747269783AB2\r
+:100E5000206F66660A000A6D61747269783A206FC5\r
+:100E60006E0A000A64656275673A206F6E0A000AAE\r
+:100E700064656275673A206F66660A000A0A626FE7\r
+:100E80006F746C6F616465722E2E2E2000433E20BD\r
+:100E9000006565636F6E6669673A0A00536C656545\r
+:100EA00070204C454420746573740A0000000000F3\r
+:100EB00000000000000000010204060A0F17202CA9\r
+:100EC0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9A5\r
+:100ED000DAC7B39D87715D4A3A2C20170F0A0604C2\r
+:100EE00002010000000000000000000011241FBEED\r
+:100EF000CFEFDAE0DEBFCDBF04B603FE24C08091A1\r
+:100F0000F9019091FA01A091FB01B091FC018730A9\r
+:100F1000904BA740B04BB9F41092F9011092FA012E\r
+:100F20001092FB011092FC0114BE84B7877F84BF2E\r
+:100F300088E10FB6F89480936000109260000FBEB5\r
+:100F4000E0E0FFE3099511E0A0E0B1E0EEEFFCE5A1\r
+:100F500002C005900D92AA33B107D9F711E0AAE3B8\r
+:100F6000B1E001C01D92A93FB107E1F70E943D1019\r
+:100F70000C947D2E0C940000FF93EF93E0913A01C6\r
+:100F8000F0913B01309709F00995EF91FF91089599\r
+:100F9000FC018591803011F0EFDFFBCF0895FF2732\r
+:100FA000E0E230E247FF0CC0419597FF09C0EDE257\r
+:100FB0006095709580959095611D711D811D911DA5\r
+:100FC00027FF02C0219530E350E2AA27660F771F62\r
+:100FD000881F991FAA1FA41710F0A41B63955A9588\r
+:100FE000A9F7AA3008F0A95FA05DAF93F39561154A\r
+:100FF00071058105910541F7ED3211F4EF93F395F9\r
+:10100000F21718F43F93F395FBCF8F91B5DFFA9564\r
+:10101000E1F70895E991F9918591803021F08532C9\r
+:1010200019F0AADFF9CF089520E0E89455915532E0\r
+:10103000C1F3503311F4689455915A3348F4505326\r
+:1010400090F3220F022E220F220F200D250FF4CF36\r
+:101050000EF4219589919991533619F3533729F15B\r
+:10106000533559F1BC0188279927E8945C3621F45F\r
+:101070008991999168945591543639F446EF7EF0F0\r
+:1010800077FF0DC08FEF9FEF0AC055374AE039F068\r
+:10109000583540E121F0523642E009F00895FF93BF\r
+:1010A000EF937DDFEF91FF91B7CFFF93EF93FC01BB\r
+:1010B00081918030B9F360DFFBCFFF93EF9368DF5E\r
+:1010C000F1CFDF93CF93CDB7DEB72596A3DFCF91D6\r
+:1010D000DF910895CF93DF93EC01623039F128F46A\r
+:1010E000662349F0613091F02DC0643029F108F198\r
+:1010F000653029F127C08A81882321F085EE0E947E\r
+:101100001A1720C085EE0E94E2171CC08A8188232E\r
+:1011100051F085EE0E941A1785EE0E94E21783EEC9\r
+:101120000E941A1703C083EE0E94E2178A81882367\r
+:1011300061F08A81882361F08A81882361F08A8145\r
+:10114000882361F080E090E00BC083E191E008C06B\r
+:1011500082E091E005C081EF90E002C080EE90E077\r
+:10116000DF91CF91089580E090E008956091BC01F7\r
+:101170007091BD018091BE019091BF010E94A82194\r
+:1011800056985E9825982D9826982E9827982F98EF\r
+:10119000823019F0833021F00895259A2D9A089510\r
+:1011A000269A2E9A089586EB98E0892B11F00E94DA\r
+:1011B000B60880E090E0089556985E9825982D989E\r
+:1011C00026982E9827982F988FEF90E0909389007B\r
+:1011D0008093880090938B0080938A0090938D0079\r
+:1011E00080938C00259A2D9A2FEF80E792E0215072\r
+:1011F00080409040E1F700C00000269A2E9A2FEF21\r
+:1012000080E792E0215080409040E1F700C000006C\r
+:10121000279A2F9A2FEF80E792E02150804090404C\r
+:10122000E1F700C0000025982D982FEF80E792E0AD\r
+:10123000215080409040E1F700C0000026982E9891\r
+:101240002FEF80E792E0215080409040E1F700C00E\r
+:10125000000027982F9856985E9825982D982698E4\r
+:101260002E9827982F98089589EA8093800089E026\r
+:101270008093810024982C983F988AB18F748AB902\r
+:101280006E98479A8BB1806B8BB9769A0E94DC0876\r
+:1012900083EB98E0892B11F00E94B30880E090E086\r
+:1012A000089580E28093000180913C0181110EC07D\r
+:1012B0000E94A00981E080933C012FEF83ED90E331\r
+:1012C000215080409040E1F700C0000080E40E947F\r
+:1012D000A6098093000181112EC00E94D00980933D\r
+:1012E0000001811128C00E94D00980930001811162\r
+:1012F00022C08FE30E94D0098093000181111BC09E\r
+:101300000E94C80980E40E94A6098093000181110F\r
+:1013100012C08CE00E94D0098093000181110BC0A3\r
+:101320000E94D00980930001811105C08FE30E94C3\r
+:10133000D009809300010E94C8098091000108959E\r
+:101340001092B9008AE08093B800089594EA9093CF\r
+:10135000BC009091BC0097FFFCCF9091B900987FA2\r
+:10136000983021F0903111F081E008958093BB0016\r
+:1013700084E88093BC008091BC0087FFFCCF809103\r
+:10138000B900887F883111F0803471F780E00895CA\r
+:1013900084E98093BC008091BC0084FDFCCF08955B\r
+:1013A0008093BB0084E88093BC008091BC0087FFE1\r
+:1013B000FCCF9091B900987F81E0983209F480E0E9\r
+:1013C000089584E88093BC008091BC0087FFFCCF27\r
+:1013D0008091BB00089580910001811115C080E4C7\r
+:1013E0000E94A6098093000181110CC082E10E9435\r
+:1013F000D00980930001811105C08FEF0E94D009B0\r
+:10140000809300010E94C80984B1807F84B985B1AE\r
+:10141000807F85B98AB1837F8AB98BB1837F8BB98D\r
+:101420003E98469808950E945109809300010E94B9\r
+:10143000EB0980B38C7080BB81B3836F81BBAEE35B\r
+:10144000B1E0ECE4F1E08EE08E0F11921D928E136C\r
+:10145000FCCF84E399E0892B11F00C9434090895B2\r
+:101460009F92AF92BF92CF92DF92EF92FF920F9333\r
+:101470001F93CF93DF93809100018823E1F0809147\r
+:101480003D018F5F80933D01811115C08AE394E097\r
+:101490000E94C8070E94510980930001882329F007\r
+:1014A00080E294E00E94C80706C08CE094E00E94AD\r
+:1014B000C8070E94DC080EE311E0C0E0D0E0BB24C6\r
+:1014C000B39482E0A82ECC24C394D12C2DEFE22E2D\r
+:1014D00023E0F22EC730D10500F580910001811183\r
+:1014E00064C080E40E94A60980930001811112C0AB\r
+:1014F00082E10E94D0098093000181110BC0C601D6\r
+:101500000C2E01C0880F0A94EAF780950E94D0093A\r
+:10151000809300010E94C80948C0CA30A1F028F495\r
+:10152000C83059F0C93061F005C0CC3089F070F096\r
+:10153000CD3089F0209A289810C0219A29980DC0A2\r
+:10154000229A2A980AC0239A2B9807C0529A01C05F\r
+:10155000539A5B9802C03E9A469890EA9A95F1F7A2\r
+:101560009FB1799902C082E001C080E091709B2513\r
+:10157000982B7C9902C084E001C080E0892B7D9982\r
+:1015800002C038E001C030E0832B7E9902C020E128\r
+:1015900001C020E0822B9FB19095991F9927991F38\r
+:1015A0009295990F907E892B10C080910001811136\r
+:1015B00074C080E40E94A60980930001882309F486\r
+:1015C00059C0912C0E94C809892DF8019081981763\r
+:1015D00039F1808380910101882301F18091D70145\r
+:1015E00080FF04C082E094E00E94C8078091D70188\r
+:1015F00080FF0CC0809101011F928F93FF92EF92A8\r
+:101600000E9461080F900F900F900F908091D7016A\r
+:1016100080FF04C08BEF93E00E94C807A0920101F5\r
+:101620000E94EB0921960F5F1F4FCE30D10509F0C4\r
+:1016300051CF809101018823B1F081508093010145\r
+:10164000882339F08FE99FE00197F1F700C000008F\r
+:101650000AC0ACE4B1E0EEE3F1E0CF01825F91912A\r
+:101660009D938E13FCCF83ED98E0892BC1F00E94EF\r
+:10167000D30815C083E10E94D00980930001811135\r
+:10168000A0CF81E40E94A60980930001811199CF27\r
+:101690000E94E109982E909495CF80E096CF81E04A\r
+:1016A000DF91CF911F910F91FF90EF90DF90CF903E\r
+:1016B000BF90AF909F900895E82FF0E0E45BFE4F5D\r
+:1016C00080810895CF92DF92EF92FF920F931F9344\r
+:1016D000CF93DF9384EE93E00E94C8078CE4E82E5A\r
+:1016E00081E0F82EC0E0D0E09FEDC92E93E0D92E26\r
+:1016F00006ED13E0DF93CF93DF92CF920E94610853\r
+:101700008CED93E00E94C807F70181917F0190E082\r
+:101710000E940E229F938F931F930F930E94610844\r
+:1017200084ED93E00E94C80721968DB79EB7089676\r
+:101730000FB6F8949EBF0FBE8DBFCE30D105D1F647\r
+:10174000DF91CF911F910F91FF90EF90DF90CF909D\r
+:1017500008958B3B910578F4883A910540F5853AD8\r
+:101760009105D0F48430910508F0B1C08130910525\r
+:1017700009F4ADC06BC0803E910508F467C0883E97\r
+:10178000910508F4A4C09C01205F31092031310586\r
+:1017900008F05CC090650895853A910509F459C038\r
+:1017A000863A910509F058C082E890E40895883A95\r
+:1017B000910509F454C0893A910509F453C08A3A55\r
+:1017C000910509F452C08B3A910509F451C08C3A45\r
+:1017D000910509F450C08D3A910509F44FC0803B42\r
+:1017E000910509F44EC08E3A910509F44DC08F3A27\r
+:1017F000910509F44CC0813B910509F44BC0823B33\r
+:10180000910509F44AC0833B910509F449C0843B22\r
+:10181000910509F448C0853B910509F447C0863B12\r
+:10182000910509F446C0873B910509F445C0883B02\r
+:10183000910509F444C0893B910509F443C08A3BF2\r
+:10184000910509F442C080E094E4089580E090E0BE\r
+:10185000089581E890E4089583E890E4089582EE85\r
+:1018600094E4089589EE94E408958AEE94E408954A\r
+:1018700085EB94E4089586EB94E4089587EB94E473\r
+:1018800008958CEC94E408958DEC94E4089583E835\r
+:1018900095E408958AE895E4089582E995E4089529\r
+:1018A00084E995E4089581E296E4089583E296E45C\r
+:1018B000089584E296E4089585E296E4089586E228\r
+:1018C00096E4089587E296E408958AE296E40895FE\r
+:1018D000089596E0799FF001112494E5899FE00D29\r
+:1018E000F11D1124E60FF11DEE0FFF1FEC5CFE4F02\r
+:1018F000859194910895880F991FFC01EC55F04053\r
+:10190000859194910895880F991FFC01EC5DFE4F1D\r
+:1019100085919491089526E0729FF001112444E589\r
+:10192000849FE00DF11D1124E60FF11DEE0FFF1F46\r
+:10193000EC5CFE4F859194919C013A9521154FE105\r
+:10194000340708F41AC13F512115304120F49F702B\r
+:101950000E94830C08959C0130532115304118F4E6\r
+:101960009927906C0895811520E5920769F40E94EB\r
+:10197000681B4FEF84E39CE0415080409040E1F7CA\r
+:1019800000C000000C94CE22813020E5920731F493\r
+:101990008091D70181608093D70108959C013055D3\r
+:1019A0002115304108F051C0292F33272F703327DC\r
+:1019B00021303105D9F4AC014370552702C0220F04\r
+:1019C000331F4A95E2F73C68AC0164E0440F551FB1\r
+:1019D0006A95E1F744275370242B352B73E0880F69\r
+:1019E000991F7A95E1F7807699271DC0223031053D\r
+:1019F00029F4982F8827816F906A08952330310544\r
+:101A0000A9F4AC014370552721E030E002C0220F59\r
+:101A1000331F4A95E2F73C6843E0880F991F4A95C7\r
+:101A2000E1F7807E9770822B932B08952430310547\r
+:101A3000E1F4AC014370552721E030E002C0220FF1\r
+:101A4000331F4A95E2F73A68E7CF9C0130572115DA\r
+:101A5000304118F49F70906208959C013058211510\r
+:101A6000304118F49F70906A0895803E9105E0F42B\r
+:101A7000803C910558F58133910509F46FC048F415\r
+:101A80008932910509F463C08A32910509F46DC069\r
+:101A900072C089339105E9F082389105D1F0853320\r
+:101AA000910509F44DC067C0833E910581F138F47A\r
+:101AB000803E9105B9F0823E9105D9F05CC0863E2A\r
+:101AC000910561F1873E9105A1F155C00E947B0C03\r
+:101AD00008952091EA0120FD02C021FF4CC080EE54\r
+:101AE00090E049C08091EA0180FFF9CF89E390E05E\r
+:101AF00042C08091EA0182FF0EC08091EA0184FF1A\r
+:101B000003C080E090E037C083EE90E034C0809165\r
+:101B1000EA0182FFF2CF82EE90E02DC08091EA01CF\r
+:101B200083FF0BC08091EA0184FDEBCF87EE90E04C\r
+:101B300022C08091EA0183FFF5CF86EE90E01BC0C2\r
+:101B40008091EA0185FF07C089E290E014C080918E\r
+:101B5000EA0185FFF9CF85E390E00DC08091EA01AD\r
+:101B600086FF07C08AE290E006C08091EA0186FF06\r
+:101B7000F9CF81E390E00E94A90B08950895809128\r
+:101B80006D0108959FB7F89410925C019FBF9091EA\r
+:101B9000F001943009F057C09091E9009F703091A6\r
+:101BA000EC00232F217030FD20E8922B24E02093BD\r
+:101BB000E9002091EB0020FF43C02091EE0027FFB9\r
+:101BC0003FC020915A01222321F02091E80025FFF7\r
+:101BD00037C010925A0126E03091E80035FD15C05B\r
+:101BE0003091F001343061F53091EB0035FD28C0C3\r
+:101BF000215021F481E080935A0122C0EFE9FFE0F7\r
+:101C00003197F1F700C00000E7CF8093F100809199\r
+:101C1000E80085FD0AC08091E80080FFFCCF80913C\r
+:101C2000E8008E778093E80006C08FB7F89421E033\r
+:101C300020935C018FBF9F709093E90080E008952E\r
+:101C40009F709093E9008FEF0895CF93DF9300D0BA\r
+:101C50001F92CDB7DEB79C018091F001843019F559\r
+:101C600093E099833B832A839093E9008FEF9091CF\r
+:101C7000E800815095FD06C095ED9A95F1F70000BA\r
+:101C80008111F5CF8091E80085FF0DC040E050E064\r
+:101C900063E070E0CE0101960E94F5108091E800AB\r
+:101CA0008E778093E8000F900F900F90DF91CF9187\r
+:101CB0000895CF93DF9300D01F92CDB7DEB7209168\r
+:101CC000F001243021F522E029839B838A8383E07D\r
+:101CD0008093E9008FEF9091E800815095FD06C058\r
+:101CE00095ED9A95F1F700008111F5CF8091E8000C\r
+:101CF00085FF0DC040E050E063E070E0CE0101964A\r
+:101D00000E94F5108091E8008E778093E8000F9094\r
+:101D10000F900F90DF91CF9108952091F001243022\r
+:101D2000F1F422E02093E9002FEF3091E8002150F8\r
+:101D300035FD06C035ED3A95F1F700002111F5CFDC\r
+:101D40002091E80025FF0BC040E050E065E070E026\r
+:101D50000E94F5108091E8008E778093E800089546\r
+:101D6000CF93DF932091F001243009F048C0EC01BB\r
+:101D700080910C018823E1F080910D018823C1F04E\r
+:101D800085E08093E9008FEF9091E800815095FD08\r
+:101D900006C095E19A95F1F700008111F5CF809189\r
+:101DA000E80085FF2CC040E050E060E170E017C023\r
+:101DB00081E08093E9008FEF9091E800815095FDDC\r
+:101DC00006C095ED9A95F1F700008111F5CF80914D\r
+:101DD000E80085FF14C040E050E068E070E0CE010C\r
+:101DE0000E94F5108091E8008E778093E80080E1F2\r
+:101DF000FE01ADE5B1E001900D928A95E1F7DF912A\r
+:101E0000CF91089589E794E00E94C8078091EF017F\r
+:101E1000811109C00E948A120E94E7128091E2009B\r
+:101E200084608093E200089585E794E00E94C807EB\r
+:101E30001092EF01089581E794E00C94C8078DE6B5\r
+:101E400094E00E94C8070C949E2C89E694E00E94BE\r
+:101E5000C8070E9464220E94A42C0E948C150C9436\r
+:101E6000BE0D20915B012F5F822F62E30E94122E34\r
+:101E7000992319F020935B01089510925B018091E2\r
+:101E80005C01882371F18091F001843041F58091EB\r
+:101E9000E9008F702091EC00922F917020FD90E866\r
+:101EA000892B94E09093E9009091EB0090FF14C08F\r
+:101EB0009091EE0097FF10C09091E80095FF03C04D\r
+:101EC0001092F100F9CF9091E80090FF05C0909139\r
+:101ED000E8009E779093E8008F708093E90010925D\r
+:101EE0005C01089542E061EC81E00E94041242E04E\r
+:101EF00061EC82E00E94041242E061EC83E00E9407\r
+:101F0000041242E261EC84E00E94041242E161ECBE\r
+:101F100085E00C9404128091F201833009F455C0DD\r
+:101F200030F4813071F0823009F48EC008958A3027\r
+:101F300009F47AC08B3009F460C0893009F09CC084\r
+:101F400020C08091F101813A09F096C08091E800AB\r
+:101F5000877F8093E8008091F5019091F601892BAD\r
+:101F600021F460E18DE591E003C060E080E090E065\r
+:101F700070E00E9440118091E8008B778093E80028\r
+:101F800008958091F101813209F076C08091F501C8\r
+:101F90009091F601009719F0049709F06DC08091B7\r
+:101FA000E800877F8093E8008091E80082FD05C00B\r
+:101FB0008091F0018111F8CF5FC08091F100809392\r
+:101FC0006D018091E8008B7753C08091F101813AD7\r
+:101FD00009F052C08091F5019091F601892B09F02A\r
+:101FE0004BC08091E800877F8093E8008091E800F3\r
+:101FF00080FFFCCF80910C0136C08091F1018132CD\r
+:10200000D9F58091F5019091F601892BA9F5809180\r
+:10201000E800877F8093E8000E9439128091F301E5\r
+:1020200080930C010C94681B8091F101813221F5A1\r
+:102030008091E800877F8093E8000E9439128091A8\r
+:10204000F40180936E0108958091F101813AA1F429\r
+:102050008091E800877F8093E8008091E80080FF0E\r
+:10206000FCCF80916E018093F1008091E8008E7723\r
+:102070008093E8000C943912089584B7877F84BF59\r
+:1020800088E10FB6F89480936000109260000FBE54\r
+:1020900090E080E80FB6F89480936100909361001F\r
+:1020A0000FBE0E9419160E948A120E94E7128091A8\r
+:1020B000E20084608093E20082EC9DE00E94A32114\r
+:1020C00078940E946C150E941B1682E091E00E9499\r
+:1020D00087150E948C2C88E594E00E94C8078091A7\r
+:1020E000F001853089F484E594E00E94C8070E94DD\r
+:1020F00028228091EE01882391F30E9450228823A8\r
+:1021000071F30E94DF10EBCF0E944916E8CF292F10\r
+:10211000332723303105C9F064F42130310581F0D3\r
+:102120002230310509F043C08DE890E021EB34E026\r
+:1021300042C021323105F1F02232310541F137C080\r
+:1021400082E190E02EE335E036C099278130910599\r
+:1021500041F08230910541F0892B49F5EDEAF4E038\r
+:1021600005C0E5E9F4E002C0EDE7F4E0849190E019\r
+:102170009F0121C06530D8F4E62FF0E0EE0FFF1F7D\r
+:10218000EB5DFE4F2081318189E090E014C0653025\r
+:1021900070F470E0FB01EE0FFF1FE55EFE4F208143\r
+:1021A0003181FB01EA5EFE4F808190E004C080E057\r
+:1021B00090E020E030E0FA0131832083089580E14F\r
+:1021C00089BD82E189BD09B400FEFDCF8091D800B0\r
+:1021D0008F7D8093D8008091E00082608093E00042\r
+:1021E0008091E00081FDFCCF0895CF92DF92EF92C5\r
+:1021F000FF920F931F93CF93DF93EC018B016A0142\r
+:102200000E945812811133C0C114D10439F0F60173\r
+:1022100080819181081B190BC80FD91FE12CF12C6B\r
+:102220000115110519F18091E80085FD16C0809116\r
+:10223000E8008E778093E800C114D10449F0F601DC\r
+:1022400080819181E80EF91EF182E08285E00FC065\r
+:102250000E945812882321F30AC089918093F100CB\r
+:1022600001501109FFEFEF1AFF0ADACF80E0DF918A\r
+:10227000CF911F910F91FF90EF90DF90CF90089535\r
+:102280002091F7013091F8012617370748F06115C2\r
+:10229000710539F42091E8002E772093E80001C001\r
+:1022A000B90140E061157105A9F12091F0012223E7\r
+:1022B00009F443C0253009F442C02091E80023FD11\r
+:1022C00040C02091E80022FD32C02091E80020FFAC\r
+:1022D000E9CF4091F3002091F20030E0342BFC0173\r
+:1022E000CF016115710559F02830310540F4819115\r
+:1022F0008093F100615071092F5F3F4FF1CF41E0B2\r
+:102300002830310509F040E02091E8002E77209335\r
+:10231000E800C8CF4111C9CF0AC08091F0018823DD\r
+:1023200061F0853061F08091E80083FD0AC0809102\r
+:10233000E80082FFF2CF80E0089582E0089583E014\r
+:10234000089581E008952091F7013091F801261752\r
+:10235000370748F06115710539F42091E8002E77B0\r
+:102360002093E80001C0B901FC0120E0611571056E\r
+:1023700091F18091F001882309F440C0853009F47F\r
+:102380003FC08091E80083FD3DC08091E80082FD60\r
+:102390002FC08091E80080FFE9CF2091F300809169\r
+:1023A000F20090E0922B6115710559F0883091058B\r
+:1023B00040F424912093F100319661507109019607\r
+:1023C000F2CF21E0089709F020E08091E8008E77B5\r
+:1023D0008093E800CBCF2111CCCF0AC08091F001CF\r
+:1023E000882361F0853061F08091E80083FD0AC0A8\r
+:1023F0008091E80082FFF2CF80E0089582E00895A6\r
+:1024000083E0089581E00895982F973058F59093D0\r
+:10241000E900981739F07091EC002091ED0050918F\r
+:10242000F00003C0242F762F50E021FF19C0309117\r
+:10243000EB003E7F3093EB003091ED003D7F309319\r
+:10244000ED003091EB0031603093EB007093EC00C5\r
+:102450002093ED005093F0002091EE0027FF07C07D\r
+:102460009F5FD3CF8F708093E90081E0089580E073\r
+:1024700008958091F10187FF11C08091E80082FDED\r
+:1024800005C08091F0018111F8CF11C08091E80062\r
+:102490008B770BC08091F001882349F08091E80090\r
+:1024A00080FFF8CF8091E8008E778093E800089550\r
+:1024B0002091E4003091E50095E64091EC00842FF6\r
+:1024C000817040FF22C08091E80080FD1CC0809197\r
+:1024D000F001882391F0853091F08091EB0085FD2B\r
+:1024E00010C04091E4005091E5004217530729F3D2\r
+:1024F0009A01915011F784E0089582E0089583E0F5\r
+:10250000089581E0089580E008954091E80042FF39\r
+:10251000DECF08950E94F8120E940013E0EEF0E072\r
+:10252000808181608083E8EDF0E080818F77808317\r
+:1025300019BCA7EDB0E08C918E7F8C9380818F7E4B\r
+:1025400080831092EF0108950F931F93CF93DF9331\r
+:102550000E94F8120E940013C8EDD0E088818F77A6\r
+:10256000888388818068888388818F7D888319BC6F\r
+:102570001092F0011092EC011092EE011092ED0118\r
+:1025800000EE10E0F80180818B7F8083888181607C\r
+:10259000888342E060E080E00E940412E1EEF0E017\r
+:1025A00080818E7F8083E2EEF0E080818160808395\r
+:1025B000808188608083F80180818E7F808388811C\r
+:1025C00080618883DF91CF911F910F910895E8ED8D\r
+:1025D000F0E080818F7E8083E7EDF0E08081816094\r
+:1025E000808384E082BF81E08093EF010C94A41289\r
+:1025F000E8EDF0E080818E7F80831092E200089504\r
+:102600001092DA001092E10008951F920F920FB617\r
+:102610000F9211242F933F934F935F936F937F9368\r
+:102620008F939F93AF93BF93EF93FF938091E100BC\r
+:1026300082FF0BC08091E20082FF07C08091E10021\r
+:102640008B7F8093E1000E94310F8091DA0080FF40\r
+:102650001FC08091D80080FF1BC08091DA008E7F60\r
+:102660008093DA008091D90080FF0DC080E189BDA0\r
+:1026700082E189BD09B400FEFDCF81E08093F001C5\r
+:102680000E94020F05C019BC1092F0010E94140FA5\r
+:102690008091E10080FF19C08091E20080FF15C0A9\r
+:1026A0008091E2008E7F8093E2008091E200806161\r
+:1026B0008093E2008091D80080628093D80019BC9A\r
+:1026C00085E08093F0010E941F0F8091E10084FF5C\r
+:1026D00030C08091E20084FF2CC080E189BD82E19E\r
+:1026E00089BD09B400FEFDCF8091D8008F7D809315\r
+:1026F000D8008091E1008F7E8093E1008091E2001C\r
+:102700008F7E8093E2008091E20081608093E200FE\r
+:102710008091EC01882311F084E007C08091E300F0\r
+:1027200087FD02C081E001C083E08093F0010E9438\r
+:10273000250F8091E10083FF29C08091E20083FF93\r
+:1027400025C08091E100877F8093E10082E0809343\r
+:10275000F0011092EC018091E1008E7F8093E10006\r
+:102760008091E2008E7F8093E2008091E2008061A0\r
+:102770008093E20042E060E080E00E9404128091D9\r
+:10278000F00088608093F0000E941B0FFF91EF9192\r
+:10279000BF91AF919F918F917F916F915F914F9179\r
+:1027A0003F912F910F900FBE0F901F9018951F9281\r
+:1027B0000F920FB60F9211242F933F934F935F9375\r
+:1027C0006F937F938F939F93AF93BF93CF93DF9339\r
+:1027D000EF93FF93C091E900CF708091EC00D82F68\r
+:1027E000D17080FDD0E81092E9008091F000877FE1\r
+:1027F0008093F00078940E941B141092E90080915D\r
+:10280000F00088608093F000CD2BCF70C093E9007A\r
+:10281000FF91EF91DF91CF91BF91AF919F918F91F8\r
+:102820007F916F915F914F913F912F910F900FBECC\r
+:102830000F901F9018951F93CF93DF93CDB7DEB7FE\r
+:10284000AA970FB6F894DEBF0FBECDBFE1EFF1E05F\r
+:1028500088E08E0F9091F10091938E13FBCF0E9430\r
+:102860008B0F8091E80083FF1FC18091F10190914F\r
+:10287000F201492F50E04A30510508F015C1FA0124\r
+:10288000EA5AFF4F0C94322E803881F0823809F0DA\r
+:102890000BC18091F5018F708093E9008091EB006E\r
+:1028A00085FB882780F91092E90006C08091ED0130\r
+:1028B0009091EE01911182609091E800977F909342\r
+:1028C000E8008093F1001092F100C8C0282F2D7FFE\r
+:1028D00009F0EAC0882319F0823061F0E5C08091E8\r
+:1028E000F301813009F0E0C0933009F080E080937B\r
+:1028F000EE012BC08091F301811127C08091F50179\r
+:102900008F7009F4D1C08093E9002091EB0020FF83\r
+:102910001CC0933021F48091EB00806214C0909130\r
+:10292000EB0090619093EB0021E030E0A90102C040\r
+:10293000440F551F8A95E2F74093EA001092EA008F\r
+:102940008091EB0088608093EB001092E900809109\r
+:10295000E800877F86C08111A7C01091F3011F771F\r
+:102960008091E3008078812B8093E3008091E800E0\r
+:10297000877F8093E8000E9439128091E80080FFF1\r
+:10298000FCCF8091E30080688093E300111102C0C6\r
+:1029900082E001C083E08093F00186C080588230DD\r
+:1029A00008F082C08091F3019091F4018C3D53E0D6\r
+:1029B000950779F583E08A838AE289834FB7F89493\r
+:1029C000DE01139620E03EE051E2E32FF0E0509369\r
+:1029D0005700E49120FF03C0E295EF703F5FEF7076\r
+:1029E0008E2F90E0EA3010F0C79601C0C0968D930C\r
+:1029F0009D932F5F243149F74FBF8091E800877F77\r
+:102A00008093E8006AE270E0CE0101960E944011D6\r
+:102A100014C0AE014F5F5F4F6091F5010E948710B7\r
+:102A2000BC01892B09F440C09091E800977F9093F6\r
+:102A3000E80089819A810E94A3118091E8008B7738\r
+:102A40008093E80031C0803879F58091E800877F75\r
+:102A50008093E8008091EC018093F1008091E80080\r
+:102A60008E778093E8000E9439121EC081111CC02D\r
+:102A70009091F3019230C0F48091E800877F8093B9\r
+:102A8000E8009093EC010E9439128091EC018111D1\r
+:102A900006C08091E30087FD02C081E001C084E0B0\r
+:102AA0008093F0010E94720F8091E80083FF0AC0BA\r
+:102AB0008091E800877F8093E8008091EB0080623E\r
+:102AC0008093EB00AA960FB6F894DEBF0FBECDBF81\r
+:102AD000DF91CF911F910895CF938091F0018823CA\r
+:102AE000A1F0C091E900CF709091EC00892F817026\r
+:102AF00090FD80E8C82B1092E9008091E80083FDEA\r
+:102B00000E941B14CF70C093E900CF910895909359\r
+:102B10007401809373010895E0917301F091740141\r
+:102B2000309721F00190F081E02D099480E0089524\r
+:102B3000EF92FF920F931F93CF93DF93E091730176\r
+:102B4000F09174013097B1F18C010280F381E02D96\r
+:102B500009958091D70182FF2DC080FF04C083E7D3\r
+:102B600096E00E94C807E80110E18DE6E82E86E0B5\r
+:102B7000F82E8091D70180FF0BC088811F928F9320\r
+:102B8000FF92EF920E9461080F900F900F900F90AC\r
+:102B9000115021961111EDCF8091D70180FF0AC00D\r
+:102BA0008BE696E0DF91CF911F910F91FF90EF9010\r
+:102BB0000C94C807DF91CF911F910F91FF90EF9078\r
+:102BC0000895E0917301F0917401309721F0048031\r
+:102BD000F581E02D099408952091710130917201E1\r
+:102BE0008217930771F09093720180937101E091C5\r
+:102BF0007301F0917401309721F00680F781E02D88\r
+:102C00000994089520916F01309170018217930704\r
+:102C100071F09093700180936F01E0917301F091D6\r
+:102C20007401309721F00084F185E02D0994089516\r
+:102C300008950C9418160E946A220E94130A0C949C\r
+:102C40003023CF93C82F8091D70182FF1EC080FF11\r
+:102C500004C08CE896E00E94C8078091D70180FFED\r
+:102C60000CC01F92CF9387E896E09F938F930E94AA\r
+:102C700061080F900F900F900F908091D70180FF07\r
+:102C800004C085E896E00E94C8078C2FCF910C9471\r
+:102C9000BE0DCF92DF92EF92FF920F931F93CF93CF\r
+:102CA000DF93CDB7DEB72B970FB6F894DEBF0FBE1C\r
+:102CB000CDBF0E94300A86E7C82E81E0D82E00E002\r
+:102CC00010E0E02E802F0E945C0BF60141916F0115\r
+:102CD000F42EF826B1F40F5F1F4F0E30110589F75F\r
+:102CE0008FEF89838A831B820E9473228160782FF1\r
+:102CF0009D838C8349815A816B818D810E94EC1662\r
+:102D000040C09091D70191FF04C08B870E94620B55\r
+:102D10008B8520E030E04F2D50E0922FBA01022E3B\r
+:102D200002C0759567950A94E2F760FF24C02E8370\r
+:102D3000EF8221E030E0690102C0CC0CDD1C9A95E5\r
+:102D4000E2F790E08C219D21892B09F420E028876F\r
+:102D50000E9473228160782F9A8789874E815F81D4\r
+:102D600068858A850E94EC16F801EA58FE4F80813A\r
+:102D7000C826C08206C02F5F3F4F2630310569F656\r
+:102D8000AACF0E94A126109175010E948C151817D8\r
+:102D9000A1F00E948C15809375012B960FB6F894C4\r
+:102DA000DEBF0FBECDBFDF91CF911F910F91FF907E\r
+:102DB000EF90DF90CF900C9421162B960FB6F894DD\r
+:102DC000DEBF0FBECDBFDF91CF911F910F91FF905E\r
+:102DD000EF90DF90CF900895CF93DF93CDB7DEB71C\r
+:102DE0002B970FB6F894DEBF0FBECDBF4F83588729\r
+:102DF00069877A878B87DE01119686E0FD01119243\r
+:102E00008A95E9F785E0FE01379601900D928A9543\r
+:102E1000E1F749815A816B817C818D819E810E947D\r
+:102E2000021E2B960FB6F894DEBF0FBECDBFDF910A\r
+:102E3000CF910895CF93882309F4C2C0C82F823858\r
+:102E400059F40E948C1581FDBBC089E30E949E202D\r
+:102E50000E947D2189E30CC0833879F40E948C158F\r
+:102E600080FDAEC083E50E949E200E947D2183E507\r
+:102E70000E94F120CF910C947D21843859F40E9456\r
+:102E80008C1582FD9DC087E40E949E200E947D21BA\r
+:102E900087E4EECF8CEF8C0F813A48F48C2F0E94A0\r
+:102EA000342B81118DC08C2F0E949E20E3CF80E2B5\r
+:102EB0008C0F883048F4C77081E001C0880FCA9534\r
+:102EC000EAF70E944621D6CF8BE58C0F833078F449\r
+:102ED000C53A29F0C63A31F083E890E005C081E8B0\r
+:102EE00090E002C082E890E0CF910C94EC1588E568\r
+:102EF0008C0F833108F064C0C83A39F1C93A41F106\r
+:102F0000CA3A49F1CB3A51F1CC3A59F1CD3A61F193\r
+:102F1000C03B69F1CE3A71F1CF3A79F1C13B81F111\r
+:102F2000C23B89F1C33B91F1C43B99F1C53BA1F18F\r
+:102F3000C63BA9F1C73BB1F1C83BB9F1C93BC1F1EF\r
+:102F4000CA3BC9F180E090E038C082EE90E035C025\r
+:102F500089EE90E032C08AEE90E02FC085EB90E0E1\r
+:102F60002CC086EB90E029C087EB90E026C08CEC6B\r
+:102F700090E023C08DEC90E020C083E891E01DC07C\r
+:102F80008AE891E01AC082E991E017C084E991E0F3\r
+:102F900014C081E292E011C083E292E00EC084E2AC\r
+:102FA00092E00BC085E292E008C086E292E005C0A4\r
+:102FB00087E292E002C08AE292E0CF910C9402167E\r
+:102FC000CF910895882309F44BC0823859F40E94A8\r
+:102FD0008C1581FF45C089E30E949E200E947D21BF\r
+:102FE00089E30CC0833871F40E948C1580FF38C0CF\r
+:102FF00083E50E949E200E947D2183E50E94F120AE\r
+:103000000C947D21843859F40E948C1582FF28C0CD\r
+:1030100087E40E949E200E947D2187E4EFCF9CEFF1\r
+:10302000980F913A58F390E2980F983050F48770C7\r
+:1030300091E001C0990F8A95EAF7892F0E944C21EF\r
+:10304000DFCF9BE5980F933020F480E090E00C9464\r
+:10305000EC15885A833120F480E090E00C9402163D\r
+:103060000895882321F00E9446210C947D21089523\r
+:10307000882321F00E944C210C947D210895BF9259\r
+:10308000CF92DF92EF92FF920F931F93CF93DF9334\r
+:1030900000D000D000D0CDB7DEB725E0FC01DE01C6\r
+:1030A000119601900D922A95E1F7FC014081318142\r
+:1030B0000281258122952F7063817481672B09F429\r
+:1030C000E5C23F3F19F44F3F09F4E0C27C01498358\r
+:1030D0003A8389819A812E830E945D20182FB92E10\r
+:1030E0000E945C200E94231FEB2DE295EF70F0E020\r
+:1030F000E05AFF4F2E810C94322E8B2D807F9B2D1A\r
+:103100009F70F92E882319F0F29480EFF8220023A3\r
+:1031100049F0FF2009F467C28F2D0E9456210E94BA\r
+:103120007D2161C2812F0E94E217FF2009F4AEC207\r
+:103130008F2D0E945C2126960FB6F894DEBF0FBE3D\r
+:10314000CDBFDF91CF911F910F91FF90EF90DF9056\r
+:10315000CF90BF900C947D213B2D307F8B2D8F70B5\r
+:10316000303211F08295807F112319F0113021F156\r
+:103170002CC00023B9F0222309F4A0C1213009F0AA\r
+:103180009DC126960FB6F894DEBF0FBECDBFDF916E\r
+:10319000CF911F910F91FF90EF90DF90CF90BF9054\r
+:1031A0000C946621222319F0213009F46FC28E831A\r
+:1031B0000E9469218E8196C1002321F0223008F0FF\r
+:1031C00065C27CC1211162C28DC1002321F022237E\r
+:1031D00009F474C108C2222309F484C119C22B2D39\r
+:1031E00026952695237030E02115310521F02130F8\r
+:1031F0003105D1F04BC2002321F0812F9B2D93701C\r
+:1032000002C080E090E026960FB6F894DEBF0FBEB5\r
+:10321000CDBFDF91CF911F910F91FF90EF90DF9085\r
+:10322000CF90BF900C94EC15002321F0812F9B2DA3\r
+:10323000937002C080E090E026960FB6F894DEBF4F\r
+:103240000FBECDBFDF91CF911F910F91FF90EF90F7\r
+:10325000DF90CF90BF900C940216812F002319F0BD\r
+:103260000E94272502C00E948F2526960FB6F8944B\r
+:10327000DEBF0FBECDBFDF91CF911F910F91FF90A9\r
+:10328000EF90DF90CF90BF900C9414268B2D83701D\r
+:1032900009F07BC00111FAC1812F82958695877054\r
+:1032A000880F880F912F9F70C92ED12CE12CF12C03\r
+:1032B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7B7\r
+:1032C00014FF12C04FE050E060E070E004C0440F13\r
+:1032D000551F661F771F8A95D2F7CB01BA016095FB\r
+:1032E00070958095909503C060E070E0CB012B2D28\r
+:1032F000269526952370422F50E042305105D9F093\r
+:103300004330510569F16C297D298E299F2941306F\r
+:10331000510551F126960FB6F894DEBF0FBECDBF12\r
+:10332000DF91CF911F910F91FF90EF90DF90CF90A1\r
+:10333000BF900C944A1F6C297D298E299F292696BF\r
+:103340000FB6F894DEBF0FBECDBFDF91CF911F91B6\r
+:103350000F91FF90EF90DF90CF90BF900C94661F7D\r
+:103360000E944A1FC701B60126960FB6F894DEBF29\r
+:103370000FBECDBFDF91CF911F910F91FF90EF90C6\r
+:10338000DF90CF90BF900C942E1F002319F08B2D4F\r
+:10339000817001C08695882309F478C1812F8295B8\r
+:1033A00086958770880F880F912F9F70C92ED12C1A\r
+:1033B000E12CF12C082E04C0CC0CDD1CEE1CFF1CF3\r
+:1033C0000A94D2F714FF12C04FE050E060E070E0C2\r
+:1033D00004C0440F551F661F771F8A95D2F7CB0193\r
+:1033E000BA01609570958095909503C060E070E09B\r
+:1033F000CB012B2D269526952370422F50E042308D\r
+:103400005105D9F04330510569F16C297D298E2988\r
+:103410009F294130510551F126960FB6F894DEBF31\r
+:103420000FBECDBFDF91CF911F910F91FF90EF9015\r
+:10343000DF90CF90BF900C9424206C297D298E2999\r
+:103440009F2926960FB6F894DEBF0FBECDBFDF9141\r
+:10345000CF911F910F91FF90EF90DF90CF90BF9091\r
+:103460000C9440200E942420C701B60126960FB676\r
+:10347000F894DEBF0FBECDBFDF91CF911F910F91AA\r
+:10348000FF90EF90DF90CF90BF900C940820103FFA\r
+:10349000D1F118F4103E50F4A1C0123F09F463C0FA\r
+:1034A00008F44CC0133F09F473C098C01F708B2DF3\r
+:1034B0008F710023A1F00E94A11F812F26960FB6C5\r
+:1034C000F894DEBF0FBECDBFDF91CF911F910F915A\r
+:1034D000FF90EF90DF90CF90BF900C9431180E9436\r
+:1034E000C21F812F26960FB6F894DEBF0FBECDBF48\r
+:1034F000DF91CF911F910F91FF90EF90DF90CF90D0\r
+:10350000BF900C9438180023A9F02111BFC08B2D57\r
+:103510008F7126960FB6F894DEBF0FBECDBFDF9138\r
+:10352000CF911F910F91FF90EF90DF90CF90BF90C0\r
+:103530000C94E71F223008F0A9C0E9CF0023A9F0BE\r
+:103540008B2D8F7126960FB6F894DEBF0FBECDBFC0\r
+:10355000DF91CF911F910F91FF90EF90DF90CF906F\r
+:10356000BF900C94A11F002359F38B2D8F712696C9\r
+:103570000FB6F894DEBF0FBECDBFDF91CF911F9184\r
+:103580000F91FF90EF90DF90CF90BF900C94C21FEF\r
+:10359000002399F08B2D8F7126960FB6F894DEBF1D\r
+:1035A0000FBECDBFDF91CF911F910F91FF90EF9094\r
+:1035B000DF90CF90BF900C948C1F26960FB6F89496\r
+:1035C000DEBF0FBECDBFDF91CF911F910F91FF9056\r
+:1035D000EF90DF90CF90BF900C94821F0023A9F052\r
+:1035E000222309F4ADCF812F26960FB6F894DEBFC3\r
+:1035F0000FBECDBFDF91CF911F910F91FF90EF9044\r
+:10360000DF90CF90BF900C941A17222309F4ADCF0E\r
+:10361000812F26960FB6F894DEBF0FBECDBFDF9187\r
+:10362000CF911F910F91FF90EF90DF90CF90BF90BF\r
+:103630000C94E2174B2D4F70612FC7010E946A084E\r
+:1036400026960FB6F894DEBF0FBECDBFDF91CF91A7\r
+:103650001F910F91FF90EF90DF90CF90BF900C944F\r
+:10366000A61E4B2D4F70612FC70126960FB6F894FA\r
+:10367000DEBF0FBECDBFDF91CF911F910F91FF90A5\r
+:10368000EF90DF90CF90BF900C94680C26960FB609\r
+:10369000F894DEBF0FBECDBFDF91CF911F910F9188\r
+:1036A000FF90EF90DF90CF90BF9008950E9463212C\r
+:1036B0000E9438210E947D210E9447270E941426E3\r
+:1036C00080E090E00E94EC1580E090E00C940216FF\r
+:1036D0000E9453210C94561B0E945D20292F229595\r
+:1036E0002F7030E02C3031054CF42A3031056CF469\r
+:1036F000225031092230310588F407C02C303105C1\r
+:1037000049F02F30310531F009C0803E48F0803F4C\r
+:1037100029F406C093FB882780F9089580E0089576\r
+:1037200081E00895CF93DF9300D000D01F92CDB7F2\r
+:10373000DEB70F900F900F900F900F90DF91CF9109\r
+:103740000895CF93DF9300D000D000D0CDB7DEB77F\r
+:1037500026960FB6F894DEBF0FBECDBFDF91CF9196\r
+:1037600008951F93CF93DF93C091840116E0809159\r
+:103770008501C81799F0D0E01C9FF0011D9FF00D46\r
+:103780001124EA57FE4F4081518162817381848107\r
+:1037900095810E94A11B2196C770E9CFDF91CF913F\r
+:1037A0001F9108954091B6015091B7016091B80101\r
+:1037B0007091B9018091BA019091BB010C94A11B49\r
+:1037C0008091BB0182958F7009F054C08091B8013F\r
+:1037D000882309F44FC080918401A09185016091F4\r
+:1037E000B6017091B7014091B9015091BA01B6E0AC\r
+:1037F0008A1709F43FC090E041155105C1F17F3FA0\r
+:1038000011F46F3FA1F1B89FF001B99FF00D1124A1\r
+:10381000EA57FE4F218172132AC02081621327C00C\r
+:103820002281211124C0238134812417350710F40B\r
+:1038300021503109241B350B283C3105C0F420915F\r
+:10384000BB012F7020612093BB0126E0289FF0016F\r
+:10385000299FF00D1124E557FE4F80818F70806104\r
+:10386000808386EB91E00E943F180C94B11B019677\r
+:103870008770BECF0895CF92DF92EF92FF920F93A1\r
+:103880001F93CF93DF93CDB7DEB762970FB6F8944F\r
+:10389000DEBF0FBECDBF8C0185E0F801DE011D96B5\r
+:1038A00001900D928A95E1F7D8014C9111965C91A7\r
+:1038B000119712966C9112971396CD90DC901497F5\r
+:1038C0003091B6017091B7018091B9019091BA0120\r
+:1038D000009709F46BC17F3F19F43F3F09F466C1BB\r
+:1038E000E090B801EE2009F4C0C02091BB01C816D9\r
+:1038F000D90628F0F601E81BF90BCF0104C080952A\r
+:1039000090958C0D9D1DFF24F394883C910578F0D3\r
+:10391000F12C207F09F0C6C07C2DD98AC88A8989FC\r
+:103920000E94921B86EB91E00E943F18B1C0822F4B\r
+:10393000807F09F046C0751314C0341312C06111A2\r
+:1039400010C02F7020612093BB010E94D21B86EB18\r
+:1039500091E00E943F188091BB01D80115968C938D\r
+:103960002EC0CD2819F15F3F11F44F3FF9F0F62E2C\r
+:1039700061111CC0809184012091850136E082177D\r
+:1039800009F45AC090E0389FF001399FF00D1124DE\r
+:10399000EA57FE4F7181571306C07081471303C069\r
+:1039A0007281711103C001968770E9CFF62E6623EC\r
+:1039B00009F418C18091BB0181608093BB01F12C97\r
+:1039C00011C1751308C0341306C0611104C0809181\r
+:1039D000BB01D801C3C04D875E878D859E856A8BEC\r
+:1039E0000E946C1B6A898823E1F16623D1F1209142\r
+:1039F000BB01822F82958F7090E0029774F08091C6\r
+:103A0000B6019091B70198878F831986DB86CA86A5\r
+:103A10002C87CE0107960E943F1886E0F801A6EB9E\r
+:103A2000B1E001900D928A95E1F70E94E01B0E949F\r
+:103A3000D21BFF24F394D6C04D875E878D859E856B\r
+:103A40000E945D20292F22952F7030E02230310511\r
+:103A50000CF0BCC09F7009F0B6C0805E883008F4DE\r
+:103A6000C1C0C8010E943F18E4CFC816D90608F4A7\r
+:103A700053C0F601E81BF90BCF01883C910508F40F\r
+:103A800050C0F12C7C2DD98AC88A89890E94921B4A\r
+:103A9000E6EBF1E086E0DF011D928A95E9F70E94EE\r
+:103AA000D21BA0C0751314C0341312C0611110C012\r
+:103AB0008091BB01F8018583C8010E943F1886E010\r
+:103AC000E6EBF1E0DF011D928A95E9F7FE2C8AC052\r
+:103AD0004D875E878D859E856A8B0E946C1B6A89E7\r
+:103AE000882309F4BECF662309F4BBCF2091BB0124\r
+:103AF000822F82958F7090E002970CF48ECF809188\r
+:103B0000B6019091B7019A8389831B82DD82CC82B2\r
+:103B10002E83CE0101967FCF809590958C0D9D1DB3\r
+:103B2000ACCFF62E662309F49CCF75132EC0341348\r
+:103B30002CC02091BB0120FD1FC0822F82958F7069\r
+:103B4000D9F0D80115962C9315978F3049F08F5FD7\r
+:103B5000982F9295907F822F8F70892B15968C933A\r
+:103B6000C8010E943F1886E0F801A6EBB1E0019081\r
+:103B70000D928A95E1F793CF86E0F801A6EBB1E0CC\r
+:103B800001900D928A95E1F72DC04D875E878D8556\r
+:103B90009E850E946C1B811140CF8091BB0181608A\r
+:103BA0008093BB01C8010E943F181CC0662309F422\r
+:103BB00058CF4D875E878D859E850E946C1B88231C\r
+:103BC00009F44FCF2ACF811148CF0CC024303105E2\r
+:103BD0000CF047CF9F7009F440CFF8019581907F9A\r
+:103BE00009F03BCF8F2D62960FB6F894DEBF0FBE63\r
+:103BF000CDBFDF91CF911F910F91FF90EF90DF909C\r
+:103C0000CF9008951F93CF93DF93CDB7DEB72C9756\r
+:103C10000FB6F894DEBF0FBECDBF4F8358876987BC\r
+:103C20007A878B879C87CE0107960E943B1C88234E\r
+:103C300069F08F8198852A853B85232BF1F19F3F81\r
+:103C400009F063C08F3F09F060C037C086E0FE0115\r
+:103C50003796DE01119601900D928A95E1F76F81FA\r
+:103C60007885EA85FB85309741F17F3F11F46F3FFE\r
+:103C700021F12091850130E0C901019687709927D3\r
+:103C80004091840150E08417950709F447C0698387\r
+:103C90007A83FD83EC8396E0929FD001939FB00DD1\r
+:103CA0001124AA57BE4FFE01319601900D929A95AC\r
+:103CB000E1F7809385010E94B11B16E08091840199\r
+:103CC000909185018917C1F1189FC00111248A576D\r
+:103CD0009E4F0E943B1C882379F1E09184011E9F36\r
+:103CE000F0011124EA57FE4F4081518162817381B6\r
+:103CF000848195810E94A11B8091840190E00196AE\r
+:103D00008770992780938401D9CF4F815885698521\r
+:103D10007A858B859C850E94A11BCFCF0E94681B52\r
+:103D20001092850110928401E6EBF1E086E0DF015C\r
+:103D30001D928A95E9F7C1CF2C960FB6F894DEBF95\r
+:103D40000FBECDBFDF91CF911F910895EF92FF92EB\r
+:103D50000F931F93CF93DF938C01892B09F46CC0D1\r
+:103D6000F12CEE24E394E8012196F8018491843744\r
+:103D700040F4843008F051C0813081F0823019F174\r
+:103D80005BC0853709F444C0A8F19CE7980F9037D1\r
+:103D900008F052C08F770E94E21741C00E5F1F4F9C\r
+:103DA000FE01C49180E28C0F883048F4C7708E2DDC\r
+:103DB00001C0880FCA95EAF70E94562114C08C2FC3\r
+:103DC0000E941A172DC00E5F1F4FFE01C49180E2A2\r
+:103DD0008C0F883058F4C7708E2D01C0880FCA959B\r
+:103DE000EAF70E945C210E947D211AC08C2F0E945C\r
+:103DF000E21716C00E5F1F4FFE01C491CC2381F065\r
+:103E00008FE99FE00197F1F700C00000C150F6CFA5\r
+:103E10000E5F1F4FFE01F49003C00E941A178E011F\r
+:103E20008F2D882309F49FCFEFE9FFE03197F1F759\r
+:103E300000C000008150F5CFDF91CF911F910F910D\r
+:103E4000FF90EF90089508956093C0017093C101B1\r
+:103E50008093C2019093C3010C94561B0F931F9340\r
+:103E60000091C0011091C1012091C2013091C301A4\r
+:103E7000DC01CB01802B912BA22BB32B8093C001B3\r
+:103E80009093C101A093C201B093C3011F910F9100\r
+:103E90000C94561B0F931F930091C0011091C10108\r
+:103EA0002091C2013091C301DC01CB018023912319\r
+:103EB000A223B3238093C0019093C101A093C201B8\r
+:103EC000B093C3011F910F910C94561B0F931F9336\r
+:103ED0000091C0011091C1012091C2013091C30134\r
+:103EE000DC01CB0180279127A227B3278093C00153\r
+:103EF0009093C101A093C201B093C3011F910F9190\r
+:103F00000C94561B1092BC011092BD011092BE0180\r
+:103F10001092BF010C94561B41E050E060E070E04D\r
+:103F200004C0440F551F661F771F8A95D2F7409330\r
+:103F3000BC015093BD016093BE017093BF010C940E\r
+:103F4000561B41E050E060E070E004C0440F551F94\r
+:103F5000661F771F8A95D2F78091BC019091BD01B1\r
+:103F6000A091BE01B091BF01482B592B6A2B7B2B2E\r
+:103F70004093BC015093BD016093BE017093BF019B\r
+:103F80000C94561B41E050E060E070E004C0440F28\r
+:103F9000551F661F771F8A95D2F7409550956095FB\r
+:103FA00070958091BC019091BD01A091BE01B0912E\r
+:103FB000BF01482359236A237B234093BC015093BC\r
+:103FC000BD016093BE017093BF010C94561B41E08C\r
+:103FD00050E060E070E004C0440F551F661F771F7B\r
+:103FE0008A95D2F78091BC019091BD01A091BE014C\r
+:103FF000B091BF01482759276A277B274093BC010E\r
+:104000005093BD016093BE017093BF010C94561B89\r
+:104010000F931F930091BC011091BD012091BE012F\r
+:104020003091BF01DC01CB01802B912BA22BB32B54\r
+:104030008093BC019093BD01A093BE01B093BF01DA\r
+:104040001F910F910C94561B0F931F930091BC016D\r
+:104050001091BD012091BE013091BF01DC01CB0167\r
+:1040600080239123A223B3238093BC019093BD01AD\r
+:10407000A093BE01B093BF011F910F910C94561BEA\r
+:104080000F931F930091BC011091BD012091BE01BF\r
+:104090003091BF01DC01CB0180279127A227B327F4\r
+:1040A0008093BC019093BD01A093BE01B093BF016A\r
+:1040B0001F910F910C94561B0895CF92DF92EF92AF\r
+:1040C000FF920F931F93CF93DF938C01C090C00199\r
+:1040D000D090C101E090C201F090C3014091BC01B9\r
+:1040E0005091BD016091BE017091BF01C42AD52AD3\r
+:1040F000E62AF72ACFE1D0E0D701C6010C2E04C092\r
+:10410000B695A795979587950A94D2F780FF07C033\r
+:10411000B8018C2F0E948B0C8130910531F42197CE\r
+:1041200058F7B80180E00E948B0CDF91CF911F916E\r
+:104130000F91FF90EF90DF90CF90089590910C0138\r
+:10414000992321F090910D01911109C020910E0148\r
+:1041500030910F01F90132969FEF40E030C0982F67\r
+:104160009695969596959F30A0F4E0910E01F0916A\r
+:104170000F01E90FF11D877021E030E0A90102C0B5\r
+:10418000440F551F8A95E2F7CA019181892B8183DB\r
+:1041900008959091D70190FF23C01F928F938DEBCC\r
+:1041A00096E09F938F930E9461080F900F900F905D\r
+:1041B0000F9008959F3F39F04F5F4E3041F051917D\r
+:1041C0005813F8CF0DC05111F7CF942FF5CF9F3F63\r
+:1041D00039F0F901E90FF11D97FDFA9582830895F1\r
+:1041E000089590910C01992321F090910D01911166\r
+:1041F00009C020910E0130910F01F9013296205F24\r
+:104200003F4F30C0982F9695969596959F30A8F47D\r
+:10421000E0910E01F0910F01E90FF11D877021E08F\r
+:1042200030E0A90102C0440F551F8A95E2F7CA0188\r
+:10423000809591818923818308959091D70190FF82\r
+:1042400016C01F928F938FE996E09F938F930E94E1\r
+:1042500061080F900F900F900F9008953196E2171C\r
+:10426000F30729F090819813F9CF1082F7CF0895C2\r
+:1042700081E090E0E0910E01F0910F01E80FF91F4D\r
+:104280001082019680319105A9F708959091D60189\r
+:10429000892B8093D601089580959091D60189232A\r
+:1042A0008093D60108951092D60108959091D5017A\r
+:1042B000892B8093D501089580959091D50189230C\r
+:1042C0008093D50108951092D50108958093C4017B\r
+:1042D00008951092C401089580910E0190910F01EC\r
+:1042E000FC0131969C01205F3F4F80E0919191113C\r
+:1042F0008F5FE217F307D1F70895E0910E01F09177\r
+:104300000F018091D6018083E0910E01F0910F01A1\r
+:1043100090818091D501892B80838091C40188236D\r
+:1043200061F0E0910E01F0910F019081892B808363\r
+:104330000E946C2181111092C40180910E01909114\r
+:104340000F010C94981590933B0180933A010895C6\r
+:10435000CF92DF92EF92FF926C01EE24FF24C11402\r
+:10436000D104E104F10421F0C701B60120E101C04C\r
+:1043700020E0C72ED82EE92EFF24C114D104E10479\r
+:10438000F10419F0285FC701B6016B017C0154E00C\r
+:10439000F694E794D794C7945A95D1F7C114D104F1\r
+:1043A000E104F10419F02C5FC701B6016B017C0137\r
+:1043B00042E0F694E794D794C7944A95D1F7C11494\r
+:1043C000D104E104F10419F02E5FC701B601DC014C\r
+:1043D000CB01B695A79597958795892B8A2B8B2B23\r
+:1043E00009F02F5F822FFF90EF90DF90CF9008951C\r
+:1043F0008295982F9C7C392F36953695282F2373DC\r
+:1044000044E0249FC0011124932F982B292F2A7A4E\r
+:104410002695892F8575880F822B08951F93CF933A\r
+:10442000DF931F92CDB7DEB799830E94F821182F32\r
+:104430009981892F0E94F821212F30E0322F2227E5\r
+:10444000A901482BCA010F90DF91CF911F910895C8\r
+:104450008091F001843009F11092D80120E488E1C4\r
+:1044600090E00FB6F894A895809360000FBE20935B\r
+:10447000600083B7817F846083BF83B7816083BF1F\r
+:104480007894889583B78E7F83BF88E10FB6F894C0\r
+:1044900080936000109260000FBE08950895089503\r
+:1044A000CF930E944E220E94300A0E944F22C0E009\r
+:1044B0008C2F0E945C0B811104C0CF5FCE30C1F7FE\r
+:1044C00001C081E0CF9108950E94681B0E948C1565\r
+:1044D0000C94BE0D82E084BD93E095BD9AEF97BD2C\r
+:1044E00080936E0008952FB7F8948091D901909130\r
+:1044F000DA01A091DB01B091DC012FBF0895CF92CA\r
+:10450000DF92EF92FF920F931F932FB7F894409191\r
+:10451000D9015091DA016091DB017091DC012FBF6C\r
+:104520006A017B01EE24FF248C0120E030E0C016FC\r
+:10453000D106E206F30610F4415051099A01281BF6\r
+:10454000390BC9011F910F91FF90EF90DF90CF9031\r
+:1045500008951F920F920FB60F9211248F939F937D\r
+:10456000AF93BF938091D9019091DA01A091DB01C3\r
+:10457000B091DC010196A11DB11D8093D9019093EA\r
+:10458000DA01A093DB01B093DC01BF91AF919F9161\r
+:104590008F910F900FBE0F901F9018950E948A1256\r
+:1045A000F8942FEF87EA91E6215080409040E1F7A0\r
+:1045B00000C0000087E090EBDC018093F90190934C\r
+:1045C000FA01A093FB01B093FC019CE088E10FB6D7\r
+:1045D000F894A895809360000FBE90936000FFCF81\r
+:1045E000EF92FF920F931F93CF93DF93D82FC0E0EA\r
+:1045F0008C2F0E945C0B00E010E0E82EF12CC7012C\r
+:10460000002E02C0959587950A94E2F780FD06C0BA\r
+:104610000F5F1F4F0630110591F709C0602F7C2FE7\r
+:1046200080E00E94690CD813F3CF81E004C0CF5F13\r
+:10463000CE30F1F680E0DF91CF911F910F91FF9086\r
+:10464000EF900895CF93C82F8CE20E94F022882328\r
+:1046500021F08C2FCF910C94F02280E0CF9108951F\r
+:10466000CF930E947F24811102C00E94652482EEB4\r
+:1046700096E00E94C807C5E6C15049F00E94300A82\r
+:104680008FE39CE90197F1F700C00000F5CF8BEDB7\r
+:1046900096E00E94C80789E20E942223811113C17B\r
+:1046A0008AE20E94222381110E94652485E00E94F3\r
+:1046B000222381110E94CE220E948A248093D70156\r
+:1046C00087E00E9422238823A9F18BE10E94222304\r
+:1046D000882351F08091D70181FB222720F991E0B6\r
+:1046E000922790FB81F90EC08EE00E94222388233E\r
+:1046F00061F08091D70182FB222720F991E0922777\r
+:1047000090FB82F98093D70115C080E10E9422239B\r
+:104710009091D701882341F093FB222720F981E073\r
+:10472000822780FB93F904C0892F809580FB90F944\r
+:104730009093D7018091D7010E948E240E949C24DF\r
+:104740008093EA0180EE0E942223882341F0809129\r
+:10475000EA01982F909590FB80F98093EA0189E314\r
+:104760000E942223882359F08091EA0181FB2227AD\r
+:1047700020F991E0922790FB81F98093EA0182EE83\r
+:104780000E942223882359F08091EA0182FB22278C\r
+:1047900020F991E0922790FB82F98093EA0186EE5E\r
+:1047A0000E942223882359F08091EA0183FB22276B\r
+:1047B00020F991E0922790FB83F98093EA0183EE40\r
+:1047C0000E942223882359F08091EA0184FB22274A\r
+:1047D00020F991E0922790FB84F98093EA0185E328\r
+:1047E0000E942223882359F08091EA0185FB222729\r
+:1047F00020F991E0922790FB85F98093EA0181E30B\r
+:104800000E942223882359F08091EA0186FB222707\r
+:1048100020F991E0922790FB86F98093EA0181E1EB\r
+:104820000E942223882359F08091EA0187FB2227E6\r
+:1048300020F991E0922790FB87F98093EA0180911B\r
+:10484000EA010E94A0248091EA0187FB882780F971\r
+:1048500080930D0187E20E942223C82F8EE10E94DF\r
+:1048600022238111C2608FE10E9422238111C46042\r
+:1048700080E20E9422238111C86081E20E942223EB\r
+:104880008111C06182E20E9422238111C06283E211\r
+:104890000E9422238111C06484E20E942223882383\r
+:1048A00011F0C06802C0CC2329F08C2F0E949724FD\r
+:1048B0006C2F03C00E949324682F70E080E090E08A\r
+:1048C000CF910C94241FCF9108956DEE7EEF80E080\r
+:1048D00090E00E94682E60E082E090E00E945A2EF4\r
+:1048E00060E083E090E00E945A2E60E084E090E077\r
+:1048F0000E945A2E60E085E090E00C945A2E80E0F1\r
+:1049000090E00E94542E21E08D3E9E4F09F020E061\r
+:10491000822F089582E090E00C944C2E682F82E064\r
+:1049200090E00C945A2E83E090E00C944C2E682F6B\r
+:1049300083E090E00C945A2E84E090E00C944C2E8E\r
+:10494000682F84E090E00C945A2E8091DF0180FF64\r
+:104950000BC06091130185E0689FB001112475952B\r
+:104960006795759567952BC081FF09C0609113010C\r
+:1049700085E0689FB00111247595679520C082FF7E\r
+:1049800007C06091130185E0689FB001112417C032\r
+:104990009091E0019923D1F060911201961788F768\r
+:1049A0002091130185E0289F90011124929FA0017E\r
+:1049B000939F500D112470E0CA010E941E2E603892\r
+:1049C000710540F46115710539F002C065E070E0D1\r
+:1049D000862F08958FE7089581E008958091DF0183\r
+:1049E00080FF08C06091110170E07595679575951D\r
+:1049F000679521C081FF06C06091110170E0759537\r
+:104A0000679519C082FF04C06091110170E010C069\r
+:104A10009091E0019923C1F0609110019617A0F7E1\r
+:104A200080911101899FC001112470E00E941E2E07\r
+:104A30006038710528F46115710521F0862F0895FD\r
+:104A40008FE7089581E0089561E070E0F4CF803F42\r
+:104A500021F40E94A524819504C0813F29F40E947D\r
+:104A6000A5248093E3010895823F21F40E94A524A8\r
+:104A7000819504C0833F29F40E94A5248093E2011C\r
+:104A80000895893F19F40E94EE2405C08A3F31F44D\r
+:104A90000E94EE2481958093E40108958B3F21F4D8\r
+:104AA0000E94EE24819504C08C3F29F40E94EE24DC\r
+:104AB0008093E5010895843F21F48091E1018160B4\r
+:104AC00017C0853F21F48091E101826011C0863FCB\r
+:104AD00021F48091E10184600BC0873F21F4809133\r
+:104AE000E101886005C0883F31F48091E101806177\r
+:104AF0008093E10108958D3F21F48091DF01816071\r
+:104B00000BC08E3F21F48091DF01826005C08F3F92\r
+:104B100029F48091DF0184608093DF010895803F54\r
+:104B200039F48091E30187FF6CC01092E30169C002\r
+:104B3000813F29F48091E3011816BCF362C0909183\r
+:104B4000E201823F29F497FF5CC01092E20159C054\r
+:104B5000833F19F41916CCF354C0893F41F4809176\r
+:104B6000E40118160CF04DC01092E4014AC08A3FCF\r
+:104B700029F48091E40187FF44C0F6CF8B3F39F4DC\r
+:104B80008091E50187FF3DC01092E5013AC08C3F5E\r
+:104B900029F48091E5011816BCF333C0843F21F459\r
+:104BA0008091E1018E7F17C0853F21F48091E10162\r
+:104BB0008D7F11C0863F21F48091E1018B7F0BC076\r
+:104BC000873F21F48091E101877F05C0883F31F460\r
+:104BD0008091E1018F7E8093E10113C08D3F21F42C\r
+:104BE0008091DF018E7F0BC08E3F21F48091DF0129\r
+:104BF0008D7F05C08F3F29F48091DF018B7F8093EB\r
+:104C0000DF018091E20181110EC08091E3018111E9\r
+:104C10000AC08091E401811106C08091E5018111F3\r
+:104C200002C01092E00108958091D70183FF7EC0F9\r
+:104C30008EE197E00E94C8078091E1011F928F9357\r
+:104C400089E197E09F938F930E94610887E197E045\r
+:104C50000E94C8078091E201282F332727FD309555\r
+:104C60003F938F9384E197E09F938F930E94610815\r
+:104C700082E197E00E94C8078091E301282F332743\r
+:104C800027FD30953F938F938FE097E09F938F930D\r
+:104C90000E9461088DE097E00E94C8078091E401BE\r
+:104CA000282F332727FD30953F938F938AE097E095\r
+:104CB0009F938F930E94610888E097E00E94C80745\r
+:104CC0008091E501282F332727FD30953F938F935F\r
+:104CD00085E097E09F938F930E94610882E097E0C0\r
+:104CE0000E94C8078091E0011F928F938FEF96E09A\r
+:104CF0009F938F930E9461088DEF96E00E94C807F2\r
+:104D00008091DF011F928F938AEF96E09F938F939C\r
+:104D10000E94610887EF96E00E94C8078DB79EB792\r
+:104D20004C960FB6F8949EBF0FBE8DBF81EE91E0FA\r
+:104D30000E94E1150E9473229093DE018093DD01B1\r
+:104D400008951F93CF93DF938091DD019091DE0151\r
+:104D50000E947F22AC019091E001992321F02091E3\r
+:104D6000140130E006C0209115018AE0289F9001CF\r
+:104D700011244217530708F486C08091E201C091C4\r
+:104D8000E301D091E4011091E501811107C0C11147\r
+:104D900076C0D11174C0111172C075C09F3F19F057\r
+:104DA0009F5F9093E001181624F40E94A52480933D\r
+:104DB000E2018091E20187FF05C00E94A524819550\r
+:104DC0008093E2011C1624F40E94A5248093E30141\r
+:104DD0008091E30187FF05C00E94A52481958093FF\r
+:104DE000E3016091E201662339F1C091E301CC2334\r
+:104DF00019F1772767FD7095872F972F0E94232D34\r
+:104E000023E333E343E35FE30E94872D0E94F02C0A\r
+:104E10006093E2016C2F772767FD7095872F972F9E\r
+:104E20000E94232D23E333E343E35FE30E94872DB6\r
+:104E30000E94F02C6093E3011D1624F40E94EE24DE\r
+:104E40008093E4018091E40187FF05C00E94EE2475\r
+:104E500081958093E401111624F40E94EE2480933E\r
+:104E6000E5018091E50187FF05C00E94EE24819550\r
+:104E70008093E501DF91CF911F910C9414269F3F01\r
+:104E800009F08ECF96CFDF91CF911F910895E1EE7B\r
+:104E9000F1E085E0DF011D928A95E9F71092E001CB\r
+:104EA0001092DF01089581E499E00E94C8071F92E3\r
+:104EB00081E08F931F9285E08F9383EF98E09F931B\r
+:104EC0008F930E9461080F900F900F900F900F909A\r
+:104ED0000F9008958330E9F128F4813061F0823039\r
+:104EE00009F10895853009F462C008F449C086309C\r
+:104EF00009F474C0089580911501262F30E0280F21\r
+:104F0000311D2F3F310524F4680F6093150103C054\r
+:104F10008FEF80931501809115011F928F938CE282\r
+:104F200098E072C080911401262F30E0280F311DC7\r
+:104F30002F3F310524F4680F6093140103C08FEFF5\r
+:104F400080931401809114011F928F938AE198E05D\r
+:104F50005BC080911301262F30E0280F311D2F3FB9\r
+:104F6000310524F4680F6093130103C08FEF809321\r
+:104F70001301809113011F928F9387E098E044C042\r
+:104F800080911201262F30E0280F311D2F3F31056F\r
+:104F900024F4680F6093120103C08FEF8093120115\r
+:104FA000809112011F928F9382EF97E02DC0809124\r
+:104FB0001101262F30E0280F311D2F3F310524F439\r
+:104FC000680F6093110103C08FEF809311018091EE\r
+:104FD00011011F928F9389ED97E016C08091100107\r
+:104FE000262F30E0280F311D2F3F310524F4680FA4\r
+:104FF0006093100103C08FEF809310018091100126\r
+:105000001F928F938EEB97E09F938F930E9461087E\r
+:105010000F900F900F900F900895833081F128F436\r
+:10502000813059F08230D1F00895853009F449C0BB\r
+:10503000B8F1863009F456C00895809115016817BB\r
+:1050400020F4861B8093150102C0109215018091F7\r
+:1050500015011F928F938FEA97E054C0809114013D\r
+:10506000681720F4861B8093140102C0109214016B\r
+:10507000809114011F928F938DE997E043C0809136\r
+:105080001301681720F4861B8093130102C010924D\r
+:105090001301809113011F928F938AE897E032C029\r
+:1050A00080911201681720F4861B8093120102C0C0\r
+:1050B00010921201809112011F928F9385E797E061\r
+:1050C00021C080911101681720F4861B8093110183\r
+:1050D00002C010921101809111011F928F938CE5F3\r
+:1050E00097E010C080911001681720F4861B809310\r
+:1050F000100102C010921001809110011F928F9335\r
+:1051000081E497E09F938F930E9461080F900F9026\r
+:105110000F900F900895CF93C82F1F928F9386E41E\r
+:105120009AE09F938F930E94610881E090E0A0E055\r
+:10513000B0E0BC01CD0104C0660F771F881F991F26\r
+:10514000CA95D2F70E94241F0F900F900F900F90D6\r
+:10515000CF910C94681BCF938D3109F465C0B0F5E5\r
+:105160008E3009F4CCC100F5873009F49BC1A8F456\r
+:10517000863009F06DC28091D701817F8E7F809348\r
+:10518000D7018BE49AE00E94C8078DE89EE00E9458\r
+:10519000C80781E08093E70180C1883009F44FC0DF\r
+:1051A0008B3009F47CC154C2863109F4F0C138F463\r
+:1051B000803109F4B8C1813109F430C249C2893162\r
+:1051C00009F4CEC18B3109F486C142C2853309F49A\r
+:1051D00037C248F4873209F433C208F433C2893243\r
+:1051E00009F42EC235C2833438F48A3308F02CC255\r
+:1051F000883309F454C12CC2833409F421C28834A1\r
+:1052000009F026C20E94681B8CE79EE00E94C80736\r
+:105210009FEF23ED80E3915020408040E1F700C0F4\r
+:1052200000000E94CE2239C18CE99EE00E94C8078E\r
+:105230000E94AA2C0E948C150E94BE0D2EC181E9ED\r
+:105240009EE00E94C8078CE59CE00E94C8070E946F\r
+:1052500093241F928F9389E59CE09F938F930E94E4\r
+:10526000610887E59CE00E94C8070E948A24C82F35\r
+:1052700084E49CE00E94C8071F92CF938FE39CE0D8\r
+:105280009F938F930E9461088DE39CE00E94C80762\r
+:1052900083E39CE00E94C8078C2F81701F928F933C\r
+:1052A00080E39CE09F938F930E9461088EE29CE0D4\r
+:1052B0000E94C80784E29CE00E94C807C1FB8827BF\r
+:1052C00080F91F928F9381E29CE09F938F930E94BD\r
+:1052D00061088FE19CE00E94C80783E19CE00E9486\r
+:1052E000C807C2FB882780F91F928F9380E19CE05A\r
+:1052F0009F938F930E9461088EE09CE00E94C807F4\r
+:1053000085E09CE00E94C807C3FBCC27C0F91F9230\r
+:10531000CF9382E09CE09F938F930E94610880E08E\r
+:105320009CE00E94C8070E949C24C82F8CEE9BE042\r
+:105330000E94C8071F92CF9387EE9BE09F938F93A5\r
+:105340000E94610885EE9BE00E94C8078CEC9BE000\r
+:105350000E94C8078C2F81701F928F9389EC9BE06D\r
+:105360009F938F930E9461088DB79EB780960FB66A\r
+:10537000F8949EBF0FBE8DBF87EC9BE00E94C807CC\r
+:1053800080EB9BE00E94C807C1FB882780F91F9231\r
+:105390008F938DEA9BE09F938F930E9461088BEA25\r
+:1053A0009BE00E94C80789E99BE00E94C807C2FBF6\r
+:1053B000882780F91F928F9386E99BE09F938F93B4\r
+:1053C0000E94610884E99BE00E94C80782E89BE094\r
+:1053D0000E94C807C3FB882780F91F928F938FE72D\r
+:1053E0009BE09F938F930E9461088DE79BE00E9452\r
+:1053F000C80783E79BE00E94C807C4FB882780F9A1\r
+:105400001F928F9380E79BE09F938F930E94610888\r
+:105410008EE69BE00E94C8078CE59BE00E94C807CF\r
+:10542000C5FB882780F91F928F9389E59BE09F93A6\r
+:105430008F930E94610887E59BE00E94C8078BE379\r
+:105440009BE00E94C807C6FB882780F91F928F93B4\r
+:1054500088E39BE09F938F930E94610886E39BE023\r
+:105460000E94C8078EE29BE00E94C807C7FBCC27BA\r
+:10547000C0F91F92CF938BE29BE09F938F930E9482\r
+:10548000610889E29BE00E94C8078DB79EB74C96E1\r
+:105490000FB6F8949EBF0FBE8DBFC1E0DEC082E79D\r
+:1054A0009AE05BC08091D701C82FC17080FF09C00E\r
+:1054B0008FE69EE00E94C8078091D701817F8E7F92\r
+:1054C00047C083E69EE00E94C8078091D7018160B3\r
+:1054D0008093D701E2CF9091D70191FBCC27C0F9FF\r
+:1054E00081E0C827892FC0FB81F98093D701CC23A5\r
+:1054F00019F086E59EE027C088E49EE02EC09091DA\r
+:10550000D70192FBCC27C0F981E0C827892FC0FBC7\r
+:1055100082F98093D701CC2319F089E39EE013C070\r
+:1055200089E29EE01AC09091D70193FBCC27C0F985\r
+:1055300081E0C827892FC0FB83F98093D701CC2352\r
+:1055400051F08DE19EE00E94C8078091D7018160F3\r
+:105550008093D70182C080E19EE00E94C8079DCF62\r
+:1055600081E09EE00E94C80785ED9DE00E94C8078B\r
+:1055700088E99DE00E94C8078BE69DE00E94C8076D\r
+:1055800087E29DE00E94C8078CEF9CE0E6CF8EEE9C\r
+:105590009CE00E94C8070E948C151F928F9384ED97\r
+:1055A0009CE09F938F930E94610880910C011F9251\r
+:1055B0008F938DEB9CE09F938F930E946108809165\r
+:1055C0006E011F928F938AEA9CE09F938F930E94B3\r
+:1055D000610880910D011F928F9387E99CE09F9352\r
+:1055E0008F930E9461088091D9019091DA01A09176\r
+:1055F000DB01B091DC01BF93AF939F938F9383E85E\r
+:105600009CE09F938F930E9461088DB79EB746964A\r
+:105610000FB6F8949EBF0FBE8DBF3FCF0E94681B90\r
+:10562000C0910D0181E0C827C0930D01CC2329F062\r
+:1056300089E79CE00E94C80710C08EE69CE08DCFF1\r
+:1056400080E003C08D5101C089530E948B2825CF73\r
+:105650008CE69CE00E94C807C0E08C2FCF91089593\r
+:1056600080E0089580E00895CF93C82F8091E701EE\r
+:10567000813081F020F0823009F44FC045C1E091C3\r
+:105680000E01F0910F018081813169F0823209F0C1\r
+:105690003DC109C0E0910E01F0910F01808181317F\r
+:1056A00011F0823261F48C2F0E94302B811104C0E2\r
+:1056B0008C2F0E94AB282FC081E090E02CC08C2F53\r
+:1056C0000E94322B811126C0C431E1F070F4CB303E\r
+:1056D00081F0C031D1F40E9453278EE39AE00E94FA\r
+:1056E000C80782E08093E70115C0C93259F0C8337A\r
+:1056F00061F48BE49AE00E94C80782E49AE00E9479\r
+:10570000C80708C01092E70103C18CE39AE00E9429\r
+:10571000C807FEC081E08170FDC0C43220F5CE31E3\r
+:1057200008F0C0C0CB3099F1C8F4C73009F0D2C03E\r
+:105730008AE08093150194E19093140193E0909393\r
+:1057400013018093120188E08093110188E2809315\r
+:10575000100182EE98E00E94C807BFC0C33149F132\r
+:10576000C431C1F0B7C0CB3409F4A9C028F4C932A0\r
+:1057700089F0C83361F0AEC0C13509F49EC0C235AE\r
+:1057800009F499C0CE3409F0A5C06AE09EC00E9419\r
+:105790005327A3C08091E601882319F01092E601F7\r
+:1057A0009CC08FEE98E00E94C80781E08093E701DB\r
+:1057B000B1C089EC98E00E94C80787EB98E00E948E\r
+:1057C000C807809115011F928F9384EB98E09F93F7\r
+:1057D0008F930E94610882EB98E00E94C80780EADC\r
+:1057E00098E00E94C807809114011F928F938DE961\r
+:1057F00098E09F938F930E9461088BE998E00E9444\r
+:10580000C8078CE898E00E94C807809113011F9296\r
+:105810008F9389E898E09F938F930E94610887E8AF\r
+:1058200098E00E94C80786E798E00E94C807809128\r
+:1058300012011F928F9383E798E09F938F930E94AA\r
+:10584000610881E798E00E94C8078CE598E00E9413\r
+:10585000C807809111011F928F9389E598E09F936B\r
+:105860008F930E94610887E598E00E94C80780E452\r
+:1058700098E00E94C807809110011F928F938DE3DA\r
+:1058800098E09F938F930E9461088BE398E00E94B9\r
+:10589000C8078DB79EB748960FB6F8949EBF0FBE47\r
+:1058A0008DBF1BC0CE51EC2FF0E0E15DFE4F80813B\r
+:1058B0008093E60112C061E003C061E006C06AE0C7\r
+:1058C0008091E6010E946A2708C08091E6010E944B\r
+:1058D0000D2803C080EE98E013C08091E601882374\r
+:1058E00069F01F928F938AED98E09F938F930E94A7\r
+:1058F00061080F900F900F900F9004C087ED98E013\r
+:105900000E94C80781E006C01092E70180E002C053\r
+:1059100080E001CFCF910895E1E8F0E080818860D8\r
+:1059200080838081816080838FB7F89493E0909327\r
+:10593000890090ED909388008FBF0895EFE6F0E026\r
+:105940008081826080830895EFE6F0E080818D7F22\r
+:1059500080830895EFE6F0E0908182E089278083DC\r
+:1059600008951F920F920FB60F9211242F933F9319\r
+:105970004F935F936F937F938F939F93AF93BF9357\r
+:10598000EF93FF938091E8019091E9010196909344\r
+:10599000E9018093E801811103C082E00E94BE0DFD\r
+:1059A000E091E901E695E695F0E0E455F14FE491E8\r
+:1059B0008091E8018E1303C080E00E94BE0DFF912C\r
+:1059C000EF91BF91AF919F918F917F916F915F9177\r
+:1059D0004F913F912F910F900FBE0F901F901895F0\r
+:1059E00004D06894B1118DC0089570D088F09F578D\r
+:1059F00090F0B92F9927B751A0F0D1F0660F771F1B\r
+:105A0000881F991F1AF0BA95C9F712C0B13081F0FA\r
+:105A100077D0B1E0089574C0672F782F8827B85FDA\r
+:105A200039F0B93FCCF3869577956795B395D9F75B\r
+:105A30003EF490958095709561957F4F8F4F9F4F65\r
+:105A40000895E89409C097FB3EF490958095709571\r
+:105A500061957F4F8F4F9F4F9923A9F0F92F96E9BA\r
+:105A6000BB279395F695879577956795B795F1112F\r
+:105A7000F8CFFAF4BB0F11F460FF1BC06F5F7F4FCC\r
+:105A80008F4F9F4F16C0882311F096E911C07723DE\r
+:105A900021F09EE8872F762F05C0662371F096E8E7\r
+:105AA000862F70E060E02AF09A95660F771F881FB6\r
+:105AB000DAF7880F9695879597F9089557FD9058CE\r
+:105AC000440F551F59F05F3F71F04795880F97FBC2\r
+:105AD000991F61F09F3F79F087950895121613067C\r
+:105AE0001406551FF2CF4695F1DF08C016161706AB\r
+:105AF0001806991FF1CF86957105610508940895E0\r
+:105B0000E894BB2766277727CB0197F908950BD038\r
+:105B100078C069D028F06ED018F0952309F05AC0EB\r
+:105B20005FC01124EECFCADFA0F3959FD1F3950F8C\r
+:105B300050E0551F629FF001729FBB27F00DB11D11\r
+:105B4000639FAA27F00DB11DAA1F649F6627B00DA1\r
+:105B5000A11D661F829F2227B00DA11D621F739F8A\r
+:105B6000B00DA11D621F839FA00D611D221F749F98\r
+:105B70003327A00D611D231F849F600D211D822FDF\r
+:105B8000762F6A2F11249F5750408AF0E1F0882326\r
+:105B90004AF0EE0FFF1FBB1F661F771F881F915033\r
+:105BA0005040A9F79E3F510570F014C0AACF5F3F47\r
+:105BB000ECF3983EDCF3869577956795B795F79566\r
+:105BC000E7959F5FC1F7FE2B880F911D96958795EE\r
+:105BD00097F9089597F99F6780E870E060E008956D\r
+:105BE0009FEF80EC089500240A94161617061806F5\r
+:105BF0000906089500240A941216130614060506D1\r
+:105C00000895092E0394000C11F4882352F0BB0F61\r
+:105C100040F4BF2B11F460FF04C06F5F7F4F8F4FC4\r
+:105C20009F4F0895991B79E004C0991F961708F0BB\r
+:105C3000961B881F7A95C9F78095089597FB072EC4\r
+:105C400016F4009407D077FD09D00E94382E07FC87\r
+:105C500005D03EF4909581959F4F0895709561957C\r
+:105C60007F4F0895EE0FFF1F0590F491E02D0994EA\r
+:105C7000AA1BBB1B51E107C0AA1FBB1FA617B70772\r
+:105C800010F0A61BB70B881F991F5A95A9F780958E\r
+:105C90009095BC01CD010895F999FECF92BD81BDCB\r
+:105CA000F89A992780B50895A8E1B0E042E050E065\r
+:105CB0000C946F2E262FF999FECF1FBA92BD81BD8D\r
+:105CC00020BD0FB6F894FA9AF99A0FBE019608957E\r
+:105CD0000E945A2E272F0C945B2EDC01CB01FC0175\r
+:105CE000F999FECF06C0F2BDE1BDF89A319600B435\r
+:0E5CF0000D9241505040B8F70895F894FFCF40\r
+:105CFE002002BF0DB00E8D0E590E250E0101C501ED\r
+:105D0E0028080A03140A3F4D3620392C06DF05A950\r
+:105D1E000589055005C304DC04F5040E052E0501A6\r
+:0A5D2E00020304050607080900003F\r
+:00000001FF\r
diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md
new file mode 100644 (file)
index 0000000..785400d
--- /dev/null
@@ -0,0 +1,6 @@
+# ErgoDox EZ mpiechotka Configuration
+
+Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys.
+
+
+
diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
new file mode 100644 (file)
index 0000000..0298cb7
--- /dev/null
@@ -0,0 +1,432 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "keymap_extras/keymap_german_osx.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+#define SMLY 3 // media keys
+#define NUMB 4 // number keys
+#define EGOS 5 // Egoshooter layer
+
+#define M_CTRL_CMDV 1
+#define M_CTRL_CMDC 2
+#define M_MEH_SH_ACUT 3
+#define M_DE_PLUS_CTRLALT 12
+#define M_DE_CIRC_CTRLCMD 13
+#define M_TOGGLE_5 14
+
+#define SM_SMILE 4
+#define SM_SMIRK 5
+#define SM_FROWN 6
+#define SM_CRY 7
+#define SM_KISS 8
+#define SM_HEART 9
+#define SM_LAUGH 10
+#define SM_SAD 11
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |  ESC   |   1  |   2  |   3  |   4  |   5  |CMD-V |           |CMD-C |   6  |   7  |   8  |   9  |   0  |   ß    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |  TAB   |   Q  |   W  |   E  |   R  |   T  | CMD  |           | CMD  |   Z  |   U  |   I  |   O  |   P  |   ü    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  LALT  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ö  |  ä/RALT|
+ * |--------+------+------+------+------+------| LALT |           | RALT |------+------+------+------+------+--------|
+ * | LShift |Y/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |-/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |</L1|  ^°  |AltShf| Left | Right|                                       |  Up  | Down | CMD-SHIFT |  +  | #/L1 |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,---------------.
+ *                                        | MDIA | Meh  |       | Hyper|  NUM   |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Back-|  Del |------|       |------|  Enter | Space|
+ *                                 | Space|      | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_ESC,                  DE_1,         DE_2,   DE_3,   DE_4,   DE_5,   M(M_CTRL_CMDV),
+        KC_TAB,                  DE_Q,         DE_W,   DE_E,   DE_R,   DE_T,   KC_LGUI,
+        KC_LALT,                   DE_A,         DE_S,   DE_D,   DE_F,   DE_G,
+        KC_LSFT,                 CTL_T(DE_Y),  DE_X,   DE_C,   DE_V,   DE_B,   KC_LALT,
+        LT(SYMB,DE_LESS),        M(M_DE_CIRC_CTRLCMD),      M(M_DE_PLUS_CTRLALT), LALT(KC_LSFT),  LGUI(KC_LSFT),
+                                                                               M(M_MEH_SH_ACUT),       TG(2),
+                                                                                               KC_HOME,
+                                                                               KC_BSPC,KC_DEL,         LT(SMLY,KC_END),
+        // right hand
+             M(M_CTRL_CMDC),  DE_6,   DE_7,   DE_8,   DE_9,   DE_0,            DE_SS,
+             KC_RGUI,     DE_Z,   DE_U,   DE_I,   DE_O,   DE_P,                DE_UE,
+                          DE_H,   DE_J,   DE_K,   DE_L,   DE_OE,               ALT_T(DE_AE),
+             KC_RALT,    DE_N,   DE_M,   DE_COMM,DE_DOT, CTL_T(DE_MINS),       KC_RSFT,
+                                  KC_LEFT,  KC_UP,KC_DOWN,KC_RIGHT,        LT(SYMB,DE_HASH),
+             TG(4),      ALL_T(DE_ACUT),
+             KC_PGUP,
+             KC_PGDN,KC_ENT, KC_SPC
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |  L5  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |  <   |  >   |   !  |  ?   |      |      |           |      |   \  |   [  |   ]  |   |  |   #  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   \  |   /  |   .  |------|           |------|   /  |   (  |   )  |   {  |   }  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |   ^  |   %  |   |  |   ~  |      |           |      |   &  |   <  |   >  |   "  |   '  |    ?   |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |   .  |   !  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS,
+       KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT,
+       KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_DEL,KC_TRNS,
+       // right hand
+       M(M_TOGGLE_5), KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, LALT(LSFT(KC_7)),   LALT(KC_5),   LALT(KC_6),    LALT(KC_7),    DE_HASH, KC_F12,
+                DE_SLSH,   DE_LPRN,   DE_RPRN,    LALT(KC_8),    LALT(KC_9), KC_TRNS,
+       KC_TRNS, DE_AMPR, KC_GRV,   LSFT(KC_GRV),    DE_DQOT,    DE_QUOT, DE_QST,
+                         KC_TRNS,KC_DOT,  KC_EXLM,    KC_TRNS,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           | Mute |      |      |      |      |      |  EGOS  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      | Lclk | MsUp | Rclk | WlUp |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |MsLeft|MsDown|MsRght| WlDw |------|           |------|VolUp |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      | MClk |      |           |      |VolDn |      | Prev | Next | Up   |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      | Left | Down | Right |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |Brwser|
+ *                                 |      |      |------|       |------|      |Back  |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
+       KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_MUTE,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP,   KC_TRNS,
+                          KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_WBAK
+),
+/* Keymap 3: Smiley layer
+ * making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using
+ * keyboard short commands...
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           | :-)  | ;-)  | :-D  |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      | :-{  | :-(  |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|           |------|  <3  | :-*  |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |    |     |      |      |      |                                       |     |      |           |     |     r|
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      |      |       |      |        |      |
+ *                                 |      |      |------|       |------|        |      |
+ *                                 |      |      |      |       |      |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,    KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS, KC_TRNS,    KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS, KC_TRNS,    KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,   KC_TRNS,
+       KC_TRNS, KC_TRNS,    KC_TRNS,  KC_TRNS,    KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  M(SM_FROWN),    M(SM_SAD),    M(SM_CRY),    KC_TRNS,    KC_TRNS, KC_TRNS,
+                 M(SM_HEART),    M(SM_KISS),    KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+//number pad
+KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    LSFT(KC_RBRC), KC_F12,
+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_RBRC, DE_MINS,
+       KC_TRNS, LSFT(KC_6), KC_1,   KC_2,    KC_3,    LSFT(KC_7), KC_TRNS,
+                         KC_0,KC_DOT,  KC_0,    DE_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* Keymap 3: Egoshooter layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |  L5  |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |  SHIFT |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | CTRL |      |      |      |      |                                       |     |       |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |   F1 |  F2  |       |      |      |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      |  F3  |       |      |        |      |
+ *                                 | SPACE|  CTRL|------|       |------|        |      |
+ *                                 |      |      |  F4  |       |      |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_F1, KC_F2,
+                                                    KC_F3,
+                                  KC_SPC, KC_LCTL, KC_F4,
+       // right hand
+       M(M_TOGGLE_5), KC_TRNS,   KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,  KC_TRNS,
+       KC_TRNS, KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+                KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS,
+                         KC_TRNS,KC_TRNS,  KC_TRNS,    KC_TRNS,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB),                // FN1 - Momentary Layer 1 (Symbols)
+    [2] = ACTION_LAYER_TAP_TOGGLE(SMLY)                // FN2 - Momentary Layer 2 (Smiley)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+               static uint16_t start;
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+               if (record->event.pressed) {
+                 register_code(KC_RSFT);
+               } else {
+                 unregister_code(KC_RSFT);
+               }
+               break;
+       case 1:
+               if (record->event.pressed) {
+                       start = timer_read();
+                       return MACRO(D(LCTRL), END);
+               } else {
+                       if (timer_elapsed(start) > 150) {
+                           return MACRO(U(LCTRL), END);
+                       } else {
+                           return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END);
+                       }
+               }
+               break;
+       case 2:
+               if (record->event.pressed) {
+                       start = timer_read();
+                       return MACRO(D(LCTRL),END);
+               } else {
+                       if (timer_elapsed(start) > 150){
+                               return MACRO(U(LCTRL),END);
+                       } else {
+                               return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END);
+                       }
+               }
+               break;
+       case 3:
+               if (record->event.pressed) {
+                       start = timer_read();
+                       return MACRO(D(LCTRL),D(LSFT),D(LALT),END);
+               } else {
+                       if (timer_elapsed(start) > 150){
+                               return MACRO(U(LCTRL),U(LSFT),U(LALT),END);
+                       } else {
+                               return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix
+                       }
+               }
+               break;
+       case M_DE_CIRC_CTRLCMD:
+               if (record->event.pressed) {
+                       start = timer_read();
+                       return MACRO(D(LCTRL),D(LGUI),END);
+               } else {
+                       if (timer_elapsed(start) > 150){
+                               return MACRO(U(LCTRL),U(LGUI),END);
+                       } else {
+                               return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); 
+                       }
+               }
+               break;
+       case M_DE_PLUS_CTRLALT:
+               if (record->event.pressed) {
+                       start = timer_read();
+                       return MACRO(D(LCTRL),D(LALT),END);
+               } else {
+                       if (timer_elapsed(start) > 150){
+                               return MACRO(U(LCTRL),U(LALT),END);
+                       } else {
+                               return MACRO(U(LCTRL),U(LALT),T(RBRC),END); 
+                       }
+               }
+               break;
+       case SM_SMILE:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
+               }
+               break;
+
+       case SM_SMIRK:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
+               }
+               break;
+       case SM_CRY:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
+               }
+               break;
+       case SM_SAD:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
+               }
+               break;
+      
+       case SM_HEART:
+               if (record->event.pressed) {
+                       return MACRO(T(GRV),T(3),END);
+               }
+               break;
+       case SM_LAUGH:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END);
+               }
+               break;
+       case SM_KISS:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END);
+               }
+               break;
+       case SM_FROWN:
+               if (record->event.pressed) {
+                       return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END);
+               }
+               break;
+    case M_TOGGLE_5:  
+       if (record->event.pressed){
+           layer_state ^= (1<<5);
+           layer_state &= (1<<5);
+        }
+        break;
+    }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+           break;
+        case 3:
+            ergodox_right_led_3_on();
+            break;
+        case 4:
+           ergodox_right_led_1_on();
+            ergodox_right_led_3_on();
+           //ergodox_board_led_on();
+            break;
+        case 5: 
+               ergodox_right_led_1_on();
+               ergodox_right_led_2_on();
+               ergodox_right_led_3_on();
+               break;
+        default:
+            // none
+            break;
+    }
+
+};
index eb82384d54378b5f83872badcc543407e14909e0..2c83055b0df76a71d39e4cfb8b6896f2275cb563 100644 (file)
 :1000F000E20001E001E101E20002E001E3010602A9
 :100100000602E30002E00001E00002E001E3011961
 :10011000021902E30002E00001E0000000F0A1F09B
-:10012000A329002B000354E100358100001E0014B8
+:10012000A329002B00E200E100358100001E00142D
 :100130000004001D7135004D001F001A0016001B41
 :1001400000E1044C00200008000700060050002ACF
 :100150000021001500090019004F004A0022001775
-:10016000000A000500000002540130E3000000E234
-:1001700000000003300230E7000000E60000002E1F
-:100180007F23001C000B0011000000045424001801
+:10016000000A000500000003300130E3000000E257
+:1001700000000002540230E7000000E60000000426
+:100180005423001C000B00110000002E7F240018D7
 :10019000000D00100052004B0025000C000E003630
 :1001A0000051002C00260012000F003700E1082843
 :1001B00000270013003300387130004E002D002F4F
-:1001C000003482E5003181000001000100010001DE
+:1001C000003474E5003181000001000100010001EC
 :1001D00000010000003A003500310001000100017B
 :1001E000003B0035022102350001004C003C001E9E
 :1001F0000224062202010001003D002D02240224F7
 :100250000425041F021E0201004300310026043160
 :1002600002010001004400450001002D02010000D0
 :100270000001000100010001000100000001000177
-:10028000000100FB000100010001000100F200F983
-:1002900000010001000100F000F100FA00F400018B
-:1002A0000001000100F300FC00F500010001000165
-:1002B000000100F600000001000100010000000143
-:1002C0000000000100010001000000010000000129
-:1002D0000001000100010001000000010001000117
-:1002E000000100A800A9000100010001000100AC0C
-:1002F00000AA00B600010001000100AB005000019F
+:100280000001000100010001000100F400F200FB88
+:1002900000010001000100F000F100FA000100017E
+:1002A000000100F500F300FC00010001000100F96D
+:1002B00000FA00F60000000100010001000000014A
+:1002C0000000000100A80001000000010000000182
+:1002D0000001000100A900AA0000000100010001C6
+:1002E000000100010001000100010001000100AC5B
+:1002F000000100B600010001000100AB0050000148
 :1003000000010001000100520051000100AE000197
 :1003100000010001004F0000000100010001000188
-:1003200000010000000100010001000100010001C6
-:1003300000010001000100010001000100010001B5
-:1003400000010001000100010001000100010001A5
-:100350000001000100010001000100010000000196
+:10032000000100000001000E000B001B7101000124
+:100330000001003700040014000100010001001258
+:10034000000800340001000100010036000C002FFD
+:10035000000100010001001D001800330000000131
 :100360000001000100000001000000010001000187
-:100370000000000100000001000100010001000177
-:100380000000000100010001000100010001000166
-:100390000001000100010001000100010001000155
-:1003A00000010001005000010001000100010052A5
-:1003B000005100010001000100010001004F000098
+:100370000000000100000001000100190007000555
+:10038000000000010001000A001700130001000135
+:10039000000100060015001A000100010001000F15
+:1003A00000110010000100010001002D0016000DD9
+:1003B000710100010038001C0009820100010000E9
 :1003C0000001000100010001000100000001000126
 :1003D00000010001000100010001000100500001C6
 :1003E0000001000100010052005100010001000164
index 6b17d75d54a4cb42b59b841d62528538fe9c7555..44d7a334e9371dfeee553b47f0842790833c8b0d 100644 (file)
@@ -4,13 +4,14 @@ Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyb
 
 - Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen
 - der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,...
-- die Leertaste lässt sich jetzt mit beiden Daumen bedienen 
+- die Leertaste ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. 
 - die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar.
-- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar
+- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar.
 - Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind
 - der Zehnerblock wurde in eine eigene Layer umgezogen
 - die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen
 
+
 ------------------------------   
 
 # ErgoDox EZ for OSX
index 7e9defafa7e81c89458a1c8b8624e4ae319177ab..fb8635118bfcfc84de8ef9fc7d0946e3567675cf 100644 (file)
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+
+/* Keymap 0: ADNW-Koy layer
+ * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts.
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |  ESC   |   1  |   2  |   3  |   4  |   5  |CMD-V |           |CMD-C |   6  |   7  |   8  |   9  |   0  |   ß    |
+ * |  ESC   |   1  |   2  |   3  |   4  |   5  |Lctrl |           |Rctrl |   6  |   7  |   8  |   9  |   0  |   -    |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |  TAB   |   Q  |   W  |   E  |   R  |   T  | CMD  |           | CMD  |   Z  |   U  |   I  |   O  |   P  |   ü    |
+ * |  TAB   |   K  |   .  |   O  |   ,  |   Y  | CMD  |           | CMD  |   V  |   G  |   C  |   L  |   ß  |   Z    |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |  ADNW  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ö  |  ä/L2  |
+ * |  ADNW  |   H  |   A  |   E  |   I  |   U  |------|           |------|   D  |   T  |   R  |   N |   S  |  F/L2  |
  * |--------+------+------+------+------+------| LALT |           | RALT |------+------+------+------+------+--------|
- * | LShift |Y/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |-/Ctrl| RShift |
+ * | LShift |X/Ctrl|   Q  |   Ä  |   Ü  |   Ö  |      |           |      |   B  |   P  |   W  |   M  |J/Ctrl| RShift |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |</L1|  ^°  |AltShf| Left | Right|                                       |  Up  | Down | CMD-SHIFT |  +  | #/L1 |
+ *   |</L1|  ^  |AltShf| Left | Right|                                       |  Up | Down | CMD-SHIFT |  ´  | //L1 |
  *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,---------------.
- *                                        | MDIA | Meh  |       | Hyper|  NUM   |
+ *                                        ,-------------.       ,-------------.
+ *                                        | L1 | LGui |       | Alt  |Ctrl/Esc|
  *                                 ,------|------|------|       |------+--------+------.
  *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Back-|  Del |------|       |------|  Enter | Space|
- *                                 | Space|      | End  |       | PgDn |        |      |
+ *                                 | Space|Backsp|------|       |------|  Enter | Space|
+ *                                 |      |ace   | End  |       | PgDn |        |      |
  *                                 `--------------------'       `----------------------'
  */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = KEYMAP(  // layer 0 : default
-        // left hand
-        KC_ESC,                  KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   LGUI(KC_V),
-        KC_TAB,                  KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_LGUI,
-        TG(3),                   KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
-        KC_LSFT,                 CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   KC_LALT,
-        LT(SYMB,KC_GRV),         DE_LESS,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
-                                               TG(2),  MEH_T(LSFT(DE_ACUT)),
-                                                              KC_HOME,
-                                               KC_BSPC,KC_DEL,KC_END,
-        // right hand
-             LGUI(KC_C),     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
-             KC_RGUI,     KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             DE_UE,
-                          KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,LT(MDIA,DE_AE),
-             KC_RALT,KC_N,   KC_M,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,
-                                  KC_UP,  KC_DOWN,LGUI(KC_LSFT),KC_RBRC,          LT(SYMB,KC_BSLS),
-             ALL_T(DE_ACUT),        TG(4),
-             KC_PGUP,
-             KC_PGDN,KC_ENT, KC_SPC
-    ),
+KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_K,    KC_DOT,  KC_O,    KC_COMM, KC_Z,    KC_TRNS,
+       KC_TRNS, KC_H,    KC_A,    KC_E,    KC_I,    KC_U,
+       KC_TRNS, CTL_T(KC_X),KC_Q,    DE_AE,   DE_UE,   DE_OE,   KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
+       KC_TRNS,  KC_V,    KC_G,    KC_C,    KC_L,    KC_MINS, KC_Y,
+                 KC_D,    KC_T,    KC_R,    KC_N,    KC_S, LT(MDIA,KC_F),
+       KC_TRNS,  KC_B,    KC_P,    KC_W,    KC_M,    CTL_T(KC_J), KC_TRNS,
+                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
 /* Keymap 1: Symbol Layer
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
@@ -141,48 +142,49 @@ KEYMAP(
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_WBAK
 ),
-/* Keymap 3: ADNW-Koy layer
- * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts.
+/* Keymap 3: qwertz layer
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |  ESC   |   1  |   2  |   3  |   4  |   5  |Lctrl |           |Rctrl |   6  |   7  |   8  |   9  |   0  |   -    |
+ * |  ESC   |   1  |   2  |   3  |   4  |   5  |CMD-V |           |CMD-C |   6  |   7  |   8  |   9  |   0  |   ß    |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |  TAB   |   K  |   .  |   O  |   ,  |   Y  | CMD  |           | CMD  |   V  |   G  |   C  |   L  |   ß  |   Z    |
+ * |  TAB   |   Q  |   W  |   E  |   R  |   T  | CMD  |           | CMD  |   Z  |   U  |   I  |   O  |   P  |   ü    |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |  ADNW  |   H  |   A  |   E  |   I  |   U  |------|           |------|   D  |   T  |   R  |   N |   S  |  F/L2  |
+ * |  ADNW  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ö  |  ä/L2  |
  * |--------+------+------+------+------+------| LALT |           | RALT |------+------+------+------+------+--------|
- * | LShift |X/Ctrl|   Q  |   Ä  |   Ü  |   Ö  |      |           |      |   B  |   P  |   W  |   M  |J/Ctrl| RShift |
+ * | LShift |Y/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |-/Ctrl| RShift |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
- *   |</L1|  ^  |AltShf| Left | Right|                                       |  Up | Down | CMD-SHIFT |  ´  | //L1 |
+ *   |</L1|  ^°  |AltShf| Left | Right|                                       |  Up  | Down | CMD-SHIFT |  +  | #/L1 |
  *   `----------------------------------'                                       `----------------------------------'
- *                                        ,-------------.       ,-------------.
- *                                        | L1 | LGui |       | Alt  |Ctrl/Esc|
+ *                                        ,-------------.       ,---------------.
+ *                                        | MDIA | Meh  |       | Hyper|  NUM   |
  *                                 ,------|------|------|       |------+--------+------.
  *                                 |      |      | Home |       | PgUp |        |      |
- *                                 | Space|Backsp|------|       |------|  Enter | Space|
- *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 | Back-|  Del |------|       |------|  Enter | Space|
+ *                                 | Space|      | End  |       | PgDn |        |      |
  *                                 `--------------------'       `----------------------'
  */
-KEYMAP(
-       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-       KC_TRNS, KC_K,    KC_DOT,  KC_O,    KC_COMM, KC_Z,    KC_TRNS,
-       KC_TRNS, KC_H,    KC_A,    KC_E,    KC_I,    KC_U,
-       KC_TRNS, CTL_T(KC_X),KC_Q,    DE_AE,   DE_UE,   DE_OE,   KC_TRNS,
-       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-                                           KC_TRNS, KC_TRNS,
-                                                    KC_TRNS,
-                                  KC_TRNS, KC_TRNS, KC_TRNS,
-    // right hand
-       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
-       KC_TRNS,  KC_V,    KC_G,    KC_C,    KC_L,    KC_MINS, KC_Y,
-                 KC_D,    KC_T,    KC_R,    KC_N,    KC_S, LT(MDIA,KC_F),
-       KC_TRNS,  KC_B,    KC_P,    KC_W,    KC_M,    CTL_T(KC_J), KC_TRNS,
-                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-       KC_TRNS, KC_TRNS,
-       KC_TRNS,
-       KC_TRNS, KC_TRNS, KC_TRNS
-),
 
+[BASE] = KEYMAP(  // layer 3 : default qwertz layout
+        // left hand
+        KC_ESC,                  KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   LGUI(KC_V),
+        KC_TAB,                  KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_LGUI,
+        TG(3),                   KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_LSFT,                 CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   KC_LALT,
+        LT(SYMB,KC_GRV),         DE_LESS,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
+                                               TG(2),  MEH_T(LSFT(DE_ACUT)),
+                                                              KC_HOME,
+                                               KC_BSPC,KC_DEL,KC_END,
+        // right hand
+             LGUI(KC_C),     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
+             KC_RGUI,     KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             DE_UE,
+                          KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,LT(MDIA,DE_AE),
+             KC_RALT,KC_N,   KC_M,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,
+                                  KC_UP,  KC_DOWN,LGUI(KC_LSFT),KC_RBRC,          LT(SYMB,KC_BSLS),
+             ALL_T(DE_ACUT),        TG(4),
+             KC_PGUP,
+             KC_PGDN,KC_ENT, KC_SPC
+    ),
+//numblock
 KEYMAP(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c b/keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c
new file mode 100644 (file)
index 0000000..fb7c009
--- /dev/null
@@ -0,0 +1,184 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * | Esc    |   1  |   2  |   3  |   4  |   5  |   =  |           |   -  |   6  |   7  |   8  |   9  |   0  |  Enter |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Tab    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |   '"   |
+ * |--------+------+------+------+------+------| LGui |           | LGui |------+------+------+------+------+--------|
+ * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  | RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |  L1  |   `  |  {   |   }  |  '"  |                                       | Left |  Up  | Down | Right|  L2  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |  Del | Alt  |       | Alt  | Ctrl |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_ESC,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
+        KC_TAB,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),
+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_LSFT,        KC_Z,         KC_X,   KC_C,   KC_V,   KC_B,   KC_LGUI,
+        TG(SYMB),       KC_GRV,       KC_LBRC,        KC_RBRC,KC_QUOT,
+                                                      KC_DELT,KC_LALT,
+                                                              KC_HOME,
+                                               KC_SPC,KC_BSPC,KC_END,
+        // right hand
+             KC_MINS,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_ENT,
+             TG(SYMB),    KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             KC_BSLS,
+                          KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,          KC_QUOT,
+             KC_LGUI,     KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,          KC_RSFT,
+                                  KC_LEFT,KC_UP,  KC_DOWN,KC_RIGHT,          TG(MDIA),
+             KC_RALT,     KC_RCTL,
+             KC_PGUP,
+             KC_PGDN,KC_TAB, KC_ENT
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                       KC_TRNS,KC_TRNS,
+                                               KC_TRNS,
+                               KC_TRNS,KC_TRNS,KC_TRNS,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,
+                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |Brwser|
+ *                                 |      |      |------|       |------|      |Back  |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+                                           KC_TRNS, KC_TRNS,
+                                                    KC_TRNS,
+                                  KC_TRNS, KC_TRNS, KC_TRNS,
+    // right hand
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_WBAK
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+        if (record->event.pressed) {
+          register_code(KC_RSFT);
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md
new file mode 100644 (file)
index 0000000..f9d76ef
--- /dev/null
@@ -0,0 +1,5 @@
+# ErgoDox EZ OS X Simplified Configuration
+
+This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts.
+
+This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same.
\ No newline at end of file
diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex b/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex
new file mode 100644 (file)
index 0000000..c3481dc
--- /dev/null
@@ -0,0 +1,1471 @@
+:100000000C9400070C9444070C9444070C94440788\r
+:100010000C9444070C9444070C9444070C94440734\r
+:100020000C9444070C9444070C9458120C942A1313\r
+:100030000C9444070C9444070C9444070C94440714\r
+:100040000C9444070C94002C0C9444070C94440723\r
+:100050000C9444070C94F8210C9444070C94440726\r
+:100060000C9444070C9444070C9444070C944407E4\r
+:100070000C9444070C9444070C9444070C944407D4\r
+:100080000C9444070C9444070C9444070C944407C4\r
+:100090000C9444070C9444070C9444070C944407B4\r
+:1000A0000C9444070C9444070C9444079713B91319\r
+:1000B000A714B913A714FE132114A71476148914D6\r
+:1000C000D017D017FF17FF1742188018991A991ADE\r
+:1000D0009918991A9A199A196D1A991A991A841ACB\r
+:1000E0000000F0A129002B002A00E10001540000CB\r
+:1000F0001E00140004001D0035004D001F001A00F2\r
+:1001000016001B002F002A00200008000700060030\r
+:1001100030002C00210015000900190034004A00AD\r
+:10012000220017000A00050000004C002E000154B8\r
+:100130000000E3000000E2002D0001540000E30095\r
+:100140000000E60023001C000B0011000000E4008A\r
+:10015000240018000D00100050004B0025000C007A\r
+:100160000E00360052002800260012000F00370053\r
+:1001700051002B0027001300330038004F004E00C1\r
+:10018000280031003400E5000254000001000100A5\r
+:1001900001000100010000003A001E0220022202BC\r
+:1001A000010001003B001F022102230201000100A7\r
+:1001B0003C002F0226022F00010001003D0030020A\r
+:1001C00027023000010001003E00310235003502F7\r
+:1001D000000001000100010000000100000001001A\r
+:1001E0000100010000000100000001003F0052007A\r
+:1001F00051002402000001004000240021001E00E4\r
+:10020000010001004100250022001F00370001000D\r
+:1002100042002600230020002700010043002502A1\r
+:100220002E0231002E0001004400450001000100B3\r
+:1002300001000000010001000100010001000000B8\r
+:1002400001000100010001000100010001000100A6\r
+:10025000F2000100010001000100F000F1000100C6\r
+:10026000F400010001000100F3000100F5000100AD\r
+:100270000100010001000100000001000100010077\r
+:100280000000010000000100010001000000010069\r
+:100290000000010001000100010001000000010058\r
+:1002A0000100010001000100A9000100010001009E\r
+:1002B0000100AC00AA00B600010001000100AB0083\r
+:1002C000A80001000100010001000100010001007F\r
+:1002D00001000100AE000100010000000A0025300D\r
+:1002E000313662003A200025303258000A722F63FE\r
+:1002F0002030313233343536373839414243444582\r
+:10030000460A000A002530325800626F756E636538\r
+:10031000213A20006C6566742073696465206174FD\r
+:100320007461636865640A006C656674207369644F\r
+:1003300065206E6F7420726573706F6E64696E678E\r
+:100340000A00747279696E6720746F207265736534\r
+:1003500074206D637032333031380A000A444542EC\r
+:1003600055473A20656E61626C65642E0A005B73C6\r
+:100370005D004B6579626F617264207374617274A1\r
+:100380002E0A005B575D005B535D005B525D005BB6\r
+:10039000445D005B435D0016034500720067006F1B\r
+:1003A0000044006F007800200045005A000000164D\r
+:1003B000034500720067006F0044006F0078002062\r
+:1003C0000045005A0000000403090409028D0005DD\r
+:1003D0000100A0FA09040000010301010009211134\r
+:1003E000010001223F000705810308000A090401FA\r
+:1003F000000103010200092111010001224D000743\r
+:1004000005820308000A0904020001030000000934\r
+:1004100021110100012236000705830308000A09A3\r
+:100420000403000203000000092111010001222041\r
+:1004300000070584032000010705040320000109CB\r
+:100440000404000103000000092111010001223908\r
+:1004500000070585031000011201100100000008CB\r
+:10046000EDFE071301000102000105010906A101CB\r
+:10047000050719E029E71500250195087501810296\r
+:100480000508190129059505750191029501750366\r
+:100490009101050719002977150025019578750147\r
+:1004A0008102C00631FF0974A1010975150025FFFD\r
+:1004B0009520750881020976150025FF952075089D\r
+:1004C0009102C005010980A101850216010026B72D\r
+:1004D000001A01002AB700751095018100C0050CB3\r
+:1004E0000901A1018503160100269C021A01002AB8\r
+:1004F0009C02751095018100C005010902A1010946\r
+:1005000001A10005091901290515002501950575A9\r
+:100510000181029501750381010501093009311539\r
+:1005200081257F95027508810609381581257F95FB\r
+:100530000175088106050C0A38021581257F950191\r
+:1005400075088106C0C005010906A101050719E06B\r
+:1005500029E71500250195087501810295017508A7\r
+:10056000810105081901290595057501910295017B\r
+:10057000750391010507190029FF150025FF950650\r
+:1005800075088100C00A002530325820006B65795B\r
+:10059000626F6172645F7265706F72743A20000AF4\r
+:1005A0000025303258006B6579626F6172645F7349\r
+:1005B00065745F6C65643A200064656C5F6B657997\r
+:1005C0005F6269743A2063616E27742064656C3AD7\r
+:1005D00020253032580A006164645F6B65795F6280\r
+:1005E00069743A2063616E2774206164643A20253F\r
+:1005F0003032580A00646F6E652E0A00626F6F67B2\r
+:100600006D61676963207363616E3A202E2E2E2020\r
+:1006100000290A002575002F002575005D2800259A\r
+:10062000640020002564002000256400200025646B\r
+:10063000007C0025303258006D6F7573656B6579ED\r
+:10064000205B62746E7C782079207620685D287249\r
+:1006500065702F61636C293A205B006D6B5F776872\r
+:1006600065656C5F74696D655F746F5F6D6178203F\r
+:100670003D2025640A006D6B5F776865656C5F6D72\r
+:1006800061785F7370656564203D2025640A006DA4\r
+:100690006B5F74696D655F746F5F6D6178203D207D\r
+:1006A00025640A006D6B5F6D61785F7370656564CA\r
+:1006B000203D2025640A006D6B5F696E746572765B\r
+:1006C000616C203D2025640A006D6B5F64656C6180\r
+:1006D00079203D2025640A006D6B5F776865656C45\r
+:1006E0005F74696D655F746F5F6D6178203D202573\r
+:1006F000640A006D6B5F776865656C5F6D61785F3C\r
+:100700007370656564203D2025640A006D6B5F741D\r
+:10071000696D655F746F5F6D6178203D2025640AA7\r
+:10072000006D6B5F6D61785F7370656564203D205F\r
+:1007300025640A006D6B5F696E74657276616C206A\r
+:100740003D2025640A006D6B5F64656C6179203D16\r
+:100750002025640A000A00257500363A207768656E\r
+:10076000656C5F74696D655F746F5F6D61783A2069\r
+:10077000000A00257500353A20776865656C5F6D65\r
+:1007800061785F73706565643A20000A0025750022\r
+:10079000343A2074696D655F746F5F6D61783A20DB\r
+:1007A000000A00257500333A206D61785F7370652B\r
+:1007B00065643A20000A00257500323A20696E749B\r
+:1007C000657276616C286D73293A20000A002575E0\r
+:1007D00000313A2064656C6179282A31306D7329C3\r
+:1007E0003A20000A092D2056616C756573202D0A88\r
+:1007F000004D3E004D25643E20003F00736574208F\r
+:1008000064656661756C740A00433E200077686514\r
+:1008100072652064656C74613A20637572736F72DF\r
+:100820003D25642C20776865656C3D25640A536519\r
+:100830006520687474703A2F2F656E2E77696B6926\r
+:1008400070656469612E6F72672F77696B692F4DD0\r
+:100850006F7573655F6B6579730A000A092D204D0A\r
+:100860006F7573656B6579202D0A4553432F713A77\r
+:1008700009717569740A313A0964656C6179282ACD\r
+:1008800031306D73290A323A09696E746572766186\r
+:100890006C286D73290A333A096D61785F7370654E\r
+:1008A00065640A343A0974696D655F746F5F6D61E0\r
+:1008B000780A353A09776865656C5F6D61785F73B2\r
+:1008C000706565640A363A09776865656C5F7469B6\r
+:1008D0006D655F746F5F6D61780A0A703A097072B6\r
+:1008E000696E742076616C7565730A643A09736584\r
+:1008F000742064656661756C74730A75703A092BAF\r
+:10090000310A646F776E3A092D310A706775703A53\r
+:10091000092B31300A7067646F776E3A092D3130D8\r
+:100920000A0A7370656564203D2064656C746120FB\r
+:100930002A206D61785F7370656564202A202872B3\r
+:100940006570656174202F2074696D655F746F5FD9\r
+:100950006D6178290A003F004D3E2000433E200093\r
+:100960004C25640A000A092D20436F6E736F6C6575\r
+:10097000202D0A4553432F713A09717569740A6D28\r
+:100980003A096D6F7573656B65790A000A092D2048\r
+:100990004D61676963202D0A643A09646562756771\r
+:1009A0000A783A096465627567206D6174726978C6\r
+:1009B0000A6B3A096465627567206B6579626F61DD\r
+:1009C00072640A6D3A096465627567206D6F7573AC\r
+:1009D000650A763A0976657273696F6E0A733A0929\r
+:1009E0007374617475730A633A09636F6E736F6C25\r
+:1009F00065206D6F64650A302D343A096C61796544\r
+:100A000072302D34284631302D4634290A50617514\r
+:100A1000733A09626F6F746C6F616465720A653A4C\r
+:100A200009656570726F6D0A6E3A094E4B524F0A36\r
+:100A30007A3A09736C656570204C4544207465737F\r
+:100A4000740A000A002575002E6E6B726F3A200042\r
+:100A50000A002575002E737761705F6261636B73A6\r
+:100A60006C6173685F6261636B73706163653A2088\r
+:100A7000000A002575002E737761705F67726176DA\r
+:100A8000655F6573633A20000A002575002E6E6F5E\r
+:100A90005F6775693A20000A002575002E7377613B\r
+:100AA000705F72616C745F726775693A20000A004A\r
+:100AB0002575002E737761705F6C616C745F6C6775\r
+:100AC00075693A20000A002575002E636170736C09\r
+:100AD0006F636B5F746F5F636F6E74726F6C3A20DD\r
+:100AE000000A002575002E737761705F636F6E7466\r
+:100AF000726F6C5F636170736C6F636B3A20000A96\r
+:100B00000025303258006B65796D61705F636F6EE0\r
+:100B10006669672E7261773A20000A002575002EFB\r
+:100B20006D6F7573653A20000A002575002E6B65A0\r
+:100B300079626F6172643A20000A002575002E6D9B\r
+:100B400061747269783A20000A002575002E656E7E\r
+:100B500061626C653A20000A0025303258006465F5\r
+:100B60006275675F636F6E6669672E7261773A20A0\r
+:100B7000000A0025750064656661756C745F6C61C0\r
+:100B80007965723A20003F004E4B524F3A206F6613\r
+:100B9000660A004E4B524F3A206F6E0A0074696D20\r
+:100BA00065725F636F756E743A202530346C580A35\r
+:100BB000006B6579626F6172645F6E6B726F3A2071\r
+:100BC00025580A006B6579626F6172645F69646CB5\r
+:100BD000653A2025580A006B6579626F6172645F1F\r
+:100BE00070726F746F636F6C3A2025580A00686FDB\r
+:100BF00073745F6B6579626F6172645F6C65647357\r
+:100C000028293A2025580A000A092D2053746174B6\r
+:100C10007573202D0A004743433A20342E392E3372\r
+:100C2000204156522D4C4942433A20312E382E3124\r
+:100C3000204156525F415243483A20617672350A4C\r
+:100C4000004F5054494F4E533A204C554641204294\r
+:100C50004F4F544D41474943204D4F5553454B4508\r
+:100C6000592045585452414B455920434F4E534FFC\r
+:100C70004C4520434F4D4D414E44204E4B524F204A\r
+:100C80003531320A004255494C443A2066643732C5\r
+:100C9000613436202832323A35363A3234204A61CD\r
+:100CA0006E2032342032303136290A005649443A17\r
+:100CB00020307846454544284572676F446F782058\r
+:100CC000455A29205049443A20307831333037286A\r
+:100CD0004572676F446F7820455A29205645523A2D\r
+:100CE000203078303030310A00444553433A207484\r
+:100CF0002E6D2E6B2E206B6579626F61726420669B\r
+:100D000069726D7761726520666F72204572676FD8\r
+:100D1000646F780A000A092D2056657273696F6E38\r
+:100D2000202D0A000A6D6F7573653A206F66660A9A\r
+:100D3000000A6D6F7573653A206F6E0A000A6B6565\r
+:100D400079626F6172643A206F66660A000A6B65A9\r
+:100D500079626F6172643A206F6E0A000A6D617485\r
+:100D60007269783A206F66660A000A6D617472696A\r
+:100D7000783A206F6E0A000A64656275673A206FE0\r
+:100D80006E0A000A64656275673A206F66660A003B\r
+:100D90000A0A626F6F746C6F616465722E2E2E206A\r
+:100DA00000433E20006565636F6E6669673A0A001E\r
+:100DB000536C656570204C454420746573740A005B\r
+:100DC0000000000000000000000000010204060A0C\r
+:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD\r
+:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD\r
+:100DF0000F0A0604020100000000000000000000CD\r
+:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74\r
+:100E100024C08091F9019091FA01A091FB01B09159\r
+:100E2000FC018730904BA740B04BB9F41092F90108\r
+:100E30001092FA011092FB011092FC0114BE84B7CB\r
+:100E4000877F84BF88E10FB6F8948093600010928A\r
+:100E500060000FBEE0E0FFE3099511E0A0E0B1E023\r
+:100E6000ECE9FBE502C005900D92AA33B107D9F772\r
+:100E700011E0AAE3B1E001C01D92A93FB107E1F77B\r
+:100E80000E94900F0C94CC2D0C940000FF93EF93D4\r
+:100E9000E0913A01F0913B01309709F00995EF910B\r
+:100EA000FF910895FC018591803011F0EFDFFBCFB9\r
+:100EB0000895FF27E0E230E247FF0CC0419597FF1D\r
+:100EC00009C0EDE26095709580959095611D711D4A\r
+:100ED000811D911D27FF02C0219530E350E2AA2712\r
+:100EE000660F771F881F991FAA1FA41710F0A41B55\r
+:100EF00063955A95A9F7AA3008F0A95FA05DAF9352\r
+:100F0000F395611571058105910541F7ED3211F4F5\r
+:100F1000EF93F395F21718F43F93F395FBCF8F916E\r
+:100F2000B5DFFA95E1F70895E991F991859180305F\r
+:100F300021F0853219F0AADFF9CF089520E0E89476\r
+:100F400055915532C1F3503311F4689455915A3389\r
+:100F500048F4505390F3220F022E220F220F200D3F\r
+:100F6000250FF4CF0EF4219589919991533619F3F9\r
+:100F7000533729F1533559F1BC0188279927E89453\r
+:100F80005C3621F48991999168945591543639F4DD\r
+:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709\r
+:100FA0004AE039F0583540E121F0523642E009F08C\r
+:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC\r
+:100FC000EF93FC0181918030B9F360DFFBCFFF9399\r
+:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0\r
+:100FE000A3DFCF91DF91089561110BC0FC018281D5\r
+:100FF000882321F085EE0E946D1603C085EE0E94C5\r
+:10100000351780E090E0089508956091BC017091DB\r
+:10101000BD018091BE019091BF010E94FB205698B6\r
+:101020005E9825982D9826982E9827982F9881308D\r
+:1010300019F0823021F00895259A2D9A0895269A64\r
+:101040002E9A089585E098E0892B11F00E940508FA\r
+:1010500080E090E0089556985E9825982D982698FF\r
+:101060002E9827982F988FEF90E090938900809387\r
+:10107000880090938B0080938A0090938D008093DA\r
+:101080008C00259A2D9A2FEF80E792E02150804026\r
+:101090009040E1F700C00000269A2E9A2FEF80E7DB\r
+:1010A00092E0215080409040E1F700C00000279A74\r
+:1010B0002F9A2FEF80E792E0215080409040E1F797\r
+:1010C00000C0000025982D982FEF80E792E0215076\r
+:1010D00080409040E1F700C0000026982E982FEF46\r
+:1010E00080E792E0215080409040E1F700C000008E\r
+:1010F00027982F9856985E9825982D9826982E9880\r
+:1011000027982F98089589EA8093800089E080933A\r
+:10111000810024982C983F988AB18F748AB96E9870\r
+:10112000479A8BB1806B8BB9769A0E942B0884E02A\r
+:1011300098E0892B11F00E94040880E090E0089567\r
+:1011400080E28093000180913C0181110EC00E94D9\r
+:10115000EF0881E080933C012FEF83ED90E3215075\r
+:1011600080409040E1F700C0000080E40E94F50854\r
+:101170008093000181112EC00E941F0980930001FD\r
+:10118000811128C00E941F0980930001811122C093\r
+:101190008FE30E941F098093000181111BC00E94F0\r
+:1011A000170980E40E94F50880930001811112C0A4\r
+:1011B0008CE00E941F098093000181110BC00E94E6\r
+:1011C0001F0980930001811105C08FE30E941F0950\r
+:1011D000809300010E9417098091000108951092E8\r
+:1011E000B9008AE08093B800089594EA9093BC0017\r
+:1011F0009091BC0097FFFCCF9091B900987F9830F8\r
+:1012000021F0903111F081E008958093BB0084E8D3\r
+:101210008093BC008091BC0087FFFCCF8091B90017\r
+:10122000887F883111F0803471F780E0089584E977\r
+:101230008093BC008091BC0084FDFCCF0895809316\r
+:10124000BB0084E88093BC008091BC0087FFFCCF8A\r
+:101250009091B900987F81E0983209F480E0089578\r
+:1012600084E88093BC008091BC0087FFFCCF809114\r
+:10127000BB00089580910001811115C080E40E9497\r
+:10128000F5088093000181110CC082E10E941F09C2\r
+:1012900080930001811105C08FEF0E941F09809388\r
+:1012A00000010E94170984B1807F84B985B1807FD5\r
+:1012B00085B98AB1837F8AB98BB1837F8BB93E9818\r
+:1012C000469808950E94A008809300010E943A0960\r
+:1012D00080B38C7080BB81B3836F81BBAEE3B1E020\r
+:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94\r
+:1012F00083E898E0892B11F00C94830808959F925D\r
+:10130000AF92BF92CF92DF92EF92FF920F931F9313\r
+:10131000CF93DF93809100018823E1F080913D011C\r
+:101320008F5F80933D01811115C082E493E00E949C\r
+:1013300052070E94A00880930001882329F088E2C8\r
+:1013400093E00E94520706C084E193E00E94520796\r
+:101350000E942B080EE311E0C0E0D0E0BB24B39460\r
+:1013600082E0A82ECC24C394D12C25E0E22E23E0E9\r
+:10137000F22EC730D10500F580910001811164C0C3\r
+:1013800080E40E94F50880930001811112C082E17F\r
+:101390000E941F098093000181110BC0C6010C2E11\r
+:1013A00001C0880F0A94EAF780950E941F09809374\r
+:1013B00000010E94170948C0CA30A1F028F4C830C3\r
+:1013C00059F0C93061F005C0CC3089F070F0CD30F3\r
+:1013D00089F0209A289810C0219A29980DC0229A45\r
+:1013E0002A980AC0239A2B9807C0529A01C0539A90\r
+:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1\r
+:10140000799902C082E001C080E091709B25982B01\r
+:101410007C9902C084E001C080E0892B7D9902C0E4\r
+:1014200038E001C030E0832B7E9902C020E101C08A\r
+:1014300020E0822B9FB19095991F9927991F929533\r
+:10144000990F907E892B10C080910001811174C08A\r
+:1014500080E40E94F50880930001882309F459C0B4\r
+:10146000912C0E941709892DF8019081981739F164\r
+:10147000808380910101882301F18091D70180FF51\r
+:1014800004C08AE093E00E9452078091D70180FF58\r
+:101490000CC0809101011F928F93FF92EF920E94E6\r
+:1014A000EB070F900F900F900F908091D70180FF66\r
+:1014B00004C083E093E00E945207A09201010E94C1\r
+:1014C0003A0921960F5F1F4FCE30D10509F051CF59\r
+:1014D000809101018823B1F081508093010188231C\r
+:1014E00039F08FE99FE00197F1F700C000000AC0D2\r
+:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326\r
+:101500008E13FCCF82E298E0892BC1F00E94220862\r
+:1015100015C083E10E941F09809300018111A0CFB3\r
+:1015200081E40E94F50880930001811199CF0E9407\r
+:101530003009982E909495CF80E096CF81E0DF918E\r
+:10154000CF911F910F91FF90EF90DF90CF90BF90C0\r
+:10155000AF909F900895E82FF0E0E45BFE4F80810C\r
+:101560000895CF92DF92EF92FF920F931F93CF9344\r
+:10157000DF938CEE92E00E9452078CE4E82E81E02B\r
+:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5\r
+:1015900012E0DF93CF93DF92CF920E94EB0784EEAD\r
+:1015A00092E00E945207F70181917F0190E00E9432\r
+:1015B00061219F938F931F930F930E94EB078CEDF4\r
+:1015C00092E00E94520721968DB79EB708960FB6FB\r
+:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE\r
+:1015E000CF911F910F91FF90EF90DF90CF900895D2\r
+:1015F0008B3B910578F4883A910540F5853A910541\r
+:10160000D0F48430910508F0B1C08130910509F41F\r
+:10161000ADC06BC0803E910508F467C0883E91055F\r
+:1016200008F4A4C09C01205F31092031310508F085\r
+:101630005CC090650895853A910509F459C0863AD1\r
+:10164000910509F058C082E890E40895883A910520\r
+:1016500009F454C0893A910509F453C08A3A9105B6\r
+:1016600009F452C08B3A910509F451C08C3A9105A6\r
+:1016700009F450C08D3A910509F44FC0803B9105A3\r
+:1016800009F44EC08E3A910509F44DC08F3A910588\r
+:1016900009F44CC0813B910509F44BC0823B910594\r
+:1016A00009F44AC0833B910509F449C0843B910584\r
+:1016B00009F448C0853B910509F447C0863B910574\r
+:1016C00009F446C0873B910509F445C0883B910564\r
+:1016D00009F444C0893B910509F443C08A3B910554\r
+:1016E00009F442C080E094E4089580E090E0089519\r
+:1016F00081E890E4089583E890E4089582EE94E40C\r
+:10170000089589EE94E408958AEE94E4089585EBB3\r
+:1017100094E4089586EB94E4089587EB94E40895A7\r
+:101720008CEC94E408958DEC94E4089583E895E4BA\r
+:1017300008958AE895E4089582E995E4089584E996\r
+:1017400095E4089581E296E4089583E296E408958D\r
+:1017500084E296E4089585E296E4089586E296E4AC\r
+:10176000089587E296E408958AE296E4089508953C\r
+:1017700096E0799FF001112494E5899FE00DF11D19\r
+:101780001124E60FF11DEE0FFF1FEC51FF4F859165\r
+:1017900094910895880F991FFC01E05AF0408591BB\r
+:1017A00094910895880F991FFC01E052FF4F859195\r
+:1017B0009491089526E0729FF001112444E5849FDE\r
+:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E\r
+:1017D000FF4F859194919C013A9521154FE1340773\r
+:1017E00008F41EC13F512115304120F49F700E9422\r
+:1017F000D20B08959C0130532115304118F49927DC\r
+:10180000906C0895811520E5920769F40E94BB1A37\r
+:101810004FEF84E39CE0415080409040E1F700C0EE\r
+:1018200000000C941D22813020E5920751F48CE5D4\r
+:1018300093E00E9452078091D70181608093D70185\r
+:1018400008959C0130552115304108F051C0292FD1\r
+:1018500033272F70332721303105D9F4AC01437081\r
+:10186000552702C0220F331F4A95E2F73C68AC01AE\r
+:1018700064E0440F551F6A95E1F744275370242B09\r
+:10188000352B73E0880F991F7A95E1F780769927B9\r
+:101890001DC02230310529F4982F8827816F906A66\r
+:1018A000089523303105A9F4AC014370552721E098\r
+:1018B00030E002C0220F331F4A95E2F73C6843E054\r
+:1018C000880F991F4A95E1F7807E9770822B932BA2\r
+:1018D000089524303105E1F4AC014370552721E02F\r
+:1018E00030E002C0220F331F4A95E2F73A68E7CF93\r
+:1018F0009C0130572115304118F49F709062089573\r
+:101900009C0130582115304118F49F70906A089559\r
+:10191000803E9105E0F4803C910558F581339105B6\r
+:1019200009F46FC048F48932910509F463C08A3222\r
+:10193000910509F46DC072C089339105E9F08238D0\r
+:101940009105D1F08533910509F44DC067C0833E00\r
+:10195000910581F138F4803E9105B9F0823E910500\r
+:10196000D9F05CC0863E910561F1873E9105A1F1F9\r
+:1019700055C00E94CA0B08952091EA0120FD02C0C3\r
+:1019800021FF4CC080EE90E049C08091EA0180FFC9\r
+:10199000F9CF89E390E042C08091EA0182FF0EC056\r
+:1019A0008091EA0184FF03C080E090E037C083EEBD\r
+:1019B00090E034C08091EA0182FFF2CF82EE90E0A5\r
+:1019C0002DC08091EA0183FF0BC08091EA0184FD64\r
+:1019D000EBCF87EE90E022C08091EA0183FFF5CF44\r
+:1019E00086EE90E01BC08091EA0185FF07C089E286\r
+:1019F00090E014C08091EA0185FFF9CF85E390E083\r
+:101A00000DC08091EA0186FF07C08AE290E006C01F\r
+:101A10008091EA0186FFF9CF81E390E00E94F80A05\r
+:101A20000895089580916D0108959FB7F8941092DC\r
+:101A30005C019FBF9091F001943009F057C09091E4\r
+:101A4000E9009F703091EC00232F217030FD20E8D9\r
+:101A5000922B24E02093E9002091EB0020FF43C06B\r
+:101A60002091EE0027FF3FC020915A01222321F050\r
+:101A70002091E80025FF37C010925A0126E03091EE\r
+:101A8000E80035FD15C03091F001343061F530913A\r
+:101A9000EB0035FD28C0215021F481E080935A01EC\r
+:101AA00022C0EFE9FFE03197F1F700C00000E7CF77\r
+:101AB0008093F1008091E80085FD0AC08091E800E4\r
+:101AC00080FFFCCF8091E8008E778093E80006C00D\r
+:101AD0008FB7F89421E020935C018FBF9F709093A3\r
+:101AE000E90080E008959F709093E9008FEF0895DA\r
+:101AF000CF93DF9300D01F92CDB7DEB79C018091CA\r
+:101B0000F001843019F593E099833B832A83909305\r
+:101B1000E9008FEF9091E800815095FD06C095EDAA\r
+:101B20009A95F1F700008111F5CF8091E80085FFCB\r
+:101B30000DC040E050E063E070E0CE0101960E94ED\r
+:101B400048108091E8008E778093E8000F900F9006\r
+:101B50000F90DF91CF910895CF93DF9300D01F9224\r
+:101B6000CDB7DEB72091F001243021F522E02983A2\r
+:101B70009B838A8383E08093E9008FEF9091E80054\r
+:101B8000815095FD06C095ED9A95F1F70000811101\r
+:101B9000F5CF8091E80085FF0DC040E050E063E0A4\r
+:101BA00070E0CE0101960E9448108091E8008E7787\r
+:101BB0008093E8000F900F900F90DF91CF910895E0\r
+:101BC0002091F0012430F1F422E02093E9002FEF7E\r
+:101BD0003091E800215035FD06C035ED3A95F1F71A\r
+:101BE00000002111F5CF2091E80025FF0BC040E057\r
+:101BF00050E065E070E00E9448108091E8008E7728\r
+:101C00008093E8000895CF93DF932091F001243072\r
+:101C100009F048C0EC0180910C018823E1F080912B\r
+:101C20000D018823C1F085E08093E9008FEF90914A\r
+:101C3000E800815095FD06C095E19A95F1F7000006\r
+:101C40008111F5CF8091E80085FF2CC040E050E085\r
+:101C500060E170E017C081E08093E9008FEF909120\r
+:101C6000E800815095FD06C095ED9A95F1F70000CA\r
+:101C70008111F5CF8091E80085FF14C040E050E06D\r
+:101C800068E070E0CE010E9448108091E8008E77F5\r
+:101C90008093E80080E1FE01ADE5B1E001900D9296\r
+:101CA0008A95E1F7DF91CF91089583E993E00E944F\r
+:101CB00052078091EF01811109C00E94DD110E943D\r
+:101CC0003A128091E20084608093E20008958FE8E8\r
+:101CD00093E00E9452071092EF0108958BE893E081\r
+:101CE0000C94520787E893E00E9452070C94ED2B66\r
+:101CF00083E893E00E9452070E94B7210E94F32BD1\r
+:101D00000E94DF140C94110D20915B012F5F822F34\r
+:101D100062E30E94612D992319F020935B010895DD\r
+:101D200010925B0180915C01882371F18091F00138\r
+:101D3000843041F58091E9008F702091EC00922F62\r
+:101D4000917020FD90E8892B94E09093E9009091A8\r
+:101D5000EB0090FF14C09091EE0097FF10C090919F\r
+:101D6000E80095FF03C01092F100F9CF9091E800D0\r
+:101D700090FF05C09091E8009E779093E8008F70E7\r
+:101D80008093E90010925C01089542E061EC81E0EB\r
+:101D90000E94571142E061EC82E00E94571142E03C\r
+:101DA00061EC83E00E94571142E261EC84E00E9402\r
+:101DB000571142E161EC85E00C9457118091F201DA\r
+:101DC000833009F455C030F4813071F0823009F469\r
+:101DD0008EC008958A3009F47AC08B3009F460C04F\r
+:101DE000893009F09CC020C08091F101813A09F04E\r
+:101DF00096C08091E800877F8093E8008091F5018C\r
+:101E00009091F601892B21F460E18DE591E003C00A\r
+:101E100060E080E090E070E00E9493108091E80024\r
+:101E20008B778093E80008958091F101813209F069\r
+:101E300076C08091F5019091F601009719F0049712\r
+:101E400009F06DC08091E800877F8093E800809161\r
+:101E5000E80082FD05C08091F0018111F8CF5FC0DC\r
+:101E60008091F10080936D018091E8008B7753C0E1\r
+:101E70008091F101813A09F052C08091F501909171\r
+:101E8000F601892B09F04BC08091E800877F809391\r
+:101E9000E8008091E80080FFFCCF80910C0136C003\r
+:101EA0008091F1018132D9F58091F5019091F6018F\r
+:101EB000892BA9F58091E800877F8093E8000E9434\r
+:101EC0008C118091F30180930C010C94BB1A8091CA\r
+:101ED000F101813221F58091E800877F8093E8004D\r
+:101EE0000E948C118091F40180936E01089580917D\r
+:101EF000F101813AA1F48091E800877F8093E800A6\r
+:101F00008091E80080FFFCCF80916E018093F1000A\r
+:101F10008091E8008E778093E8000C948C110895EE\r
+:101F200084B7877F84BF88E10FB6F8948093600000\r
+:101F3000109260000FBE90E080E80FB6F894809396\r
+:101F40006100909361000FBE0E946C150E94DD112C\r
+:101F50000E943A128091E20084608093E20085E161\r
+:101F60009DE00E94F62078940E94BF140E946E1596\r
+:101F700082E091E00E94DA140E94DB2B82E793E07A\r
+:101F80000E9452078091F001853089F48EE693E03B\r
+:101F90000E9452070E947B218091EE01882391F3D9\r
+:101FA0000E94A321882371F30E943210EBCF0E947C\r
+:101FB0009C15E8CF292F332723303105C9F064F46D\r
+:101FC0002130310581F02230310509F043C08DE820\r
+:101FD00090E02BEC33E042C021323105F1F02232A7\r
+:101FE000310541F137C082E190E028E534E036C0A8\r
+:101FF00099278130910541F08230910541F0892B7C\r
+:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9\r
+:10201000F3E0849190E09F0121C06530D8F4E62F71\r
+:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074\r
+:1020300090E014C0653070F470E0FB01EE0FFF1FFC\r
+:10204000E55EFE4F20813181FB01EA5EFE4F80811B\r
+:1020500090E004C080E090E020E030E0FA013183BD\r
+:102060002083089580E189BD82E189BD09B400FE25\r
+:10207000FDCF8091D8008F7D8093D8008091E000C3\r
+:1020800082608093E0008091E00081FDFCCF0895A4\r
+:10209000CF92DF92EF92FF920F931F93CF93DF9334\r
+:1020A000EC018B016A010E94AB11811133C0C11494\r
+:1020B000D10439F0F60180819181081B190BC80FFA\r
+:1020C000D91FE12CF12C0115110519F18091E800BF\r
+:1020D00085FD16C08091E8008E778093E800C114DA\r
+:1020E000D10449F0F60180819181E80EF91EF18258\r
+:1020F000E08285E00FC00E94AB11882321F30AC063\r
+:1021000089918093F10001501109FFEFEF1AFF0A46\r
+:10211000DACF80E0DF91CF911F910F91FF90EF9088\r
+:10212000DF90CF9008952091F7013091F8012617A4\r
+:10213000370748F06115710539F42091E8002E77D2\r
+:102140002093E80001C0B90140E061157105A9F1D3\r
+:102150002091F001222309F443C0253009F442C044\r
+:102160002091E80023FD40C02091E80022FD32C00C\r
+:102170002091E80020FFE9CF4091F3002091F20088\r
+:1021800030E0342BFC01CF016115710559F0283086\r
+:10219000310540F481918093F100615071092F5F06\r
+:1021A0003F4FF1CF41E02830310509F040E0209168\r
+:1021B000E8002E772093E800C8CF4111C9CF0AC0AC\r
+:1021C0008091F001882361F0853061F08091E80012\r
+:1021D00083FD0AC08091E80082FFF2CF80E008957D\r
+:1021E00082E0089583E0089581E008952091F70149\r
+:1021F0003091F8012617370748F06115710539F459\r
+:102200002091E8002E772093E80001C0B901FC017D\r
+:1022100020E06115710591F18091F001882309F4A6\r
+:1022200040C0853009F43FC08091E80083FD3DC087\r
+:102230008091E80082FD2FC08091E80080FFE9CF07\r
+:102240002091F3008091F20090E0922B61157105CE\r
+:1022500059F08830910540F424912093F100319693\r
+:10226000615071090196F2CF21E0089709F020E052\r
+:102270008091E8008E778093E800CBCF2111CCCFFE\r
+:102280000AC08091F001882361F0853061F080916F\r
+:10229000E80083FD0AC08091E80082FFF2CF80E071\r
+:1022A000089582E0089583E0089581E00895982FCD\r
+:1022B000973058F59093E900981739F07091EC0039\r
+:1022C0002091ED005091F00003C0242F762F50E0B4\r
+:1022D00021FF19C03091EB003E7F3093EB0030912D\r
+:1022E000ED003D7F3093ED003091EB003160309395\r
+:1022F000EB007093EC002093ED005093F0002091E0\r
+:10230000EE0027FF07C09F5FD3CF8F708093E90057\r
+:1023100081E0089580E008958091F10187FF11C068\r
+:102320008091E80082FD05C08091F0018111F8CF15\r
+:1023300011C08091E8008B770BC08091F001882359\r
+:1023400049F08091E80080FFF8CF8091E8008E7717\r
+:102350008093E80008952091E4003091E50095E62F\r
+:102360004091EC00842F817040FF22C08091E800F2\r
+:1023700080FD1CC08091F001882391F0853091F0A0\r
+:102380008091EB0085FD10C04091E4005091E50084\r
+:102390004217530729F39A01915011F784E00895E9\r
+:1023A00082E0089583E0089581E0089580E0089533\r
+:1023B0004091E80042FFDECF08950E944B120E9438\r
+:1023C0005312E0EEF0E0808181608083E8EDF0E080\r
+:1023D00080818F77808319BCA7EDB0E08C918E7FD0\r
+:1023E0008C9380818F7E80831092EF0108950F93EC\r
+:1023F0001F93CF93DF930E944B120E945312C8ED9C\r
+:10240000D0E088818F7788838881806888838881FD\r
+:102410008F7D888319BC1092F0011092EC0110920C\r
+:10242000EE011092ED0100EE10E0F80180818B7F4B\r
+:10243000808388818160888342E060E080E00E9440\r
+:102440005711E1EEF0E080818E7F8083E2EEF0E0D4\r
+:10245000808181608083808188608083F8018081B1\r
+:102460008E7F8083888180618883DF91CF911F91E7\r
+:102470000F910895E8EDF0E080818F7E8083E7ED95\r
+:10248000F0E080818160808384E082BF81E080937E\r
+:10249000EF010C94F711E8EDF0E080818E7F8083EE\r
+:1024A0001092E20008951092DA001092E10008956F\r
+:1024B0001F920F920FB60F9211242F933F934F93B9\r
+:1024C0005F936F937F938F939F93AF93BF93EF939C\r
+:1024D000FF938091E10082FF0BC08091E20082FFB8\r
+:1024E00007C08091E1008B7F8093E1000E94840E01\r
+:1024F0008091DA0080FF1FC08091D80080FF1BC050\r
+:102500008091DA008E7F8093DA008091D90080FF7D\r
+:102510000DC080E189BD82E189BD09B400FEFDCF17\r
+:1025200081E08093F0010E94550E05C019BC109205\r
+:10253000F0010E94670E8091E10080FF19C0809138\r
+:10254000E20080FF15C08091E2008E7F8093E20060\r
+:102550008091E20080618093E2008091D8008062E7\r
+:102560008093D80019BC85E08093F0010E94720E20\r
+:102570008091E10084FF30C08091E20084FF2CC094\r
+:1025800080E189BD82E189BD09B400FEFDCF809163\r
+:10259000D8008F7D8093D8008091E1008F7E80935A\r
+:1025A000E1008091E2008F7E8093E2008091E20062\r
+:1025B00081608093E2008091EC01882311F084E037\r
+:1025C00007C08091E30087FD02C081E001C083E085\r
+:1025D0008093F0010E94780E8091E10083FF29C072\r
+:1025E0008091E20083FF25C08091E100877F809386\r
+:1025F000E10082E08093F0011092EC018091E10013\r
+:102600008E7F8093E1008091E2008E7F8093E200D4\r
+:102610008091E20080618093E20042E060E080E02F\r
+:102620000E9457118091F00088608093F0000E9412\r
+:102630006E0EFF91EF91BF91AF919F918F917F911E\r
+:102640006F915F914F913F912F910F900FBE0F901F\r
+:102650001F9018951F920F920FB60F9211242F936F\r
+:102660003F934F935F936F937F938F939F93AF931A\r
+:10267000BF93CF93DF93EF93FF93C091E900CF70A7\r
+:102680008091EC00D82FD17080FDD0E81092E90045\r
+:102690008091F000877F8093F00078940E946E1301\r
+:1026A0001092E9008091F00088608093F000CD2BBB\r
+:1026B000CF70C093E900FF91EF91DF91CF91BF916F\r
+:1026C000AF919F918F917F916F915F914F913F91CA\r
+:1026D0002F910F900FBE0F901F9018951F93CF93BF\r
+:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63\r
+:1026F000CDBFE1EFF1E088E08E0F9091F100919372\r
+:102700008E13FBCF0E94DE0E8091E80083FF1FC175\r
+:102710008091F1019091F201492F50E04A3051052A\r
+:1027200008F015C1FA01EA5AFF4F0C94812D803848\r
+:1027300081F0823809F00BC18091F5018F70809390\r
+:10274000E9008091EB0085FB882780F91092E90071\r
+:1027500006C08091ED019091EE01911182609091FF\r
+:10276000E800977F9093E8008093F1001092F100C9\r
+:10277000C8C0282F2D7F09F0EAC0882319F08230C5\r
+:1027800061F0E5C08091F301813009F0E0C0933041\r
+:1027900009F080E08093EE012BC08091F30181115C\r
+:1027A00027C08091F5018F7009F4D1C08093E900B2\r
+:1027B0002091EB0020FF1CC0933021F48091EB00AE\r
+:1027C000806214C09091EB0090619093EB0021E047\r
+:1027D00030E0A90102C0440F551F8A95E2F74093EB\r
+:1027E000EA001092EA008091EB0088608093EB0091\r
+:1027F0001092E9008091E800877F86C08111A7C010\r
+:102800001091F3011F778091E3008078812B8093F2\r
+:10281000E3008091E800877F8093E8000E948C119C\r
+:102820008091E80080FFFCCF8091E3008068809376\r
+:10283000E300111102C082E001C083E08093F00147\r
+:1028400086C08058823008F082C08091F301909158\r
+:10285000F4018C3D53E0950779F583E08A838AE2A1\r
+:1028600089834FB7F894DE01139620E03EE051E2F1\r
+:10287000E32FF0E050935700E49120FF03C0E2956E\r
+:10288000EF703F5FEF708E2F90E0EA3010F0C79648\r
+:1028900001C0C0968D939D932F5F243149F74FBFA0\r
+:1028A0008091E800877F8093E8006AE270E0CE01C3\r
+:1028B00001960E94931014C0AE014F5F5F4F60916C\r
+:1028C000F5010E94DA0FBC01892B09F440C09091F8\r
+:1028D000E800977F9093E80089819A810E94F61022\r
+:1028E0008091E8008B778093E80031C0803879F5DB\r
+:1028F0008091E800877F8093E8008091EC018093CD\r
+:10290000F1008091E8008E778093E8000E948C119E\r
+:102910001EC081111CC09091F3019230C0F48091CF\r
+:10292000E800877F8093E8009093EC010E948C116F\r
+:102930008091EC01811106C08091E30087FD02C007\r
+:1029400081E001C084E08093F0010E94C50E809177\r
+:10295000E80083FF0AC08091E800877F8093E80049\r
+:102960008091EB0080628093EB00AA960FB6F894FA\r
+:10297000DEBF0FBECDBFDF91CF911F910895CF93E2\r
+:102980008091F0018823A1F0C091E900CF7090916F\r
+:10299000EC00892F817090FD80E8C82B1092E9002F\r
+:1029A0008091E80083FD0E946E13CF70C093E90010\r
+:1029B000CF91089590937401809373010895E091ED\r
+:1029C0007301F0917401309721F00190F081E02DB6\r
+:1029D000099480E00895EF92FF920F931F93CF9395\r
+:1029E000DF93E0917301F09174013097B1F18C01A4\r
+:1029F0000280F381E02D09958091D70182FF2DC0DF\r
+:102A000080FF04C08DE895E00E945207E80110E1C4\r
+:102A100087E8E82E85E0F82E8091D70180FF0BC073\r
+:102A200088811F928F93FF92EF920E94EB070F9085\r
+:102A30000F900F900F90115021961111EDCF8091B2\r
+:102A4000D70180FF0AC085E895E0DF91CF911F9103\r
+:102A50000F91FF90EF900C945207DF91CF911F914F\r
+:102A60000F91FF90EF900895E0917301F091740140\r
+:102A7000309721F00480F581E02D0994089520918C\r
+:102A80007101309172018217930771F09093720176\r
+:102A900080937101E0917301F0917401309721F0FE\r
+:102AA0000680F781E02D0994089520916F013091FF\r
+:102AB00070018217930771F09093700180936F01FA\r
+:102AC000E0917301F0917401309721F00084F18559\r
+:102AD000E02D0994089508950C946B150E94B92176\r
+:102AE0000E9462090C947F22CF93C82F8091D70156\r
+:102AF00082FF1EC080FF04C086EA95E00E94520754\r
+:102B00008091D70180FF0CC01F92CF9381EA95E09E\r
+:102B10009F938F930E94EB070F900F900F900F9051\r
+:102B20008091D70180FF04C08FE995E00E94520791\r
+:102B30008C2FCF910C94110DCF92DF92EF92FF92D8\r
+:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD\r
+:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66\r
+:102B600081E0D82E00E010E0E02E802F0E94AB0A1A\r
+:102B7000F60141916F01F42EF826B1F40F5F1F4F5B\r
+:102B80000E30110589F78FEF89838A831B820E949B\r
+:102B9000C2218160782F9D838C8349815A816B810A\r
+:102BA0008D810E943F1640C09091D70191FF04C0D3\r
+:102BB0008B870E94B10A8B8520E030E04F2D50E0DA\r
+:102BC000922FBA01022E02C0759567950A94E2F71A\r
+:102BD00060FF24C02E83EF8221E030E0690102C053\r
+:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D\r
+:102BF00009F420E028870E94C2218160782F9A87FB\r
+:102C000089874E815F8168858A850E943F16F80119\r
+:102C1000EA58FE4F8081C826C08206C02F5F3F4F12\r
+:102C20002630310569F6AACF0E94F0251091750172\r
+:102C30000E94DF141817A1F00E94DF148093750121\r
+:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC\r
+:102C50001F910F91FF90EF90DF90CF900C9474151F\r
+:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C\r
+:102C70001F910F91FF90EF90DF90CF900895CF9329\r
+:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C\r
+:102C9000CDBF4F83588769877A878B87DE0111966E\r
+:102CA00086E0FD0111928A95E9F785E0FE013796ED\r
+:102CB00001900D928A95E1F749815A816B817C815F\r
+:102CC0008D819E810E94551D2B960FB6F894DEBF14\r
+:102CD0000FBECDBFDF91CF910895CF93882309F424\r
+:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6\r
+:102CF00089E30E94F11F0E94D02089E30CC0833831\r
+:102D000079F40E94DF1480FDAEC083E50E94F11FBC\r
+:102D10000E94D02083E50E944420CF910C94D020C3\r
+:102D2000843859F40E94DF1482FD9DC087E40E941C\r
+:102D3000F11F0E94D02087E4EECF8CEF8C0F813AF8\r
+:102D400048F48C2F0E94832A81118DC08C2F0E9401\r
+:102D5000F11FE3CF80E28C0F883048F4C77081E028\r
+:102D600001C0880FCA95EAF70E949920D6CF8BE55B\r
+:102D70008C0F833078F4C53A29F0C63A31F083E8F5\r
+:102D800090E005C081E890E002C082E890E0CF9139\r
+:102D90000C943F1588E58C0F833108F064C0C83A65\r
+:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39\r
+:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8\r
+:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35\r
+:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95\r
+:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC\r
+:102DF00082EE90E035C089EE90E032C08AEE90E03D\r
+:102E00002FC085EB90E02CC086EB90E029C087EBCB\r
+:102E100090E026C08CEC90E023C08DEC90E020C0C8\r
+:102E200083E891E01DC08AE891E01AC082E991E050\r
+:102E300017C084E991E014C081E292E011C083E2FE\r
+:102E400092E00EC084E292E00BC085E292E008C0FE\r
+:102E500086E292E005C087E292E002C08AE292E058\r
+:102E6000CF910C945515CF910895882309F44BC048\r
+:102E7000823859F40E94DF1481FF45C089E30E9423\r
+:102E8000F11F0E94D02089E30CC0833871F40E94A6\r
+:102E9000DF1480FF38C083E50E94F11F0E94D0201C\r
+:102EA00083E50E9444200C94D020843859F40E9479\r
+:102EB000DF1482FF28C087E40E94F11F0E94D02007\r
+:102EC00087E4EFCF9CEF980F913A58F390E2980F78\r
+:102ED000983050F4877091E001C0990F8A95EAF715\r
+:102EE000892F0E949F20DFCF9BE5980F933020F41D\r
+:102EF00080E090E00C943F15885A833120F480E004\r
+:102F000090E00C9455150895882321F00E94992093\r
+:102F10000C94D0200895882321F00E949F200C94C7\r
+:102F2000D0200895BF92CF92DF92EF92FF920F933D\r
+:102F30001F93CF93DF9300D000D000D0CDB7DEB782\r
+:102F400025E0FC01DE01119601900D922A95E1F732\r
+:102F5000FC01408131810281258122952F7063819E\r
+:102F60007481672B09F4E5C23F3F19F44F3F09F420\r
+:102F7000E0C27C0149833A8389819A812E830E9431\r
+:102F8000B01F182FB92E0E94AF1F0E94761EEB2D86\r
+:102F9000E295EF70F0E0E05AFF4F2E810C94812D06\r
+:102FA0008B2D807F9B2D9F70F92E882319F0F29432\r
+:102FB00080EFF822002349F0FF2009F467C28F2D2B\r
+:102FC0000E94A9200E94D02061C2812F0E94351743\r
+:102FD000FF2009F4AEC28F2D0E94AF2026960FB6B7\r
+:102FE000F894DEBF0FBECDBFDF91CF911F910F913F\r
+:102FF000FF90EF90DF90CF90BF900C94D0203B2DAE\r
+:10300000307F8B2D8F70303211F08295807F1123AD\r
+:1030100019F0113021F12CC00023B9F0222309F45A\r
+:10302000A0C1213009F09DC126960FB6F894DEBFED\r
+:103030000FBECDBFDF91CF911F910F91FF90EF9009\r
+:10304000DF90CF90BF900C94B920222319F021304B\r
+:1030500009F46FC28E830E94BC208E8196C100232A\r
+:1030600021F0223008F065C27CC1211162C28DC1FD\r
+:10307000002321F0222309F474C108C2222309F499\r
+:1030800084C119C22B2D26952695237030E0211579\r
+:10309000310521F021303105D1F04BC2002321F060\r
+:1030A000812F9B2D937002C080E090E026960FB692\r
+:1030B000F894DEBF0FBECDBFDF91CF911F910F916E\r
+:1030C000FF90EF90DF90CF90BF900C943F150023BE\r
+:1030D00021F0812F9B2D937002C080E090E0269616\r
+:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119\r
+:1030F0000F91FF90EF90DF90CF90BF900C945515FB\r
+:10310000812F002319F00E94762402C00E94DE2441\r
+:1031100026960FB6F894DEBF0FBECDBFDF91CF91DC\r
+:103120001F910F91FF90EF90DF90CF90BF900C9484\r
+:1031300063258B2D837009F07BC00111FAC1812FAB\r
+:10314000829586958770880F880F912F9F70C92E62\r
+:10315000D12CE12CF12C082E04C0CC0CDD1CEE1C73\r
+:10316000FF1C0A94D2F714FF12C04FE050E060E059\r
+:1031700070E004C0440F551F661F771F8A95D2F771\r
+:10318000CB01BA01609570958095909503C060E081\r
+:1031900070E0CB012B2D269526952370422F50E011\r
+:1031A00042305105D9F04330510569F16C297D2930\r
+:1031B0008E299F294130510551F126960FB6F8947A\r
+:1031C000DEBF0FBECDBFDF91CF911F910F91FF905A\r
+:1031D000EF90DF90CF90BF900C949D1E6C297D29BD\r
+:1031E0008E299F2926960FB6F894DEBF0FBECDBF5D\r
+:1031F000DF91CF911F910F91FF90EF90DF90CF90D3\r
+:10320000BF900C94B91E0E949D1EC701B601269660\r
+:103210000FB6F894DEBF0FBECDBFDF91CF911F91E7\r
+:103220000F91FF90EF90DF90CF90BF900C94811E94\r
+:10323000002319F08B2D817001C08695882309F435\r
+:1032400078C1812F829586958770880F880F912F7E\r
+:103250009F70C92ED12CE12CF12C082E04C0CC0C6F\r
+:10326000DD1CEE1CFF1C0A94D2F714FF12C04FE0C5\r
+:1032700050E060E070E004C0440F551F661F771FE8\r
+:103280008A95D2F7CB01BA0160957095809590959B\r
+:1032900003C060E070E0CB012B2D269526952370AE\r
+:1032A000422F50E042305105D9F04330510569F1C9\r
+:1032B0006C297D298E299F294130510551F126968F\r
+:1032C0000FB6F894DEBF0FBECDBFDF91CF911F9137\r
+:1032D0000F91FF90EF90DF90CF90BF900C94771FED\r
+:1032E0006C297D298E299F2926960FB6F894DEBF7A\r
+:1032F0000FBECDBFDF91CF911F910F91FF90EF9047\r
+:10330000DF90CF90BF900C94931F0E94771FC7014E\r
+:10331000B60126960FB6F894DEBF0FBECDBFDF9183\r
+:10332000CF911F910F91FF90EF90DF90CF90BF90C2\r
+:103330000C945B1F103FD1F118F4103E50F4A1C063\r
+:10334000123F09F463C008F44CC0133F09F473C082\r
+:1033500098C01F708B2D8F710023A1F00E94F41E66\r
+:10336000812F26960FB6F894DEBF0FBECDBFDF913A\r
+:10337000CF911F910F91FF90EF90DF90CF90BF9072\r
+:103380000C9484170E94151F812F26960FB6F8946F\r
+:10339000DEBF0FBECDBFDF91CF911F910F91FF9088\r
+:1033A000EF90DF90CF90BF900C948B170023A9F083\r
+:1033B0002111BFC08B2D8F7126960FB6F894DEBFFA\r
+:1033C0000FBECDBFDF91CF911F910F91FF90EF9076\r
+:1033D000DF90CF90BF900C943A1F223008F0A9C024\r
+:1033E000E9CF0023A9F08B2D8F7126960FB6F894A4\r
+:1033F000DEBF0FBECDBFDF91CF911F910F91FF9028\r
+:10340000EF90DF90CF90BF900C94F41E002359F3FF\r
+:103410008B2D8F7126960FB6F894DEBF0FBECDBFF1\r
+:10342000DF91CF911F910F91FF90EF90DF90CF90A0\r
+:10343000BF900C94151F002399F08B2D8F71269649\r
+:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5\r
+:103450000F91FF90EF90DF90CF90BF900C94DF1E04\r
+:1034600026960FB6F894DEBF0FBECDBFDF91CF9189\r
+:103470001F910F91FF90EF90DF90CF90BF900C9431\r
+:10348000D51E0023A9F0222309F4ADCF812F269663\r
+:103490000FB6F894DEBF0FBECDBFDF91CF911F9165\r
+:1034A0000F91FF90EF90DF90CF90BF900C946D162E\r
+:1034B000222309F4ADCF812F26960FB6F894DEBFF4\r
+:1034C0000FBECDBFDF91CF911F910F91FF90EF9075\r
+:1034D000DF90CF90BF900C9435174B2D4F70612F1C\r
+:1034E000C7010E94F40726960FB6F894DEBF0FBE00\r
+:1034F000CDBFDF91CF911F910F91FF90EF90DF90A3\r
+:10350000CF90BF900C94F91D4B2D4F70612FC701C8\r
+:1035100026960FB6F894DEBF0FBECDBFDF91CF91D8\r
+:103520001F910F91FF90EF90DF90CF90BF900C9480\r
+:10353000B70B26960FB6F894DEBF0FBECDBFDF9156\r
+:10354000CF911F910F91FF90EF90DF90CF90BF90A0\r
+:1035500008950E94B6200E948B200E94D0200E94D5\r
+:1035600096260E94632580E090E00E943F1580E04F\r
+:1035700090E00C9455150E94A6200C94A91A0E9464\r
+:10358000B01F292F22952F7030E02C3031054CF4DC\r
+:103590002A3031056CF4225031092230310588F48B\r
+:1035A00007C02C30310549F02F30310531F009C00A\r
+:1035B000803E48F0803F29F406C093FB882780F9BD\r
+:1035C000089580E0089581E00895CF93DF9300D0BF\r
+:1035D00000D01F92CDB7DEB70F900F900F900F90D5\r
+:1035E0000F90DF91CF910895CF93DF9300D000D05B\r
+:1035F00000D0CDB7DEB726960FB6F894DEBF0FBE6B\r
+:10360000CDBFDF91CF9108951F93CF93DF93C091EA\r
+:10361000840116E080918501C81799F0D0E01C9FC5\r
+:10362000F0011D9FF00D1124EA57FE4F408151819A\r
+:1036300062817381848195810E94F41A2196C770FA\r
+:10364000E9CFDF91CF911F9108954091B60150913C\r
+:10365000B7016091B8017091B9018091BA01909160\r
+:10366000BB010C94F41A8091BB0182958F7009F014\r
+:1036700054C08091B801882309F44FC0809184011F\r
+:10368000A09185016091B6017091B7014091B90197\r
+:103690005091BA01B6E08A1709F43FC090E0411595\r
+:1036A0005105C1F17F3F11F46F3FA1F1B89FF001C7\r
+:1036B000B99FF00D1124EA57FE4F218172132AC0E1\r
+:1036C0002081621327C02281211124C023813481EB\r
+:1036D0002417350710F421503109241B350B283CE1\r
+:1036E0003105C0F42091BB012F7020612093BB01F4\r
+:1036F00026E0289FF001299FF00D1124E557FE4F89\r
+:1037000080818F708061808386EB91E00E949217A8\r
+:103710000C94041B01968770BECF0895CF92DF9260\r
+:10372000EF92FF920F931F93CF93DF93CDB7DEB746\r
+:1037300062970FB6F894DEBF0FBECDBF8C0185E057\r
+:10374000F801DE011D9601900D928A95E1F7D801EE\r
+:103750004C9111965C91119712966C911297139659\r
+:10376000CD90DC9014973091B6017091B7018091A3\r
+:10377000B9019091BA01009709F46BC17F3F19F428\r
+:103780003F3F09F466C1E090B801EE2009F4C0C0E3\r
+:103790002091BB01C816D90628F0F601E81BF90BE9\r
+:1037A000CF0104C0809590958C0D9D1DFF24F3944E\r
+:1037B000883C910578F0F12C207F09F0C6C07C2D63\r
+:1037C000D98AC88A89890E94E51A86EB91E00E940D\r
+:1037D0009217B1C0822F807F09F046C0751314C0C4\r
+:1037E000341312C0611110C02F7020612093BB01EF\r
+:1037F0000E94251B86EB91E00E9492178091BB01ED\r
+:10380000D80115968C932EC0CD2819F15F3F11F485\r
+:103810004F3FF9F0F62E61111CC080918401209178\r
+:10382000850136E0821709F45AC090E0389FF00114\r
+:10383000399FF00D1124EA57FE4F7181571306C0CE\r
+:103840007081471303C07281711103C001968770A4\r
+:10385000E9CFF62E662309F418C18091BB0181607F\r
+:103860008093BB01F12C11C1751308C0341306C03D\r
+:10387000611104C08091BB01D801C3C04D875E8730\r
+:103880008D859E856A8B0E94BF1A6A898823E1F123\r
+:103890006623D1F12091BB01822F82958F7090E039\r
+:1038A000029774F08091B6019091B70198878F8349\r
+:1038B0001986DB86CA862C87CE0107960E9492174E\r
+:1038C00086E0F801A6EBB1E001900D928A95E1F750\r
+:1038D0000E94331B0E94251BFF24F394D6C04D8702\r
+:1038E0005E878D859E850E94B01F292F22952F709F\r
+:1038F00030E0223031050CF0BCC09F7009F0B6C03A\r
+:10390000805E883008F4C1C0C8010E949217E4CFDD\r
+:10391000C816D90608F453C0F601E81BF90BCF010D\r
+:10392000883C910508F450C0F12C7C2DD98AC88AB6\r
+:1039300089890E94E51AE6EBF1E086E0DF011D923D\r
+:103940008A95E9F70E94251BA0C0751314C0341393\r
+:1039500012C0611110C08091BB01F8018583C801BC\r
+:103960000E94921786E0E6EBF1E0DF011D928A9556\r
+:10397000E9F7FE2C8AC04D875E878D859E856A8B10\r
+:103980000E94BF1A6A89882309F4BECF662309F40E\r
+:10399000BBCF2091BB01822F82958F7090E0029760\r
+:1039A0000CF48ECF8091B6019091B7019A838983F0\r
+:1039B0001B82DD82CC822E83CE0101967FCF809543\r
+:1039C00090958C0D9D1DACCFF62E662309F49CCFEF\r
+:1039D00075132EC034132CC02091BB0120FD1FC0D5\r
+:1039E000822F82958F70D9F0D80115962C93159758\r
+:1039F0008F3049F08F5F982F9295907F822F8F7034\r
+:103A0000892B15968C93C8010E94921786E0F801C5\r
+:103A1000A6EBB1E001900D928A95E1F793CF86E095\r
+:103A2000F801A6EBB1E001900D928A95E1F72DC067\r
+:103A30004D875E878D859E850E94BF1A811140CF7C\r
+:103A40008091BB0181608093BB01C8010E949217E5\r
+:103A50001CC0662309F458CF4D875E878D859E85EF\r
+:103A60000E94BF1A882309F44FCF2ACF811148CF73\r
+:103A70000CC0243031050CF047CF9F7009F440CFC3\r
+:103A8000F8019581907F09F03BCF8F2D62960FB69C\r
+:103A9000F894DEBF0FBECDBFDF91CF911F910F9184\r
+:103AA000FF90EF90DF90CF9008951F93CF93DF9317\r
+:103AB000CDB7DEB72C970FB6F894DEBF0FBECDBFE3\r
+:103AC0004F83588769877A878B879C87CE010796B3\r
+:103AD0000E948E1B882369F08F8198852A853B85FB\r
+:103AE000232BF1F19F3F09F063C08F3F09F060C0C5\r
+:103AF00037C086E0FE013796DE01119601900D92E7\r
+:103B00008A95E1F76F817885EA85FB85309741F1E9\r
+:103B10007F3F11F46F3F21F12091850130E0C90111\r
+:103B20000196877099274091840150E0841795078A\r
+:103B300009F447C069837A83FD83EC8396E0929F02\r
+:103B4000D001939FB00D1124AA57BE4FFE013196AC\r
+:103B500001900D929A95E1F7809385010E94041BD4\r
+:103B600016E080918401909185018917C1F1189F19\r
+:103B7000C00111248A579E4F0E948E1B882379F121\r
+:103B8000E09184011E9FF0011124EA57FE4F40810D\r
+:103B9000518162817381848195810E94F41A8091A0\r
+:103BA000840190E001968770992780938401D9CF92\r
+:103BB0004F81588569857A858B859C850E94F41A8A\r
+:103BC000CFCF0E94BB1A1092850110928401E6EBC0\r
+:103BD000F1E086E0DF011D928A95E9F7C1CF2C96CE\r
+:103BE0000FB6F894DEBF0FBECDBFDF91CF911F910E\r
+:103BF0000895EF92FF920F931F93CF93DF938C0161\r
+:103C0000892B09F46CC0F12CEE24E394E801219691\r
+:103C1000F8018491843740F4843008F051C0813039\r
+:103C200081F0823019F15BC0853709F444C0A8F1F6\r
+:103C30009CE7980F903708F052C08F770E94351795\r
+:103C400041C00E5F1F4FFE01C49180E28C0F88308F\r
+:103C500048F4C7708E2D01C0880FCA95EAF70E94FC\r
+:103C6000A92014C08C2F0E946D162DC00E5F1F4F0F\r
+:103C7000FE01C49180E28C0F883058F4C7708E2DFD\r
+:103C800001C0880FCA95EAF70E94AF200E94D02099\r
+:103C90001AC08C2F0E94351716C00E5F1F4FFE01F1\r
+:103CA000C491CC2381F08FE99FE00197F1F700C028\r
+:103CB0000000C150F6CF0E5F1F4FFE01F49003C00D\r
+:103CC0000E946D168E018F2D882309F49FCFEFE996\r
+:103CD000FFE03197F1F700C000008150F5CFDF9190\r
+:103CE000CF911F910F91FF90EF90089508956093E9\r
+:103CF000C0017093C1018093C2019093C3010C94E1\r
+:103D0000A91A0F931F930091C0011091C101209136\r
+:103D1000C2013091C301DC01CB01802B912BA22B7E\r
+:103D2000B32B8093C0019093C101A093C201B093C3\r
+:103D3000C3011F910F910C94A91A0F931F93009127\r
+:103D4000C0011091C1012091C2013091C301DC0179\r
+:103D5000CB0180239123A223B3238093C0019093AE\r
+:103D6000C101A093C201B093C3011F910F910C94A4\r
+:103D7000A91A0F931F930091C0011091C1012091C6\r
+:103D8000C2013091C301DC01CB0180279127A2271A\r
+:103D9000B3278093C0019093C101A093C201B09357\r
+:103DA000C3011F910F910C94A91A1092BC0110929B\r
+:103DB000BD011092BE011092BF010C94A91A41E0FE\r
+:103DC00050E060E070E004C0440F551F661F771F8D\r
+:103DD0008A95D2F74093BC015093BD016093BE0118\r
+:103DE0007093BF010C94A91A41E050E060E070E0CC\r
+:103DF00004C0440F551F661F771F8A95D2F7809124\r
+:103E0000BC019091BD01A091BE01B091BF01482BB2\r
+:103E1000592B6A2B7B2B4093BC015093BD016093BF\r
+:103E2000BE017093BF010C94A91A41E050E060E01C\r
+:103E300070E004C0440F551F661F771F8A95D2F7A4\r
+:103E400040955095609570958091BC019091BD0111\r
+:103E5000A091BE01B091BF01482359236A237B235F\r
+:103E60004093BC015093BD016093BE017093BF01AC\r
+:103E70000C94A91A41E050E060E070E004C0440FE7\r
+:103E8000551F661F771F8A95D2F78091BC019091CC\r
+:103E9000BD01A091BE01B091BF01482759276A27F3\r
+:103EA0007B274093BC015093BD016093BE0170938A\r
+:103EB000BF010C94A91A0F931F930091BC0110919C\r
+:103EC000BD012091BE013091BF01DC01CB01802BEF\r
+:103ED000912BA22BB32B8093BC019093BD01A09397\r
+:103EE000BE01B093BF011F910F910C94A91A0F93BB\r
+:103EF0001F930091BC011091BD012091BE01309132\r
+:103F0000BF01DC01CB0180239123A223B323809343\r
+:103F1000BC019093BD01A093BE01B093BF011F915E\r
+:103F20000F910C94A91A0F931F930091BC0110914B\r
+:103F3000BD012091BE013091BF01DC01CB01802782\r
+:103F40009127A227B3278093BC019093BD01A09332\r
+:103F5000BE01B093BF011F910F910C94A91A08954F\r
+:103F6000CF92DF92EF92FF920F931F93CF93DF9345\r
+:103F70008C01C090C001D090C101E090C201F090CE\r
+:103F8000C3014091BC015091BD016091BE0170918F\r
+:103F9000BF01C42AD52AE62AF72ACFE1D0E0D7010B\r
+:103FA000C6010C2E04C0B695A795979587950A94DF\r
+:103FB000D2F780FF07C0B8018C2F0E94DA0B813046\r
+:103FC000910531F4219758F7B80180E00E94DA0B8F\r
+:103FD000DF91CF911F910F91FF90EF90DF90CF90E5\r
+:103FE000089590910C01992321F090910D01911168\r
+:103FF00009C020910E0130910F01F90132969FEF17\r
+:1040000040E030C0982F9695969596959F30A0F4F5\r
+:10401000E0910E01F0910F01E90FF11D877021E091\r
+:1040200030E0A90102C0440F551F8A95E2F7CA018A\r
+:104030009181892B818308959091D70190FF23C0AE\r
+:104040001F928F9387ED95E09F938F930E94EB07CC\r
+:104050000F900F900F900F9008959F3F39F04F5F92\r
+:104060004E3041F051915813F8CF0DC05111F7CF98\r
+:10407000942FF5CF9F3F39F0F901E90FF11D97FD1E\r
+:10408000FA9582830895089590910C01992321F067\r
+:1040900090910D01911109C020910E0130910F01F5\r
+:1040A000F9013296205F3F4F30C0982F9695969534\r
+:1040B00096959F30A8F4E0910E01F0910F01E90F61\r
+:1040C000F11D877021E030E0A90102C0440F551FA7\r
+:1040D0008A95E2F7CA0180959181892381830895A9\r
+:1040E0009091D70190FF16C01F928F9389EB95E0B6\r
+:1040F0009F938F930E94EB070F900F900F900F905C\r
+:1041000008953196E217F30729F090819813F9CFBB\r
+:104110001082F7CF089581E090E0E0910E01F091D8\r
+:104120000F01E80FF91F1082019680319105A9F760\r
+:1041300008959091D601892B8093D601089580959A\r
+:104140009091D60189238093D60108951092D601CB\r
+:1041500008959091D501892B8093D501089580957C\r
+:104160009091D50189238093D50108951092D501AE\r
+:1041700008958093C40108951092C4010895809118\r
+:104180000E0190910F01FC0131969C01205F3F4F81\r
+:1041900080E0919191118F5FE217F307D1F70895B5\r
+:1041A000E0910E01F0910F018091D6018083E091A2\r
+:1041B0000E01F0910F0190818091D501892B8083B0\r
+:1041C0008091C401882361F0E0910E01F0910F010C\r
+:1041D0009081892B80830E94BF2081111092C4019D\r
+:1041E00080910E0190910F010C94EB1490933B0180\r
+:1041F00080933A010895CF92DF92EF92FF926C0183\r
+:10420000EE24FF24C114D104E104F10421F0C7011C\r
+:10421000B60120E101C020E0C72ED82EE92EFF24F0\r
+:10422000C114D104E104F10419F0285FC701B601FB\r
+:104230006B017C0154E0F694E794D794C7945A95A7\r
+:10424000D1F7C114D104E104F10419F02C5FC701C6\r
+:10425000B6016B017C0142E0F694E794D794C794D1\r
+:104260004A95D1F7C114D104E104F10419F02E5F8D\r
+:10427000C701B601DC01CB01B695A7959795879547\r
+:10428000892B8A2B8B2B09F02F5F822FFF90EF90C9\r
+:10429000DF90CF9008958295982F9C7C392F36958A\r
+:1042A0003695282F237344E0249FC0011124932FB7\r
+:1042B000982B292F2A7A2695892F8575880F822B8E\r
+:1042C00008951F93CF93DF931F92CDB7DEB79983E5\r
+:1042D0000E944B21182F9981892F0E944B21212F59\r
+:1042E00030E0322F2227A901482BCA010F90DF911D\r
+:1042F000CF911F9108958091F001843009F11092BF\r
+:10430000D80120E488E190E00FB6F894A895809356\r
+:1043100060000FBE2093600083B7817F846083BFFD\r
+:1043200083B7816083BF7894889583B78E7F83BF7E\r
+:1043300088E10FB6F89480936000109260000FBE81\r
+:10434000089508950895CF930E94A1210E947F09A6\r
+:104350000E94A221C0E08C2F0E94AB0A811104C0F0\r
+:10436000CF5FCE30C1F701C081E0CF9108950C94AA\r
+:10437000BB1A82E084BD93E095BD9AEF97BD809310\r
+:104380006E0008952FB7F8948091D9019091DA01C9\r
+:10439000A091DB01B091DC012FBF0895CF92DF9295\r
+:1043A000EF92FF920F931F932FB7F8944091D9018A\r
+:1043B0005091DA016091DB017091DC012FBF6A013D\r
+:1043C0007B01EE24FF248C0120E030E0C016D106F2\r
+:1043D000E206F30610F4415051099A01281B390BEB\r
+:1043E000C9011F910F91FF90EF90DF90CF9008953A\r
+:1043F0001F920F920FB60F9211248F939F93AF933A\r
+:10440000BF938091D9019091DA01A091DB01B09125\r
+:10441000DC010196A11DB11D8093D9019093DA01B1\r
+:10442000A093DB01B093DC01BF91AF919F918F917D\r
+:104430000F900FBE0F901F9018950E94DD11F894F9\r
+:104440002FEF87EA91E6215080409040E1F700C0CD\r
+:10445000000087E090EBDC018093F9019093FA0172\r
+:10446000A093FB01B093FC019CE088E10FB6F894A7\r
+:10447000A895809360000FBE90936000FFCFEF92ED\r
+:10448000FF920F931F93CF93DF93D82FC0E08C2F11\r
+:104490000E94AB0A00E010E0E82EF12CC701002ECC\r
+:1044A00002C0959587950A94E2F780FD06C00F5FDC\r
+:1044B0001F4F0630110591F709C0602F7C2F80E057\r
+:1044C0000E94B80BD813F3CF81E004C0CF5FCE3089\r
+:1044D000F1F680E0DF91CF911F910F91FF90EF9067\r
+:1044E0000895CF93C82F8CE20E943F22882321F0A9\r
+:1044F0008C2FCF910C943F2280E0CF910895CF93E1\r
+:104500000E94CE23811102C00E94B4238CEF95E05B\r
+:104510000E945207C5E6C15049F00E947F098FE30F\r
+:104520009CE90197F1F700C00000F5CF85EF95E019\r
+:104530000E94520789E20E947122811113C18AE20E\r
+:104540000E94712281110E94B42385E00E94712291\r
+:1045500081110E941D220E94D9238093D70187E0F8\r
+:104560000E9471228823A9F18BE10E947122882385\r
+:1045700051F08091D70181FB222720F991E0922709\r
+:1045800090FB81F90EC08EE00E947122882361F0B9\r
+:104590008091D70182FB222720F991E0922790FB9E\r
+:1045A00082F98093D70115C080E10E947122909119\r
+:1045B000D701882341F093FB222720F981E082274D\r
+:1045C00080FB93F904C0892F809580FB90F990932C\r
+:1045D000D7018091D7010E94DD230E94EB238093B5\r
+:1045E000EA0180EE0E947122882341F08091EA0165\r
+:1045F000982F909590FB80F98093EA0189E30E94BF\r
+:104600007122882359F08091EA0181FB222720F949\r
+:1046100091E0922790FB81F98093EA0182EE0E945B\r
+:104620007122882359F08091EA0182FB222720F928\r
+:1046300091E0922790FB82F98093EA0186EE0E9436\r
+:104640007122882359F08091EA0183FB222720F907\r
+:1046500091E0922790FB83F98093EA0183EE0E9418\r
+:104660007122882359F08091EA0184FB222720F9E6\r
+:1046700091E0922790FB84F98093EA0185E30E9400\r
+:104680007122882359F08091EA0185FB222720F9C5\r
+:1046900091E0922790FB85F98093EA0181E30E94E3\r
+:1046A0007122882359F08091EA0186FB222720F9A4\r
+:1046B00091E0922790FB86F98093EA0181E10E94C4\r
+:1046C0007122882359F08091EA0187FB222720F983\r
+:1046D00091E0922790FB87F98093EA018091EA01AB\r
+:1046E0000E94EF238091EA0187FB882780F980935D\r
+:1046F0000D0187E20E947122C82F8EE10E94712273\r
+:104700008111C2608FE10E9471228111C46080E238\r
+:104710000E9471228111C86081E20E947122811180\r
+:10472000C06182E20E9471228111C06283E20E9414\r
+:1047300071228111C06484E20E947122882311F0E9\r
+:10474000C06802C0CC2329F08C2F0E94E6236C2F76\r
+:1047500003C00E94E223682F70E080E090E0CF91D8\r
+:104760000C94771ECF9108956DEE7EEF80E090E07F\r
+:104770000E94B72D60E082E090E00E94A92D60E0E9\r
+:1047800083E090E00E94A92D60E084E090E00E9428\r
+:10479000A92D60E085E090E00C94A92D80E090E0E8\r
+:1047A0000E94A32D21E08D3E9E4F09F020E0822F34\r
+:1047B000089582E090E00C949B2D682F82E090E0B9\r
+:1047C0000C94A92D83E090E00C949B2D682F83E03E\r
+:1047D00090E00C94A92D84E090E00C949B2D682F20\r
+:1047E00084E090E00C94A92D8091DF0180FF0BC044\r
+:1047F0006091130185E0689FB0011124759567955C\r
+:10480000759567952BC081FF09C06091130185E004\r
+:10481000689FB00111247595679520C082FF07C07D\r
+:104820006091130185E0689FB001112417C0909139\r
+:10483000E0019923D1F060911201961788F7209139\r
+:10484000130185E0289F90011124929FA001939F5E\r
+:10485000500D112470E0CA010E946D2D6038710561\r
+:1048600040F46115710539F002C065E070E0862FF3\r
+:1048700008958FE7089581E008958091DF0180FF1A\r
+:1048800008C06091110170E0759567957595679501\r
+:1048900021C081FF06C06091110170E07595679598\r
+:1048A00019C082FF04C06091110170E010C09091A6\r
+:1048B000E0019923C1F0609110019617A0F7809153\r
+:1048C0001101899FC001112470E00E946D2D603894\r
+:1048D000710528F46115710521F0862F08958FE781\r
+:1048E000089581E0089561E070E0F4CF803F21F405\r
+:1048F0000E94F423819504C0813F29F40E94F4238F\r
+:104900008093E3010895823F21F40E94F42381956E\r
+:1049100004C0833F29F40E94F4238093E2010895A8\r
+:10492000893F19F40E943D2405C08A3F31F40E945A\r
+:104930003D2481958093E40108958B3F21F40E94EA\r
+:104940003D24819504C08C3F29F40E943D2480932E\r
+:10495000E5010895843F21F48091E101816017C051\r
+:10496000853F21F48091E101826011C0863F21F4EE\r
+:104970008091E10184600BC0873F21F48091E101C7\r
+:10498000886005C0883F31F48091E10180618093A7\r
+:10499000E10108958D3F21F48091DF0181600BC01A\r
+:1049A0008E3F21F48091DF01826005C08F3F29F4A2\r
+:1049B0008091DF0184608093DF010895803F39F4A6\r
+:1049C0008091E30187FF6CC01092E30169C0813FD1\r
+:1049D00029F48091E3011816BCF362C09091E201C2\r
+:1049E000823F29F497FF5CC01092E20159C0833FD7\r
+:1049F00019F41916CCF354C0893F41F48091E401B5\r
+:104A000018160CF04DC01092E4014AC08A3F29F4F8\r
+:104A10008091E40187FF44C0F6CF8B3F39F4809149\r
+:104A2000E50187FF3DC01092E5013AC08C3F29F4B3\r
+:104A30008091E5011816BCF333C0843F21F48091C6\r
+:104A4000E1018E7F17C0853F21F48091E1018D7FC8\r
+:104A500011C0863F21F48091E1018B7F0BC0873F1D\r
+:104A600021F48091E101877F05C0883F31F4809176\r
+:104A7000E1018F7E8093E10113C08D3F21F480918D\r
+:104A8000DF018E7F0BC08E3F21F48091DF018D7F8F\r
+:104A900005C08F3F29F48091DF018B7F8093DF0178\r
+:104AA0008091E20181110EC08091E30181110AC061\r
+:104AB0008091E401811106C08091E501811102C05D\r
+:104AC0001092E00108958091D70183FF7EC088E3B2\r
+:104AD00096E00E9452078091E1011F928F9383E339\r
+:104AE00096E09F938F930E94EB0781E396E00E94EC\r
+:104AF00052078091E201282F332727FD30953F93FD\r
+:104B00008F938EE296E09F938F930E94EB078CE247\r
+:104B100096E00E9452078091E301282F332727FD5A\r
+:104B200030953F938F9389E296E09F938F930E94F5\r
+:104B3000EB0787E296E00E9452078091E401282F5C\r
+:104B4000332727FD30953F938F9384E296E09F9320\r
+:104B50008F930E94EB0782E296E00E9452078091B9\r
+:104B6000E501282F332727FD30953F938F938FE161\r
+:104B700096E09F938F930E94EB078CE196E00E9452\r
+:104B800052078091E0011F928F9389E196E09F93F5\r
+:104B90008F930E94EB0787E196E00E945207809175\r
+:104BA000DF011F928F9384E196E09F938F930E9481\r
+:104BB000EB0781E196E00E9452078DB79EB74C96B5\r
+:104BC0000FB6F8949EBF0FBE8DBF81EE91E00E949C\r
+:104BD00034150E94C2219093DE018093DD01089577\r
+:104BE0001F93CF93DF938091DD019091DE010E94AE\r
+:104BF000CE21AC019091E001992321F02091140184\r
+:104C000030E006C0209115018AE0289F9001112410\r
+:104C10004217530708F486C08091E201C091E30176\r
+:104C2000D091E4011091E501811107C0C11176C056\r
+:104C3000D11174C0111172C075C09F3F19F09F5FF0\r
+:104C40009093E001181624F40E94F4238093E2016B\r
+:104C50008091E20187FF05C00E94F4238195809333\r
+:104C6000E2011C1624F40E94F4238093E301809156\r
+:104C7000E30187FF05C00E94F42381958093E3013F\r
+:104C80006091E201662339F1C091E301CC2319F16F\r
+:104C9000772767FD7095872F972F0E94722C23E34B\r
+:104CA00033E343E35FE30E94D62C0E943F2C6093E2\r
+:104CB000E2016C2F772767FD7095872F972F0E9451\r
+:104CC000722C23E333E343E35FE30E94D62C0E947C\r
+:104CD0003F2C6093E3011D1624F40E943D24809331\r
+:104CE000E4018091E40187FF05C00E943D24819585\r
+:104CF0008093E401111624F40E943D248093E50181\r
+:104D00008091E50187FF05C00E943D248195809335\r
+:104D1000E501DF91CF911F910C9463259F3F09F02E\r
+:104D20008ECF96CFDF91CF911F910895E1EEF1E004\r
+:104D300085E0DF011D928A95E9F71092E00110925B\r
+:104D4000DF0108958BE598E00E9452071F9281E0F1\r
+:104D50008F931F9285E08F938DE098E09F938F93C0\r
+:104D60000E94EB070F900F900F900F900F900F90F5\r
+:104D700008958330E9F128F4813061F0823009F13F\r
+:104D80000895853009F462C008F449C0863009F4FA\r
+:104D900074C0089580911501262F30E0280F311D31\r
+:104DA0002F3F310524F4680F6093150103C08FEF86\r
+:104DB00080931501809115011F928F9386E497E0EF\r
+:104DC00072C080911401262F30E0280F311D2F3F33\r
+:104DD000310524F4680F6093140103C08FEF8093B2\r
+:104DE0001401809114011F928F9384E397E05BC0BC\r
+:104DF00080911301262F30E0280F311D2F3F310500\r
+:104E000024F4680F6093130103C08FEF80931301A4\r
+:104E1000809113011F928F9381E297E044C08091AB\r
+:104E20001201262F30E0280F311D2F3F310524F4C9\r
+:104E3000680F6093120103C08FEF8093120180917D\r
+:104E400012011F928F938CE097E02DC08091110189\r
+:104E5000262F30E0280F311D2F3F310524F4680F35\r
+:104E60006093110103C08FEF8093110180911101B4\r
+:104E70001F928F9383EF96E016C080911001262F2A\r
+:104E800030E0280F311D2F3F310524F4680F609367\r
+:104E9000100103C08FEF80931001809110011F92C9\r
+:104EA0008F9388ED96E09F938F930E94EB070F906E\r
+:104EB0000F900F900F900895833081F128F4813086\r
+:104EC00059F08230D1F00895853009F449C0B8F125\r
+:104ED000863009F456C0089580911501681720F4B2\r
+:104EE000861B8093150102C0109215018091150157\r
+:104EF0001F928F9389EC96E054C08091140168173B\r
+:104F000020F4861B8093140102C01092140180913A\r
+:104F100014011F928F9387EB96E043C08091130199\r
+:104F2000681720F4861B8093130102C010921301AE\r
+:104F3000809113011F928F9384EA96E032C0809192\r
+:104F40001201681720F4861B8093120102C0109290\r
+:104F50001201809112011F928F938FE896E021C079\r
+:104F600080911101681720F4861B8093110102C003\r
+:104F700010921101809111011F928F9386E796E0A4\r
+:104F800010C080911001681720F4861B80931001D7\r
+:104F900002C010921001809110011F928F938BE537\r
+:104FA00096E09F938F930E94EB070F900F900F90C6\r
+:104FB0000F900895CF93C82F1F928F9380E699E0AA\r
+:104FC0009F938F930E94EB0781E090E0A0E0B0E018\r
+:104FD000BC01CD0104C0660F771F881F991FCA95B9\r
+:104FE000D2F70E94771E0F900F900F900F90CF91E5\r
+:104FF0000C94BB1ACF938D3109F465C0B0F58E3097\r
+:1050000009F4CCC100F5873009F49BC1A8F48630BF\r
+:1050100009F06DC28091D701817F8E7F8093D70187\r
+:1050200085E699E00E94520781EA9DE00E945207BE\r
+:1050300081E08093E70180C1883009F44FC08B3054\r
+:1050400009F47CC154C2863109F4F0C138F48031CE\r
+:1050500009F4B8C1813109F430C249C2893109F477\r
+:10506000CEC18B3109F486C142C2853309F437C2FF\r
+:1050700048F4873209F433C208F433C2893209F4A0\r
+:105080002EC235C2833438F48A3308F02CC28833F8\r
+:1050900009F454C12CC2833409F421C2883409F0C4\r
+:1050A00026C20E94BB1A80E99DE00E9452079FEF32\r
+:1050B00023ED80E3915020408040E1F700C00000E4\r
+:1050C0000E941D2239C180EB9DE00E9452070E9480\r
+:1050D000F92B0E94DF140E94110D2EC185EA9DE07C\r
+:1050E0000E94520786E79BE00E9452070E94E2233B\r
+:1050F0001F928F9383E79BE09F938F930E94EB0710\r
+:1051000081E79BE00E9452070E94D923C82F8EE5B9\r
+:105110009BE00E9452071F92CF9389E59BE09F93EB\r
+:105120008F930E94EB0787E59BE00E9452078DE476\r
+:105130009BE00E9452078C2F81701F928F938AE40C\r
+:105140009BE09F938F930E94EB0788E49BE00E9473\r
+:1051500052078EE39BE00E945207C1FB882780F92B\r
+:105160001F928F938BE39BE09F938F930E94EB079B\r
+:1051700089E39BE00E9452078DE29BE00E94520768\r
+:10518000C2FB882780F91F928F938AE29BE09F934E\r
+:105190008F930E94EB0788E29BE00E9452078FE109\r
+:1051A0009BE00E945207C3FBCC27C0F91F92CF930C\r
+:1051B0008CE19BE09F938F930E94EB078AE19BE039\r
+:1051C0000E9452070E94EB23C82F86E09BE00E94BA\r
+:1051D00052071F92CF9381E09BE09F938F930E9491\r
+:1051E000EB078FEF9AE00E94520786EE9AE00E944A\r
+:1051F00052078C2F81701F928F9383EE9AE09F93BA\r
+:105200008F930E94EB078DB79EB780960FB6F894E8\r
+:105210009EBF0FBE8DBF81EE9AE00E9452078AECBE\r
+:105220009AE00E945207C1FB882780F91F928F9352\r
+:1052300087EC9AE09F938F930E94EB0785EC9AE0AE\r
+:105240000E94520783EB9AE00E945207C2FB882714\r
+:1052500080F91F928F9380EB9AE09F938F930E9427\r
+:10526000EB078EEA9AE00E9452078CE99AE00E94CE\r
+:105270005207C3FB882780F91F928F9389E99AE030\r
+:105280009F938F930E94EB0787E99AE00E94520751\r
+:105290008DE89AE00E945207C4FB882780F91F928C\r
+:1052A0008F938AE89AE09F938F930E94EB0788E898\r
+:1052B0009AE00E94520786E79AE00E945207C5FBD7\r
+:1052C000882780F91F928F9383E79AE09F938F93AB\r
+:1052D0000E94EB0781E79AE00E94520785E59AE079\r
+:1052E0000E945207C6FB882780F91F928F9382E5A0\r
+:1052F0009AE09F938F930E94EB0780E59AE00E94CB\r
+:10530000520788E49AE00E945207C7FBCC27C0F9F5\r
+:105310001F92CF9385E49AE09F938F930E94EB07AF\r
+:1053200083E49AE00E9452078DB79EB74C960FB661\r
+:10533000F8949EBF0FBE8DBFC1E0DEC08CE899E03F\r
+:105340005BC08091D701C82FC17080FF09C083E87E\r
+:105350009DE00E9452078091D701817F8E7F47C0D8\r
+:1053600087E79DE00E9452078091D701816080937A\r
+:10537000D701E2CF9091D70191FBCC27C0F981E012\r
+:10538000C827892FC0FB81F98093D701CC2319F05E\r
+:105390008AE69DE027C08CE59DE02EC09091D70164\r
+:1053A00092FBCC27C0F981E0C827892FC0FB82F986\r
+:1053B0008093D701CC2319F08DE49DE013C08DE3D9\r
+:1053C0009DE01AC09091D70193FBCC27C0F981E0F2\r
+:1053D000C827892FC0FB83F98093D701CC2351F0D4\r
+:1053E00081E39DE00E9452078091D7018160809304\r
+:1053F000D70182C084E29DE00E9452079DCF85E1E3\r
+:105400009DE00E94520789EE9CE00E9452078CEAC0\r
+:105410009CE00E94520785E89CE00E94520781E4CC\r
+:105420009CE00E94520786E19CE0E6CF88E09CE089\r
+:105430000E9452070E94DF141F928F938EEE9BE012\r
+:105440009F938F930E94EB0780910C011F928F9383\r
+:1054500087ED9BE09F938F930E94EB0780916E01F5\r
+:105460001F928F9384EC9BE09F938F930E94EB0796\r
+:1054700080910D011F928F9381EB9BE09F938F93FF\r
+:105480000E94EB078091D9019091DA01A091DB0194\r
+:10549000B091DC01BF93AF939F938F938DE99BE015\r
+:1054A0009F938F930E94EB078DB79EB746960FB6DA\r
+:1054B000F8949EBF0FBE8DBF3FCF0E94BB1AC09114\r
+:1054C0000D0181E0C827C0930D01CC2329F083E9A9\r
+:1054D0009BE00E94520710C088E89BE08DCF80E0DF\r
+:1054E00003C08D5101C089530E94DA2725CF86E879\r
+:1054F0009BE00E945207C0E08C2FCF91089580E07E\r
+:10550000089580E00895CF93C82F8091E7018130FE\r
+:1055100081F020F0823009F44FC045C1E0910E01C6\r
+:10552000F0910F018081813169F0823209F03DC133\r
+:1055300009C0E0910E01F0910F018081813111F0DD\r
+:10554000823261F48C2F0E947F2A811104C08C2F3B\r
+:105550000E94FA272FC081E090E02CC08C2F0E947F\r
+:10556000812A811126C0C431E1F070F4CB3081F082\r
+:10557000C031D1F40E94A22688E599E00E9452072A\r
+:1055800082E08093E70115C0C93259F0C83361F455\r
+:1055900085E699E00E9452078CE599E00E94520747\r
+:1055A00008C01092E70103C186E599E00E94520706\r
+:1055B000FEC081E08170FDC0C43220F5CE3108F01C\r
+:1055C000C0C0CB3099F1C8F4C73009F0D2C08AE02E\r
+:1055D0008093150194E19093140193E0909313014B\r
+:1055E0008093120188E08093110188E2809310017A\r
+:1055F0008CEF97E00E945207BFC0C33149F1C4311C\r
+:10560000C1F0B7C0CB3409F4A9C028F4C93289F07D\r
+:10561000C83361F0AEC0C13509F49EC0C23509F48B\r
+:1056200099C0CE3409F0A5C06AE09EC00E94A226AF\r
+:10563000A3C08091E601882319F01092E6019CC076\r
+:1056400089E098E00E94520781E08093E701B1C0B1\r
+:1056500083EE97E00E94520781ED97E00E94520787\r
+:10566000809115011F928F938EEC97E09F938F93FB\r
+:105670000E94EB078CEC97E00E9452078AEB97E0C0\r
+:105680000E945207809114011F928F9387EB97E03D\r
+:105690009F938F930E94EB0785EB97E00E94520740\r
+:1056A00086EA97E00E945207809113011F928F9320\r
+:1056B00083EA97E09F938F930E94EB0781EA97E03C\r
+:1056C0000E94520780E997E00E94520780911201E0\r
+:1056D0001F928F938DE897E09F938F930E94EB0723\r
+:1056E0008BE897E00E94520786E797E00E945207F6\r
+:1056F000809111011F928F9383E797E09F938F937F\r
+:105700000E94EB0781E797E00E9452078AE597E045\r
+:105710000E945207809110011F928F9387E597E0B6\r
+:105720009F938F930E94EB0785E597E00E945207B5\r
+:105730008DB79EB748960FB6F8949EBF0FBE8DBF2B\r
+:105740001BC0CE51EC2FF0E0E15DFE4F80818093D5\r
+:10575000E60112C061E003C061E006C06AE080912A\r
+:10576000E6010E94B92608C08091E6010E945C27EC\r
+:1057700003C08AEF97E013C08091E601882369F0A7\r
+:105780001F928F9384EF97E09F938F930E94EB0774\r
+:105790000F900F900F900F9004C081EF97E00E9440\r
+:1057A000520781E006C01092E70180E002C080E06D\r
+:1057B00001CFCF910895E1E8F0E080818860808397\r
+:1057C0008081816080838FB7F89493E09093890003\r
+:1057D00090ED909388008FBF0895EFE6F0E0808110\r
+:1057E000826080830895EFE6F0E080818D7F808382\r
+:1057F0000895EFE6F0E0908182E0892780830895A4\r
+:105800001F920F920FB60F9211242F933F934F9335\r
+:105810005F936F937F938F939F93AF93BF93EF9318\r
+:10582000FF938091E8019091E90101969093E9013D\r
+:105830008093E801811103C082E00E94110DE09184\r
+:10584000E901E695E695F0E0E054F24FE4918091AD\r
+:10585000E8018E1303C080E00E94110DFF91EF91CB\r
+:10586000BF91AF919F918F917F916F915F914F9178\r
+:105870003F912F910F900FBE0F901F90189504D05D\r
+:105880006894B1118DC0089570D088F09F5790F042\r
+:10589000B92F9927B751A0F0D1F0660F771F881F55\r
+:1058A000991F1AF0BA95C9F712C0B13081F077D0BC\r
+:1058B000B1E0089574C0672F782F8827B85F39F05A\r
+:1058C000B93FCCF3869577956795B395D9F73EF4B4\r
+:1058D00090958095709561957F4F8F4F9F4F08955C\r
+:1058E000E89409C097FB3EF490958095709561957A\r
+:1058F0007F4F8F4F9F4F9923A9F0F92F96E9BB2730\r
+:105900009395F695879577956795B795F111F8CFAB\r
+:10591000FAF4BB0F11F460FF1BC06F5F7F4F8F4F16\r
+:105920009F4F16C0882311F096E911C0772321F00C\r
+:105930009EE8872F762F05C0662371F096E8862FA4\r
+:1059400070E060E02AF09A95660F771F881FDAF7FB\r
+:10595000880F9695879597F9089557FD9058440FAD\r
+:10596000551F59F05F3F71F04795880F97FB991FBE\r
+:1059700061F09F3F79F0879508951216130614067B\r
+:10598000551FF2CF4695F1DF08C016161706180608\r
+:10599000991FF1CF86957105610508940895E894E3\r
+:1059A000BB2766277727CB0197F908950BD078C0DE\r
+:1059B00069D028F06ED018F0952309F05AC05FC066\r
+:1059C0001124EECFCADFA0F3959FD1F3950F50E0DD\r
+:1059D000551F629FF001729FBB27F00DB11D639FA1\r
+:1059E000AA27F00DB11DAA1F649F6627B00DA11D47\r
+:1059F000661F829F2227B00DA11D621F739FB00DED\r
+:105A0000A11D621F839FA00D611D221F749F33275C\r
+:105A1000A00D611D231F849F600D211D822F762FF5\r
+:105A20006A2F11249F5750408AF0E1F088234AF0F2\r
+:105A3000EE0FFF1FBB1F661F771F881F915050403E\r
+:105A4000A9F79E3F510570F014C0AACF5F3FECF359\r
+:105A5000983EDCF3869577956795B795F795E7952A\r
+:105A60009F5FC1F7FE2B880F911D9695879597F93B\r
+:105A7000089597F99F6780E870E060E008959FEFD0\r
+:105A800080EC089500240A941616170618060906D5\r
+:105A9000089500240A9412161306140605060895A4\r
+:105AA000092E0394000C11F4882352F0BB0F40F42C\r
+:105AB000BF2B11F460FF04C06F5F7F4F8F4F9F4F6C\r
+:105AC0000895991B79E004C0991F961708F0961B5A\r
+:105AD000881F7A95C9F78095089597FB072E16F4CD\r
+:105AE000009407D077FD09D00E94872D07FC05D0D0\r
+:105AF0003EF4909581959F4F0895709561957F4FE5\r
+:105B00000895EE0FFF1F0590F491E02D0994AA1B54\r
+:105B1000BB1B51E107C0AA1FBB1FA617B70710F098\r
+:105B2000A61BB70B881F991F5A95A9F780959095CA\r
+:105B3000BC01CD010895F999FECF92BD81BDF89ABF\r
+:105B4000992780B50895A8E1B0E042E050E00C94B8\r
+:105B5000BE2D262FF999FECF1FBA92BD81BD20BD63\r
+:105B60000FB6F894FA9AF99A0FBE019608950E941A\r
+:105B7000A92D272F0C94AA2DDC01CB01FC01F9994A\r
+:105B8000FECF06C0F2BDE1BDF89A319600B40D9289\r
+:0C5B900041505040B8F70895F894FFCF42\r
+:105B9C002002120D030EE00DAC0D780D0101C501B4\r
+:105BAC0028080A03140A3F4D3620394605F904C368\r
+:105BBC0004A3046A04DD03F6030F0428044804015B\r
+:0A5BCC0002030405060708090000A3\r
+:00000001FF\r
index a41a29e1ad47bfa1bf7489dadb57053272e56014..c1d0bd5dcf8d280862c8677ccdee5ea5444d2ccb 100644 (file)
@@ -40,6 +40,6 @@ The ErgoDox EZ firmware is open-source, so it would be wonderful to have your co
 
 Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`.
 
-That file contains a big list of all of the special, fancy keys (like, being able to shend % on its own and whatnot).
+That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot).
 
 If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out.
index 485c5f77f6774b3b67ea043250c45e0beef2e5ee..307b0c7f4fe4443e056c25958c8521e747337d23 100644 (file)
@@ -27,7 +27,7 @@
 # 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, 
+# 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.
@@ -50,14 +50,30 @@ TMK_DIR = ../../tmk_core
 TARGET_DIR = .
 
 # # project specific files
-SRC = planck.c \
-       backlight.c 
+SRC = planck.c
+
+ifdef keymap
+       KEYMAP = $(keymap)
+endif
 
 ifdef KEYMAP
-    SRC := keymaps/keymap_$(KEYMAP).c $(SRC)
+ifneq ("$(wildcard keymaps/$(KEYMAP).c)","")
+       KEYMAP_FILE = keymaps/$(KEYMAP).c
+else
+ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","")
+       KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c
 else
-    SRC := keymaps/keymap_default.c $(SRC)
+$(error Keymap file does not exist)
 endif
+endif
+else
+ifneq ("$(wildcard keymaps/default.c)","")
+       KEYMAP_FILE = keymaps/default.c
+else
+       KEYMAP_FILE = keymaps/default/keymap.c
+endif
+endif
+SRC := $(KEYMAP_FILE) $(SRC)
 
 CONFIG_H = config.h
 
@@ -124,8 +140,14 @@ COMMAND_ENABLE = yes    # Commands for debug and configuration
 # 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
+# AUDIO_ENABLE = YES           # Audio output on port C6
 # UNICODE_ENABLE = YES                 # Unicode
 # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.  Do not enable this with MIDI at the same time.
+
+ifdef BACKLIGHT_ENABLE
+       SRC += backlight.c
+endif
 
 
 # Optimize size but this may cause error "relocation truncated to fit"
@@ -137,4 +159,3 @@ VPATH += $(TOP_DIR)
 VPATH += $(TMK_DIR)
 
 include $(TOP_DIR)/quantum/quantum.mk
-
index 9ff12d4852a4bfa2b86aeea1018c6bfcd96714d5..3daf0e0092f5c2ada57f82c8e2942f3ffb8ad8f2 100644 (file)
@@ -3,6 +3,7 @@
 ## Setting up the environment
 
 ### Windows
+
 1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler.
 2. Install [DFU-Programmer][dfu-prog] (the -win one).
 3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver.
@@ -13,6 +14,7 @@ If you're using homebrew, you can use the following commands:
 
     brew tap osx-cross/avr
     brew install avr-libc
+    brew install dfu-programmer
 
 Otherwise, these instructions will work:
 
@@ -24,6 +26,9 @@ Otherwise, these instructions will work:
 1. Install AVR GCC with your favorite package manager.
 2. Install [DFU-Programmer][dfu-prog].
 
+Note that, since it will be directly accessing USB hardware, the
+`dfu-programmer` program needs to be run as root.
+
 ## Verify Your Installation
 1. Clone the following repository: https://github.com/jackhumbert/qmk_firmware
 2. Open a Terminal and `cd` into `qmk_firmware/keyboard/planck`
@@ -51,7 +56,7 @@ Generally, the instructions to flash the PCB are as follows:
 
 ### Keymap
 
-Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h).
+Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h).
 
 You can use modifiers with keycodes like this:
 
index 0003e765d42594e5b450e9c37f56795f834f0c8d..3ba0cc1527384cd1aeb0f85efdee3f1799769abb 100644 (file)
@@ -3,116 +3,8 @@ Planck keyboard firmware
 DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com).
 
 ## 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
-    BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
-
-### Mod shortcuts
-
-* `LSFT(kc)` - applies left shift to *kc* - `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 use more than one, like this:
-
-    LALT(LGUI(KC_ESC))
-
-The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names (see `quantum/keymap_common.h`) are also availble.
-
-    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  :
-
-### Function shortcuts
-
-Instead of using `FNx`, you can use `F(x)` - the benefit here is being able to use more than 32 function layers (up to 4096), if you happen to need them.
-
-There are also keycode shortcuts for common actions:
-
-* `MO(layer)` - momentary switch to *layer*
-* `DF(layer)` - sets default layer to *layer*
-* `TG(layer)` - toggle between the current layer and *layer*
-* `MT(mod, kc)` - is *mod* when held, and *kc* when tapped
-  * `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 
-* `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped
-
-These functions work the same way that their `ACTION_*` functions do, and will require KC_TRNS on the layer being switched to - check out the default keymap for an example.
-
-### Additional keycodes 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 abbrivation 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.
-
-### Macro shortcuts
-
-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 filter them. 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).
-
-### Other keyboard 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.
+For the full Quantum feature list, see [the parent README.md](/README.md).
 
 ## Building
 
@@ -124,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight
 To build with the default keymap, simply run `make`.
 
 ### Other Keymaps
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
+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 **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder.
+Keymaps follow the format **__<name\>.c__** and are stored in the `keymaps` folder.
 
 ### Notable forks (which some of the keymap files are from)
 - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
index a4c711db823590b9e48e65fd17daf403db7b923d..d3719e0cb173c20cbd8ac3989d8ae2af2f89a0fe 100644 (file)
@@ -58,6 +58,15 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 )
 
+/* ws2812 RGB LED */
+#define ws2812_PORTREG  PORTD
+#define ws2812_DDRREG   DDRD
+#define ws2812_pin PD1
+#define RGBLED_NUM 28     // Number of LEDs
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
 /*
  * Feature disable options
  *  These options are also useful to firmware size reduction.
diff --git a/keyboard/planck/keymaps/alexey.c b/keyboard/planck/keymaps/alexey.c
new file mode 100644 (file)
index 0000000..89af411
--- /dev/null
@@ -0,0 +1,51 @@
+#include "keymap_common.h"
+#include "planck.h"
+#include "backlight.h"
+
+#define _QW 0
+#define _LW 1
+#define _RS 2
+
+// This layout tries to imitate the Atreus keyboard
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, MO(_LW)},
+  {KC_TRNS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS},
+  {M(0),    KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC,  KC_SPC,  MO(_RS), KC_MINS, KC_QUOT, KC_ENT,  KC_TRNS}
+},
+[_RS] = { /* RAISE */
+  {KC_TRNS, KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7,    KC_8,    KC_9, KC_ASTR, KC_TRNS},
+  {KC_TRNS, KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRV,  KC_PGDN, KC_4,    KC_5,    KC_6, KC_PLUS, KC_TRNS},
+  {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1,    KC_2,    KC_3, KC_BSLS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_INS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL,  KC_TRNS}
+},
+[_LW] = { /* LOWER */
+  {KC_TRNS, KC_INS,    KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4,   KC_F5,   KC_F6,   KC_F11,  KC_TRNS},
+  {KC_TRNS, KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F12,  KC_TRNS},
+  {KC_TRNS, KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, 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);
+            backlight_step();
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
+
diff --git a/keyboard/planck/keymaps/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear.c
new file mode 100644 (file)
index 0000000..cdf6063
--- /dev/null
@@ -0,0 +1,50 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_ENT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
+  {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC,  KC_SPC,  FUNC(1), KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* WASD + NumPad */
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7,   KC_P8,   KC_P9,   KC_PSLS, KC_PMNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4,   KC_P5,   KC_P6,   KC_PAST, KC_PPLS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1,   KC_P2,   KC_P3,   KC_PDOT, KC_PENT, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC,  KC_P0,   FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[2] = { /* RAISE */
+  {KC_GRV,     KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_TRNS},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_MPRV,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_DEL},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+}
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/austin.c b/keyboard/planck/keymaps/austin.c
new file mode 100644 (file)
index 0000000..49fc98a
--- /dev/null
@@ -0,0 +1,50 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL,  FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+}
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/brandon.c b/keyboard/planck/keymaps/brandon.c
new file mode 100644 (file)
index 0000000..2b89f86
--- /dev/null
@@ -0,0 +1,134 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _CM 1
+#define _TK 2
+#define _LW 3
+#define _RS 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+/* MIT Layout (QWERTY layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * | esc |  q  |  w  |  e  |  r  |  t  |  y  |  u  |  i  |  o  |  p  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab |  a  |  s  |  d  |  f  |  g  |  h  |  j  |  k  |  l  |  ;  |  '  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  z  |  x  |  c  |  v  |  b  |  n  |  m  |  ,  |  .  |  /  |enter|
+ * |-----------------------------------------------------------------------|
+ * | ctl | alt | win | TK  |lower|    spc    |raise|left |down | up  |right|
+ * `-----------------------------------------------------------------------'
+ */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, MT(MOD_LSFT, KC_ENT) },
+  {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_CM] = { /* Colemak */
+/* MIT Layout (Colemak layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * | esc |  q  |  w  |  f  |  p  |  g  |  j  |  l  |  u  |  y  |  ;  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab |  a  |  r  |  s  |  t  |  d  |  h  |  n  |  e  |  i  |  o  |  '  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  z  |  x  |  c  |  v  |  b  |  k  |  m  |  ,  |  .  |  /  |enter|
+ * |-----------------------------------------------------------------------|
+ * | ctl | alt | win | TK  |lower|    spc    |raise|left |down | up  |right|
+ * `-----------------------------------------------------------------------'
+ */
+  {KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, MT(MOD_LSFT, KC_ENT)},
+  {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_RS] = { /* RAISE */
+/* MIT Layout (RAISE layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * |  `  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab | F1  | F2  | F3  |  F4 |  F5 |  F6 |  -  |  =  |  [  |  ]  |  \  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  F7 |  F8 |  F9 | F10 | F11 | F12 |  QW |  CM |  BL | RST |enter|
+ * |-----------------------------------------------------------------------|
+ * | ctl | alt | win | del |lower|    spc    |raise|next |vold |volu |PLAY |
+ * `-----------------------------------------------------------------------'
+ */
+
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), M(0),    RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_LW] = { /* LOWER */
+/* MIT Layout (Colemak layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * | esc |  q  |  w  |  f  |  p  |  g  |  j  |  l  |  u  |  y  |  ;  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab | F1  | F2  | F3  |  F4 |  F5 |  F6 |  _  |  +  |  {  |  }  |  |  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  F7 |  F8 |  F9 | F10 | F11 | F12 |  QW |  CM |  BL | RST |enter|
+ * |-----------------------------------------------------------------------|
+ * | ctl | alt | win | TK  |lower|    spc    |raise|next |vold |volu |PLAY |
+ * `-----------------------------------------------------------------------'
+ */
+  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), M(0),    RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_TK] = { /* Ten Key*/
+/* MIT Layout (Ten Key layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * | esc |  F9 | F10 | F11 | F12 | PGUP|  %  |  /  |  7  |  8  |  9  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab |  F5 |  F6 | F7  |  F8 | PGDN| HOME|  *  |  4  |  5  |  6  |  \  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  F1 |  F2 | F3  |  F4 | DEL | END |  0  |  1  |  2  |  3  |enter|
+ * |-----------------------------------------------------------------------|
+ * | ctl | alt | win | TK  |lower|    spc    |raise|left |down | up  |right|
+ * `-----------------------------------------------------------------------'
+ */
+  {KC_TRNS, KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PGUP, KC_PERC, KC_SLSH, KC_7,    KC_8,    KC_9,  KC_BSPC},
+  {KC_TRNS, KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_PGDN, KC_HOME, KC_ASTR, KC_4,    KC_5,    KC_6,  KC_PIPE},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_DEL,  KC_END,  KC_0,    KC_1,    KC_2,    KC_3,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, 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
+      switch(id) {
+        case 0:
+          if (record->event.pressed) {
+            register_code(KC_RSFT);
+            #ifdef BACKLIGHT_ENABLE
+              backlight_step();
+            #endif
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/cbbrowne/README.md b/keyboard/planck/keymaps/cbbrowne/README.md
new file mode 100644 (file)
index 0000000..323e9a8
--- /dev/null
@@ -0,0 +1,16 @@
+cbbrowne custom keyboard
+==============================
+
+Due to cbbrowne@acm.org
+Christopher Browne
+
+This was originally based on the default keyboard map, but I have been
+doing sundry experimentation:
+
+ * To figure things out about the toolset
+ * I'm an Emacs guy, so will be needing a fair bit of tuning
+ * It made sense to mess around some with keyboard maps.
+   - I added Workman alongside Dvorak and Colemak
+     - Boy, oh boy, these don't help
+     - I have done 30 years of learning of Emacs key mappings, and these alternative keyboards massively mess me up
+   - I added a keypad, originally based on keymaps/numpad.c, but mighty substantially revised, as that one seems to be rotated 90 degrees from usual conventions for number pads
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c
new file mode 100644 (file)
index 0000000..250d412
--- /dev/null
@@ -0,0 +1,172 @@
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+
+/* Each layer is given a name to aid in readability, which is then
+   used in the keymap matrix below.  The underscores do not denote 
+   anything - you can have a layer called STUFF or any other name.
+
+   Layer names don't all need to be of the same length, obviously, and
+   you could also skip them entirely and just use numbers, though that
+   means needing to manage the numbers.
+
+   It is preferable to keep the symbols short so that a line worth of
+   key mappings fits compactly onto a line of code. */
+
+/* This was originally based on planck/keymaps/default/default.c, and
+   then cbbrowne has revised things */
+
+/* Things I did not like about the default mapping 
+
+   - I find control too hard to get to.  I think I'll want it on a
+     left finger.  Gonna need to lose something to do that...
+   - Almost certainly, KC_LCTL should be on [2][1]
+   - having dash on [lower-j] is a bit nonintuitive, but may be OK
+   - I'll bet I should switch ESC/TAB
+   - I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
+     and shift ESC off the first column so KC_LCTL and KC_LALT can
+     be on the first column.
+   - I think I wanna swap ' and ENTER
+
+   - All of the above are done :-)
+
+   - I'm keeping Colemak and Dvorak around for reference, and added
+     Workman just for fun.  They're useless to me, though.
+*/
+
+
+/* Some interesting things implemented
+
+   - There is a macro that writes out "cbbrowne" just because I could
+   - There is a (somewhat cruddy) linear congruential random number
+     generator.
+     - I would like to be seeding it with clock info to make it look
+       more random
+   - There are two macros that use the random number generators
+     - one, M_RANDDIGIT, generates a random digit based on state
+       of the random number generator
+     - the other, M_RANDLETTER, generates a random letter based on state
+       of the random number generator
+     - in both, note the use of register_code()/unregister_code()
+       to indicate the desired key
+*/
+
+/* Other things to do...
+
+   - Need to think about what zsh and readline actions I use lots
+   - Wanna figure out macros, so I can put in a "cbbrowne" macro
+   - Ought to ensure that Control-Alt-Delete is convenient enough
+   - How about Alt-F1 thru Alt-F8?
+   - What's the keystroke to get from X to console these days?
+   - I do indeed want a sweet number pad!
+   - A layer for doing console switching would not be a bad idea
+*/
+
+enum layers {
+  _QW = 0,  /* Qwerty mapping */
+  _LW, /* Lower layer, where top line has symbols !@#$%^&*() */
+  _RS, /* Raised layer, where top line has digits 1234567890 */
+  _KP, /* Key pad */
+};
+
+enum macro_id {
+  M_LED = 0,
+  M_USERNAME,
+  M_RANDDIGIT,
+  M_RANDLETTER
+};
+
+/* Note that Planck has dimensions 4 rows x 12 columns */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, 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_QUOT },
+  {KC_TAB,  M(M_LED), KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_RS] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_KP), DF(_KP), RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_LW] = { /* LOWER */
+  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_KP), DF(_KP), RESET,   KC_TRNS},
+  {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_KP] = { /* Key Pad */
+  {KC_ESC,  M(M_USERNAME),    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_BSPC},
+  {KC_LCTL, M(M_RANDDIGIT),    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_KP_MINUS, KC_7, KC_8,    KC_9,  KC_ENT},
+  {KC_LSFT, M(M_RANDLETTER),    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_KP_PLUS,    KC_4, KC_5,  KC_6, KC_DOT},
+  {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC,  KC_SPC,  DF(_QW),   KC_1, KC_2, KC_3,  KC_0}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+/* This bit of logic seeds a wee linear congruential random number generator */
+
+static uint16_t random_value = 157;
+#define randadd 53
+#define randmul 181
+#define randmod 167
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  uint8_t clockbyte=0;
+  clockbyte = TCNT1 % 256;
+  uint8_t rval;
+  // MACRODOWN only works in this function
+  switch(id) {
+  case M_LED:
+    if (record->event.pressed) {
+      register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+      backlight_step();
+#endif
+    } else {
+      unregister_code(KC_RSFT);
+    }
+    break;         
+  case M_USERNAME:
+    if (record->event.pressed) {
+      return MACRO( I(1), T(C), T(B), T(B), T(R), T(O), T(W), T(N), T(E));
+    } else {
+      return MACRO_NONE ;
+    }
+    break;
+  case M_RANDDIGIT:
+    /* Generate, based on random number generator, a keystroke for
+       a numeric digit chosen at random */
+    random_value = ((random_value + randadd) * randmul) % randmod;
+    if (record->event.pressed) {
+      /* Here, we mix the LCRNG with low bits from one of the system
+         clocks via XOR in the theory that this may be more random
+         than either separately */ 
+      rval = (random_value ^ clockbyte) % 10;
+      /* Note that KC_1 thru KC_0 are a contiguous range */
+      register_code (KC_1 + rval);
+      unregister_code (KC_1 + rval);
+    }
+    break;
+  case M_RANDLETTER:
+    /* Generate, based on random number generator, a keystroke for
+       a letter chosen at random */
+    /* Here, we mix the LCRNG with low bits from one of the system
+       clocks via XOR in the theory that this may be more random
+       than either separately */ 
+    random_value = ((random_value + randadd) * randmul) % randmod;
+    if (record->event.pressed) {
+      rval = (random_value ^ clockbyte) % 26;
+      register_code (KC_A + rval);
+      unregister_code (KC_A + rval);
+    }
+    break;
+  }
+  return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/charlie.c b/keyboard/planck/keymaps/charlie.c
new file mode 100644 (file)
index 0000000..88f454d
--- /dev/null
@@ -0,0 +1,54 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = { /* Native */
+      {KC_ESC,     KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    FUNC(2)}, 
+      {KC_BSPC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+     {KC_TAB,     KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+      {KC_DEL,     KC_LCTL, KC_NO,   KC_LSFT, KC_LALT, KC_SPC,        KC_NO,   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},       
+    [1] = { /* QWERTY->PHOTOSHOP */
+      {KC_DELETE,  KC_0,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    FUNC(1)},
+      {KC_O,       KC_G,    KC_S,    KC_U,    KC_T,    FUNC(27),  KC_F21,  KC_F10,  KC_F11,  KC_F7,   KC_F8,   KC_F9},
+      {KC_TAB,     FUNC(4), FUNC(5),  FUNC(6),  KC_F1,   FUNC(7),  KC_F18,  KC_F19,  KC_F23,  KC_F20,  KC_F22,  FUNC(9)},
+      {KC_COMM,    KC_DOT,  KC_R, FUNC(11), FUNC(3),  KC_SPC,        FUNC(12), KC_F2,   FUNC(8),  KC_F3,   KC_F14}
+         },
+    [2] = { /* 2: FUNC(3 PHOTOSHOP */
+      {KC_ESC,    FUNC(25), FUNC(26),   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO},
+      {KC_NO,      KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   FUNC(19), FUNC(20), FUNC(21)}, 
+      {KC_C,       KC_NO,  FUNC(22),  FUNC(5),   KC_NO,   FUNC(23), KC_NO,   KC_NO,   KC_NO,   KC_NO,   FUNC(13), KC_NO},
+      {FUNC(14),    FUNC(15), FUNC(16), FUNC(17), FUNC(3),   KC_SPC,        FUNC(18), KC_NO,   KC_NO,   KC_F24,  KC_NO}
+         }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_DEFAULT_LAYER_SET(0),                             // set Qwerty layout
+    [2] = ACTION_DEFAULT_LAYER_SET(1),                             // set Photoshop presets
+    [3] = ACTION_LAYER_MOMENTARY(2),                                  // Photoshop function layer
+    [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9),   // photo folder AHK
+    [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I),              // select inverse
+    [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M),                         // marquee select
+    [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC),                      // fill 
+    [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X),    // warp
+    [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12),  // merge all new layer
+    [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS),                     // zoom out
+    [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H),                        // RBG sliders
+    [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S),                        // save
+    [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5),           // layer mask from transparancy 
+    [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2),                     // stroke
+    [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2),                     // stroke layer
+    [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0),                      // zoom 0
+    [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H),             // HSV sliders
+    [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S),         // save as 
+    [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7),  // gaussian blur
+    [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8),  // motion blur
+    [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X),            // liquify filter
+    [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),                     // prev layer blending
+    [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC),             // KC_NOrmal layer blending
+    [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),                      // next layer blending
+    [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z),                        // step back
+    [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y),                        // step forward
+    [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R),                        // rasterize
+     
+};
diff --git a/keyboard/planck/keymaps/daniel.c b/keyboard/planck/keymaps/daniel.c
new file mode 100644 (file)
index 0000000..234e48f
--- /dev/null
@@ -0,0 +1,48 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
+  {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* RAISE */
+  {KC_GRV, S(KC_1),  S(KC_2),  S(KC_3),  S(KC_4),  S(KC_5),  S(KC_6),  S(KC_7),  S(KC_8),  S(KC_9),  S(KC_0), KC_EQL},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC},
+  {KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_MINS,  S(KC_MINS),  KC_BSLS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[2] = { /* LOWER */
+  {S(KC_GRV), KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  S(KC_EQL)},
+  {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_CAPS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_ENT},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_DEL},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
+  {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+}
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(1),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(2),   // to LOWER
+    [3] = ACTION_LAYER_MOMENTARY(3)   // to LOWER
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/david.c b/keyboard/planck/keymaps/david.c
new file mode 100644 (file)
index 0000000..f483084
--- /dev/null
@@ -0,0 +1,76 @@
+#include "keymap_common.h"
+#include "beeps.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_BSPC,  KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_ENT,   KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_ESC,   KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  M(0),   M(1),   M(2),   M(3),   M(4),   M(5),   M(6),   M(7), KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 
+{
+  // MACRODOWN only works in this function
+    if (record->event.pressed) {
+      switch(id) {
+        case 0:
+            true_note(12, 12, 20);
+        break;
+        case 1:
+            true_note(14, 14, 20);
+        break;
+        case 2:
+            true_note(16, 16, 20);
+        break;
+        case 3:
+            true_note(17, 17, 20);
+        break;
+        case 4:
+            true_note(19, 19, 20);
+        break;
+        case 5:
+            true_note(21, 21, 20);
+        break;
+        case 6:
+            true_note(23, 23, 20);
+        break;
+        case 7:
+            true_note(24, 24, 20);
+        break;
+        case 10:
+
+        break;
+      } 
+    }
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md
new file mode 100644 (file)
index 0000000..d2f43bb
--- /dev/null
@@ -0,0 +1,34 @@
+# The Default Planck Layout
+
+    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_QW] = { /* Qwerty */
+      {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+      {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+      {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+      {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+    },
+    [_CM] = { /* Colemak */
+      {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+      {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
+      {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+      {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+    },
+    [_DV] = { /* Dvorak */
+      {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
+      {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
+      {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
+      {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+    },
+    [_RS] = { /* RAISE */
+      {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+      {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+      {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+      {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+    },
+    [_LW] = { /* LOWER */
+      {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+      {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+      {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+      {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+    }
+    };
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
new file mode 100644 (file)
index 0000000..a9c2a06
--- /dev/null
@@ -0,0 +1,72 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _LW 3
+#define _RS 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_CM] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_DV] = { /* Dvorak */
+  {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
+  {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
+  {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_RS] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_LW] = { /* LOWER */
+  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+}
+};
+
+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);
+            #ifdef BACKLIGHT_ENABLE
+              backlight_step();
+            #endif
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/dzobert.c b/keyboard/planck/keymaps/dzobert.c
new file mode 100644 (file)
index 0000000..665e9c2
--- /dev/null
@@ -0,0 +1,49 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_TAB},
+  {KC_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_BSPC},
+  {KC_LALT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_TAB},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_BSPC},
+  {KC_LALT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {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_TRNS, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,     KC_6,     KC_7,    KC_8,          KC_9,  KC_DEL},
+  {KC_TRNS, KC_GRV,  KC_MINS,  KC_EQL,  KC_QUOT,  S(KC_QUOT),  S(KC_LBRC),  S(KC_RBRC),  KC_LBRC,  KC_RBRC,  KC_BSLS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_HOME, KC_PGUP, KC_PGDN, KC_END}
+},
+[3] = { /* LOWER */
+  {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU,   KC_APP,  KC_7,  KC_8, KC_9, KC_KP_SLASH},
+  {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4,  KC_5, KC_6, KC_KP_ASTERISK},
+  {KC_TRNS, KC_INSERT,KC_CUT,   KC_COPY,   KC_PASTE,   KC_BSLS,   KC_9,   KC_0,   KC_1,   KC_2,   KC_3,  KC_KP_MINUS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/gabriel.c b/keyboard/planck/keymaps/gabriel.c
new file mode 100644 (file)
index 0000000..8054844
--- /dev/null
@@ -0,0 +1,108 @@
+#include "planck.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _LW 1
+#define _RS 2
+#define _FN 3
+
+// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position
+// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and
+// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX).
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* MIT Layout (QWERTY layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * | esc |  q  |  w  |  e  |  r  |  t  |  y  |  u  |  i  |  o  |  p  | bspc|
+ * |-----------------------------------------------------------------------|
+ * | tab |  a  |  s  |  d  |  f  |  g  |  h  |  j  |  k  |  l  |  ;  |  '  |
+ * |-----------------------------------------------------------------------|
+ * |shift|  z  |  x  |  c  |  v  |  b  |  n  |  m  |  ,  |  .  |  /  |enter|
+ * |-----------------------------------------------------------------------|
+ * | fn  | ctl | alt | cmd |lower|    spc    |raise|left |down | up  |right|
+ * `-----------------------------------------------------------------------'
+ */
+[_QW] = { /* QWERTY */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,   KC_ENT },
+  {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+/* MIT Layout (Raised layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * |  `  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |     |
+ * |-----------------------------------------------------------------------|
+ * |     | F1  | F2  | F3  | F4  | F5  | F6  |  -  |  +  |  [  |  ]  |  |  |
+ * |-----------------------------------------------------------------------|
+ * |     | F7  | F8  | F9  | F10 | F11 | F12 |     |     |     |     |     |
+ * |-----------------------------------------------------------------------|
+ * |     |     |     |     |     |           |     |     |     |     |     |
+ * `-----------------------------------------------------------------------'
+ */
+[_RS] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+/* MIT Layout (Lowered layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * |  ~  |  !  |  @  |  #  |  $  |  %  |  ^  |  &  |  *  |  (  |  )  |     |
+ * |-----------------------------------------------------------------------|
+ * |     | F1  | F2  | F3  | F4  | F5  | F6  |  _  |  =  |  {  |  }  |  \  |
+ * |-----------------------------------------------------------------------|
+ * |     | F7  | F8  | F9  | F10 | F11 | F12 |     |     |     |     |     |
+ * |-----------------------------------------------------------------------|
+ * |     |     |     |     |     |           |     |     |     |     |     |
+ * `-----------------------------------------------------------------------'
+ */
+[_LW] = { /* LOWER */
+  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_EQL,  KC_LCBR, KC_RCBR, KC_BSLS},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+/* MIT Layout (FN layer)
+ *
+ * ,-----------------------------------------------------------------------.
+ * |     |     |     |     |     |     |     |     |     |     |     | del |
+ * |-----------------------------------------------------------------------|
+ * |     |     |     |     |     |     |     |     |     |     |     |     |
+ * |-----------------------------------------------------------------------|
+ * |     |     |     |     |     |     |     |     |     |     |     |     |
+ * |-----------------------------------------------------------------------|
+ * |     |     |     |     |     |           |     |home |pgdn |pgup | end |
+ * `-----------------------------------------------------------------------'
+ */
+[_FN] = { /* FUNCTION */
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+}
+};
+
+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);
+            backlight_step();
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/joe.c b/keyboard/planck/keymaps/joe.c
new file mode 100644 (file)
index 0000000..5b7bbe2
--- /dev/null
@@ -0,0 +1,88 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [0] = { /* Joe colemak */
+    {F(3),    KC_Q,    KC_W,    KC_F,    KC_P, KC_G,   KC_J,   KC_L, KC_U,    KC_Y,    KC_SCLN, KC_MINS},
+    {KC_BSPC, KC_A,    KC_R,    KC_S,    KC_T, KC_D,   KC_H,   KC_N, KC_E,    KC_I,    KC_O,    KC_ENT },
+    {F(15),   KC_Z,    KC_X,    KC_C,    KC_V, KC_B,   KC_K,   KC_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
+    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
+  },
+  [1] = { /* Joe soft Colemak */
+    {F(3),    CM_Q,    CM_W,    CM_F,    CM_P, CM_G,   CM_J,   CM_L, CM_U,    CM_Y,    CM_SCLN, KC_MINS},
+    {KC_BSPC, CM_A,    CM_R,    CM_S,    CM_T, CM_D,   CM_H,   CM_N, CM_E,    CM_I,    CM_O,    KC_ENT },
+    {F(15),   CM_Z,    CM_X,    CM_C,    CM_V, CM_B,   CM_K,   CM_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
+    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
+  },
+  [2] = { /* Joe NUMPAD */
+    {F(3),    KC_NO,   KC_UP,   KC_NO,   KC_NO, KC_NO,   LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8,   KC_P9  },
+    {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO,   LSFT(KC_5), KC_PEQL,    KC_PAST, KC_P4, KC_P5,   KC_P6  },
+    {F(15),   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,      KC_PCMM,    KC_PMNS, KC_P1, KC_P2,   KC_P3  },
+    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1),  KC_TRNS, KC_TRNS,    F(2),       KC_PPLS, KC_P0, KC_PDOT, KC_PENT}
+  },
+  [3] = { /* Joe 1337 haxOr5*/
+    {F(3),    KC_Q,    KC_W,    KC_F,    KC_P, KC_6,   KC_J,   KC_L, KC_U,    KC_Y,    KC_SCLN, KC_MINS},
+    {KC_BSPC, KC_4,    KC_R,    KC_5,    KC_7, KC_D,   KC_H,   KC_N, KC_3,    KC_1,    KC_0,    KC_ENT },
+    {F(15),   KC_Z,    KC_X,    KC_C,    KC_V, KC_B,   KC_K,   KC_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
+    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
+  },
+  [4] = { /* Joe LOWER fn1 */
+    {KC_GRV,  KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, M(3),    M(2),    M(1),    M(0)   },
+    {KC_BSPC, KC_1,    KC_2,    KC_3,    KC_4,  KC_5,    KC_6,    KC_7,  KC_8,    KC_9,    KC_0,    KC_TRNS},
+    {KC_BSLS, KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL },
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1),  KC_TRNS, KC_TRNS, F(2),  KC_NO,   KC_HOME, KC_PGDN, KC_END }
+  },
+  [5] = { /* Joe UPPER fn2 */
+    {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_DEL,  KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP,               KC_RGHT,             KC_NO              },
+    {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO,   KC_NO,   LCTL(KC_PGUP),       LCTL(LALT(KC_UP)),   LCTL(KC_PGDN)      },
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1),    KC_NO,   KC_NO,   F(2),    KC_NO,   LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))}
+  },
+  [6] = { /* Joe SPECIAL fn3 */
+    {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   KC_NO           },
+    {KC_NO,   KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   RESET           },
+    {KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   KC_NO           },
+    {F(6),    F(7),    F(8),    F(9),   F(1),  KC_TRNS, KC_TRNS, F(2),  KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))}
+  }
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(4),  // fn1
+    [2] = ACTION_LAYER_MOMENTARY(5),  // fn2
+
+    /* ESC on tap, fn3 on hold */
+    [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC),
+
+    /* toggle layers */
+    [6]  = ACTION_DEFAULT_LAYER_SET(0), 
+    [7]  = ACTION_DEFAULT_LAYER_SET(1),
+    [8]  = ACTION_DEFAULT_LAYER_SET(2),
+    [9]  = ACTION_DEFAULT_LAYER_SET(3),
+
+    /* tab on tap, shift on hold */
+    [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+    switch (id) {
+        case 0:
+            /* :) */
+            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END );
+            break;
+        case 1:
+            /* :( */
+            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END );
+            break;
+        case 2:
+            /* (: | :) */
+            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
+            break;
+        case 3:
+            /* :( | ): */
+            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
+            break;
+        default:
+            break;
+    }
+    return MACRO_NONE;
+}
diff --git a/keyboard/planck/keymaps/keymap_alexey.c b/keyboard/planck/keymaps/keymap_alexey.c
deleted file mode 100644 (file)
index 89af411..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "keymap_common.h"
-#include "planck.h"
-#include "backlight.h"
-
-#define _QW 0
-#define _LW 1
-#define _RS 2
-
-// This layout tries to imitate the Atreus keyboard
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QW] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, MO(_LW)},
-  {KC_TRNS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS},
-  {M(0),    KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC,  KC_SPC,  MO(_RS), KC_MINS, KC_QUOT, KC_ENT,  KC_TRNS}
-},
-[_RS] = { /* RAISE */
-  {KC_TRNS, KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7,    KC_8,    KC_9, KC_ASTR, KC_TRNS},
-  {KC_TRNS, KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRV,  KC_PGDN, KC_4,    KC_5,    KC_6, KC_PLUS, KC_TRNS},
-  {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1,    KC_2,    KC_3, KC_BSLS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_INS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL,  KC_TRNS}
-},
-[_LW] = { /* LOWER */
-  {KC_TRNS, KC_INS,    KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4,   KC_F5,   KC_F6,   KC_F11,  KC_TRNS},
-  {KC_TRNS, KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F12,  KC_TRNS},
-  {KC_TRNS, KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, 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);
-            backlight_step();
-          } else {
-            unregister_code(KC_RSFT);
-          }
-        break;
-      }
-    return MACRO_NONE;
-};
-
diff --git a/keyboard/planck/keymaps/keymap_angerthosenear.c b/keyboard/planck/keymaps/keymap_angerthosenear.c
deleted file mode 100644 (file)
index cdf6063..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_ENT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
-  {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC,  KC_SPC,  FUNC(1), KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* WASD + NumPad */
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7,   KC_P8,   KC_P9,   KC_PSLS, KC_PMNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4,   KC_P5,   KC_P6,   KC_PAST, KC_PPLS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1,   KC_P2,   KC_P3,   KC_PDOT, KC_PENT, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC,  KC_P0,   FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-},
-[2] = { /* RAISE */
-  {KC_GRV,     KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_TRNS},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_MPRV,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_DEL},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
-}
-};
-
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_austin.c b/keyboard/planck/keymaps/keymap_austin.c
deleted file mode 100644 (file)
index 49fc98a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL,  FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_charlie.c b/keyboard/planck/keymaps/keymap_charlie.c
deleted file mode 100644 (file)
index 88f454d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-    [0] = { /* Native */
-      {KC_ESC,     KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    FUNC(2)}, 
-      {KC_BSPC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
-     {KC_TAB,     KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-      {KC_DEL,     KC_LCTL, KC_NO,   KC_LSFT, KC_LALT, KC_SPC,        KC_NO,   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},       
-    [1] = { /* QWERTY->PHOTOSHOP */
-      {KC_DELETE,  KC_0,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    FUNC(1)},
-      {KC_O,       KC_G,    KC_S,    KC_U,    KC_T,    FUNC(27),  KC_F21,  KC_F10,  KC_F11,  KC_F7,   KC_F8,   KC_F9},
-      {KC_TAB,     FUNC(4), FUNC(5),  FUNC(6),  KC_F1,   FUNC(7),  KC_F18,  KC_F19,  KC_F23,  KC_F20,  KC_F22,  FUNC(9)},
-      {KC_COMM,    KC_DOT,  KC_R, FUNC(11), FUNC(3),  KC_SPC,        FUNC(12), KC_F2,   FUNC(8),  KC_F3,   KC_F14}
-         },
-    [2] = { /* 2: FUNC(3 PHOTOSHOP */
-      {KC_ESC,    FUNC(25), FUNC(26),   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO},
-      {KC_NO,      KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   FUNC(19), FUNC(20), FUNC(21)}, 
-      {KC_C,       KC_NO,  FUNC(22),  FUNC(5),   KC_NO,   FUNC(23), KC_NO,   KC_NO,   KC_NO,   KC_NO,   FUNC(13), KC_NO},
-      {FUNC(14),    FUNC(15), FUNC(16), FUNC(17), FUNC(3),   KC_SPC,        FUNC(18), KC_NO,   KC_NO,   KC_F24,  KC_NO}
-         }
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_DEFAULT_LAYER_SET(0),                             // set Qwerty layout
-    [2] = ACTION_DEFAULT_LAYER_SET(1),                             // set Photoshop presets
-    [3] = ACTION_LAYER_MOMENTARY(2),                                  // Photoshop function layer
-    [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9),   // photo folder AHK
-    [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I),              // select inverse
-    [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M),                         // marquee select
-    [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC),                      // fill 
-    [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X),    // warp
-    [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12),  // merge all new layer
-    [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS),                     // zoom out
-    [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H),                        // RBG sliders
-    [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S),                        // save
-    [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5),           // layer mask from transparancy 
-    [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2),                     // stroke
-    [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2),                     // stroke layer
-    [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0),                      // zoom 0
-    [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H),             // HSV sliders
-    [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S),         // save as 
-    [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7),  // gaussian blur
-    [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8),  // motion blur
-    [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X),            // liquify filter
-    [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),                     // prev layer blending
-    [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC),             // KC_NOrmal layer blending
-    [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),                      // next layer blending
-    [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z),                        // step back
-    [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y),                        // step forward
-    [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R),                        // rasterize
-     
-};
diff --git a/keyboard/planck/keymaps/keymap_daniel.c b/keyboard/planck/keymaps/keymap_daniel.c
deleted file mode 100644 (file)
index 234e48f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
-  {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* RAISE */
-  {KC_GRV, S(KC_1),  S(KC_2),  S(KC_3),  S(KC_4),  S(KC_5),  S(KC_6),  S(KC_7),  S(KC_8),  S(KC_9),  S(KC_0), KC_EQL},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC},
-  {KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_MINS,  S(KC_MINS),  KC_BSLS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[2] = { /* LOWER */
-  {S(KC_GRV), KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  S(KC_EQL)},
-  {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_CAPS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_ENT},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_DEL},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
-  {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-}
-};
-
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(1),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(2),   // to LOWER
-    [3] = ACTION_LAYER_MOMENTARY(3)   // to LOWER
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_david.c b/keyboard/planck/keymaps/keymap_david.c
deleted file mode 100644 (file)
index f483084..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "keymap_common.h"
-#include "beeps.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_BSPC,  KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_ENT,   KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_ESC,   KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  M(0),   M(1),   M(2),   M(3),   M(4),   M(5),   M(6),   M(7), KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 
-{
-  // MACRODOWN only works in this function
-    if (record->event.pressed) {
-      switch(id) {
-        case 0:
-            true_note(12, 12, 20);
-        break;
-        case 1:
-            true_note(14, 14, 20);
-        break;
-        case 2:
-            true_note(16, 16, 20);
-        break;
-        case 3:
-            true_note(17, 17, 20);
-        break;
-        case 4:
-            true_note(19, 19, 20);
-        break;
-        case 5:
-            true_note(21, 21, 20);
-        break;
-        case 6:
-            true_note(23, 23, 20);
-        break;
-        case 7:
-            true_note(24, 24, 20);
-        break;
-        case 10:
-
-        break;
-      } 
-    }
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_default.c b/keyboard/planck/keymaps/keymap_default.c
deleted file mode 100644 (file)
index 49670da..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
-// this is the style you want to emulate.
-
-#include "planck.h"
-#include "backlight.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QW 0
-#define _CM 1
-#define _DV 2
-#define _LW 3
-#define _RS 4
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QW] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_CM] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_DV] = { /* Dvorak */
-  {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
-  {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
-  {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_RS] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[_LW] = { /* LOWER */
-  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-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);
-            backlight_step();
-          } else {
-            unregister_code(KC_RSFT);
-          }
-        break;
-      }
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_dzobert.c b/keyboard/planck/keymaps/keymap_dzobert.c
deleted file mode 100644 (file)
index 665e9c2..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_TAB},
-  {KC_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_BSPC},
-  {KC_LALT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_TAB},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_BSPC},
-  {KC_LALT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {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_TRNS, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,     KC_6,     KC_7,    KC_8,          KC_9,  KC_DEL},
-  {KC_TRNS, KC_GRV,  KC_MINS,  KC_EQL,  KC_QUOT,  S(KC_QUOT),  S(KC_LBRC),  S(KC_RBRC),  KC_LBRC,  KC_RBRC,  KC_BSLS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_HOME, KC_PGUP, KC_PGDN, KC_END}
-},
-[3] = { /* LOWER */
-  {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU,   KC_APP,  KC_7,  KC_8, KC_9, KC_KP_SLASH},
-  {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4,  KC_5, KC_6, KC_KP_ASTERISK},
-  {KC_TRNS, KC_INSERT,KC_CUT,   KC_COPY,   KC_PASTE,   KC_BSLS,   KC_9,   KC_0,   KC_1,   KC_2,   KC_3,  KC_KP_MINUS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/keymap_gabriel.c
deleted file mode 100644 (file)
index 8054844..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "planck.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QW 0
-#define _LW 1
-#define _RS 2
-#define _FN 3
-
-// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position
-// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and
-// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX).
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* MIT Layout (QWERTY layer)
- *
- * ,-----------------------------------------------------------------------.
- * | esc |  q  |  w  |  e  |  r  |  t  |  y  |  u  |  i  |  o  |  p  | bspc|
- * |-----------------------------------------------------------------------|
- * | tab |  a  |  s  |  d  |  f  |  g  |  h  |  j  |  k  |  l  |  ;  |  '  |
- * |-----------------------------------------------------------------------|
- * |shift|  z  |  x  |  c  |  v  |  b  |  n  |  m  |  ,  |  .  |  /  |enter|
- * |-----------------------------------------------------------------------|
- * | fn  | ctl | alt | cmd |lower|    spc    |raise|left |down | up  |right|
- * `-----------------------------------------------------------------------'
- */
-[_QW] = { /* QWERTY */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,   KC_ENT },
-  {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
-},
-/* MIT Layout (Raised layer)
- *
- * ,-----------------------------------------------------------------------.
- * |  `  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |     |
- * |-----------------------------------------------------------------------|
- * |     | F1  | F2  | F3  | F4  | F5  | F6  |  -  |  +  |  [  |  ]  |  |  |
- * |-----------------------------------------------------------------------|
- * |     | F7  | F8  | F9  | F10 | F11 | F12 |     |     |     |     |     |
- * |-----------------------------------------------------------------------|
- * |     |     |     |     |     |           |     |     |     |     |     |
- * `-----------------------------------------------------------------------'
- */
-[_RS] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-},
-/* MIT Layout (Lowered layer)
- *
- * ,-----------------------------------------------------------------------.
- * |  ~  |  !  |  @  |  #  |  $  |  %  |  ^  |  &  |  *  |  (  |  )  |     |
- * |-----------------------------------------------------------------------|
- * |     | F1  | F2  | F3  | F4  | F5  | F6  |  _  |  =  |  {  |  }  |  \  |
- * |-----------------------------------------------------------------------|
- * |     | F7  | F8  | F9  | F10 | F11 | F12 |     |     |     |     |     |
- * |-----------------------------------------------------------------------|
- * |     |     |     |     |     |           |     |     |     |     |     |
- * `-----------------------------------------------------------------------'
- */
-[_LW] = { /* LOWER */
-  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_EQL,  KC_LCBR, KC_RCBR, KC_BSLS},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-},
-/* MIT Layout (FN layer)
- *
- * ,-----------------------------------------------------------------------.
- * |     |     |     |     |     |     |     |     |     |     |     | del |
- * |-----------------------------------------------------------------------|
- * |     |     |     |     |     |     |     |     |     |     |     |     |
- * |-----------------------------------------------------------------------|
- * |     |     |     |     |     |     |     |     |     |     |     |     |
- * |-----------------------------------------------------------------------|
- * |     |     |     |     |     |           |     |home |pgdn |pgup | end |
- * `-----------------------------------------------------------------------'
- */
-[_FN] = { /* FUNCTION */
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
-}
-};
-
-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);
-            backlight_step();
-          } else {
-            unregister_code(KC_RSFT);
-          }
-        break;
-      }
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_jack.c b/keyboard/planck/keymaps/keymap_jack.c
deleted file mode 100644 (file)
index 0b93bba..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Jack soft-coded colemak */
-  {KC_TAB,  CM_Q,    CM_W,    CM_F,    CM_P,    CM_G,    CM_J,    CM_L,    CM_U,    CM_Y,    CM_SCLN, KC_BSPC},
-  {KC_ESC,  CM_A,    CM_R,    CM_S,    CM_T,    CM_D,    CM_H,    CM_N,    CM_E,    CM_I,    CM_O,     KC_QUOT},
-  {KC_LSFT, CM_Z,    CM_X,    CM_C,    CM_V,    CM_B,    CM_K,    CM_M,    CM_COMM, CM_DOT,  CM_SLSH, KC_ENT},
-  {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Jack hard-coded colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* Jack RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* Jack LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to Fn overlay
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to Fn overlay
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_joe.c b/keyboard/planck/keymaps/keymap_joe.c
deleted file mode 100644 (file)
index 5b7bbe2..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [0] = { /* Joe colemak */
-    {F(3),    KC_Q,    KC_W,    KC_F,    KC_P, KC_G,   KC_J,   KC_L, KC_U,    KC_Y,    KC_SCLN, KC_MINS},
-    {KC_BSPC, KC_A,    KC_R,    KC_S,    KC_T, KC_D,   KC_H,   KC_N, KC_E,    KC_I,    KC_O,    KC_ENT },
-    {F(15),   KC_Z,    KC_X,    KC_C,    KC_V, KC_B,   KC_K,   KC_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
-    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
-  },
-  [1] = { /* Joe soft Colemak */
-    {F(3),    CM_Q,    CM_W,    CM_F,    CM_P, CM_G,   CM_J,   CM_L, CM_U,    CM_Y,    CM_SCLN, KC_MINS},
-    {KC_BSPC, CM_A,    CM_R,    CM_S,    CM_T, CM_D,   CM_H,   CM_N, CM_E,    CM_I,    CM_O,    KC_ENT },
-    {F(15),   CM_Z,    CM_X,    CM_C,    CM_V, CM_B,   CM_K,   CM_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
-    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
-  },
-  [2] = { /* Joe NUMPAD */
-    {F(3),    KC_NO,   KC_UP,   KC_NO,   KC_NO, KC_NO,   LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8,   KC_P9  },
-    {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO,   LSFT(KC_5), KC_PEQL,    KC_PAST, KC_P4, KC_P5,   KC_P6  },
-    {F(15),   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,      KC_PCMM,    KC_PMNS, KC_P1, KC_P2,   KC_P3  },
-    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1),  KC_TRNS, KC_TRNS,    F(2),       KC_PPLS, KC_P0, KC_PDOT, KC_PENT}
-  },
-  [3] = { /* Joe 1337 haxOr5*/
-    {F(3),    KC_Q,    KC_W,    KC_F,    KC_P, KC_6,   KC_J,   KC_L, KC_U,    KC_Y,    KC_SCLN, KC_MINS},
-    {KC_BSPC, KC_4,    KC_R,    KC_5,    KC_7, KC_D,   KC_H,   KC_N, KC_3,    KC_1,    KC_0,    KC_ENT },
-    {F(15),   KC_Z,    KC_X,    KC_C,    KC_V, KC_B,   KC_K,   KC_M, KC_COMM, KC_DOT,  KC_UP,   KC_QUOT},
-    {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
-  },
-  [4] = { /* Joe LOWER fn1 */
-    {KC_GRV,  KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, M(3),    M(2),    M(1),    M(0)   },
-    {KC_BSPC, KC_1,    KC_2,    KC_3,    KC_4,  KC_5,    KC_6,    KC_7,  KC_8,    KC_9,    KC_0,    KC_TRNS},
-    {KC_BSLS, KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL },
-    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1),  KC_TRNS, KC_TRNS, F(2),  KC_NO,   KC_HOME, KC_PGDN, KC_END }
-  },
-  [5] = { /* Joe UPPER fn2 */
-    {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_DEL,  KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP,               KC_RGHT,             KC_NO              },
-    {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO,   KC_NO,   LCTL(KC_PGUP),       LCTL(LALT(KC_UP)),   LCTL(KC_PGDN)      },
-    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1),    KC_NO,   KC_NO,   F(2),    KC_NO,   LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))}
-  },
-  [6] = { /* Joe SPECIAL fn3 */
-    {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   KC_NO           },
-    {KC_NO,   KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   RESET           },
-    {KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO, KC_NO,    KC_NO,   KC_NO,   KC_NO           },
-    {F(6),    F(7),    F(8),    F(9),   F(1),  KC_TRNS, KC_TRNS, F(2),  KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))}
-  }
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(4),  // fn1
-    [2] = ACTION_LAYER_MOMENTARY(5),  // fn2
-
-    /* ESC on tap, fn3 on hold */
-    [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC),
-
-    /* toggle layers */
-    [6]  = ACTION_DEFAULT_LAYER_SET(0), 
-    [7]  = ACTION_DEFAULT_LAYER_SET(1),
-    [8]  = ACTION_DEFAULT_LAYER_SET(2),
-    [9]  = ACTION_DEFAULT_LAYER_SET(3),
-
-    /* tab on tap, shift on hold */
-    [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB),
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
-    switch (id) {
-        case 0:
-            /* :) */
-            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END );
-            break;
-        case 1:
-            /* :( */
-            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END );
-            break;
-        case 2:
-            /* (: | :) */
-            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
-            break;
-        case 3:
-            /* :( | ): */
-            return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
-            break;
-        default:
-            break;
-    }
-    return MACRO_NONE;
-}
diff --git a/keyboard/planck/keymaps/keymap_kyle.c b/keyboard/planck/keymaps/keymap_kyle.c
deleted file mode 100644 (file)
index da32b74..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_leo.c b/keyboard/planck/keymaps/keymap_leo.c
deleted file mode 100644 (file)
index 6d66441..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* BASE */
-  {KC_ESC,  KC_LBRC, KC_QUOT, KC_SCLN, KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
-  {KC_TAB,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_ENT},
-  {KC_LSFT, KC_DOT,  KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_COMM},
-  {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC,  KC_SPC,  FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL}
-},
-[2] = { /* RAISE */
-  {RALT(KC_RBRC),  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  S(KC_RBRC)},
-  {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_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-},
-[3] = { /* LOWER */
-  {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5),   S(KC_6),  S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS},
-  {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8),  S(KC_9), S(KC_MINS), KC_SLSH},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, RALT(KC_8),   RALT(KC_9),   KC_TRNS,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-},
-[4] = { /* META */
-  {KC_TRNS,  KC_HOME,  KC_UP,    KC_END,   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_HOME,  KC_UP,    KC_END,   KC_TRNS,  KC_DEL},
-  {KC_TRNS,  KC_RGHT,  KC_DOWN,  KC_LEFT,  KC_PGUP,  KC_TRNS,  KC_PGUP,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_TRNS,  KC_TRNS},
-  {KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_PGDN,  KC_TRNS,  KC_PGDN,  KC_TRNS,  KC_VOLD,  KC_VOLU,  KC_TRNS,  KC_TRNS},
-  {KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-    [3] = ACTION_LAYER_MOMENTARY(4),  // to META
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c
deleted file mode 100644 (file)
index cc9be55..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "keymap_common.h"
-#include "backlight.h"
-#include "action_layer.h"
-#include "keymap_midi.h"
-#include <avr/boot.h>
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[4] = { /* TENKEY */
-  {KC_TAB,  N_C5, N_D5, N_E5, N_F5, N_G5, N_A5,    KC_KP_7,    KC_KP_8,    KC_KP_9,    KC_P,   KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_KP_4,    KC_KP_5,    KC_KP_6,    KC_SCLN,  KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_KP_1,    KC_KP_2,    KC_KP_3,  KC_SLSH, KC_ENT},
-  {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS,    KC_SPC,   KC_SPC, KC_KP_0,   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[5] = {
-  { MIDI12 },
-  { MIDI12 },
-  { MIDI12 },
-  {M(0), KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,    KC_SPC,   KC_SPC,    FUNC(1),   MIDI, MIDI, MIDI,  MIDI}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-uint16_t hextokeycode(int hex) {
-    if (hex == 0x0) {
-        return KC_0;
-    } else if (hex < 0xA) {
-        return KC_1 + (hex - 0x1);
-    } else {
-        return KC_A + (hex - 0xA);
-    }
-}
-
-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) {
-          // play_note(440, 20);
-          // register_code(KC_RSFT);
-          backlight_set(BACKLIGHT_LEVELS);
-          default_layer_and(0); 
-          default_layer_or((1<<5));
-
-          // uint8_t low = boot_lock_fuse_bits_get(0x0000);
-          // uint8_t high = boot_lock_fuse_bits_get(0x0003);
-          // uint8_t ext = boot_lock_fuse_bits_get(0x0002);
-          // uint8_t lock = boot_lock_fuse_bits_get(0x0001);
-
-          // register_code(hextokeycode((low & 0xF0) >> 4));
-          // unregister_code(hextokeycode((low & 0xF0) >> 4));
-          // register_code(hextokeycode((low & 0x0F)));
-          // unregister_code(hextokeycode((low & 0x0F)));
-
-
-          // register_code(hextokeycode((high & 0xF0) >> 4));
-          // unregister_code(hextokeycode((high & 0xF0) >> 4));
-          // register_code(hextokeycode((high & 0x0F)));
-          // unregister_code(hextokeycode((high & 0x0F)));
-
-
-          // register_code(hextokeycode((ext & 0xF0) >> 4));
-          // unregister_code(hextokeycode((ext & 0xF0) >> 4));
-          // register_code(hextokeycode((ext & 0x0F)));
-          // unregister_code(hextokeycode((ext & 0x0F)));
-
-
-          // register_code(hextokeycode((lock & 0xF0) >> 4));
-          // unregister_code(hextokeycode((lock & 0xF0) >> 4));
-          // register_code(hextokeycode((lock & 0x0F)));
-          // unregister_code(hextokeycode((lock & 0x0F)));
-
-          // note(0+12, 20);
-          // note(0+24, 20);
-        } else {
-          // unregister_code(KC_RSFT);
-          // stop_note();
-          backlight_set(0);
-          default_layer_and(0); 
-          default_layer_or(0);
-          // note(0+24, 20);
-          // note(0, 20);
-          // play_note(4, 20);
-        }
-        break;
-      } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_max.c b/keyboard/planck/keymaps/keymap_max.c
deleted file mode 100644 (file)
index 7fb29bc..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
-  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_ENT },
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
-  {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-},
-[1] = { /* Colemak */
-  {KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_ENT },
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
-  {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
-},
-[2] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_TRNS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_BSLS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[3] = { /* LOWER */
-  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), KC_TRNS},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  S(KC_BSLS)},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
-    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
-
-    [3] = ACTION_DEFAULT_LAYER_SET(0),
-    [4] = ACTION_DEFAULT_LAYER_SET(1),
-
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
diff --git a/keyboard/planck/keymaps/keymap_monkey.c b/keyboard/planck/keymaps/keymap_monkey.c
deleted file mode 100644 (file)
index 21a2c14..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "keymap_common.h"
-#include "backlight.h"
-#include "debug.h"
-
-#define COLEMAK_LAYER 0
-#define QWERTY_LAYER 1
-#define LOWER_LAYER 2
-#define UPPER_LAYER 3
-#define SPACEFN_LAYER 4
-#define TENKEY_LAYER 5
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[COLEMAK_LAYER] = { /* Colemak */
-  {KC_TAB,    UNI(0x1961),     KC_W,    KC_F,    KC_P,    KC_G,     KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN,  KC_BSPC},
-  {KC_LCTL,   KC_A,     KC_R,    KC_S,    KC_T,    KC_D,     KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
-  {KC_LSFT,   KC_Z,     KC_X,    KC_C,    KC_V,    KC_B,     KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,  KC_ENT},
-  {FUNC(5),   KC_ESC,   KC_LGUI, KC_LALT, FUNC(1), FUNC(6),  FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP,    KC_RGHT}
-},
-[QWERTY_LAYER] = { /* Qwerty */
-  {KC_TAB,  KC_Q,   KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    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_LSFT, KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
-  {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[LOWER_LAYER] = { /* LOWER */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DELETE},
-  {KC_TRNS, FUNC(3), FUNC(4), RESET,   DEBUG,   KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
-},
-[UPPER_LAYER] = { /* RAISE */
-  {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3),  S(KC_4),  S(KC_5), S(KC_6), S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0),    KC_DELETE},
-  {KC_CALC,   FUNC(3), FUNC(4), RESET,    DEBUG,    KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
-  {KC_TRNS,   KC_F1,   KC_F2,   KC_F3,    KC_F4,    KC_F5,   KC_F6,   KC_F7,      KC_F8,      KC_F9,      KC_F10,     KC_TRNS},
-  {KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS,    KC_MNXT,    KC_VOLD,    KC_VOLU,    KC_MPLY}
-},
-[SPACEFN_LAYER] = { /* SpaceFN */
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP,   KC_END,   KC_TRNS, KC_TRNS},
-  {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS}
-},
-[TENKEY_LAYER] = { /* TENKEY */
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC,  KC_SPC,  KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
-}
-};
-
-const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC),  // Tap for backspace, hold for LOWER
-    [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT),  // Tap for enter, hold for RAISE
-
-    [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER),
-    [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER),
-    [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER),
-    
-    [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC),  // Tap for space, hold for SpaceFN
-};
-
-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);
-          backlight_step();
-        } else {
-          unregister_code(KC_RSFT);
-        }
-        break;
-      } 
-    return MACRO_NONE;
-};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/keymap_numpad.c b/keyboard/planck/keymaps/keymap_numpad.c
deleted file mode 100644 (file)
index 7de4372..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "keymap_common.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_KP_ASTERISK, KC_KP_9, KC_KP_6,    KC_KP_3,  KC_KP_DOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_KP_SLASH,    KC_KP_8, KC_KP_5,  KC_KP_2, KC_KP_0},
-  {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC,  KC_SPC,  KC_NUMLOCK,   KC_KP_7, KC_KP_4, KC_KP_1,  KC_KP_0}
-                                                // Space is repeated to accommadate for both spacebar wiring positions
-}
-};
-
-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:
-        return MACRODOWN(T(CM_T), END);
-      break;
-    } 
-    return MACRO_NONE;
-};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/kyle.c b/keyboard/planck/keymaps/kyle.c
new file mode 100644 (file)
index 0000000..da32b74
--- /dev/null
@@ -0,0 +1,49 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/leo.c b/keyboard/planck/keymaps/leo.c
new file mode 100644 (file)
index 0000000..6d66441
--- /dev/null
@@ -0,0 +1,46 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* BASE */
+  {KC_ESC,  KC_LBRC, KC_QUOT, KC_SCLN, KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
+  {KC_TAB,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_ENT},
+  {KC_LSFT, KC_DOT,  KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_COMM},
+  {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC,  KC_SPC,  FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL}
+},
+[2] = { /* RAISE */
+  {RALT(KC_RBRC),  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,  S(KC_RBRC)},
+  {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_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[3] = { /* LOWER */
+  {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5),   S(KC_6),  S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS},
+  {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8),  S(KC_9), S(KC_MINS), KC_SLSH},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, RALT(KC_8),   RALT(KC_9),   KC_TRNS,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[4] = { /* META */
+  {KC_TRNS,  KC_HOME,  KC_UP,    KC_END,   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_HOME,  KC_UP,    KC_END,   KC_TRNS,  KC_DEL},
+  {KC_TRNS,  KC_RGHT,  KC_DOWN,  KC_LEFT,  KC_PGUP,  KC_TRNS,  KC_PGUP,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_TRNS,  KC_TRNS},
+  {KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_PGDN,  KC_TRNS,  KC_PGDN,  KC_TRNS,  KC_VOLD,  KC_VOLU,  KC_TRNS,  KC_TRNS},
+  {KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+    [3] = ACTION_LAYER_MOMENTARY(4),  // to META
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/lock/README.md b/keyboard/planck/keymaps/lock/README.md
new file mode 100644 (file)
index 0000000..d21cb99
--- /dev/null
@@ -0,0 +1,3 @@
+# Lock layout
+
+This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly!
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/lock/keymap.c b/keyboard/planck/keymaps/lock/keymap.c
new file mode 100644 (file)
index 0000000..9585764
--- /dev/null
@@ -0,0 +1,156 @@
+// USING_MIDI
+// USING_BACKLIGHT
+#include "keymap_common.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+#include "action_layer.h"
+#include "keymap_midi.h"
+#include "audio.h"
+#include <avr/boot.h>
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[4] = { /* TENKEY */
+  {KC_TAB,  N_C5, N_D5, N_E5, N_F5, N_G5, N_A5,    KC_KP_7,    KC_KP_8,    KC_KP_9,    KC_P,   KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_KP_4,    KC_KP_5,    KC_KP_6,    KC_SCLN,  KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_KP_1,    KC_KP_2,    KC_KP_3,  KC_SLSH, KC_ENT},
+  {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS,    KC_SPC,   KC_SPC, KC_KP_0,   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[5] = {
+  { MIDI12 },
+  { MIDI12 },
+  { MIDI12 },
+  {M(0), KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,    KC_SPC,   KC_SPC,    FUNC(1),   MIDI, MIDI, MIDI,  MIDI}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+uint16_t hextokeycode(int hex) {
+    if (hex == 0x0) {
+        return KC_0;
+    } else if (hex < 0xA) {
+        return KC_1 + (hex - 0x1);
+    } else {
+        return KC_A + (hex - 0xA);
+    }
+}
+
+float walk_up[][2] = {
+  {440.0*pow(2.0,(60)/12.0), 400},
+  {0, 50},
+  {440.0*pow(2.0,(67)/12.0), 600},
+};
+
+float walk_dn[][2] = {
+  {440.0*pow(2.0,(67)/12.0), 400},
+  {0, 50},
+  {440.0*pow(2.0,(60)/12.0), 600},
+};
+
+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) {
+
+          play_notes(&walk_up, 3, false);
+          // play_note(440, 20);
+          // register_code(KC_RSFT);
+          #ifdef BACKLIGHT_ENABLE
+            backlight_set(BACKLIGHT_LEVELS);
+          #endif
+          default_layer_and(0); 
+          default_layer_or((1<<5));
+
+          // uint8_t low = boot_lock_fuse_bits_get(0x0000);
+          // uint8_t high = boot_lock_fuse_bits_get(0x0003);
+          // uint8_t ext = boot_lock_fuse_bits_get(0x0002);
+          // uint8_t lock = boot_lock_fuse_bits_get(0x0001);
+
+          // register_code(hextokeycode((low & 0xF0) >> 4));
+          // unregister_code(hextokeycode((low & 0xF0) >> 4));
+          // register_code(hextokeycode((low & 0x0F)));
+          // unregister_code(hextokeycode((low & 0x0F)));
+
+
+          // register_code(hextokeycode((high & 0xF0) >> 4));
+          // unregister_code(hextokeycode((high & 0xF0) >> 4));
+          // register_code(hextokeycode((high & 0x0F)));
+          // unregister_code(hextokeycode((high & 0x0F)));
+
+
+          // register_code(hextokeycode((ext & 0xF0) >> 4));
+          // unregister_code(hextokeycode((ext & 0xF0) >> 4));
+          // register_code(hextokeycode((ext & 0x0F)));
+          // unregister_code(hextokeycode((ext & 0x0F)));
+
+
+          // register_code(hextokeycode((lock & 0xF0) >> 4));
+          // unregister_code(hextokeycode((lock & 0xF0) >> 4));
+          // register_code(hextokeycode((lock & 0x0F)));
+          // unregister_code(hextokeycode((lock & 0x0F)));
+
+        } else {
+          unregister_code(KC_RSFT);
+          play_notes(&walk_dn, 3, false);
+          #ifdef BACKLIGHT_ENABLE
+            backlight_set(0);
+          #endif
+          default_layer_and(0); 
+          default_layer_or(0);
+        }
+        break;
+      } 
+    return MACRO_NONE;
+};
+
+float start_up[][2] = {
+  {440.0*pow(2.0,(67)/12.0), 600},
+  {0, 50},
+  {440.0*pow(2.0,(64)/12.0), 400},
+  {0, 50},
+  {440.0*pow(2.0,(55)/12.0), 400},
+  {0, 50},
+  {440.0*pow(2.0,(60)/12.0), 400},
+  {0, 50},
+  {440.0*pow(2.0,(64)/12.0), 1000},
+};
+
+void * matrix_init_user(void) {
+    init_notes();
+    play_notes(&start_up, 9, false);
+}
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/lukas.c b/keyboard/planck/keymaps/lukas.c
new file mode 100644 (file)
index 0000000..6fd9537
--- /dev/null
@@ -0,0 +1,64 @@
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+
+// This simple keymap is optimized for xmonad users using super as their modifier key.
+// M(1) makes it possible to change virtual screens and swap windows between them.
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+#define _QW 0
+#define _LW 1
+#define _RS 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QW] = { /* Qwerty */
+    {KC_TAB,  KC_Q,    KC_W,    KC_E, KC_R,    KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+    {KC_ESC,  KC_A,    KC_S,    KC_D, KC_F,    KC_G,   KC_H,   KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+    {KC_LSFT, KC_Z,    KC_X,    KC_C, KC_V,    KC_B,   KC_N,   KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+    {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+  },
+  [_RS] = { /* RAISE */
+    {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL },
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+  },
+  [_LW] = { /* LOWER */
+    {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS},
+    {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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);
+        #ifdef BACKLIGHT_ENABLE
+          backlight_step();
+        #endif
+      } else {
+        unregister_code(KC_RSFT);
+      }
+      break;
+    case 1:
+      if (record->event.pressed) {
+        register_code(KC_LGUI);
+        layer_on(_RS);
+      } else {
+        unregister_code(KC_LGUI);
+        layer_off(_RS);
+      }
+      break;
+  }
+  return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/max.c b/keyboard/planck/keymaps/max.c
new file mode 100644 (file)
index 0000000..7fb29bc
--- /dev/null
@@ -0,0 +1,49 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,   KC_BSPC},
+  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_ENT },
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
+  {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+},
+[1] = { /* Colemak */
+  {KC_ESC,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_TAB,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_ENT },
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_QUOT},
+  {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2),    KC_SPC,   KC_SPC,    FUNC(1),   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+},
+[2] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_TRNS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, KC_BSLS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,   KC_TRNS,  FUNC(1),   KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* LOWER */
+  {S(KC_GRV),  S(KC_1),    S(KC_2),    S(KC_3),    S(KC_4),    S(KC_5),    S(KC_6),    S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0), KC_BSPC},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), KC_TRNS},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  S(KC_BSLS)},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2),   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER
+
+    [3] = ACTION_DEFAULT_LAYER_SET(0),
+    [4] = ACTION_DEFAULT_LAYER_SET(1),
+
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/mollat.c b/keyboard/planck/keymaps/mollat.c
new file mode 100644 (file)
index 0000000..e7c71ef
--- /dev/null
@@ -0,0 +1,149 @@
+//
+// This layout is based on the following needs:
+//
+// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver)
+// added german umlauts at known places from de-layout
+// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys)
+// Fn layer (at CapsLock place like the Pok3r does) for missing keys
+// additional layer for tmux window switching
+//
+// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check
+// this fork for updates as I probably won't bother jack with my pull requests frequently.
+//
+
+#include "planck.h"
+
+#define _QWERTY 0
+#define _HIGH 1
+#define _LOW 2
+#define _FN 3
+#define _TMUX 4
+#define _LCTL 5
+#define _MOUSE 6
+#define __________ KC_NO // just for easy reading
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = { /* Qwerty */
+  { LT(_MOUSE, KC_ESC),KC_Q,KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSPC    },
+  { LT(_FN, KC_TAB),KC_A,   KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_QUOT    },
+  { KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    SFT_T(KC_ENT)},
+  { __________, __________, KC_LGUI,    KC_LALT,    KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI,   __________, __________ }
+},
+
+// missing keys regarding to the form factor
+// keeping the dot and comma for typing faster IP addresses and (german) float values
+// putting the backslash on the slash's place
+[_HIGH] = {
+  { KC_GRV,     KC_EXLM,    KC_AT,      KC_HASH,    KC_DLR,     KC_PERC,    KC_CIRC,    KC_AMPR,    KC_ASTR,    KC_LPRN,    KC_RPRN,    KC_MINS    },
+  { __________, KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       KC_EQL     },
+  { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM,    KC_DOT,     KC_BSLS,    LSFT(KC_BSLS)},
+  { __________, __________, __________, __________, __________, __________, KC_TRNS,    __________, __________, __________, __________, __________ }
+},
+
+// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r
+// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287)
+// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout
+// home/end at the 'a' and 'e' position like in bash
+// ins at 'i'
+// del besides backspace (had no better place for it because of the umlauts)
+// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi')
+//
+[_FN] = {
+  { __________, __________, __________, KC_END,     __________, __________, __________, __________, KC_INS,     __________, KC_DEL,     RALT(KC_Y) },
+  { KC_TRNS,    __________, RALT(KC_S), __________, KC_PGDN,    RALT(KC_5), KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    RALT(KC_P), RALT(KC_Q) },
+  { __________, KC_HOME,    __________, __________, __________, KC_PGUP,    __________, __________, __________, __________, __________, KC_ENT     },
+  { RESET,      __________, __________, __________, __________, KC_SPC,     KC_SPC,     __________, __________, __________, __________, __________ }
+},
+
+// function key layer and some shift + (missing key at the small form factor)
+[_LOW] = {
+  { KC_TILD,    __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR,    KC_RCBR,    KC_UNDS    },
+  { __________, KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,      KC_F6,      KC_F7,      KC_F8,      KC_LBRC,    KC_RBRC,    KC_PLUS    },
+  { __________, __________, __________, __________, __________, KC_F9,      KC_F10,     KC_F11,     KC_F12,     __________, __________, __________ },
+  { __________, __________, __________, __________, __________, __________, __________, KC_TRNS,    __________, __________, __________, __________ }
+},
+
+// most macros will switch tmux screens
+// two macros are for vi's save/quit at 'w' and 'q'
+[_TMUX] = {
+  { __________, M(14),      M(13),      __________, __________, __________, __________, __________, __________, __________, M(11),      __________ },
+  { M(0),       M(1),       M(2),       M(3),       M(4),       M(5),       M(6),       M(7),       M(8),       M(9),       __________, __________ },
+  { __________, __________, __________, M(12),      __________, __________, M(10),      __________, __________, __________, __________, __________ },
+  { __________, __________, __________, __________, __________, KC_TRNS,    __________, __________, __________, __________, __________, __________ }
+},
+
+// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys.
+[_MOUSE] = {
+  { KC_TRNS,    __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ },
+  { __________, __________, __________, __________, KC_WH_D,    __________, KC_MS_L,    KC_MS_D,    KC_MS_U,    KC_MS_R,    __________, __________ },
+  { __________, __________, __________, __________, __________, KC_WH_U,    __________, __________, __________, __________, __________, __________ },
+  { __________, __________, __________, KC_ACL2,    KC_ACL1,    KC_ACL0,    KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ }
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)),    // does not work
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+      switch(id) {
+        case 0:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END );
+          break;
+        case 1:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END );
+          break;
+        case 2:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END );
+          break;
+        case 3:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END );
+          break;
+        case 4:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END );
+          break;
+        case 5:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END );
+          break;
+        case 6:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END );
+          break;
+        case 7:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END );
+          break;
+        case 8:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END );
+          break;
+        case 9:
+          // tmux last window
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END );
+          break;
+          // tmux next window
+        case 10:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END );
+          break;
+          // tmux previous window
+        case 11:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END );
+          break;
+          // tmux new window
+        case 12:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END );
+          break;
+        case 13:
+          // vi save document
+          return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END );
+          break;
+        case 14:
+          // vi quit
+          return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END );
+          break;
+          // tmux press ctrl-b
+        case 15:
+          return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END );
+          break;
+      }
+    return MACRO_NONE;
+};
diff --git a/keyboard/planck/keymaps/monkey.c b/keyboard/planck/keymaps/monkey.c
new file mode 100644 (file)
index 0000000..21a2c14
--- /dev/null
@@ -0,0 +1,76 @@
+#include "keymap_common.h"
+#include "backlight.h"
+#include "debug.h"
+
+#define COLEMAK_LAYER 0
+#define QWERTY_LAYER 1
+#define LOWER_LAYER 2
+#define UPPER_LAYER 3
+#define SPACEFN_LAYER 4
+#define TENKEY_LAYER 5
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[COLEMAK_LAYER] = { /* Colemak */
+  {KC_TAB,    UNI(0x1961),     KC_W,    KC_F,    KC_P,    KC_G,     KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN,  KC_BSPC},
+  {KC_LCTL,   KC_A,     KC_R,    KC_S,    KC_T,    KC_D,     KC_H,    KC_N,    KC_E,    KC_I,    KC_O,     KC_QUOT},
+  {KC_LSFT,   KC_Z,     KC_X,    KC_C,    KC_V,    KC_B,     KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,  KC_ENT},
+  {FUNC(5),   KC_ESC,   KC_LGUI, KC_LALT, FUNC(1), FUNC(6),  FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP,    KC_RGHT}
+},
+[QWERTY_LAYER] = { /* Qwerty */
+  {KC_TAB,  KC_Q,   KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    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_LSFT, KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT},
+  {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[LOWER_LAYER] = { /* LOWER */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DELETE},
+  {KC_TRNS, FUNC(3), FUNC(4), RESET,   DEBUG,   KC_TRNS, KC_TRNS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+},
+[UPPER_LAYER] = { /* RAISE */
+  {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3),  S(KC_4),  S(KC_5), S(KC_6), S(KC_7),    S(KC_8),    S(KC_9),    S(KC_0),    KC_DELETE},
+  {KC_CALC,   FUNC(3), FUNC(4), RESET,    DEBUG,    KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL),  S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
+  {KC_TRNS,   KC_F1,   KC_F2,   KC_F3,    KC_F4,    KC_F5,   KC_F6,   KC_F7,      KC_F8,      KC_F9,      KC_F10,     KC_TRNS},
+  {KC_TRNS,   KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS,    KC_MNXT,    KC_VOLD,    KC_VOLU,    KC_MPLY}
+},
+[SPACEFN_LAYER] = { /* SpaceFN */
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP,   KC_END,   KC_TRNS, KC_TRNS},
+  {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_F11,  KC_F12,  KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS}
+},
+[TENKEY_LAYER] = { /* TENKEY */
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC,  KC_SPC,  KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+}
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC),  // Tap for backspace, hold for LOWER
+    [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT),  // Tap for enter, hold for RAISE
+
+    [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER),
+    [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER),
+    [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER),
+    
+    [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC),  // Tap for space, hold for SpaceFN
+};
+
+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);
+          backlight_step();
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        break;
+      } 
+    return MACRO_NONE;
+};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/numpad.c b/keyboard/planck/keymaps/numpad.c
new file mode 100644 (file)
index 0000000..7de4372
--- /dev/null
@@ -0,0 +1,26 @@
+#include "keymap_common.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_KP_ASTERISK, KC_KP_9, KC_KP_6,    KC_KP_3,  KC_KP_DOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_KP_SLASH,    KC_KP_8, KC_KP_5,  KC_KP_2, KC_KP_0},
+  {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC,  KC_SPC,  KC_NUMLOCK,   KC_KP_7, KC_KP_4, KC_KP_1,  KC_KP_0}
+                                                // Space is repeated to accommadate for both spacebar wiring positions
+}
+};
+
+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:
+        return MACRODOWN(T(CM_T), END);
+      break;
+    } 
+    return MACRO_NONE;
+};
\ No newline at end of file
diff --git a/keyboard/planck/keymaps/yang/WS2812-wiring.jpg b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg
new file mode 100644 (file)
index 0000000..2c65cd2
Binary files /dev/null and b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg differ
diff --git a/keyboard/planck/keymaps/yang/keymap.c b/keyboard/planck/keymaps/yang/keymap.c
new file mode 100644 (file)
index 0000000..541b1a5
--- /dev/null
@@ -0,0 +1,146 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "planck.h"
+#ifdef BACKLIGHT_ENABLE
+  #include "backlight.h"
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _LW 3
+#define _RS 4
+#define _RGB 5
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = { /* Qwerty */
+  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
+  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0),    F(0),    MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_CM] = { /* Colemak */
+  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
+  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
+  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0),    F(0),    MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_DV] = { /* Dvorak */
+  {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
+  {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
+  {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
+  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0),    F(0),    MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[_RS] = { /* RAISE */
+  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_LW] = { /* LOWER */
+  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
+  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
+  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[_RGB] = { /* RGBLIGHT */
+  {KC_TRNS,  KC_PGUP,  KC_UP,    KC_PGDN,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_DEL},
+  {KC_TRNS,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_TRNS,  KC_HOME,  KC_LEFT,  KC_DOWN,  KC_UP,    KC_RGHT,  KC_END,   KC_TRNS},
+  {KC_TRNS,  F(1),     F(2),     F(3),     F(4),     F(5),     F(6),     F(7),     F(8),     KC_TRNS,  KC_TRNS,  KC_TRNS},
+  {KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS}
+
+}
+};
+
+enum function_id {
+    RGBLED_TOGGLE,
+    RGBLED_STEP_MODE,
+    RGBLED_INCREASE_HUE,
+    RGBLED_DECREASE_HUE,
+    RGBLED_INCREASE_SAT,
+    RGBLED_DECREASE_SAT,
+    RGBLED_INCREASE_VAL,
+    RGBLED_DECREASE_VAL,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+  [0]  = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC),
+  [1]  = ACTION_FUNCTION(RGBLED_TOGGLE),
+  [2]  = ACTION_FUNCTION(RGBLED_STEP_MODE),
+  [3]  = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+  [4]  = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+  [5]  = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+  [6]  = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+  [7]  = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+  [8]  = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
+};
+
+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);
+            #ifdef BACKLIGHT_ENABLE
+              backlight_step();
+            #endif
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  switch (id) {
+    case RGBLED_TOGGLE:
+      //led operations
+      if (record->event.pressed) {
+        rgblight_toggle();
+      }
+
+      break;
+    case RGBLED_INCREASE_HUE:
+      if (record->event.pressed) {
+        rgblight_increase_hue();
+      }
+      break;
+    case RGBLED_DECREASE_HUE:
+      if (record->event.pressed) {
+        rgblight_decrease_hue();
+      }
+      break;
+    case RGBLED_INCREASE_SAT:
+      if (record->event.pressed) {
+        rgblight_increase_sat();
+      }
+      break;
+    case RGBLED_DECREASE_SAT:
+      if (record->event.pressed) {
+        rgblight_decrease_sat();
+      }
+      break;
+      case RGBLED_INCREASE_VAL:
+        if (record->event.pressed) {
+          rgblight_increase_val();
+        }
+        break;
+      case RGBLED_DECREASE_VAL:
+        if (record->event.pressed) {
+          rgblight_decrease_val();
+        }
+        break;
+      case RGBLED_STEP_MODE:
+        if (record->event.pressed) {
+          rgblight_step();
+        }
+        break;
+  }
+}
diff --git a/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg
new file mode 100644 (file)
index 0000000..c636b9a
Binary files /dev/null and b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg differ
index b62862af04b8475ed3b67e3f29bff0f970a42dbf..63ca54761c251f8b60d45ae05d00b261395ddad8 100644 (file)
@@ -15,6 +15,11 @@ void * matrix_init_kb(void) {
        backlight_init_ports();
        #endif
 
+       #ifdef RGBLIGHT_ENABLE
+               rgblight_init();
+       #endif
+
+
     // Turn status LED on
     DDRE |= (1<<6);
     PORTE |= (1<<6);
@@ -28,4 +33,4 @@ void * matrix_scan_kb(void) {
        if (matrix_scan_user) {
                (*matrix_scan_user)();
        }
-};
\ No newline at end of file
+};
index 4e59aef566277d756c46cacc33068a028f9863d8..00b01b54dfa9cfc20ca45a0c0763ac56b28422a6 100644 (file)
@@ -3,8 +3,16 @@
 
 #include "matrix.h"
 #include "keymap_common.h"
-#include "backlight.h"
+#ifdef BACKLIGHT_ENABLE
+       #include "backlight.h"
+#endif
+#ifdef RGBLIGHT_ENABLE
+  #include "rgblight.h"
+#endif
 #include <stddef.h>
+#ifdef MIDI_ENABLE
+       #include <keymap_midi.h>
+#endif
 
 #define PLANCK_MIT( \
        k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
@@ -17,7 +25,7 @@
        { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
        { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
        { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
-} 
+}
 
 #define PLANCK_GRID( \
        k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
@@ -30,9 +38,9 @@
        { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
        { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
        { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
-} 
+}
 
 void * matrix_init_user(void);
 void * matrix_scan_user(void);
 
-#endif
\ No newline at end of file
+#endif
index 86ecf692f4b4005b4ad4f23abc79b1e62b29e636..199ced4113879254791ce948d879e99dbcd33ef9 100755 (executable)
@@ -12,7 +12,7 @@ sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/template.c > keyboard/$KEYBOA
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboard/$KEYBOARD/config.h
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/README.md > keyboard/$KEYBOARD/README.md
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboard/$KEYBOARD/Makefile
-sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/keymap_default.c > keyboard/$KEYBOARD/keymaps/keymap_default.c
+sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default.c > keyboard/$KEYBOARD/keymaps/default.c
 cp quantum/template/bootloader.hex keyboard/$KEYBOARD/bootloader.hex
 
 echo "######################################################"
diff --git a/quantum/audio.c b/quantum/audio.c
new file mode 100644 (file)
index 0000000..3a3a1a4
--- /dev/null
@@ -0,0 +1,362 @@
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <avr/pgmspace.h>
+#include <avr/interrupt.h>
+#include <avr/io.h>
+
+#include "audio.h"
+#include "keymap_common.h"
+
+#define PI 3.14159265
+
+// #define PWM_AUDIO
+
+#ifdef PWM_AUDIO
+    #include "wave.h"
+    #define SAMPLE_DIVIDER 39
+    #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048)
+    // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap
+#endif
+
+void delay_us(int count) {
+  while(count--) {
+    _delay_us(1);
+  }
+}
+
+int voices = 0;
+int voice_place = 0;
+double frequency = 0;
+int volume = 0;
+long position = 0;
+
+double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+bool sliding = false;
+
+int max = 0xFF;
+float sum = 0;
+int value = 128;
+float place = 0;
+float places[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+
+uint16_t place_int = 0;
+bool repeat = true;
+uint8_t * sample;
+uint16_t sample_length = 0;
+
+
+bool notes = false;
+bool note = false;
+float note_frequency = 0;
+float note_length = 0;
+uint16_t note_position = 0;
+float (* notes_pointer)[][2];
+uint8_t notes_length;
+bool notes_repeat;
+uint8_t current_note = 0;
+
+void stop_all_notes() {
+    voices = 0;
+    #ifdef PWM_AUDIO
+        TIMSK3 &= ~_BV(OCIE3A);
+    #else
+        TIMSK3 &= ~_BV(OCIE3A);
+        TCCR3A &= ~_BV(COM3A1);
+    #endif
+    notes = false;
+    note = false;
+    frequency = 0;
+    volume = 0;
+
+    for (int i = 0; i < 8; i++) {
+        frequencies[i] = 0;
+        volumes[i] = 0;
+    }
+}
+
+void stop_note(double freq) {
+    #ifdef PWM_AUDIO
+        freq = freq / SAMPLE_RATE;
+    #endif
+    for (int i = 7; i >= 0; i--) {
+        if (frequencies[i] == freq) {
+            frequencies[i] = 0;
+            volumes[i] = 0;
+            for (int j = i; (j < 7); j++) {
+                frequencies[j] = frequencies[j+1];
+                frequencies[j+1] = 0;
+                volumes[j] = volumes[j+1];
+                volumes[j+1] = 0;
+            }
+        }
+    }
+    voices--;
+    if (voices < 0)
+        voices = 0;
+    if (voices == 0) {
+        #ifdef PWM_AUDIO
+            TIMSK3 &= ~_BV(OCIE3A);
+        #else
+            TIMSK3 &= ~_BV(OCIE3A);
+            TCCR3A &= ~_BV(COM3A1);
+        #endif
+        frequency = 0;
+        volume = 0;
+        note = false;
+    } else {
+        double freq = frequencies[voices - 1];
+        int vol = volumes[voices - 1];
+        double starting_f = frequency;
+        if (frequency < freq) {
+            sliding = true;
+            for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) {
+                frequency = f;
+            }
+            sliding = false;
+        } else if (frequency > freq) {
+            sliding = true;
+            for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) {
+                frequency = f;
+            }
+            sliding = false;
+        }
+        frequency = freq;
+        volume = vol;
+    }
+}
+
+void init_notes() {
+
+    #ifdef PWM_AUDIO
+        PLLFRQ = _BV(PDIV2);
+        PLLCSR = _BV(PLLE);
+        while(!(PLLCSR & _BV(PLOCK)));
+        PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */
+
+        /* Init a fast PWM on Timer4 */
+        TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */
+        TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */
+        OCR4A = 0;
+
+        /* Enable the OC4A output */
+        DDRC |= _BV(PORTC6);
+
+        TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs
+        
+        TCCR3A = 0x0; // Options not needed
+        TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC
+        OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback
+    #else
+        DDRC |= _BV(PORTC6);
+
+        TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs
+
+        TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
+        TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
+    #endif
+}
+
+
+ISR(TIMER3_COMPA_vect) {
+
+    if (note) {
+        #ifdef PWM_AUDIO
+            if (voices == 1) {
+                // SINE
+                OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 2;
+            
+                // SQUARE
+                // if (((int)place) >= 1024){
+                //     OCR4A = 0xFF >> 2;
+                // } else {
+                //     OCR4A = 0x00;
+                // }
+                
+                // SAWTOOTH
+                // OCR4A = (int)place / 4;
+
+                // TRIANGLE
+                // if (((int)place) >= 1024) {
+                //     OCR4A = (int)place / 2;
+                // } else {
+                //     OCR4A = 2048 - (int)place / 2;
+                // }
+
+                place += frequency;
+
+                if (place >= SINE_LENGTH)
+                    place -= SINE_LENGTH;
+
+            } else {
+                int sum = 0;
+                for (int i = 0; i < voices; i++) {
+                    // SINE
+                    sum += pgm_read_byte(&sinewave[(uint16_t)places[i]]) >> 2;
+
+                    // SQUARE
+                    // if (((int)places[i]) >= 1024){
+                    //     sum += 0xFF >> 2;
+                    // } else {
+                    //     sum += 0x00;
+                    // }
+
+                    places[i] += frequencies[i];
+
+                    if (places[i] >= SINE_LENGTH)
+                        places[i] -= SINE_LENGTH;
+                }
+                OCR4A = sum;
+            }
+        #else
+            if (frequency > 0) {
+                // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period
+                // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period
+                if (place > 10) {
+                    voice_place = (voice_place + 1) % voices;
+                    place = 0.0;
+                }
+                ICR3 = (int)(((double)F_CPU) / frequencies[voice_place]); // Set max to the period
+                OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1; // Set compare to half the period
+                place++;
+            }
+        #endif
+    }
+
+    // SAMPLE
+    // OCR4A = pgm_read_byte(&sample[(uint16_t)place_int]);
+
+    // place_int++;
+
+    // if (place_int >= sample_length)
+    //     if (repeat)
+    //         place_int -= sample_length;
+    //     else
+    //         TIMSK3 &= ~_BV(OCIE3A);
+
+
+    if (notes) {
+        #ifdef PWM_AUDIO
+            OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 0;
+
+            place += note_frequency;
+            if (place >= SINE_LENGTH)
+                place -= SINE_LENGTH;
+        #else
+            if (note_frequency > 0) {
+                ICR3 = (int)(((double)F_CPU) / note_frequency); // Set max to the period
+                OCR3A = (int)(((double)F_CPU) / note_frequency) >> 1; // Set compare to half the period
+            }
+        #endif
+
+
+        note_position++;
+        if (note_position >= note_length) {
+            current_note++;
+            if (current_note >= notes_length) {
+                if (notes_repeat) {
+                    current_note = 0;
+                } else {
+                    #ifdef PWM_AUDIO
+                        TIMSK3 &= ~_BV(OCIE3A);
+                    #else
+                        TIMSK3 &= ~_BV(OCIE3A);
+                        TCCR3A &= ~_BV(COM3A1);
+                    #endif
+                    notes = false;
+                    return;
+                }
+            }
+            #ifdef PWM_AUDIO
+                note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE;
+                note_length = (*notes_pointer)[current_note][1];
+            #else
+                note_frequency = (*notes_pointer)[current_note][0];
+                note_length = (*notes_pointer)[current_note][1] / 4;
+            #endif
+            note_position = 0;
+        }
+
+    }
+
+}
+
+void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) {
+    if (note)
+        stop_all_notes();
+    notes = true;
+
+    notes_pointer = np;
+    notes_length = n_length;
+    notes_repeat = n_repeat;
+
+    place = 0;
+    current_note = 0;
+    #ifdef PWM_AUDIO
+        note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE;
+        note_length = (*notes_pointer)[current_note][1];
+    #else
+        note_frequency = (*notes_pointer)[current_note][0];
+        note_length = (*notes_pointer)[current_note][1] / 4;
+    #endif
+    note_position = 0;
+
+
+    #ifdef PWM_AUDIO
+        TIMSK3 |= _BV(OCIE3A);
+    #else
+        TIMSK3 |= _BV(OCIE3A);
+        TCCR3A |= _BV(COM3A1);
+    #endif
+}
+
+void play_sample(uint8_t * s, uint16_t l, bool r) {
+    stop_all_notes();
+    place_int = 0;
+    sample = s;
+    sample_length = l;
+    repeat = r;
+
+    #ifdef PWM_AUDIO
+        TIMSK3 |= _BV(OCIE3A);
+    #else
+    #endif
+}
+
+void play_note(double freq, int vol) {
+    if (notes)
+        stop_all_notes();
+    note = true;
+    #ifdef PWM_AUDIO
+        freq = freq / SAMPLE_RATE;
+    #endif
+    if (freq > 0) {
+        if (frequency != 0) {
+            double starting_f = frequency;
+            if (frequency < freq) {
+                for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) {   
+                    frequency = f;
+                }
+            } else if (frequency > freq) {
+                for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) {
+                    frequency = f;
+                }
+            }
+        }
+        frequency = freq;
+        volume = vol;
+
+        frequencies[voices] = frequency;
+        volumes[voices] = volume;
+        voices++;
+    }
+
+    #ifdef PWM_AUDIO
+        TIMSK3 |= _BV(OCIE3A);
+    #else
+        TIMSK3 |= _BV(OCIE3A);
+        TCCR3A |= _BV(COM3A1);
+    #endif
+
+}
\ No newline at end of file
diff --git a/quantum/audio.h b/quantum/audio.h
new file mode 100644 (file)
index 0000000..99203ce
--- /dev/null
@@ -0,0 +1,11 @@
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/io.h>
+#include <util/delay.h>
+
+void play_sample(uint8_t * s, uint16_t l, bool r);
+void play_note(double freq, int vol);
+void stop_note(double freq);
+void stop_all_notes();
+void init_notes();
+void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat);
\ No newline at end of file
diff --git a/quantum/beeps.c b/quantum/beeps.c
deleted file mode 100644 (file)
index 8d1f81f..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-#include "beeps.h"
-#include <math.h>
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-#include <avr/io.h>
-
-#define PI 3.14159265
-
-void delay_us(int count) {
-  while(count--) {
-    _delay_us(1);
-  }
-}
-
-int voices = 0;
-double frequency = 0;
-int volume = 0;
-int position = 0;
-
-double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-bool sliding = false;
-#define RANGE 1000
-volatile int i=0; //elements of the wave
-
-
-void beeps() {
-    play_notes();
-}
-
-void send_freq(double freq, int vol) {
-    int duty = (((double)F_CPU) / freq);
-    ICR3 = duty; // Set max to the period
-    OCR3A = duty >> (0x10 - vol); // Set compare to half the period
-}
-
-void stop_all_notes() {
-    voices = 0;
-    TCCR3A = 0;
-    TCCR3B = 0;
-    frequency = 0;
-    volume = 0;
-
-    for (int i = 0; i < 8; i++) {
-        frequencies[i] = 0;
-        volumes[i] = 0;
-    }
-}
-
-void stop_note(double freq) {
-    for (int i = 7; i >= 0; i--) {
-        if (frequencies[i] == freq) {
-            frequencies[i] = 0;
-            volumes[i] = 0;
-            for (int j = i; (j < 7); j++) {
-                frequencies[j] = frequencies[j+1];
-                frequencies[j+1] = 0;
-                volumes[j] = volumes[j+1];
-                volumes[j+1] = 0;
-            }
-        }
-    }
-    voices--;
-    if (voices < 0)
-        voices = 0;
-    if (voices == 0) {
-        TCCR3A = 0;
-        TCCR3B = 0;
-        frequency = 0;
-        volume = 0;
-    } else {
-        double freq = frequencies[voices - 1];
-        int vol = volumes[voices - 1];
-        if (frequency < freq) {
-            sliding = true;
-            for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) {
-                send_freq(f, vol);
-            }
-            sliding = false;
-        } else if (frequency > freq) {
-            sliding = true;
-            for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) {
-                send_freq(f, vol);
-            }
-            sliding = false;
-        }
-        send_freq(freq, vol);
-        frequency = freq;
-        volume = vol;
-    }
-}
-
-void init_notes() {
-    // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10);
-    // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
-
-    // DDRC |= (1<<6); 
-
-    // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
-    // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30);
-
-    // ICR3 = 0xFFFF; 
-    // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element
-
-
-    // cli();
-
-    // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz,
-    //    this gives a timer interrupt at 15625Hz. */
-    // TIMSK3 = (1 << OCIE3A);
-
-    // /* clear/reset timer on match */
-    // // TCCR3A = 1<<WGM31 | 0<<WGM30;  CTC mode, reset on match 
-    // // TCCR3B = 0<<CS32 | 1<<CS31 | 0<<CS30; /* clk, /8 prescaler */
-
-    // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
-    // TCCR3B = (0 << WGM33) | (0 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30);
-
-
-    // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
-    // TCCR1B = (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
-    // // SPCR = 0x50;
-    // // SPSR = 0x01;
-    // DDRC |= (1<<6);
-    // // ICR3 = 0xFFFF; 
-    // // OCR3A=80;
-    // PORTC |= (1<<6);
-
-    // sei();
-}
-
-// #define highByte(c) ((c >> 8) & 0x00FF)
-// #define lowByte(c) (c & 0x00FF)
-
-ISR(TIMER3_COMPA_vect) {
-
-    if (ICR3 > 0 && !sliding) {
-        switch (position) {
-            case 0: {
-                int duty = (((double)F_CPU) / (frequency));
-                ICR3 = duty; // Set max to the period
-                OCR3A = duty >> 1; // Set compare to half the period
-                break;
-            }
-            case 1: {
-                int duty = (((double)F_CPU) / (frequency*2));
-                ICR3 = duty; // Set max to the period
-                OCR3A = duty >> 1; // Set compare to half the period
-                break;
-            }
-            case 2: {
-                int duty = (((double)F_CPU) / (frequency*3));
-                ICR3 = duty; // Set max to the period
-                OCR3A = duty >> 1; // Set compare to half the period
-                break;
-            }
-        }
-        position = (position + 1) % 3;
-    }
-//     /* OCR2A has been cleared, per TCCR2A above */
-//     // OCR3A = 127;
-
-//     // pos1 += incr1;
-//     // pos2 += incr2;
-//     // pos3 += incr3;
-
-//     // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)];
-
-//     // OCR3A = sample;
-
-
-//     OCR3A=pgm_read_byte(&sinewave[pos1]);
-//     pos1++;
-//     // PORTC &= ~(1<<6);
-
-//     /* buffered, 1x gain, active mode */
-//     // SPDR = highByte(sample) | 0x70;
-//     // while (!(SPSR & (1<<SPIF)));
-
-//     // SPDR = lowByte(sample);
-//     // while (!(SPSR & (1<<SPIF)));
-
-//     // PORTC |= (1<<6);
-}
-
-void play_note(double freq, int vol) {
-
-    if (freq > 0) {
-        DDRC |= (1<<6); 
-
-        TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
-        TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
-
-        if (frequency != 0) {
-            if (frequency < freq) {
-                for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) {
-                    send_freq(f, vol);
-                }
-            } else if (frequency > freq) {
-                for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) {
-                    send_freq(f, vol);
-                }
-            }
-        }
-        send_freq(freq, vol);
-        frequency = freq;
-        volume = vol;
-
-        frequencies[voices] = frequency;
-        volumes[voices] = volume;
-        voices++;
-    }
-    // ICR3 = 0xFFFF;
-    // for (int i = 0; i < 10000; i++) {
-    //     OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF;
-    //     // _delay_us(50);
-    // }
-
-    // TCCR3A = 0;
-    // TCCR3B = 0;
-}
-
-// void note(int x, float length) {
-//     DDRC |= (1<<6);
-//     int t = (int)(440*pow(2,-x/12.0)); // starting note
-//     for (int y = 0; y < length*1000/t; y++) { // note length
-//         PORTC |= (1<<6);
-//         delay_us(t);
-//         PORTC &= ~(1<<6);
-//         delay_us(t);
-//     }
-//     PORTC &= ~(1<<6);
-// }
-
-// void true_note(float x, float y, float length) {
-//     for (uint32_t i = 0; i < length * 50; i++) {
-//             uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); 
-//             for (int u = 0; u < 8; u++) {
-//                     if (v & (1 << u) && !(PORTC&(1<<6)))
-//                     PORTC |= (1<<6);
-//                 else if (PORTC&(1<<6))
-//                     PORTC &= ~(1<<6);
-//             }
-//     }
-//     PORTC &= ~(1<<6);
-// }
\ No newline at end of file
diff --git a/quantum/beeps.h b/quantum/beeps.h
deleted file mode 100644 (file)
index 378983c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include <util/delay.h>
-
-void note(int x, float length);
-void beeps();
-void true_note(float x, float y, float length);
-void play_note(double freq, int vol);
-void stop_note(double freq);
-void stop_all_notes();
-void init_notes();
\ No newline at end of file
index 6cc7adf51fdeb768738457bbc08918290a4eb9b4..7068ca4f3152e78d8d6af5fd4d9b51b7c790ee38 100644 (file)
@@ -26,6 +26,20 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "backlight.h"
 #include "keymap_midi.h"
 
+#include <stdio.h>
+#include <inttypes.h>
+#ifdef AUDIO_ENABLE
+    #include "audio.h"
+
+    float goodbye[][2] = {
+        {440.0*pow(2.0,(67)/12.0), 400},
+        {0, 50},
+        {440.0*pow(2.0,(60)/12.0), 400},
+        {0, 50},
+        {440.0*pow(2.0,(55)/12.0), 600},
+    };
+#endif
+
 static action_t keycode_to_action(uint16_t keycode);
 
 /* converts key to action */
@@ -50,7 +64,7 @@ action_t action_for_key(uint8_t layer, keypos_t key)
        action.code = ACTION_MACRO(keycode & 0xFF);
        return action;
 #ifdef BACKLIGHT_ENABLE
-       } else if (keycode >= BL_0 & keycode <= BL_15) {
+       } else if (keycode >= BL_0 && keycode <= BL_15) {
         action_t action;
         action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F);
         return action;
@@ -73,7 +87,13 @@ action_t action_for_key(uint8_t layer, keypos_t key)
 #endif
     } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here
         clear_keyboard();
+        #ifdef AUDIO_ENABLE
+            play_notes(&goodbye, 5, false);
+        #endif
         _delay_ms(250);
+        #ifdef ATREUS_ASTAR
+            *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific
+        #endif
         bootloader_jump();
         return;
     } else if (keycode == DEBUG) { // DEBUG is 0x5001
index 87df01ab586e0ebc4a225d9a4d77a15af80c2ae7..8a418c6159e7cdcf782ef068457339d9ad201b54 100644 (file)
@@ -24,7 +24,7 @@
 #define CM_E    KC_K
 #define CM_I    KC_L
 #define CM_O    KC_SCLN
-#define CM_SCLN LSFT(CM_SCLN)
+#define CM_COLN LSFT(CM_SCLN)
 
 #define CM_Z    KC_Z
 #define CM_X    KC_X
 
 // Make it easy to support these in macros
 // TODO: change macro implementation so these aren't needed
-#define KC_CM_Q    CM_Q    
-#define KC_CM_W    CM_W    
-#define KC_CM_F    CM_F    
-#define KC_CM_P    CM_P    
-#define KC_CM_G    CM_G    
-#define KC_CM_J    CM_J    
-#define KC_CM_L    CM_L    
-#define KC_CM_U    CM_U    
-#define KC_CM_Y    CM_Y    
-#define KC_CM_SCLN CM_SCLN 
+#define KC_CM_Q    CM_Q
+#define KC_CM_W    CM_W
+#define KC_CM_F    CM_F
+#define KC_CM_P    CM_P
+#define KC_CM_G    CM_G
+#define KC_CM_J    CM_J
+#define KC_CM_L    CM_L
+#define KC_CM_U    CM_U
+#define KC_CM_Y    CM_Y
+#define KC_CM_SCLN CM_SCLN
 
-#define KC_CM_A    CM_A    
-#define KC_CM_R    CM_R    
-#define KC_CM_S    CM_S    
-#define KC_CM_T    CM_T    
-#define KC_CM_D    CM_D    
-#define KC_CM_H    CM_H    
-#define KC_CM_N    CM_N    
-#define KC_CM_E    CM_E    
-#define KC_CM_I    CM_I    
-#define KC_CM_O    CM_O    
+#define KC_CM_A    CM_A
+#define KC_CM_R    CM_R
+#define KC_CM_S    CM_S
+#define KC_CM_T    CM_T
+#define KC_CM_D    CM_D
+#define KC_CM_H    CM_H
+#define KC_CM_N    CM_N
+#define KC_CM_E    CM_E
+#define KC_CM_I    CM_I
+#define KC_CM_O    CM_O
 
-#define KC_CM_Z    CM_Z    
-#define KC_CM_X    CM_X    
-#define KC_CM_C    CM_C    
-#define KC_CM_V    CM_V    
-#define KC_CM_B    CM_B    
-#define KC_CM_K    CM_K    
-#define KC_CM_M    CM_M    
-#define KC_CM_COMM CM_COMM 
-#define KC_CM_DOT  CM_DOT  
-#define KC_CM_SLSH CM_SLSH 
+#define KC_CM_Z    CM_Z
+#define KC_CM_X    CM_X
+#define KC_CM_C    CM_C
+#define KC_CM_V    CM_V
+#define KC_CM_B    CM_B
+#define KC_CM_K    CM_K
+#define KC_CM_M    CM_M
+#define KC_CM_COMM CM_COMM
+#define KC_CM_DOT  CM_DOT
+#define KC_CM_SLSH CM_SLSH
 
 #endif
diff --git a/quantum/keymap_extras/keymap_fr_ch.h b/quantum/keymap_extras/keymap_fr_ch.h
new file mode 100644 (file)
index 0000000..d3884c1
--- /dev/null
@@ -0,0 +1,98 @@
+#ifndef KEYMAP_FR_CH
+#define KEYMAP_FR_CH
+
+#include "keymap_common.h"
+
+// Alt gr
+#define ALGR(kc) kc | 0x1400
+#define FR_CH_ALGR KC_RALT
+
+// normal characters
+#define FR_CH_Z KC_Y
+#define FR_CH_Y KC_Z
+
+#define FR_CH_A KC_A
+#define FR_CH_B KC_B
+#define FR_CH_C KC_C
+#define FR_CH_D KC_D
+#define FR_CH_E KC_E
+#define FR_CH_F KC_F
+#define FR_CH_G KC_G
+#define FR_CH_H KC_H
+#define FR_CH_I KC_I
+#define FR_CH_J KC_J
+#define FR_CH_K KC_K
+#define FR_CH_L KC_L
+#define FR_CH_M KC_M
+#define FR_CH_N KC_N
+#define FR_CH_O KC_O
+#define FR_CH_P KC_P
+#define FR_CH_Q KC_Q
+#define FR_CH_R KC_R
+#define FR_CH_S KC_S
+#define FR_CH_T KC_T
+#define FR_CH_U KC_U
+#define FR_CH_V KC_V
+#define FR_CH_W KC_W
+#define FR_CH_X KC_X
+
+#define FR_CH_0 KC_0
+#define FR_CH_1 KC_1
+#define FR_CH_2 KC_2
+#define FR_CH_3 KC_3
+#define FR_CH_4 KC_4
+#define FR_CH_5 KC_5
+#define FR_CH_6 KC_6
+#define FR_CH_7 KC_7
+#define FR_CH_8 KC_8
+#define FR_CH_9 KC_9
+
+#define FR_CH_DOT KC_DOT
+#define FR_CH_COMM KC_COMM
+
+#define FR_CH_QUOT KC_MINS
+#define FR_CH_AE KC_QUOT
+#define FR_CH_UE KC_LBRC
+#define FR_CH_OE KC_SCLN
+
+#define FR_CH_CIRC KC_EQL // accent circumflex ^ and grave ` and ~
+#define FR_CH_LESS KC_NUBS // < and > and backslash
+#define FR_CH_MINS KC_SLSH // - and _
+#define FR_CH_DLR KC_BSLS // $, £ and }
+#define FR_CH_PARA KC_GRV // § and ring °
+#define FR_CH_DIAE KC_RBRC // accent ¨
+
+// shifted characters
+#define FR_CH_RING LSFT(KC_GRV) // °
+#define FR_CH_EXLM LSFT(KC_RBRC) // !
+#define FR_CH_PLUS LSFT(KC_1) // +
+#define FR_CH_DQOT LSFT(KC_2) // "
+#define FR_CH_ASTR LSFT(KC_3) // *
+#define FR_CH_PERC LSFT(KC_5) // %
+#define FR_CH_AMPR LSFT(KC_6) // &
+#define FR_CH_SLSH LSFT(KC_7) // /
+#define FR_CH_LPRN LSFT(KC_8) // (
+#define FR_CH_RPRN LSFT(KC_9) // )
+#define FR_CH_EQL  LSFT(KC_0) // =
+#define FR_CH_QST  LSFT(FR_CH_QUOT) // ?
+#define FR_CH_MORE LSFT(FR_CH_LESS) // >
+#define FR_CH_COLN LSFT(KC_DOT) // :
+#define FR_CH_SCLN LSFT(KC_COMM) // ;
+#define FR_CH_UNDS LSFT(FR_CH_MINS) // _
+#define FR_CH_CCED LSFT(KC_4) // ç
+#define FR_CH_GRV  LSFT(FR_CH_CIRC) // accent grave `
+
+// Alt Gr-ed characters
+#define FR_CH_LCBR ALGR(KC_QUOT) // {
+#define FR_CH_LBRC ALGR(KC_LBRC) // [
+#define FR_CH_RBRC ALGR(KC_9) // ]
+#define FR_CH_RCBR ALGR(KC_0) // }
+#define FR_CH_BSLS ALGR(FR_CH_LESS) // backslash
+#define FR_CH_AT   ALGR(KC_2) // @
+#define FR_CH_EURO ALGR(KC_E) // €
+#define FR_CH_TILD ALGR(FR_CH_CIRC) // ~
+#define FR_CH_PIPE ALGR(KC_1) // |
+#define FR_CH_HASH ALGR(KC_3) // #
+#define FR_CH_ACUT ALGR(FR_CH_QUOT) // accent acute ´
+
+#endif
index 02a704216a984bd41a5e834166e90ea67f4daedf..7ef41fb7917baca50415f65568b0656725e82d8b 100644 (file)
 #define NO_LBRC ALGR(KC_8)
 #define NO_RBRC ALGR(KC_9)
 #define NO_RCBR        ALGR(KC_0)
-#define NO_PIPE ALGR(NO_ACUT)
+#define NO_PIPE ALGR(KC_NUBS)
 
 #define NO_EURO ALGR(KC_E)
 #define NO_TILD ALGR(NO_QUOT)
 
-#define NO_BSLS ALGR(NO_LESS)
+#define NO_BSLS ALGR(KC_MINS)
 #define NO_MU  ALGR(KC_M)
 
-#endif
\ No newline at end of file
+#endif
diff --git a/quantum/keymap_extras/keymap_norwegian.c b/quantum/keymap_extras/keymap_norwegian.c
new file mode 100644 (file)
index 0000000..018bfea
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef KEYMAP_NORWEGIAN_H
+#define KEYMAP_NORWEGIAN_H
+
+#include "keymap_nordic.h"
+
+// There are slight differrences in the keyboards in the nordic contries
+
+// Norwegian redifinitions from the nordic keyset
+#undef NO_ACUT
+#define NO_ACUT        ALGR(NO_BSLS)  // ´
+#undef NO_AE
+#define NO_AE  KC_QUOT  // æ
+#undef NO_BSLS
+#define NO_BSLS KC_EQL  // '\'
+#undef NO_CIRC
+#define NO_CIRC LSFT(C_RBRC)  // ^
+#undef NO_GRV
+#define NO_GRV LSFT(NO_BSLS)  //
+#undef NO_OSLH
+#define NO_OSLH        KC_SCLN  // ø
+#undef NO_PIPE
+#define NO_PIPE KC_GRV  // |
+
+// Additional norwegian keys not defined in the nordic keyset
+#define NO_AA  KC_LBRC  // å
+#define NO_ASTR LSFT(KC_BSLS)  // *
+
+// Norwegian unique MAC characters
+#define NO_ACUT_MAC KC_EQL  // =
+#define NO_APOS_MAC KC_NUBS  // '
+#define NO_AT_MAC   KC_BSLS  // @
+#define NO_BSLS_MAC ALGR(LSFT(KC_7)) // '\'
+#define NO_DLR_MAC  LSFT(KC_4) // $
+#define NO_GRV_MAC ALGR(NO_BSLS) // `
+#define NO_GRTR_MAC LSFT(KC_GRV)  // >
+#define NO_LCBR_MAC ALGR(LSFT(KC_8))  // }
+#define NO_LESS_MAC KC_GRV  // >
+#define NO_PIPE_MAC ALGR(KC_7)  // |
+#define NO_RCBR_MAC ALGR(LSFT(KC_9))  // }
+
+#endif
index b7eba3ab7651b9b907ad0ea6552c821fd9022267..e37ea310398eb1929e263b6b4637d1ea46237d15 100644 (file)
@@ -17,7 +17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "keymap_common.h"
 #include "keymap_midi.h"
-#include <lufa.h>
 
 uint8_t starting_note = 0x0C;
 int offset = 7;
@@ -35,7 +34,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
     if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) {
         if (record->event.pressed) {
             starting_note++;
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             midi_send_cc(&midi_device, 0, 0x7B, 0);
             midi_send_cc(&midi_device, 1, 0x7B, 0);
             midi_send_cc(&midi_device, 2, 0x7B, 0);
@@ -43,7 +42,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
             midi_send_cc(&midi_device, 4, 0x7B, 0);
             return;
         } else {
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
+            stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
             stop_all_notes();
             return;
         }
@@ -51,7 +50,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
     if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) {
         if (record->event.pressed) {
             starting_note--;
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             midi_send_cc(&midi_device, 0, 0x7B, 0);
             midi_send_cc(&midi_device, 1, 0x7B, 0);
             midi_send_cc(&midi_device, 2, 0x7B, 0);
@@ -59,7 +58,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
             midi_send_cc(&midi_device, 4, 0x7B, 0);
             return;
         } else {
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
+            stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
             stop_all_notes();
             return;
         }
@@ -74,9 +73,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
         midi_send_cc(&midi_device, 4, 0x7B, 0);
         stop_all_notes();
         for (int i = 0; i <= 7; i++) {
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             _delay_us(80000);
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
+            stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
             _delay_us(8000);
         }
         return;
@@ -90,9 +89,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
         midi_send_cc(&midi_device, 4, 0x7B, 0);
         stop_all_notes();
         for (int i = 0; i <= 7; i++) {
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             _delay_us(80000);
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
+            stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
             _delay_us(8000);
         }
         return;
@@ -101,10 +100,10 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
     if (record->event.pressed) {
        // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
         midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
-        play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
+        play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
     } else {
         // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
         midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
-        stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
+        stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
     }
 }
\ No newline at end of file
index c5917f884e70c4afc5fbc5c91aaf9b3bbdbf4a4e..a89420ce2a26f89d510e1555df32fe5b0318ccce 100644 (file)
@@ -18,6 +18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef KEYMAP_MIDI_H
 #define KEYMAP_MIDI_H
 
+#include <lufa.h>
+
 #define MIDI 0x6000
 #define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000
 
index a9357edec7bc4122dcc78afe505de12f351cbe16..a44965e6111baab39aed82142287c31e4ef9ee51 100644 (file)
@@ -30,6 +30,8 @@ uint16_t hextokeycode(int hex) {
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
 {
 
+    // For more info on how this works per OS, see here: https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input
+
     if (record->event.pressed) {
         uint16_t unicode = (opt << 8) | id;
         register_code(KC_LALT);
diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c
new file mode 100755 (executable)
index 0000000..f200430
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+* light weight WS2812 lib V2.0b
+*
+* Controls WS2811/WS2812/WS2812B RGB-LEDs
+* Author: Tim (cpldcpu@gmail.com)
+*
+* Jan 18th, 2014  v2.0b Initial Version
+* Nov 29th, 2015  v2.3  Added SK6812RGBW support
+*
+* License: GNU GPL v2 (see License.txt)
+*/
+
+#include "light_ws2812.h"
+#include <avr/interrupt.h>
+#include <avr/io.h>
+#include <util/delay.h>
+#include "debug.h"
+
+// Setleds for standard RGB
+void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds)
+{
+   ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin));
+}
+
+void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask)
+{
+  ws2812_DDRREG |= pinmask; // Enable DDR
+  ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask);
+  _delay_us(50);
+}
+
+// Setleds for SK6812RGBW
+void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds)
+{
+  ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR
+  ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(ws2812_pin));
+  _delay_us(80);
+}
+
+void ws2812_sendarray(uint8_t *data,uint16_t datlen)
+{
+  ws2812_sendarray_mask(data,datlen,_BV(ws2812_pin));
+}
+
+/*
+  This routine writes an array of bytes with RGB values to the Dataout pin
+  using the fast 800kHz clockless WS2811/2812 protocol.
+*/
+
+// Timing in ns
+#define w_zeropulse   350
+#define w_onepulse    900
+#define w_totalperiod 1250
+
+// Fixed cycles used by the inner loop
+#define w_fixedlow    2
+#define w_fixedhigh   4
+#define w_fixedtotal  8
+
+// Insert NOPs to match the timing, if possible
+#define w_zerocycles    (((F_CPU/1000)*w_zeropulse          )/1000000)
+#define w_onecycles     (((F_CPU/1000)*w_onepulse    +500000)/1000000)
+#define w_totalcycles   (((F_CPU/1000)*w_totalperiod +500000)/1000000)
+
+// w1 - nops between rising edge and falling edge - low
+#define w1 (w_zerocycles-w_fixedlow)
+// w2   nops between fe low and fe high
+#define w2 (w_onecycles-w_fixedhigh-w1)
+// w3   nops to complete loop
+#define w3 (w_totalcycles-w_fixedtotal-w1-w2)
+
+#if w1>0
+  #define w1_nops w1
+#else
+  #define w1_nops  0
+#endif
+
+// The only critical timing parameter is the minimum pulse length of the "0"
+// Warn or throw error if this timing can not be met with current F_CPU settings.
+#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000)
+#if w_lowtime>550
+   #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?"
+#elif w_lowtime>450
+   #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)."
+   #warning "Please consider a higher clockspeed, if possible"
+#endif
+
+#if w2>0
+#define w2_nops w2
+#else
+#define w2_nops  0
+#endif
+
+#if w3>0
+#define w3_nops w3
+#else
+#define w3_nops  0
+#endif
+
+#define w_nop1  "nop      \n\t"
+#define w_nop2  "rjmp .+0 \n\t"
+#define w_nop4  w_nop2 w_nop2
+#define w_nop8  w_nop4 w_nop4
+#define w_nop16 w_nop8 w_nop8
+
+void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi)
+{
+  uint8_t curbyte,ctr,masklo;
+  uint8_t sreg_prev;
+
+  masklo       =~maskhi&ws2812_PORTREG;
+  maskhi |=        ws2812_PORTREG;
+  sreg_prev=SREG;
+  cli();
+
+  while (datlen--) {
+    curbyte=*data++;
+
+    asm volatile(
+    "       ldi   %0,8  \n\t"
+    "loop%=:            \n\t"
+    "       out   %2,%3 \n\t"    //  '1' [01] '0' [01] - re
+#if (w1_nops&1)
+w_nop1
+#endif
+#if (w1_nops&2)
+w_nop2
+#endif
+#if (w1_nops&4)
+w_nop4
+#endif
+#if (w1_nops&8)
+w_nop8
+#endif
+#if (w1_nops&16)
+w_nop16
+#endif
+    "       sbrs  %1,7  \n\t"    //  '1' [03] '0' [02]
+    "       out   %2,%4 \n\t"    //  '1' [--] '0' [03] - fe-low
+    "       lsl   %1    \n\t"    //  '1' [04] '0' [04]
+#if (w2_nops&1)
+  w_nop1
+#endif
+#if (w2_nops&2)
+  w_nop2
+#endif
+#if (w2_nops&4)
+  w_nop4
+#endif
+#if (w2_nops&8)
+  w_nop8
+#endif
+#if (w2_nops&16)
+  w_nop16
+#endif
+    "       out   %2,%4 \n\t"    //  '1' [+1] '0' [+1] - fe-high
+#if (w3_nops&1)
+w_nop1
+#endif
+#if (w3_nops&2)
+w_nop2
+#endif
+#if (w3_nops&4)
+w_nop4
+#endif
+#if (w3_nops&8)
+w_nop8
+#endif
+#if (w3_nops&16)
+w_nop16
+#endif
+
+    "       dec   %0    \n\t"    //  '1' [+2] '0' [+2]
+    "       brne  loop%=\n\t"    //  '1' [+3] '0' [+4]
+    :  "=&d" (ctr)
+    :  "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo)
+    );
+  }
+
+  SREG=sreg_prev;
+}
diff --git a/quantum/light_ws2812.h b/quantum/light_ws2812.h
new file mode 100755 (executable)
index 0000000..54eef22
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * light weight WS2812 lib include
+ *
+ * Version 2.3  - Nev 29th 2015
+ * Author: Tim (cpldcpu@gmail.com)
+ *
+ * Please do not change this file! All configuration is handled in "ws2812_config.h"
+ *
+ * License: GNU GPL v2 (see License.txt)
+ +
+ */
+
+#ifndef LIGHT_WS2812_H_
+#define LIGHT_WS2812_H_
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+//#include "ws2812_config.h"
+
+/*
+ *  Structure of the LED array
+ *
+ * cRGB:     RGB  for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106
+ * cRGBW:    RGBW for SK6812RGBW
+ */
+
+struct cRGB  { uint8_t g; uint8_t r; uint8_t b; };
+struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;};
+
+
+
+/* User Interface
+ *
+ * Input:
+ *         ledarray:           An array of GRB data describing the LED colors
+ *         number_of_leds:     The number of LEDs to write
+ *         pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0)
+ *
+ * The functions will perform the following actions:
+ *         - Set the data-out pin as output
+ *         - Send out the LED data
+ *         - Wait 50�s to reset the LEDs
+ */
+
+void ws2812_setleds     (struct cRGB  *ledarray, uint16_t number_of_leds);
+void ws2812_setleds_pin (struct cRGB  *ledarray, uint16_t number_of_leds,uint8_t pinmask);
+void ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t number_of_leds);
+
+/*
+ * Old interface / Internal functions
+ *
+ * The functions take a byte-array and send to the data output as WS2812 bitstream.
+ * The length is the number of bytes to send - three per LED.
+ */
+
+void ws2812_sendarray     (uint8_t *array,uint16_t length);
+void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask);
+
+
+/*
+ * Internal defines
+ */
+#ifndef CONCAT
+#define CONCAT(a, b)            a ## b
+#endif
+#ifndef CONCAT_EXP
+#define CONCAT_EXP(a, b)   CONCAT(a, b)
+#endif
+
+// #define ws2812_PORTREG  CONCAT_EXP(PORT,ws2812_port)
+// #define ws2812_DDRREG   CONCAT_EXP(DDR,ws2812_port)
+
+#endif /* LIGHT_WS2812_H_ */
index c82e478725dede21331d14653fa3acaf3d4b22ff..de93af7e8cbe0af3863052bca27f34cb064bf939 100644 (file)
@@ -2,21 +2,45 @@ QUANTUM_DIR = quantum
 
 # # project specific files
 SRC += $(QUANTUM_DIR)/keymap_common.c \
-       $(QUANTUM_DIR)/led.c 
+       $(QUANTUM_DIR)/led.c
+
+# ifdef KEYMAP_FILE
+# ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)'))
+# MIDI_ENABLE=yes
+# $(info  * Overriding MIDI_ENABLE setting - $(KEYMAP_FILE) requires it)
+# endif
+# ifneq (,$(shell grep USING_UNICODE '$(KEYMAP_FILE)'))
+# UNICODE_ENABLE=yes
+# $(info  * Overriding UNICODE_ENABLE setting - $(KEYMAP_FILE) requires it)
+# endif
+# ifneq (,$(shell grep USING_BACKLIGHT '$(KEYMAP_FILE)'))
+# BACKLIGHT_ENABLE=yes
+# $(info  * Overriding BACKLIGHT_ENABLE setting - $(KEYMAP_FILE) requires it)
+# endif
+# endif
 
 ifndef CUSTOM_MATRIX
        SRC += $(QUANTUM_DIR)/matrix.c
 endif
 
 ifdef MIDI_ENABLE
-       SRC += $(QUANTUM_DIR)/keymap_midi.c \
-                  $(QUANTUM_DIR)/beeps.c
+       SRC += $(QUANTUM_DIR)/keymap_midi.c
+endif
+
+ifdef AUDIO_ENABLE
+       SRC += $(QUANTUM_DIR)/audio.c
 endif
 
 ifdef UNICODE_ENABLE
        SRC += $(QUANTUM_DIR)/keymap_unicode.c
 endif
 
+ifdef RGBLIGHT_ENABLE
+       SRC += $(QUANTUM_DIR)/light_ws2812.c
+       SRC += $(QUANTUM_DIR)/rgblight.c
+       OPT_DEFS += -DRGBLIGHT_ENABLE
+endif
+
 # Optimize size but this may cause error "relocation truncated to fit"
 #EXTRALDFLAGS = -Wl,--relax
 
@@ -27,4 +51,3 @@ include $(TMK_DIR)/protocol/lufa.mk
 
 include $(TMK_DIR)/common.mk
 include $(TMK_DIR)/rules.mk
-
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
new file mode 100644 (file)
index 0000000..2215cf5
--- /dev/null
@@ -0,0 +1,505 @@
+#include <avr/eeprom.h>
+#include <avr/interrupt.h>
+#include <util/delay.h>
+#include "progmem.h"
+#include "timer.h"
+#include "rgblight.h"
+#include "debug.h"
+
+const uint8_t DIM_CURVE[] PROGMEM = {
+       0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
+       3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+       4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
+       6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
+       8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11,
+       11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15,
+       15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20,
+       20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26,
+       27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35,
+       36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47,
+       48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+       63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82,
+       83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109,
+       110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144,
+       146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190,
+       193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255,
+};
+const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = {0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18,20,21,23,25,27,29,31,33,35,37,40,42,44,47,49,52,54,57,59,62,65,67,70,73,76,79,82,85,88,90,93,97,100,103,106,109,112,115,118,121,124,127,131,134,137,140,143,146,149,152,155,158,162,165,167,170,173,176,179,182,185,188,190,193,196,198,201,203,206,208,211,213,215,218,220,222,224,226,228,230,232,234,235,237,238,240,241,243,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243,241,240,238,237,235,234,232,230,228,226,224,222,220,218,215,213,211,208,206,203,201,198,196,193,190,188,185,182,179,176,173,170,167,165,162,158,155,152,149,146,143,140,137,134,131,128,124,121,118,115,112,109,106,103,100,97,93,90,88,85,82,79,76,73,70,67,65,62,59,57,54,52,49,47,44,42,40,37,35,33,31,29,27,25,23,21,20,18,17,15,14,12,11,10,9,7,6,5,5,4,3,2,2,1,1,1,0,0,0};
+const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
+const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
+const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
+const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
+const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20};
+
+rgblight_config_t rgblight_config;
+rgblight_config_t inmem_config;
+struct cRGB led[RGBLED_NUM];
+uint8_t rgblight_inited = 0;
+
+
+void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) {
+       /* convert hue, saturation and brightness ( HSB/HSV ) to RGB
+       The DIM_CURVE is used only on brightness/value and on saturation (inverted).
+       This looks the most natural.
+       */
+  uint8_t r, g, b;
+
+  val = pgm_read_byte(&DIM_CURVE[val]);
+       sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]);
+
+       uint8_t base;
+
+       if (sat == 0) { // Acromatic color (gray). Hue doesn't mind.
+               r = val;
+               g = val;
+               b = val;
+       } else  {
+               base = ((255 - sat) * val) >> 8;
+
+               switch (hue / 60) {
+               case 0:
+                       r = val;
+                       g = (((val - base)*hue) / 60) + base;
+                       b = base;
+                       break;
+
+               case 1:
+                       r = (((val - base)*(60 - (hue % 60))) / 60) + base;
+                       g = val;
+                       b = base;
+                       break;
+
+               case 2:
+                       r = base;
+                       g = val;
+                       b = (((val - base)*(hue % 60)) / 60) + base;
+                       break;
+
+               case 3:
+                       r = base;
+                       g = (((val - base)*(60 - (hue % 60))) / 60) + base;
+                       b = val;
+                       break;
+
+               case 4:
+                       r = (((val - base)*(hue % 60)) / 60) + base;
+                       g = base;
+                       b = val;
+                       break;
+
+               case 5:
+                       r = val;
+                       g = base;
+                       b = (((val - base)*(60 - (hue % 60))) / 60) + base;
+                       break;
+               }
+       }
+  setrgb(r,g,b, led1);
+}
+
+void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) {
+  (*led1).r = r;
+  (*led1).g = g;
+  (*led1).b = b;
+}
+
+
+uint32_t eeconfig_read_rgblight(void) {
+  return eeprom_read_dword(EECONFIG_RGBLIGHT);
+}
+void eeconfig_write_rgblight(uint32_t val) {
+  eeprom_write_dword(EECONFIG_RGBLIGHT, val);
+}
+void eeconfig_write_rgblight_default(void) {
+       dprintf("eeconfig_write_rgblight_default\n");
+       rgblight_config.enable = 1;
+       rgblight_config.mode = 1;
+       rgblight_config.hue = 200;
+       rgblight_config.sat = 204;
+       rgblight_config.val = 204;
+       eeconfig_write_rgblight(rgblight_config.raw);
+}
+void eeconfig_debug_rgblight(void) {
+       dprintf("rgblight_config eprom\n");
+       dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
+       dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
+       dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
+       dprintf("rgblight_config.sat = %d\n", rgblight_config.sat);
+       dprintf("rgblight_config.val = %d\n", rgblight_config.val);
+}
+
+void rgblight_init(void) {
+  debug_enable = 1; // Debug ON!
+       dprintf("rgblight_init called.\n");
+  rgblight_inited = 1;
+       dprintf("rgblight_init start!\n");
+  if (!eeconfig_is_enabled()) {
+               dprintf("rgblight_init eeconfig is not enabled.\n");
+    eeconfig_init();
+               eeconfig_write_rgblight_default();
+  }
+  rgblight_config.raw = eeconfig_read_rgblight();
+       if (!rgblight_config.mode) {
+               dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n");
+               eeconfig_write_rgblight_default();
+               rgblight_config.raw = eeconfig_read_rgblight();
+       }
+       eeconfig_debug_rgblight(); // display current eeprom values
+
+       rgblight_timer_init(); // setup the timer
+
+  if (rgblight_config.enable) {
+    rgblight_mode(rgblight_config.mode);
+  }
+}
+
+void rgblight_increase(void) {
+       uint8_t mode;
+  if (rgblight_config.mode < RGBLIGHT_MODES) {
+    mode = rgblight_config.mode + 1;
+  }
+       rgblight_mode(mode);
+}
+
+void rgblight_decrease(void) {
+       uint8_t mode;
+  if (rgblight_config.mode > 1) { //mode will never < 1, if mode is less than 1, eeprom need to be initialized.
+    mode = rgblight_config.mode-1;
+  }
+       rgblight_mode(mode);
+}
+
+void rgblight_step(void) {
+       uint8_t mode;
+  mode = rgblight_config.mode + 1;
+  if (mode > RGBLIGHT_MODES) {
+    mode = 1;
+  }
+       rgblight_mode(mode);
+}
+
+void rgblight_mode(uint8_t mode) {
+       if (!rgblight_config.enable) {
+               return;
+       }
+  if (mode<1) {
+               rgblight_config.mode = 1;
+       } else if (mode > RGBLIGHT_MODES) {
+               rgblight_config.mode = RGBLIGHT_MODES;
+       } else {
+               rgblight_config.mode = mode;
+       }
+  eeconfig_write_rgblight(rgblight_config.raw);
+  dprintf("rgblight mode: %u\n", rgblight_config.mode);
+       if (rgblight_config.mode == 1) {
+               rgblight_timer_disable();
+       } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) {
+               // MODE 2-5, breathing
+               // MODE 6-8, rainbow mood
+               // MODE 9-14, rainbow swirl
+               // MODE 15-20, snake
+               // MODE 21-23, knight
+               rgblight_timer_enable();
+       }
+  rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
+}
+
+void rgblight_toggle(void) {
+  rgblight_config.enable ^= 1;
+  eeconfig_write_rgblight(rgblight_config.raw);
+  dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable);
+       if (rgblight_config.enable) {
+               rgblight_mode(rgblight_config.mode);
+       } else {
+               rgblight_timer_disable();
+               _delay_ms(50);
+               rgblight_set();
+       }
+}
+
+
+void rgblight_increase_hue(void){
+       uint16_t hue;
+  hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360;
+  rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val);
+}
+void rgblight_decrease_hue(void){
+       uint16_t hue;
+       if (rgblight_config.hue-RGBLIGHT_HUE_STEP <0 ) {
+               hue = (rgblight_config.hue+360-RGBLIGHT_HUE_STEP) % 360;
+       } else {
+               hue = (rgblight_config.hue-RGBLIGHT_HUE_STEP) % 360;
+       }
+  rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val);
+}
+void rgblight_increase_sat(void) {
+       uint8_t sat;
+  if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) {
+    sat = 255;
+  } else {
+    sat = rgblight_config.sat+RGBLIGHT_SAT_STEP;
+  }
+  rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val);
+}
+void rgblight_decrease_sat(void){
+       uint8_t sat;
+  if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) {
+    sat = 0;
+  } else {
+    sat = rgblight_config.sat-RGBLIGHT_SAT_STEP;
+  }
+  rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val);
+}
+void rgblight_increase_val(void){
+       uint8_t val;
+  if (rgblight_config.val + RGBLIGHT_VAL_STEP > 255) {
+    val = 255;
+  } else {
+    val = rgblight_config.val+RGBLIGHT_VAL_STEP;
+  }
+  rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val);
+}
+void rgblight_decrease_val(void) {
+       uint8_t val;
+  if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) {
+    val = 0;
+  } else {
+    val = rgblight_config.val-RGBLIGHT_VAL_STEP;
+  }
+  rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val);
+}
+
+void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val){
+       inmem_config.raw = rgblight_config.raw;
+  if (rgblight_config.enable) {
+    struct cRGB tmp_led;
+    sethsv(hue, sat, val, &tmp_led);
+               inmem_config.hue = hue;
+               inmem_config.sat = sat;
+               inmem_config.val = val;
+    // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val);
+    rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
+  }
+}
+void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){
+  if (rgblight_config.enable) {
+               if (rgblight_config.mode == 1) {
+                       // same static color
+                       rgblight_sethsv_noeeprom(hue, sat, val);
+               } else {
+                       // all LEDs in same color
+                       if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) {
+                               // breathing mode, ignore the change of val, use in memory value instead
+                               val = rgblight_config.val;
+                       } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 14) {
+                               // rainbow mood and rainbow swirl, ignore the change of hue
+                               hue = rgblight_config.hue;
+                       }
+               }
+               rgblight_config.hue = hue;
+               rgblight_config.sat = sat;
+               rgblight_config.val = val;
+               eeconfig_write_rgblight(rgblight_config.raw);
+               dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
+  }
+}
+
+void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b){
+  // dprintf("rgblight set rgb: %u,%u,%u\n", r,g,b);
+  for (uint8_t i=0;i<RGBLED_NUM;i++) {
+    led[i].r = r;
+    led[i].g = g;
+    led[i].b = b;
+  }
+  rgblight_set();
+
+}
+
+void rgblight_set(void) {
+       if (rgblight_config.enable) {
+               ws2812_setleds(led, RGBLED_NUM);
+       } else {
+               for (uint8_t i=0;i<RGBLED_NUM;i++) {
+           led[i].r = 0;
+           led[i].g = 0;
+           led[i].b = 0;
+         }
+               ws2812_setleds(led, RGBLED_NUM);
+       }
+}
+
+// Animation timer -- AVR Timer3
+void rgblight_timer_init(void) {
+       static uint8_t rgblight_timer_is_init = 0;
+       if (rgblight_timer_is_init) {
+               return;
+       }
+       rgblight_timer_is_init = 1;
+       /* Timer 3 setup */
+       TCCR3B = _BV(WGM32) //CTC mode OCR3A as TOP
+             | _BV(CS30); //Clock selelct: clk/1
+       /* Set TOP value */
+       uint8_t sreg = SREG;
+       cli();
+       OCR3AH = (RGBLED_TIMER_TOP>>8)&0xff;
+       OCR3AL = RGBLED_TIMER_TOP&0xff;
+       SREG = sreg;
+}
+void rgblight_timer_enable(void) {
+       TIMSK3 |= _BV(OCIE3A);
+       dprintf("TIMER3 enabled.\n");
+}
+void rgblight_timer_disable(void) {
+       TIMSK3 &= ~_BV(OCIE3A);
+       dprintf("TIMER3 disabled.\n");
+}
+void rgblight_timer_toggle(void) {
+       TIMSK3 ^= _BV(OCIE3A);
+       dprintf("TIMER3 toggled.\n");
+}
+
+ISR(TIMER3_COMPA_vect) {
+       // Mode = 1, static light, do nothing here
+       if (rgblight_config.mode>=2 && rgblight_config.mode<=5) {
+               // mode = 2 to 5, breathing mode
+               rgblight_effect_breathing(rgblight_config.mode-2);
+
+       } else if (rgblight_config.mode>=6 && rgblight_config.mode<=8) {
+               rgblight_effect_rainbow_mood(rgblight_config.mode-6);
+       } else if (rgblight_config.mode>=9 && rgblight_config.mode<=14) {
+               rgblight_effect_rainbow_swirl(rgblight_config.mode-9);
+       } else if (rgblight_config.mode>=15 && rgblight_config.mode<=20) {
+               rgblight_effect_snake(rgblight_config.mode-15);
+       } else if (rgblight_config.mode>=21 && rgblight_config.mode<=23) {
+               rgblight_effect_knight(rgblight_config.mode-21);
+       }
+}
+
+// effects
+void rgblight_effect_breathing(uint8_t interval) {
+       static uint8_t pos = 0;
+       static uint16_t last_timer = 0;
+
+       if (timer_elapsed(last_timer)<pgm_read_byte(&RGBLED_BREATHING_INTERVALS[interval])) return;
+       last_timer = timer_read();
+
+       rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, pgm_read_byte(&RGBLED_BREATHING_TABLE[pos]));
+       pos = (pos+1) % 256;
+}
+
+void rgblight_effect_rainbow_mood(uint8_t interval) {
+       static uint16_t current_hue=0;
+       static uint16_t last_timer = 0;
+
+       if (timer_elapsed(last_timer)<pgm_read_byte(&RGBLED_RAINBOW_MOOD_INTERVALS[interval])) return;
+       last_timer = timer_read();
+       rgblight_sethsv_noeeprom(current_hue, rgblight_config.sat, rgblight_config.val);
+       current_hue = (current_hue+1) % 360;
+}
+
+void rgblight_effect_rainbow_swirl(uint8_t interval) {
+       static uint16_t current_hue=0;
+       static uint16_t last_timer = 0;
+       uint16_t hue;
+       uint8_t i;
+       if (timer_elapsed(last_timer)<pgm_read_byte(&RGBLED_RAINBOW_MOOD_INTERVALS[interval/2])) return;
+       last_timer = timer_read();
+       for (i=0; i<RGBLED_NUM; i++) {
+               hue = (360/RGBLED_NUM*i+current_hue)%360;
+               sethsv(hue, rgblight_config.sat, rgblight_config.val, &led[i]);
+       }
+       rgblight_set();
+
+       if (interval % 2) {
+               current_hue = (current_hue+1) % 360;
+       } else {
+               if (current_hue -1 < 0) {
+                       current_hue = 359;
+               } else {
+                       current_hue = current_hue - 1;
+               }
+
+       }
+}
+void rgblight_effect_snake(uint8_t interval) {
+       static uint8_t pos=0;
+       static uint16_t last_timer = 0;
+       uint8_t i,j;
+       int8_t k;
+       int8_t increament = 1;
+       if (interval%2) increament = -1;
+       if (timer_elapsed(last_timer)<pgm_read_byte(&RGBLED_SNAKE_INTERVALS[interval/2])) return;
+       last_timer = timer_read();
+       for (i=0;i<RGBLED_NUM;i++) {
+               led[i].r=0;
+               led[i].g=0;
+               led[i].b=0;
+               for (j=0;j<RGBLIGHT_EFFECT_SNAKE_LENGTH;j++) {
+                       k = pos+j*increament;
+                       if (k<0) k = k+RGBLED_NUM;
+                       if (i==k) {
+                               sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val*(RGBLIGHT_EFFECT_SNAKE_LENGTH-j)/RGBLIGHT_EFFECT_SNAKE_LENGTH), &led[i]);
+                       }
+               }
+       }
+       rgblight_set();
+       if (increament == 1) {
+               if (pos - 1 < 0) {
+                       pos = RGBLED_NUM-1;
+               } else {
+                       pos -= 1;
+               }
+       } else {
+               pos = (pos+1)%RGBLED_NUM;
+       }
+
+}
+
+void rgblight_effect_knight(uint8_t interval) {
+       static int8_t pos=0;
+       static uint16_t last_timer = 0;
+       uint8_t i,j,cur;
+       int8_t k;
+       struct cRGB preled[RGBLED_NUM];
+       static int8_t increament = -1;
+       if (timer_elapsed(last_timer)<pgm_read_byte(&RGBLED_KNIGHT_INTERVALS[interval])) return;
+       last_timer = timer_read();
+       for (i=0;i<RGBLED_NUM;i++) {
+               preled[i].r=0;
+               preled[i].g=0;
+               preled[i].b=0;
+               for (j=0;j<RGBLIGHT_EFFECT_KNIGHT_LENGTH;j++) {
+                       k = pos+j*increament;
+                       if (k<0) k = 0;
+                       if (k>=RGBLED_NUM) k=RGBLED_NUM-1;
+                       if (i==k) {
+                               sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, &preled[i]);
+                       }
+               }
+       }
+       if (RGBLIGHT_EFFECT_KNIGHT_OFFSET) {
+               for (i=0;i<RGBLED_NUM;i++) {
+                       cur = (i+RGBLIGHT_EFFECT_KNIGHT_OFFSET) % RGBLED_NUM;
+                       led[i].r = preled[cur].r;
+                       led[i].g = preled[cur].g;
+                       led[i].b = preled[cur].b;
+               }
+       }
+       rgblight_set();
+       if (increament == 1) {
+               if (pos - 1 < 0 - RGBLIGHT_EFFECT_KNIGHT_LENGTH) {
+                       pos = 0- RGBLIGHT_EFFECT_KNIGHT_LENGTH;
+                       increament = -1;
+               } else {
+                       pos -= 1;
+               }
+       } else {
+               if (pos+1>RGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH) {
+                       pos = RGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH-1;
+                       increament = 1;
+               } else {
+                       pos += 1;
+               }
+       }
+
+}
diff --git a/quantum/rgblight.h b/quantum/rgblight.h
new file mode 100644 (file)
index 0000000..9e15623
--- /dev/null
@@ -0,0 +1,87 @@
+#ifndef RGBLIGHT_H
+#define RGBLIGHT_H
+
+#ifndef RGBLIGHT_MODES
+#define RGBLIGHT_MODES 23
+#endif
+
+#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH
+#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7
+#endif
+
+#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
+#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
+#endif
+#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
+#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9
+#endif
+
+#ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH
+#define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4
+#endif
+
+#ifndef RGBLIGHT_HUE_STEP
+#define RGBLIGHT_HUE_STEP 10
+#endif
+#ifndef RGBLIGHT_SAT_STEP
+#define RGBLIGHT_SAT_STEP 17
+#endif
+#ifndef RGBLIGHT_VAL_STEP
+#define RGBLIGHT_VAL_STEP 17
+#endif
+
+#define RGBLED_TIMER_TOP F_CPU/(256*64)
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "eeconfig.h"
+#include "light_ws2812.h"
+
+typedef union {
+  uint32_t raw;
+  struct {
+    bool     enable  :1;
+    uint8_t  mode    :6;
+    uint16_t hue     :9;
+    uint8_t  sat     :8;
+    uint8_t  val     :8;
+  };
+} rgblight_config_t;
+
+void rgblight_init(void);
+void rgblight_increase(void);
+void rgblight_decrease(void);
+void rgblight_toggle(void);
+void rgblight_step(void);
+void rgblight_mode(uint8_t mode);
+void rgblight_set(void);
+void rgblight_increase_hue(void);
+void rgblight_decrease_hue(void);
+void rgblight_increase_sat(void);
+void rgblight_decrease_sat(void);
+void rgblight_increase_val(void);
+void rgblight_decrease_val(void);
+void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val);
+void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
+
+#define EECONFIG_RGBLIGHT (uint8_t *)7
+uint32_t eeconfig_read_rgblight(void);
+void eeconfig_write_rgblight(uint32_t val);
+void eeconfig_write_rgblight_default(void);
+void eeconfig_debug_rgblight(void);
+
+void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1);
+void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1);
+void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
+
+void rgblight_timer_init(void);
+void rgblight_timer_enable(void);
+void rgblight_timer_disable(void);
+void rgblight_timer_toggle(void);
+void rgblight_effect_breathing(uint8_t interval);
+void rgblight_effect_rainbow_mood(uint8_t interval);
+void rgblight_effect_rainbow_swirl(uint8_t interval);
+void rgblight_effect_snake(uint8_t interval);
+void rgblight_effect_knight(uint8_t interval);
+
+#endif
index 99c97a62cf83b5e7f395f2b1271e381e9a4079ed..2efa691380fc4da5850152a753afef5121930808 100644 (file)
@@ -53,9 +53,9 @@ TARGET_DIR = .
 SRC = %KEYBOARD%.c
 
 ifdef KEYMAP
-    SRC := keymaps/keymap_$(KEYMAP).c $(SRC)
+    SRC := keymaps/$(KEYMAP).c $(SRC)
 else
-    SRC := keymaps/keymap_default.c $(SRC)
+    SRC := keymaps/default.c $(SRC)
 endif
 
 CONFIG_H = config.h
@@ -107,7 +107,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 #   Atmel DFU loader 4096
 #   LUFA bootloader  4096
 #   USBaspLoader     2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
+OPT_DEFS += -DBOOTLOADER_SIZE=512
 
 
 # Build Options
index ecea7dd6982a9ee66dddcd82c076b6f28df8da34..dc163a2f4b4dcb059cde9b85461c2164cb35e69c 100644 (file)
 
 ## 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.
+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/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
+Download or clone the whole firmware and navigate to the keyboard/%KEYBOARD% 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.
 
@@ -171,10 +15,10 @@ Depending on which keymap you would like to use, you will have to compile slight
 To build with the default keymap, simply run `make`.
 
 ### Other Keymaps
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
+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 **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder.
\ No newline at end of file
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
\ No newline at end of file
index 9afedbcc07be875f155ee62c9917df640b235303..7d6149f436ecb97e8c4ec0189e41f4bac7518e89 100644 (file)
@@ -29,14 +29,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define DESCRIPTION     A custom keyboard
 
 /* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
+#define MATRIX_ROWS 2
+#define MATRIX_COLS 3
 
 // Planck PCB default pin-out
 // Change this to how you wired your keyboard
 // COLS: Left to right, ROWS: Top to bottom
-#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define ROWS (int []){ D0, D5, B5, B6 }
+#define COLS (int []){ F1, F0, B0 }
+#define ROWS (int []){ D0, D5 }
 
 /* COL2ROW or ROW2COL */
 #define DIODE_DIRECTION COL2ROW
diff --git a/quantum/template/keymaps/default.c b/quantum/template/keymaps/default.c
new file mode 100644 (file)
index 0000000..4121fd8
--- /dev/null
@@ -0,0 +1,30 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "%KEYBOARD%.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP( /* Base */
+  KC_A,  KC_1,  KC_H, \
+    KC_TAB,  KC_SPC   \
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+          if (record->event.pressed) {
+            register_code(KC_RSFT);
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
diff --git a/quantum/template/keymaps/keymap_default.c b/quantum/template/keymaps/keymap_default.c
deleted file mode 100644 (file)
index 1e6684d..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
-// this is the style you want to emulate.
-
-#include "%KEYBOARD%.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QW 0
-#define _CM 1
-#define _DV 2
-#define _LW 3
-#define _RS 4
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QW] = { /* Qwerty */
-  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
-  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_CM] = { /* Colemak */
-  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
-  {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
-  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_DV] = { /* Dvorak */
-  {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
-  {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
-  {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
-  {M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC,  KC_SPC,  MO(_RS), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
-},
-[_RS] = { /* RAISE */
-  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-},
-[_LW] = { /* LOWER */
-  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
-  {KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
-  {KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  DF(_QW), DF(_CM), DF(_DV), RESET,   KC_TRNS},
-  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
-}
-};
-
-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;
-};
index de3edf3242ccafbf5d8b289e38c3e72b0f54ae75..d4d78e4c91f63f1fb6d67c3195232271b32a7c36 100644 (file)
 // 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, k1b, \
-       k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-       k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+    k00, k01, k02, \
+      k10,  k11,   \
 ) \
 { \
-       { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
-       { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
-       { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
-       { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+    { k00, k01,   k02 }, \
+    { k10, KC_NO, k11 }, \
 } 
 
 void * matrix_init_user(void);
diff --git a/quantum/wave.h b/quantum/wave.h
new file mode 100644 (file)
index 0000000..6ebc348
--- /dev/null
@@ -0,0 +1,265 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+
+#define SINE_LENGTH 2048
+
+const uint8_t sinewave[] PROGMEM= //2048 values
+{
+0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,
+0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85,
+0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8c,
+0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,
+0x8f,0x8f,0x90,0x90,0x91,0x91,0x91,0x92,
+0x92,0x93,0x93,0x93,0x94,0x94,0x95,0x95,
+0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98,
+0x98,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b,
+0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,0x9e,
+0x9e,0x9f,0x9f,0xa0,0xa0,0xa0,0xa1,0xa1,
+0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4,
+0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa7,0xa7,
+0xa7,0xa8,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa,
+0xaa,0xab,0xab,0xac,0xac,0xac,0xad,0xad,
+0xad,0xae,0xae,0xae,0xaf,0xaf,0xb0,0xb0,
+0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb3,
+0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb6,
+0xb6,0xb6,0xb7,0xb7,0xb7,0xb8,0xb8,0xb8,
+0xb9,0xb9,0xba,0xba,0xba,0xbb,0xbb,0xbb,
+0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbe,0xbe,
+0xbe,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc1,
+0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc3,
+0xc4,0xc4,0xc4,0xc5,0xc5,0xc5,0xc6,0xc6,
+0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc8,0xc9,
+0xc9,0xc9,0xca,0xca,0xca,0xcb,0xcb,0xcb,
+0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce,
+0xce,0xce,0xcf,0xcf,0xcf,0xcf,0xd0,0xd0,
+0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd2,
+0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd5,0xd5,
+0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7,
+0xd7,0xd8,0xd8,0xd8,0xd9,0xd9,0xd9,0xd9,
+0xda,0xda,0xda,0xda,0xdb,0xdb,0xdb,0xdc,
+0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xdd,0xde,
+0xde,0xde,0xde,0xdf,0xdf,0xdf,0xe0,0xe0,
+0xe0,0xe0,0xe1,0xe1,0xe1,0xe1,0xe2,0xe2,
+0xe2,0xe2,0xe3,0xe3,0xe3,0xe3,0xe4,0xe4,
+0xe4,0xe4,0xe4,0xe5,0xe5,0xe5,0xe5,0xe6,
+0xe6,0xe6,0xe6,0xe7,0xe7,0xe7,0xe7,0xe8,
+0xe8,0xe8,0xe8,0xe8,0xe9,0xe9,0xe9,0xe9,
+0xea,0xea,0xea,0xea,0xea,0xeb,0xeb,0xeb,
+0xeb,0xeb,0xec,0xec,0xec,0xec,0xec,0xed,
+0xed,0xed,0xed,0xed,0xee,0xee,0xee,0xee,
+0xee,0xef,0xef,0xef,0xef,0xef,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xf0,0xf1,0xf1,0xf1,0xf1,
+0xf1,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2,0xf3,
+0xf3,0xf3,0xf3,0xf3,0xf3,0xf4,0xf4,0xf4,
+0xf4,0xf4,0xf4,0xf5,0xf5,0xf5,0xf5,0xf5,
+0xf5,0xf5,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,
+0xf6,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,
+0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,
+0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfa,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,
+0xf8,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,
+0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf5,
+0xf5,0xf5,0xf5,0xf5,0xf5,0xf5,0xf4,0xf4,
+0xf4,0xf4,0xf4,0xf4,0xf3,0xf3,0xf3,0xf3,
+0xf3,0xf3,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2,
+0xf1,0xf1,0xf1,0xf1,0xf1,0xf0,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xef,0xef,0xef,0xef,0xef,
+0xee,0xee,0xee,0xee,0xee,0xed,0xed,0xed,
+0xed,0xed,0xec,0xec,0xec,0xec,0xec,0xeb,
+0xeb,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xea,
+0xea,0xe9,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,
+0xe8,0xe8,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6,
+0xe6,0xe6,0xe5,0xe5,0xe5,0xe5,0xe4,0xe4,
+0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe3,0xe2,
+0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe1,0xe0,
+0xe0,0xe0,0xe0,0xdf,0xdf,0xdf,0xde,0xde,
+0xde,0xde,0xdd,0xdd,0xdd,0xdd,0xdc,0xdc,
+0xdc,0xdc,0xdb,0xdb,0xdb,0xda,0xda,0xda,
+0xda,0xd9,0xd9,0xd9,0xd9,0xd8,0xd8,0xd8,
+0xd7,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd5,
+0xd5,0xd5,0xd5,0xd4,0xd4,0xd4,0xd3,0xd3,
+0xd3,0xd2,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1,
+0xd0,0xd0,0xd0,0xcf,0xcf,0xcf,0xcf,0xce,
+0xce,0xce,0xcd,0xcd,0xcd,0xcc,0xcc,0xcc,
+0xcb,0xcb,0xcb,0xcb,0xca,0xca,0xca,0xc9,
+0xc9,0xc9,0xc8,0xc8,0xc8,0xc7,0xc7,0xc7,
+0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4,
+0xc4,0xc3,0xc3,0xc3,0xc2,0xc2,0xc2,0xc1,
+0xc1,0xc1,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf,
+0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbc,0xbc,
+0xbc,0xbb,0xbb,0xbb,0xba,0xba,0xba,0xb9,
+0xb9,0xb8,0xb8,0xb8,0xb7,0xb7,0xb7,0xb6,
+0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4,
+0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,
+0xb0,0xb0,0xb0,0xaf,0xaf,0xae,0xae,0xae,
+0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xab,
+0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa8,0xa8,
+0xa7,0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5,
+0xa5,0xa4,0xa4,0xa3,0xa3,0xa3,0xa2,0xa2,
+0xa2,0xa1,0xa1,0xa0,0xa0,0xa0,0x9f,0x9f,
+0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,
+0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99,
+0x98,0x98,0x98,0x97,0x97,0x96,0x96,0x96,
+0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93,
+0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x8f,
+0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8c,
+0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x8a,0x89,
+0x89,0x88,0x88,0x88,0x87,0x87,0x87,0x86,
+0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x83,
+0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80,
+0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73,
+0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x70,
+0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,
+0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x6a,
+0x6a,0x69,0x69,0x69,0x68,0x68,0x67,0x67,
+0x67,0x66,0x66,0x65,0x65,0x65,0x64,0x64,
+0x64,0x63,0x63,0x62,0x62,0x62,0x61,0x61,
+0x61,0x60,0x60,0x5f,0x5f,0x5f,0x5e,0x5e,
+0x5d,0x5d,0x5d,0x5c,0x5c,0x5c,0x5b,0x5b,
+0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x58,
+0x58,0x57,0x57,0x56,0x56,0x56,0x55,0x55,
+0x55,0x54,0x54,0x53,0x53,0x53,0x52,0x52,
+0x52,0x51,0x51,0x51,0x50,0x50,0x4f,0x4f,
+0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,0x4c,
+0x4c,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,
+0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,
+0x46,0x46,0x45,0x45,0x45,0x44,0x44,0x44,
+0x43,0x43,0x43,0x42,0x42,0x42,0x41,0x41,
+0x41,0x40,0x40,0x40,0x3f,0x3f,0x3f,0x3e,
+0x3e,0x3e,0x3d,0x3d,0x3d,0x3c,0x3c,0x3c,
+0x3b,0x3b,0x3b,0x3a,0x3a,0x3a,0x39,0x39,
+0x39,0x38,0x38,0x38,0x37,0x37,0x37,0x36,
+0x36,0x36,0x35,0x35,0x35,0x34,0x34,0x34,
+0x34,0x33,0x33,0x33,0x32,0x32,0x32,0x31,
+0x31,0x31,0x30,0x30,0x30,0x30,0x2f,0x2f,
+0x2f,0x2e,0x2e,0x2e,0x2d,0x2d,0x2d,0x2d,
+0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,0x2a,0x2a,
+0x2a,0x2a,0x29,0x29,0x29,0x28,0x28,0x28,
+0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x26,
+0x25,0x25,0x25,0x25,0x24,0x24,0x24,0x23,
+0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x21,
+0x21,0x21,0x21,0x20,0x20,0x20,0x1f,0x1f,
+0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x1d,0x1d,
+0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x19,
+0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x17,
+0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16,
+0x15,0x15,0x15,0x15,0x15,0x14,0x14,0x14,
+0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x12,
+0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,
+0x11,0x10,0x10,0x10,0x10,0x10,0xf,0xf,
+0xf,0xf,0xf,0xf,0xe,0xe,0xe,0xe,
+0xe,0xd,0xd,0xd,0xd,0xd,0xd,0xc,
+0xc,0xc,0xc,0xc,0xc,0xb,0xb,0xb,
+0xb,0xb,0xb,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0x9,0x9,0x9,0x9,0x9,0x9,
+0x9,0x8,0x8,0x8,0x8,0x8,0x8,0x8,
+0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7,
+0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6,
+0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,
+0x5,0x5,0x4,0x4,0x4,0x4,0x4,0x4,
+0x4,0x4,0x4,0x4,0x3,0x3,0x3,0x3,
+0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,
+0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,
+0x2,0x2,0x2,0x2,0x2,0x2,0x1,0x1,
+0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,
+0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,
+0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,
+0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,
+0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,
+0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x2,
+0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,
+0x2,0x3,0x3,0x3,0x3,0x3,0x3,0x3,
+0x3,0x3,0x3,0x3,0x3,0x4,0x4,0x4,
+0x4,0x4,0x4,0x4,0x4,0x4,0x4,0x5,
+0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5,
+0x5,0x6,0x6,0x6,0x6,0x6,0x6,0x6,
+0x6,0x7,0x7,0x7,0x7,0x7,0x7,0x7,
+0x7,0x8,0x8,0x8,0x8,0x8,0x8,0x8,
+0x9,0x9,0x9,0x9,0x9,0x9,0x9,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xb,0xb,
+0xb,0xb,0xb,0xb,0xc,0xc,0xc,0xc,
+0xc,0xc,0xd,0xd,0xd,0xd,0xd,0xd,
+0xe,0xe,0xe,0xe,0xe,0xf,0xf,0xf,
+0xf,0xf,0xf,0x10,0x10,0x10,0x10,0x10,
+0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,
+0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x14,
+0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,
+0x15,0x16,0x16,0x16,0x16,0x17,0x17,0x17,
+0x17,0x17,0x18,0x18,0x18,0x18,0x19,0x19,
+0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d,
+0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1f,
+0x1f,0x1f,0x1f,0x20,0x20,0x20,0x21,0x21,
+0x21,0x21,0x22,0x22,0x22,0x22,0x23,0x23,
+0x23,0x23,0x24,0x24,0x24,0x25,0x25,0x25,
+0x25,0x26,0x26,0x26,0x26,0x27,0x27,0x27,
+0x28,0x28,0x28,0x28,0x29,0x29,0x29,0x2a,
+0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2c,0x2c,
+0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e,
+0x2f,0x2f,0x2f,0x30,0x30,0x30,0x30,0x31,
+0x31,0x31,0x32,0x32,0x32,0x33,0x33,0x33,
+0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x36,
+0x36,0x36,0x37,0x37,0x37,0x38,0x38,0x38,
+0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3b,0x3b,
+0x3b,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e,
+0x3e,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40,
+0x41,0x41,0x41,0x42,0x42,0x42,0x43,0x43,
+0x43,0x44,0x44,0x44,0x45,0x45,0x45,0x46,
+0x46,0x47,0x47,0x47,0x48,0x48,0x48,0x49,
+0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,
+0x4c,0x4c,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e,
+0x4f,0x4f,0x4f,0x50,0x50,0x51,0x51,0x51,
+0x52,0x52,0x52,0x53,0x53,0x53,0x54,0x54,
+0x55,0x55,0x55,0x56,0x56,0x56,0x57,0x57,
+0x58,0x58,0x58,0x59,0x59,0x59,0x5a,0x5a,
+0x5a,0x5b,0x5b,0x5c,0x5c,0x5c,0x5d,0x5d,
+0x5d,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60,
+0x61,0x61,0x61,0x62,0x62,0x62,0x63,0x63,
+0x64,0x64,0x64,0x65,0x65,0x65,0x66,0x66,
+0x67,0x67,0x67,0x68,0x68,0x69,0x69,0x69,
+0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x73,
+0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x76,
+0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f
+};
\ No newline at end of file
index edbcc282a579e61090613635c3fa752e3e285ea3..89c366f5547dcf2dc1c44b435ec692caaa98ca9a 100644 (file)
@@ -53,6 +53,9 @@ ifdef MIDI_ENABLE
     OPT_DEFS += -DMIDI_ENABLE
 endif
 
+ifdef AUDIO_ENABLE
+    OPT_DEFS += -DAUDIO_ENABLE
+endif
 
 ifdef USB_6KRO_ENABLE
     OPT_DEFS += -DUSB_6KRO_ENABLE
index af99f52b5ee18336f4f332eddf5c37bd9ab5b108..caf0b0625461c91a14c85b7e2d825029e14cb6a3 100644 (file)
@@ -8,6 +8,7 @@
 #include "suspend_avr.h"
 #include "suspend.h"
 #include "timer.h"
+#include "led.h"
 #ifdef PROTOCOL_LUFA
 #include "lufa.h"
 #endif
@@ -64,6 +65,10 @@ static void power_down(uint8_t wdto)
     // Watchdog Interrupt Mode
     wdt_intr_enable(wdto);
 
+#ifdef BACKLIGHT_ENABLE
+backlight_set(0);
+#endif
+
     // TODO: more power saving
     // See PicoPower application note
     // - I/O port input with pullup
@@ -89,6 +94,9 @@ __attribute__ ((weak)) void matrix_power_up(void) {}
 __attribute__ ((weak)) void matrix_power_down(void) {}
 bool suspend_wakeup_condition(void)
 {
+#ifdef BACKLIGHT_ENABLE
+    backlight_set(0);
+#endif
     matrix_power_up();
     matrix_scan();
     matrix_power_down();
@@ -104,8 +112,10 @@ void suspend_wakeup_init(void)
     // clear keyboard state
     clear_keyboard();
 #ifdef BACKLIGHT_ENABLE
+    backlight_set(0);
     backlight_init();
 #endif
+led_set(host_keyboard_leds());
 }
 
 #ifndef NO_SUSPEND_POWER_DOWN
@@ -122,3 +132,4 @@ ISR(WDT_vect)
     }
 }
 #endif
+
index dffc699a3af3b59082a8c014386dce566a92dac9..2846f1d0fb8eb87eddbe1574d2a2cb677c65cec0 100644 (file)
@@ -6,7 +6,7 @@ Download and Install
 --------------------
 ### 1. Install Tools
 
-1. **Toolchain** On Windows install [MHV AVR Tools][mhv] for AVR GCC compiler and [Cygwin][cygwin](or [MinGW][mingw]) for shell terminal. On Mac you can use [CrossPack][crosspack]. On Linux you can install AVR GCC (and avr-libc) with your favorite package manager.
+1. **Toolchain** On Windows install [MHV AVR Tools][mhv] for AVR GCC compiler and [Cygwin][cygwin](or [MinGW][mingw]) for shell terminal. On Mac you can use [CrossPack][crosspack]. On Linux you can install AVR GCC (and avr-libc) with your favorite package manager or run the avr_setup.sh script in the root of this repository.
 
 2. **Programmer** On Windows install [Atmel FLIP][flip]. On Mac and Linux install [dfu-programmer][dfu-prog].
 
index f04790f4e887079a6ec789f02ea08854e50e7882..5d40dcf7b23cce5a8fbeb8d77b59b26cfb5b02ff 100644 (file)
@@ -52,8 +52,8 @@
 #include "descriptor.h"
 #include "lufa.h"
 
-#ifdef MIDI_ENABLE
-    #include <beeps.h>
+#ifdef AUDIO_ENABLE
+    #include <audio.h>
 #endif
 
 #ifdef BLUETOOTH_ENABLE
@@ -946,6 +946,8 @@ int main(void)
 #ifdef MIDI_ENABLE
 void fallthrough_callback(MidiDevice * device,
     uint16_t cnt, uint8_t byte0, uint8_t byte1, uint8_t byte2){
+
+#ifdef AUDIO_ENABLE
   if (cnt == 3) {
     switch (byte0 & 0xF0) {
         case MIDI_NOTEON:
@@ -959,6 +961,7 @@ void fallthrough_callback(MidiDevice * device,
   if (byte0 == MIDI_STOP) {
     stop_all_notes();
   }
+#endif
 }
 
 void cc_callback(MidiDevice * device,