summaryrefslogtreecommitdiff
path: root/keyboards/planck
diff options
context:
space:
mode:
authorAnand Babu (AB) Periasamy <abperiasamy@users.noreply.github.com>2016-06-22 20:36:30 -0700
committerJack Humbert <jack.humb@gmail.com>2016-06-22 23:36:30 -0400
commitbab6a8fde5a43eb6feeb81b83d29791cbef3af8e (patch)
tree0962943633d2cdeed9cff8bbb31b2f491fe07395 /keyboards/planck
parent7e584439ee613fe156b15ebe8b85d921770861ca (diff)
AB's practical planck keymap (#435)
Diffstat (limited to 'keyboards/planck')
-rw-r--r--keyboards/planck/keymaps/ab/Makefile63
-rw-r--r--keyboards/planck/keymaps/ab/README.md18
-rw-r--r--keyboards/planck/keymaps/ab/compiled.hex1139
-rw-r--r--keyboards/planck/keymaps/ab/keyboard-layout.json101
-rw-r--r--keyboards/planck/keymaps/ab/keyboard-layout.pngbin0 -> 26123 bytes
-rw-r--r--keyboards/planck/keymaps/ab/keyboard-photo.jpgbin0 -> 252997 bytes
-rw-r--r--keyboards/planck/keymaps/ab/keymap.c122
7 files changed, 1443 insertions, 0 deletions
diff --git a/keyboards/planck/keymaps/ab/Makefile b/keyboards/planck/keymaps/ab/Makefile
new file mode 100644
index 0000000000..44a030ba38
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/Makefile
@@ -0,0 +1,63 @@
+#----------------------------------------------------------------------------
+# 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".
+#----------------------------------------------------------------------------
+
+# Build Options
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # 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 = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/ab/README.md b/keyboards/planck/keymaps/ab/README.md
new file mode 100644
index 0000000000..d6280f074d
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/README.md
@@ -0,0 +1,18 @@
+# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard
+A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs.
+
+![Layout](keyboard-layout.png "Practical Keymap")
+![Photo](keyboard-photo.jpg "Planck Keyboard")
+
+* Online keyboard layout editor: http://goo.gl/mlLAFZ
+
+# Programming Instructions:
+Enter into programming mode and run the following command.
+```
+$ sudo KEYMAP=ab make dfu
+```
+# Notes
+* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here.
+* RAISE and LOWER also acts as PgUp and PgDn when tapped.
+* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users.
+* Bracket keys are placed in the center of the keyboard for programmer's convenience.
diff --git a/keyboards/planck/keymaps/ab/compiled.hex b/keyboards/planck/keymaps/ab/compiled.hex
new file mode 100644
index 0000000000..1723c4612a
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/compiled.hex
@@ -0,0 +1,1139 @@
+:100000000C948E020C94D5020C94D5020C94D5025B
+:100010000C94D5020C94D5020C94D5020C94D50204
+:100020000C94D5020C94D5020C949A0D0C946C0E81
+:100030000C94D01B0C94D5020C94D5020C94D502D0
+:100040000C94D5020C9437030C94D5020C94D50271
+:100050000C94D5020C94381C0C94D5020C94D50247
+:100060000C94D5020C94D5020C94D5020C94D502B4
+:100070000C94D5020C94D5020C94D5020C94D502A4
+:100080000C94D5020C94D5020C94D5020C94D50294
+:100090000C94D5020C94D5020C94D5020C94D50284
+:1000A0000C94D5020C94D5020C94D5029D03A703A1
+:1000B000AF03E303C003CE03D503DC03D90EFB0E6D
+:1000C000E90FFB0EE90F400F630FE90FB80FCB0FDD
+:1000D000B512B512E412E4122313431399149914C0
+:1000E0004E139914FE13FE1365146E149914931491
+:1000F0000B140B140B140B140B140B140B140B1408
+:100100000B140B140B140B140B140B140B140B14F7
+:100110001B1429143014371441140000000000008F
+:100120000000000000010204060A0F17202C3A4AC2
+:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725
+:10014000B39D87715D4A3A2C20170F0A06040201FD
+:1001500000000000000000000000010F020F011667
+:100160000216012C022C012D022D010F020F012875
+:100170000228000108020801100210010402040113
+:1001800006020601160216012C022C00011E021E98
+:10019000011F021F01200220012D022D011E021E3F
+:1001A000011F021F01200220012D022D011E021E2F
+:1001B000011F021F0120022001210221004BA14E3C
+:1001C000A2392128322B0014001A0008001500174C
+:1001D000001C0018000C00120013002A00E00004AC
+:1001E000001600070009000A000B000D000E000FAA
+:1001F0000033002800E1001D001B00060019000567
+:1002000000110010003600370038000320E00029FC
+:1002100000E300E20001302C002C000230500052BC
+:100220000051004F001E001F00200021002200236B
+:100230000024002500260027002D002E00010001CB
+:100240000001000100260227022F023002010001F6
+:10025000000100010001000100010001002F003039
+:1002600000340034020100010001000100043001EB
+:10027000000100010001004B004B000100010001E2
+:1002800000010001003A003B003C003D003E003F01
+:1002900000400041004200430044004500010001CD
+:1002A000000100010001000100010001002F022FE8
+:1002B000023100010001000100010001003500359C
+:1002C00002310031022F002F0001000100007001F7
+:1002D000000100010001004E004E0001000100AAD3
+:1002E00000A900A8000100010001000100010001B7
+:1002F00000010001000100010001000100010001F6
+:1003000000010001000100010001000100010001E5
+:1003100000010001000100010001000100053001A1
+:10032000000630073001000100010001000100015A
+:1003300000010001000100010001000100010001B5
+:1003400000010001002803540068006500200050EF
+:10035000006C0061006E0063006B0020004B0065C4
+:1003600000790062006F0061007200640000002CE0
+:10037000034F007200740068006F006C0069006E2B
+:100380000065006100720020004B0065007900628A
+:10039000006F006100720064007300000004030934
+:1003A0000409026D00040100A0FA09040000010321
+:1003B000010100092111010001224000070581030C
+:1003C00008000A09040100010301020009211101CA
+:1003D0000001224D000705820308000A09040200FB
+:1003E0000103000000092111010001223600070568
+:1003F000830308000A090403000103000000092127
+:1004000011010001223900070584031000011201C7
+:10041000100100000008EDFE606001000102000113
+:1004200005010906A101050719E029E715002501C5
+:1004300095087501810205081901290595057501C1
+:10044000910295017503910105071900297715009F
+:100450002501957875018102C005010980A10185FA
+:100460000216010026B7001A01002AB70075109580
+:10047000018100C0050C0901A101850316010026B8
+:100480009C021A01002A9C02751095018100C0058A
+:10049000010902A1010901A1000509190129051598
+:1004A00000250195057501810295017503810105FE
+:1004B00001093009311581257F95027508810609EA
+:1004C000381581257F950175088106050C0A3802CB
+:1004D0001581257F950175088106C0C005010906B3
+:1004E000A101050719E029E7150025019508750107
+:1004F00081029501750881010508190129059505F5
+:10050000750191029501750391010507190029FFF5
+:10051000150026FF00950675088100C011241FBE36
+:10052000CFEFDAE0DEBFCDBF04B603FE27C0809177
+:10053000000290910102A0910202B0910302873063
+:10054000904BA740B04BD1F41092000210920102E0
+:10055000109202021092030214BE84B7877F84BFF8
+:100560000FB6F894A8958091600088618093600030
+:10057000109260000FBEE0E0F8E3099511E0A0E002
+:10058000B1E0E0EDF6E402C005900D92A434B107AD
+:10059000D9F722E0A4E4B1E001C01D92A030B20777
+:1005A000E1F70E94E10A0C9466230C940000089580
+:1005B000089581E0089508950C94D8020C94D9020E
+:1005C0000C94DB020E94CD2123E030E0281B31098E
+:1005D000220F209348010895282F2F9880918000A2
+:1005E000211108C0877F8093800010928D001092A7
+:1005F0008C001BC0886080938000233019F48FEF3B
+:100600009FEF0FC083E090E0821B9109880F991F34
+:100610002FEF3FEFA90102C0569547958A95E2F763
+:10062000CA0190938D0080938C000C94E2020E948A
+:10063000E20284E080934701109244010895279AD2
+:100640002F988FEF9FEF90938700809386008AE02A
+:100650008093800089E1809381000E9436210C9470
+:1006600017030E941F036E9A769A0C94D7021F926A
+:100670000F920FB60F9211242F933F938F939F9356
+:10068000EF93FF93E0914501F0914601CF01019670
+:1006900090934601809345010090470102C0F69572
+:1006A000E7950A94E2F7EF7380914401823019F4E0
+:1006B000E03251F404C0813039F4EF3329F48091F1
+:1006C0006F008D7F80936F00F0E0E65EFE4FE49157
+:1006D00021E031E0E29FC001E39F900D11240090E2
+:1006E000480102C0969587950A94E2F790938D0091
+:1006F00080938C00FF91EF919F918F913F912F916B
+:100700000F900FBE0F901F901895CF93DF93EC01C1
+:100710000E94CF1CBE0180E090E0DF91CF910C944D
+:10072000C418462F50E04830510508F04CC0DC0199
+:10073000FA01EA5AFF4F0C94162312968C918823E3
+:1007400009F441C081E090E00E9485033CC012960C
+:100750008C91882311F081E007C081E00EC01296D1
+:100760008C91882349F082E00E94411943E061E0C6
+:1007700082E00E947E0527C082E00E946219F6CFC7
+:1007800012968C91882331F085EE0E9459110E94B7
+:100790008D2119C085EE0E94211215C012968C91F0
+:1007A000882389F08CE891E0089512968C91882333
+:1007B00051F083E791E0089512968C91882319F007
+:1007C0008AE591E0089580E090E0089581E0089541
+:1007D0000C94E60308950F931F93CF93DF938C013E
+:1007E000FC01C081D181CE010E94FD19BE010E9491
+:1007F0006407EC01B8010E94E803882309F478C17A
+:10080000F8018281882309F463C080915801811125
+:1008100027C0C431F0E7DF0709F012C10E94EA03E4
+:1008200081E0809358010E94021C909357018093AD
+:10083000560110924B0110924D0110924C011092F2
+:100840004F0110924E0110925101109250011092DE
+:10085000530110925201109255011092540148C157
+:1008600080915601909157010E940E1C883C910581
+:1008700070F480914B01E82FF0E0EE0FFF1FE45B76
+:10088000FE4FD183C0838F5F80934B0131C1C43150
+:1008900020E7D20708F024C1C23080E7D80710F55E
+:1008A000C11590E7D90709F0DAC0F80182818823E1
+:1008B00009F4BFC00E940415FFEF24E38CE0F1505F
+:1008C00020408040E1F700C000000E945D1C10C184
+:1008D000C431F0E7DF0708F0CFC0C23020E7D2070D
+:1008E00008F49BC0F8018281882309F4A2C00E9409
+:1008F000BC1C811102C00E949D1C0E94D41C90E06F
+:100900009093F1018093F001C230F0E7DF0721F40A
+:100910008091F00181607AC0C33020E7D20721F4D2
+:100920008091F001826072C0C43080E7D80721F462
+:100930008091F00184606AC0C53090E7D90719F44E
+:100940008091F00127C0C630E0E7DE0721F48091F6
+:10095000F00180615BC0C730F0E7DF0721F48091D0
+:10096000F001806253C0C83020E7D20721F48091A3
+:10097000F00180644BC0C93080E7D80721F4809132
+:10098000F001806843C0CA3090E7D90729F480910C
+:10099000F001846088603AC0CB30E0E7DE0721F4E4
+:1009A0008091F0018E7F32C0CC30F0E7DF0721F478
+:1009B0008091F0018D7F2AC0CD3020E7D20721F44D
+:1009C0008091F0018B7F22C0CE3080E7D80719F4E8
+:1009D0008091F0011AC08091F001CF3090E7D907E3
+:1009E00011F48F7E13C0C031E0E7DE0711F48F7D74
+:1009F0000DC0C131F0E7DF0711F48F7B07C0C231B2
+:100A0000D04711F48F7702C08B7F877F8093F001EE
+:100A10008091F0010E94D81C6BC0C11580E7D807F7
+:100A200041F0C130D047F1F081E0809349018093DB
+:100A30004A01C801DF91CF911F910F910C94DE0202
+:100A4000C43120E7D20708F04BC0C23080E7D80796
+:100A500008F048CFC11590E7D90709F42BCFC13072
+:100A6000D04711F7F8018281882319F38091DF01C3
+:100A700081608093DF013CC0C333E0E7DE07A1F46F
+:100A8000F8018281882321F01092490182E017C089
+:100A900080914901811106C086E20E94591186E2C7
+:100AA0000E94211282E019C0C433D04709F0BCCFA4
+:100AB000F8018281882331F010924A0180E20E947D
+:100AC000701216C080914A01811106C087E20E940F
+:100AD000591187E20E94211280E20E94771208C019
+:100AE000C333F0E7DF0761F2C433D04709F39CCF8B
+:100AF00080E0DF91CF911F910F910895CF92DF9207
+:100B0000EF92FF920F931F9301E010E020E030E09E
+:100B10006801790104C0CC0CDD1CEE1CFF1C8A9519
+:100B2000D2F704C0000F111F221F331F6A95D2F79E
+:100B30000C291D292E293F29C090C201D090C30144
+:100B4000E090C401F090C501C022D122E222F3223C
+:100B5000842FC016D106E206F30641F41F910F91CF
+:100B6000FF90EF90DF90CF900C9441191F910F915F
+:100B7000FF90EF90DF90CF900C9462190C943103AA
+:100B80000C94DC022CE0729FF001112430E3839F6F
+:100B9000E00DF11D1124E60FF11DEE0FFF1FEB53C9
+:100BA000FE4F859194910E947607811540E5940748
+:100BB00008F047C0811520E4920708F013C1883E71
+:100BC000910520F5803E910508F07CC1883A910599
+:100BD00078F4853A910508F0A5C08130910509F4B3
+:100BE00071C108F42EC18430910508F06BC129C190
+:100BF0008B3B910508F4A1C0803C910508F421C10C
+:100C0000FC01EE0FFF1FE35CFF4FE6C0811530E2F1
+:100C1000930758F4811541E0940708F053C1803FD1
+:100C2000910508F40EC190650895811520E392079F
+:100C300008F0D5C0FC01FF70EE0FFF1FE354FE4F1C
+:100C4000CBC0811535E5930708F043C0811544E515
+:100C5000940708F0DEC0811522E5920708F581159A
+:100C600031E5930708F0C1C0482F437021E030E020
+:100C700002C0220F331F4A95E2F73C68AC0164E0E2
+:100C8000569547956A95E1F74370342B8F7086959A
+:100C9000869540E2849FC0011124822B932B0895F6
+:100CA000282F26952695AC0143705527811593452D
+:100CB00008F0A0C080E2289F9001112481E090E01C
+:100CC00002C0880F991F4A95E2F7822B932B9C68EC
+:100CD00008958F3240E7940790F48F3120E7920710
+:100CE00008F0A2C0811536E5930708F497C09C016F
+:100CF00030562115304108F0A4C09F7093C0803356
+:100D000020E7920709F497C008F492C0813340E7C6
+:100D1000940709F493C08233904709F092C080E0B1
+:100D200093ED0895853A910509F48EC0863A9105B0
+:100D300009F08DC082E890E40895883A910509F49D
+:100D400089C0893A910509F488C08A3A910509F465
+:100D500087C08B3A910509F486C08C3A910509F455
+:100D600085C08D3A910509F484C0803B910509F452
+:100D700083C08E3A910509F482C08F3A910509F437
+:100D800081C0813B910509F480C0823B910509F443
+:100D90007FC0833B910509F47EC0843B910509F433
+:100DA0007DC0853B910509F47CC0863B910509F423
+:100DB0007BC0873B910509F47AC0883B910509F413
+:100DC00079C0893B910509F478C08A3B910509F403
+:100DD00077C080E094E408958591949108959927CF
+:100DE000906C08959F70906A0895982F8827816F5E
+:100DF000906A089590E2299F9001112481E090E08B
+:100E000002C0880F991F4A95E2F7822B932B9A68AC
+:100E10000895982F8827846F906A08958F71992775
+:100E2000982F8827906208958F519047946D089568
+:100E300080E091ED089580E090ED089580E092EDDE
+:100E4000089580E090E0089581E890E4089583E8B3
+:100E500090E4089582EE94E4089589EE94E4089570
+:100E60008AEE94E4089585EB94E4089586EB94E487
+:100E7000089587EB94E408958CEC94E408958DEC48
+:100E800094E4089583E895E408958AE895E4089544
+:100E900082E995E4089584E995E4089581E296E471
+:100EA000089583E296E4089584E296E4089585E245
+:100EB00096E4089586E296E4089587E296E408951C
+:100EC0008AE296E4089508959CE0799FF001112448
+:100ED00090E3899FE00DF11D1124E60FF11DEE0F47
+:100EE000FF1FEB53FE4F8591949108958238910531
+:100EF00049F1B0F48133910509F458C048F48932BE
+:100F0000910509F44EC08A32910509F454C0089540
+:100F10008533910509F440C08933910599F008950E
+:100F2000833E910529F138F4803E910591F0823E8F
+:100F30009105A1F00895863E9105F9F0873E91054F
+:100F400031F108952091F00120FD3AC021FD38C013
+:100F500008958091F00180FD35C032C08091F0018C
+:100F600082FF32C08091F00184FD30C083EE39C031
+:100F70008091F00182FD28C0F5CF8091F00183FFC0
+:100F800027C08091F00184FD21C087EE2AC08091A6
+:100F9000F00183FD1DC0F5CF8091F00185FD1AC0E1
+:100FA0001BC08091F00185FD17C014C08091F00135
+:100FB00086FD14C015C08091F00186FD11C00EC0E1
+:100FC00080EE0FC089E30DC082EE0BC080E009C047
+:100FD00086EE07C089E205C085E303C08AE201C04E
+:100FE00081E390E008950C94E002E82FF0E0EF5DDB
+:100FF000FE4F8081E82FEF70F0E082958F7021E046
+:1010000030E0A90102C0440F551F8A95E2F740A3C2
+:1010100008950F931F93CF93DF93C3E0D0E001E0D7
+:1010200010E0FE01EF5DFE4F8081E82FEF70F0E0F1
+:1010300021A182958F70A80102C0440F551F8A9587
+:10104000E2F7CA01822B81A38C2F0E94F50721971A
+:1010500040F78BE090E061E070E0FC01EB5EFE4F5A
+:101060002081E22FEF70F0E042A122952F70DB018A
+:1010700002C0AA0FBB1F2A95E2F79D01242B22A3D1
+:10108000019758F7DF91CF911F910F9108950F931A
+:101090001F93CF93DF9385B7806885BF85B780683E
+:1010A00085BFC3E0D0E001E010E0FE01EF5DFE4F40
+:1010B0008081E82FEF70F0E021A182958F70A80168
+:1010C00002C0440F551F8A95E2F7CA01822B81A303
+:1010D0008C2F0E94F507219740F78BE090E061E0AC
+:1010E00070E0FC01EB5EFE4F2081E22FEF70F0E03C
+:1010F00042A122952F70DB0102C0AA0FBB1F2A95C7
+:10110000E2F79D01242B22A3019758F7DF91CF919D
+:101110001F910F910C94BE05EF92FF920F931F93B6
+:10112000CF93DF9301E611E0C3E0EE24E394F12CCA
+:10113000D5E08C2F0E94F5078BE090E040E050E076
+:10114000FC01EB5EFE4F6081E62FEF70F0E020A126
+:1011500030E062956F7002C0359527956A95E2F789
+:1011600020FD09C09701082E02C0220F331F0A94E8
+:10117000E2F7422B532B019718F7F80192918291D5
+:101180008F018417950721F051834083D09300018C
+:101190008C2F0E94F507C15060F68091000187FDF9
+:1011A0002CC08150809300018F3F39F08FE99FE080
+:1011B0000197F1F700C0000020C080915F0190917D
+:1011C0006001909368018093670180915D01909127
+:1011D0005E01909366018093650180915B0190911F
+:1011E0005C01909364018093630180915901909117
+:1011F0005A0190936201809361010E94C00581E0D1
+:10120000DF91CF911F910F91FF90EF900895E82FFC
+:10121000F0E0EE0FFF1FEF59FE4F8081918108959E
+:1012200008950F931F93CF9309E611E0C0E0F801F2
+:10123000929182918F010E94781BC80FF1E00136D4
+:101240001F07A9F78C2FCF911F910F9108958091BF
+:1012500079010895CF93DF9300D01F92CDB7DEB709
+:101260009C018091F601843019F593E099833B83CA
+:101270002A839093E9008FEF9091E800815095FDCB
+:1012800006C095ED9A95F1F700008111F5CF809198
+:10129000E80085FF0DC040E050E063E070E0CE0163
+:1012A00001960E948A0B8091E8008E778093E80077
+:1012B0000F900F900F90DF91CF910895CF93DF9310
+:1012C00000D01F92CDB7DEB72091F601243021F572
+:1012D00022E029839B838A8383E08093E9008FEF58
+:1012E0009091E800815095FD06C095ED9A95F1F733
+:1012F00000008111F5CF8091E80085FF0DC040E02E
+:1013000050E063E070E0CE0101960E948A0B80916C
+:10131000E8008E778093E8000F900F900F90DF9198
+:10132000CF9108952091F6012430F1F422E020932A
+:10133000E9002FEF3091E800215035FD06C035ED72
+:101340003A95F1F700002111F5CF2091E80025FF33
+:101350000BC040E050E065E070E00E948A0B809195
+:10136000E8008E778093E8000895CF93DF93EC0137
+:101370009091F601943009F046C080910B018823CA
+:10138000D9F080910C018823B9F09093E9008FEF98
+:101390009091E800815095FD06C095E19A95F1F78E
+:1013A00000008111F5CF8091E80085FF2CC040E05E
+:1013B00050E060E170E017C081E08093E9008FEFBA
+:1013C0009091E800815095FD06C095ED9A95F1F752
+:1013D00000008111F5CF8091E80085FF14C040E046
+:1013E00050E068E070E0CE010E948A0B8091E80036
+:1013F0008E778093E80080E1FE01A9E6B1E00190DC
+:101400000D928A95E1F7DF91CF9108958091F501D2
+:10141000811109C00E941F0D0E947C0D8091E20085
+:1014200084608093E20008951092F5010895089574
+:1014300008950C94C51B42E061EC81E00E94990C78
+:1014400042E061EC82E00E94990C42E061EC83E0B2
+:101450000E94990C42E161EC84E00C94990C80911B
+:10146000F801833009F455C030F4813071F08230D6
+:1014700009F48EC008958A3009F47AC08B3009F4DB
+:1014800060C0893009F09CC020C08091F701813A8A
+:1014900009F096C08091E800877F8093E8008091F2
+:1014A000FB019091FC01892B21F460E189E691E038
+:1014B00003C060E080E090E070E00E94D50B809176
+:1014C000E8008B778093E80008958091F7018132DE
+:1014D00009F076C08091FB019091FC01009719F012
+:1014E000039709F06DC08091E800877F8093E80042
+:1014F0008091E80082FD05C08091F6018111F8CF4E
+:101500005FC08091F100809379018091E8008B7732
+:1015100053C08091F701813A09F052C08091FB01DC
+:101520009091FC01892B09F04BC08091E800877FE6
+:101530008093E8008091E80080FFFCCF80910B0150
+:1015400036C08091F7018132D9F58091FB019091ED
+:10155000FC01892BA9F58091E800877F8093E80042
+:101560000E94CE0C8091F90180930B010C9404151C
+:101570008091F701813221F58091E800877F809387
+:10158000E8000E94CE0C8091FA0180937A010895C0
+:101590008091F701813AA1F48091E800877F8093E0
+:1015A000E8008091E80080FFFCCF80917A01809371
+:1015B000F1008091E8008E778093E8000C94CE0CC7
+:1015C000089584B7877F84BF0FB6F894A89580915B
+:1015D0006000886180936000109260000FBE80E818
+:1015E00080936100109261000E9471100E941F0D93
+:1015F0000E947C0D8091E20084608093E2007894E8
+:101600000E9402100E94731081E091E00E941D1060
+:101610008091F601853069F40E94841B8091F40169
+:101620008823B1F30E94B41B882391F30E94740BAA
+:10163000EFCF0E947B10ECCF292F332723303105C9
+:10164000C9F064F42130310581F02230310509F010
+:1016500043C08DE690E021EA33E042C021323105FB
+:10166000F1F02232310541F137C082E190E02EE005
+:1016700034E036C099278130910541F082309105E0
+:1016800041F0892B49F5EDE9F3E005C0EFE6F3E021
+:1016900002C0E5E4F3E0849190E09F0121C0643052
+:1016A000D8F4E62FF0E0EE0FFF1FEF5CFE4F208135
+:1016B000318189E090E014C0643070F470E0FB0187
+:1016C000EE0FFF1FE75DFE4F20813181FB01EB5DD7
+:1016D000FE4F808190E004C080E090E020E030E0A8
+:1016E000FA0131832083089580E189BD82E189BDBB
+:1016F00009B400FEFDCF8091D8008F7D8093D80083
+:101700008091E00082608093E0008091E00081FDA4
+:10171000FCCF0895CF92DF92EF92FF920F931F9329
+:10172000CF93DF93EC018B016A010E94ED0C8111D4
+:1017300033C0C114D10439F0F60180819181081BB6
+:10174000190BC80FD91FE12CF12C0115110519F146
+:101750008091E80085FD16C08091E8008E77809327
+:10176000E800C114D10449F0F60180819181E80EAE
+:10177000F91EF182E08285E00FC00E94ED0C882303
+:1017800021F30AC089918093F10001501109FFEF04
+:10179000EF1AFF0ADACF80E0DF91CF911F910F910E
+:1017A000FF90EF90DF90CF9008952091FD01309150
+:1017B000FE012617370748F06115710539F42091AD
+:1017C000E8002E772093E80001C0B90140E06115E0
+:1017D0007105A9F12091F601222309F443C02530B7
+:1017E00009F442C02091E80023FD40C02091E800A8
+:1017F00022FD32C02091E80020FFE9CF4091F300A4
+:101800002091F20030E0342BFC01CF01611571050D
+:1018100059F02830310540F481918093F1006150F6
+:1018200071092F5F3F4FF1CF41E02830310509F0BA
+:1018300040E02091E8002E772093E800C8CF4111C6
+:10184000C9CF0AC08091F601882361F0853061F02C
+:101850008091E80083FD0AC08091E80082FFF2CF0A
+:1018600080E0089582E0089583E0089581E008957E
+:101870002091FD013091FE012617370748F06115D0
+:10188000710539F42091E8002E772093E80001C01B
+:10189000B901FC0120E06115710591F18091F6011B
+:1018A000882309F440C0853009F43FC08091E800E6
+:1018B00083FD3DC08091E80082FD2FC08091E8004B
+:1018C00080FFE9CF2091F3008091F20090E0922B0D
+:1018D0006115710559F08830910540F424912093E9
+:1018E000F1003196615071090196F2CF21E008971D
+:1018F00009F020E08091E8008E778093E800CBCF5C
+:101900002111CCCF0AC08091F601882361F0853087
+:1019100061F08091E80083FD0AC08091E80082FFB9
+:10192000F2CF80E0089582E0089583E0089581E099
+:101930000895982F973058F59093E900981739F04B
+:101940007091EC002091ED005091F00003C0242F25
+:10195000762F50E021FF19C03091EB003E7F30938D
+:10196000EB003091ED003D7F3093ED003091EB00C6
+:1019700031603093EB007093EC002093ED005093B6
+:10198000F0002091EE0027FF07C09F5FD3CF8F703C
+:101990008093E90081E0089580E008958091F70147
+:1019A00087FF11C08091E80082FD05C08091F6019B
+:1019B0008111F8CF11C08091E8008B770BC0809126
+:1019C000F601882349F08091E80080FFF8CF8091EC
+:1019D000E8008E778093E80008952091E40030912C
+:1019E000E50095E64091EC00842F817040FF22C015
+:1019F0008091E80080FD1CC08091F601882391F061
+:101A0000853091F08091EB0085FD10C04091E4009D
+:101A10005091E5004217530729F39A01915011F7AD
+:101A200084E0089582E0089583E0089581E00895B8
+:101A300080E008954091E80042FFDECF08950E94C3
+:101A40008D0D0E94950DE0EEF0E080818160808335
+:101A5000E8EDF0E080818F77808319BCA7EDB0E0DE
+:101A60008C918E7F8C9380818F7E80831092F50184
+:101A700008950F931F93CF93DF930E948D0D0E94C3
+:101A8000950DC8EDD0E088818F7788838881806844
+:101A9000888388818F7D888319BC1092F60110920B
+:101AA000F2011092F4011092F30100EE10E0F8013F
+:101AB00080818B7F808388818160888342E060E0C1
+:101AC00080E00E94990CE1EEF0E080818E7F8083BF
+:101AD000E2EEF0E080818160808380818860808395
+:101AE000F80180818E7F8083888180618883DF9187
+:101AF000CF911F910F910895E8EDF0E080818F7EE6
+:101B00008083E7EDF0E080818160808384E082BFA4
+:101B100081E08093F5010C94390DE8EDF0E08081CF
+:101B20008E7F80831092E20008951092DA00109266
+:101B3000E10008951F920F920FB60F9211242F9378
+:101B40003F934F935F936F937F938F939F93AF9345
+:101B5000BF93EF93FF938091E10082FF0BC08091D0
+:101B6000E20082FF07C08091E1008B7F8093E1005B
+:101B70000E9401108091DA0080FF1FC08091D80080
+:101B800080FF1BC08091DA008E7F8093DA00809105
+:101B9000D90080FF0DC080E189BD82E189BD09B413
+:101BA00000FEFDCF81E08093F6010E94060A05C089
+:101BB00019BC1092F6010E94140A8091E10080FF86
+:101BC00019C08091E20080FF15C08091E2008E7FF5
+:101BD0008093E2008091E20080618093E200809136
+:101BE000D80080628093D80019BC85E08093F6010C
+:101BF0000E94180A8091E10084FF30C08091E200C9
+:101C000084FF2CC080E189BD82E189BD09B400FE5A
+:101C1000FDCF8091D8008F7D8093D8008091E10026
+:101C20008F7E8093E1008091E2008F7E8093E200BE
+:101C30008091E20081608093E2008091F20188232C
+:101C400011F084E007C08091E30087FD02C081E0CD
+:101C500001C083E08093F6010E94190A8091E1009F
+:101C600083FF29C08091E20083FF25C08091E100BD
+:101C7000877F8093E10082E08093F6011092F20169
+:101C80008091E1008E7F8093E1008091E2008E7F61
+:101C90008093E2008091E20080618093E20042E064
+:101CA00060E080E00E94990C8091F0008860809351
+:101CB000F0000E94170AFF91EF91BF91AF919F91A1
+:101CC0008F917F916F915F914F913F912F910F90E5
+:101CD0000FBE0F901F9018951F920F920FB60F9284
+:101CE00011242F933F934F935F936F937F938F9321
+:101CF0009F93AF93BF93CF93DF93EF93FF93C091E5
+:101D0000E900CF708091EC00D82FD17080FDD0E831
+:101D10001092E9008091F000877F8093F000789422
+:101D20000E94B00E1092E9008091F00088608093CC
+:101D3000F000CD2BCF70C093E900FF91EF91DF91C0
+:101D4000CF91BF91AF919F918F917F916F915F9153
+:101D50004F913F912F910F900FBE0F901F901895AC
+:101D60001F93CF93DF93CDB7DEB7AA970FB6F89442
+:101D7000DEBF0FBECDBFE7EFF1E088E08E0F9091A0
+:101D8000F10091938E13FBCF0E942F0A8091E800FF
+:101D900083FF1FC18091F7019091F801492F50E016
+:101DA0004A30510508F015C1FA01E25AFF4F0C9470
+:101DB0001623803881F0823809F00BC18091FB0135
+:101DC0008F708093E9008091EB0085FB882780F974
+:101DD0001092E90006C08091F3019091F4019111F5
+:101DE00082609091E800977F9093E8008093F100E3
+:101DF0001092F100C8C0282F2D7F09F0EAC0882377
+:101E000019F0823061F0E5C08091F901813009F06C
+:101E1000E0C0933009F080E08093F4012BC0809102
+:101E2000F901811127C08091FB018F7009F4D1C0A5
+:101E30008093E9002091EB0020FF1CC0933021F437
+:101E40008091EB00806214C09091EB0090619093C0
+:101E5000EB0021E030E0A90102C0440F551F8A9534
+:101E6000E2F74093EA001092EA008091EB0088606C
+:101E70008093EB001092E9008091E800877F86C094
+:101E80008111A7C01091F9011F778091E30080783C
+:101E9000812B8093E3008091E800877F8093E800A6
+:101EA0000E94CE0C8091E80080FFFCCF8091E3007F
+:101EB00080688093E300111102C082E001C083E0DA
+:101EC0008093F60186C08058823008F082C08091ED
+:101ED000F9019091FA018C3D53E0950779F583E083
+:101EE0008A838AE289834FB7F894DE01139620E053
+:101EF0003EE051E2E32FF0E050935700E49120FFE1
+:101F000003C0E295EF703F5FEF708E2F90E0EA30F4
+:101F100010F0C79601C0C0968D939D932F5F24311A
+:101F200049F74FBF8091E800877F8093E8006AE21D
+:101F300070E0CE0101960E94D50B14C0AE014F5F38
+:101F40005F4F6091FB010E941C0BBC01892B09F4BF
+:101F500040C09091E800977F9093E80089819A8132
+:101F60000E94380C8091E8008B778093E80031C0A4
+:101F7000803879F58091E800877F8093E800809130
+:101F8000F2018093F1008091E8008E778093E80061
+:101F90000E94CE0C1EC081111CC09091F90192309C
+:101FA000C0F48091E800877F8093E8009093F2016D
+:101FB0000E94CE0C8091F201811106C08091E30055
+:101FC00087FD02C081E001C084E08093F6010E9499
+:101FD0001B0A8091E80083FF0AC08091E800877F98
+:101FE0008093E8008091EB0080628093EB00AA96DA
+:101FF0000FB6F894DEBF0FBECDBFDF91CF911F911A
+:1020000008950895CF938091F6018823A1F0C0919F
+:10201000E900CF709091EC00892F817090FD80E8ED
+:10202000C82B1092E9008091E80083FD0E94B00E59
+:10203000CF70C093E900CF91089590938001809371
+:102040007F010895E0917F01F0918001309721F0A8
+:102050000190F081E02D099480E00895E0917F01E6
+:10206000F0918001309721F00280F381E02D0994F6
+:102070000895E0917F01F0918001309721F0048074
+:10208000F581E02D0994089520917D0130917E0124
+:102090008217930771F090937E0180937D01E09108
+:1020A0007F01F0918001309721F00680F781E02DCB
+:1020B0000994089520917B0130917C018217930748
+:1020C00071F090937C0180937B01E0917F01F0910E
+:1020D0008001309721F00084F185E02D0994089566
+:1020E00008950C9470100E94F91B0E9447080E94EA
+:1020F0007F1C0C9436215F926F927F928F929F92F9
+:10210000AF92BF92CF92DF92EF92FF920F931F9305
+:10211000CF93DF9300D000D01F92CDB7DEB70E94DF
+:102120008C089AE8C92E91E0D92E03E010E0AA2489
+:10213000A394B12C502E802F0E9407094C01F60168
+:10214000729062906F016826792661147104A1F47F
+:102150000150110978F78FEF89838A831B820E94CF
+:10216000021C8160782F9D838C8349815A816B8109
+:102170008D810E942B1138C08091DF0181FD0E946A
+:1021800010092BE030E07501022E02C0EE0CFF1C9E
+:102190000A94E2F7C70186219721892B09F1298347
+:1021A0005A828E209F2091E0892809F490E09B8339
+:1021B0000E94021C8160782F9D838C8349815A8103
+:1021C0006B818D810E942B11000F111FF801EE57BA
+:1021D000FE4F80819181E826F926F182E08204C0D9
+:1021E0002150310980F6B4CF0E94601E1091810108
+:1021F0000E9422101817D1F00E94221080938101B2
+:102200000F900F900F900F900F90DF91CF911F9133
+:102210000F91FF90EF90DF90CF90BF90AF909F9085
+:102220008F907F906F905F900C94F3070F900F90BA
+:102230000F900F900F90DF91CF911F910F91FF9012
+:10224000EF90DF90CF90BF90AF909F908F907F9056
+:102250006F905F900895CF93DF93CDB7DEB72B9744
+:102260000FB6F894DEBF0FBECDBF4F835887698786
+:102270007A878B87DE01119686E0FD0111928A959F
+:10228000E9F785E0FE01379601900D928A95E1F716
+:1022900049815A816B817C818D819E810E94A21728
+:1022A0002B960FB6F894DEBF0FBECDBFDF91CF9156
+:1022B0000895CF93882309F4C2C0C82F823859F4F7
+:1022C0000E94221081FDBBC089E30E947C1A0E94FB
+:1022D000491B89E30CC0833879F40E94221080FDE9
+:1022E000AEC083E50E947C1A0E94491B83E50E94D0
+:1022F000BE1ACF910C94491B843859F40E942210C5
+:1023000082FD9DC087E40E947C1A0E94491B87E4DD
+:10231000EECF8CEF8C0F813A48F48C2F0E949F20D7
+:1023200081118DC08C2F0E947C1AE3CF80E28C0F2C
+:10233000883048F4C77081E001C0880FCA95EAF779
+:102340000E94021BD6CF8BE58C0F833078F4C53A00
+:1023500029F0C63A31F083E890E005C081E890E0CA
+:1023600002C082E890E0CF910C94441088E58C0F75
+:10237000833108F064C0C83A39F1C93A41F1CA3A28
+:1023800049F1CB3A51F1CC3A59F1CD3A61F1C03B28
+:1023900069F1CE3A71F1CF3A79F1C13B81F1C23B9B
+:1023A00089F1C33B91F1C43B99F1C53BA1F1C63B17
+:1023B000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B77
+:1023C000C9F180E090E038C082EE90E035C089EE3F
+:1023D00090E032C08AEE90E02FC085EB90E02CC0F8
+:1023E00086EB90E029C087EB90E026C08CEC90E073
+:1023F00023C08DEC90E020C083E891E01DC08AE806
+:1024000091E01AC082E991E017C084E991E014C01C
+:1024100081E292E011C083E292E00EC084E292E099
+:102420000BC085E292E008C086E292E005C087E238
+:1024300092E002C08AE292E0CF910C945A10CF91C0
+:102440000895882309F44BC0823859F40E94221061
+:1024500081FF45C089E30E947C1A0E94491B89E3E1
+:102460000CC0833871F40E94221080FF38C083E5CD
+:102470000E947C1A0E94491B83E50E94BE1A0C949C
+:10248000491B843859F40E94221082FF28C087E437
+:102490000E947C1A0E94491B87E4EFCF9CEF980FA3
+:1024A000913A58F390E2980F983050F4877091E089
+:1024B00001C0990F8A95EAF7892F0E94081BDFCF88
+:1024C0009BE5980F933020F480E090E00C9444104A
+:1024D000885A833120F480E090E00C945A100895DB
+:1024E000882321F00E94021B0C94491B0895882325
+:1024F00021F00E94081B0C94491B08957F928F9233
+:102500009F92AF92BF92CF92DF92EF92FF920F9382
+:102510001F93CF93DF931F92CDB7DEB77C01C62EFA
+:10252000772EFC01058102950F70128111110E9416
+:102530001F1B0E94751A882379F0112369F080E22D
+:102540008C0D883048F082E00E945E1A0E94751A55
+:1025500091E0D82ED92601C0D12CE72DE295EF705D
+:10256000F0E0E859FF4F0C941623872D807F072D4C
+:102570000F70882311F00295007F112389F000234A
+:1025800009F499C180E28C0D883020F4802F0E94DC
+:10259000021B03C0802F0E94121B0E94491B8BC18B
+:1025A0008C2D0E942112002309F4C3C180E28C0DFE
+:1025B000883020F4802F0E94081B03C0802F0E94C7
+:1025C000181B0E94491BB5C1872D807F972D9F70D6
+:1025D000803211F4892F03C0892F8295807FCC200F
+:1025E00021F0F1E0CF16A1F01DC0112339F0002336
+:1025F00019F1013009F50E94321B9BC1002319F02B
+:10260000013009F496C189830E94351B898110C16C
+:10261000112321F0063008F08CC10EC0053008F0FF
+:1026200088C106C1112359F0002331F0F7019581CB
+:1026300090FF41C19F7095830E9470127AC1002360
+:1026400009F4F6C03EC1872D86958695837090E08B
+:10265000009719F0019761F06CC1112321F08C2DC6
+:10266000972D937002C080E090E00E94441061C1F9
+:10267000112321F08C2D972D937002C080E090E003
+:102680000E945A1056C18C2D112319F00E94681D0A
+:1026900002C00E94D01D0E94551E4BC1872D837021
+:1026A00009F052C0111145C18C2D82958695877015
+:1026B000880F880F9C2D9F70892E912CA12CB12CF6
+:1026C000082E04C0880C991CAA1CBB1C0A94D2F7C3
+:1026D000C4FE14C00FE010E020E030E0B901A80112
+:1026E00004C0440F551F661F771F8A95D2F7CB0190
+:1026F000BA01609570958095909503C060E070E098
+:10270000CB01272D26952695237030E02230310508
+:1027100069F02330310589F0682979298A299B29B4
+:102720002130310571F00E94EA1803C16829792926
+:102730008A299B290E940619FCC00E94EA18C5013B
+:10274000B4010E94CE18F5C0112319F0872D8170B5
+:1027500001C08695882309F4ECC08C2D829586955E
+:102760008770880F880F9C2D9F70892E912CA12C2B
+:10277000B12C082E04C0880C991CAA1CBB1C0A94FE
+:10278000D2F7C4FE14C00FE010E020E030E0B90141
+:10279000A80104C0440F551F661F771F8A95D2F702
+:1027A000CB01BA01609570958095909503C060E06B
+:1027B00070E0CB01272D269526952370422F50E0FF
+:1027C0004230510569F04330510589F06829792973
+:1027D0008A299B294130510571F00E94C419A9C072
+:1027E000682979298A299B290E94E019A2C00E94A0
+:1027F000C419C501B4010E94A8199BC08C2D90E09A
+:10280000FC01E05EF109E531F10508F050C0E8583F
+:10281000FF4F0C9416230C2D0F70872D8F711123F1
+:1028200021F00E944119802F07CF0E946219802F4A
+:102830000E9477127EC0112341F0053008F079C064
+:10284000872D8F710E94871974C0063008F071C0FF
+:10285000F7CF112339F0872D8F710E94411969C07C
+:102860001123C9F3872D8F710E94621962C0112351
+:1028700029F0872D8F710E942C195BC00E942219AC
+:1028800058C0112351F0172D1F71812F0E9441193B
+:1028900063E0812F0E94551A4CC081E00E945E1AAD
+:1028A000023008F446C082E00E945E1A42C0112342
+:1028B00031F0002381F28C2D0E9459113AC000237F
+:1028C00089F28C2D0E94211234C0472D4F706C2D3F
+:1028D000C7010E9491030E9446182BC0111129C004
+:1028E000472D4F7050E042305105B9F04CF441157E
+:1028F000510581F041305105E1F40E945E2119C07B
+:102900004330510569F04430510599F48C2D0E94F3
+:10291000B0210FC00E9447210CC00E947A2109C03B
+:102920000E948D2106C0472D4F706C2DC7010E945B
+:102930006307DD20F9F00E94511A80FD1BC0F701EA
+:1029400012820E944B1A0E944119C7010E94C914A9
+:102950000E944B1A0F90DF91CF911F910F91FF9022
+:10296000EF90DF90CF90BF90AF909F908F907F902F
+:102970000C9462190F90DF91CF911F910F91FF90EE
+:10298000EF90DF90CF90BF90AF909F908F907F900F
+:1029900008950F931F93CF93DF93EC018881998162
+:1029A0002B813C81232BB9F09F3F11F48F3F99F08D
+:1029B000CE010E94EB03882371F0688179818A81BE
+:1029C0000E94471A8C010E94FC190E94C318B8018A
+:1029D000CE010E947E12DF91CF911F910F91089539
+:1029E0000E941F1B0E942F1B0E94F41A0E94491B69
+:1029F0000E94051F0E94551E80E090E00E94441036
+:102A000080E090E00C945A100E940F1B0C94F0147C
+:102A10000E943C1A292F22952F7030E02C3031056E
+:102A20004CF42A3031056CF4225031092230310542
+:102A3000A8F407C02C30310569F02F30310551F072
+:102A40000DC0803F69F018F4803E40F409C0843F17
+:102A500029F406C093FB882780F9089580E0089543
+:102A600081E00895CF93DF9300D000D01F92CDB7BF
+:102A7000DEB70F900F900F900F900F90DF91CF91D6
+:102A80000895CF93DF9300D000D000D0CDB7DEB74C
+:102A900026960FB6F894DEBF0FBECDBFDF91CF9163
+:102AA00008951F93CF93DF93C0918A0116E0809120
+:102AB0008B01C81799F0D0E01C9FF0011D9FF00D0D
+:102AC0001124E457FE4F40815181628173818481DA
+:102AD00095810E9441152196C770E9CFDF91CF9172
+:102AE0001F9108954091BC015091BD016091BE01BC
+:102AF0007091BF018091C0019091C1010C9441156A
+:102B00008091C10182958F7009F054C08091BE01FF
+:102B1000882309F44FC080918A01A0918B016091B4
+:102B2000BC017091BD014091BF015091C001B6E060
+:102B30008A1709F43FC090E041155105C1F17F3F6C
+:102B400011F46F3FA1F1B89FF001B99FF00D11246E
+:102B5000E457FE4F218172132AC02081621327C0DF
+:102B60002281211124C0238134812417350710F4D8
+:102B700021503109241B350B283C3105C0F420912C
+:102B8000C1012F7020612093C10126E0289FF00130
+:102B9000299FF00D1124EF56FE4F80818F708061C8
+:102BA00080838CEB91E00E94C9140C94511501961E
+:102BB0008770BECF0895CF92DF92EF92FF920F936E
+:102BC0001F93CF93DF93CDB7DEB762970FB6F8941C
+:102BD000DEBF0FBECDBF8C0185E0F801DE011D9682
+:102BE00001900D928A95E1F7D8014C9111965C9174
+:102BF000119712966C9112971396CD90DC901497C2
+:102C00003091BC017091BD018091BF019091C001D4
+:102C1000009709F46BC17F3F19F43F3F09F466C187
+:102C2000E090BE01EE2009F4C0C02091C101C81699
+:102C3000D90628F0F601E81BF90BCF0104C08095F6
+:102C400090958C0D9D1DFF24F394883C910578F0A0
+:102C5000F12C207F09F0C6C07C2DD98AC88A8989C9
+:102C60000E9432158CEB91E00E94C914B1C0822FF2
+:102C7000807F09F046C0751314C0341312C061116F
+:102C800010C02F7020612093C1010E9472158CEB3F
+:102C900091E00E94C9148091C101D80115968C93CE
+:102CA0002EC0CD2819F15F3F11F44F3FF9F0F62EF9
+:102CB00061111CC080918A0120918B0136E082173E
+:102CC00009F45AC090E0389FF001399FF00D1124AB
+:102CD000E457FE4F7181571306C07081471303C03C
+:102CE0007281711103C001968770E9CFF62E6623B9
+:102CF00009F418C18091C10181608093C101F12C58
+:102D000011C1751308C0341306C0611104C080914D
+:102D1000C101D801C3C04D875E878D859E856A8BB2
+:102D20000E9408156A898823E1F16623D1F1209178
+:102D3000C101822F82958F7090E0029774F080918C
+:102D4000BC019091BD0198878F831986DB86CA8666
+:102D50002C87CE0107960E94C91486E0F801ACEBDF
+:102D6000B1E001900D928A95E1F70E9480150E94D2
+:102D70007215FF24F394D6C04D875E878D859E859E
+:102D80000E943C1A292F22952F7030E02230310505
+:102D90000CF0BCC09F7009F0B6C0805E883008F4AB
+:102DA000C1C0C8010E94C914E4CFC816D90608F4EE
+:102DB00053C0F601E81BF90BCF01883C910508F4DC
+:102DC00050C0F12C7C2DD98AC88A89890E9432157D
+:102DD000ECEBF1E086E0DF011D928A95E9F70E94B5
+:102DE0007215A0C0751314C0341312C0611110C045
+:102DF0008091C101F8018583C8010E94C91486E051
+:102E0000ECEBF1E0DF011D928A95E9F7FE2C8AC018
+:102E10004D875E878D859E856A8B0E9408156A891D
+:102E2000882309F4BECF662309F4BBCF2091C101EA
+:102E3000822F82958F7090E002970CF48ECF809154
+:102E4000BC019091BD019A8389831B82DD82CC8273
+:102E50002E83CE0101967FCF809590958C0D9D1D80
+:102E6000ACCFF62E662309F49CCF75132EC0341315
+:102E70002CC02091C10120FD1FC0822F82958F7030
+:102E8000D9F0D80115962C9315978F3049F08F5FA4
+:102E9000982F9295907F822F8F70892B15968C9307
+:102EA000C8010E94C91486E0F801ACEBB1E00190C2
+:102EB0000D928A95E1F793CF86E0F801ACEBB1E093
+:102EC00001900D928A95E1F72DC04D875E878D8523
+:102ED0009E850E940815811140CF8091C1018160BB
+:102EE0008093C101C8010E94C9141CC0662309F463
+:102EF00058CF4D875E878D859E850E940815882353
+:102F000009F44FCF2ACF811148CF0CC024303105AE
+:102F10000CF047CF9F7009F440CFF8019581907F66
+:102F200009F03BCF8F2D62960FB6F894DEBF0FBE2F
+:102F3000CDBFDF91CF911F910F91FF90EF90DF9068
+:102F4000CF9008951F93CF93DF93CDB7DEB72C9723
+:102F50000FB6F894DEBF0FBECDBF4F835887698789
+:102F60007A878B879C87CE0107960E94DB15882382
+:102F700069F08F8198852A853B85232BF1F19F3F4E
+:102F800009F063C08F3F09F060C037C086E0FE01E2
+:102F90003796DE01119601900D928A95E1F76F81C7
+:102FA0007885EA85FB85309741F17F3F11F46F3FCB
+:102FB00021F120918B0130E0C9010196877099279A
+:102FC00040918A0150E08417950709F447C069834E
+:102FD0007A83FD83EC8396E0929FD001939FB00D9E
+:102FE0001124A457BE4FFE01319601900D929A957F
+:102FF000E1F780938B010E94511516E080918A01C0
+:1030000090918B018917C1F1189FC0011124845739
+:103010009E4F0E94DB15882379F1E0918A011E9F63
+:10302000F0011124E457FE4F408151816281738188
+:10303000848195810E94411580918A0190E00196DA
+:103040008770992780938A01D9CF4F8158856985E8
+:103050007A858B859C850E944115CFCF0E940415EF
+:1030600010928B0110928A01ECEBF1E086E0DF0117
+:103070001D928A95E9F7C1CF2C960FB6F894DEBF62
+:103080000FBECDBFDF91CF911F910895EF92FF92B8
+:103090000F931F93CF93DF938C01892B09F46CC09E
+:1030A000F12CEE24E394E8012196F8018491843711
+:1030B00040F4843008F051C0813081F0823019F141
+:1030C0005BC0853709F444C0A8F19CE7980F90379E
+:1030D00008F052C08F770E94211241C00E5F1F4F2F
+:1030E000FE01C49180E28C0F883048F4C7708E2DA9
+:1030F00001C0880FCA95EAF70E94221B14C08C2FCA
+:103100000E9459112DC00E5F1F4FFE01C49180E235
+:103110008C0F883058F4C7708E2D01C0880FCA9567
+:10312000EAF70E94281B0E94491B1AC08C2F0E949C
+:10313000211216C00E5F1F4FFE01C491CC2381F0F7
+:103140008FE99FE00197F1F700C00000C150F6CF72
+:103150000E5F1F4FFE01F49003C00E9459118E01B3
+:103160008F2D882309F49FCFEFE9FFE03197F1F726
+:1031700000C000008150F5CFDF91CF911F910F91DA
+:10318000FF90EF90089508956093C6017093C70172
+:103190008093C8019093C9010C94F0140F931F936E
+:1031A0000091C6011091C7012091C8013091C90159
+:1031B000DC01CB01802B912BA22BB32B8093C6017A
+:1031C0009093C701A093C801B093C9011F910F91BB
+:1031D0000C94F0140F931F930091C6011091C70136
+:1031E0002091C8013091C901DC01CB0180239123DA
+:1031F000A223B3238093C6019093C701A093C80173
+:10320000B093C9011F910F910C94F0140F931F9369
+:103210000091C6011091C7012091C8013091C901E8
+:10322000DC01CB0180279127A227B3278093C60119
+:103230009093C701A093C801B093C9011F910F914A
+:103240000C94F0141092C2011092C3011092C401A8
+:103250001092C5010C94F01441E050E060E070E081
+:1032600004C0440F551F661F771F8A95D2F74093FD
+:10327000C2015093C3016093C4017093C5010C94C3
+:10328000F01441E050E060E070E004C0440F551FCE
+:10329000661F771F8A95D2F78091C2019091C30172
+:1032A000A091C401B091C501482B592B6A2B7B2BEF
+:1032B0004093C2015093C3016093C4017093C50150
+:1032C0000C94F01441E050E060E070E004C0440F62
+:1032D000551F661F771F8A95D2F7409550956095C8
+:1032E00070958091C2019091C301A091C401B091E9
+:1032F000C501482359236A237B234093C20150937D
+:10330000C3016093C4017093C5010C94F01441E0B3
+:1033100050E060E070E004C0440F551F661F771F47
+:103320008A95D2F78091C2019091C301A091C40106
+:10333000B091C501482759276A277B274093C201CE
+:103340005093C3016093C4017093C5010C94F014B1
+:103350000F931F930091C2011091C3012091C401EA
+:103360003091C501DC01CB01802B912BA22BB32B1B
+:103370008093C2019093C301A093C401B093C5018F
+:103380001F910F910C94F0140F931F930091C201A1
+:103390001091C3012091C4013091C501DC01CB0122
+:1033A00080239123A223B3238093C2019093C3016E
+:1033B000A093C401B093C5011F910F910C94F01418
+:1033C0000F931F930091C2011091C3012091C4017A
+:1033D0003091C501DC01CB0180279127A227B327BB
+:1033E0008093C2019093C301A093C401B093C5011F
+:1033F0001F910F910C94F0140895CF92DF92EF92E9
+:10340000FF920F931F93CF93DF938C01C090C6015F
+:10341000D090C701E090C801F090C9018091C2012D
+:103420009091C301A091C401B091C501C82AD92AC5
+:10343000EA2AFB2ACFE1D0E0D701C6010C2E04C056
+:10344000B695A795979587950A94D2F780FF06C001
+:10345000B8018C2F0E94C205019721F4219760F7D3
+:1034600080E001C08C2FDF91CF911F910F91FF90D1
+:10347000EF90DF90CF900895CF93DF93EC010E94FF
+:10348000FD19BE010E94C205DF91CF910895CB01C5
+:103490000E943C1A08958091CA018595859585956D
+:1034A00008958091CA018770089598E0899F9001DE
+:1034B0001124262B2093CA010C9441192091CA0192
+:1034C000809582238093CA01982F977069F430E029
+:1034D000482F082E000C550B2417350729F0859529
+:1034E000859585950C94621908959091CA019770FD
+:1034F00081E009F480E0089590910B01992321F077
+:1035000090910C01911109C020910D0130910E0193
+:10351000F90132969FEF40E01FC0982F969596953F
+:1035200096959F3050F5E0910D01F0910E01E90F55
+:10353000F11D877021E030E0A90102C0440F551F42
+:103540008A95E2F7CA019181892B818308959F3F73
+:1035500039F04F5F4E3041F051915813F8CF0DC004
+:103560005111F7CF942FF5CF9F3F39F0F901E90FB3
+:10357000F11D97FDFA9582830895089590910B01AE
+:10358000992321F090910C01911109C020910D0116
+:1035900030910E01F9013296205F3F4F1FC0982FE6
+:1035A0009695969596959F30F0F4E0910D01F091E7
+:1035B0000E01E90FF11D877021E030E0A90102C082
+:1035C000440F551F8A95E2F7CA018095918189239E
+:1035D000818308953196E217F30729F090819813BB
+:1035E000F9CF1082F7CF089581E090E0E0910D01CE
+:1035F000F0910E01E80FF91F1082019680319105BC
+:10360000A9F708959091DE01892B8093DE0108953A
+:1036100080959091DE0189238093DE0108951092B8
+:10362000DE0108959091DD01892B8093DD010895DD
+:1036300080959091DD0189238093DD01089510929A
+:10364000DD0108959091DC01892B8093DC010895C0
+:1036500080959091DC0189238093DC01089510927C
+:10366000DC0108958093CB0108951092CB01089559
+:1036700080910D0190910E01FC0131969C01205F1B
+:103680003F4F80E0919191118F5FE217F307D1F7DF
+:103690000895E0910D01F0910E018091DE0180838B
+:1036A000E0910D01F0910E0190818091DD01892B57
+:1036B0008083E0910D01F0910E0190818091DC01F9
+:1036C000892B80838091CB01882361F0E0910D01EB
+:1036D000F0910E019081892B80830E94381B81110B
+:1036E0001092CB0180910D0190910E010C942E103F
+:1036F00020E0009739F0AC01415051098423952313
+:103700002F5FF7CF822F08958091F601843051F119
+:103710001092E00120E488E190E00FB6F894A895BB
+:10372000809360000FBE2093600080E00E94EC0256
+:1037300080E00E94F30783B7817F846083BF83B7F3
+:10374000816083BF7894889583B78E7F83BF0FB6DF
+:10375000F894A89580916000886180936000109231
+:1037600060000FBE0895089580E00E94EC020E9460
+:1037700009080E948C080E94B31B0E94110991E065
+:10378000811101C090E0892F08950E94041580E006
+:103790000E94EC020E9436210E9422100C94F30732
+:1037A0001F920F920FB60F9211248F939F93AF9396
+:1037B000BF938091E001811113C08091E10190914C
+:1037C000E201A091E301B091E4014196A11DB11D78
+:1037D0008093E1019093E201A093E301B093E401AF
+:1037E000BF91AF919F918F910F900FBE0F901F903F
+:1037F000189582E084BD93E095BD9AEF97BD8093C4
+:103800006E0008952FB7F8948091E1019091E20144
+:10381000A091E301B091E4012FBF0895CF92DF9210
+:10382000EF92FF920F931F932FB7F8944091E1010D
+:103830005091E2016091E3017091E4012FBF6A01B0
+:103840007B01EE24FF248C0120E030E0C016D1067D
+:10385000E206F30610F4415051099A01281B390B76
+:10386000C9011F910F91FF90EF90DF90CF900895C5
+:103870001F920F920FB60F9211248F939F93AF93C5
+:10388000BF938091E1019091E201A091E301B09199
+:10389000E4010196A11DB11D8093E1019093E20125
+:1038A000A093E301B093E401BF91AF919F918F91F9
+:1038B0000F900FBE0F901F9018950E941F0DF89447
+:1038C0002FEF87EA91E6215080409040E1F700C059
+:1038D000000087E090EBDC018093000290930102EE
+:1038E000A0930202B09303029CE088E10FB6F89423
+:1038F000A895809360000FBE90936000FFCF0E9458
+:10390000BC1C811102C00E949D1C0E94C71C809398
+:10391000DF010E94D41C90E09093F1018093F001AC
+:1039200087FB882780F980930C010E94CB1C682FAD
+:1039300070E080E090E00C94C4186DEE7EEF80E0C3
+:1039400090E00E94502360E082E090E00E943E23DD
+:1039500060E083E090E00E943E2360E084E090E03D
+:103960000E943E2360E085E090E00E943E2360E0FC
+:1039700086E090E00C943E2380E090E00E943823A3
+:1039800021E08D3E9E4F09F020E0822F089582E0D5
+:1039900090E00C94302383E090E00C943023682F67
+:1039A00083E090E00C943E2384E090E00C9430237C
+:1039B000682F84E090E00C943E2386E090E00C9425
+:1039C0003023682F86E090E00C943E238091E7013D
+:1039D00080FF0BC06091120185E0689FB001112447
+:1039E00075956795759567952BC081FF09C06091A6
+:1039F000120185E0689FB00111247595679520C07C
+:103A000082FF07C06091120185E0689FB001112418
+:103A100017C09091E8019923D1F060911101961798
+:103A200088F72091120185E0289F90011124929F30
+:103A3000A001939F500D112470E0CA010E9402233F
+:103A40006038710540F46115710539F002C065E018
+:103A500070E0862F08958FE7089581E008958091A2
+:103A6000E70180FF08C06091100170E075956795CF
+:103A70007595679521C081FF06C06091100170E0C7
+:103A80007595679519C082FF04C06091100170E0C0
+:103A900010C09091E8019923C1F060910F01961731
+:103AA000A0F780911001899FC001112470E00E944D
+:103AB00002236038710528F46115710521F0862F05
+:103AC00008958FE7089581E0089561E070E0F4CFF4
+:103AD000803F21F40E94E61C819504C0813F29F4B7
+:103AE0000E94E61C8093EB010895823F21F40E941E
+:103AF000E61C819504C0833F29F40E94E61C809354
+:103B0000EA010895893F19F40E942F1D05C08A3FDC
+:103B100031F40E942F1D81958093EC0108958B3F15
+:103B200021F40E942F1D819504C08C3F29F40E942E
+:103B30002F1D8093ED010895843F21F48091E901C8
+:103B4000816017C0853F21F48091E901826011C036
+:103B5000863F21F48091E90184600BC0873F21F406
+:103B60008091E901886005C0883F31F48091E901C6
+:103B700080618093E90108958D3F21F48091E701F0
+:103B800081600BC08E3F21F48091E701826005C007
+:103B90008F3F29F48091E70184608093E7010895C5
+:103BA000803F39F48091EB0187FF6CC01092EB01EC
+:103BB00069C0813F29F48091EB011816BCF362C003
+:103BC0009091EA01823F29F497FF5CC01092EA01CC
+:103BD00059C0833F19F41916CCF354C0893F41F4FE
+:103BE0008091EC0118160CF04DC01092EC014AC007
+:103BF0008A3F29F48091EC0187FF44C0F6CF8B3FC8
+:103C000039F48091ED0187FF3DC01092ED013AC07B
+:103C10008C3F29F48091ED011816BCF333C0843F2A
+:103C200021F48091E9018E7F17C0853F21F48091B6
+:103C3000E9018D7F11C0863F21F48091E9018B7FDE
+:103C40000BC0873F21F48091E901877F05C0883F41
+:103C500031F48091E9018F7E8093E90113C08D3F9B
+:103C600021F48091E7018E7F0BC08E3F21F480917B
+:103C7000E7018D7F05C08F3F29F48091E7018B7F9D
+:103C80008093E7018091EA0181110EC08091EB01E0
+:103C900081110AC08091EC01811106C08091ED0173
+:103CA000811102C01092E801089589EE91E00E940E
+:103CB00039100E94021C9093E6018093E50108955B
+:103CC0001F93CF93DF938091E5019091E6010E94CD
+:103CD0000E1CAC019091E801992321F02091130171
+:103CE00030E006C0209114018AE0289F9001112441
+:103CF0004217530708F485C08091EA01C091EB0197
+:103D0000D091EC011091ED01811107C0C11175C076
+:103D1000D11173C0111171C074C09F3F19F09F5F22
+:103D20009093E801181624F40E94E61C8093EA019F
+:103D30008091EA0187FF05C00E94E61C819580936F
+:103D4000EA011C1624F40E94E61C8093EB0180918A
+:103D5000EB0187FF05C00E94E61C81958093EB0173
+:103D60006091EA01662331F1C091EB01CC2311F19E
+:103D7000062E000C770B880B990B0E94092223E377
+:103D800033E343E35FE30E946D220E94D1216093FD
+:103D9000EA016C2FCC0F770B880B990B0E9409223C
+:103DA00023E333E343E35FE30E946D220E94D121CA
+:103DB0006093EB011D1624F40E942F1D8093EC01EB
+:103DC0008091EC0187FF05C00E942F1D8195809393
+:103DD000EC01111624F40E942F1D8093ED018091B7
+:103DE000ED0187FF05C00E942F1D81958093ED0195
+:103DF000DF91CF911F910C94551E9F3F09F08FCFFB
+:103E000097CFDF91CF911F910895E9EEF1E085E022
+:103E1000DF011D928A95E9F71092E8011092E701FF
+:103E20000895833081F128F4813059F08230D1F047
+:103E30000895853009F449C0B8F1863009F456C0B8
+:103E4000089580911401262F30E0280F311D2F3F57
+:103E5000310524F4680F6093140108958FEF809367
+:103E60001401089580911301262F30E0280F311D91
+:103E70002F3F310524F4680F6093130108958FEFED
+:103E800080931301089580911201262F30E0280FAE
+:103E9000311D2F3F310524F4680F609312010895FE
+:103EA0008FEF80931201089580911101262F30E049
+:103EB000280F311D2F3F310524F4680F6093110145
+:103EC00008958FEF80931101089580911001262F9E
+:103ED00030E0280F311D2F3F310524F4680F609327
+:103EE000100108958FEF80931001089580910F01C4
+:103EF000262F30E0280F311D2F3F310524F4680FA5
+:103F000060930F0108958FEF80930F010895833020
+:103F100011F128F4813049F0823091F00895853014
+:103F200081F120F18630C1F1089580911401681764
+:103F300020F4861B809314010895109214010895B3
+:103F400080911301681720F4861B80931301089554
+:103F500010921301089580911201681720F4861BB6
+:103F60008093120108951092120108958091110119
+:103F7000681720F4861B8093110108951092110197
+:103F8000089580911001681720F4861B809310011A
+:103F9000089510921001089580910F01681720F480
+:103FA000861B80930F01089510920F0108950F93BF
+:103FB0001F93873208F048C08E3108F092C08031DC
+:103FC00009F47CC008F5873009F466C068F48630CF
+:103FD00009F0A2C08091DF01817F8E7F8093DF0195
+:103FE00081E08093EF0199C08B3009F48EC08E3050
+:103FF00009F092C08091DF0182FB222720F991E035
+:10400000922790FB82F963C0863109F47EC060F488
+:10401000813109F081C00E94041590910C0181E06A
+:10402000892780930C0171C0893109F46EC08B31EE
+:1040300009F072C08091DF0181FB222720F991E015
+:10404000922790FB81F943C0883309F45EC050F495
+:10405000893209F45CC0853309F459C0873209F408
+:1040600056C05AC0833409F452C028F48A3308F485
+:1040700053C0895337C0883409F04EC00E940415DC
+:104080000FEF13ED20E3015010402040E1F700C096
+:1040900000000E945D1C39C09091DF01892F80953E
+:1040A000817080FB90F929F0966098609093DF0111
+:1040B00034C0997F977F9093DF0127C08091DF0103
+:1040C00083FB222720F991E0922790FB83F98093CC
+:1040D000DF019923D1F08091DF0181608093DF01BE
+:1040E00014C08D5141E050E060E070E08A019B0116
+:1040F00004C0000F111F221F331F8A95D2F7C90178
+:10410000B8010E94C4180E94041581E006C061E055
+:1041100070E080E090E0F5CF80E01F910F9108956E
+:1041200080E0089580E008958E518A3030F4E82FC1
+:10413000F0E0E75CFE4F8081089580E00895CF9322
+:10414000C82F8091EF01813069F018F08230C9F1F9
+:1041500083C0E0910D01F0910E018081823209F05F
+:104160007DC007C0E0910D01F0910E018081823287
+:1041700061F48C2F0E949020811104C08C2F0E942A
+:10418000D71F1DC081E090E01AC08C2F0E949220A2
+:10419000811114C0C43179F048F4CB3079F0C031CA
+:1041A00009F060C082E08093EF0108C0C93219F0C5
+:1041B000C83321F057C01092EF0154C081E08170E4
+:1041C00053C0C93289F118F5C43171F1B0F4C73068
+:1041D00009F046C08EE18093140182E380931301BD
+:1041E0008AE08093120184E18093110188E080933A
+:1041F000100188E280930F0133C082EE8C0F86306D
+:1042000078F58C2F0E9494208093EE0129C0CE3443
+:10421000E9F020F4CB3421F56AE013C0C13579F020
+:10422000C235F1F461E00DC08091EE01882319F0F0
+:104230001092EE0115C081E08093EF0115C061E09E
+:1042400006C08091EE010E94111F0AC06AE08091B1
+:10425000EE010E94871F04C01092EF0180E004C0AD
+:1042600081E002C080E0ABCFCF9108950E94BC1CDA
+:10427000811102C00E949D1C0E94DD1C8093FF01E1
+:1042800080FF02C0869501C080E00C94EC02809112
+:10429000FF01982F9695292F30E0233031054CF4FB
+:1042A0009F5F990F8170892B81608093FF010E942D
+:1042B000E11C8091FF0186950C94EC028091FF0136
+:1042C000982F969591F09158990F8170892B809332
+:1042D000FF018E7F91E009F490E08091FF0190FB57
+:1042E00080F98093FF010E94E11C8091FF01869577
+:1042F0000C94EC028091FF01982F909590FB80F92F
+:104300008093FF010E94E11C8091FF0180FF02C0A9
+:10431000869501C080E00C94EC029091FF01892FFA
+:1043200086958F5F8F779170843028F4880F892B62
+:104330008093FF0102C09093FF018091FF018E7F67
+:1043400091E009F490E08091FF0190FB80F9809367
+:10435000FF010E94E11C8091FF0186950C94EC0204
+:104360002091FF01922F96958927982F990F822FE0
+:104370008170892B8093FF018E7F91E009F490E09A
+:104380008091FF0190FB80F98093FF010E94E11C66
+:104390008091FF0186950C94EC028091FF01869537
+:1043A00008950E94D8216894B1110C946722089551
+:1043B0000E944C2288F09F5798F0B92F9927B75147
+:1043C000B0F0E1F0660F771F881F991F1AF0BA95B9
+:1043D000C9F714C0B13091F00E946622B1E008958F
+:1043E0000C946622672F782F8827B85F39F0B93F81
+:1043F000CCF3869577956795B395D9F73EF490956C
+:104400008095709561957F4F8F4F9F4F0895E894E9
+:1044100009C097FB3EF490958095709561957F4F0C
+:104420008F4F9F4F9923A9F0F92F96E9BB279395BA
+:10443000F695879577956795B795F111F8CFFAF4CA
+:10444000BB0F11F460FF1BC06F5F7F4F8F4F9F4FFB
+:1044500016C0882311F096E911C0772321F09EE859
+:10446000872F762F05C0662371F096E8862F70E0BF
+:1044700060E02AF09A95660F771F881FDAF7880F99
+:104480009695879597F9089557FD9058440F551FB5
+:1044900059F05F3F71F04795880F97FB991F61F0C6
+:1044A0009F3F79F087950895121613061406551F3D
+:1044B000F2CF4695F1DF08C0161617061806991FA9
+:1044C000F1CF86957105610508940895E894BB279E
+:1044D00066277727CB0197F908950E9480220C94D4
+:1044E000F1220E94E32238F00E94EA2220F0952374
+:1044F00011F00C94DA220C94E02211240C9467221F
+:104500000E94442270F3959FC1F3950F50E0551F10
+:10451000629FF001729FBB27F00DB11D639FAA2718
+:10452000F00DB11DAA1F649F6627B00DA11D661F67
+:10453000829F2227B00DA11D621F739FB00DA11D88
+:10454000621F839FA00D611D221F749F3327A00D42
+:10455000611D231F849F600D211D822F762F6A2FDE
+:1045600011249F5750409AF0F1F088234AF0EE0F43
+:10457000FF1FBB1F661F771F881F91505040A9F770
+:104580009E3F510580F00C94DA220C9467225F3F25
+:10459000E4F3983ED4F3869577956795B795F795AC
+:1045A000E7959F5FC1F7FE2B880F911D9695879524
+:1045B00097F9089597F99F6780E870E060E00895A3
+:1045C0009FEF80EC089500240A941616170618062B
+:1045D0000906089500240A94121613061406050607
+:1045E0000895092E0394000C11F4882352F0BB0F98
+:1045F00040F4BF2B11F460FF04C06F5F7F4F8F4FFB
+:104600009F4F089597FB072E16F4009407D077FD6F
+:1046100009D00E941C2307FC05D03EF4909581959B
+:104620009F4F0895709561957F4F0895EE0FFF1F7E
+:104630000590F491E02D0994AA1BBB1B51E107C022
+:10464000AA1FBB1FA617B70710F0A61BB70B881F22
+:10465000991F5A95A9F780959095BC01CD010895B1
+:10466000F999FECF92BD81BDF89A992780B508953A
+:10467000A8E1B0E042E050E00C945823262FF999CD
+:10468000FECF92BD81BDF89A019700B4021639F0B1
+:104690001FBA20BD0FB6F894FA9AF99A0FBE089582
+:1046A0000196272F0E943F230C943E23DC01CB016F
+:1046B000FC01F999FECF06C0F2BDE1BDF89A319632
+:1046C00000B40D9241505040B8F70895F894FFCFD0
+:1046D000FF2709B50992095E092A090101CC0128C1
+:1046E00008140A321E1F0F03764F5F6F7F4969431C
+:1046F0007909595363404D3639DC048F045904203D
+:1047000004B303CC03E503FE03010203040506071B
+:044710000809000094
+:00000001FF
diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json
new file mode 100644
index 0000000000..6e33ec6bfd
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/keyboard-layout.json
@@ -0,0 +1,101 @@
+[
+ {
+ "name": "AB's Practical Keymap for Planck",
+ "author": "Anand Babu Periasamy"
+ },
+ [
+ "1\nF1\n!\n\n\n\n\n\n\nTab",
+ "2\nF2\n@\n\n\n\n\n\n\nQ",
+ "3\nF3\n#\n\n\n\n\n\n\nW",
+ "4\nF4\n$\n\n\n\n\n\n\nE",
+ "5\nF5\n%\n\n\n\n\n\n\nR",
+ "6\nF6\n^\n\n\n\n\n\n\nT",
+ "7\nF7\n&\n\n\n\n\n\n\nY",
+ "8\nF8\n*\n\n\n\n\n\n\nU",
+ "9\nF9\n(\n\n\n\n\n\n\nI",
+ "0\nF10\n)\n\n\n\n\n\n\nO",
+ "-\nF11\n_\n\n\n\n\n\n\nP",
+ "=\nF12\n+\n\n\n\n\n\n\n<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>"
+ ],
+ [
+ {
+ "a": 7
+ },
+ "Ctrl",
+ "A",
+ "S",
+ "D",
+ {
+ "a": 4
+ },
+ "(\n\n\n\n\n\n\n\n\nF",
+ ")\n\n\n\n\n\n\n\n\nG",
+ "{\n\n\n\n\n\n\n\n\nH",
+ "}\n\n\n\n\n\n\n\n\nJ",
+ {
+ "a": 7
+ },
+ "K",
+ "L",
+ {
+ "a": 6
+ },
+ ";\n\n:",
+ {
+ "a": 7
+ },
+ "Enter"
+ ],
+ [
+ "Shift",
+ "Z",
+ "X",
+ "C",
+ {
+ "a": 4
+ },
+ "[\n`\n\n\n\n\n\n\n\nV",
+ "]\n~\n\n\n\n\n\n\n\nB",
+ "'\n\\\n\n\n\n\n\n\n\nN",
+ "\"\n|\n\n\n\n\n\n\n\nM",
+ {
+ "a": 6
+ },
+ ",\n\n<",
+ ".\n\n>",
+ "/\n\n?",
+ {
+ "a": 7
+ },
+ "Shift\n\n\n\nEnter"
+ ],
+ [
+ {
+ "a": 4
+ },
+ "<i class='fa fa-lightbulb-o'></i>\n<i class='fa fa-download'></i>\n\n\n\n\n\n\n\nCtrl",
+ {
+ "a": 7
+ },
+ "Esc",
+ "<i class='fa fa-linux'></i>",
+ "Alt",
+ "<i class='fa fa-sort-up'></i>",
+ {
+ "a": 4,
+ "w": 2
+ },
+ "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace",
+ {
+ "a": 7
+ },
+ "<i class='fa fa-sort-down'></i>",
+ "<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>",
+ {
+ "a": 4
+ },
+ "\n<i class='fa fa-volume-down'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>",
+ "\n<i class='fa fa-volume-up'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>",
+ "\n<i class='fa fa-volume-off'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>"
+ ]
+] \ No newline at end of file
diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png
new file mode 100644
index 0000000000..64bf0aa1c2
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/keyboard-layout.png
Binary files differ
diff --git a/keyboards/planck/keymaps/ab/keyboard-photo.jpg b/keyboards/planck/keymaps/ab/keyboard-photo.jpg
new file mode 100644
index 0000000000..358cb6bcae
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/keyboard-photo.jpg
Binary files differ
diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c
new file mode 100644
index 0000000000..57f90ab576
--- /dev/null
+++ b/keyboards/planck/keymaps/ab/keymap.c
@@ -0,0 +1,122 @@
+// 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 "action_layer.h"
+#include "eeconfig.h"
+#ifdef BACKLIGHT_ENABLE
+ #include "backlight.h"
+#endif
+
+extern keymap_config_t keymap_config;
+
+// Symbolic names for macro IDs.
+#define _QWERTY 0 // QUERTY layer
+#define _RAISE 1 // Raise layer
+#define _LOWER 2 // Lower layer
+#define _CUSTOM 3 // Custom layer
+#define _BL 4 // Backlight
+#define _MOBILE 5 // Mobile#
+#define _CUSTOM1 6 // Custom macro 1
+#define _CUSTOM2 7 // Custom macro 2
+
+// Macro shortcuts.
+#define RAISE M(_RAISE)
+#define LOWER M(_LOWER)
+#define CUSTOM M(_CUSTOM) // RAISE + LOWER
+#define BL M(_BL)
+#define MOBILE M(_MOBILE)
+#define CUSTOM1 M(_CUSTOM1)
+#define CUSTOM2 M(_CUSTOM2)
+
+// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QWERTY] = { /* 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_ENT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)},
+ {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT}
+},
+[_RAISE] = { /* RAISE */
+ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[_LOWER] = { /* LOWER */
+ {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_LCBR, KC_LCBR, KC_BSLS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS},
+ {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE}
+},
+[_CUSTOM] = { /* CUSTOM */
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+}
+};
+
+// Enable these functions using FUNC(n) macro. They seem to be buggy mostly.
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE
+ [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER
+ [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl
+ [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift
+};
+
+// Set a layer persistantly.
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+// Macro actions for each corresponding ID.
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _QWERTY: // Default QWERTY layer. // This case not used for now.
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ break;
+ case _RAISE: // Raised layer.
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ }
+ break;
+ case _LOWER: // Lowered layer.
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _CUSTOM);
+ }
+ break;
+ case _BL:// Backlight
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case _MOBILE:// Your mobile# here.
+ return MACRODOWN(T(1), T(2), T(3), T(MINS),
+ T(1), T(2), T(3), T(MINS),
+ T(1), T(2), T(3), T(4),
+ END);
+ case _CUSTOM1:// Your custom macro 1
+ return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END);
+ case _CUSTOM2:// Your custom macro 2
+ return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END);
+ };
+ return MACRO_NONE;
+}