From fef48a3da52acdbaac096bc9446a2f9f88e01f09 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 2 Sep 2016 13:45:47 +0900 Subject: [PATCH] usb_usb: Add unimap --- converter/usb_usb/Makefile | 44 +- ...Makefile.keymap_editor => Makefile.editor} | 3 +- converter/usb_usb/Makefile.unimap | 4 + converter/usb_usb/README | 29 +- converter/usb_usb/binary/usb_usb_unimap.hex | 1615 +++++++++++++++++ converter/usb_usb/unimap.c | 45 + converter/usb_usb/unimap_trans.h | 99 + 7 files changed, 1815 insertions(+), 24 deletions(-) rename converter/usb_usb/{Makefile.keymap_editor => Makefile.editor} (73%) create mode 100644 converter/usb_usb/Makefile.unimap create mode 100644 converter/usb_usb/binary/usb_usb_unimap.hex create mode 100644 converter/usb_usb/unimap.c create mode 100644 converter/usb_usb/unimap_trans.h diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index a4ac27b2..1f09f87a 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -39,15 +39,15 @@ #---------------------------------------------------------------------------- # Target file name (without extension). -TARGET = usb_usb +TARGET ?= usb_usb -TMK_DIR = ../../tmk_core +TMK_DIR ?= ../../tmk_core # Directory keyboard dependent files exist -TARGET_DIR = . +TARGET_DIR ?= . # MCU name -MCU = atmega32u4 +MCU ?= atmega32u4 # Processor frequency. @@ -61,7 +61,7 @@ MCU = atmega32u4 # does not *change* the processor frequency - it should merely be updated to # reflect the processor speed set externally so that the code can use accurate # software delays. -F_CPU = 16000000 +F_CPU ?= 16000000 @@ -69,7 +69,7 @@ F_CPU = 16000000 # LUFA specific # # Target architecture (see library "Board Types" documentation). -ARCH = AVR8 +ARCH ?= AVR8 # Input clock frequency. # This will define a symbol, F_USB, in all source code files equal to the # input clock frequency (before any prescaling is performed) in Hz. This value may @@ -81,7 +81,7 @@ ARCH = AVR8 # # If no clock division is performed on the input clock inside the AVR (via the # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) +F_USB ?= $(F_CPU) # Interrupt driven control endpoint task OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT @@ -90,11 +90,11 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Build Options # comment out to disable the options. # -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Media control and System control -CONSOLE_ENABLE = yes # Console for debug -#COMMAND_ENABLE = yes # Commands for debug and configuration -#NKRO_ENABLE = yes # USB Nkey Rollover +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Media control and System control +CONSOLE_ENABLE ?= yes # Console for debug +#COMMAND_ENABLE ?= yes # Commands for debug and configuration +#NKRO_ENABLE ?= yes # USB Nkey Rollover # Boot Section Size in bytes # Teensy halfKay 512 @@ -108,16 +108,28 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 #OPT_DEFS += -DNO_ACTION_LAYER #OPT_DEFS += -DNO_ACTION_MACRO -SRC = usb_usb.cpp \ +SRC ?= usb_usb.cpp \ main.cpp +# +# Keymap file +# +ifeq (yes,$(strip $(UNIMAP_ENABLE))) + KEYMAP_FILE = unimap +else + ifeq (yes,$(strip $(ACTIONMAP_ENABLE))) + KEYMAP_FILE = actionmap + else + KEYMAP_FILE = keymap + endif +endif ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC) else - SRC := keymap.c $(SRC) + SRC := $(KEYMAP_FILE).c $(SRC) endif -CONFIG_H = config.h +CONFIG_H ?= config.h diff --git a/converter/usb_usb/Makefile.keymap_editor b/converter/usb_usb/Makefile.editor similarity index 73% rename from converter/usb_usb/Makefile.keymap_editor rename to converter/usb_usb/Makefile.editor index 08293d5d..90feac97 100644 --- a/converter/usb_usb/Makefile.keymap_editor +++ b/converter/usb_usb/Makefile.editor @@ -1,5 +1,4 @@ -# build firmware for keymap editor -# +TARGET = usb_usb_editor KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor KEYMAP = editor include Makefile diff --git a/converter/usb_usb/Makefile.unimap b/converter/usb_usb/Makefile.unimap new file mode 100644 index 00000000..1d60e253 --- /dev/null +++ b/converter/usb_usb/Makefile.unimap @@ -0,0 +1,4 @@ +TARGET = usb_usb_unimap +UNIMAP_ENABLE = yes +KEYMAP_SECTION_ENABLE = yes +include Makefile diff --git a/converter/usb_usb/README b/converter/usb_usb/README index 30d5deb1..0a8d7993 100644 --- a/converter/usb_usb/README +++ b/converter/usb_usb/README @@ -1,21 +1,31 @@ USB to USB keyboard protocol converter ====================================== +See for detail and discussion. +https://geekhack.org/index.php?topic=69169.0 + Hardware requirement -------------------- -Arduino Leonardo - http://arduino.cc/en/Main/ArduinoBoardLeonardo +There are two options. + +### TMK USB-USB Converter +You can buy a fully assembled converter from me here. -Circuit@Home USB Host Shield 2.0 + https://geekhack.org/index.php?topic=69169.0 + +### Arduino Leonardo + Circuit@Home USB Host Shield 2.0 +Buying Arduino Leonardo and USB Host Shield 2.0(from Circuit@home) will be better, you won't need even soldering iron. + + http://arduino.cc/en/Main/ArduinoBoardLeonardo https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino-assembled/ -Buying Arduino Leonardo and USB Host Shield 2.0(from Circuit@home) will be the easiest way, you won't need even soldering iron. -Arduino's Shield will also work well but I think Sparkfun's needs to be modified. +Other compatible boards like Arduino's Shield will also work well but I think Sparkfun's needs to be modified. http://arduino.cc/en/Main/ArduinoUSBHostShield https://www.sparkfun.com/products/9947 Also Pro Micro 3.3V(not Mini) or Teensy with mini host shield will work with some fixes on signal/power routing. + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini https://www.sparkfun.com/products/12587 https://www.pjrc.com/teensy/td_libs_USBHostShield.html @@ -24,6 +34,8 @@ Also Pro Micro 3.3V(not Mini) or Teensy with mini host shield will work with som Build firmware -------------- +Build. + $ git clone git://github.com/tmk/tmk_keyboard.git $ cd tmk_keyboard $ git submodule init @@ -31,7 +43,12 @@ Build firmware $ cd converter/usb_usb $ make -Program converter. Push reset button on Leonardo before run this command. Serial port name(COM17) depends your system. On Linux I got /dev/ttyACM0. +And Program converter. Push button on TMK converter and just run this. + + $ make dfu + + +In case of Leonardo push reset button then run command. Serial port name(COM17) depends your system. On Linux I got /dev/ttyACM0. $ DEV=COM17 make program or diff --git a/converter/usb_usb/binary/usb_usb_unimap.hex b/converter/usb_usb/binary/usb_usb_unimap.hex new file mode 100644 index 00000000..b54173af --- /dev/null +++ b/converter/usb_usb/binary/usb_usb_unimap.hex @@ -0,0 +1,1615 @@ +:100000000C944F020C94A1020C94A1020C94A10236 +:100010000C94A1020C94A1020C94A1020C94A102D4 +:100020000C94A1020C94A1020C946E1E0C94401F1F +:100030000C94792C0C94A1020C94A1020C94A102B2 +:100040000C94A1020C94A1020C94A1020C94A102A4 +:100050000C94A1020C942E0B0C94A1020C94A102FE +:100060000C94A1020C94A1020C94A1020C94A10284 +:100070000C94A1020C94A1020C94A1020C94A10274 +:100080000C94A1020C94A1020C94A1020C94A10264 +:100090000C94A1020C94A1020C94A1020C94A10254 +:1000A0000C94A1020C94A1020C94A102AD1FCF1FCD +:1000B000BD20CF1FBD2014203720BD208C209F20C5 +:1000C0008F238F23BC23BC23172453244B264B267A +:1000D0006B244B266625662521264B264B26372684 +:1000E000000102030405060708090A0B0C0D0E0F98 +:1000F000101112131415161718191A1B1C1D1E1F88 +:10010000202122232425262728292A2B2C2D2E2F77 +:10011000303132333435363738393A3B3C3D3E3F67 +:10012000404142434445464748494A4B4C4D4E4F57 +:10013000505152535455565758595A5B5C5D5E5F47 +:10014000606162636465666768696A6B6C6D6E6F37 +:1001500070717273808080808080808080808080D9 +:1001600080808080808080758074767780808080B9 +:10017000808080808080808080808080808080807F +:10018000808080808080808080808080808080806F +:10019000808080808080808080808080808080805F +:1001A000808080808080808080808080808080804F +:1001B000808080808080808080808080808080803F +:1001C00078797A7B7C7D7E7F808080808080808053 +:1001D000808080808080808080808080808080801F +:1001E0000A00253031366200253032643A20000A98 +:1001F000722F63203031323334353637383941424B +:10020000434445460A00686F73742E5461736B3A19 +:100210002025640A000D0A0020253032580073742E +:100220006174653A2020253032582025303258003C +:10023000696E69743A20646F6E650A000D0A0020C9 +:100240002530325800696E7075742025643A20207C +:10025000253032582025303258005B575D005B5303 +:100260005D005B525D005B445D005B435D003C03F1 +:10027000550053004200200074006F00200055001C +:100280005300420020006B006500790062006F009F +:10029000610072006400200063006F006E00760051 +:1002A0006500720074006500720000000E037400A7 +:1002B0002E006D002E006B002E00000004030904C8 +:1002C00009027400040100A03209040000010301C6 +:1002D00001000921110100012240000705810308E6 +:1002E000000A0904010001030102000921110100B3 +:1002F00001224D000705820308000A0904020001DB +:1003000003000000092111010001223600070583C6 +:100310000308000A09040300020300000009211178 +:1003200001000122220007058403200001070504C3 +:10033000032000011201100100000008EDFE5B0027 +:100340001408010200010631FF0974A101097515A5 +:100350000026FF009520750881020976150026FF0A +:1003600000952075089102C005010980A101850250 +:1003700016010026B7001A01002AB7007510950172 +:100380008100C0050C0901A1018503160100269C0E +:10039000021A01002A9C02751095018100C0050116 +:1003A0000902A1010901A10005091901290515008A +:1003B00025019505750181029501750381010501EE +:1003C000093009311581257F9502750881060938A4 +:1003D0001581257F950175088106050C0A380215DF +:1003E00081257F950175088106C0C005010906A118 +:1003F00001050719E029E715002501950875018118 +:1004000002950175088101050819012905950575F1 +:100410000191029501750391010507190029FF1546 +:100420000026FF00950675088100C00A00253032BD +:100430005820006B6579626F6172645F7265706FDE +:1004400072743A20004C45443A20253032580A0054 +:10045000290A002575002F002575005D28002564F8 +:100460000020002564002000256400200025640091 +:100470007C0025303258006D6F7573656B6579208F +:100480005B62746E7C782079207620685D287265C6 +:10049000702F61636C293A205B008309820A112462 +:1004A0001FBECFEFDAE0DEBFCDBF04B603FE27C02C +:1004B0008091810390918203A0918303B091840382 +:1004C0008730904BA740B04BD1F41092810310922B +:1004D0008203109283031092840314BE84B7877F33 +:1004E00084BF0FB6F894A8958091600088618093CE +:1004F0006000109260000FBEE0E0F8E3099511E0A3 +:10050000A0E0B1E0E0E5F2E602C005900D92A0396E +:10051000B107D9F723E0A0E9B1E001C01D92A138ED +:10052000B207E1F712E0CFE4D2E004C02197FE0168 +:100530000E940C31CD34D107C9F70E94BE090C943A +:1005400026310C940000FF93EF93E0919001F0911D +:100550009101309709F00995EF91FF910895FC0101 +:100560008591803011F0EFDFFBCF0895FF27E0E2A7 +:1005700030E247FF0CC0419597FF09C0EDE260955E +:10058000709580959095611D711D811D911D27FFAE +:1005900002C0219530E350E2AA27660F771F881F1B +:1005A000991FAA1FA41710F0A41B63955A95A9F7C9 +:1005B000AA3008F0A95FA05DAF93F39561157105AE +:1005C0008105910541F7ED3211F4EF93F395F217A0 +:1005D00018F43F93F395FBCF8F91B5DFFA95E1F7D0 +:1005E0000895E991F9918591803021F0853219F0D3 +:1005F000AADFF9CF089520E0E89455915532C1F370 +:10060000503311F4689455915A3348F4505390F391 +:10061000220F022E220F220F200D250FF4CF0EF4F1 +:10062000219589919991533619F3533729F153350F +:1006300059F1BC0188279927E8945C3621F4899107 +:10064000999168945591543639F446EF7EF077FFCE +:100650000DC08FEF9FEF0AC055374AE039F058358B +:1006600040E121F0523642E009F00895FF93EF9304 +:100670007DDFEF91FF91B7CFFF93EF93FC01819165 +:100680008030B9F360DFFBCFFF93EF9368DFF1CFEA +:10069000DF93CF93CDB7DEB72596A3DFCF91DF9160 +:1006A000089580E00895089580E0089581E0089518 +:1006B000CF93DF93CDB7DEB728970FB6F894DEBFA0 +:1006C0000FBECDBF29833A834B835C836D837E83CA +:1006D0008F8398878091C902282B2093C902FE013D +:1006E0003396AE01475F5F4F2191243088F080E060 +:1006F00090E0DC01A753BD4F12963C911297311147 +:1007000003C012962C9304C001968630910589F798 +:10071000E417F50749F728960FB6F894DEBF0FBE29 +:10072000CDBFDF91CF910895860F911D860F911D4A +:10073000FC015687458781E00895CF93DF93EC0154 +:100740008C819D81DC01ED91FC910480F581E02D8F +:100750006E8109951F86188A81E08A8B1E821B8A0A +:100760001C8A1D8A1E8A1F8A80E0DF91CF9108951E +:10077000FC018681089581E0633009F080E00895EE +:1007800081E0613009F080E00895860F911D860FA9 +:10079000911DFC01858596850895FC018789089542 +:1007A000EF92FF92CF93DF93DC01E70152968C9199 +:1007B0005297823049F11F966C931F9750964C9335 +:1007C00050979B8193709330F9F49A8197FF1CC0E6 +:1007D0009E8158962C915897291718F458969C93F7 +:1007E0005897E82FF0E09F01220F331FE20FF31F0D +:1007F000EA0FFB1F9A819F7097839C81908794E0FA +:1008000091878F5F52968C93DF91CF91FF90EF90FD +:100810000895EF92FF920F9302970E94D0030F91D9 +:10082000FF90EF9008950895DF92EF92FF920F935B +:100830001F93CF93DF93CDB7DEB762970FB6F894CF +:10084000DEBF0FBECDBFDC0157962C91222381F075 +:100850007C010E94930AF70103891489258936894E +:10086000DC01CB01801B910BA20BB30BB7FF02C0C5 +:10087000D12C39C0838590E09A8B898B8E010F5FD4 +:100880001F4F9E012F5E3F4F428566818481958177 +:100890000E949513D82E811118C029893A892330D6 +:1008A000310598F0D7011D968D919C911E97009768 +:1008B00061F0DC01ED91FC910190F081E02D8E0161 +:1008C0000F5F1F4F40E0B70109950E94930AF7019F +:1008D000208DDC01CB01820F911DA11DB11D838BE9 +:1008E000948BA58BB68B8D2D62960FB6F894DEBFD8 +:1008F0000FBECDBFDF91CF911F910F91FF90EF9071 +:10090000DF9008953F924F925F926F927F928F9205 +:100910009F92AF92BF92CF92DF92EF92FF920F938E +:100920001F93CF93DF93CDB7DEB7EC970FB6F89454 +:10093000DEBF0FBECDBFDC0114968D909C90159745 +:1009400016963C91311139C1522E342E462E5C013F +:10095000FC01108ED401ED91FC910190F081E02D0D +:1009600060E0C40109957C01009711F486ED2AC16D +:10097000FC01608071806114710409F420C165017B +:10098000F7E0CF0ED11CDC011196DC92CE921496CA +:100990005C928E01065D1F4F28E030E040E060E091 +:1009A000F501848195810E9458118CAF8111F8C0A6 +:1009B0001AA5D7016D927C92D401ED91FC91028031 +:1009C000F381E02D232D40E0642DC4010995F5014C +:1009D0008683882309F4F5C099A99087282F40E0E1 +:1009E00060E0848195810E9403128CAFD401ED9167 +:1009F000FC91D70114961C92882359F00480F5814C +:100A0000E02DD50116966C91C4010995F501168269 +:100A1000D2C00190F081E02DD50116966C91C401F1 +:100A20000995FC01892B09F4A1CF912F133108F00E +:100A300092E15482992369F0292F30E08E01065DFE +:100A40001F4F40E0F5016681848195810E94581115 +:100A50008CAF8CAD8111A7C0EBACF12C47E1642EBB +:100A600041E0742E2501F2E04F0E511C4E0181E150 +:100A7000880E911CFE1449F17A8269825C824B8255 +:100A80001E86188A1F8619A21AA21BA219A69F8267 +:100A90008E82998688868D818B878A879D868C86B3 +:100AA0008E010F5F1F4F2F2D40E0D50116966C91E0 +:100AB000169714968D919C9115970E94A611F50199 +:100AC0008289823011F0F394D5CFD50152968C9162 +:100AD000823019F081ED8CAF66C0960142E0F501DD +:100AE0006681848195810E94920C8CAF68EE73E0E0 +:100AF00080E090E00E94950AD5011F962C911F97E7 +:100B000040E016966C91169714968D919C911597CE +:100B10000E9470138CAF811146C068EE73E080E0D4 +:100B200090E00E94950A40E060E0C5010E946615D1 +:100B30008CAF811138C020E040E060E0C5010E9428 +:100B40003C158CAF8DE191E09A838983AE014F5FB4 +:100B50005F4F60E070E0C5010E94CB1480E28CAF73 +:100B60008CAD8823C1F090E0959587958CAFFE0100 +:100B7000FC966F01EE24E394F12C00E022E040E0CB +:100B800060E0C5010E940E1569E170E080E090E030 +:100B90000E94950AE5CF91E0D50157969C9312C02B +:100BA000F70171826082D501ED91FC910480F5819D +:100BB000E02DC50109958CAD05C089ED03C087ED19 +:100BC00001C084EDEC960FB6F894DEBF0FBECDBF2A +:100BD000DF91CF911F910F91FF90EF90DF90CF9019 +:100BE000BF90AF909F908F907F906F905F904F904D +:100BF0003F9008950F931F93CF93DF936091C901A6 +:100C00007091CA01E0919801F09199014091BD0164 +:100C10005091BE012091B1013091B2018091A501A6 +:100C20009091A6016E177F07B1F4E0919601F091C3 +:100C300097014E175F0779F4E0919401F0919501C7 +:100C40002E173F0741F4E0919201F09193018E1726 +:100C50009F0709F49DC07093990160939801509388 +:100C600097014093960130939501209394019093BE +:100C7000930180939201E9ECF2E088E0DF011D929C +:100C80008A95E9F72091C1013091C2014091C301D9 +:100C90005091C4016091C5017091C6018091C70156 +:100CA0009091C8010E9458032091B5013091B6017E +:100CB0004091B7015091B8016091B9017091BA01AA +:100CC0008091BB019091BC010E9458032091A90121 +:100CD0003091AA014091AB015091AC016091AD01FE +:100CE0007091AE018091AF019091B0010E945803C4 +:100CF00020919D0130919E0140919F015091A00152 +:100D00006091A1017091A2018091A3019091A40131 +:100D10000E94580381E08093C8028091690380FF9C +:100D200014C08091CA021F928F938091C9021F92B2 +:100D30008F938EE192E09F938F930E9448030F90D0 +:100D40000F900F900F900F900F90C0E0D0E008E14F +:100D500012E08091690380FF0EC0FE01E753FD4F52 +:100D600082811F928F931F930F930E9448030F90CD +:100D70000F900F900F902196C630D10551F78091BA +:100D8000690380FF07C085E192E00E94AF0202C0C4 +:100D90001092C8020E94EC0AEC0181E592E00E94E8 +:100DA000CC13CE010E94040B8536910580F0209172 +:100DB000690320FF0CC09F938F9386E092E09F937E +:100DC0008F930E9448030F900F900F900F9081E037 +:100DD000DF91CF911F910F910895482F50E0CA01E4 +:100DE00024E0880F991F2A95E1F7805E9109089702 +:100DF00030F48091C902882311F090E002C080E0B5 +:100E000090E0EBECF2E0A1E0B0E036E03E0F2191A3 +:100E1000243080F0622F62956F7070E0461757079C +:100E200049F42F70BD0102C0660F771F2A95E2F7C3 +:100E3000862B972B3E13EBCF0895EF92FF920F93E3 +:100E40001F93CF93DF938FEE91E00E94AF02C0E03B +:100E5000D0E088EEE82E81E0F82E02EE11E0DF937C +:100E6000CF93FF92EF920E9448038C2F0E94ED06D1 +:100E70000E94492C9F938F931F930F930E944803C6 +:100E800080EE91E00E94AF0221968DB79EB7089642 +:100E90000FB6F8949EBF0FBE8DBFC031D105F9F6D5 +:100EA000DF91CF911F910F91FF90EF900895CF9216 +:100EB000DF92EF92FF920F93CF93DF931F92CDB704 +:100EC000DEB78983CE0101966C01EE24E394F12C08 +:100ED00000E022E040E060E086E192E00E940E1532 +:100EE00022E040E060E08DEF91E00E940E1522E0EC +:100EF00040E060E084EE91E00E940E1522E040E0C8 +:100F000060E08BEC91E00E940E150F90DF91CF9185 +:100F10000F91FF90EF90DF90CF900895FC017583C3 +:100F2000648383E291E09183808381E491E0938301 +:100F30008283138A148A158A168A178A178288E090 +:100F400080878CE381871286138684E0848781E022 +:100F5000828B118A17861686158661157105B1F088 +:100F6000DB01AA5ABF4F80E090E02D913D91232BE9 +:100F700049F48B96880F991FDB01A80FB91FED93D9 +:100F8000FC93089501968031910579F708952E9A82 +:100F900008952E988EBD0DB407FEFDCF1EBC0DB476 +:100FA00007FEFDCF0E94C7078EB508952E98826078 +:100FB0008EBD0DB407FEFDCF6EBD0DB407FEFDCF97 +:100FC0000C94C70788EF0E94C907807C8034A1F089 +:100FD00018F4882301F10895803819F0803CB9F0A5 +:100FE000089588ED0E94C90781FD0BC069EC88ED6A +:100FF0000E94D60782E00CC088ED0E94C90781FDDF +:10100000F5CF6BEC88ED0E94D60783E001C081E04C +:1010100080939A01089561ED88ED0E94D6071092A1 +:101020009A0108950F931F93CF93DF938C01269A13 +:101030000E94C707219A229A2398209A80E58CBDA6 +:1010400081E08DBD259868E188E80E94D60760E2BE +:1010500088E70E94D60760E088E70E94D607C1E0D3 +:10106000D0E0209799F088E60E94C907219680FF7A +:10107000F8CF61EC88ED0E94D60760E680ED0E9413 +:10108000D60764E088EE0E94D60702C08FEF11C039 +:1010900088EE0E94C90782FFFBCFC8010E94E207C9 +:1010A00060E288EC0E94D60761E080E80E94D607E3 +:1010B00080E0DF91CF911F910F91089581E592E03B +:1010C0000E9412088FEB91E09093240280932302F8 +:1010D00083EB91E090930B0280930A0287EA91E000 +:1010E0009093F2018093F1018BE991E09093D90103 +:1010F0008093D8010895EF92FF920F931F93CF939F +:10110000DF93EC017B018A0188A1823029F128F468 +:10111000882341F0813081F0C9C0833019F18430D7 +:10112000D9F1C4C082E08C832D813E8138872F8322 +:101130008A87898781E088A3A801B701CE01079635 +:101140000E945819811102C080E0B1C0ED81FE817A +:10115000808189A381818AA3CE0142969E838D835B +:1011600083E088A38AA1843059F018F4823049F0D2 +:101170000AC0853039F0813231F489A1825002C031 +:101180001BA287E08C838D819E8198878F838C81C1 +:101190008A87898784E088A38AA1843081F085309A +:1011A00091F1823009F050C0A801B701CE01079635 +:1011B0000E945819882341F28D898CA372C0A8011E +:1011C000B701CE0107960E945819882309F4BCCFB5 +:1011D0008D89833009F065C08E89813009F061C046 +:1011E00098A58F89992321F0882309F45AC003C058 +:1011F000813009F056C091E09BA39A899EA39B89F8 +:101200009FA38DA34EC0A801B701CE0107960E94EF +:101210005819882309F498CF8BA1882309F441C079 +:101220008A819B810097E9F1DC01ED91FC910190AD +:10123000F081E02D7E01B0E1EB0EF11C0DA12FA19C +:101240004EA16CA109952DC089A19D85992319F006 +:101250009130E9F021C090E002979F878E8781E06E +:101260008D8715C0F80120813181232BA9F00197CA +:101270009F878E87F701808191810196918380837A +:10128000D8018D919C91119701978D939C938E8598 +:101290009F85009739F71D868E859F85892B09F0DC +:1012A00053CFCE0140969E838D8318A281E0DF91BB +:1012B000CF911F910F91FF90EF9008950F931F937F +:1012C000CF93DF9300D000D0CDB7DEB78C017C8305 +:1012D0006B835A8349832B813C81232B59F0AE01C8 +:1012E0004D5F5F4FBE016F5F7F4FC8010E947B085B +:1012F0008111F1CF0F900F900F900F90DF91CF9150 +:101300001F910F91089581E592E00E943D0C61E5E7 +:1013100072E080E492E00E94EB1761E572E08FE2F8 +:1013200092E00E94EB1761E572E086E192E00E9494 +:101330008E0761E572E08DEF91E00E948E0761E516 +:1013400072E084EE91E00E948E0761E572E08BEC22 +:1013500091E00E948E0787E491E09093C001809312 +:10136000BF019093B4018093B3019093A80180933F +:10137000A70190939C0180939B010895569A5E9AD1 +:1013800080916903816084608093690380E091E0CB +:101390000E94D5200E94662184B7877F84BF0FB644 +:1013A000F894A89580916000886180936000109205 +:1013B00060000FBE90E080E80FB6F8948093610063 +:1013C000909361000FBE0E94F31D0E94501E8091F9 +:1013D000E20084608093E20087EB99E10E942E2C6A +:1013E0007894809178038430E1F78091690380FFDD +:1013F00009C02FEF83ED90E3215080409040E1F74A +:1014000000C000008091690380FF04C080E392E087 +:101410000E94AF020E946A21FDCFEF92FF920F93CC +:101420001F93CF93DF93EC017B01DC01129688E0E0 +:10143000F80101900D928A95E1F70E94930A7B874B +:101440006A878091690380FF1EC00B811A81D701D2 +:10145000ED91FC910084F185E02DC70109951F9263 +:101460000F931F921F931F928F9385E492E09F9397 +:101470008F930E9448038DB79EB708960FB6F894D5 +:101480009EBF0FBE8DBF249616E08FE3E82E82E04C +:10149000F82E8091690380FF0BC088811F928F9383 +:1014A000FF92EF920E9448030F900F900F900F90C1 +:1014B000115021961111EDCF8091690380FF0AC070 +:1014C0008CE392E0DF91CF911F910F91FF90EF900D +:1014D0000C94AF02DF91CF911F910F91FF90EF908D +:1014E0000895089580E090E008958FEF9FEF0895AC +:1014F0008FEF9FEF08950895862F0E94B71981E01E +:1015000090E00895E1EDF2E01382128288EE93E01C +:10151000A0E0B0E084839583A683B7838DE491E057 +:101520009183808308950C94F80A8F929F92AF92D2 +:10153000BF92CF92DF92EF92FF920E94C82F4B0191 +:101540005C0120E030E04AE755E40E947F306B0107 +:101550007C0120E030E040E85FE30E948D2F87FDB2 +:1015600024C020E03FEF4FE757E4C701B6010E94D7 +:101570007A301816ACF420E030E040E251E4C501C6 +:10158000B4010E947F300E94992F20E931E061155B +:10159000710581F0C9010197F1F761507109F7CF29 +:1015A000C701B6010E94992F02C061E070E0CB0133 +:1015B0000197F1F7FF90EF90DF90CF90BF90AF9041 +:1015C0009F908F90089582E084BD93E095BD9AEF3F +:1015D00097BD80936E0008952FB7F8948091DF0235 +:1015E0009091E002A091E102B091E2022FBF089534 +:1015F0002FB7F8946091DF027091E0028091E102D0 +:101600009091E2022FBF0895CF92DF92EF92FF9266 +:101610000F931F932FB7F8944091DF025091E0028F +:101620006091E1027091E2022FBF6A017B01EE241A +:10163000FF248C0120E030E0C016D106E206F3065C +:1016400010F4415051099A01281B390BC9011F910F +:101650000F91FF90EF90DF90CF9008951F920F921F +:101660000FB60F9211248F939F93AF93BF938091E6 +:10167000DF029091E002A091E102B091E2020196B6 +:10168000A11DB11D8093DF029093E002A093E102BF +:10169000B093E202BF91AF919F918F910F900FBED7 +:1016A0000F901F901895CF93DF93FC01862F8078C1 +:1016B00009F051C0283008F04FC0442321F0958133 +:1016C000973009F449C0EF012D96A0E0B0E01196E3 +:1016D0009881911103C0662331F021C02596AF3067 +:1016E000B105A9F739C085E08A9FE0018B9FD00D35 +:1016F0001124CE0FDF1F442331F081E488878581D8 +:101700008F5F858302C081E0888725E02A9FC00122 +:101710002B9F900D1124E80FF91F80851DC0677065 +:10172000660F660F660F442341F0606485818F5F0A +:1017300085838770687F682B03C02770687B622B66 +:1017400025E02A9FC0012B9F900D1124E80FF91F5F +:101750006087862F01C080E0DF91CF910895DF92EE +:10176000EF92FF920F931F93CF93DF93EC01E62E3E +:10177000F12C85E0689FB0011124FE01E60FF71FF0 +:101780008085182F177086FF21C001E085E0D82ED4 +:101790008FEF800F8F3008F001E0FE01D09EE00D4A +:1017A000F11D112480858695869586958770811315 +:1017B00005C0602FCE010E94AF0BEACF0F5F003152 +:1017C00061F78D81811302C011501D8385E08E9DCC +:1017D000F0018F9DF00D1124EC0FFD1F108681E0AC +:1017E000818712862296D783C683DF91CF911F917E +:1017F0000F91FF90EF90DF900895611102C006965F +:101800000895FC013D9621E03081361307C035E094 +:10181000239F800D911D1124069608952F5F359604 +:10182000203191F780E090E00895FC016134C1F42B +:101830003F969C01265A3F4F61E0AC014E5F5F4FDF +:10184000DF0112971C9211966C93108213974D939F +:101850005C933596E217F30799F7FC01158208951A +:101860003D9621E03081361303C0622F0C94AF0BFC +:101870002F5F35962031B1F70895CF93DF93FC01A8 +:101880008FE591E0918380831582108681E08187C6 +:101890001286CF01029697838683128228E02383E3 +:1018A0002CE32483DF011F969F01265A3F4F41E01E +:1018B000ED0122971882219648831C9223979983E1 +:1018C00088831596A217B30799F7EA58FF4F10823D +:1018D00081E18093E702DF91CF910895CF93DF9369 +:1018E0001F92CDB7DEB749830E94FD0B4981009757 +:1018F00089F0DC01ED91FC911197309759F0139626 +:101900009C9180E0891731F02081241731F03396C3 +:101910008F5FF8CF80E090E001C0CF010F90DF91A2 +:10192000CF9108950F931F93CF93DF932115310526 +:1019300071F0E901042F162F0E94FD0BFC01892B89 +:1019400041F01283D183C083038380E003C088ED1C +:1019500001C086EDDF91CF911F910F910895CF9235 +:10196000DF92FF920F931F93CF93DF93662381F152 +:10197000F62E8C016C0186E5C80ED11CC0E0D0E0CB +:10198000D6018D919D916D010097F1F0DC01ED91F3 +:10199000FC910084F185E02D09958F1115C0AB965F +:1019A000CC0FDD1FC00FD11F88819981DC01ED9123 +:1019B000FC910480F581E02DDF91CF911F910F9173 +:1019C000FF90DF90CF9009942196C031D105C1F6E8 +:1019D00080E0DF91CF911F910F91FF90DF90CF902A +:1019E00008952E980895CF93DF931F92CDB7DEB759 +:1019F00089830E94F10C89818EBD0DB407FEFDCF55 +:101A00001EBC0DB407FEFDCF0E94C7078EB50F9018 +:101A1000DF91CF910895CF93DF9300D0CDB7DEB79C +:101A20006A8389830E94F10C898182608EBD6A81FC +:101A30000DB407FEFDCF6EBD0DB407FEFDCF0F90B8 +:101A40000F90DF91CF910C94C7078F929F92AF9226 +:101A5000BF92DF92EF92FF920F931F93CF93DF938A +:101A60001F92CDB7DEB74C01D62E590149830E9493 +:101A7000FD0B7C014981009709F440C0FC01808185 +:101A80009181892BE9F16D2DC4010E946E0CF50145 +:101A9000918380830097B1F1FC01228126952695E0 +:101AA00030E02031310514F02FE030E081E090E0AB +:101AB000A0E0B0E004C0880F991FAA1FBB1F2A95A1 +:101AC000D2F70197F801918380836D2D80EE0E94FB +:101AD0000B0D88ED0E94F30C682FF7018481882399 +:101AE00039F0F401EA58FF4F80818260682B01C011 +:101AF000697F88ED0E940B0D80E005C086ED03C074 +:101B000087ED01C08BED0F90DF91CF911F910F9169 +:101B1000FF90EF90DF90BF90AF909F908F900895CF +:101B20008F929F92AF92BF92CF92DF92EF92FF92ED +:101B30000F931F93CF93DF93862E942E59010E940B +:101B4000930A6B017C0128E8C20E23E1D21EE11C3E +:101B5000F11C00E010E0D0E0C0E098280E94930A59 +:101B6000DC01CB018C199D09AE09BF09B7FF2DC05F +:101B7000692D80EF0E940B0D0E94930ADC01CB01BE +:101B80008C199D09AE09BF09B7FF09C088EC0E94F6 +:101B9000F30C87FFF1CF60E888EC0E940B0D88EF13 +:101BA0000E94F30CC82FCF70C43019F0CE3051F022 +:101BB0000CC00F5F1F4FA114B10481F20A151B0561 +:101BC00069F603C0DF5FD33049F68C2FDF91CF91E8 +:101BD0001F910F91FF90EF90DF90CF90BF90AF904B +:101BE0009F908F9008959F92AF92BF92CF92DF9275 +:101BF000EF92FF920F931F93CF93DF937C01C42F3B +:101C0000122F992493946C01C60ED11CC60ED11CC0 +:101C100086E5C80ED11CA42EB12CABE2AA0EB11CD5 +:101C2000AA0CBB1CAE0CBF1CF60180819181DC01AB +:101C3000ED91FC910280F381E02D202F412F6C2F3C +:101C40000995803EC9F4C1110BC061E088EE0E9485 +:101C50000B0D66E670E080E090E00E94950A16C0E9 +:101C6000F50180819181DC01ED91FC910284F38585 +:101C7000E02D612F09950AC08D3031F49FEF990D49 +:101C8000933008F040C016C081113DC0F60180813C +:101C90009181DC01ED91FC910190F081E02D202FEC +:101CA000412F6C2F0995D82F8D3061F48FEF890D5E +:101CB000833050F464E670E080E090E00E94950A82 +:101CC0009394B2CF8823F1F0C1110BC061E088EE8C +:101CD0000E940B0D66E670E080E090E00E94950A9D +:101CE00011C0EC2FF0E0BB96EE0FFF1FEE0DFF1DB5 +:101CF00080819181DC01ED91FC910284F385E02DDE +:101D0000612F09958D2FDF91CF911F910F91FF903A +:101D1000EF90DF90CF90BF90AF909F9008950F937A +:101D20001F93CF93DF9300D0CDB7DEB78A016A83CC +:101D300089830E94F10C898182608EBDF8016A81DD +:101D4000862F882339F00DB407FEFDCF91919EBDFB +:101D50008150F7CF060F111D0DB407FEFDCF0E9475 +:101D6000C707C8010F900F90DF91CF911F910F917E +:101D700008952F923F924F925F926F927F928F922F +:101D80009F92AF92BF92CF92DF92EF92FF920F930A +:101D90001F93CF93DF9300D000D01F92CDB7DEB753 +:101DA0007D836C835A016901FB0121808FEF820DD5 +:101DB000803408F075C00E94930A2B013C01F8E8BA +:101DC0004F0EF3E15F1E611C711CEC81FD8182816D +:101DD00080FD02C060E401C060E888EE0E940B0D47 +:101DE00020E0312CC114D10409F44AC076012C142E +:101DF0003D0408F47101EA82A8016E2D80E10E9481 +:101E00008F0E6E2D88E30E940B0DEC81FD816081A9 +:101E1000606280EF0E940B0D88EC0E94F30C87FF3C +:101E2000FBCF60E888EC0E940B0D88EF0E94F30C5A +:101E3000282F2F70812C912C1982222361F02B8363 +:101E40000E94930ADC01CB0184199509A609B70900 +:101E50002B81B7FD05C0CE18DF080E0D1F1DC2CFA8 +:101E6000263001F12E3009F456C0243049F4FFEF3A +:101E70008F1A9F0AA114B10459F18A149B0441F5E9 +:101E800088EF2B830E94F30C85FB882780F9EC8177 +:101E9000FD81928180FB90F992832B81822F41C03A +:101EA0008AED3FC088EF0E94F30C85FB882780F9FC +:101EB00091E08927EC81FD81928180FB90F99283EA +:101EC00090FD02C060E401C060E888EE0E940B0D46 +:101ED00060E088E30E940B0DF801608180E10E94C0 +:101EE0000B0D6A8188E30E940B0DEC81FD816081FE +:101EF000606280EF0E940B0D88EC0E94F30C87FF5C +:101F0000FBCF60E888EC0E940B0D88EF0E94F30C79 +:101F1000282F2F7092CF89818F5F89838330C1F6FC +:101F2000AFCF0F900F900F900F900F90DF91CF9148 +:101F30001F910F91FF90EF90DF90CF90BF90AF90E7 +:101F40009F908F907F906F905F904F903F902F90D9 +:101F500008952F923F924F925F926F927F928F924D +:101F60009F92AF92BF92CF92DF92EF92FF920F9328 +:101F70001F93CF93DF9300D000D01F92CDB7DEB771 +:101F80005C017D836C834A017901F901C080D180B5 +:101F9000FB014180F90111821082FB01828181FDE8 +:101FA00002C060E101C060E288EE0E940B0D3C2C93 +:101FB0009401EC81FD81408160E0C5010E94900D9B +:101FC000582EF6E08F1316C088EF0E94F30C82950E +:101FD000817091E08927EC81FD81928180FB91F9EC +:101FE000928391FD02C060E101C060E288EE0E9430 +:101FF0000B0DDECF81115BC088EC0E94F30C82FFD9 +:1020000054C080E30E94F30C282E282F30E0C21623 +:10201000D30608F4232CF70120813181622C712C26 +:10202000A601421B530B57FF02C040E050E0930152 +:10203000461557050CF49A0129833A832B830E9495 +:10204000F10CF8E0FEBD8B813A8129810DB407FEC9 +:10205000FDCFF801882341F01EBC81500DB407FE6E +:10206000FDCF4EB54193F6CF020F131F0E94C70755 +:1020700064E088EC0E940B0DF70120813181620E33 +:10208000731E71826082241420F06C147D0408F4A5 +:102090008FCF88EF0E94F30C82958170EC81FD81D7 +:1020A000928180FB91F9928302C080EF582E852D9A +:1020B0000F900F900F900F900F90DF91CF911F9185 +:1020C0000F91FF90EF90DF90CF90BF90AF909F90D7 +:1020D0008F907F906F905F904F903F902F900895DA +:1020E0002F923F924F925F926F927F928F929F9228 +:1020F000AF92BF92CF92DF92EF92FF920F931F9316 +:10210000CF93DF93CDB7DEB762970FB6F894DEBFFB +:102110000FBECDBF3C01542ED22E402E5E2D2FA0DF +:1021200038A4E9A4FAA4188A1F861E861D868E018B +:10213000035F1F4F9E01215F3F4F598B0E94250D6A +:10214000598981119CC0D9824A825B83CC82BE822C +:10215000AD8298868F82AE014F5F5F4F68E080E26C +:102160000E948F0E2D853E85452D60E1C3010E94A2 +:10217000900D182F81117FC0BD2CBB1CBB24BB1C34 +:10218000E114F10409F46AC0EF85F8898281BB206B +:1021900009F455C0826082836401AA24A394C11407 +:1021A000D10409F449C03C862B864D855E856F8538 +:1021B000788987019E01255F3F4FC3010E94A90FC7 +:1021C000182F8630B1F42F85388988EF298B3A8B08 +:1021D0000E94F30C85FB882780F98A2529893A8992 +:1021E000D90112969C91129780FB91F912969C93BB +:1021F000D6CF811140C0EBA5FCA53097A1F001908E +:10220000F081E02D0190F081E02DC4018C199D0931 +:102210009A8789876B857C859E01275F3F4FA70141 +:102220008BA59CA509958B859C85C81AD90A821512 +:10223000930508F0B4CF12C011111DC014C0816005 +:1022400082834D855E8587019101BF01C3010E9494 +:10225000B90E811114C02D853E850FC02D853E8598 +:10226000B11003C00AC02D853E8560EA452DC3012B +:102270000E94900D04C0812F02C060E8F7CF6296E3 +:102280000FB6F894DEBF0FBECDBFDF91CF911F9187 +:102290000F91FF90EF90DF90CF90BF90AF909F9005 +:1022A0008F907F906F905F904F903F902F90089508 +:1022B0008F929F92AF92BF92CF92EF920F931F9304 +:1022C0001F921F921F930F933F932F934901A12CAD +:1022D000B12CCC24C394E12C06E020E80E947010BD +:1022E0000F900F900F900F900F900F901F910F91E4 +:1022F000EF90CF90BF90AF909F908F9008958F9266 +:102300009F92AF92BF92CF92EF92FF920F931F9244 +:102310001F92FF92EF923F932F934901A12CB12C72 +:1023200022E0C22EE02E06E020E80E9470100F90FE +:102330000F900F900F900F900F900F91FF90EF90D4 +:10234000CF90BF90AF909F908F9008954F925F92E3 +:102350006F927F928F929F92AF92BF92CF92DF92B5 +:10236000EF92FF920F931F93CF93DF93CDB7DEB71A +:10237000C054D1090FB6F894DEBF0FBECDBF3C01EB +:10238000D62E542E422EC02ECE0101965C017C0129 +:10239000022F29E030E0C3010E947F1181111BC090 +:1023A0008B809C801F93CF92BF92AF921F9280E44C +:1023B0008F93A12CB12C82E0C82EE42C06E020E8FB +:1023C000452D6D2DC3010E9470100F900F900F903E +:1023D0000F900F900F90C05CDF4F0FB6F894DEBFE8 +:1023E0000FBECDBFDF91CF911F910F91FF90EF9066 +:1023F000DF90CF90BF90AF909F908F907F906F9025 +:102400005F904F9008958F929F92AF92BF92CF921C +:10241000EF920F93CF931F921F921F921F921F92C2 +:102420001F92812C912CA12CB12CC12CE22E05E005 +:1024300020E00E947010C82F6CE271E080E090E014 +:102440000E94950A0F900F900F900F900F900F9091 +:102450008C2FCF910F91EF90CF90BF90AF909F9026 +:102460008F9008950F931F93CF93DF938A3F3FEF91 +:10247000930711F486ED2DC0DC011696ED91FC91C9 +:102480001797EF2B09F1122F242FEC011A8740E048 +:102490000E94530B082F8823C9F0682FCE010E9499 +:1024A000FD0B009739F3FC011483202F40E060E01E +:1024B000CE010E940312182F882351F0602FCE0105 +:1024C0000E94150C812F05C087ED03C084ED01C06B +:1024D00080E0DF91CF911F910F9108952F923F924D +:1024E0004F925F926F927F928F929F92AF92BF9224 +:1024F000CF92DF92EF92FF920F931F93CF93DF93D0 +:10250000CDB7DEB766970FB6F894DEBF0FBECDBF6E +:102510001B8A38E03C8B3CE33D8B8A3F3FEF9307BF +:1025200009F4ADC0B22E342EA62E7C01DC01169625 +:10253000CD90DC901797CE01439617969C938E937F +:1025400016971A962C938E010F5F1F4F22E130E0F1 +:1025500040E060E0C7010E945811F701D782C682AF +:102560008111A5C069847A844B845C843D813E8B53 +:102570002E80670186E5C80ED11C460110E0D4010B +:102580008D919C91009789F1DC01ED91FC91008483 +:10259000F185E02D0995811128C0F4018081918198 +:1025A000DC01ED91FC910088F189E02D622D099507 +:1025B0008823D9F0F40180819181DC01ED91FC91B7 +:1025C0000484F585E02DA201B3010995811159C05C +:1025D000F40180819181DC01ED91FC910684F78505 +:1025E000E02D6E89099581114CC01F5FB2E08B0E02 +:1025F000911C103121F610E0F60180819181009745 +:1026000089F1DC01ED91FC910084F185E02D0995C3 +:10261000811128C0F60180819181DC01ED91FC914E +:102620000088F189E02D622D09958823A9F1F60132 +:1026300080819181DC01ED91FC910484F585E02D90 +:10264000A201B301099581110DC0F601808191812C +:10265000DC01ED91FC910684F785E02D6E890995EA +:102660008823D1F01F5FB2E0CB0ED11C103121F6D0 +:102670002B2D432D6A2DC7010E94321218C086ED02 +:1026800016C00B2D232D4A2D612FC7010E94F30D7B +:10269000813D09F4AACF0BC00B2D232D4A2D612FAC +:1026A000C7010E94F30D982F977F913DD9F266964E +:1026B0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1026C0000F91FF90EF90DF90CF90BF90AF909F90D1 +:1026D0008F907F906F905F904F903F902F900895D4 +:1026E0008F929F92AF92BF92CF92EF920F931F92D1 +:1026F0001F921F921F921F921F92812C912CA12C2E +:10270000B12CC12CE22E09E020E00E9470100F9045 +:102710000F900F900F900F900F900F91EF90CF9020 +:10272000BF90AF909F908F900895AF92BF92CF923D +:10273000DF92EF92FF920F931F93CF93DF9300D01E +:1027400000D0CDB7DEB77C01690158011C821B8225 +:102750001A8219828E010F5F1F4F9E012D5F3F4F1E +:102760000E94250D811109C049815A816B817C81AC +:1027700085019601C7010E94A90F0F900F900F903D +:102780000F90DF91CF911F910F91FF90EF90DF900D +:10279000CF90BF90AF900895AF92BF92CF92DF924B +:1027A000EF92FF920F931F93CF938C011D990EC050 +:1027B00088EC0E94F30C85FF05C0C8010E94E20767 +:1027C00060E201C060E088EC0E940B0D80919A01EC +:1027D000813039F040F0823079F0833039F5C1E052 +:1027E0000CC083E106C08091E702807F8031F1F068 +:1027F00081E18093E7021AC0C0E08091E702807F08 +:102800008031A9F40E94930ADC01CB0188539F4FC9 +:10281000AF4FBF4F8093E3029093E402A093E50291 +:10282000B093E60280E28093E70201C0C0E0780145 +:1028300086E5E80EF11C6801A6E7CA0ED11C570117 +:10284000F501819191915F01009739F0DC01ED91E3 +:10285000FC910680F781E02D0995AC14BD0481F749 +:102860009091E702903409F43FC050F4903221F186 +:102870009033A1F1913109F084C0F60110820AC0B1 +:10288000913509F458C0903809F46AC0903509F0C0 +:1028900078C039C0D7018D919D917D01009739F0A5 +:1028A000DC01ED91FC910480F581E02D0995EC149B +:1028B000FD0481F782E163C00E94930A0091E30264 +:1028C0001091E4022091E5023091E602DC01CB0197 +:1028D000801B910BA20BB30BB7FD53C061E088EED8 +:1028E0000E940B0D80E44BC088EE0E94F30C80FD2B +:1028F00048C088ED0E94F30C682F686088ED0E9444 +:102900000B0D80E53CC088EC0E94F30C86FF39C0BB +:1029100081E58093E7020E94930ADC01CB01449693 +:10292000A11DB11D8093E3029093E402A093E50200 +:10293000B093E60226C00E94930AC090E302D090B2 +:10294000E402E090E502F090E602DC01CB018C1994 +:102950009D09AE09BF09B7FD14C080E88093E70266 +:102960002C2F40E060E0C8010E946E12882331F0F5 +:10297000823D39F08093E80280EA01C080E98093CB +:10298000E702CF911F910F91FF90EF90DF90CF90D2 +:10299000BF90AF9008958F929F92AF92BF92CF92C7 +:1029A000EF920F93CF93DF93CDB7DEB7C054D10929 +:1029B0000FB6F894DEBF0FBECDBF5F934F939E015D +:1029C0002F5F3F4F3F932F931F9220E42F9320E8D8 +:1029D000822E912C5B0132E2C32EE12C06E021E82D +:1029E00040E0FC016681848195810E9470100F9007 +:1029F0000F900F900F900F900F90C05CDF4F0FB6AD +:102A0000F894DEBF0FBECDBFDF91CF910F91EF9055 +:102A1000CF90BF90AF909F908F9008958F929F928C +:102A2000AF92BF92CF92DF92EF92FF920F938E2CD4 +:102A3000A42EB12C1F921F92DF92CF92FF92EF92A1 +:102A40009F2CC22EE02E09E021E2462FFC01668178 +:102A5000848195810E9470100F900F900F900F90BD +:102A60000F900F900F91FF90EF90DF90CF90BF905D +:102A7000AF909F908F9008958F929F92AF92BF9248 +:102A8000CF92EF920F93A62EB12C1F921F921F92FE +:102A90001F921F921F92812C912CC22EE42E0AE0CD +:102AA00021E240E0FC016681848195810E947010E2 +:102AB0000F900F900F900F900F900F900F91EF903D +:102AC000CF90BF90AF909F908F9008958F929F92DC +:102AD000AF92BF92CF92EF920F93A62EB12C1F927E +:102AE0001F921F921F921F921F92812C912CC12C1A +:102AF000E42E0BE021E240E0FC01668184819581B7 +:102B00000E9470100F900F900F900F900F900F90E9 +:102B10000F91EF90CF90BF90AF909F908F900895BE +:102B2000FC018285089581E0693009F080E0089514 +:102B3000CF93DF93EC018A819B81DC01ED91FC91C5 +:102B40000480F581E02D6A8509958A85813439F400 +:102B5000EA81FB81EA58FF4F8081846080831A8676 +:102B60001B861C861D861E861F86188A80E0DF91C4 +:102B7000CF9108958F929F92AF92BF92CF92EF9292 +:102B80000F93A42EB12CB22A1F921F921F921F9254 +:102B90001F921F92812C912CC12CE62E01E023E282 +:102BA00040E0FC016285828193810E9470100F9049 +:102BB0000F900F900F900F900F900F91EF90CF907C +:102BC000BF90AF909F908F9008958F929F92AF92F9 +:102BD000BF92CF92EF920F93A62EB12C1F921F920D +:102BE0003F932F935F934F934A01C12CE12C00E058 +:102BF00023EA40E0FC016285828193810E9470108B +:102C00000F900F900F900F900F900F900F91EF90EB +:102C1000CF90BF90AF909F908F9008958F929F928A +:102C2000AF92BF92CF92EF920F93A42EB12CB22A03 +:102C30001F921F921F921F921F921F92812C912C04 +:102C4000C12CE62E03E023E240E0FC016285828194 +:102C500093810E9470100F900F900F900F900F9023 +:102C60000F900F91EF90CF90BF90AF909F908F906B +:102C700008952F923F924F925F926F927F928F9220 +:102C80009F92AF92BF92CF92DF92EF92FF920F93FB +:102C90001F93CF93DF93CDB7DEB7E8970FB6F894C5 +:102CA000DEBF0FBECDBFDC011296ED90FC901397F6 +:102CB0001A963C91311104C1122F242E362E3C015C +:102CC000D701ED91FC910190F081E02D60E0C7010A +:102CD00009956C01009709F4F5C0FC01A080B18052 +:102CE000A114B10409F4F0C04301F4E08F0E911C6B +:102CF000DC0111969C928E9214961C93FE013196E3 +:102D00002F018F0128E030E040E060E0D30112960F +:102D10008D919C9113970E945811F6011482811194 +:102D2000D9C009818D81893009F0D0C0D701ED91DA +:102D3000FC910280F381E02D222D41E0632DC7013B +:102D40000995F3018287882309F4C2C09885958389 +:102D5000282F40E060E0828193810E940312182FA7 +:102D6000882389F0D601AD92BC92D701ED91FC91F8 +:102D70000480F581E02DD3011A966C91C701099565 +:102D8000F3011286ABC0202F013208F020E2D601F9 +:102D9000AD92BC9221110BC0940142E0F301628517 +:102DA000828193810E94920C811197C010C030E003 +:102DB000820140E0D3011A966C911A9712968D9178 +:102DC0009C9113970E945811811187C0E5CF1F92E3 +:102DD0001F925F924F921F9288E08F9388E0882E17 +:102DE000912CA12CB12C99E2C92EE12C06E020EA0D +:102DF00040E0F3016285828193810E947010182F58 +:102E00000F900F900F900F900F900F90811166C050 +:102E10008B81D3011B968C931B97720100E028E0F5 +:102E200030E040E01A966C911A9712968D919C9121 +:102E300013970E947F11811150C02B813C8140E08B +:102E4000F3016285828193810E947F11811145C0C7 +:102E5000298130E0CE0181967C0140E0D3011A96B1 +:102E60006C911A9712968D919C9113970E947F11E5 +:102E7000811133C02E8140E0F3016285828193810C +:102E80000E947013811129C001E0D3011B968C911F +:102E90001B97801740F020E0402F68E0C3010E949C +:102EA0000E160F5FF2CF1296ED91FC911397EA5830 +:102EB000FF4F80818460808381E050968C930EC0A8 +:102EC00019ED0CC016ED0AC017ED08C011ED06C0D3 +:102ED00014ED04C0F601B182A082182F812FE8966C +:102EE0000FB6F894DEBF0FBECDBFDF91CF911F911B +:102EF0000F91FF90EF90DF90CF90BF90AF909F9099 +:102F00008F907F906F905F904F903F902F9008959B +:102F1000CF92DF92FF920F931F93CF93DF9300D056 +:102F200000D0CDB7DEB78C01F62E19821A821B8233 +:102F30001C8220E0462F61E10E94BA1520E04F2D4F +:102F400060E1C8010E94BA1520E04F2D64E0C8017D +:102F50000E940E1683E0C82ED12C9E012F5F3F4F9A +:102F600044E050E06F2DC8010E94E5158823F1F080 +:102F700020E04F2D64E1C8010E94BA1520E04F2DDA +:102F800060E1C8010E94BA1564E170E080E090E061 +:102F90000E94950A0F900F900F900F90DF91CF91A4 +:102FA0001F910F91FF90DF90CF90089589819A81B2 +:102FB000AB81BC819D7F83309140A041B105C1F2BE +:102FC00064E670E080E090E00E94950A81E0C81A13 +:102FD000D10819F6CDCFFC0189E691E09183808379 +:102FE0007383628312861386148615861686178667 +:102FF000108A148288E085839CE3968391E097830E +:10300000808784E0818761157105B1F0DB01AA5AE0 +:10301000BF4F80E090E02D913D91232B49F48B969A +:10302000880F991FDB01A80FB91FED93FC9308953A +:1030300001968031910579F70895EF92FF920F93F1 +:103040001F93CF938C01C62F7A01FA018081918161 +:10305000A281B3818130F3E09F07F1E0AF07B105B2 +:10306000D1F060F48115E1E09E07AE07B10571F182 +:1030700081309140A140B10571F064C0833021E0FE +:10308000920720E1A207B105E1F183309340A0410E +:10309000B105B9F157C08091E902811153C020E018 +:1030A0004C2F61E1C8010E94BA1520E04C2F60E16D +:1030B000C8010E94BA1520E04C2F64E0C8010E94AC +:1030C0000E1681E08093E90281EB3DC020E0462F9F +:1030D00061E1C8010E94BA1520E04C2F60E1C801EF +:1030E0000E94BA151092E902F80162856770C770F4 +:1030F000660F660F660F6C2B828193810E94AF0C66 +:1031000021C020E04C2F64E1C8010E94BA1520E0E4 +:103110004C2F60E1C8010E94BA1564E170E080E0C4 +:1031200090E00E94950AF8016285F70121812695B9 +:10313000217067704C2FF801828193810E946E127A +:103140001092E90280E0CF911F910F91FF90EF90D4 +:103150000895EF92FF920F931F93CF93DF93CDB714 +:10316000DEB72E970FB6F894DEBF0FBECDBF7C0141 +:1031700081E090E09E878D878E010F5F1F4F9E013B +:10318000235F3F4F41E0F7016285828193810E9476 +:103190009513811151C002E011E089818023D1F0A3 +:1031A00019861A861B861C869E01275F3F4F44E0C6 +:1031B00050E0612FC7010E94E51581110BC0AE01DF +:1031C000475F5F4F612FC7010E941D18813B99F136 +:1031D000811132C0000F1F5F1830F9F611E0F701BE +:1031E0008385811740F119861A861B861C869E01ED +:1031F000275F3F4F44E050E0612FC7010E94E51573 +:10320000811117C089859A858770917081309140AE +:1032100081F48B859C8581609C878B87AE01475F9D +:103220005F4F612FC7010E941D18813B21F0811162 +:1032300003C01F5FD4CF80E02E960FB6F894DEBF98 +:103240000FBECDBFDF91CF911F910F91FF90EF90F7 +:1032500008950F931F93CF93DF93FC0120892111D1 +:1032600002C080E020C0EC010E94930A0C851D85FD +:103270002E853F85DC01CB01801B910BA20BB30B8C +:10328000B7FDEFCFCE010E94A918182F0E94930A14 +:10329000DC01CB018C599F4FAF4FBF4F8C879D876F +:1032A000AE87BF87812FDF91CF911F910F91089536 +:1032B000CF93DF93FC01EA0180819181892B19F57D +:1032C00080E027C028813981232BD1F3DB012D91A8 +:1032D0003C91D9019C91A381B0E0A81BB109208148 +:1032E0003181A20FB31F9C93828181508283888198 +:1032F0009981019799838883DB018D919C91119726 +:1033000001968D939C9382818111DCCF838182838E +:1033100081E0DF91CF910895CF92DF92EF92FF92FB +:103320000F931F93CF93DF936C01EB017B01E40EAE +:10333000F51E00E010E0CE15DF0561F06991D601C1 +:10334000ED91FC910190F081E02DC6010995080FE7 +:10335000191FF1CFC801DF91CF911F910F91FF90FD +:10336000EF90DF90CF9008958091F50208959FB778 +:10337000F8941092EC029FBF90917803943009F07A +:1033800057C09091E9009F703091EC00232F21707D +:1033900030FD20E8922B24E02093E9002091EB00FF +:1033A00020FF43C02091EE0027FF3FC02091EA029A +:1033B000222321F02091E80025FF37C01092EA0275 +:1033C00026E03091E80035FD15C0309178033430A7 +:1033D00061F53091EB0035FD28C0215021F481E0EA +:1033E0008093EA0222C0EFE9FFE03197F1F700C0D5 +:1033F0000000E7CF8093F1008091E80085FD0AC0CE +:103400008091E80080FFFCCF8091E8008E77809368 +:10341000E80006C08FB7F89421E02093EC028FBF3C +:103420009F709093E90080E008959F709093E90069 +:103430008FEF0895CF93DF9300D01F92CDB7DEB703 +:103440009C0180917803843019F593E099833B8344 +:103450002A839093E9008FEF9091E800815095FDC9 +:1034600006C095ED9A95F1F700008111F5CF809196 +:10347000E80085FF0DC040E050E063E070E0CE0161 +:1034800001960E945E1C8091E8008E778093E80090 +:103490000F900F900F90DF91CF910895CF93DF930E +:1034A00000D01F92CDB7DEB720917803243021F5EC +:1034B00022E029839B838A8383E08093E9008FEF56 +:1034C0009091E800815095FD06C095ED9A95F1F731 +:1034D00000008111F5CF8091E80085FF0DC040E02C +:1034E00050E063E070E0CE0101960E945E1C809186 +:1034F000E8008E778093E8000F900F900F90DF9197 +:10350000CF910895209178032430F1F422E02093A4 +:10351000E9002FEF3091E800215035FD06C035ED70 +:103520003A95F1F700002111F5CF2091E80025FF31 +:103530000BC040E050E065E070E00E945E1C8091AE +:10354000E8008E778093E8000895CF93DF93209171 +:103550007803243039F521E02093E9002FEF3091F2 +:10356000E800215035FD06C035ED3A95F1F7000031 +:103570002111F5CF2091E80025FF14C0EC0140E0B7 +:1035800050E068E070E00E945E1C8091E8008E7759 +:103590008093E80088E0FE01ADEEB2E001900D926C +:1035A0008A95E1F7DF91CF9108958AE692E00E9433 +:1035B000AF0280917703811109C00E94F31D0E9420 +:1035C000501E8091E20084608093E200089586E6B8 +:1035D00092E00E94AF0210927703089582E692E093 +:1035E0000C94AF022091EB022F5F822F62E30E94C6 +:1035F000EC30992319F02093EB0208951092EB021E +:103600008091EC02882371F180917803843041F538 +:103610008091E9008F702091EC00922F917020FD35 +:1036200090E8892B94E09093E9009091EB0090FF53 +:1036300014C09091EE0097FF10C09091E80095FFA4 +:1036400003C01092F100F9CF9091E80090FF05C0FF +:103650009091E8009E779093E8008F708093E90046 +:103660001092EC02089542E061EC81E00E946D1D31 +:1036700042E061EC82E00E946D1D42E061EC83E07B +:103680000E946D1D42E261EC84E00C946D1D8091FE +:103690007A03833009F453C030F4813071F0823002 +:1036A00009F48CC008958A3009F478C08B3009F48D +:1036B0005EC0893009F09AC020C080917903813AB8 +:1036C00009F094C08091E800877F8093E8008091A2 +:1036D0007D0390917E03892B21F468E08DEE92E0CA +:1036E00003C060E080E090E070E00E94A91C80913F +:1036F000E8008B778093E800089580917903813208 +:1037000009F074C080917D0390917E03892B09F0AC +:103710006DC08091E800877F8093E8008091E80089 +:1037200082FD05C0809178038111F8CF5FC0809140 +:10373000F1008093F5028091E8008B7753C080916F +:103740007903813A09F052C080917D0390917E0304 +:10375000892B09F04BC08091E800877F8093E800B7 +:103760008091E80080FFFCCF80910A0136C08091F3 +:1037700079038132D9F580917D0390917E03892B65 +:10378000A9F58091E800877F8093E8000E94A21D40 +:1037900080917B0380930A010C946C2680917903BD +:1037A000813221F58091E800877F8093E8000E94B4 +:1037B000A21D80917C038093F60208958091790385 +:1037C000813AA1F48091E800877F8093E80080919E +:1037D000E80080FFFCCF8091F6028093F100809199 +:1037E000E8008E778093E8000C94A21D0895089558 +:1037F0008EE592E00E94AF020C94F71B0C94772C9C +:103800008AE592E00E94AF020C94FE1B292F332719 +:1038100023303105C9F064F42130310581F02230C4 +:10382000310509F043C084E790E020EC32E042C06B +:1038300021323105F1F02232310541F137C082E108 +:1038400090E024E333E036C099278130910541F0C0 +:103850008230910541F0892B49F5ECEBF2E005C08F +:10386000ECEAF2E002C0EEE6F2E0849190E09F0123 +:1038700021C06430D8F4E62FF0E0EE0FFF1FE957C7 +:10388000FE4F2081318189E090E014C0643070F4F3 +:1038900070E0FB01EE0FFF1FE158FE4F20813181E8 +:1038A000FB01E558FE4F808190E004C080E090E08D +:1038B00020E030E0FA01318320830895CF92DF9237 +:1038C000EF92FF920F931F93CF93DF93EC018B0145 +:1038D0006A010E94C11D811133C0C114D10439F0A5 +:1038E000F60180819181081B190BC80FD91FE12CAB +:1038F000F12C0115110519F18091E80085FD16C024 +:103900008091E8008E778093E800C114D10449F0DB +:10391000F60180819181E80EF91EF182E08285E056 +:103920000FC00E94C11D882321F30AC08991809392 +:10393000F10001501109FFEFEF1AFF0ADACF80E022 +:10394000DF91CF911F910F91FF90EF90DF90CF907B +:10395000089520917F03309180032617370748F0A0 +:103960006115710539F42091E8002E772093E80065 +:1039700001C0B90140E061157105A9F120917803FA +:10398000222309F443C0253009F442C02091E80005 +:1039900023FD40C02091E80022FD32C02091E800C4 +:1039A00020FFE9CF4091F3002091F20030E0342B6A +:1039B000FC01CF016115710559F02830310540F443 +:1039C00081918093F100615071092F5F3F4FF1CFDA +:1039D00041E02830310509F040E02091E8002E77E1 +:1039E0002093E800C8CF4111C9CF0AC08091780365 +:1039F000882361F0853061F08091E80083FD0AC082 +:103A00008091E80082FFF2CF80E0089582E008957F +:103A100083E0089581E0089520917F033091800331 +:103A20002617370748F06115710539F42091E80031 +:103A30002E772093E80001C0B901FC0120E0611558 +:103A4000710591F180917803882309F440C0853095 +:103A500009F43FC08091E80083FD3DC08091E800FB +:103A600082FD2FC08091E80080FFE9CF2091F30014 +:103A70008091F20090E0922B6115710559F0883029 +:103A8000910540F424912093F10031966150710921 +:103A90000196F2CF21E0089709F020E08091E8003C +:103AA0008E778093E800CBCF2111CCCF0AC08091D4 +:103AB0007803882361F0853061F08091E80083FD10 +:103AC0000AC08091E80082FFF2CF80E0089582E092 +:103AD000089583E0089581E00895982F973058F570 +:103AE0009093E900981739F07091EC002091ED0067 +:103AF0005091F00003C0242F762F50E021FF19C011 +:103B00003091EB003E7F3093EB003091ED003D7F34 +:103B10003093ED003091EB0031603093EB00709307 +:103B2000EC002093ED005093F0002091EE0027FF71 +:103B300007C09F5FD3CF8F708093E90081E0089525 +:103B400080E008958091790387FF11C08091E8009B +:103B500082FD05C0809178038111F8CF11C080915A +:103B6000E8008B770BC080917803882349F080911F +:103B7000E80080FFF8CF8091E8008E778093E8001E +:103B800008952091E4003091E50095E64091EC0025 +:103B9000842F817040FF22C08091E80080FD1CC00E +:103BA00080917803882391F0853091F08091EB002B +:103BB00085FD10C04091E4005091E5004217530785 +:103BC00029F39A01915011F784E0089582E0089555 +:103BD00083E0089581E0089580E008954091E80031 +:103BE00042FFDECF08950E94611E0E94691EE0EE32 +:103BF000F0E0808181608083E8EDF0E080818F7764 +:103C0000808319BCA7EDB0E08C918E7F8C9380816E +:103C10008F7E80831092770308950F931F93CF9325 +:103C2000DF930E94611E0E94691EC8EDD0E088816A +:103C30008F77888388818068888388818F7D888357 +:103C400019BC1092780310927403109276031092AC +:103C5000750300EE10E0F80180818B7F80838881FE +:103C60008160888342E060E080E00E946D1DE1EEAB +:103C7000F0E080818E7F8083E2EEF0E080818160E1 +:103C80008083808188608083F80180818E7F80833B +:103C9000888180618883DF91CF911F910F91089572 +:103CA000E8EDF0E080818F7E8083E7EDF0E08081B9 +:103CB0008160808384E082BF81E0809377030C94ED +:103CC0000D1EE8EDF0E080818E7F80831092E2008F +:103CD00008951092DA001092E10008951F920F9259 +:103CE0000FB60F9211242F933F934F935F936F93CF +:103CF0007F938F939F93AF93BF93EF93FF938091A5 +:103D0000E10082FF0BC08091E20082FF07C080913A +:103D1000E1008B7F8093E1000E94F21A8091DA002B +:103D200080FF1FC08091D80080FF1BC08091DA0007 +:103D30008E7F8093DA008091D90080FF0DC080E1F2 +:103D400089BD82E189BD09B400FEFDCF81E0809389 +:103D500078030E94D51A05C019BC109278030E94FE +:103D6000E71A8091E10080FF19C08091E20080FF96 +:103D700015C08091E2008E7F8093E2008091E20086 +:103D800080618093E2008091D80080628093D800A7 +:103D900019BC85E0809378030E94F81B8091E100B4 +:103DA00084FF30C08091E20084FF2CC080E189BD97 +:103DB00082E189BD09B400FEFDCF8091D8008F7DDE +:103DC0008093D8008091E1008F7E8093E100809104 +:103DD000E2008F7E8093E2008091E2008160809318 +:103DE000E20080917403882311F084E007C0809181 +:103DF000E30087FD02C081E001C083E08093780387 +:103E00000E94001C8091E10083FF29C08091E200A4 +:103E100083FF25C08091E100877F8093E10082E0ED +:103E200080937803109274038091E1008E7F8093D9 +:103E3000E1008091E2008E7F8093E2008091E200B9 +:103E400080618093E20042E060E080E00E946D1DAE +:103E50008091F00088608093F0000E94EE1AFF913C +:103E6000EF91BF91AF919F918F917F916F915F91F2 +:103E70004F913F912F910F900FBE0F901F9018956B +:103E80001F920F920FB60F9211242F933F934F93CF +:103E90005F936F937F938F939F93AF93BF93CF93D2 +:103EA000DF93EF93FF93C091E900CF708091EC0016 +:103EB000D82FD17080FDD0E81092E9008091F000F9 +:103EC000877F8093F00078940E94841F1092E9000D +:103ED0008091F00088608093F000CD2BCF70C0936C +:103EE000E900FF91EF91DF91CF91BF91AF919F9149 +:103EF0008F917F916F915F914F913F912F910F9093 +:103F00000FBE0F901F9018951F93CF93DF93CDB7DF +:103F1000DEB7AA970FB6F894DEBF0FBECDBFE9E7B4 +:103F2000F3E088E08E0F9091F10091938E13FBCF18 +:103F30000E94471B8091E80083FF1FC18091790395 +:103F400090917A03492F50E04A30510508F015C18D +:103F5000FA01EA5AFF4F0C940C31803881F0823814 +:103F600009F00BC180917D038F708093E9008091EF +:103F7000EB0085FB882780F91092E90006C080914C +:103F8000750390917603911182609091E800977F7C +:103F90009093E8008093F1001092F100C8C0282FA0 +:103FA0002D7F09F0EAC0882319F0823061F0E5C066 +:103FB00080917B03813009F0E0C0933009F080E00C +:103FC000809376032BC080917B03811127C0809161 +:103FD0007D038F7009F4D1C08093E9002091EB003C +:103FE00020FF1CC0933021F48091EB00806214C04C +:103FF0009091EB0090619093EB0021E030E0A901FB +:1040000002C0440F551F8A95E2F74093EA001092D0 +:10401000EA008091EB0088608093EB001092E90049 +:104020008091E800877F86C08111A7C010917B0333 +:104030001F778091E3008078812B8093E30080914B +:10404000E800877F8093E8000E94A21D8091E8002D +:1040500080FFFCCF8091E30080688093E300111122 +:1040600002C082E001C083E08093780386C080585C +:10407000823008F082C080917B0390917C038C3D5C +:1040800053E0950779F583E08A838AE289834FB705 +:10409000F894DE01139620E03EE051E2E32FF0E0D9 +:1040A00050935700E49120FF03C0E295EF703F5F0B +:1040B000EF708E2F90E0EA3010F0C79601C0C096E6 +:1040C0008D939D932F5F243149F74FBF8091E80076 +:1040D000877F8093E8006AE270E0CE0101960E943B +:1040E000A91C14C0AE014F5F5F4F60917D030E9419 +:1040F000061CBC01892B09F440C09091E800977F11 +:104100009093E80089819A810E940C1D8091E800BB +:104110008B778093E80031C0803879F58091E80092 +:10412000877F8093E800809174038093F1008091F1 +:10413000E8008E778093E8000E94A21D1EC08111C6 +:104140001CC090917B039230C0F48091E800877F7F +:104150008093E800909374030E94A21D80917403E1 +:10416000811106C08091E30087FD02C081E001C09B +:1041700084E0809378030E94331B8091E80083FFE2 +:104180000AC08091E800877F8093E8008091EB006F +:1041900080628093EB00AA960FB6F894DEBF0FBE44 +:1041A000CDBFDF91CF911F9108959093FC02809332 +:1041B000FB020895E091FB02F091FC02309721F0A0 +:1041C0000190F081E02D099480E00895EF92FF9234 +:1041D0000F931F93CF93DF93E091FB02F091FC02CA +:1041E0003097B1F18C010280F381E02D0995809127 +:1041F000690382FF2DC080FF04C083E394E00E9426 +:10420000AF02E80118E08DE2E82E84E0F82E8091FC +:10421000690380FF0BC088811F928F93FF92EF92FA +:104220000E9448030F900F900F900F90115021960D +:104230001111EDCF8091690380FF0AC08BE294E0F9 +:10424000DF91CF911F910F91FF90EF900C94AF02EF +:10425000DF91CF911F910F91FF90EF900895E09122 +:10426000FB02F091FC02309721F00480F581E02DF3 +:10427000099408952091F9023091FA028217930768 +:1042800071F09093FA028093F902E091FB02F091B1 +:10429000FC02309721F00680F781E02D0994089503 +:1042A0002091F7023091F8028217930771F09093F2 +:1042B000F8028093F702E091FB02F091FC02309744 +:1042C00021F00084F185E02D099408950E94E30A0D +:1042D0000C945E084F925F927F928F929F92AF9262 +:1042E000BF92CF92DF92EF92FF920F931F93CF93E3 +:1042F000DF9300D000D01F92CDB7DEB70E94FA0541 +:104300009EEFC92E92E0D92E00E010E0AA24A394DB +:10431000B12C702E802F0E94ED064C01F6014190C9 +:1043200051906F014826592641145104B1F40F5F92 +:104330001F4F0031110569F78FEF89838A831B8234 +:104340000E94EC0A8160782F9D838C8349815A8179 +:104350006B818D810E943D2241C08091690381FD66 +:104360000E941D0720E030E07501022E02C0EE0C15 +:10437000FF1C0A94E2F7C70184219521892B41F1A2 +:1043800029837A828E209F2091E0892809F490E089 +:104390009B830E94EC0A8160782F9D838C834981E6 +:1043A0005A816B818D810E943D2249815A816B81A6 +:1043B0007C818D810E94642C000F111FF801E25056 +:1043C000FD4F80819181E826F926F182E08206C0C6 +:1043D0002F5F3F4F2031310539F6A9CF0E94632C62 +:1043E0000E94DC2E1091FD020E94DA20181771F154 +:1043F0000E94DA208093FD029091690392FF0EC023 +:1044000090FF0CC01F928F9385E494E09F938F934D +:104410000E9448030F900F900F900F908091FD0223 +:104420000F900F900F900F900F90DF91CF911F91F1 +:104430000F91FF90EF90DF90CF90BF90AF909F9043 +:104440008F907F905F904F900C94752C0F900F90F1 +:104450000F900F900F90DF91CF911F910F91FF90D0 +:10446000EF90DF90CF90BF90AF909F908F907F9014 +:104470005F904F9008950C945707CF93DF93CDB77B +:10448000DEB72B970FB6F894DEBF0FBECDBF942FCB +:104490004F83252F588769877A878B874A855B8565 +:1044A000452B21F02F3F09F59F3FF9F4DE011196CE +:1044B00086E0FD0111928A95E9F785E0FE013796C5 +:1044C00001900D928A95E1F749815A816B817C8137 +:1044D0008D819E810E9406292B960FB6F894DEBF2F +:1044E0000FBECDBFDF91CF9108954F81588569856B +:1044F0007A858B850E94642CD9CF882309F49BC0D0 +:104500009CEF980F913A18F40E948F2B0DC090E207 +:10451000980F983058F4877091E001C0990F8A95F0 +:10452000EAF7892F0E94CE2B0C94082C9BE5980F5C +:10453000933070F4853A29F0863A31F083E890E0C0 +:1045400005C081E890E002C082E890E00C943A2136 +:1045500098E5980F953108F06EC0883A61F1893A74 +:1045600069F18A3A71F18B3A79F18C3A81F18D3A9D +:1045700089F18E3A91F18F3A99F1813BA1F1803B1B +:10458000A9F1823BB1F1833BB9F1843BC1F1853B99 +:10459000C9F1863BD1F1873BD9F1883BE1F1893BF9 +:1045A000E9F18A3BF1F18B3BF9F18C3B09F43FC017 +:1045B00080E090E03EC082EE90E03BC089EE90E06B +:1045C00038C08AEE90E035C085EB90E032C086EBD3 +:1045D00090E02FC083EB90E02CC084EB90E029C0EA +:1045E00087EB90E026C08CEC90E023C08DEC90E04F +:1045F00020C083E891E01DC08AE891E01AC082E9FA +:1046000091E017C084E991E014C081E292E011C00A +:1046100083E292E00EC084E292E00BC085E292E079 +:1046200008C086E292E005C087E292E002C08AE21A +:1046300092E00C9450210895882329F19CEF980F63 +:10464000913A18F40E94AC2B0DC090E2980F98306C +:1046500058F4877091E001C0990F8A95EAF7892F85 +:104660000E94D42B0C94082C9BE5980F933020F4D7 +:1046700080E090E00C943A21885A853120F480E063 +:1046800090E00C9450210895882321F00E94CE2BB5 +:104690000C94082C0895882321F00E94D42B0C94AC +:1046A000082C0895CF92DF92EF92FF920F931F9301 +:1046B000CF93DF9300D000D000D0CDB7DEB725E098 +:1046C000FC01DE01119601900D922A95E1F7FC01A3 +:1046D00040813181F280258122952F706381748120 +:1046E000672B09F4D8C23F3F19F44F3F09F4D3C2F6 +:1046F0006C0149833A8389819A812E830E944E2BD3 +:10470000182F092F0E944D2B0E945F2AE02FE2955F +:10471000EF70F0E0E05AFF4F2E810C940C31802FA7 +:10472000807F902F9F70092F882311F00295007FC2 +:10473000FF2049F0002309F45FC2802F0E94E12B83 +:104740000E94082C59C2812F0E941C23002309F4C7 +:10475000A2C2802F0E94E72B26960FB6F894DEBFE8 +:104760000FBECDBFDF91CF911F910F91FF90EF90C2 +:10477000DF90CF900C94082C802F807F902F9F701B +:10478000092F803211F00295007F112319F01130AA +:1047900001F129C0FF20A9F0802F222349F1213007 +:1047A00039F526960FB6F894DEBF0FBECDBFDF9168 +:1047B000CF911F910F91FF90EF90DF90CF900C94CD +:1047C000F12B222319F0213009F465C20E94F42B49 +:1047D0002CC0FF20E9F0263008F05DC20E94CB2BF0 +:1047E000802329F022C0FF20F1F0211115C0802F75 +:1047F00026960FB6F894DEBF0FBECDBFDF91CF91E6 +:104800001F910F91FF90EF90DF90CF900C94442375 +:10481000253008F040C209C0F601858180FFECC157 +:104820008F708583E4CF2111FBC1802F69C1202FB8 +:1048300026952695237030E02115310521F0213091 +:104840003105C9F028C2FF2021F0812F902F9370ED +:1048500002C080E090E026960FB6F894DEBF0FBE4F +:10486000CDBFDF91CF911F910F91FF90EF90DF901F +:10487000CF900C943A21FF2021F0812F902F93703C +:1048800002C080E090E026960FB6F894DEBF0FBE1F +:10489000CDBFDF91CF911F910F91FF90EF90DF90EF +:1048A000CF900C945021812FFF2019F00E94622D8F +:1048B00002C00E94CA2D26960FB6F894DEBF0FBE26 +:1048C000CDBFDF91CF911F910F91FF90EF90DF90BF +:1048D000CF900C944F2E802F837009F078C0F11088 +:1048E000DAC1812F829586958770880F880F912F66 +:1048F0009F70C92ED12CE12CF12C082E04C0CC0CB9 +:10490000DD1CEE1CFF1C0A94D2F714FF12C04FE00E +:1049100050E060E070E004C0440F551F661F771F31 +:104920008A95D2F7CB01BA016095709580959095E4 +:1049300003C060E070E0CB01202F26952695237000 +:10494000422F50E042305105D1F04330510559F12A +:104950006C297D298E299F294130510541F12696E8 +:104960000FB6F894DEBF0FBECDBFDF91CF911F9180 +:104970000F91FF90EF90DF90CF900C94722A6C29EA +:104980007D298E299F2926960FB6F894DEBF0FBE8B +:10499000CDBFDF91CF911F910F91FF90EF90DF90EE +:1049A000CF900C94842A0E94722AC701B6012696E1 +:1049B0000FB6F894DEBF0FBECDBFDF91CF911F9130 +:1049C0000F91FF90EF90DF90CF900C94602AFF2022 +:1049D00019F0802F817001C08695882309F45BC18E +:1049E000812F829586958770880F880F912F9F70F1 +:1049F000C92ED12CE12CF12C082E04C0CC0CDD1CCE +:104A0000EE1CFF1C0A94D2F714FF12C04FE050E0D6 +:104A100060E070E004C0440F551F661F771F8A9541 +:104A2000D2F7CB01BA01609570958095909503C03F +:104A300060E070E0CB01202F269526952370422F51 +:104A400050E042305105D1F04330510559F16C2905 +:104A50007D298E299F294130510541F126960FB6B7 +:104A6000F894DEBF0FBECDBFDF91CF911F910F91A4 +:104A7000FF90EF90DF90CF900C94292B6C297D292B +:104A80008E299F2926960FB6F894DEBF0FBECDBFA4 +:104A9000DF91CF911F910F91FF90EF90DF90CF901A +:104AA0000C943B2B0E94292BC701B60126960FB60A +:104AB000F894DEBF0FBECDBFDF91CF911F910F9154 +:104AC000FF90EF90DF90CF900C94172B103F41F1A7 +:104AD00018F4103E48F48BC0123F09F450C0D8F1CE +:104AE000133F09F460C083C01F70802F8F71FF20B7 +:104AF00021F00E94B02A812F7BCE0E94D12A812FE3 +:104B000026960FB6F894DEBF0FBECDBFDF91CF91D2 +:104B10001F910F91FF90EF90DF90CF900C944B235B +:104B2000FF20A9F0253008F0B6C0802F8F7126969F +:104B30000FB6F894DEBF0FBECDBFDF91CF911F91AE +:104B40000F91FF90EF90DF90CF900C94F62A2630D3 +:104B500008F0A1C0EACFFF20A1F0802F8F71269628 +:104B60000FB6F894DEBF0FBECDBFDF91CF911F917E +:104B70000F91FF90EF90DF90CF900C94B02AFF2020 +:104B800061F3802F8F7126960FB6F894DEBF0FBEAB +:104B9000CDBFDF91CF911F910F91FF90EF90DF90EC +:104BA000CF900C94D12AFF2091F0802F8F71269600 +:104BB0000FB6F894DEBF0FBECDBFDF91CF911F912E +:104BC0000F91FF90EF90DF90CF900C949B2A269648 +:104BD0000FB6F894DEBF0FBECDBFDF91CF911F910E +:104BE0000F91FF90EF90DF90CF900C94962AFF20CA +:104BF000A1F0222309F4B1CF812F26960FB6F894A5 +:104C0000DEBF0FBECDBFDF91CF911F910F91FF90FF +:104C1000EF90DF90CF900C947D22222309F4B1CF46 +:104C2000812F26960FB6F894DEBF0FBECDBFDF9161 +:104C3000CF911F910F91FF90EF90DF90CF900C9448 +:104C40001C23402F4F70612FC6010E94DC2C26963A +:104C50000FB6F894DEBF0FBECDBFDF91CF911F918D +:104C60000F91FF90EF90DF90CF900C94AA29402FE6 +:104C70004F70612FC60126960FB6F894DEBF0FBEA7 +:104C8000CDBFDF91CF911F910F91FF90EF90DF90FB +:104C9000CF900C94DF2C26960FB6F894DEBF0FBE93 +:104CA000CDBFDF91CF911F910F91FF90EF90DF90DB +:104CB000CF9008950E94EE2B0E94BD2B0E94082CDD +:104CC0000E94812F0E944F2E80E090E00E943A21A6 +:104CD00080E090E00C9450210E94DE2B0C945A2628 +:104CE0000E944E2B292F22952F7030E02C30310559 +:104CF0004CF42A3031056CF4225031092230310550 +:104D000088F407C02C30310549F02F30310531F0DF +:104D100009C0803E48F0803F29F406C093FB8827F5 +:104D200080F9089580E0089581E00895CF93DF939E +:104D300000D000D01F92CDB7DEB70F900F900F902C +:104D40000F900F90DF91CF910895CF93DF9300D014 +:104D500000D000D0CDB7DEB726960FB6F894DEBFF0 +:104D60000FBECDBFDF91CF9108951F93CF93DF93F7 +:104D7000C0911E0316E080911F03C81799F0D0E080 +:104D80001C9FF0011D9FF00D1124E05EFC4F40813F +:104D9000518162817381848195810E94A52621962B +:104DA000C770E9CFDF91CF911F91089540915003D3 +:104DB00050915103609152037091530380915403B9 +:104DC000909155030C94A5268091550382958F7080 +:104DD00009F054C080915203882309F44FC0809198 +:104DE0001E03A0911F0360915003709151034091E5 +:104DF000530350915403B6E08A1709F43FC090E082 +:104E000041155105C1F17F3F11F46F3FA1F1B89FEA +:104E1000F001B99FF00D1124E05EFC4F2181721367 +:104E20002AC02081621327C02281211124C023813E +:104E300034812417350710F421503109241B350B18 +:104E4000283C3105C0F4209155032F702061209338 +:104E5000550326E0289FF001299FF00D1124EB5DFA +:104E6000FC4F80818F708061808380E593E00E9499 +:104E700052230C94B52601968770BECF0895CF9229 +:104E8000DF92EF92FF920F931F93CF93DF93CDB7F3 +:104E9000DEB762970FB6F894DEBF0FBECDBF8C01B0 +:104EA00085E0F801DE011D9601900D928A95E1F7EB +:104EB000D8014C9111965C91119712966C911297B2 +:104EC0001396CD90DC90149730915003709151035C +:104ED0008091530390915403009709F46BC17F3F75 +:104EE00019F43F3F09F466C1E0905203EE2009F443 +:104EF000C0C020915503C816D90628F0F601E81B5A +:104F0000F90BCF0104C0809590958C0D9D1DFF2459 +:104F1000F394883C910578F0F12C207F09F0C6C00D +:104F20007C2DD98AC88A89890E94962680E593E0DB +:104F30000E945223B1C0822F807F09F046C07513B2 +:104F400014C0341312C0611110C02F70206120935F +:104F500055030E94D62680E593E00E94522380915B +:104F60005503D80115968C932EC0CD2819F15F3FBB +:104F700011F44F3FF9F0F62E61111CC080911E0311 +:104F800020911F0336E0821709F45AC090E0389F41 +:104F9000F001399FF00D1124E05EFC4F7181571331 +:104FA00006C07081471303C07281711103C001965E +:104FB0008770E9CFF62E662309F418C18091550356 +:104FC000816080935503F12C11C1751308C034130F +:104FD00006C0611104C080915503D801C3C04D873C +:104FE0005E878D859E856A8B0E9470266A898823DC +:104FF000E1F16623D1F120915503822F82958F70C4 +:1050000090E0029774F0809150039091510398873B +:105010008F831986DB86CA862C87CE0107960E946D +:10502000522386E0F801A0E5B3E001900D928A9545 +:10503000E1F70E94E4260E94D626FF24F394D6C00E +:105040004D875E878D859E850E944E2B292F229548 +:105050002F7030E0223031050CF0BCC09F7009F099 +:10506000B6C0805E883008F4C1C0C8010E945223D7 +:10507000E4CFC816D90608F453C0F601E81BF90BB3 +:10508000CF01883C910508F450C0F12C7C2DD98AC1 +:10509000C88A89890E949626E0E5F3E086E0DF0170 +:1050A0001D928A95E9F70E94D626A0C0751314C0F8 +:1050B000341312C0611110C080915503F80185832B +:1050C000C8010E94522386E0E0E5F3E0DF011D9273 +:1050D0008A95E9F7FE2C8AC04D875E878D859E856F +:1050E0006A8B0E9470266A89882309F4BECF6623E2 +:1050F00009F4BBCF20915503822F82958F7090E0E9 +:1051000002970CF48ECF80915003909151039A83B3 +:1051100089831B82DD82CC822E83CE0101967FCFD4 +:10512000809590958C0D9D1DACCFF62E662309F4CD +:105130009CCF75132EC034132CC02091550320FD35 +:105140001FC0822F82958F70D9F0D80115962C93AD +:1051500015978F3049F08F5F982F9295907F822F0F +:105160008F70892B15968C93C8010E94522386E07C +:10517000F801A0E5B3E001900D928A95E1F793CF95 +:1051800086E0F801A0E5B3E001900D928A95E1F781 +:105190002DC04D875E878D859E850E94702681116A +:1051A00040CF80915503816080935503C8010E94D0 +:1051B00052231CC0662309F458CF4D875E878D8526 +:1051C0009E850E947026882309F44FCF2ACF811133 +:1051D00048CF0CC0243031050CF047CF9F7009F444 +:1051E00040CFF8019581907F09F03BCF8F2D6296DB +:1051F0000FB6F894DEBF0FBECDBFDF91CF911F91E8 +:105200000F91FF90EF90DF90CF9008951F93CF9371 +:10521000DF93CDB7DEB72C970FB6F894DEBF0FBE85 +:10522000CDBF4F83588769877A878B879C87CE014C +:1052300007960E943F27882369F08F8198852A85E9 +:105240003B85232BF1F19F3F09F063C08F3F09F0AD +:1052500060C037C086E0FE013796DE0111960190EE +:105260000D928A95E1F76F817885EA85FB85309705 +:1052700041F17F3F11F46F3F21F120911F0330E096 +:10528000C90101968770992740911E0350E0841749 +:10529000950709F447C069837A83FD83EC8396E020 +:1052A000929FD001939FB00D1124A05EBC4FFE01D0 +:1052B000319601900D929A95E1F780931F030E9419 +:1052C000B52616E080911E0390911F038917C1F146 +:1052D000189FC0011124805E9C4F0E943F278823A5 +:1052E00079F1E0911E031E9FF0011124E05EFC4F56 +:1052F0004081518162817381848195810E94A526BC +:1053000080911E0390E001968770992780931E0379 +:10531000D9CF4F81588569857A858B859C850E9478 +:10532000A526CFCF0E946C2610921F0310921E0359 +:10533000E0E5F3E086E0DF011D928A95E9F7C1CF51 +:105340002C960FB6F894DEBF0FBECDBFDF91CF9184 +:105350001F910895DF92EF92FF920F931F93CF93C7 +:10536000DF93FC01892B09F48AC0E12CF12CDD24A8 +:10537000D394EF0121968491853709F461C058F4E4 +:10538000843708F04EC0843008F06AC08130D1F014 +:10539000823071F174C0883709F45DC050F48637EB +:1053A00009F455C0873709F06AC08E2D0E94DB2BA7 +:1053B00054C09CE7980F903708F061C08F770E9427 +:1053C0001C2350C08F010E5F1F4FFE01849190E29D +:1053D000980F983050F48770FD2D01C0FF0F8A950B +:1053E000EAF78F2F0E94E12B14C00E947D2213C088 +:1053F0008F010E5F1F4FFE01C49180E28C0F883039 +:1054000060F4C7708D2D01C0880FCA95EAF70E941D +:10541000E72B0E94082CE80125C08C2F0E941C233A +:10542000FACF9F012E5F3F4FFE01C491CC2369F05C +:105430008FE99FE00197F1F700C00000C150F6CF5F +:105440009F012E5F3F4FFE01F490E9010BC00E94C7 +:10545000CB2BE82E07C00E94DE2B0E94082C02C036 +:105460000E947D228F2D882341F0EFE9FFE03197E4 +:10547000F1F700C000008150F6CFFE017ACFDF9136 +:10548000CF911F910F91FF90EF90DF90089560935F +:105490005A0370935B0380935C0390935D030E94B7 +:1054A000732C0C945A266093560370935703809381 +:1054B0005803909359030E94742C0C945A26089513 +:1054C0000F931F9300915A0310915B0320915C038B +:1054D00030915D03602B712B822B932B1F910F91C9 +:1054E0000C94472A0F931F9300915A0310915B036A +:1054F00020915C0330915D03602371238223932309 +:105500001F910F910C94472A0F931F9300915A03F8 +:1055100010915B0320915C0330915D03602771273C +:10552000822793271F910F910C94472A60E070E027 +:10553000CB010C94532A0F931F9341E050E060E09D +:1055400070E08A019B0104C0000F111F221F331F4E +:105550008A95D2F7C901B8011F910F910C94532A73 +:105560000F931F9341E050E060E070E004C0440FEF +:10557000551F661F771F8A95D2F780915603909129 +:105580005703A0915803B09159038A019B01082B3E +:10559000192B2A2B3B2BC901B8011F910F910C9499 +:1055A000532A0F931F9341E050E060E070E004C085 +:1055B000440F551F661F771F8A95D2F74095509567 +:1055C000609570958091560390915703A091580370 +:1055D000B09159038A019B01082319232A233B23F5 +:1055E000C901B8011F910F910C94532A0F931F9377 +:1055F00041E050E060E070E004C0440F551F661FBA +:10560000771F8A95D2F78091560390915703A09106 +:105610005803B09159038A019B01082719272A27AB +:105620003B27C901B8011F910F910C94532A0F9386 +:105630001F93009156031091570320915803309106 +:105640005903602B712B822B932B1F910F910C947C +:10565000532A0F931F9300915603109157032091E3 +:1056600058033091590360237123822393231F91A0 +:105670000F910C94532A0F931F930091560310918E +:1056800057032091580330915903602771278227CF +:1056900093271F910F910C94532A0895CF92DF9274 +:1056A000EF92FF920F931F93CF93DF938C01C090E3 +:1056B0005A03D0905B03E0905C03F0905D0340914F +:1056C0005603509157036091580370915903C42AAF +:1056D000D52AE62AF72ACFE1D0E0D701C6010C2E61 +:1056E00004C0B695A795979587950A94D2F780FF41 +:1056F00007C0B8018C2F0E94B12C8130910531F484 +:10570000219758F7B80180E00E94B12CDF91CF912A +:105710001F910F91FF90EF90DF90CF90089520910F +:105720000B0130910C01F90132969FEF40E051914D +:10573000581789F09F3F19F4511101C0942F4F5F02 +:105740004630A9F79F3F39F0F901E90FF11D97FDA8 +:10575000FA9582830895089520910B0130910C01F0 +:10576000F9013296285F3F4F9081981301C0108253 +:105770003196E217F307C1F7089581E090E0E091D8 +:105780000B01F0910C01E80FF91F1082019688308F +:105790009105A9F708958091680308959091680391 +:1057A000892B8093680308958095909168038923DD +:1057B00080936803089580936803089510926803A6 +:1057C000089590916703892B8093670308958095CE +:1057D000909167038923809367030895109267036C +:1057E000089580935E03089510925E03089580915A +:1057F0000B0190910C01FC0131969C01285F3F4FF9 +:1058000080E0919191118F5FE217F307D1F708952E +:10581000E0910B01F0910C01809168038083E0918D +:105820000B01F0910C01908180916703892B80839B +:1058300080915E03882361F0E0910B01F0910C01EF +:105840009081892B80830E94F72B811110925E0337 +:1058500080910B0190910C010C94E62090939101A2 +:105860008093900108958295982F9C7C392F3695CE +:105870003695282F237344E0249FC0011124932FD1 +:10588000982B292F2A7A2695892F8575880F822BA8 +:1058900008951F93CF93DF931F92CDB7DEB79983FF +:1058A0000E94332C182F9981892F0E94332C212F8D +:1058B00030E0322F2227A901482BCA010F90DF9137 +:1058C000CF911F9108950895CF93DF9300D000D01A +:1058D0001F92CDB7DEB70F900F900F900F900F90E3 +:1058E000DF91CF910895089508950C943B220C9474 +:1058F0006C261F920F920FB60F9211248F939F93D5 +:10590000AF93BF9380916A03811113C08091DF022E +:105910009091E002A091E102B091E2024196A11DB6 +:10592000B11D8093DF029093E002A093E102B09357 +:10593000E202BF91AF919F918F910F900FBE0F9098 +:105940001F90189520E1929FF0011124E80FF11D9E +:10595000E052FF4F8491982F90778F7092959F70AF +:105960000895CF93C82FCB010E94A22C292F30E09D +:10597000E82FF0E0A90164E0440F551F6A95E1F7B4 +:105980004E2B5F2B4038510519F480E090E012C097 +:1059900088E0C89F200D311D112484E0220F331FA1 +:1059A0008A95E1F7E20FF31FEE0FFF1FE050F84971 +:1059B00085919491CF91089580E090E008950895A5 +:1059C00080916D0380FF0BC06091100185E0689F9E +:1059D000B001112475956795759567952BC081FF6A +:1059E00009C06091100185E0689FB0011124759590 +:1059F000679520C082FF07C06091100185E0689F15 +:105A0000B001112417C090916E039923D1F06091D9 +:105A10000F01961788F72091100185E0289F9001CB +:105A20001124929FA001939F500D112470E0CA0190 +:105A30000E94F8306038710540F46115710539F045 +:105A400002C065E070E0862F08958FE7089581E039 +:105A5000089580916D0380FF08C060910E0170E091 +:105A6000759567957595679521C081FF06C0609112 +:105A70000E0170E07595679519C082FF04C06091B2 +:105A80000E0170E010C090916E039923C1F06091F7 +:105A90000D019617A0F780910E01899FC001112476 +:105AA00070E00E94F8306038710528F461157105C6 +:105AB00021F0862F08958FE7089581E0089561E031 +:105AC00070E0F4CF803F21F40E94E02C819504C067 +:105AD000813F29F40E94E02C809371030895823F56 +:105AE00021F40E94E02C819504C0833F29F40E9498 +:105AF000E02C809370030895893F19F40E94292DAA +:105B000005C08A3F31F40E94292D8195809372034C +:105B100008958B3F21F40E94292D819504C08C3F6C +:105B200029F40E94292D809373030895843F21F462 +:105B300080916F03816017C0853F21F480916F03CE +:105B4000826011C0863F21F480916F0384600BC096 +:105B5000873F21F480916F03886005C0883F31F44E +:105B600080916F03806180936F0308958D3F21F4CE +:105B700080916D0381600BC08E3F21F480916D0395 +:105B8000826005C08F3F29F480916D03846080930B +:105B90006D030895803F39F48091710387FF6CC0D5 +:105BA0001092710369C0813F29F480917103181626 +:105BB000BCF362C090917003823F29F497FF5CC0F0 +:105BC0001092700359C0833F19F41916CCF354C0D6 +:105BD000893F41F48091720318160CF04DC0109269 +:105BE00072034AC08A3F29F48091720387FF44C040 +:105BF000F6CF8B3F39F48091730387FF3DC010923D +:105C000073033AC08C3F29F4809173031816BCF3D8 +:105C100033C0843F21F480916F038E7F17C0853F8E +:105C200021F480916F038D7F11C0863F21F4809114 +:105C30006F038B7F0BC0873F21F480916F03877FB9 +:105C400005C0883F31F480916F038F7E80936F038E +:105C500013C08D3F21F480916D038E7F0BC08E3F6A +:105C600021F480916D038D7F05C08F3F29F48091D1 +:105C70006D038B7F80936D038091700381110EC043 +:105C80008091710381110AC080917203811106C055 +:105C900080917303811102C010926E030895809168 +:105CA000690383FF7EC087E794E00E94AF02809182 +:105CB0006F031F928F9382E794E09F938F930E94CC +:105CC000480380E794E00E94AF0280917003282F80 +:105CD000082E000C330B3F938F938DE694E09F9337 +:105CE0008F930E9448038BE694E00E94AF0280915C +:105CF0007103282F082E000C330B3F938F9388E6F7 +:105D000094E09F938F930E94480386E694E00E945C +:105D1000AF0280917203282F082E000C330B3F93A3 +:105D20008F9383E694E09F938F930E94480381E6CC +:105D300094E00E94AF0280917303282F082E000C7C +:105D4000330B3F938F938EE594E09F938F930E9444 +:105D500048038BE594E00E94AF0280916E031F928E +:105D60008F9388E594E09F938F930E94480386E584 +:105D700094E00E94AF0280916D031F928F9383E5A0 +:105D800094E09F938F930E94480380E594E00E94E3 +:105D9000AF028DB79EB74C960FB6F8949EBF0FBE5C +:105DA0008DBF8FE693E00E942F210E94EC0A909312 +:105DB0006C0380936B0308951F93CF93DF938091BF +:105DC0006B0390916C030E94040BAC0190916E03E5 +:105DD000992321F02091110130E006C02091120199 +:105DE0008AE0289F900111244217530708F485C0C8 +:105DF00080917003C0917103D0917203109173036D +:105E0000811107C0C11175C0D11173C0111171C0CA +:105E100074C09F3F19F09F5F90936E03181624F48F +:105E20000E94E02C809370038091700387FF05C06F +:105E30000E94E02C8195809370031C1624F40E942C +:105E4000E02C809371038091710387FF05C00E944D +:105E5000E02C81958093710360917003662331F18A +:105E6000C0917103CC2311F1062E000C770B880B27 +:105E7000990B0E94CA2F23E333E343E35FE30E94BD +:105E80007F300E94922F609370036C2FCC0F770BA2 +:105E9000880B990B0E94CA2F23E333E343E35FE3AC +:105EA0000E947F300E94922F609371031D1624F48C +:105EB0000E94292D809372038091720387FF05C091 +:105EC0000E94292D819580937203111624F40E945B +:105ED000292D809373038091730387FF05C00E946F +:105EE000292D819580937303DF91CF911F910C949D +:105EF0004F2E9F3F09F08FCF97CFDF91CF911F910A +:105F00000895EFE6F3E085E0DF011D928A95E9F759 +:105F100010926E0310926D0308950E94053008F4EC +:105F200081E008950E94992F6894B1110C94743007 +:105F300008950E94593088F09F5798F0B92F9927FB +:105F4000B751B0F0E1F0660F771F881F991F1AF064 +:105F5000BA95C9F714C0B13091F00E947330B1E026 +:105F600008950C947330672F782F8827B85F39F025 +:105F7000B93FCCF3869577956795B395D9F73EF4FD +:105F800090958095709561957F4F8F4F9F4F0895A5 +:105F9000E89409C097FB3EF49095809570956195C3 +:105FA0007F4F8F4F9F4F9923A9F0F92F96E9BB2779 +:105FB0009395F695879577956795B795F111F8CFF5 +:105FC000FAF4BB0F11F460FF1BC06F5F7F4F8F4F60 +:105FD0009F4F16C0882311F096E911C0772321F056 +:105FE0009EE8872F762F05C0662371F096E8862FEE +:105FF00070E060E02AF09A95660F771F881FDAF745 +:10600000880F9695879597F90895990F0008550F71 +:10601000AA0BE0E8FEEF16161706E807F907C0F02E +:1060200012161306E407F50798F0621B730B840B36 +:10603000950B39F40A2661F0232B242B252B21F410 +:1060400008950A2609F4A140A6958FEF811D811DB0 +:10605000089597F99F6780E870E060E008959FEFEA +:1060600080EC089500240A941616170618060906EF +:10607000089500240A9412161306140605060895BE +:10608000092E0394000C11F4882352F0BB0F40F446 +:10609000BF2B11F460FF04C06F5F7F4F8F4F9F4F86 +:1060A000089557FD9058440F551F59F05F3F71F008 +:1060B0004795880F97FB991F61F09F3F79F087956F +:1060C0000895121613061406551FF2CF4695F1DFF8 +:1060D00008C0161617061806991FF1CF8695710588 +:1060E000610508940895E894BB2766277727CB01BC +:1060F00097F908950E94053008F48FEF08950E94E3 +:1061000092300C9440300E94323038F00E94393086 +:1061100020F0952311F00C9429300C942F30112489 +:106120000C9474300E94513070F3959FC1F3950F19 +:1061300050E0551F629FF001729FBB27F00DB11D0B +:10614000639FAA27F00DB11DAA1F649F6627B00D9B +:10615000A11D661F829F2227B00DA11D621F739F84 +:10616000B00DA11D621F839FA00D611D221F749F92 +:106170003327A00D611D231F849F600D211D822FD9 +:10618000762F6A2F11249F5750409AF0F1F0882300 +:106190004AF0EE0FFF1FBB1F661F771F881F91502D +:1061A0005040A9F79E3F510580F00C9429300C9483 +:1061B00074305F3FE4F3983ED4F386957795679506 +:1061C000B795F795E7959F5FC1F7FE2B880F911D57 +:1061D0009695879597F90895991B79E004C0991FC2 +:1061E000961708F0961B881F7A95C9F78095089531 +:1061F00097FB072E16F4009407D077FD09D00E9474 +:10620000123107FC05D03EF4909581959F4F08957B +:10621000709561957F4F0895EE0FFF1F0590F491E3 +:10622000E02D0994AA1BBB1B51E107C0AA1FBB1F8D +:10623000A617B70710F0A61BB70B881F991F5A9512 +:10624000A9F780959095BC01CD010895F894FFCFF2 +:10625000B419A51A821A4E1A1A1A015F03280814D3 +:106260000A321E000000005E090000000013040056 +:10627000000000820451039D031404B80353035427 +:1062800003BB03C003C5039403CD03D003FEFF008B +:10629000000904000000000D0A000000007C0A8CC8 +:1062A00019720A780A750A7B0A710A00000000FD5B +:1062B0000B530B150C0000000039165103981529DB +:1062C0001990158817540393155603404D3622EB49 +:1062D000039E0368034603D202EB0204031D03007E +:106800008800EA44E944E244040005000600070069 +:10681000080009000A000B000C000D000E000F001C +:1068200010001100120013001400150016001700CC +:10683000180019001A001B001C001D001E001F007C +:10684000200021002200230024002500260027002C +:10685000280029002A002B002C002D002E002F00DC +:10686000300031003200330034003500360037008C +:10687000380039003A003B003C003D003E003F003C +:1068800040004100420043004400450046004700EC +:10689000480049004A004B004C004D004E004F009C +:1068A000500051005200530054005500560057004C +:1068B000580059005A005B005C005D005E005F00FC +:1068C000600061006200630064006500850067008D +:1068D000680069006A006B006C006D006E006F005C +:1068E0007000710072007300890087008A008B00BD +:1068F000E000E100E200E300E400E500E600E7007C +:106900000100010001000100EA4401000100E2442D +:106910000100010001000100460001004A004B0097 +:10692000010001004700480001000100E9440100A6 +:106930000100010001000100010001003A003B00DC +:106940003C003D003E003F0040004100420043004B +:10695000010001004C00010001004400450052000C +:1069600049000100010050004F0001004D004E00A1 +:1069700051000100010001000100010001000100BF +:1069800001000100010001000100010001000100FF +:1069900001000100010001000100010001004D00A3 +:1069A0004A004E004B0001000100010001000100FF +:1069B00001000100010001000100010001000100CF +:1069C00001000100010001000100F1A1010001002E +:1069D00001000100010001000100010001000100AF +:1069E000010001000100010001000100010001009F +:1069F000010001000100010001000100010001008F +:00000001FF diff --git a/converter/usb_usb/unimap.c b/converter/usb_usb/unimap.c new file mode 100644 index 00000000..1525411e --- /dev/null +++ b/converter/usb_usb/unimap.c @@ -0,0 +1,45 @@ +/* +Copyright 2016 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "unimap_trans.h" + + +#define AC_FN0 ACTION_LAYER_MOMENTARY(1) + +#ifdef KEYMAP_SECTION_ENABLE +const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = { +#endif + UNIMAP( + F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, VOLD,VOLU,MUTE, + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, DEL, END, PGDN, P7, P8, P9, PPLS, + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, NUHS,ENT, P4, P5, P6, PCMM, + LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RO, RSFT, UP, P1, P2, P3, PEQL, + LCTL,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + UNIMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, + TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, INS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,TRNS,HOME,PGUP,LEFT,RGHT, TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,END, PGDN,DOWN, TRNS,TRNS, PGUP, TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,FN0, TRNS, HOME,PGDN,END, TRNS, TRNS,TRNS + ), +}; diff --git a/converter/usb_usb/unimap_trans.h b/converter/usb_usb/unimap_trans.h new file mode 100644 index 00000000..ff63c14e --- /dev/null +++ b/converter/usb_usb/unimap_trans.h @@ -0,0 +1,99 @@ +/* +Copyright 2016 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef UNIMAP_COMMON_H +#define UNIMAP_COMMON_H + +#include +#include +#include "unimap.h" + + +/* Mapping to Universal keyboard layout + * + * Universal keyboard layout + * ,-----------------------------------------------. + * |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24| + * ,---. |-----------------------------------------------| ,-----------. ,-----------. + * |Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut| + * `---' `-----------------------------------------------' `-----------' `-----------' + * ,-----------------------------------------------------------. ,-----------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| + * |-----------------------------------------------------------| |-----------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| + * |-----------------------------------------------------------| `-----------' |---------------| + * |CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Retn| | 4| 5| 6|KP,| + * |-----------------------------------------------------------| ,---. |---------------| + * |Shft| <| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|KP=| + * |-----------------------------------------------------------| ,-----------. |---------------| + * |Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| + * `-----------------------------------------------------------' `-----------' `---------------' + */ + +/* USB 16x16 +* ,---------------. ,---------------. ,---------------. +* |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24| +* ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------. +* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help | +* `---' `---------------' `---------------' `---------------' `-----------' `---------------' `-------' +* ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------. +* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| |Stp|Agn| +* |-----------------------------------------------------------| |-----------| |---------------| |-------| +* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| |Mnu|Und| +* |-----------------------------------------------------------| `-----------' |---------------| |-------| +* |CapsL | A| S| D| F| G| H| J| K| L| ;| :| #|Retn| | 4| 5| 6|KP,| |Sel|Cpy| +* |-----------------------------------------------------------| ,---. |---------------| |-------| +* |Shft| <| Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3|KP=| |Exe|Pst| +* |-----------------------------------------------------------| ,-----------. |---------------| |-------| +* |Ctl|Gui|Alt|MHEN|HNJ| Space |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| |Fnd|Cut| +* `-----------------------------------------------------------' `-----------' `---------------' `-------' +*/ +const uint8_t PROGMEM unimap_trans[MATRIX_ROWS][MATRIX_COLS] = { + { UNIMAP_KANA, UNIMAP_VOLUME_DOWN, UNIMAP_VOLUME_UP, UNIMAP_VOLUME_MUTE, UNIMAP_A, UNIMAP_B, UNIMAP_C, UNIMAP_D, + UNIMAP_E, UNIMAP_F, UNIMAP_G, UNIMAP_H, UNIMAP_I, UNIMAP_J, UNIMAP_K, UNIMAP_L }, + { UNIMAP_M, UNIMAP_N, UNIMAP_O, UNIMAP_P, UNIMAP_Q, UNIMAP_R, UNIMAP_S, UNIMAP_T, + UNIMAP_U, UNIMAP_V, UNIMAP_W, UNIMAP_X, UNIMAP_Y, UNIMAP_Z, UNIMAP_1, UNIMAP_2 }, + { UNIMAP_3, UNIMAP_4, UNIMAP_5, UNIMAP_6, UNIMAP_7, UNIMAP_8, UNIMAP_9, UNIMAP_0, + UNIMAP_ENTER, UNIMAP_ESCAPE,UNIMAP_BSPACE,UNIMAP_TAB, UNIMAP_SPACE, UNIMAP_MINUS, UNIMAP_EQUAL, UNIMAP_LBRACKET }, + { UNIMAP_RBRACKET,UNIMAP_BSLASH,UNIMAP_NONUS_HASH, UNIMAP_SCOLON, UNIMAP_QUOTE, UNIMAP_GRAVE, UNIMAP_COMMA, UNIMAP_DOT, + UNIMAP_SLASH, UNIMAP_CAPSLOCK,UNIMAP_F1, UNIMAP_F2, UNIMAP_F3, UNIMAP_F4, UNIMAP_F5, UNIMAP_F6 }, + { UNIMAP_F7, UNIMAP_F8, UNIMAP_F9, UNIMAP_F10, UNIMAP_F11, UNIMAP_F12, UNIMAP_PSCREEN,UNIMAP_SCROLLLOCK, + UNIMAP_PAUSE, UNIMAP_INSERT,UNIMAP_HOME, UNIMAP_PGUP, UNIMAP_DELETE,UNIMAP_END, UNIMAP_PGDOWN, UNIMAP_RIGHT }, + { UNIMAP_LEFT, UNIMAP_DOWN, UNIMAP_UP, UNIMAP_NUMLOCK, UNIMAP_KP_SLASH, UNIMAP_KP_ASTERISK, UNIMAP_KP_MINUS, UNIMAP_KP_PLUS, + UNIMAP_KP_ENTER,UNIMAP_KP_1,UNIMAP_KP_2, UNIMAP_KP_3, UNIMAP_KP_4, UNIMAP_KP_5, UNIMAP_KP_6, UNIMAP_KP_7 }, + { UNIMAP_KP_8, UNIMAP_KP_9, UNIMAP_KP_0, UNIMAP_KP_DOT,UNIMAP_NONUS_BSLASH,UNIMAP_APPLICATION,UNIMAP_KP_COMMA,UNIMAP_KP_EQUAL, + UNIMAP_F13, UNIMAP_F14, UNIMAP_F15, UNIMAP_F16, UNIMAP_F17, UNIMAP_F18, UNIMAP_F19, UNIMAP_F20 }, + { UNIMAP_F21, UNIMAP_F22, UNIMAP_F23, UNIMAP_F24, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* 78-7F */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_RO, /* 80-87 */ \ + UNIMAP_NO, UNIMAP_JYEN, UNIMAP_HENK, UNIMAP_MHEN, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* 88-8F */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* 90-97 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* 98-9F */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* A0-A7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* A8-AF */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* B0-B7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* B8-BF */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* C0-C7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* C8-CF */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* D0-D7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* D8-DF */ \ + { UNIMAP_LCTRL, UNIMAP_LSHIFT,UNIMAP_LALT, UNIMAP_LGUI, UNIMAP_RCTRL, UNIMAP_RSHIFT,UNIMAP_RALT, UNIMAP_RGUI, /* E0-E7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* E8-EF */ \ + { UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, /* F0-F7 */ \ + UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, /* F8-FF */ \ +}; + +#endif -- 2.39.3