From 11a30bad94f8f5fd7ff969e49f57aba152acb7b8 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Sun, 12 Apr 2015 15:47:27 +0900 Subject: [PATCH] Add keymap editor for HHKB Bluetooth --- editor/hhkb_bt/firmware.js | 1719 +++++++++++++++++++++++++++++++ editor/hhkb_bt/index.html | 717 +++++++++++++ editor/hhkb_bt/keyboard.css | 101 ++ editor/hhkb_bt/keymap_editor.js | 527 ++++++++++ editor/index.html | 7 +- 5 files changed, 3068 insertions(+), 3 deletions(-) create mode 100644 editor/hhkb_bt/firmware.js create mode 100644 editor/hhkb_bt/index.html create mode 100644 editor/hhkb_bt/keyboard.css create mode 100644 editor/hhkb_bt/keymap_editor.js diff --git a/editor/hhkb_bt/firmware.js b/editor/hhkb_bt/firmware.js new file mode 100644 index 00000000..831dac32 --- /dev/null +++ b/editor/hhkb_bt/firmware.js @@ -0,0 +1,1719 @@ +/* + * HHKB pro keymap + */ +KEYBOARD_ID = "hhkb_bt"; +KEYBOARD_DESC = "HHKB Alt Controller(Bluetooth)" + +/* for ATMega32U4 with 32KB flash */ +KEYMAP_START_ADDRESS = 0x6800; + +/* Key matrix: + * COL 0 1 2 3 4 5 6 7 + * ROW,--------------------------------------------------------------- + * 0| 2 q w s a z x c + * 1| 3 4 r e d f v b + * 2| 5 6 y t g h n _NONE_ + * 3| 1 Esc Tab Control LShift LAlt LMeta Space + * 4| 7 8 u i k j m _NONE_ + * 5| \ ` Delete Return Fn RShift RAlt RMeta + * 6| 9 0 o p ; l , _NONE_ + * 7| - + ] [ ' / . _NONE_ + * + * Default keymap + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift |Fn | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ +no_map = function() { return [ + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], +]; }; +transparent_map = function() { return [ + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], +]; }; + +// default keymap +keymaps = [ + [ + + [ 0x1f,0x14,0x1a,0x16,0x04,0x1d,0x1b,0x06, ], + [ 0x20,0x21,0x15,0x08,0x07,0x09,0x19,0x05, ], + [ 0x22,0x23,0x1c,0x17,0x0a,0x0b,0x11,0x00, ], + [ 0x1e,0x29,0x2b,0xe0,0xe1,0xe2,0xe3,0x2c, ], + [ 0x24,0x25,0x18,0x0c,0x0e,0x0d,0x10,0x00, ], + [ 0x31,0x35,0x2a,0x28,0xc0,0xe5,0xe6,0xe7, ], + [ 0x26,0x27,0x12,0x13,0x33,0x0f,0x36,0x00, ], + [ 0x2d,0x2e,0x30,0x2f,0x34,0x38,0x37,0x00, ], + ], + [ + [ 0x3b,0x00,0x00,0xa9,0xaa,0x00,0x00,0x00, ], + [ 0x3c,0x3d,0x00,0x00,0xa8,0x00,0x00,0x00, ], + [ 0x3e,0x3f,0x00,0x00,0x00,0x55,0x57,0x00, ], + [ 0x3a,0xa5,0x39,0x01,0x01,0x01,0x01,0x01, ], + [ 0x40,0x41,0x00,0x46,0x4a,0x54,0x56,0x00, ], + [ 0x49,0x4c,0x01,0x58,0x01,0x01,0x01,0x01, ], + [ 0x42,0x43,0x47,0x48,0x50,0x4b,0x4d,0x00, ], + [ 0x44,0x45,0x00,0x52,0x4f,0x51,0x4e,0x00, ], + ], + no_map(), + no_map(), + no_map(), + no_map(), + no_map(), + no_map(), +]; + +fn_actions = [ + 0xF1,0xA1,0xF1,0xA2,0xF1,0xA3,0xF1,0xA4,0xF1,0xA5,0xF1,0xA6,0xF1,0xA7,0x02,0x8A, + 0x04,0x8A,0x08,0x8A,0xF0,0xA1,0xF0,0xA2,0xF0,0xA3,0x04,0xA1,0x09,0xA2,0x0D,0xA3, + 0x2C,0xA4,0x33,0xA5,0x34,0xA6,0x38,0xA7,0x2C,0x22,0x2C,0x21,0x34,0x31,0x28,0x31, + 0x29,0x21,0x2A,0x21,0x00,0x21,0x29,0x22,0x2A,0x22,0x00,0x22,0x29,0x32,0x2A,0x32, +]; + + +/* hex file whthout keymap region and eof */ +function firmware_hex() +{ + /* HHKB firmware: v4.0-162-g52a7398 */ + /* Flash Map of ATMega32U4(32KB) + * +------------+ 0x0000 + * | .vectors | 0xac (43vectors * 4bytes) + * | .progmem | PROGMEM variables and PSTR + * | .init0-9 | + * | .text | code + * | .fini9-0 | + * | | > text region + * |------------| _etext + * | .data | + * | .bss | + * | .noinit | + * | | > data region + * |------------| 0x6800 + * | .keymap | > keymap region(2KB) + * |------------| 0x7000 + * | bootloader | 4KB + * +------------+ 0x7FFF + */ + // TODO: read hex file directly from remote URL + // Place HEX format string of firmware(0x0000-0x67ff) excluding keymap region. + // BUILD: 08ec8bb-dirty (14:41:45 Apr 12 2015) + return "\ +:100000000C9402080C9446080C9446080C9446087C\r\n\ +:100010000C9446080C9446080C9446080C94460828\r\n\ +:100020000C9446080C9446080C9455170C944608FA\r\n\ +:100030000C94A6260C9446080C9446080C9446088A\r\n\ +:100040000C9446080C9446080C9446080C944608F8\r\n\ +:100050000C9446080C9445270C9446080C944608CA\r\n\ +:100060000C9446080C94D70A0C9446080C94460845\r\n\ +:100070000C9446080C9446080C9446080C944608C8\r\n\ +:100080000C9446080C9446080C9446080C944608B8\r\n\ +:100090000C9446080C9446080C9446080C944608A8\r\n\ +:1000A0000C9446080C9446080C944608FC0F01106A\r\n\ +:1000B00006100B10101015101A101F102410291004\r\n\ +:1000C0002E10331038103D10421047104C105110B4\r\n\ +:1000D00056105B10601065106A106F107410791064\r\n\ +:1000E0007E10831088108D10921097109C10A11014\r\n\ +:1000F000A610AB10FA0FF510B010B210B410B61075\r\n\ +:10010000BB10C010C510CA10CF10D310D810DD100E\r\n\ +:10011000E210E710EC10F310F310F310F310F310EB\r\n\ +:10012000F310F310F310F310F310F310F310F310B7\r\n\ +:10013000F310F310F310F310F310F310F1104B1849\r\n\ +:100140006D1858196D185819AF18D2185819271961\r\n\ +:100150003A19381C381C661C661CBB1CF71CE81EB0\r\n\ +:10016000E81E0F1DE81E061E061EC21EE81EE81E23\r\n\ +:10017000D61E253032583A20253038620A000A72DD\r\n\ +:100180002F632030313233343536370A00522C3168\r\n\ +:100190000D0A0053592C464646340D0A0053482C8C\r\n\ +:1001A000303033430D0A00537E2C360D0A0053576E\r\n\ +:1001B0002C383030300D0A00534D2C340D0A0053CA\r\n\ +:1001C000532C4B6579626F6172642F4D6F75736547\r\n\ +:1001D0000D0A00532D2C546D6B42540D0A005346EA\r\n\ +:1001E0002C310D0A002D2D2D0D0A004578697469FA\r\n\ +:1001F0006E6720636F6E666967206D6F6465202E81\r\n\ +:100200002E2E0A002B0D0A00760D0A00242424004D\r\n\ +:10021000456E746572696E6720636F6E66696720EC\r\n\ +:100220006D6F6465202E2E2E0A0025630025730D48\r\n\ +:100230000A00522C310D0A0053522C5A0D0A005557\r\n\ +:100240005342206D6F64650A004175746F206D6FB5\r\n\ +:1002500064650A00253032750A00253032753A008F\r\n\ +:10026000253032753A004241543A2025756D5609C1\r\n\ +:1002700000757074696D653A20253032752025301F\r\n\ +:1002800032753A253032753A253032750A005642B9\r\n\ +:1002900055533A2025580A0052656D6F74655761B1\r\n\ +:1002A0006B657570456E61626C65643A2025580A0D\r\n\ +:1002B000000A003F004C4F57004449534348470051\r\n\ +:1002C00043484152470046554C4C00626174746586\r\n\ +:1002D00072793A20005553422053746174653A2074\r\n\ +:1002E00025730A00636F6E6669675F6D6F64653AB8\r\n\ +:1002F0002025580A00726E34325F6175746F636F27\r\n\ +:100300006E6E656374696E6728293A2025580A0065\r\n\ +:10031000726E34323A2025730A00666F7263655F2D\r\n\ +:100320007573623A2025580A0070726F746F636F9C\r\n\ +:100330006C3A2025730A000A2D2D2D2D2D20524EAA\r\n\ +:100340002D343220696E666F202D2D2D2D2D0A0043\r\n\ +:10035000753A20202020202020746F67676C65206C\r\n\ +:10036000466F72636520555342206D6F64650A00C5\r\n\ +:10037000703A2020202020202070616972696E6709\r\n\ +:100380000A00536C636B3A20202020524E2D3432E9\r\n\ +:1003900020696E697469616C697A650A0044656CEC\r\n\ +:1003A0003A2020202020656E7465722F657869746C\r\n\ +:1003B00020524E2D343220636F6E666967206D6F58\r\n\ +:1003C00064650A00623A20202020202020626174A7\r\n\ +:1003D0007465727920766F6C746167650A00693A9A\r\n\ +:1003E00020202020202020524E2D343220696E669D\r\n\ +:1003F0006F0A000A0A2D2D2D2D2D20426C75657473\r\n\ +:100400006F6F746820524E2D34322048656C702016\r\n\ +:100410002D2D2D2D2D0A00253032753A25303275BF\r\n\ +:100420003A253032750925756D560A004C45442031\r\n\ +:100430007374617475733A20253032580A00202590\r\n\ +:10044000303258002563005B735D004B6579626F45\r\n\ +:100450006172642073746172740A00524E2D3432DA\r\n\ +:1004600020696E69740A000A55534220696E6974E6\r\n\ +:100470000A005B735D004B6579626F617264207383\r\n\ +:10048000746172742E0A0055534220636F6E666960\r\n\ +:1004900067757265642E0A005B575D005B535D00F3\r\n\ +:1004A0005B525D005B445D005B435D0012034800EE\r\n\ +:1004B00048004B00420020006D006F006400000007\r\n\ +:1004C0000E0374002E006D002E006B002E00000045\r\n\ +:1004D0000403090409027400040100A032090400A5\r\n\ +:1004E000000103010100092111010001223F000761\r\n\ +:1004F00005810308000A0904010001030102000943\r\n\ +:100500002111010001224D000705820308000A099C\r\n\ +:10051000040200010300000009211101000122363C\r\n\ +:10052000000705830308000A090403000203000012\r\n\ +:100530000009211101000122200007058403200089\r\n\ +:10054000010705040320000112011001000000084A\r\n\ +:10055000EDFE42420401010200010631FF0974A1CF\r\n\ +:10056000010975150025FF9520750881020976158A\r\n\ +:100570000025FF952075089102C005010980A101A1\r\n\ +:10058000850216010026B7001A01002AB70075106F\r\n\ +:1005900095018100C0050C0901A101850316010028\r\n\ +:1005A000269C021A01002A9C02751095018100C048\r\n\ +:1005B00005010902A1010901A10005091901290587\r\n\ +:1005C00015002501950575018102950175038101CD\r\n\ +:1005D0000501093009311581257F950275088106CD\r\n\ +:1005E00009381581257F950175088106050C0A38A3\r\n\ +:1005F000021581257F950175088106C0C005010996\r\n\ +:1006000006A101050719E029E715002501950875E0\r\n\ +:1006100001810295017508810105081901290595D7\r\n\ +:1006200005750191029501750391010507190029CE\r\n\ +:10063000FF150025FF950675088100C00A002530CA\r\n\ +:10064000325820006B6579626F6172645F72657009\r\n\ +:100650006F72743A20000A0025303258006B6579B9\r\n\ +:10066000626F6172645F7365745F6C65643A2000E9\r\n\ +:100670004F6E6573686F743A2074696D656F757439\r\n\ +:100680000A00290A002575002F002575005D280045\r\n\ +:10069000256400200025640020002564002000253A\r\n\ +:1006A00064007C0025303258006D6F7573656B6592\r\n\ +:1006B00079205B62746E7C782079207620685D28D2\r\n\ +:1006C0007265702F61636C293A205B000A00257502\r\n\ +:1006D000006D6B5F776865656C5F74696D655F74ED\r\n\ +:1006E0006F5F6D6178203D20000A002575006D6BFD\r\n\ +:1006F0005F776865656C5F6D61785F737065656471\r\n\ +:10070000203D20000A002575006D6B5F74696D65E2\r\n\ +:100710005F746F5F6D6178203D20000A00257500D1\r\n\ +:100720006D6B5F6D61785F7370656564203D20005F\r\n\ +:100730000A002575006D6B5F696E74657276616C79\r\n\ +:10074000203D20000A002575006D6B5F64656C61BB\r\n\ +:1007500079203D20000A002575006D6B5F77686584\r\n\ +:10076000656C5F74696D655F746F5F6D6178203D66\r\n\ +:1007700020000A002575006D6B5F776865656C5F0A\r\n\ +:100780006D61785F7370656564203D20000A002507\r\n\ +:1007900075006D6B5F74696D655F746F5F6D617817\r\n\ +:1007A000203D20000A002575006D6B5F6D61785F4C\r\n\ +:1007B0007370656564203D20000A002575006D6B2F\r\n\ +:1007C0005F696E74657276616C203D20000A0025B9\r\n\ +:1007D00075006D6B5F64656C6179203D20000A00D7\r\n\ +:1007E000257500363A206D6B5F776865656C5F74C0\r\n\ +:1007F000696D655F746F5F6D61783A20000A00254E\r\n\ +:100800007500353A206D6B5F776865656C5F6D616B\r\n\ +:10081000785F73706565643A20000A0025750034BE\r\n\ +:100820003A206D6B5F74696D655F746F5F6D6178A1\r\n\ +:100830003A20000A00257500333A206D6B5F6D6128\r\n\ +:10084000785F73706565643A20000A002575003290\r\n\ +:100850003A206D6B5F696E74657276616C286D739A\r\n\ +:10086000293A20000A00257500313A206D6B5F643B\r\n\ +:10087000656C6179282A31306D73293A20000A0AA3\r\n\ +:100880002D2D2D2D2D204D6F7573656B65792050A5\r\n\ +:100890006172616D6574657273202D2D2D2D2D0A89\r\n\ +:1008A000003E20002575004D003F007365742064F4\r\n\ +:1008B000656661756C742076616C7565732E0A00CF\r\n\ +:1008C0000A0025750073656C65637465642070614A\r\n\ +:1008D00072616D657465723A2000433E20000A51D2\r\n\ +:1008E000756974204D6F7573656B657920436F6E04\r\n\ +:1008F000736F6C650A0053656520687474703A2FD5\r\n\ +:100900002F656E2E77696B6970656469612E6F72F1\r\n\ +:10091000672F77696B692F4D6F7573655F6B6579AD\r\n\ +:10092000730A000A002575002C20776865656C3D08\r\n\ +:100930000025750077686572652064656C74613A9E\r\n\ +:1009400020637572736F723D000A73706565642071\r\n\ +:100950003D2064656C7461202A206D61785F73703E\r\n\ +:10096000656564202A2028726570656174202F20D7\r\n\ +:1009700074696D655F746F5F6D6178290A007067D7\r\n\ +:10098000646F776E3A0964656372656173652070A0\r\n\ +:100990006172616D6574657273282D3130290A00AA\r\n\ +:1009A000706775703A09696E63726561736520706E\r\n\ +:1009B0006172616D6574657273282B3130290A008C\r\n\ +:1009C000646F776E3A096465637265617365207060\r\n\ +:1009D0006172616D6574657273282D31290A007525\r\n\ +:1009E000703A09696E637265617365207061726146\r\n\ +:1009F0006D6574657273282B31290A00643A097396\r\n\ +:100A000065742064656661756C742076616C7565CB\r\n\ +:100A1000730A00703A097072696E742070617261B5\r\n\ +:100A20006D65746572730A00363A0973656C6563A7\r\n\ +:100A300074206D6B5F776865656C5F74696D655F69\r\n\ +:100A4000746F5F6D61780A00353A0973656C656390\r\n\ +:100A500074206D6B5F776865656C5F6D61785F733F\r\n\ +:100A6000706565640A00343A0973656C65637420C7\r\n\ +:100A70006D6B5F74696D655F746F5F6D61780A009F\r\n\ +:100A8000333A0973656C656374206D6B5F6D6178D3\r\n\ +:100A90005F73706565640A00323A0973656C65635B\r\n\ +:100AA00074206D6B5F696E74657276616C286D730E\r\n\ +:100AB000290A00313A0973656C656374206D6B5FB8\r\n\ +:100AC00064656C6179282A31306D73290A004553B9\r\n\ +:100AD000432F713A09717569740A000A0A2D2D2D88\r\n\ +:100AE0002D2D204D6F7573656B6579205061726196\r\n\ +:100AF0006D65746572732048656C70202D2D2D2DE9\r\n\ +:100B00002D0A003F004D303E000A456E746572208C\r\n\ +:100B10004D6F7573656B657920436F6E736F6C6590\r\n\ +:100B20000A000A5175697420436F6E736F6C6520FB\r\n\ +:100B30004D6F64650A00433E20000A0025750020C1\r\n\ +:100B4000746F20002575007377697463685F64654E\r\n\ +:100B50006661756C745F6C617965723A20006D3AFC\r\n\ +:100B6000096D6F7573656B65790A004553432F7185\r\n\ +:100B70003A09717569740A000A0A2D2D2D2D2D2050\r\n\ +:100B8000436F6E736F6C652048656C70202D2D2D42\r\n\ +:100B90002D2D0A00506175733A096A756D702074C5\r\n\ +:100BA0006F20626F6F746C6F616465720A004361DD\r\n\ +:100BB00070733A094C6F636B204B6579626F617299\r\n\ +:100BC00064284368696C642050726F6F66290A005C\r\n\ +:100BD000505363723A09706F77657220646F776E55\r\n\ +:100BE0002F72656D6F74652077616B652D75700A66\r\n\ +:100BF00000342F46343A0973776974636820746F40\r\n\ +:100C0000204C6179657234200A00332F46333A094B\r\n\ +:100C100073776974636820746F204C6179657233EF\r\n\ +:100C2000200A00322F46323A0973776974636820CC\r\n\ +:100C3000746F204C6179657232200A00312F463181\r\n\ +:100C40003A0973776974636820746F204C61796521\r\n\ +:100C50007231200A00302F4631303A0973776974B7\r\n\ +:100C6000636820746F204C6179657230200A0065DA\r\n\ +:100C70003A097072696E7420656570726F6D2063D9\r\n\ +:100C80006F6E6669670A00733A097072696E742044\r\n\ +:100C90007374617475730A00743A097072696E74C2\r\n\ +:100CA0002074696D657220636F756E740A00763A00\r\n\ +:100CB000097072696E742064657669636520766573\r\n\ +:100CC0007273696F6E202620696E666F0A006D3A36\r\n\ +:100CD00009746F67676C65206D6F75736520646557\r\n\ +:100CE0006275670A006B3A09746F67676C65206B01\r\n\ +:100CF0006579626F6172642064656275670A007865\r\n\ +:100D00003A09746F67676C65206D61747269782049\r\n\ +:100D100064656275670A00643A09746F67676C6599\r\n\ +:100D200020646562756720656E61626C650A0063A8\r\n\ +:100D30003A09656E74657220636F6E736F6C65201F\r\n\ +:100D40006D6F64650A000A0A2D2D2D2D2D20436F2D\r\n\ +:100D50006D6D616E642048656C70202D2D2D2D2DDC\r\n\ +:100D60000A003F006B6579626F6172645F69646C51\r\n\ +:100D7000653A2025580A006B6579626F6172645F7D\r\n\ +:100D800070726F746F636F6C3A2025580A00686F39\r\n\ +:100D900073745F6B6579626F6172645F6C656473B5\r\n\ +:100DA00028293A2025580A000A0A2D2D2D2D2D20FC\r\n\ +:100DB000537461747573202D2D2D2D2D0A007469C7\r\n\ +:100DC0006D65725F636F756E743A202530346C58B0\r\n\ +:100DD0000A004743433A20342E382E3120415652E0\r\n\ +:100DE0002D4C4942433A20312E382E3073766E20F6\r\n\ +:100DF0004156525F415243483A20617672350A00AB\r\n\ +:100E00004F5054494F4E533A204C554641204D4F78\r\n\ +:100E10005553454B45592045585452414B4559204F\r\n\ +:100E2000434F4E534F4C4520434F4D4D414E442070\r\n\ +:100E30004B45594D41505F53454354494F4E203423\r\n\ +:100E40003039360A004255494C443A2030386563FF\r\n\ +:100E50003862622D6469727479202831353A3235EE\r\n\ +:100E60003A3333204170722031322032303135290B\r\n\ +:100E70000A005649443A2030784645454428742EA5\r\n\ +:100E80006D2E6B2E29205049443A2030783432346C\r\n\ +:100E9000322848484B42206D6F6429205645523A0B\r\n\ +:100EA000203078303130340A00444553433A2074BE\r\n\ +:100EB0002E6D2E6B2E206B6579626F6172642066D9\r\n\ +:100EC00069726D7761726520666F722048484B4287\r\n\ +:100ED000206D6F640A000A0A2D2D2D2D2D205665D8\r\n\ +:100EE0007273696F6E202D2D2D2D2D0A000A444539\r\n\ +:100EF0004255473A206D6F7573652064697361626E\r\n\ +:100F00006C65642E0A000A44454255473A206D6FCD\r\n\ +:100F100075736520656E61626C65642E0A000A4413\r\n\ +:100F2000454255473A206B6579626F61726420646F\r\n\ +:100F3000697361626C65642E0A000A444542554734\r\n\ +:100F40003A206B6579626F61726420656E61626CD4\r\n\ +:100F500065642E0A000A44454255473A206D617483\r\n\ +:100F60007269782064697361626C65642E0A000A94\r\n\ +:100F700044454255473A206D617472697820656E28\r\n\ +:100F800061626C65642E0A000A44454255473A2066\r\n\ +:100F9000656E61626C65642E0A000A4445425547DD\r\n\ +:100FA0003A2064697361626C65642E0A006E6F7426\r\n\ +:100FB00020737570706F727465642E0A000A0A4A95\r\n\ +:100FC000756D7020746F20626F6F746C6F616465F3\r\n\ +:100FD000722E2E2E2000433E20000A456E7465724C\r\n\ +:100FE00020436F6E736F6C65204D6F64650A00550A\r\n\ +:100FF0006E6C6F636B65642E0A004C6F636B656487\r\n\ +:101000002E0A000011241FBECFEFDAE0DEBFCDBFF5\r\n\ +:1010100004B603FE24C080915E0390915F03A0910B\r\n\ +:101020006003B09161038730904BA740B04BB9F497\r\n\ +:1010300010925E0310925F0310926003109261039E\r\n\ +:1010400014BE84B7877F84BF88E10FB6F89480937D\r\n\ +:101050006000109260000FBEE0E0F8E3099511E037\r\n\ +:10106000A0E0B1E0ECE6F2E602C005900D92AA39EC\r\n\ +:10107000B107D9F723E0AAE9B1E001C01D92AE356E\r\n\ +:10108000B207E1F70E942D120C9434310C94000049\r\n\ +:101090000FB680959AE0F8947BE27A95F1F708F024\r\n\ +:1010A000589A08F4589886959A95B1F70FBE089506\r\n\ +:1010B0000FB680E8F894499BFECF4999FECF96E1A0\r\n\ +:1010C0009A95F1F79CE29A95F1F78695499980688F\r\n\ +:1010D000C8F70FBE08950FB680E8F89496E19A9588\r\n\ +:1010E000F1F79CE29A95F1F7869549998068C8F7DF\r\n\ +:1010F00096E19A95F1F7499BFECF0FBE0895FF93B5\r\n\ +:10110000EF93E0913E03F0913F03309709F009958A\r\n\ +:10111000EF91FF910895FC018591803011F0EFDF90\r\n\ +:10112000FBCF0895FF27E0E230E247FF0CC0419576\r\n\ +:1011300097FF09C0EDE26095709580959095611DCF\r\n\ +:10114000711D811D911D27FF02C0219530E350E2E2\r\n\ +:10115000AA27660F771F881F991FAA1FA41710F0D0\r\n\ +:10116000A41B63955A95A9F7AA3008F0A95FA05D62\r\n\ +:10117000AF93F395611571058105910541F7ED3246\r\n\ +:1011800011F4EF93F395F21718F43F93F395FBCF17\r\n\ +:101190008F91B5DFFA95E1F70895E991F99185917D\r\n\ +:1011A000803021F0853219F0AADFF9CF089520E0D0\r\n\ +:1011B000E89455915532C1F3503311F46894559128\r\n\ +:1011C0005A3348F4505390F3220F022E220F220F6D\r\n\ +:1011D000200D250FF4CF0EF4219589919991533666\r\n\ +:1011E00019F3533729F1533559F1BC018827992751\r\n\ +:1011F000E8945C3621F4899199916894559154361C\r\n\ +:1012000039F446EF7EF077FF0DC08FEF9FEF0AC0F5\r\n\ +:1012100055374AE039F0583540E121F0523642E086\r\n\ +:1012200009F00895FF93EF937DDFEF91FF91B7CF22\r\n\ +:10123000FF93EF93FC0181918030B9F360DFFBCF26\r\n\ +:10124000FF93EF9368DFF1CFDF93CF93CDB7DEB796\r\n\ +:101250002596A3DFCF91DF910895E72FF0E098E086\r\n\ +:10126000899FE00DF11D112483E0EE0FFF1F8A9589\r\n\ +:10127000E1F7E60FF11DE05CF74984910895E82F4E\r\n\ +:10128000F0E0EE0FFF1FE058F94985919491089521\r\n\ +:1012900014B88FEF85B9549A5C9808958FEF84B98C\r\n\ +:1012A00080E485B9549A5C9A8FE19EE40197F1F746\r\n\ +:1012B00000C0000008958FEF84B980E485B9579885\r\n\ +:1012C0005F9A2E9A2F980E944809E2EAF1E0119263\r\n\ +:1012D00081E0EA3AF807D9F7EAE9F1E0119281E012\r\n\ +:1012E000E23AF807D9F782EA91E09093AD01809352\r\n\ +:1012F000AC018AE991E09093AB018093AA01089533\r\n\ +:101300000F931F93CF93DF938091AA019091AB012C\r\n\ +:101310002091AC013091AD013093AB012093AA0133\r\n\ +:101320009093AD018093AC015C9B0E944E09C0E09C\r\n\ +:10133000D0E001E010E080E090E045B1407C4C2B33\r\n\ +:101340009C0153E0220F331F5A95E1F7422B45B918\r\n\ +:10135000EAE1EA95F1F700C0E091AA01F091AB0152\r\n\ +:10136000EC0FFD1F208130E0082E02C03595279537\r\n\ +:101370000A94E2F720FD2F9AF5E3FA95F1F70000C1\r\n\ +:10138000A6B52E982AE12A95F1F700C02091AC016C\r\n\ +:101390003091AD014F9B0EC0A801082E01C0440F33\r\n\ +:1013A0000A94EAF74095F901EC0FFD1F5081542390\r\n\ +:1013B00050830CC0F901EC0FFD1F6081A801082EBD\r\n\ +:1013C00001C0440F0A94EAF7642B608346B56A2F84\r\n\ +:1013D00070E04A1718F046B550E004C046B550E03A\r\n\ +:1013E00041505F4F461B570B4630510558F0E09176\r\n\ +:1013F000AA01F091AB01EC0FFD1F4081F901EC0F48\r\n\ +:10140000FD1F4083EAE1EA95F1F700C02F982E9A7C\r\n\ +:10141000EBE2F1E03197F1F700C00000019688306F\r\n\ +:10142000910509F08ACFA091AC01B091AD01AC0F4C\r\n\ +:10143000BD1FE091AA01F091AB01EC0FFD1F9C9143\r\n\ +:101440008081981751F00E94E4266093AE0170935A\r\n\ +:10145000AF018093B0019093B1012196C830D105BE\r\n\ +:1014600009F069CF5C9B1BC080915503853021F04A\r\n\ +:1014700080915503811113C06091AE017091AF014D\r\n\ +:101480008091B0019091B1010E941927613177429A\r\n\ +:101490008105910520F00E9448090E94692681E09B\r\n\ +:1014A000DF91CF911F910F910895E091AC01F091E0\r\n\ +:1014B000AD01E80FF11D808108950F931F93CF9325\r\n\ +:1014C000DF938EE791E00E948B08C0E0D0E002E756\r\n\ +:1014D00011E0E091AC01F091AD01EC0FFD1F8081B6\r\n\ +:1014E0000E9457261F928F93DF93CF931F930F93E2\r\n\ +:1014F0000E94240921960F900F900F900F900F904B\r\n\ +:101500000F90C830D10529F7DF91CF911F910F912E\r\n\ +:1015100008950C944E090C944809569A81FF02C014\r\n\ +:101520005E9A08955E98089588E08093CC001092AA\r\n\ +:10153000CD00E9ECF0E08081806980838081886063\r\n\ +:101540008083EAECF0E080818083EBECF0E0808146\r\n\ +:101550008083559A5D98789408959091B301209175\r\n\ +:10156000B2019217D1F030E0F901EC54FE4F8081C6\r\n\ +:101570002F5F3F4F33272093B201492F50E092173E\r\n\ +:1015800018F4241B350B03C0241B350B3395233073\r\n\ +:1015900031050CF05D9890E008958FEF9FEF08956E\r\n\ +:1015A0009091C80095FFFCCF8093CE0008951F92C4\r\n\ +:1015B0000F920FB60F9211242F933F934F935F9387\r\n\ +:1015C0008F939F93EF93FF932091B30130E0C90174\r\n\ +:1015D000019699274091B201481741F09091CE00B1\r\n\ +:1015E000F901EC54FE4F90838093B3015091B30105\r\n\ +:1015F000842F90E0252F30E0821B930B541708F0C6\r\n\ +:10160000939503970CF45D9AFF91EF919F918F91C1\r\n\ +:101610005F914F913F912F910F900FBE0F901F90B0\r\n\ +:1016200018958091CC02089508958091CC02089578\r\n\ +:101630000895089508950895CF93DF93823E91050C\r\n\ +:1016400081F1A8F4873B910589F148F4853B910528\r\n\ +:1016500051F1863B910581F5D0E0C2E031C08C3C70\r\n\ +:10166000910539F18D3C910539F5D0E828C08A38CB\r\n\ +:1016700021E0920719F140F4893E910581F08A3EFC\r\n\ +:101680009105D1F4D0E21BC0813222E0920729F00B\r\n\ +:101690008332924089F4D1E012C0D4E010C0D0E18E\r\n\ +:1016A0000EC0D0E40CC0D0E0C1E00AC0D0E0C4E07D\r\n\ +:1016B00007C0D0E0C8E004C0D0E001C0D2E0C0E084\r\n\ +:1016C0008DEF0E94D00A83E00E94D00A83E00E943E\r\n\ +:1016D000D00A8D2F0E94D00A8C2FDF91CF910C94CD\r\n\ +:1016E000D00ACF93DF93EC018DEF0E94D00A85E002\r\n\ +:1016F0000E94D00A82E00E94D00A88810E94D00A0B\r\n\ +:1017000089810E94D00A8A810E94D00A8B81DF9150\r\n\ +:10171000CF910C94D00ACF93DF93EC018DEF0E9410\r\n\ +:10172000D00A89E00E94D00A81E00E94D00A888114\r\n\ +:101730000E94D00A80E00E94D00A8A810E94D00ACA\r\n\ +:101740008B810E94D00A8C810E94D00A8D810E94D8\r\n\ +:10175000D00A8E810E94D00A8F81DF91CF910C94A4\r\n\ +:10176000D00A0C94AD0AFF920F931F93CF93DF938F\r\n\ +:10177000EC010E94D8268C01F12CC8010E94F026B1\r\n\ +:101780008C179D07A0F40E94AD0A9C012F3F8FEF9C\r\n\ +:10179000380751F02D3041F02A3049F0AF2DB0E03C\r\n\ +:1017A000AC54BD4F2C93F39486E18F1530F7EF2D99\r\n\ +:1017B000F0E0EC54FD4F108284EB92E0DF91CF918A\r\n\ +:1017C0001F910F91FF9008950C94D00A81B3881F48\r\n\ +:1017D0008827881F0895879A8F9A089585B780680B\r\n\ +:1017E00085BF85B7806885BF0E94EB0B86988E9A6F\r\n\ +:1017F00081988998559A5D980C94940A879A8F9845\r\n\ +:1018000008958FB18695817008958FB186FB8827E2\r\n\ +:1018100080F908958093CC020895CF93DF93CAE2B4\r\n\ +:10182000D2E00E94B10B8F3F2FEF920759F09F93A8\r\n\ +:101830008F93DF93CF930E9424090F900F900F9006\r\n\ +:101840000F90EFCFDF91CF910895CF93DF93FC01FD\r\n\ +:101850008491EF012196882321F00E94E40BFE0180\r\n\ +:10186000F7CF2FEF89E698E1215080409040E1F7D3\r\n\ +:1018700000C0000084E690E00E94B30B8093CD028C\r\n\ +:101880009093CE029F938F938DE292E09F938F93DC\r\n\ +:101890000E9424090E940D0C0F900F900F900F9042\r\n\ +:1018A0008091CD029091CE02DF91CF9108950E9458\r\n\ +:1018B000921990931501809314010E94091F80E0F2\r\n\ +:1018C00091E00E948D190E94FE0B0E94050C81116F\r\n\ +:1018D000FCCF80E192E00E948B082FEF85EB95E32F\r\n\ +:1018E000215080409040E1F700C000008CE092E081\r\n\ +:1018F0000E94250CEFEFFBE42DE1E150F040204089\r\n\ +:10190000E1F700C000000E940D0C88E092E00E9408\r\n\ +:10191000250CFC018081863721F084E092E00C9454\r\n\ +:10192000250C08958BEE91E00E948B0885EE91E0E6\r\n\ +:101930000E94250C0E94EB0B0E94091F809114014C\r\n\ +:10194000909115010C948D190C946A118F929F92AD\r\n\ +:10195000AF92BF92CF92DF92EF92FF920F931F93BD\r\n\ +:10196000CF93DF9392E0B92ECEE3D4E004E414E009\r\n\ +:10197000AA24A39423E0922E3CE2C32E34E0D32E7B\r\n\ +:101980000E94B10B7C018F3F2FEF920709F446C0F4\r\n\ +:101990008091D102813009F128F0823029F1833021\r\n\ +:1019A00049F139C08EEFE816F10419F4A092D10282\r\n\ +:1019B000E7CF90E8E916F10428F4FF92EF921F9325\r\n\ +:1019C0000F9304C0FF92EF92DF93CF930E942409FC\r\n\ +:1019D0000F900F900F900F90D3CF92E0E916F10483\r\n\ +:1019E000D1F4B092D102CCCFEA94EF28A1F4909236\r\n\ +:1019F000D102C6CF80913C0380FF0AC0FF92EF92D4\r\n\ +:101A0000DF92CF920E9424090F900F900F900F90B9\r\n\ +:101A10008E2D0E940A0C1092D102B2CF8091D30277\r\n\ +:101A2000811121C08091D20281111DC00E94010C40\r\n\ +:101A300081110AC00E9492198A50914029F00E9497\r\n\ +:101A4000091F8AE091E00DC00E94010C882359F023\r\n\ +:101A50000E9492198651914031F00E94091F86E13F\r\n\ +:101A600091E00E948D198091CF029091D0020E9446\r\n\ +:101A7000F026893E23E0920708F461C028EE33E0A7\r\n\ +:101A8000B9010E94E430629FA001639F500D729FD4\r\n\ +:101A9000500D11248091CF029091D002840F951F98\r\n\ +:101AA0009093D0028093CF020E940712833011F4EA\r\n\ +:101AB00081E001C080E00E9459110E94E42628EED6\r\n\ +:101AC00033E040E050E00E940C3149015A018CE3C0\r\n\ +:101AD000C82ED12CE12CF12CCA01B901A701960125\r\n\ +:101AE0000E940C31672B682B692B49F50E94D0119D\r\n\ +:101AF00020913C0320FF23C09F938F931F921F923E\r\n\ +:101B0000C501B40120E13EE040E050E00E940C310C\r\n\ +:101B1000C22FA70196010E940C313F932F931F9271\r\n\ +:101B2000CF9387E194E09F938F930E9424098DB710\r\n\ +:101B30009EB70A960FB6F8949EBF0FBE8DBF0E9447\r\n\ +:101B4000010C811107C00E94050C882319F06E9AC0\r\n\ +:101B5000769802C06E9A769ADF91CF911F910F917D\r\n\ +:101B6000FF90EF90DF90CF90BF90AF909F908F90BD\r\n\ +:101B700008958F929F92AF92BF92CF92DF92EF9291\r\n\ +:101B8000FF921F93CF93DF9300D000D0CDB7DEB785\r\n\ +:101B9000833109F48CC008F05BC08B3009F466C057\r\n\ +:101BA0008C3009F48FC0853009F0FCC10E94E42616\r\n\ +:101BB00028EE33E040E050E00E940C3149015A0128\r\n\ +:101BC0000E94D0119F938F9386E692E09F938F930C\r\n\ +:101BD0000E942409C501B40120E13EE040E050E04C\r\n\ +:101BE0000E940C315F934F933F932F9320E632E096\r\n\ +:101BF0003F932F9369837A838C839B830E9424096C\r\n\ +:101C00004CE3C42ED12CE12CF12C69817A818C819A\r\n\ +:101C10009B81A70196010E940C315F934F933F93E4\r\n\ +:101C20002F938AE592E09F938F930E942409C50128\r\n\ +:101C3000B401A70196010E940C319F938F937F936B\r\n\ +:101C40006F9384E592E09F938F930E94240940C193\r\n\ +:101C5000883361F020F4883109F440C1A3C187348E\r\n\ +:101C600009F46EC18C3409F456C19CC183EF93E032\r\n\ +:101C70000E948B088EED93E00E948B0884EC93E029\r\n\ +:101C80000E948B088DE993E00E948B0882E893E024\r\n\ +:101C90000E948B0880E793E00E948B088091D3021A\r\n\ +:101CA00081117EC180E593E00E948B087EC10E9475\r\n\ +:101CB000570C88E392E00E94250C82E392E00E9498\r\n\ +:101CC000250C6CC187E393E00E948B080E94921957\r\n\ +:101CD0008A50914019F487E491E002C08DE491E0CC\r\n\ +:101CE0009F938F9389E293E09F938F930E9424099F\r\n\ +:101CF0008091D2021F928F938AE193E09F938F93FA\r\n\ +:101D00000E9424090E94010C0FB6F894DEBF0FBE9A\r\n\ +:101D1000CDBF811107C00E94050C882331F089E5F1\r\n\ +:101D200091E005C082E591E002C086E591E09F93D5\r\n\ +:101D30008F9380E193E09F938F930E9424090E94E8\r\n\ +:101D4000E60B1F928F9385EF92E09F938F930E94F3\r\n\ +:101D500024098091D3021F928F9384EE92E09F9387\r\n\ +:101D60008F930E942409809155030FB6F894DEBF2B\r\n\ +:101D70000FBECDBF8823B9F0809155038130B1F0FB\r\n\ +:101D8000809155038230A9F0809155038330A1F0F2\r\n\ +:101D900080915503843099F080915503853091F4FA\r\n\ +:101DA00080E991E011C086E691E00EC08EE591E0F9\r\n\ +:101DB0000BC081E791E008C089E791E005C083E8A6\r\n\ +:101DC00091E002C08EE891E09F938F9385ED92E0C1\r\n\ +:101DD0009F938F930E9424098BEC92E09F938F93A3\r\n\ +:101DE0000E9424090E9407120F900F900F900F90ED\r\n\ +:101DF0000F900F90813059F038F0823059F08330D5\r\n\ +:101E000061F485EB92E00BC086EC92E008C080ECB8\r\n\ +:101E100092E005C089EB92E002C083EB92E09F93D1\r\n\ +:101E20008F930E9424090F900F9081EB92E09F9373\r\n\ +:101E30008F930E942409809153031F928F9388E906\r\n\ +:101E400092E09F938F930E9424098091D900817022\r\n\ +:101E50001F928F938EE892E09F938F930E942409A4\r\n\ +:101E60000E94E42628EE33E040E050E00E940C316E\r\n\ +:101E700069017A015CE3852E912CA12CB12CC7015C\r\n\ +:101E8000B601A50194010E940C317F936F93C701A5\r\n\ +:101E9000B60120E13EE040E050E00E940C31122FFC\r\n\ +:101EA000A50194010E940C313F932F931F921F9321\r\n\ +:101EB000C701B60120E831E541E050E00E940C3155\r\n\ +:101EC0003F932F9381E792E09F938F930E94240981\r\n\ +:101ED0000FB6F894DEBF0FBECDBF62C08091D302B3\r\n\ +:101EE000811163C08091D202882339F089E492E0A5\r\n\ +:101EF0000E948B081092D20253C08FE392E00E949E\r\n\ +:101F00008B0881E08093D2020E94091F86E191E054\r\n\ +:101F10000E948D1945C00E94E60B882351F08C83E6\r\n\ +:101F20000E94570C91E090934D039093D3028C81C3\r\n\ +:101F30003DC00E94920C10924D031092D30230C00B\r\n\ +:101F40008091D302811102C00E94570C8EED91E066\r\n\ +:101F50000E94250C83ED91E00E94250C8FEB91E00F\r\n\ +:101F60000E94250C88EB91E00E94250C8EEA91E0FE\r\n\ +:101F70000E94250C87EA91E00E94250C8DE991E0F2\r\n\ +:101F80000E94250C83E991E00E94250C8DE891E0E8\r\n\ +:101F90000E94250C8091D302811102C00E94920CF4\r\n\ +:101FA00081E004C08091D30201C080E00F900F90C7\r\n\ +:101FB0000F900F90DF91CF911F91FF90EF90DF90E6\r\n\ +:101FC000CF90BF90AF909F908F900895CF93C82FE0\r\n\ +:101FD0000E94AE24827221E009F420E08C2F90E070\r\n\ +:101FE000FC013497E934F10508F0FDC0EA5AFF4FCF\r\n\ +:101FF0000C942E318AE058C1222309F4F8C081E400\r\n\ +:1020000053C1222309F4F5C082E44EC1222309F40E\r\n\ +:10201000F2C083E449C1222309F4EFC084E444C13F\r\n\ +:10202000222309F4ECC085E43FC1222309F4E9C06E\r\n\ +:1020300086E43AC1222309F4E6C087E435C12223AD\r\n\ +:1020400009F4E3C088E430C1222309F4E0C089E444\r\n\ +:102050002BC1222309F4DDC08AE426C1222309F41E\r\n\ +:10206000DAC08BE421C1222309F4D7C08CE41CC15F\r\n\ +:10207000222309F4D4C08DE417C1222309F4D1C06E\r\n\ +:102080008EE412C1222309F4CEC08FE40DC12223B5\r\n\ +:1020900009F4CBC080E508C1222309F4C8C081E55A\r\n\ +:1020A00003C1222309F4C5C082E5FEC0222309F43E\r\n\ +:1020B000C2C083E5F9C0222309F4BFC084E5F4C09F\r\n\ +:1020C000222309F4BCC085E5EFC0222309F4B9C07E\r\n\ +:1020D00086E5EAC0222309F4B6C087E5E5C02223DD\r\n\ +:1020E00009F4B3C088E5E0C0222309F4B0C089E553\r\n\ +:1020F000DBC0222309F4ADC08AE5D6C0222309F44F\r\n\ +:10210000AAC081E2D1C0222309F4A7C080E4CCC0D8\r\n\ +:10211000222309F4A4C083E2C7C0222309F4A1C08A\r\n\ +:1021200084E2C2C0222309F49EC085E2BDC02223FE\r\n\ +:1021300009F49BC08EE5B8C0222309F498C086E25A\r\n\ +:10214000B3C0222309F495C08AE2AEC0222309F469\r\n\ +:1021500092C088E2A9C0222309F48FC089E2A4C0FA\r\n\ +:1021600088E0A2C089E0A0C080E29EC0222309F4DA\r\n\ +:1021700086C08FE599C0222309F483C08BE294C006\r\n\ +:10218000222309F480C08BE78FC0222309F47DC08D\r\n\ +:102190008DE78AC0222309F47AC08CE785C021111B\r\n\ +:1021A000FCCF8CE581C0222309F473C08AE37CC094\r\n\ +:1021B000222309F470C082E277C0222309F46DC0A3\r\n\ +:1021C0008EE772C0222309F46AC08CE36DC022231B\r\n\ +:1021D00009F467C08EE368C0222309F464C08FE36A\r\n\ +:1021E00063C080E061C080E25FC08BE15DC081E6DA\r\n\ +:1021F0005BC082E659C083E657C084E655C085E6D9\r\n\ +:1022000053C086E651C087E64FC088E64DC089E6D8\r\n\ +:102210004BC08AE649C08BE647C08CE645C08DE6D8\r\n\ +:1022200043C08EE641C08FE63FC080E73DC081E7F6\r\n\ +:102230003BC082E739C083E737C084E735C085E714\r\n\ +:1022400033C086E731C087E72FC088E72DC089E714\r\n\ +:102250002BC08AE729C081E327C082E325C083E33E\r\n\ +:1022600023C084E321C085E31FC086E31DC087E34C\r\n\ +:102270001BC088E319C089E317C080E315C08DE255\r\n\ +:1022800013C08DE311C08BE50FC08DE50DC08CE54B\r\n\ +:102290000BC08BE309C087E207C080E605C08CE273\r\n\ +:1022A00003C08EE201C08FE20E94E40B81E0CF9177\r\n\ +:1022B0000895833019F4859A7D9A0895813011F438\r\n\ +:1022C000859A06C0823019F4859A8D9A089585986A\r\n\ +:1022D0008D98089581E00E9459112FEF89E698E1C9\r\n\ +:1022E000215080409040E1F700C0000082E00E9451\r\n\ +:1022F00059112FEF89E698E1215080409040E1F795\r\n\ +:1023000000C0000081E00E9459112FEF89E698E19A\r\n\ +:10231000215080409040E1F700C0000082E00E9420\r\n\ +:1023200059112FEF89E698E1215080409040E1F764\r\n\ +:1023300000C0000080E00E94591180EC80937C0076\r\n\ +:1023400087E080937A0081E980937E0081E080932A\r\n\ +:102350007F008BE380937D00849A8C980895809110\r\n\ +:10236000D90080FF1BC020B391B385988D9AEFE907\r\n\ +:10237000FFE03197F1F700C000008FB185FB88279F\r\n\ +:1023800080F930B320723F7D232B20BB21B39072A4\r\n\ +:102390002F7D922B91BB91E08927089580E00895CD\r\n\ +:1023A000CF93DF9300D0CDB7DEB7849A8C9A80911B\r\n\ +:1023B0007A00806880937A008FE99FE00197F1F7B7\r\n\ +:1023C00000C0000080917A00806480937A00809140\r\n\ +:1023D0007A0086FDFCCF80917800909179009A83F5\r\n\ +:1023E000898380917A008F7780937A00849A8C9881\r\n\ +:1023F00029813A8145E0429FC001439F900D1124FD\r\n\ +:10240000805591090F900F90DF91CF9108958091A1\r\n\ +:10241000D90080FD0C94AF110E94D0118C3A2DE0B0\r\n\ +:10242000920720F481E08093D40205C085379E4056\r\n\ +:1024300010F01092D4028091D402882311F083E02E\r\n\ +:10244000089582E00895CF93C82F0E9448088C2FEA\r\n\ +:102450000E94B21280E0CF910895CF9384B7877F16\r\n\ +:1024600084BF88E10FB6F8948093600010926000FA\r\n\ +:102470000FBE90E080E80FB6F894809361009093CF\r\n\ +:1024800061000FBE0E94DA160E9437178091E200A9\r\n\ +:1024900084608093E20083E292E10E94FF25509ADB\r\n\ +:1024A000589A5198599A7894CFEF80915503C1501A\r\n\ +:1024B000843051F08FE79EE30197F1F700C00000F0\r\n\ +:1024C0000E947019C111F1CF87E694E00E948B0839\r\n\ +:1024D0000E94EE0B0E94A40C8BE594E00E948B08F6\r\n\ +:1024E0000E941F1A0E94010C811103C08AE091E032\r\n\ +:1024F00002C086E191E00E948D198BE494E00E9475\r\n\ +:102500008B080E94010C882319F1809155038530B6\r\n\ +:10251000F9F487E494E00E948B080E948B0A0E94E1\r\n\ +:1025200069260E9469260E9469260E9469260E94E7\r\n\ +:1025300069260E9469260E94692680915303882398\r\n\ +:1025400001F30E948F268823E1F20E943A15D9CF29\r\n\ +:102550000E944B1A0E9470190E94A60CD2CF809143\r\n\ +:10256000DF02089590915503943009F04DC0909189\r\n\ +:10257000E9009F702091EC0020FF02C020E801C01C\r\n\ +:1025800020E0292B94E09093E9009091EB0090FFDC\r\n\ +:1025900038C09091EE0097FF34C09091D6029923F5\r\n\ +:1025A00021F09091E80095FF2CC01092D60296E0A1\r\n\ +:1025B0003091E80035FD15C030915503343009F5F0\r\n\ +:1025C0003091EB0035FD1DC0915021F481E08093E6\r\n\ +:1025D000D60217C0EFE9FFE03197F1F700C0000025\r\n\ +:1025E000E7CF8093F1008091E80085FD05C08091E0\r\n\ +:1025F000E8008E778093E8002F702093E90080E058\r\n\ +:1026000008952F702093E9008FEF0895CF93DF9303\r\n\ +:1026100000D01F92CDB7DEB720915503243019F5B5\r\n\ +:1026200023E029839B838A832093E9008FEF909195\r\n\ +:10263000E800815095FD06C095ED9A95F1F70000F0\r\n\ +:102640008111F5CF8091E80085FF0DC040E050E09A\r\n\ +:1026500063E070E0CE0101960E9450158091E80081\r\n\ +:102660008E778093E8000F900F900F90DF91CF91BD\r\n\ +:102670000895CF93DF9300D01F92CDB7DEB720919E\r\n\ +:102680005503243021F522E029839B838A8383E04C\r\n\ +:102690008093E9008FEF9091E800815095FD06C08E\r\n\ +:1026A00095ED9A95F1F700008111F5CF8091E80042\r\n\ +:1026B00085FF0DC040E050E063E070E0CE01019680\r\n\ +:1026C0000E9450158091E8008E778093E8000F906B\r\n\ +:1026D0000F900F90DF91CF910895209155032430F2\r\n\ +:1026E000F1F422E02093E9002FEF3091E80021502F\r\n\ +:1026F00035FD06C035ED3A95F1F700002111F5CF13\r\n\ +:102700002091E80025FF0BC040E050E065E070E05C\r\n\ +:102710000E9450158091E8008E778093E80008951C\r\n\ +:10272000CF93DF93EC0180915503843039F581E03C\r\n\ +:102730008093E9008FEF9091E800815095FD06C0ED\r\n\ +:1027400095ED9A95F1F700008111F5CF8091E800A1\r\n\ +:1027500085FF14C040E050E068E070E0CE010E94C8\r\n\ +:1027600050158091E8008E778093E80088E0FE01A4\r\n\ +:10277000A7EDB2E001900D928A95E1F7DF91CF913C\r\n\ +:10278000089588EA94E00E948B0880915403811197\r\n\ +:1027900009C00E94DA160E9437178091E200846017\r\n\ +:1027A0008093E200089584EA94E00E948B081092DE\r\n\ +:1027B0005403089580EA94E00C948B088CE994E02B\r\n\ +:1027C0000E948B080C948B0A88E994E00E948B0885\r\n\ +:1027D0000C94A42680915503843049F58091E9003A\r\n\ +:1027E0008F709091EC0090FF02C090E801C090E0E3\r\n\ +:1027F000982B84E08093E9008091EB0080FF14C067\r\n\ +:102800008091EE0087FF10C08091E80085FF03C033\r\n\ +:102810001092F100F9CF8091E80080FF05C080910F\r\n\ +:10282000E8008E778093E8009F709093E900089508\r\n\ +:1028300042E061EC81E00E94541642E061EC82E0EB\r\n\ +:102840000E94541642E061EC83E00E94541646E276\r\n\ +:1028500061EC84E00C94541680915703833009F4A2\r\n\ +:1028600053C030F4813071F0823009F491C0089582\r\n\ +:102870008A3009F47DC08B3009F45EC0893009F0DC\r\n\ +:102880009FC020C080915603813A09F099C0809181\r\n\ +:10289000E800877F8093E80080915A0390915B0362\r\n\ +:1028A000892B21F060E080E090E003C068E087EDD4\r\n\ +:1028B00092E070E00E949B158091E8008B778093F6\r\n\ +:1028C000E800089580915603813209F079C0809123\r\n\ +:1028D0005A0390915B03892B09F072C08091E80044\r\n\ +:1028E000877F8093E8008091E80082FD05C0809199\r\n\ +:1028F00055038111F8CF64C08091F1008093DF020D\r\n\ +:102900008091E8008B7758C080915603813A09F096\r\n\ +:1029100057C080915A0390915B03892B09F050C0F6\r\n\ +:102920008091E800877F8093E8008091E80080FF35\r\n\ +:10293000FCCF809120013BC080915603813209F089\r\n\ +:102940003FC080915A0390915B03892BC9F5809118\r\n\ +:10295000E800877F8093E8000E94891690915803D1\r\n\ +:1029600081E0911101C080E0809320010C94091F47\r\n\ +:1029700080915603813221F58091E800877F809312\r\n\ +:10298000E8000E948916809159038093D50208952A\r\n\ +:1029900080915603813AA1F48091E800877F80936B\r\n\ +:1029A000E8008091E80080FFFCCF8091D502809301\r\n\ +:1029B000F1008091E8008E778093E8000C948916EE\r\n\ +:1029C0000895292F332723303105A9F06CF42130E5\r\n\ +:1029D000310509F442C02230310509F043C084E7D3\r\n\ +:1029E00090E024ED34E042C021323105C9F02232BA\r\n\ +:1029F000310519F137C099278130910541F08230B6\r\n\ +:102A0000910541F0892B71F5E0EDF4E005C0E0ECB3\r\n\ +:102A1000F4E002C0ECEAF4E0849190E09F0126C06B\r\n\ +:102A2000643000F5E62FF0E0EE0FFF1FEB5CFE4F89\r\n\ +:102A30002081318189E090E019C0643098F4E62F5C\r\n\ +:102A4000F0E0DF01AA0FBB1FA35DBE4F2D913C91AB\r\n\ +:102A5000E75DFE4F808190E009C082E190E028E4CC\r\n\ +:102A600035E004C080E090E020E030E0FA013183FE\r\n\ +:102A70002083089580E189BD82E189BD09B400FE0B\r\n\ +:102A8000FDCF8091D8008F7D8093D8008091E000A9\r\n\ +:102A900082608093E0008091E00081FDFCCF08958A\r\n\ +:102AA000CF92DF92EF92FF920F931F93CF93DF931A\r\n\ +:102AB0007C018B01EA010E94AA16811133C0209784\r\n\ +:102AC00031F088819981081B190BE80EF91EC12C81\r\n\ +:102AD000D12C0115110529F18091E80085FD16C062\r\n\ +:102AE0008091E8008E778093E8000E94701920970B\r\n\ +:102AF00041F0888199818C0D9D1D9983888385E0A3\r\n\ +:102B000011C00E94AA16882321F30CC0F7018191FD\r\n\ +:102B10007F018093F10001501109FFEFCF1ADF0A06\r\n\ +:102B2000D8CF80E0DF91CF911F910F91FF90EF9070\r\n\ +:102B3000DF90CF90089520915C0330915D032617BC\r\n\ +:102B4000370748F06115710539F42091E8002E77B8\r\n\ +:102B50002093E80001C0B901FC0120E06115710576\r\n\ +:102B6000A9F1809155038823E9F18530E9F180913D\r\n\ +:102B7000E80083FD35C08091E80082FF06C08091A7\r\n\ +:102B8000E80082FF26C080E008958091E80080FF81\r\n\ +:102B9000E5CF2091F3008091F20090E0922B611537\r\n\ +:102BA000710551F08830910538F421912093F1009E\r\n\ +:102BB000615071090196F3CF21E0089709F020E0F8\r\n\ +:102BC0008091E8008E778093E800C8CF2111C9CFAB\r\n\ +:102BD000D6CF80915503882329F0853081F604C033\r\n\ +:102BE00081E0089582E0089583E0089520915C03D8\r\n\ +:102BF00030915D032617370748F06115710539F4E8\r\n\ +:102C00002091E8002E772093E80001C0B901FC0173\r\n\ +:102C100020E061157105C1F180915503882309F405\r\n\ +:102C20003FC0853009F43EC08091E80083FD36C086\r\n\ +:102C30008091E80082FF06C08091E80082FF27C0F3\r\n\ +:102C400080E008958091E80080FFE3CF2091F300B9\r\n\ +:102C50008091F20090E0922B6115710559F0883057\r\n\ +:102C6000910540F424912093F1003196615071094F\r\n\ +:102C70000196F2CF21E0089709F020E08091E8006A\r\n\ +:102C80008E778093E800C5CF2111C6CFD5CF809134\r\n\ +:102C90005503882329F0853079F604C081E0089532\r\n\ +:102CA00082E0089583E00895982F973058F5909327\r\n\ +:102CB000E900981739F07091EC002091ED005091E7\r\n\ +:102CC000F00003C0242F762F50E021FF19C030916F\r\n\ +:102CD000EB003E7F3093EB003091ED003D7F309371\r\n\ +:102CE000ED003091EB0031603093EB007093EC001D\r\n\ +:102CF0002093ED005093F0002091EE0027FF07C0D5\r\n\ +:102D00009F5FD3CF8F708093E90081E0089580E0CA\r\n\ +:102D100008958091560387FD05C08091E80080FFEB\r\n\ +:102D20000EC012C08091E80082FD05C0809155035D\r\n\ +:102D30008111F8CF08958091E8008B7708C08091C9\r\n\ +:102D400055038111EACF08958091E8008E77809332\r\n\ +:102D5000E80008958091E4009091E50045E6209117\r\n\ +:102D6000EC0020FF21C02091E80020FD21C020912F\r\n\ +:102D70005503222389F0253089F02091EB0025FDB1\r\n\ +:102D80000FC02091E4003091E5002817390739F38E\r\n\ +:102D9000415041F0C901E3CF82E0089583E00895F6\r\n\ +:102DA00081E0089584E008952091E80022FFDFCFBC\r\n\ +:102DB00080E008950E9448170E945017E0EEF0E06E\r\n\ +:102DC000808181608083E8EDF0E080818F7780836F\r\n\ +:102DD00019BCA7EDB0E08C918E7F8C9380818F7EA3\r\n\ +:102DE00080831092540308950F931F93CF93DF9322\r\n\ +:102DF0000E9448170E945017C8EDD0E088818F7755\r\n\ +:102E0000888388818068888388818F7D888319BCC6\r\n\ +:102E100010925503109251031092530310925203D3\r\n\ +:102E200000EE10E0F80180818B7F808388818160D3\r\n\ +:102E3000888342E060E080E00E945416E1EEF0E01A\r\n\ +:102E400080818E7F8083E2EEF0E0808181608083EC\r\n\ +:102E5000808188608083F80180818E7F8083888173\r\n\ +:102E600080618883DF91CF911F910F910895E8EDE4\r\n\ +:102E7000F0E080818F7E8083E7EDF0E080818160EB\r\n\ +:102E8000808384E082BF81E0809354030C94F41625\r\n\ +:102E9000E8EDF0E080818E7F80831092E20008955B\r\n\ +:102EA0001092DA001092E10008951F920F920FB66F\r\n\ +:102EB0000F9211242F933F934F935F936F937F93C0\r\n\ +:102EC0008F939F93AF93BF93EF93FF938091E10014\r\n\ +:102ED00082FF0BC08091E20082FF07C08091E10079\r\n\ +:102EE0008B7F8093E1000E94EA138091DA0080FFDB\r\n\ +:102EF0001FC08091D80080FF1BC08091DA008E7FB8\r\n\ +:102F00008093DA008091D90080FF0DC080E189BDF7\r\n\ +:102F100082E189BD09B400FEFDCF81E080935503B5\r\n\ +:102F20000E94C11305C019BC109255030E94D3130F\r\n\ +:102F30008091E10080FF19C08091E20080FF15C000\r\n\ +:102F40008091E2008E7F8093E2008091E2008061B8\r\n\ +:102F50008093E2008091D80080628093D80019BCF1\r\n\ +:102F600085E0809355030E94DE138091E10084FF89\r\n\ +:102F700030C08091E20084FF2CC080E189BD82E1F5\r\n\ +:102F800089BD09B400FEFDCF8091D8008F7D80936C\r\n\ +:102F9000D8008091E1008F7E8093E1008091E20073\r\n\ +:102FA0008F7E8093E2008091E20081608093E20056\r\n\ +:102FB00080915103882311F084E007C08091E300E1\r\n\ +:102FC00087FF02C083E001C081E0809355030E9427\r\n\ +:102FD000E4138091E10083FF24C08091E20083FF2D\r\n\ +:102FE00020C08091E100877F8093E10082E08093A0\r\n\ +:102FF0005503109251038091E1008E7F8093E10090\r\n\ +:103000008091E2008E7F8093E2008091E2008061F7\r\n\ +:103010008093E20042E060E080E00E9454160E944B\r\n\ +:10302000DA13FF91EF91BF91AF919F918F917F91B3\r\n\ +:103030006F915F914F913F912F910F900FBE0F9025\r\n\ +:103040001F9018951F93CF93DF93CDB7DEB7AA9744\r\n\ +:103050000FB6F894DEBF0FBECDBFE6E5F3E080917A\r\n\ +:10306000F100819323E0EE35F207C9F70E942C149A\r\n\ +:103070008091E80083FF1CC12091560330915703D3\r\n\ +:10308000832F90E08A30910508F012C1FC01E156CF\r\n\ +:10309000FF4F0C942E31203881F0223809F008C1FE\r\n\ +:1030A00080915A038F708093E9008091EB0085FB3B\r\n\ +:1030B000882780F91092E90006C080915203909110\r\n\ +:1030C0005303911182609091E800977F9093E800FC\r\n\ +:1030D0008093F1001092F100C5C0822F8D7F09F01E\r\n\ +:1030E000E7C0222319F0223061F0E2C0809158033A\r\n\ +:1030F000813009F0DDC0333009F080E08093530364\r\n\ +:1031000028C080915803811124C020915A032F7048\r\n\ +:1031100009F4CEC02093E9008091EB0080FF19C034\r\n\ +:103120008091EB00333011F4806211C08061809394\r\n\ +:10313000EB0081E090E0022E01C0880F0A94EAF7CC\r\n\ +:103140008093EA001092EA008091EB0088608093FF\r\n\ +:10315000EB001092E9008091E800877F86C0211182\r\n\ +:10316000A7C0109158031F778091E3008078812BCE\r\n\ +:103170008093E3008091E800877F8093E8000E94BD\r\n\ +:1031800089168091E80080FFFCCF8091E300806881\r\n\ +:103190008093E300112311F083E001C082E080936B\r\n\ +:1031A000550386C02058223008F082C08091580311\r\n\ +:1031B000909159038C3D23E0920779F583E08A834F\r\n\ +:1031C0008AE289834FB7F894DE01139620E03EE04F\r\n\ +:1031D00051E2E32FF0E050935700E49120FF03C049\r\n\ +:1031E000E295EF703F5FEF708E2F90E0EA3010F0C5\r\n\ +:1031F000C79601C0C0968D939D932F5F243149F7E8\r\n\ +:103200004FBF8091E800877F8093E8006AE270E01A\r\n\ +:10321000CE0101960E949B1514C0AE014F5F5F4F17\r\n\ +:1032200060915A030E94E114009709F441C0209173\r\n\ +:10323000E800277F2093E800BC0189819A810E94E1\r\n\ +:10324000F6158091E8008B778093E80031C0203834\r\n\ +:1032500079F58091E800877F8093E80080915103A1\r\n\ +:103260008093F1008091E8008E778093E8000E94BF\r\n\ +:1032700089161EC021111CC0909158039230C0F4D1\r\n\ +:103280008091E800877F8093E800909351030E942B\r\n\ +:10329000891680915103811104C08091E30087FF5A\r\n\ +:1032A00002C084E001C081E0809355030E9418149D\r\n\ +:1032B0008091E80083FF0AC08091E800877F8093B7\r\n\ +:1032C000E8008091EB0080628093EB00AA960FB635\r\n\ +:1032D000F894DEBF0FBECDBFDF91CF911F9108954F\r\n\ +:1032E000CF93809155038823B1F08091E9008F70CE\r\n\ +:1032F0009091EC0090FF02C090E801C090E0C92FCF\r\n\ +:10330000C82B1092E9008091E80083FD0E942218EA\r\n\ +:10331000CF70C093E900CF9108959093E502809318\r\n\ +:10332000E40208958091E4029091E5020895E0910D\r\n\ +:10333000E402F091E502309721F00190F081E02D58\r\n\ +:10334000099480E00895FF920F931F93CF93DF932A\r\n\ +:103350008C01E091E402F091E502309799F102804E\r\n\ +:10336000F381E02D099580913C0382FF2BC080FF03\r\n\ +:1033700004C084E496E00E948B08E80188E0F82EFF\r\n\ +:103380000EE316E080913C0380FF0BC088811F9202\r\n\ +:103390008F931F930F930E9424090F900F900F900B\r\n\ +:1033A0000F90FA942196F110EDCF80913C0380FFAD\r\n\ +:1033B00009C08CE396E0DF91CF911F910F91FF90B0\r\n\ +:1033C0000C948B08DF91CF911F910F91FF9008957E\r\n\ +:1033D000E091E402F091E502309721F00480F5815C\r\n\ +:1033E000E02D099408952091E2023091E3028217C2\r\n\ +:1033F000930771F09093E3028093E202E091E4027C\r\n\ +:10340000F091E502309721F00680F781E02D0994D4\r\n\ +:1034100008952091E0023091E1028217930771F044\r\n\ +:103420009093E1028093E002E091E402F091E502E2\r\n\ +:10343000309721F00084F185E02D099408950E94D1\r\n\ +:10344000CF260C945B09CF93C82F80913C0382FF59\r\n\ +:103450001EC080FF04C08DE596E00E948B0880911D\r\n\ +:103460003C0380FF0CC01F92CF9328E536E03F93CA\r\n\ +:103470002F930E9424090F900F900F900F9080912E\r\n\ +:103480003C0380FF04C086E596E00E948B088C2FE9\r\n\ +:10349000CF910C948D0ACF92DF92EF92FF920F930F\r\n\ +:1034A0001F93CF93DF93CDB7DEB72B970FB6F8946A\r\n\ +:1034B000DEBF0FBECDBF0E94800937EEE32E32E0A3\r\n\ +:1034C000F32E00E010E0C02E802F0E94550AF70175\r\n\ +:1034D000D1907F01D826B1F40F5F1F4F083011053E\r\n\ +:1034E00091F78FEF89838A831B820E94D82681609F\r\n\ +:1034F000782F9D838C8349815A816B818D810E94B5\r\n\ +:10350000EE1A41C090913C0391FF04C08B870E944A\r\n\ +:103510005D0A8B8520E030E04D2D50E0922FBA01FE\r\n\ +:10352000022E02C0759567950A94E2F760FF25C0E8\r\n\ +:103530002E83CF82EE24E394F12C02C0EE0CFF1C0C\r\n\ +:103540009A95E2F790E08E219F2121E0892B09F4E2\r\n\ +:1035500020E028870E94D8268160782F9A87898763\r\n\ +:103560004E815F8168858A850E94EE1AF801E951D3\r\n\ +:10357000FD4F80818E25808306C02F5F3F4F28300E\r\n\ +:10358000310561F6A9CF0E9488291091E6020E94B8\r\n\ +:1035900097191817A1F00E9497198093E6022B96AD\r\n\ +:1035A0000FB6F894DEBF0FBECDBFDF91CF911F9154\r\n\ +:1035B0000F91FF90EF90DF90CF900C94231A2B96F1\r\n\ +:1035C0000FB6F894DEBF0FBECDBFDF91CF911F9134\r\n\ +:1035D0000F91FF90EF90DF90CF900895CF93DF93FE\r\n\ +:1035E000CDB7DEB72B970FB6F894DEBF0FBECDBFB9\r\n\ +:1035F0004F83588769877A878B87DE01119686E02B\r\n\ +:10360000FD0111928A95E9F785E0FE013796019058\r\n\ +:103610000D928A95E1F749815A816B817C818D8178\r\n\ +:103620009E810E94D1212B960FB6F894DEBF0FBE6B\r\n\ +:10363000CDBFDF91CF910895CF93C82F882309F490\r\n\ +:1036400098C08CEF8C0F813A48F48C2F0E94522E38\r\n\ +:1036500081118FC08C2F0E946C240CC080E28C0FD3\r\n\ +:10366000883058F4C77081E001C0880FCA95EAF726\r\n\ +:103670000E94B124CF910C94F4248BE58C0F8330FD\r\n\ +:1036800078F4C53A29F0C63A31F482E890E005C0F2\r\n\ +:1036900081E890E002C083E890E0CF910C94F319A8\r\n\ +:1036A00088E58C0F833108F064C0C83A39F1C93A13\r\n\ +:1036B00041F1CA3A49F1CB3A51F1CC3A59F1CD3AFC\r\n\ +:1036C00061F1C03B69F1CE3A71F1CF3A79F1C13B7A\r\n\ +:1036D00081F1C23B89F1C33B91F1C43B99F1C53BF8\r\n\ +:1036E000A1F1C63BA9F1C73BB1F1C83BB9F1C93B58\r\n\ +:1036F000C1F1CA3BC9F58AE292E038C082EE90E09F\r\n\ +:1037000035C089EE90E032C08AEE90E02FC085EBA4\r\n\ +:1037100090E02CC086EB90E029C087EB90E026C0BB\r\n\ +:103720008CEC90E023C08DEC90E020C083E891E029\r\n\ +:103730001DC08AE891E01AC082E991E017C084E9CF\r\n\ +:1037400091E014C081E292E011C083E292E00EC0E9\r\n\ +:1037500084E292E00BC085E292E008C086E292E04B\r\n\ +:1037600005C087E292E002C080E090E0CF910C9427\r\n\ +:10377000091ACF910895882329F19CEF980F913A67\r\n\ +:1037800018F40E948D240DC090E2980F983058F4E0\r\n\ +:10379000877091E001C0990F8A95EAF7892F0E94FE\r\n\ +:1037A000B7240C94F4249BE5980F933020F480E028\r\n\ +:1037B00090E00C94F319885A833120F480E090E073\r\n\ +:1037C0000C94091A0895882321F00E94B1240C94C6\r\n\ +:1037D000F4240895882321F00E94B7240C94F42443\r\n\ +:1037E0000895CF92DF92EF92FF920F931F93CF93A2\r\n\ +:1037F000DF93CDB7DEB728970FB6F894DEBF0FBEC4\r\n\ +:10380000CDBF8C0185E0F801DE01119601900D928B\r\n\ +:103810008A95E1F7F80140813181F2802581229576\r\n\ +:103820002F7083819481892B31F03F3F31F481E007\r\n\ +:103830004F3F19F403C081E001C080E080FDC8C2A1\r\n\ +:1038400049833A8389819A812F830E942A249E8307\r\n\ +:1038500088870E9429240E94FC224E81E42FE29551\r\n\ +:10386000EF70F0E0E755FF4F2F8168850C942E3103\r\n\ +:10387000842F807F142F1F70882311F01295107FE2\r\n\ +:10388000FF2059F0112309F458C2812F68870E9444\r\n\ +:10389000C1240E94F424688550C2862F0E94BB1B5D\r\n\ +:1038A000112309F495C2812F0E94C72428960FB6D0\r\n\ +:1038B000F894DEBF0FBECDBFDF91CF911F910F9166\r\n\ +:1038C000FF90EF90DF90CF900C94F424342F307F52\r\n\ +:1038D000842F8F70303211F08295807F662319F02B\r\n\ +:1038E000613009F12AC0FF20A1F0222381F12130AB\r\n\ +:1038F00071F528960FB6F894DEBF0FBECDBFDF91ED\r\n\ +:10390000CF911F910F91FF90EF90DF90CF900C948B\r\n\ +:10391000D124222319F0213009F45AC28E830E9447\r\n\ +:10392000DA248E818EC1FF2021F0263008F050C2AB\r\n\ +:103930000EC0253008F04CC284C1FF20C1F0222304\r\n\ +:1039400031F0F801958190FFF8C19F70958328961A\r\n\ +:103950000FB6F894DEBF0FBECDBFDF91CF911F91A0\r\n\ +:103960000F91FF90EF90DF90CF900C94E31B2223F8\r\n\ +:1039700009F467C1F6C1242F26952695237030E0FF\r\n\ +:103980002115310521F021303105C9F021C2FF2078\r\n\ +:1039900021F0862F942F937002C080E090E028964B\r\n\ +:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150\r\n\ +:1039B0000F91FF90EF90DF90CF900C94F319FF20C0\r\n\ +:1039C00021F0862F942F937002C080E090E028961B\r\n\ +:1039D0000FB6F894DEBF0FBECDBFDF91CF911F9120\r\n\ +:1039E0000F91FF90EF90DF90CF900C94091A862FE3\r\n\ +:1039F000FF2019F00E940E2802C00E947628289607\r\n\ +:103A00000FB6F894DEBF0FBECDBFDF91CF911F91EF\r\n\ +:103A10000F91FF90EF90DF90CF900C94FB28842FB4\r\n\ +:103A2000837009F076C0F110D3C1262F2295269518\r\n\ +:103A30002770220F220F862F8F70C82ED12CE12CD9\r\n\ +:103A4000F12C022E04C0CC0CDD1CEE1CFF1C0A94D1\r\n\ +:103A5000D2F764FF10C06FE070E080E090E004C037\r\n\ +:103A6000660F771F881F991F2A95D2F7609570956A\r\n\ +:103A70008095909503C060E070E0CB01242F2695DF\r\n\ +:103A800026952370422F50E042305105D1F043304B\r\n\ +:103A9000510559F16C297D298E299F294130510505\r\n\ +:103AA00041F128960FB6F894DEBF0FBECDBFDF916F\r\n\ +:103AB000CF911F910F91FF90EF90DF90CF900C94DA\r\n\ +:103AC00021236C297D298E299F2928960FB6F894E9\r\n\ +:103AD000DEBF0FBECDBFDF91CF911F910F91FF9041\r\n\ +:103AE000EF90DF90CF900C943B230E942123C701DD\r\n\ +:103AF000B60128960FB6F894DEBF0FBECDBFDF919A\r\n\ +:103B0000CF911F910F91FF90EF90DF90CF900C9489\r\n\ +:103B10000723FF2019F0842F817001C08695882328\r\n\ +:103B200009F456C1262F229526952770220F220FC1\r\n\ +:103B3000862F8F70C82ED12CE12CF12C022E04C0C0\r\n\ +:103B4000CC0CDD1CEE1CFF1C0A94D2F764FF10C0E5\r\n\ +:103B50006FE070E080E090E004C0660F771F881F80\r\n\ +:103B6000991F2A95D2F7609570958095909503C01E\r\n\ +:103B700060E070E0CB01242F269526952370422F1C\r\n\ +:103B800050E042305105D1F04330510559F16C29D4\r\n\ +:103B90007D298E299F294130510541F128960FB684\r\n\ +:103BA000F894DEBF0FBECDBFDF91CF911F910F9173\r\n\ +:103BB000FF90EF90DF90CF900C94F5236C297D2936\r\n\ +:103BC0008E299F2928960FB6F894DEBF0FBECDBF71\r\n\ +:103BD000DF91CF911F910F91FF90EF90DF90CF90E9\r\n\ +:103BE0000C940F240E94F523C701B60128960FB646\r\n\ +:103BF000F894DEBF0FBECDBFDF91CF911F910F9123\r\n\ +:103C0000FF90EF90DF90CF900C94DB23603F49F161\r\n\ +:103C100018F4603E48F48CC0623F09F451C0E0F1F2\r\n\ +:103C2000633F09F461C084C0162F1F70842F8F7109\r\n\ +:103C3000FF2021F00E947423812F89CE0E949523BA\r\n\ +:103C4000812F28960FB6F894DEBF0FBECDBFDF914F\r\n\ +:103C5000CF911F910F91FF90EF90DF90CF900C9438\r\n\ +:103C6000EA1BFF20A9F0253008F0B2C0842F8F7125\r\n\ +:103C700028960FB6F894DEBF0FBECDBFDF91CF916F\r\n\ +:103C80001F910F91FF90EF90DF90CF900C94BA238B\r\n\ +:103C9000263008F09DC0EACFFF20A1F0842F8F715D\r\n\ +:103CA00028960FB6F894DEBF0FBECDBFDF91CF913F\r\n\ +:103CB0001F910F91FF90EF90DF90CF900C947423A1\r\n\ +:103CC000FF2061F3842F8F7128960FB6F894DEBF22\r\n\ +:103CD0000FBECDBFDF91CF911F910F91FF90EF905D\r\n\ +:103CE000DF90CF900C949523FF2091F0842F8F715B\r\n\ +:103CF00028960FB6F894DEBF0FBECDBFDF91CF91EF\r\n\ +:103D00001F910F91FF90EF90DF90CF900C945F2365\r\n\ +:103D100028960FB6F894DEBF0FBECDBFDF91CF91CE\r\n\ +:103D20001F910F91FF90EF90DF90CF900C9455234F\r\n\ +:103D3000FF20A1F0222309F4B1CF862F28960FB6D9\r\n\ +:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1\r\n\ +:103D5000FF90EF90DF90CF900C941C1B222309F46E\r\n\ +:103D6000B1CF862F28960FB6F894DEBF0FBECDBF19\r\n\ +:103D7000DF91CF911F910F91FF90EF90DF90CF9047\r\n\ +:103D80000C94BB1B4F70C8010E94FB2528960FB6F0\r\n\ +:103D9000F894DEBF0FBECDBFDF91CF911F910F9181\r\n\ +:103DA000FF90EF90DF90CF900C947E224F70C8016F\r\n\ +:103DB00028960FB6F894DEBF0FBECDBFDF91CF912E\r\n\ +:103DC0001F910F91FF90EF90DF90CF900C94FE2504\r\n\ +:103DD00028960FB6F894DEBF0FBECDBFDF91CF910E\r\n\ +:103DE0001F910F91FF90EF90DF90CF9008950E9468\r\n\ +:103DF000CE240E94A0240E94F4240E94292A0E941A\r\n\ +:103E0000FB2880E090E00E94F31980E090E00C94A1\r\n\ +:103E1000091A0E94BE240C94F71E0E942A24292FFE\r\n\ +:103E200022952F7030E02C3031054CF42A303105CA\r\n\ +:103E30006CF4225031092230310570F407C02C3067\r\n\ +:103E4000310531F02F30310519F006C081E00895B9\r\n\ +:103E500093FB882780F9089580E00895CF93DF933E\r\n\ +:103E600000D000D01F92CDB7DEB70F900F900F900B\r\n\ +:103E70000F900F90DF91CF910895CF93DF9300D0F3\r\n\ +:103E800000D000D0CDB7DEB726960FB6F894DEBFCF\r\n\ +:103E90000FBECDBFDF91CF9108951F93CF93DF93D6\r\n\ +:103EA000C091EF0216E08091F002C81799F0D0E0BF\r\n\ +:103EB0001C9FF0011D9FF00D1124EF50FD4F40811C\r\n\ +:103EC000518162817381848195810E943D1F219679\r\n\ +:103ED000C770E9CFDF91CF911F91089540912103E1\r\n\ +:103EE0005091220360912303709124038091250354\r\n\ +:103EF000909126030C943D1FCF93809126038295C9\r\n\ +:103F00008F7009F05FC080912303882309F45AC0A1\r\n\ +:103F10002091EF02A091F0026091210370912203A1\r\n\ +:103F2000809124039091250331E06F3F09F030E048\r\n\ +:103F3000B32FC6E02A1709F445C0009721F07F3F50\r\n\ +:103F400021F44B2F03C041E001C040E030E040FDD0\r\n\ +:103F500035C0C29FF001C39FF00D1124EF50FD4FFB\r\n\ +:103F6000418174132BC04081641328C042814111E8\r\n\ +:103F700025C0438154814817590710F44150510915\r\n\ +:103F8000481B590B4C325140C8F4809126038F7066\r\n\ +:103F900080618093260386E0829FF001839FF00D6D\r\n\ +:103FA0001124EA50FD4F80818F708061808381E20F\r\n\ +:103FB00093E00E94F11BCF910C944D1F2F5F3F4F58\r\n\ +:103FC0002770B8CFCF910895CF92DF92EF92FF92F2\r\n\ +:103FD0000F931F93CF93DF93CDB7DEB762970FB6E2\r\n\ +:103FE000F894DEBF0FBECDBF8C0185E0F801DE0185\r\n\ +:103FF0001D9601900D928A95E1F7D8014C9111968A\r\n\ +:104000005C91119712966C9112971396ED90FC901B\r\n\ +:10401000149770912103E0912203209124033091A1\r\n\ +:1040200025032115310531F0EF3F31F481E07F3F69\r\n\ +:1040300019F403C081E001C080E0B82FB170CB2E2D\r\n\ +:1040400080FD6DC1D0902303DD2009F4F6C0F0910E\r\n\ +:104050002603E216F30638F0C701821B930B8C325D\r\n\ +:10406000914048F09CC0209530952E0D3F1D2C327C\r\n\ +:10407000314008F094C08F2F807F09F053C0E513C2\r\n\ +:1040800015C0741313C0D62E611110C0FF70F061FB\r\n\ +:10409000F09326030E946E1F81E293E00E94F11BC1\r\n\ +:1040A00080912603D80115968C936BC1EF2831F0CF\r\n\ +:1040B0005F3F31F481E04F3F19F403C081E001C05C\r\n\ +:1040C00080E080FD03C081E0862701C080E0B82F3A\r\n\ +:1040D000B170FB2E80FF1CC08091EF022091F00296\r\n\ +:1040E00036E0821709F428C190E0389FF001399F2B\r\n\ +:1040F000F00D1124EF50FD4F7181571306C07081F0\r\n\ +:10410000471303C07281671303C001968770E9CF1C\r\n\ +:10411000D62E662309F435C18091260381608093F1\r\n\ +:10412000260353C0E51308C0741306C0611104C010\r\n\ +:10413000D8011596FC93AEC04D875E878D859E8510\r\n\ +:104140006A8B0E940D1F6A89882329F1D62E662367\r\n\ +:1041500011F120912603822F82958F7090E00297B3\r\n\ +:104160000CF460C0809121039091220398878F8383\r\n\ +:104170001986FB86EA862C87CE01079651C0E51783\r\n\ +:1041800031F14D875E878D859E856A8B0E940D1F5C\r\n\ +:104190006A8981112EC0C8010E94F11BA4C08F2F13\r\n\ +:1041A000807F69F77E2DF98AE88A89890E942E1F0F\r\n\ +:1041B00081E293E00E94F11BE1E2F3E086E0DF019F\r\n\ +:1041C0001D928A95E9F70E946E1FD12CDAC07413F4\r\n\ +:1041D000D8CF6111D6CFD8011596FC93C8010E94A3\r\n\ +:1041E000F11BE1E2F3E086E0DF011D928A95E9F739\r\n\ +:1041F000C8C0D62E662379F220912603822F82959D\r\n\ +:104200008F7090E0029774F08091210390912203C7\r\n\ +:104210009A8389831B82FD82EC822E83CE010196D4\r\n\ +:104220000E94F11B86E0F801A1E2B3E001900D923B\r\n\ +:104230008A95E1F70E947C1F6FC0E216F30640F0FA\r\n\ +:10424000C701821B930B9C012C32314048F057C0B0\r\n\ +:10425000209530952E0D3F1D2C32314008F04FC077\r\n\ +:10426000D62E662309F497CFE51329C0741327C00F\r\n\ +:104270008091260380FD1AC0982F92959F70B1F00F\r\n\ +:10428000F80185839F3031F09F5F9295907F8F700A\r\n\ +:10429000892B8583C8010E94F11B86E0F801A1E209\r\n\ +:1042A000B3E001900D928A95E1F736C086E0F801FF\r\n\ +:1042B000A1E2B3E001900D928A95E1F762C04D87CB\r\n\ +:1042C0005E878D859E850E940D1F882379F086E08C\r\n\ +:1042D000F801A1E2B3E001900D928A95E1F70E9406\r\n\ +:1042E0007C1F0E946E1FDD24D3944BC08091260357\r\n\ +:1042F000816080932603C8010E94F11B42C07E2D7D\r\n\ +:10430000F98AE88A89890E942E1FE1E2F3E086E0BB\r\n\ +:10431000DF011D928A95E9F70E946E1F32C0662365\r\n\ +:1043200009F439CF4D875E878D859E850E940D1FCC\r\n\ +:10433000882309F430CFCBCF4D875E878D859E854E\r\n\ +:104340000E942A24292F22952F7030E02230310537\r\n\ +:104350002CF49F7041F0811106C00CC0243031054F\r\n\ +:104360002CF49F7049F4805E883020F0C8010E94D0\r\n\ +:10437000F11BCF2CDC2C05C0F8019581907F99F7BB\r\n\ +:10438000F9CF8D2D62960FB6F894DEBF0FBECDBF6C\r\n\ +:10439000DF91CF911F910F91FF90EF90DF90CF9021\r\n\ +:1043A00008951F93CF93DF93CDB7DEB72C970FB649\r\n\ +:1043B000F894DEBF0FBECDBF4F83588769877A87D9\r\n\ +:1043C0008B879C87CE0107960E94E41F8823C1F04B\r\n\ +:1043D0002F8138858A859B85892B31F03F3F11F0ED\r\n\ +:1043E00080E003C02F3FE1F781E0811147C04F819A\r\n\ +:1043F000588569857A858B859C850E943D1F3EC0C6\r\n\ +:1044000086E0FE013796DE01119601900D928A95A5\r\n\ +:10441000E1F7FF81E8854A855B854115510531F05B\r\n\ +:10442000EF3F31F481E0FF3F19F403C081E001C0A8\r\n\ +:1044300080E080FD23C02091F00230E0C9010196A8\r\n\ +:10444000877099276091EF0270E086179707F1F166\r\n\ +:10445000F983EA835D834C8396E0929FD001939F1A\r\n\ +:10446000B00D1124AF50BD4FFE01319601900D9259\r\n\ +:104470009A95E1F78093F0020E944D1F16E080911B\r\n\ +:10448000EF029091F002891779F1189FC001112471\r\n\ +:104490008F509D4F0E94E41F882331F1E091EF027D\r\n\ +:1044A0001E9FF0011124EF50FD4F40815181628128\r\n\ +:1044B0007381848195810E943D1F8091EF0290E07D\r\n\ +:1044C0000196877099278093EF02D9CF0E94091F28\r\n\ +:1044D0001092F0021092EF02E1E2F3E086E0DF01D9\r\n\ +:1044E0001D928A95E9F7CACF2C960FB6F894DEBFD5\r\n\ +:1044F0000FBECDBFDF91CF911F910895EF92FF9234\r\n\ +:104500000F931F93CF93DF93FC01009709F46DC0C5\r\n\ +:10451000F12CEE24E394EF0121968491843740F44A\r\n\ +:10452000843008F053C0813081F0823021F15DC0C9\r\n\ +:10453000853709F445C0B0F19CE7980F903708F033\r\n\ +:1045400054C08F770E94BB1B43C08F010E5F1F4F6B\r\n\ +:10455000FE01849190E2980F983050F48770FE2D00\r\n\ +:1045600001C0FF0F8A95EAF78F2F0E94C12415C062\r\n\ +:104570000E941C1B12C08F010E5F1F4FFE01849111\r\n\ +:1045800090E2980F983058F48770FE2D01C0FF0F0D\r\n\ +:104590008A95EAF78F2F0E94C724E80119C00E946C\r\n\ +:1045A000BB1BFBCFCF010296FE01C491CC2361F06F\r\n\ +:1045B000EFE9FFE03197F1F700C00000C150F6CFFE\r\n\ +:1045C000CF010296FE01F490EC0102C00E941C1B78\r\n\ +:1045D0008F2D882341F0EFE9FFE03197F1F700C01C\r\n\ +:1045E00000008150F6CFFE0196CFDF91CF911F9151\r\n\ +:1045F0000F91FF90EF900895089560932B037093AF\r\n\ +:104600002C0380932D0390932E030C94F71E0F938D\r\n\ +:104610001F9300912B0310912C0320912D033091B7\r\n\ +:104620002E03062B172B282B392B00932B031093CB\r\n\ +:104630002C0320932D0330932E031F910F910C9484\r\n\ +:10464000F71E0F931F9300912B0310912C032091C1\r\n\ +:104650002D0330912E03062317232823392300939B\r\n\ +:104660002B0310932C0320932D0330932E031F91C3\r\n\ +:104670000F910C94F71E0F931F9300912B03109131\r\n\ +:104680002C0320912D0330912E030627172728276E\r\n\ +:10469000392700932B0310932C0320932D03309381\r\n\ +:1046A0002E031F910F910C94F71E10922703109266\r\n\ +:1046B00028031092290310922A030C94F71E41E05C\r\n\ +:1046C00050E060E070E004C0440F551F661F771F84\r\n\ +:1046D0008A95D2F7409327035093280360932903C8\r\n\ +:1046E00070932A030C94F71E41E050E060E070E004\r\n\ +:1046F00004C0440F551F661F771F8A95D2F780911B\r\n\ +:10470000270390912803A0912903B0912A03842BB9\r\n\ +:10471000952BA62BB72B8093270390932803A09368\r\n\ +:104720002903B0932A030C94F71E41E050E060E0A7\r\n\ +:1047300070E004C0440F551F661F771F8A95D2F79B\r\n\ +:10474000409550956095709580912703909128032E\r\n\ +:10475000A0912903B0912A0384239523A623B7238C\r\n\ +:104760008093270390932803A0932903B0932A03EF\r\n\ +:104770000C94F71E41E050E060E070E004C0440F8C\r\n\ +:10478000551F661F771F8A95D2F780912703909156\r\n\ +:104790002803A0912903B0912A0384279527A627EF\r\n\ +:1047A000B7278093270390932803A0932903B093FE\r\n\ +:1047B0002A030C94F71E0F931F9300912703109167\r\n\ +:1047C00028032091290330912A03062B172B282B2D\r\n\ +:1047D000392B009327031093280320932903309348\r\n\ +:1047E0002A031F910F910C94F71E0F931F930091B2\r\n\ +:1047F0002703109128032091290330912A030623CF\r\n\ +:104800001723282339230093270310932803209389\r\n\ +:10481000290330932A031F910F910C94F71E0F93D5\r\n\ +:104820001F930091270310912803209129033091B1\r\n\ +:104830002A030627172728273927009327031093D1\r\n\ +:1048400028032093290330932A031F910F910C947E\r\n\ +:10485000F71E0895CF92DF92EF92FF920F931F936E\r\n\ +:10486000CF93DF93EC01C0902B03D0902C03E0900A\r\n\ +:104870002D03F0902E038091270390912803A0919F\r\n\ +:104880002903B0912A03C82AD92AEA2AFB2A0FE170\r\n\ +:1048900010E0B701A601002E04C0769567955795E4\r\n\ +:1048A00047950A94D2F740FF07C0BE01802F0E94AF\r\n\ +:1048B0004D258130910539F40150110950F7BE01A1\r\n\ +:1048C00080E00E944D25DF91CF911F910F91FF90C5\r\n\ +:1048D000EF90DF90CF9008954091210150912201F7\r\n\ +:1048E00020E030E09FEFFA01E20FF31F62816817CA\r\n\ +:1048F00099F09F3F19F4611101C0922F2F5F3F4F34\r\n\ +:104900002630310581F79F3F39F0FA01E90FF11D9B\r\n\ +:1049100097FDFA9582830895089540912101509161\r\n\ +:10492000220120E030E0FA01E20FF31F9281981398\r\n\ +:1049300001C012822F5F3F4F26303105A1F7089545\r\n\ +:1049400081E090E0E0912101F0912201E80FF91F50\r\n\ +:104950001082019688309105A9F7089580913B0354\r\n\ +:10496000089590913B03982B90933B030895809575\r\n\ +:1049700090913B03982390933B03089510923B033F\r\n\ +:10498000089590913A03982B90933A030895809557\r\n\ +:1049900090913A03982390933A03089510923A0322\r\n\ +:1049A0000895809331030E94D8269093300380931A\r\n\ +:1049B0002F030895109231031092300310922F03A9\r\n\ +:1049C0000895409121015091220120E030E080E0E3\r\n\ +:1049D000FA01E20FF31F918191118F5F2F5F3F4F1B\r\n\ +:1049E00027303105A9F70895E0912101F0912201C6\r\n\ +:1049F00080913B038083E0912101F091220180812D\r\n\ +:104A000090913A03892B808380913103882309F4A4\r\n\ +:104A10003EC00E94D82620912F0330913003821788\r\n\ +:104A2000930760F00E94D82620912F033091300325\r\n\ +:104A3000821B930B8C32914070F41BC00E94D826CD\r\n\ +:104A400020912F033091300320953095280F391F86\r\n\ +:104A50002C32314070F080913C0380FF08C080E729\r\n\ +:104A600096E09F938F930E9424090F900F900E94CD\r\n\ +:104A7000DA24E0912101F0912201808190913103AB\r\n\ +:104A8000892B80830E94E12481110E94DA24809185\r\n\ +:104A90002101909122010C94A3190E942D0990E408\r\n\ +:104AA000980F903218F40E943F0908958B3B60F4F0\r\n\ +:104AB000883A10F5853AB8F4843090F4813009F0E2\r\n\ +:104AC00057C021E030E095C0803E08F451C0883ED8\r\n\ +:104AD00038F0803F08F44CC0282F30E0306589C0A2\r\n\ +:104AE000282F30E086C0853A09F445C0863A09F09F\r\n\ +:104AF00045C022E830E47DC0883A09F442C0893AD2\r\n\ +:104B000009F442C08A3A09F442C08B3A09F442C01F\r\n\ +:104B10008C3A09F442C08D3A09F442C0803B09F452\r\n\ +:104B200042C08E3A09F442C08F3A09F442C0813B38\r\n\ +:104B300009F442C0823B09F442C0833B09F442C0FD\r\n\ +:104B4000843B09F442C0853B09F442C0863B09F42A\r\n\ +:104B500042C0873B09F442C0883B09F442C0893B0C\r\n\ +:104B600009F442C08A3B09F042C02AE236E441C05F\r\n\ +:104B700020E030E03EC021E830E43BC023E830E4F0\r\n\ +:104B800038C022EE34E435C029EE34E432C02AEED7\r\n\ +:104B900034E42FC025EB34E42CC026EB34E429C0E8\r\n\ +:104BA00027EB34E426C02CEC34E423C02DEC34E4B1\r\n\ +:104BB00020C023E835E41DC02AE835E41AC022E904\r\n\ +:104BC00035E417C024E935E414C021E236E411C00D\r\n\ +:104BD00023E236E40EC024E236E40BC025E236E4DC\r\n\ +:104BE00008C026E236E405C027E236E402C020E031\r\n\ +:104BF00034E4C901089580E090E008950895909309\r\n\ +:104C00003F0380933E030895CF92DF92EF92FF928D\r\n\ +:104C10000F931F936C01EE24FF24C114D104E1040F\r\n\ +:104C2000F10421F46B017C0180E001C080E13327B5\r\n\ +:104C30002F2D1E2D0D2D011511052105310519F002\r\n\ +:104C4000885F6801790197018601A4E03695279570\r\n\ +:104C500017950795AA95D1F701151105210531057D\r\n\ +:104C600019F08C5F6801790197018601F2E03695B1\r\n\ +:104C7000279517950795FA95D1F701151105210587\r\n\ +:104C8000310519F08E5F68017901B701A6017695AB\r\n\ +:104C9000679557954795452B462B472B09F08F5F16\r\n\ +:104CA0001F910F91FF90EF90DF90CF900895829524\r\n\ +:104CB000982F9C7C96959695837344E0849F9001F1\r\n\ +:104CC0001124922B892F8A7A86959575990F892BB5\r\n\ +:104CD000089580915503843009F110923D0320E43A\r\n\ +:104CE00088E190E00FB6F894A895809360000FBE1D\r\n\ +:104CF0002093600083B7817F846083BF83B7816026\r\n\ +:104D000083BF7894889583B78E7F83BF88E10FB681\r\n\ +:104D1000F89480936000109260000FBE0895CF93C6\r\n\ +:104D20000E94890A0E9480090E948B0AC0E08C2F91\r\n\ +:104D30000E94550A811105C0CF5FC830C1F780E0DD\r\n\ +:104D400001C081E0CF9108950C94091F1F920F922A\r\n\ +:104D50000FB60F9211248F939F93AF93BF938091BF\r\n\ +:104D60003D03811113C08091400390914103A091B4\r\n\ +:104D70004203B09143034196A11DB11D80934003AE\r\n\ +:104D800090934103A0934203B0934303BF91AF912B\r\n\ +:104D90009F918F910F900FBE0F901F90189582E0FA\r\n\ +:104DA00084BD93E095BD9AEF97BD80936E00089502\r\n\ +:104DB0002FB7F8948091400390914103A091420352\r\n\ +:104DC000B09143032FBF08952FB7F894609140032B\r\n\ +:104DD0007091410380914203909143032FBF089546\r\n\ +:104DE000CF92DF92EF92FF920F931F932FB7F89419\r\n\ +:104DF00040914003509141036091420370914303FD\r\n\ +:104E00002FBF6A017B01EE24FF248C0120E030E0FB\r\n\ +:104E1000C016D106E206F30610F441505109481BB2\r\n\ +:104E2000590BCA011F910F91FF90EF90DF90CF9027\r\n\ +:104E30000895CF92DF92EF92FF920F931F934FB797\r\n\ +:104E4000F894009140031091410320914203309166\r\n\ +:104E500043034FBF68017901C61AD70AE80AF90A65\r\n\ +:104E6000061717072807390718F0C701B60106C04B\r\n\ +:104E7000C701B60161507109810991091F910F9114\r\n\ +:104E8000FF90EF90DF90CF9008951F920F920FB692\r\n\ +:104E90000F9211248F939F93AF93BF938091400300\r\n\ +:104EA00090914103A0914203B09143030196A11D4B\r\n\ +:104EB000B11D8093400390934103A0934203B093AC\r\n\ +:104EC0004303BF91AF919F918F910F900FBE0F90B1\r\n\ +:104ED0001F9018950E94DA16F8942FEF87EA91E652\r\n\ +:104EE000215080409040E1F700C0000087E090EB47\r\n\ +:104EF000DC0180935E0390935F03A0936003B09303\r\n\ +:104F000061032CE088E190E00FB6F894A8958093B7\r\n\ +:104F100060000FBE20936000FFCF8091460380FFAA\r\n\ +:104F20000BC06091260185E0689FB0011124759542\r\n\ +:104F30006795759567952AC081FF09C06091260124\r\n\ +:104F400085E0689FB0011124759567951FC082FFA9\r\n\ +:104F500007C06091260185E0689FB001112416C04A\r\n\ +:104F6000409147034423C9F060912501461788F713\r\n\ +:104F70002091260185E0289F90011124429FC001C5\r\n\ +:104F8000439F900D112470E00E94F8306038710545\r\n\ +:104F900040F46115710539F002C065E070E0862FBC\r\n\ +:104FA00008958FE7089581E008958091460380FF7A\r\n\ +:104FB00008C06091240170E07595679575956795B7\r\n\ +:104FC00021C081FF06C06091240170E0759567954E\r\n\ +:104FD00019C082FF04C06091240170E010C080916C\r\n\ +:104FE00047038823C1F0609123018617A0F79091B1\r\n\ +:104FF0002401989FC001112470E00E94F8306038AD\r\n\ +:10500000710528F46115710521F0862F08958FE749\r\n\ +:10501000089581E0089561E070E0F4CF803F21F4CD\r\n\ +:105020000E948D27819504C0813F29F40E948D271D\r\n\ +:1050300080934A030895823F21F40E948D27819531\r\n\ +:1050400004C0833F29F40E948D278093490308956B\r\n\ +:10505000893F19F40E94D52705C08A3F31F40E9488\r\n\ +:10506000D527819580934B0308958B3F21F40E94AF\r\n\ +:10507000D527819504C08C3F29F40E94D5278093C1\r\n\ +:105080004C030895843F21F480914803816017C048\r\n\ +:10509000853F21F480914803826011C0863F21F44E\r\n\ +:1050A0008091480384600BC0873F21F480914803BE\r\n\ +:1050B000886005C0883F31F4809148038061809307\r\n\ +:1050C000480308958D3F21F48091460381600BC011\r\n\ +:1050D0008E3F21F480914603826005C08F3F29F402\r\n\ +:1050E000809146038460809346030895803F39F49D\r\n\ +:1050F00080914A0387FF6CC010924A0369C0813FC8\r\n\ +:1051000029F480914A031816BCF362C090914903B8\r\n\ +:10511000823F29F497FF5CC01092490359C0833F36\r\n\ +:1051200019F41916CCF354C0893F41F480914B0314\r\n\ +:1051300018160CF04DC010924B034AC08A3F29F458\r\n\ +:1051400080914B0387FF44C0F6CF8B3F39F48091A9\r\n\ +:105150004C0387FF3DC010924C033AC08C3F29F4AA\r\n\ +:1051600080914C031816BCF333C0843F21F4809126\r\n\ +:1051700048038E7F17C0853F21F4809148038D7FBF\r\n\ +:1051800011C0863F21F4809148038B7F0BC0873F7D\r\n\ +:1051900021F480914803877F05C0883F31F48091D6\r\n\ +:1051A00048038F7E8093480313C08D3F21F4809184\r\n\ +:1051B00046038E7F0BC08E3F21F4809146038D7F86\r\n\ +:1051C00005C08F3F29F4809146038B7F809346036F\r\n\ +:1051D0008091490381110EC080914A0381110AC058\r\n\ +:1051E00080914B03811106C080914C03811102C054\r\n\ +:1051F00010924703089580913C0383FF7EC089EAA3\r\n\ +:1052000096E00E948B08809148031F928F9384EA56\r\n\ +:1052100096E09F938F930E94240982EA96E00E9471\r\n\ +:105220008B0820914903822F992787FD90959F93A2\r\n\ +:105230002F938FE996E09F938F930E9424098DE925\r\n\ +:1052400096E00E948B0820914A03822F992787FDC0\r\n\ +:1052500090959F932F938AE996E09F938F930E9456\r\n\ +:10526000240988E996E00E948B0820914B03822F45\r\n\ +:10527000992787FD90959F932F9385E996E09F93BB\r\n\ +:105280008F930E94240983E996E00E948B08209165\r\n\ +:105290004C03822F992787FD90959F932F9380E948\r\n\ +:1052A00096E09F938F930E9424098DE896E00E94D8\r\n\ +:1052B0008B08809147031F928F938AE896E09F9313\r\n\ +:1052C0008F930E94240988E896E00E948B088091C1\r\n\ +:1052D00046031F928F9385E896E09F938F930E94D9\r\n\ +:1052E000240982E896E00E948B088DB79EB74C9601\r\n\ +:1052F0000FB6F8949EBF0FBE8DBF88E493E00E9466\r\n\ +:10530000E8190E94D826909345038093440308959A\r\n\ +:105310001F93CF93DF9380914403909145030E94A4\r\n\ +:10532000F02640914703442321F02091270130E0EB\r\n\ +:1053300006C0209128015AE0259F90011124821770\r\n\ +:10534000930708F482C08091490310914A03D091D9\r\n\ +:105350004B03C0914C03811107C0111105C0D1113D\r\n\ +:1053600003C0CC2309F471C04F3F19F04F5F409345\r\n\ +:105370004703181624F40E948D27809349038091D7\r\n\ +:10538000490387FF05C00E948D27819580934903BB\r\n\ +:10539000111624F40E948D2780934A0380914A03BA\r\n\ +:1053A00087FF05C00E948D27819580934A036091F5\r\n\ +:1053B0004903662339F110914A03112319F1772724\r\n\ +:1053C00067FD7095872F972F0E94F52F23E333E316\r\n\ +:1053D00043E35FE30E9459300E94C22F6093490368\r\n\ +:1053E000612F772767FD7095872F972F0E94F52FE4\r\n\ +:1053F00023E333E343E35FE30E9459300E94C22F6B\r\n\ +:1054000060934A031D1624F40E94D52780934B0312\r\n\ +:1054100080914B0387FF05C00E94D527819580931B\r\n\ +:105420004B031C1624F40E94D52780934C038091D3\r\n\ +:105430004C0387FF05C00E94D527819580934C03BC\r\n\ +:10544000DF91CF911F910C94FB28DF91CF911F9199\r\n\ +:105450000895E8E4F3E085E0DF011D928A95E9F71D\r\n\ +:105460001092470310924603089588E79BE00E943C\r\n\ +:105470008B088BE69BE00E948B088EE59BE00C94EA\r\n\ +:105480008B088BED9AE00E948B088EEC9AE00E94CC\r\n\ +:105490008B0883EB9AE00E948B0888E99AE00E94CF\r\n\ +:1054A0008B0880E89AE00E948B0886E69AE00E94CA\r\n\ +:1054B0008B0888E49AE00E948B0888E29AE00E94B8\r\n\ +:1054C0008B0883E19AE00E948B088CEF99E00E94A0\r\n\ +:1054D0008B088FED99E00E948B0880EC99E00E9488\r\n\ +:1054E0008B0880EA99E00E948B088EE799E00E9481\r\n\ +:1054F0008B0889E499E00E948B0884E399E00E947C\r\n\ +:105500008B081F9285E08F9381E399E09F938F939F\r\n\ +:105510000E94240988E299E00E948B081F9281E092\r\n\ +:105520008F9385E299E09F938F930E94240983E2F1\r\n\ +:1055300099E00E948B088DB79EB708960FB6F89435\r\n\ +:105540009EBF0FBE8DBF86EF98E00C948B08833012\r\n\ +:1055500009F459C028F4813061F0823079F108955E\r\n\ +:10556000853009F49AC008F473C0863009F4BAC0D3\r\n\ +:10557000089520912801862F90E0820F911D8F3F82\r\n\ +:10558000910520F4620F6093280103C08FEF809390\r\n\ +:10559000280182ED97E00E948B08809128011F92DC\r\n\ +:1055A0008F938FEC97E09F938F930E9424090F9025\r\n\ +:1055B0000F900F900F908DEC97E0B8C020912701CD\r\n\ +:1055C000862F90E0820F911D8F3F910520F4620F8E\r\n\ +:1055D0006093270103C08FEF809327018EEB97E044\r\n\ +:1055E0000E948B08809127011F928F938BEB97E08D\r\n\ +:1055F0009F938F930E9424090F900F900F900F900C\r\n\ +:1056000089EB97E093C020912601862F90E0820FCE\r\n\ +:10561000911D8F3F910520F4620F6093260103C016\r\n\ +:105620008FEF8093260189EA97E00E948B08809192\r\n\ +:1056300026011F928F9386EA97E09F938F930E9493\r\n\ +:1056400024090F900F900F900F9084EA97E06EC09E\r\n\ +:1056500020912501862F90E0820F911D8F3F9105AB\r\n\ +:1056600020F4620F6093250103C08FEF8093250122\r\n\ +:1056700082E997E00E948B08809125011F928F9309\r\n\ +:105680008FE897E09F938F930E9424090F900F90CB\r\n\ +:105690000F900F908DE897E049C020912401862F4C\r\n\ +:1056A00090E0820F911D8F3F910520F4620F60936F\r\n\ +:1056B000240103C08FEF8093240187E797E00E94C5\r\n\ +:1056C0008B08809124011F928F9384E797E09F932A\r\n\ +:1056D0008F930E9424090F900F900F900F9082E7F4\r\n\ +:1056E00097E024C020912301862F90E0820F911D26\r\n\ +:1056F0008F3F910520F4620F6093230103C08FEF69\r\n\ +:10570000809323018AE597E00E948B088091230112\r\n\ +:105710001F928F9387E597E09F938F930E942409B0\r\n\ +:105720000F900F900F900F9085E597E00C948B08E9\r\n\ +:10573000833009F44DC028F4813061F0823049F1A2\r\n\ +:105740000895853009F482C008F461C0863009F4F8\r\n\ +:105750009CC0089580912801681720F4861B8093CF\r\n\ +:10576000280102C01092280189E497E00E948B086A\r\n\ +:10577000809128011F928F9386E497E09F938F93E7\r\n\ +:105780000E9424090F900F900F900F9084E497E0EF\r\n\ +:105790009AC080912701681720F4861B8093270107\r\n\ +:1057A00002C01092270185E397E00E948B08809148\r\n\ +:1057B00027011F928F9382E397E09F938F930E941C\r\n\ +:1057C00024090F900F900F900F9080E397E07BC01B\r\n\ +:1057D00080912601681720F4861B8093260102C061\r\n\ +:1057E0001092260180E297E00E948B0880912601AA\r\n\ +:1057F0001F928F938DE197E09F938F930E942409CE\r\n\ +:105800000F900F900F900F908BE197E05CC080910C\r\n\ +:105810002501681720F4861B8093250102C0109291\r\n\ +:10582000250189E097E00E948B08809125011F9255\r\n\ +:105830008F9386E097E09F938F930E9424090F90A7\r\n\ +:105840000F900F900F9084E097E03DC0809124016D\r\n\ +:10585000681720F4861B8093240102C01092240153\r\n\ +:105860008EEE96E00E948B08809124011F928F9308\r\n\ +:105870008BEE96E09F938F930E9424090F900F90D8\r\n\ +:105880000F900F9089EE96E01EC08091230168175B\r\n\ +:1058900020F4861B8093230102C01092230181ED26\r\n\ +:1058A00096E00E948B08809123011F928F938EECCB\r\n\ +:1058B00096E09F938F930E9424090F900F900F9072\r\n\ +:1058C0000F908CEC96E00C948B08CF93C82F87E454\r\n\ +:1058D0009BE00E948B0860912B0370912C038091B8\r\n\ +:1058E0002D0390912E030E9404261F928F9324E48F\r\n\ +:1058F0003BE03F932F930E9424098FE39BE00E949B\r\n\ +:105900008B081F92CF932CE33BE03F932F930E9491\r\n\ +:1059100024098AE39BE00E948B0861E070E080E04C\r\n\ +:1059200090E004C0660F771F881F991FCA95D2F7B1\r\n\ +:105930000E94FD228DB79EB708960FB6F8949EBFC1\r\n\ +:105940000FBE8DBFCF910C94091FCF93873208F003\r\n\ +:1059500062C08E3108F098C1803109F42EC110F573\r\n\ +:10596000873009F4E8C0B8F4863009F093C180911B\r\n\ +:105970003C03817F8E7F80933C030E94352A8AED11\r\n\ +:105980009FE00E948B0886ED9FE00E948B0881E0DB\r\n\ +:1059900080934D0310C18B3009F486C08E3009F41A\r\n\ +:1059A000F6C078C1873109F439C170F5863109F044\r\n\ +:1059B00071C188EA9DE00E948B080E9497191F928E\r\n\ +:1059C0008F938EE89DE09F938F930E94240980918E\r\n\ +:1059D00020011F928F9387E79DE09F938F930E94F2\r\n\ +:1059E00024098091D5021F928F9384E69DE09F93B6\r\n\ +:1059F0008F930E9424098DB79EB70C960FB6F8942A\r\n\ +:105A00009EBF0FBE8DBFD7C0893109F4F0C08B3166\r\n\ +:105A100009F4AAC03FC1893359F170F4893209F4FD\r\n\ +:105A200031C120F4873209F42DC134C1853309F422\r\n\ +:105A300029C18833C9F12EC1863409F408C108F49C\r\n\ +:105A400025C1883409F026C10E94091F8DEB9FE013\r\n\ +:105A50000E948B082FEF83ED90E32150804090400F\r\n\ +:105A6000E1F700C000000E946A278DEA9FE0A1C014\r\n\ +:105A70000E949219892B79F00E94921990934F03FA\r\n\ +:105A800080934E030E94091F80E090E00E948D19D0\r\n\ +:105A90008AEF9FE08EC080914E0390914F030E9449\r\n\ +:105AA0008D198FEE9FE085C086E49DE00E948B08F3\r\n\ +:105AB0008FE29DE00E948B0887E19DE00E948B08A9\r\n\ +:105AC0008FEF9CE00E948B0885EE9CE00E948B0883\r\n\ +:105AD0008EEC9CE00E948B088EEA9CE00E948B0872\r\n\ +:105AE00088E99CE00E948B0887E89CE00E948B0874\r\n\ +:105AF0008FE69CE00E948B0885E59CE00E948B0865\r\n\ +:105B00008CE39CE00E948B0883E29CE00E948B085F\r\n\ +:105B10008AE09CE00E948B0881EF9BE00E948B084A\r\n\ +:105B200080ED9BE00E948B088EEA9BE00E948B0830\r\n\ +:105B300084E99BE03EC080913C03C82FC17080FF88\r\n\ +:105B400009C08AE99FE00E948B0880913C03817F15\r\n\ +:105B50008E7F47C088E89FE00E948B0880913C03BD\r\n\ +:105B6000816080933C0327C080913C0381FBCC275C\r\n\ +:105B7000C0F991E0C927C0FB81F980933C03CC2395\r\n\ +:105B800019F08FE69FE028C085E59FE012C0809164\r\n\ +:105B90003C0382FBCC27C0F991E0C927C0FB82F906\r\n\ +:105BA00080933C03CC2319F08AE39FE015C08EE17B\r\n\ +:105BB0009FE00E948B08C1E072C080913C0383FB90\r\n\ +:105BC000CC27C0F991E0C927C0FB83F980933C033F\r\n\ +:105BD000CC2351F086E09FE00E948B0880913C032B\r\n\ +:105BE000816080933C035BC08DEE9EE0E2CF86ED4A\r\n\ +:105BF0009EE00E948B0889EA9EE00E948B0882E763\r\n\ +:105C00009EE00E948B0885E49EE00E948B0880E065\r\n\ +:105C10009EE00E948B0882ED9DE0CBCF80914003F7\r\n\ +:105C200090914103A0914203B0914303BF93AF937E\r\n\ +:105C30009F938F938EEB9DE09F938F930E942409F7\r\n\ +:105C40000F900F900F900F900F900F90B4CF81E8AE\r\n\ +:105C500090E00E94F3199FEF21EE84E091502040E4\r\n\ +:105C60008040E1F700C0000080E090E00E94F3195E\r\n\ +:105C70009FEF29E688E1915020408040E1F700C085\r\n\ +:105C8000000099CF80E003C08D5101C089530E946C\r\n\ +:105C9000652C91CF82E69DE00E948B08C0E08C2F9E\r\n\ +:105CA000CF910895CF93C82F80914D03813071F02B\r\n\ +:105CB00020F0823009F44EC05DC1A0912101B09165\r\n\ +:105CC00022018C91823209F057C107C0A0912101B5\r\n\ +:105CD000B09122018C91823249F48C2F0E94B90D2F\r\n\ +:105CE000811135C08C2F0E94A52C32C08C2F0E94B0\r\n\ +:105CF000E60F81112CC0C431F1F090F4CB30A1F04B\r\n\ +:105D0000C03101F50E94412A89E09BE00E948B0886\r\n\ +:105D100085E09BE00E948B0882E080934D0317C0D2\r\n\ +:105D2000C93249F0C83371F40E94352A86E39BE0FA\r\n\ +:105D30000E948B080CC082E29BE00E948B081092AC\r\n\ +:105D40004D031CC183E09BE00E948B0817C181E0DA\r\n\ +:105D5000817016C1C83228F5CE3108F0C0C0CB30F2\r\n\ +:105D6000A1F1D0F4C73009F0E8C08EE1809328019A\r\n\ +:105D700082E3809327018AE08093260184E1809367\r\n\ +:105D8000250188E08093240188E2809323018BEA37\r\n\ +:105D900098E00E948B08D6C0C33141F1C431C1F0F4\r\n\ +:105DA000CCC0CB3409F4BEC028F4C93289F0C83362\r\n\ +:105DB00061F0C3C0C13509F4B3C0C23509F4AEC047\r\n\ +:105DC000CE3409F0BAC06AE0B3C00E94412ABAC01A\r\n\ +:105DD000109250038EED98E00E948B088AED98E0B7\r\n\ +:105DE0000E948B0881E080934D03CAC08EE798E043\r\n\ +:105DF0000E948B0889E698E00E948B088091280118\r\n\ +:105E00001F928F9386E698E09F938F930E942409B8\r\n\ +:105E100084E698E00E948B088FE498E00E948B084B\r\n\ +:105E2000809127011F928F938CE498E09F938F932A\r\n\ +:105E30000E9424098AE498E00E948B0888E398E095\r\n\ +:105E40000E948B08809126011F928F9385E398E032\r\n\ +:105E50009F938F930E94240983E398E00E948B080C\r\n\ +:105E60008FE198E00E948B08809125011F928F930B\r\n\ +:105E70008CE198E09F938F930E9424098AE198E037\r\n\ +:105E80000E948B0882E098E00E948B088091240198\r\n\ +:105E90001F928F938FEF97E09F938F930E94240917\r\n\ +:105EA0008DEF97E00E948B0883EE97E00E948B08AD\r\n\ +:105EB000809123011F928F9380EE97E09F938F93A1\r\n\ +:105EC0000E9424098EED97E00E948B088DB79EB743\r\n\ +:105ED00048960FB6F8949EBF0FBE8DBF33C0CE510B\r\n\ +:105EE000EC2FF0E0E35CFE4F80818093500385EC63\r\n\ +:105EF00098E00E948B08809150031F928F9382EC50\r\n\ +:105F000098E09F938F930E94240980EC98E00E9470\r\n\ +:105F10008B080F900F900F900F9014C061E003C09A\r\n\ +:105F200061E006C06AE0809150030E94A72A0AC07F\r\n\ +:105F3000809150030E94982B05C089EA98E00E9446\r\n\ +:105F40008B0816C087EA98E00E948B088091500366\r\n\ +:105F50001F928F9384EA98E09F938F930E94240965\r\n\ +:105F600081EA98E00E948B080F900F900F900F909D\r\n\ +:105F700081E006C010924D0380E002C080E0E8CED0\r\n\ +:105F8000CF91089504D06894B1118DC0089570D058\r\n\ +:105F900088F09F5790F0B92F9927B751A0F0D1F012\r\n\ +:105FA000660F771F881F991F1AF0BA95C9F712C09C\r\n\ +:105FB000B13081F077D0B1E0089574C0672F782FA9\r\n\ +:105FC0008827B85F39F0B93FCCF386957795679508\r\n\ +:105FD000B395D9F73EF490958095709561957F4F74\r\n\ +:105FE0008F4F9F4F0895E89409C097FB3EF490951A\r\n\ +:105FF0008095709561957F4F8F4F9F4F9923A9F0A2\r\n\ +:10600000F92F96E9BB279395F69587957795679530\r\n\ +:10601000B795F111F8CFFAF4BB0F11F460FF1BC074\r\n\ +:106020006F5F7F4F8F4F9F4F16C0882311F096E907\r\n\ +:1060300011C0772321F09EE8872F762F05C06623B5\r\n\ +:1060400071F096E8862F70E060E02AF09A95660F6E\r\n\ +:10605000771F881FDAF7880F9695879597F9089527\r\n\ +:1060600057FD9058440F551F59F05F3F71F0479509\r\n\ +:10607000880F97FB991F61F09F3F79F087950895EE\r\n\ +:10608000121613061406551FF2CF4695F1DF08C00D\r\n\ +:10609000161617061806991FF1CF8695710561052A\r\n\ +:1060A00008940895E894BB2766277727CB0197F9D2\r\n\ +:1060B00008950BD078C069D028F06ED018F09523E1\r\n\ +:1060C00009F05AC05FC01124EECFCADFA0F3959F3C\r\n\ +:1060D000D1F3950F50E0551F629FF001729FBB27CF\r\n\ +:1060E000F00DB11D639FAA27F00DB11DAA1F649F7B\r\n\ +:1060F0006627B00DA11D661F829F2227B00DA11D2E\r\n\ +:10610000621F739FB00DA11D621F839FA00D611DB3\r\n\ +:10611000221F749F3327A00D611D231F849F600DD4\r\n\ +:10612000211D822F762F6A2F11249F5750408AF00D\r\n\ +:10613000E1F088234AF0EE0FFF1FBB1F661F771F99\r\n\ +:10614000881F91505040A9F79E3F510570F014C030\r\n\ +:10615000AACF5F3FECF3983EDCF386957795679581\r\n\ +:10616000B795F795E7959F5FC1F7FE2B880F911DB7\r\n\ +:106170009695879597F9089597F99F6780E870E05D\r\n\ +:1061800060E008959FEF80EC089500240A941616AD\r\n\ +:10619000170618060906089500240A941216130615\r\n\ +:1061A000140605060895092E0394000C11F48823A3\r\n\ +:1061B00052F0BB0F40F4BF2B11F460FF04C06F5FBF\r\n\ +:1061C0007F4F8F4F9F4F0895AA1BBB1B51E107C004\r\n\ +:1061D000AA1FBB1FA617B70710F0A61BB70B881F77\r\n\ +:1061E000991F5A95A9F780959095BC01CD01089506\r\n\ +:1061F00097FB072E16F4009407D077FD09D00E9474\r\n\ +:10620000E43007FC05D03EF4909581959F4F0895AA\r\n\ +:10621000709561957F4F0895A1E21A2EAA1BBB1BB2\r\n\ +:10622000FD010DC0AA1FBB1FEE1FFF1FA217B30762\r\n\ +:10623000E407F50720F0A21BB30BE40BF50B661F78\r\n\ +:10624000771F881F991F1A9469F76095709580953C\r\n\ +:1062500090959B01AC01BD01CF010895EE0FFF1F8A\r\n\ +:0C6260000590F491E02D0994F894FFCF14\r\n\ +:10626C00150B180B190B1A0B1B0B110B8B0B710B42\r\n\ +:10627C00140B1C0B0A01AF1290136D133913061378\r\n\ +:10628C000132032808140A321E3F4D3620FD05B09A\r\n\ +:10629C00057A055A05E604FF0418053105010203C9\r\n\ +:1062AC0004050607080900524E2D3432004C5546A1\r\n\ +:1062BC0041004F4646004F4E00434F4E4E00506F2C\r\n\ +:1062CC00776572656400556E6174746163686564AA\r\n\ +:1062DC000044656661756C74004164647265737327\r\n\ +:1062EC00656400436F6E66696775726564003F0094\r\n\ +:0A62FC0053757370656E64656400ED\r\n\ +"; +} diff --git a/editor/hhkb_bt/index.html b/editor/hhkb_bt/index.html new file mode 100644 index 00000000..128e3c84 --- /dev/null +++ b/editor/hhkb_bt/index.html @@ -0,0 +1,717 @@ + + + TMK Keymap Editor + + + + + + + + + + + +

TMK Keymap Editor

+ +

Instruction

+How to edit keymap +
    +
  1. Select layer
  2. +
  3. Select key to edit
  4. +
  5. Select keycode to assign to the key
  6. +
  7. Download firmware
  8. +
+See this for detailed description of keymap. + +

Keyboard

+
+
+
+ + + + + + + + +
+
+ + + +
+
+
Esc
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
0
+
-
+
=
+
\
+
`
+
+ +
+
Tab
+
Q
+
W
+
E
+
R
+
T
+
Y
+
U
+
I
+
O
+
P
+
[
+
]
+
BSpc
+
+ +
+
Ctrl
+
A
+
S
+
D
+
F
+
G
+
H
+
J
+
K
+
L
+
;
+
'
+
Enter
+
+ +
+
Shift
+
Z
+
X
+
C
+
V
+
B
+
N
+
M
+
,
+
.
+
/
+
Shift
+
Fn
+
+ +
+
+
LGui
+
RAlt
+
Space
+
RAlt
+
RGui
+
+
+
+
+ +
+
+ + +

Keycodes

+
+ + + +
+ + +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + +
+
+ + +
+ + +
+
+ + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + +
+
+ Keypad:
+ + + + + + + + + + +
+ + + + + + + + + + +
+
+ Japanese:
+ + + + + +
+
+ Korean:
+ + +
+
+ + Mechanical Locking key support:
+ + + + + + + + + +
+ + +
+ + +
+
+ + System:
+ + + +
+ + Volume:
+ + + +
+ + Media:
+ + + + + + +
+ + Application:
+ + + +
+ Web:
+ + + + + + + +
+
+ + + + Mouse key:
+ + + + +
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ + +
+ + +
+
+ + + + Layer Switch Momentary:
+ + + + + + + +
+ Layer Switch Toggle:
+ + + +
+ Layer Switch with Tap Toggle:
+ + + +
+ Layer switch with Tap key:
+ + + + + + + +
+
+ Modifier with special function:
+ + + + +
+ + + +
+ + + +
+ + +
+

+ See this for detail of Layer Switching.
+ See this for Tap key(Dual-role Modifier).
+ See this for OneShot Modifier.

+
+
+
+ +

Firmware Hex File Download:

+ + + +

Share URL:

+ +
+ + + +

Keymap Output(for debug):

+ +
+ + + + + + + + diff --git a/editor/hhkb_bt/keyboard.css b/editor/hhkb_bt/keyboard.css new file mode 100644 index 00000000..886218f8 --- /dev/null +++ b/editor/hhkb_bt/keyboard.css @@ -0,0 +1,101 @@ +html * { + font-family:helvetica, arial, sans-serif; +} + +.key { + box-shadow:inset -3px -3px 5px 5px #ebebeb; + background-color:#ffffff; + -moz-border-radius:6px; + -webkit-border-radius:6px; + border-radius:6px; + border:2px solid #dcdcdc; + display:block; + float: left; + color:#777777; + font-family:helvetica, arial, sans-serif; + font-size:16px; + font-weight:bold; + text-decoration:none; + padding:4px 16px 16px 4px; + width: 24px; + height: 24px; + overflow: hidden; + margin: 0px 1px 1px 0px; +} +.key:hover { + background-color:#ebebeb; +} +.key:active { +} +.key:focus { +} +.key-editing { + //background-color:#bfbfbf; + border:2px solid #7f7f7f; + position:relative; + //top:2px; +} +/* This imageless css button was generated by CSSButtonGenerator.com */ + +/* Key size and pixel + * key: 1.00 1.25 1.50 1.75 2.00 + * size: 50 62.5 75 87.5 100 + * width: 24 36.5 49 61.5 74 + * + * margin:1 + border:2 + padding:4 + width:24 + padding:16 + border:2 + margin:1 = 50px + * width:24 + 26px = 50px + */ +.btn100 { width:24px; } +.btn125 { width:36.5px; } +.btn150 { width:47.5px; } +.btn175 { width:60px; } +.btn200 { width:74px; } +.btn225 { width:83px; } +.btn250 { width:99px; } +.btn275 { width:111.5px; } +.btn600 { width:259px; } +.btn625 { width:270px; } +.btn700 { width:324px; } + +.spc100 { width:24px; visibility:hidden; } +.spc125 { width:36.5px; visibility:hidden; } +.spc150 { width:47.5px; visibility:hidden; } +.spc175 { width:60px; visibility:hidden; } +.spc200 { width 74px; visibility:hidden; } + +.keyboard-row { + width: auto; + display: inline-block; +} + +.keyboard-outline { +} + +.keyboard-pane { + width: 750px; + font-size: 14px; + font-weight:bold; +} + + + +.action { + font-size:16px; + font-weight:bold; + min-width: 30px; +} + +.keycode_tabs { + max-width: 750px; + overflow: auto; + font-size:14px; + font-weight:bold; +} + + + +/* http://www.w3schools.com/cssref/css3_pr_resize.asp */ +.resizable { + resize: both; + overflow: auto; +} diff --git a/editor/hhkb_bt/keymap_editor.js b/editor/hhkb_bt/keymap_editor.js new file mode 100644 index 00000000..c774a1e4 --- /dev/null +++ b/editor/hhkb_bt/keymap_editor.js @@ -0,0 +1,527 @@ +/* + * TMK keymap editor + */ + +/* + * Share URL + */ +function encode_keymap(keymap) +{ + return window.btoa(JSON.stringify(keymap)); +} + +function decode_keymap(hash) +{ + try { + return JSON.parse(window.atob(hash)); + } catch (err) { + return null; + } +} + +/* + * Hex file + */ +function hexstr2(b) +{ + return ('0'+ b.toString(16)).substr(-2).toUpperCase(); +} + +function hex_line(address, record_type, data) +{ + var sum = 0; + sum += data.length; + sum += (address >> 8); + sum += (address & 0xff); + sum += record_type; + + var line = ''; + line += ':'; + line += hexstr2(data.length); + line += hexstr2(address >> 8); + line += hexstr2(address & 0xff); + line += hexstr2(record_type); + for (var i = 0; i < data.length; i++) { + sum = (sum + data[i]); + line += hexstr2(data[i]); + } + line += hexstr2((~sum + 1)&0xff); // Checksum + line +="\r\n"; + return line; +} + +function hex_eof() +{ + return ":00000001FF\r\n"; +} + +/* +function flatten(array) +{ +}; +*/ + +function hex_output(address, data) { + var output = ''; + var line = []; + + // TODO: refine: flatten data into one dimension array + [].concat.apply([], [].concat.apply([], data)).forEach(function(e) { + line.push(e); + if (line.length == 16) { + output += hex_line(address, 0x00, line); + address += 16; + line.length = 0; // clear array + } + }); + if (line.length > 0) { + output += hex_line(address, 0x00, line); + } + return output; +} + + + +/* + * Source file + */ +function source_output(keymaps) { + var output = ''; + // fn actions + output += "/*\n"; + output += " * Keymap for " + KEYBOARD_ID + "\n";; + output += " * generated by tmk keymap editor\n"; + output += " */\n"; + output += "#include \n"; + output += "#include \n"; + output += "#include \n"; + output += "#include \"keycode.h\"\n"; + output += "#include \"action.h\"\n"; + output += "#include \"action_macro.h\"\n"; + output += "#include \"keymap.h\"\n\n"; + + output += "#ifdef KEYMAP_SECTION\n"; + output += "const uint16_t fn_actions[] __attribute__ ((section (\".keymap.fn_actions\"))) = {\n"; + output += "#else\n"; + output += "static const uint16_t fn_actions[] PROGMEM = {\n"; + output += "#endif\n"; + output += " [0] = ACTION_LAYER_MOMENTARY(1),\n"; + output += " [1] = ACTION_LAYER_MOMENTARY(2),\n"; + output += " [2] = ACTION_LAYER_MOMENTARY(3),\n"; + output += " [3] = ACTION_LAYER_MOMENTARY(4),\n"; + output += " [4] = ACTION_LAYER_MOMENTARY(5),\n"; + output += " [5] = ACTION_LAYER_MOMENTARY(6),\n"; + output += " [6] = ACTION_LAYER_MOMENTARY(7),\n"; + output += " [7] = ACTION_LAYER_TOGGLE(1),\n"; + output += " [8] = ACTION_LAYER_TOGGLE(2),\n"; + output += " [9] = ACTION_LAYER_TOGGLE(3),\n"; + output += " [10] = ACTION_LAYER_TAP_TOGGLE(1),\n"; + output += " [11] = ACTION_LAYER_TAP_TOGGLE(2),\n"; + output += " [12] = ACTION_LAYER_TAP_TOGGLE(3),\n"; + output += " [13] = ACTION_LAYER_TAP_KEY(1, KC_A),\n"; + output += " [14] = ACTION_LAYER_TAP_KEY(2, KC_F),\n"; + output += " [15] = ACTION_LAYER_TAP_KEY(3, KC_J),\n"; + output += " [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE),\n"; + output += " [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON),\n"; + output += " [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE),\n"; + output += " [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH),\n"; + output += " [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE),\n"; + output += " [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE),\n"; + output += " [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE),\n"; + output += " [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER),\n"; + output += " [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC),\n"; + output += " [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE),\n"; + output += " [26] = ACTION_MODS_ONESHOT(MOD_LCTL),\n"; + output += " [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC),\n"; + output += " [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE),\n"; + output += " [29] = ACTION_MODS_ONESHOT(MOD_LSFT),\n"; + output += " [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ESC),\n"; + output += " [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSPACE),\n"; + output += "};\n\n"; + + // keymaps + output += "#ifdef KEYMAP_SECTION\n"; + output += "const uint8_t keymaps[]["; + output += keymaps[0].length; // row + output += "]["; + output += keymaps[0][0].length; // col + output += "] __attribute__ ((section (\".keymap.keymaps\"))) = {\n"; + output += "#else\n"; + output += "static const uint8_t keymaps[]["; + output += keymaps[0].length; // row + output += "]["; + output += keymaps[0][0].length; // col + output += "] PROGMEM = {\n"; + output += "#endif\n"; + for (var i in keymaps) { + output += " {\n"; + for (var j in keymaps[i]) { + output += " { "; + for (var k in keymaps[i][j]) { + output += '0x' + ('0' + keymaps[i][j][k].toString(16)).substr(-2); + output += ','; + } + output += " },\n"; + } + output += " },\n"; + } + output += "};\n\n"; + output += "/* translates key to keycode */\n"; + output += "uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)\n"; + output += "{\n"; + output += " return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);\n"; + output += "}\n"; + output += "\n"; + output += "/* translates Fn index to action */\n"; + output += "action_t keymap_fn_to_action(uint8_t keycode)\n"; + output += "{\n"; + output += " action_t action;\n"; + output += " if (FN_INDEX(keycode) < sizeof(fn_actions) / sizeof(fn_actions[0])) {\n"; + output += " action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);\n"; + output += " } else {\n"; + output += " action.code = ACTION_NO;\n"; + output += " }\n"; + output += " return action;\n"; + output += "}\n"; + return output; +}; + + + +/* + * keycodes + */ +var code_display = [ + // {id, name(text), description(tooltip)} + {id: 'NO ', name: 'NO', desc: 'No action'}, + {id: 'TRNS', name: 'TRNS', desc: 'Transparent'}, + {id: 'POST_FAIL', name: 'POST_FAIL', desc: 'POST_FAIL'}, + {id: 'UNDEFINED', name: 'UNDEFINED', desc: 'UNDEFINED'}, + {id: 'A', name: 'A', desc: 'A'}, + {id: 'B', name: 'B', desc: 'B'}, + {id: 'C', name: 'C', desc: 'C'}, + {id: 'D', name: 'D', desc: 'D'}, + {id: 'E', name: 'E', desc: 'E'}, + {id: 'F', name: 'F', desc: 'F'}, + {id: 'G', name: 'G', desc: 'G'}, + {id: 'H', name: 'H', desc: 'H'}, + {id: 'I', name: 'I', desc: 'I'}, + {id: 'J', name: 'J', desc: 'J'}, + {id: 'K', name: 'K', desc: 'K'}, + {id: 'L', name: 'L', desc: 'L'}, + {id: 'M', name: 'M', desc: 'M'}, + {id: 'N', name: 'N', desc: 'N'}, + {id: 'O', name: 'O', desc: 'O'}, + {id: 'P', name: 'P', desc: 'P'}, + {id: 'Q', name: 'Q', desc: 'Q'}, + {id: 'R', name: 'R', desc: 'R'}, + {id: 'S', name: 'S', desc: 'S'}, + {id: 'T', name: 'T', desc: 'T'}, + {id: 'U', name: 'U', desc: 'U'}, + {id: 'V', name: 'V', desc: 'V'}, + {id: 'W', name: 'W', desc: 'W'}, + {id: 'X', name: 'X', desc: 'X'}, + {id: 'Y', name: 'Y', desc: 'Y'}, + {id: 'Z', name: 'Z', desc: 'Z'}, + {id: '1', name: '1', desc: '1'}, + {id: '2', name: '2', desc: '2'}, + {id: '3', name: '3', desc: '3'}, + {id: '4', name: '4', desc: '4'}, + {id: '5', name: '5', desc: '5'}, + {id: '6', name: '6', desc: '6'}, + {id: '7', name: '7', desc: '7'}, + {id: '8', name: '8', desc: '8'}, + {id: '9', name: '9', desc: '9'}, + {id: '0', name: '0', desc: '0'}, + {id: 'ENT', name: 'Enter', desc: 'ENTER'}, + {id: 'ESC', name: 'Esc', desc: 'Escape'}, + {id: 'BSPC', name: 'Back space', desc: 'Backspace'}, + {id: 'TAB', name: 'Tab', desc: 'Tab'}, + {id: 'SPC', name: 'Space', desc: 'Space'}, + {id: 'MINS', name: '-', desc: 'MINUS'}, + {id: 'EQL', name: '=', desc: 'EQUAL'}, + {id: 'LBRC', name: '[', desc: 'Left Bracket'}, + {id: 'RBRC', name: ']', desc: 'Right Bracket'}, + {id: 'BSLS', name: "\\", desc: 'Backslash'}, + {id: 'NUHS', name: 'ISO #', desc: 'Non-US Hash'}, + {id: 'SCLN', name: ';', desc: 'Semicolon'}, + {id: 'QUOT', name: "'", desc: 'Quote'}, + {id: 'GRV ', name: '`', desc: 'Grave'}, + {id: 'COMM', name: ',', desc: 'Comma'}, + {id: 'DOT ', name: '.', desc: 'Dot'}, + {id: 'SLSH', name: '/', desc: 'Slash'}, + {id: 'CAPS', name: 'Caps Lock', desc: 'Need this? Sure? :)'}, + {id: 'F1 ', name: 'F1', desc: 'F1'}, + {id: 'F2 ', name: 'F2', desc: 'F2'}, + {id: 'F3 ', name: 'F3', desc: 'F3'}, + {id: 'F4 ', name: 'F4', desc: 'F4'}, + {id: 'F5 ', name: 'F5', desc: 'F5'}, + {id: 'F6 ', name: 'F6', desc: 'F6'}, + {id: 'F7 ', name: 'F7', desc: 'F7'}, + {id: 'F8 ', name: 'F8', desc: 'F8'}, + {id: 'F9 ', name: 'F9', desc: 'F9'}, + {id: 'F10 ', name: 'F10', desc: 'F10'}, + {id: 'F11 ', name: 'F11', desc: 'F11'}, + {id: 'F12 ', name: 'F12', desc: 'F12'}, + {id: 'PSCR', name: 'Print Screen', desc: 'Print Screen'}, + {id: 'SLCK', name: 'Scroll Lock', desc: 'Scroll Lock'}, + {id: 'PAUS', name: 'Pause', desc: 'Pause'}, + {id: 'INS ', name: 'Insert', desc: 'Insert'}, + {id: 'HOME', name: 'Home', desc: 'Home'}, + {id: 'PGUP', name: 'Page Up', desc: 'Page Up'}, + {id: 'DEL ', name: 'Delete', desc: 'Delete'}, + {id: 'END ', name: 'End', desc: 'End'}, + {id: 'PGDN', name: 'Page Down', desc: 'Page Down'}, + {id: 'RGHT', name: '\u2192', desc: 'Right'}, + {id: 'LEFT', name: '\u2190', desc: 'Left'}, + {id: 'DOWN', name: '\u2193', desc: 'Down'}, + {id: 'UP ', name: '\u2191', desc: 'Up'}, + {id: 'NLCK', name: 'Num Lock', desc: 'Num Lock'}, + {id: 'PSLS', name: 'P/', desc: 'Keypad Slash'}, + {id: 'PAST', name: 'P*', desc: 'Keypad Asterisk'}, + {id: 'PMNS', name: 'P-', desc: 'Keypad Minus'}, + {id: 'PPLS', name: 'P+', desc: 'Keypad Plus'}, + {id: 'PENT', name: 'P\u21A9', desc: 'Keypad Enter'}, + {id: 'P1 ', name: 'P1', desc: 'Keypad 1'}, + {id: 'P2 ', name: 'P2', desc: 'Keypad 2'}, + {id: 'P3 ', name: 'P3', desc: 'Keypad 3'}, + {id: 'P4 ', name: 'P4', desc: 'Keypad 4'}, + {id: 'P5 ', name: 'P5', desc: 'Keypad 5'}, + {id: 'P6 ', name: 'P6', desc: 'Keypad 6'}, + {id: 'P7 ', name: 'P7', desc: 'Keypad 7'}, + {id: 'P8 ', name: 'P8', desc: 'Keypad 8'}, + {id: 'P9 ', name: 'P9', desc: 'Keypad 9'}, + {id: 'P0 ', name: 'P0', desc: 'Keypad 0'}, + {id: 'PDOT', name: 'P.', desc: 'Keypad Dot'}, + {id: 'NUBS', name: 'ISO \\', desc: 'Non-US Backslash'}, + {id: 'APP ', name: 'Application', desc: 'Application'}, + {id: 'POWER', name: '_Power', desc: 'Power(Not work on Windows)'}, + {id: 'PEQL', name: 'P=', desc: 'Keymapd Equal'}, + {id: 'F13 ', name: 'F13', desc: 'F13'}, + {id: 'F14 ', name: 'F14', desc: 'F14'}, + {id: 'F15 ', name: 'F15', desc: 'F15'}, + {id: 'F16 ', name: 'F16', desc: 'F16'}, + {id: 'F17 ', name: 'F17', desc: 'F17'}, + {id: 'F18 ', name: 'F18', desc: 'F18'}, + {id: 'F19 ', name: 'F19', desc: 'F19'}, + {id: 'F20 ', name: 'F20', desc: 'F20'}, + {id: 'F21 ', name: 'F21', desc: 'F21'}, + {id: 'F22 ', name: 'F22', desc: 'F22'}, + {id: 'F23 ', name: 'F23', desc: 'F23'}, + {id: 'F24 ', name: 'F24', desc: 'F24'}, + {id: 'EXECUTE', name: 'EXECUTE', desc: 'EXECUTE'}, + {id: 'HELP', name: 'HELP', desc: 'HELP'}, + {id: 'MENU', name: 'MENU', desc: 'MENU'}, + {id: 'SELECT', name: 'SELECT', desc: 'SELECT'}, + {id: 'STOP', name: 'STOP', desc: 'STOP'}, + {id: 'AGAIN', name: 'AGAIN', desc: 'AGAIN'}, + {id: 'UNDO', name: 'UNDO', desc: 'UNDO'}, + {id: 'CUT', name: 'CUT', desc: 'CUT'}, + {id: 'COPY', name: 'COPY', desc: 'COPY'}, + {id: 'PASTE', name: 'PASTE', desc: 'PASTE'}, + {id: 'FIND', name: 'FIND', desc: 'FIND'}, + {id: '_MUTE', name: '_MUTE', desc: '_MUTE(Not work on Windows)'}, + {id: '_VOLUP', name: '_VOLUP', desc: '_VOLUP(Not work on Windows)'}, + {id: '_VOLDOWN', name: '_VOLDOWN', desc: '_VOLDOWN(Not work on Windows)'}, + {id: 'LCAP', name: 'Locking Caps Lock', desc: 'Locking Caps Lock'}, + {id: 'LNUM', name: 'Locking Num Lock', desc: 'Locking Num Lock'}, + {id: 'LSCR', name: 'Locking Scroll Lock', desc: 'Locking Scroll Lock'}, + {id: 'PCMM', name: 'P,', desc: 'Keypad Comma'}, + {id: 'KP_EQUAL_AS400', name: 'P= (AS400)', desc: 'Keypad Equal (AS400)'}, + {id: 'INT1', name: '\u308D', desc: 'Japanese RO'}, + {id: 'INT2', name: '\u3072\u3089\u304c\u306a', desc: 'Japanese Hiragana'}, + {id: 'INT3', name: '\uffe5', desc: 'Japanese Yen'}, + {id: 'INT4', name: '\u5909\u63db', desc: 'Japanese Henkan'}, + {id: 'INT5', name: '\u7121\u5909\u63db', desc: 'Japanese Muhenkan'}, + {id: 'INT6', name: 'INT6', desc: 'INT6'}, + {id: 'INT7', name: 'INT7', desc: 'INT7'}, + {id: 'INT8', name: 'INT8', desc: 'INT8'}, + {id: 'INT9', name: 'INT9', desc: 'INT9'}, + {id: 'LANG1', name: '\ud55c/\uc601', desc: 'Korean Hangul/English'}, + {id: 'LANG2', name: '\ud55c\uc790', desc: 'Korean Hanja'}, + {id: 'LANG3', name: 'LANG3', desc: 'LANG3'}, + {id: 'LANG4', name: 'LANG4', desc: 'LANG4'}, + {id: 'LANG5', name: 'LANG5', desc: 'LANG5'}, + {id: 'LANG6', name: 'LANG6', desc: 'LANG6'}, + {id: 'LANG7', name: 'LANG7', desc: 'LANG7'}, + {id: 'LANG8', name: 'LANG8', desc: 'LANG8'}, + {id: 'LANG9', name: 'LANG9', desc: 'LANG9'}, + {id: 'ALT_ERASE', name: 'ALT_ERASE', desc: 'ALT_ERASE'}, + {id: 'SYSREQ', name: 'SYSREQ', desc: 'SYSREQ'}, + {id: 'CANCEL', name: 'CANCEL', desc: 'CANCEL'}, + {id: 'CLEAR', name: 'CLEAR', desc: 'CLEAR'}, + {id: 'PRIOR', name: 'PRIOR', desc: 'PRIOR'}, + {id: 'RETURN', name: 'RETURN', desc: 'RETURN'}, + {id: 'SEPARATOR', name: 'SEPARATOR', desc: 'SEPARATOR'}, + {id: 'OUT', name: 'OUT', desc: 'OUT'}, + {id: 'OPER', name: 'OPER', desc: 'OPER'}, + {id: 'CLEAR_AGAIN', name: 'CLEAR_AGAIN', desc: 'CLEAR_AGAIN'}, + {id: 'CRSEL', name: 'CRSEL', desc: 'CRSEL'}, + {id: 'EXSEL', name: 'EXSEL', desc: 'EXSEL'}, + + /* System & Media key 165-191(0xa5-bf) */ + {id: 'PWR ', name: 'Sys Power', desc: 'System Power'}, + {id: 'SLEP', name: 'Sys Sleep', desc: 'System Sleep'}, + {id: 'WAKE', name: 'Sys Wake', desc: 'System Wake'}, + {id: 'MUTE', name: 'Mute', desc: 'Audio Mute'}, + {id: 'VOLU', name: 'Vol Up', desc: 'Audio Vol Up'}, + {id: 'VOLD', name: 'Vol Down', desc: 'Audio Vol Down'}, + {id: 'MNXT', name: 'Next Track', desc: 'Next Track'}, + {id: 'MPRV', name: 'Prev Track', desc: 'Previous Track'}, + {id: 'MSTP', name: 'Stop', desc: 'Media Stop'}, + {id: 'MPLY', name: 'Play Pause', desc: 'Play Pause'}, + {id: 'MSEL', name: 'Select', desc: 'Media Select'}, + {id: 'EJCT', name: 'Eject', desc: 'Media Eject'}, + {id: 'MAIL', name: 'Mail', desc: 'Mail'}, + {id: 'CALC', name: 'Calc', desc: 'Calculator'}, + {id: 'MYCM', name: 'My Computer', desc: 'My Computer'}, + {id: 'WSCH', name: 'Web Search', desc: 'WWW Search'}, + {id: 'WHOM', name: 'Web Home', desc: 'WWW Home'}, + {id: 'WBAK', name: 'Web Back', desc: 'WWW Back'}, + {id: 'WFWD', name: 'Web Forward', desc: 'WWW Forward'}, + {id: 'WSTP', name: 'Web Stop', desc: 'WWW Stop'}, + {id: 'WREF', name: 'Web Refresh', desc: 'WWW Refresh'}, + {id: 'WFAV', name: 'Web Favorites', desc: 'WWW Favorites'}, + {id: 'RESERVED-187', name: 'RESERVED-187', desc: 'RESERVED-187'}, + {id: 'RESERVED-188', name: 'RESERVED-188', desc: 'RESERVED-188'}, + {id: 'RESERVED-189', name: 'RESERVED-189', desc: 'RESERVED-189'}, + {id: 'RESERVED-190', name: 'RESERVED-190', desc: 'RESERVED-190'}, + {id: 'RESERVED-191', name: 'RESERVED-191', desc: 'RESERVED-191'}, + + /* Fn key 192-223(0xc0-df) */ + {id: 'FN0 ', name: 'L1', desc: 'Change to Layer 1(Momentary) '}, + {id: 'FN1 ', name: 'L2', desc: 'Change to Layer 2(Momentary) '}, + {id: 'FN2 ', name: 'L3', desc: 'Change to Layer 3(Momentary) '}, + {id: 'FN3 ', name: 'L4', desc: 'Change to Layer 4(Momentary) '}, + {id: 'FN4 ', name: 'L5', desc: 'Change to Layer 5(Momentary) '}, + {id: 'FN5 ', name: 'L6', desc: 'Change to Layer 6(Momentary) '}, + {id: 'FN6 ', name: 'L7', desc: 'Change to Layer 7(Momentary) '}, + {id: 'FN7 ', name: 'T1', desc: 'Change to Layer 1(Toggle) '}, + {id: 'FN8 ', name: 'T2', desc: 'Change to Layer 2(Toggle) '}, + {id: 'FN9 ', name: 'T3', desc: 'Change to Layer 3(Toggle) '}, + {id: 'FN10', name: 'L1t', desc: 'Change to Layer 1(Momentary with Tap Toggle) '}, + {id: 'FN11', name: 'L2t', desc: 'Change to Layer 2(Momentary with Tap Toggle) '}, + {id: 'FN12', name: 'L3t', desc: 'Change to Layer 3(Momentary with Tap Toggle) '}, + /* Layer swith with Tap key */ + {id: 'FN13', name: 'A (L1)', desc: 'A with with L1(Tap key)'}, + {id: 'FN14', name: 'F (L2)', desc: 'F with with L2(Tap key)'}, + {id: 'FN15', name: 'J (L3)', desc: 'J with with L3(Tap key)'}, + {id: 'FN16', name: 'Space (L4)', desc: 'Space with L4(Tap key)'}, + {id: 'FN17', name: '; (L5)', desc: 'Semicolon with L5(Tap key)'}, + {id: 'FN18', name: '\'( L6)', desc: 'Quote with L6(Tap key)'}, + {id: 'FN19', name: '/ (L7)', desc: 'Slash with with L7(Tap key)'}, + /* Modifier on alpha key(Tap key, Dual-role key) */ + {id: 'FN20', name: 'Space (LShift)', desc: 'Space with Left Sfhit(Tap key)'}, + {id: 'FN21', name: 'Space (LCtrl)', desc: 'Space with Left Control(Tap key)'}, + {id: 'FN22', name: '\' (RCtrl)', desc: 'Quote with Right Control(Tap key)'}, + {id: 'FN23', name: 'Enter (RCtrl)', desc: 'Enter with Right Control(Tap key)'}, + /* Modifier with a key(Tap key, Dual-role key) */ + {id: 'FN24', name: 'LCtrl (Esc)', desc: 'Left Control with Escape'}, + {id: 'FN25', name: 'LCtrl (Backspace)', desc: 'Left Control with Backspace'}, + {id: 'FN26', name: 'LCtrl (OneShot)', desc: 'Left Control(OneShot Modifier)'}, + {id: 'FN27', name: 'LShift (Esc)', desc: 'Left Shift with Escape'}, + {id: 'FN28', name: 'LShift (Backspace)', desc: 'Left Shift with Backspace'}, + {id: 'FN29', name: 'LShift (OneShot)', desc: 'Left Shift(OneShot Modifier)'}, + {id: 'FN30', name: 'RShift (`)', desc: 'Right Shift with Grave(Tap key)'}, + {id: 'FN31', name: 'RShift (\\)', desc: 'Right Shift with Backslash(Tap key)'}, + +/* Standeard codes for 16bit Action 165-223(0xa5-df) + {id: 'RESERVED-165', name: 'RESERVED-165', desc: 'RESERVED-165'}, + {id: 'RESERVED-166', name: 'RESERVED-166', desc: 'RESERVED-166'}, + {id: 'RESERVED-167', name: 'RESERVED-167', desc: 'RESERVED-167'}, + {id: 'RESERVED-168', name: 'RESERVED-168', desc: 'RESERVED-168'}, + {id: 'RESERVED-169', name: 'RESERVED-169', desc: 'RESERVED-169'}, + {id: 'RESERVED-170', name: 'RESERVED-170', desc: 'RESERVED-170'}, + {id: 'RESERVED-171', name: 'RESERVED-171', desc: 'RESERVED-171'}, + {id: 'RESERVED-172', name: 'RESERVED-172', desc: 'RESERVED-172'}, + {id: 'RESERVED-173', name: 'RESERVED-173', desc: 'RESERVED-173'}, + {id: 'RESERVED-174', name: 'RESERVED-174', desc: 'RESERVED-174'}, + {id: 'RESERVED-175', name: 'RESERVED-175', desc: 'RESERVED-175'}, + {id: 'KP_00', name: 'KP_00', desc: 'KP_00'}, + {id: 'KP_000', name: 'KP_000', desc: 'KP_000'}, + {id: 'THOUSANDS_SEPARATOR', name: 'THOUSANDS_SEPARATOR', desc: 'THOUSANDS_SEPARATOR'}, + {id: 'DECIMAL_SEPARATOR', name: 'DECIMAL_SEPARATOR', desc: 'DECIMAL_SEPARATOR'}, + {id: 'CURRENCY_UNIT', name: 'CURRENCY_UNIT', desc: 'CURRENCY_UNIT'}, + {id: 'CURRENCY_SUB_UNIT', name: 'CURRENCY_SUB_UNIT', desc: 'CURRENCY_SUB_UNIT'}, + {id: 'KP_LPAREN', name: 'KP_LPAREN', desc: 'KP_LPAREN'}, + {id: 'KP_RPAREN', name: 'KP_RPAREN', desc: 'KP_RPAREN'}, + {id: 'KP_LCBRACKET', name: 'KP_LCBRACKET', desc: 'KP_LCBRACKET'}, + {id: 'KP_RCBRACKET', name: 'KP_RCBRACKET', desc: 'KP_RCBRACKET'}, + {id: 'KP_TAB', name: 'KP_TAB', desc: 'KP_TAB'}, + {id: 'KP_BSPACE', name: 'KP_BSPACE', desc: 'KP_BSPACE'}, + {id: 'KP_A', name: 'KP_A', desc: 'KP_A'}, + {id: 'KP_B', name: 'KP_B', desc: 'KP_B'}, + {id: 'KP_C', name: 'KP_C', desc: 'KP_C'}, + {id: 'KP_D', name: 'KP_D', desc: 'KP_D'}, + {id: 'KP_E', name: 'KP_E', desc: 'KP_E'}, + {id: 'KP_F', name: 'KP_F', desc: 'KP_F'}, + {id: 'KP_XOR', name: 'KP_XOR', desc: 'KP_XOR'}, + {id: 'KP_HAT', name: 'KP_HAT', desc: 'KP_HAT'}, + {id: 'KP_PERC', name: 'KP_PERC', desc: 'KP_PERC'}, + {id: 'KP_LT', name: 'KP_LT', desc: 'KP_LT'}, + {id: 'KP_GT', name: 'KP_GT', desc: 'KP_GT'}, + {id: 'KP_AND', name: 'KP_AND', desc: 'KP_AND'}, + {id: 'KP_LAZYAND', name: 'KP_LAZYAND', desc: 'KP_LAZYAND'}, + {id: 'KP_OR', name: 'KP_OR', desc: 'KP_OR'}, + {id: 'KP_LAZYOR', name: 'KP_LAZYOR', desc: 'KP_LAZYOR'}, + {id: 'KP_COLON', name: 'KP_COLON', desc: 'KP_COLON'}, + {id: 'KP_HASH', name: 'KP_HASH', desc: 'KP_HASH'}, + {id: 'KP_SPACE', name: 'KP_SPACE', desc: 'KP_SPACE'}, + {id: 'KP_ATMARK', name: 'KP_ATMARK', desc: 'KP_ATMARK'}, + {id: 'KP_EXCLAMATION', name: 'KP_EXCLAMATION', desc: 'KP_EXCLAMATION'}, + {id: 'KP_MEM_STORE', name: 'KP_MEM_STORE', desc: 'KP_MEM_STORE'}, + {id: 'KP_MEM_RECALL', name: 'KP_MEM_RECALL', desc: 'KP_MEM_RECALL'}, + {id: 'KP_MEM_CLEAR', name: 'KP_MEM_CLEAR', desc: 'KP_MEM_CLEAR'}, + {id: 'KP_MEM_ADD', name: 'KP_MEM_ADD', desc: 'KP_MEM_ADD'}, + {id: 'KP_MEM_SUB', name: 'KP_MEM_SUB', desc: 'KP_MEM_SUB'}, + {id: 'KP_MEM_MUL', name: 'KP_MEM_MUL', desc: 'KP_MEM_MUL'}, + {id: 'KP_MEM_DIV', name: 'KP_MEM_DIV', desc: 'KP_MEM_DIV'}, + {id: 'KP_PLUS_MINUS', name: 'KP_PLUS_MINUS', desc: 'KP_PLUS_MINUS'}, + {id: 'KP_CLEAR', name: 'KP_CLEAR', desc: 'KP_CLEAR'}, + {id: 'KP_CLEAR_ENTRY', name: 'KP_CLEAR_ENTRY', desc: 'KP_CLEAR_ENTRY'}, + {id: 'KP_BINARY', name: 'KP_BINARY', desc: 'KP_BINARY'}, + {id: 'KP_OCTAL', name: 'KP_OCTAL', desc: 'KP_OCTAL'}, + {id: 'KP_DECIMAL', name: 'KP_DECIMAL', desc: 'KP_DECIMAL'}, + {id: 'KP_HEXADECIMAL', name: 'KP_HEXADECIMAL', desc: 'KP_HEXADECIMAL'}, + {id: 'RESERVED-222', name: 'RESERVED-222', desc: 'RESERVED-222'}, + {id: 'RESERVED-223', name: 'RESERVED-223', desc: 'RESERVED-223'}, +*/ + + /* Modifier 224-231(0xe0-e7) */ + {id: 'LCTL', name: 'LCtrl', desc: 'Left Control'}, + {id: 'LSFT', name: 'LShift', desc: 'Left Shift'}, + {id: 'LALT', name: 'LAlt', desc: 'Left Alt(\u2325)'}, + {id: 'LGUI', name: 'LGui', desc: 'Left Windows(\u2318)'}, + {id: 'RCTL', name: 'RCtrl', desc: 'Right Control'}, + {id: 'RSFT', name: 'RShift', desc: 'Right Shift'}, + {id: 'RALT', name: 'RAlt', desc: 'Right Alt(\u2325)'}, + {id: 'RGUI', name: 'RGui', desc: 'Right Windows(\u2318)'}, + + /* Not used 232-239(0xe8-ef) */ + {id: 'RESERVED-232', name: 'RESERVED-232', desc: 'RESERVED-232'}, + {id: 'RESERVED-233', name: 'RESERVED-233', desc: 'RESERVED-233'}, + {id: 'RESERVED-234', name: 'RESERVED-234', desc: 'RESERVED-234'}, + {id: 'RESERVED-235', name: 'RESERVED-235', desc: 'RESERVED-235'}, + {id: 'RESERVED-236', name: 'RESERVED-236', desc: 'RESERVED-236'}, + {id: 'RESERVED-237', name: 'RESERVED-237', desc: 'RESERVED-237'}, + {id: 'RESERVED-238', name: 'RESERVED-238', desc: 'RESERVED-238'}, + {id: 'RESERVED-239', name: 'RESERVED-239', desc: 'RESERVED-239'}, + + /* Mousekey 240-255(0xf0-ff) */ + {id: 'MS_U', name: 'Mouse Up', desc: 'Mouse UP'}, + {id: 'MS_D', name: 'Mouse down', desc: 'Mouse Down'}, + {id: 'MS_L', name: 'Mouse left', desc: 'Mouse Left'}, + {id: 'MS_R', name: 'Mouse right', desc: 'Mouse Right'}, + {id: 'BTN1', name: 'Mouse Btn1', desc: 'Mouse Button1'}, + {id: 'BTN2', name: 'Mouse Btn2', desc: 'Mouse Button2'}, + {id: 'BTN3', name: 'Mouse Btn3', desc: 'Mouse Button3'}, + {id: 'BTN4', name: 'Mouse Btn4', desc: 'Mouse Button4'}, + {id: 'BTN5', name: 'Mouse Btn5', desc: 'Mouse Button5'}, + {id: 'WH_U', name: 'Wheel Up', desc: 'Wheel Up'}, + {id: 'WH_D', name: 'Wheel Down', desc: 'Wheel Down'}, + {id: 'WH_L', name: 'Wheel Left', desc: 'Wheel Left'}, + {id: 'WH_R', name: 'Wheel Right', desc: 'Wheel Right'}, + {id: 'ACL0', name: 'Mouse Slow', desc: 'Mouse Slow'}, + {id: 'ACL1', name: 'Mouse Medium', desc: 'Mouse Medium'}, + {id: 'ACL2', name: 'Mouse Fast', desc: 'Mouse Fast'}, +]; diff --git a/editor/index.html b/editor/index.html index 491acd6a..cf7ea2b3 100644 --- a/editor/index.html +++ b/editor/index.html @@ -7,9 +7,10 @@

TMK Keymap Editor

Online Keymap Editor Demo

Instrucion