diff options
Diffstat (limited to 'keyboards/planck/keymaps/pvc')
-rw-r--r-- | keyboards/planck/keymaps/pvc/Makefile | 24 | ||||
-rw-r--r-- | keyboards/planck/keymaps/pvc/compiled.hex | 1635 | ||||
-rw-r--r-- | keyboards/planck/keymaps/pvc/config.h | 89 | ||||
-rw-r--r-- | keyboards/planck/keymaps/pvc/keymap.c | 478 |
4 files changed, 2226 insertions, 0 deletions
diff --git a/keyboards/planck/keymaps/pvc/Makefile b/keyboards/planck/keymaps/pvc/Makefile new file mode 100644 index 0000000000..0b2f060de4 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/Makefile @@ -0,0 +1,24 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif
\ No newline at end of file diff --git a/keyboards/planck/keymaps/pvc/compiled.hex b/keyboards/planck/keymaps/pvc/compiled.hex new file mode 100644 index 0000000000..9e6f0ffe20 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/compiled.hex @@ -0,0 +1,1635 @@ +:100000000C9467030C94AB030C94AB030C94AB03FC
+:100010000C94AB030C94AB030C94AB030C94AB03A8
+:100020000C94AB030C94AB030C94BE170C94901877
+:100030000C94F2250C94AB030C94AB030C94AB031F
+:100040000C94AB030C940B040C94AB030C94AB0317
+:100050000C94AB030C945A260C94AB030C94AB0396
+:100060000C94AB030C94AB030C94AB030C94AB0358
+:100070000C94AB030C94AB030C94AB030C94AB0348
+:100080000C947A0D0C94AB030C94AB030C94AB035F
+:100090000C94AB030C94AB030C94AB030C94AB0328
+:1000A0000C94AB030C94AB030C94AB037504870462
+:1000B0009B04B404AD04C404D304DB04E304ED04E2
+:1000C000F504FD0404050B051705170517051705AD
+:1000D00017051705CF04FD181F190D1A1F190D1A42
+:1000E000641987190D1ADC19EF19D91CD91C081DC0
+:1000F000081D471D671DBD1EBD1E721DBD1E221E93
+:10010000221E891E921EBD1EB71E2F1E2F1E2F1EC1
+:100110002F1E2F1E2F1E2F1E2F1E2F1E2F1E2F1E77
+:100120002F1E2F1E2F1E2F1E2F1E3F1E4D1E541E14
+:100130005B1E651E07634236B79BD8A71A396856FF
+:1001400018AEBAAB558C1D3CB7CC5763BD6DEDFDF9
+:10015000753EF6177231BF000000803F08000000B6
+:10016000BE922449123EABAAAA2ABECDCCCC4C3EAC
+:1001700000000080BEABAAAAAA3E00000000BF009B
+:100180000000803F0000000000084178D3BB438797
+:10019000D1133D190E3CC3BD4282AD2B3E68EC82AB
+:1001A00076BED98FE1A93E4C80EFFFBE01C4FF7F30
+:1001B0003F00000000000000000000000000000000
+:1001C00000010204060A0F17202C3A4A5D71879D30
+:1001D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712F
+:1001E0005D4A3A2C20170F0A0604020100000000A5
+:1001F00000000000000000222B0014001A0008007C
+:10020000150017001C0018000C00120013002A0033
+:10021000290004001600070009000A000B000D0069
+:100220000E000F0033003400E1001D001B0006002B
+:100230001900050011001000360037005200280098
+:10024000E000E3000530E20003302C002C00043015
+:10025000C000500051004F002B0014001A0009008C
+:1002600013000A000D000F0018001C0033002900C5
+:100270002A00040015001600170007000B001100EB
+:1002800008000C0012003400E1001D001B000600F5
+:10029000190005000E00100036003700520028003B
+:1002A000E000E3000530E20003302C002C000430B5
+:1002B000C000500051004F002B00340036003700C2
+:1002C00013001C0009000A00060015000F002A0098
+:1002D000290004001200080018000C0007000B00A1
+:1002E0001700110016003800E100330014000D0063
+:1002F0000E001B00050010001A0019001D00280048
+:10030000E000E3000530E20003302C002C00043054
+:100310005200510050004F0046003A003B003C00A4
+:100320003D00530054005F006000610056004C0027
+:1003300039003E003F0040004100470055005C008E
+:100340005D005E0057004900010042004300440088
+:1003500045004800000059005A005B0058004A0060
+:1003600001000100010001000100620062000100C3
+:10037000E600630058004D00010021022F022F000B
+:100380002602220220022702300030021F024B0008
+:1003900001002302250257005600330033022D02CC
+:1003A0003400340235004E000100310224021E02E6
+:1003B0003502380031002E003602370238024A007A
+:1003C0000100010001000100010001000100010025
+:1003D0000100010001004D0053003A003B003C00C9
+:1003E0003D003E003F004000410042004300480005
+:1003F000390044004500680069006A006B006C0029
+:100400006D006E006F004600470000000000000015
+:100410000000000000000000000000000000A80034
+:1004200001000100010001000100AE00AE0001006A
+:10043000A900AA00AC00AB002900FD00FE00FF00EF
+:100440000000000000000000000000000000290083
+:10045000000000000000000000000000000000009C
+:1004600000000000000000000100F800F700F600A6
+:10047000F50000000000000000000000F900FA0094
+:1004800001000100010001000100F400F40001007E
+:10049000F000F100F200F3000100073008300930ED
+:1004A0000A300B300C300D30010001002550225075
+:1004B00001000030013002300100010001000100A4
+:1004C0000100010001000100010001000100010024
+:1004D00014300050010006300100010026500100D8
+:1004E0000100010001000100010001000100010004
+:1004F0000100010027500100280354006800650036
+:10050000200050006C0061006E0063006B00200052
+:100510004B006500790062006F00610072006400AA
+:1005200000002C034F007200740068006F006C0024
+:1005300069006E0065006100720020004B006500DC
+:10054000790062006F0061007200640073000000B7
+:100550000403090409026D00040100A0FA09040063
+:10056000000103010100092111010001223F0007E0
+:1005700005810308000A09040100010301020009C2
+:100580002111010001224D000705820308000A091C
+:1005900004020001030000000921110100012236BC
+:1005A000000705830308000A090403000103000093
+:1005B0000009211101000122390007058403100000
+:1005C000011201100100000008EDFE606001000151
+:1005D00002000105010906A101050719E029E71537
+:1005E0000025019508750181020508190129059565
+:1005F00005750191029501750391010507190029FF
+:100600007715002501957875018102C005010980E3
+:10061000A101850216010026B7001A01002AB700C1
+:10062000751095018100C0050C0901A10185031613
+:100630000100269C021A01002A9C02751095018176
+:1006400000C005010902A1010901A1000509190164
+:100650002905150025019505750181029501750390
+:1006600081010501093009311581257F9502750841
+:10067000810609381581257F950175088106050CCD
+:100680000A38021581257F950175088106C0C005CD
+:10069000010906A101050719E029E71500250195C3
+:1006A0000875018102950175088101050819012964
+:1006B00005950575019102950175039101050719CD
+:1006C0000029FF150025FF950675088100C011243B
+:1006D0001FBECFEFDAE0DEBFCDBF04B603FE24C0FD
+:1006E00080916F0590917005A0917105B091720590
+:1006F0008730904BA740B04BB9F410926F05109221
+:100700007005109271051092720514BE84B7877F30
+:1007100084BF88E10FB6F894809360001092600067
+:100720000FBEE0E0F8E3099514E0A0E0B1E0EAE0F4
+:10073000F3E602C005900D92A031B107D9F715E09C
+:10074000A0E1B4E001C01D92AF36B107E1F70E940D
+:1007500004150C9483310C940000089581E00895F1
+:100760000C94AD030C94AE030C941E050E944D2D09
+:1007700023E030E0281B3109220F20931404089550
+:10078000282F2F9880918000211108C0877F8093A7
+:10079000800010928D0010928C001BC088608093A6
+:1007A0008000233019F48FEF9FEF0FC083E090E0BB
+:1007B000821B9109880F991F2FEF3FEFA90102C0FB
+:1007C000569547958A95E2F7CA0190938D008093DC
+:1007D0008C000C94B6030E94B60384E0809313044B
+:1007E000109210040895279A2F988FEF9FEF9093FF
+:1007F0008700809386008AE08093800089E180935F
+:1008000081000E94B62C0C94EB030E94F3036E9AB5
+:10081000769A0C948F051F920F920FB60F921124A7
+:100820002F933F938F939F93EF93FF93E091110446
+:10083000F0911204CF010196909312048093110459
+:100840000090130402C0F695E7950A94E2F7EF735F
+:1008500080911004823019F4E03251F404C08130E8
+:1008600039F4EF3329F480916F008D7F80936F000E
+:10087000F0E0EA54FE4FE49121E031E0E29FC00154
+:10088000E39F900D11240090140402C09695879563
+:100890000A94E2F790938D0080938C00FF91EF9182
+:1008A0009F918F913F912F910F900FBE0F901F90AE
+:1008B0001895CF93DF93EC010E944E28BE0180E093
+:1008C00090E0DF91CF910C94E8220F931F93CF9388
+:1008D000DF93462F50E04531510508F0A8C0EC01E8
+:1008E000FA01EA5AFF4F0C9447318A81882309F4B0
+:1008F0009EC081E090E00E9459040AE017ED23E2D7
+:100900003CE340E064E070E080E792E011C08A815F
+:10091000882309F48CC082E090E00E9459040AE028
+:1009200017ED23E23CE340E066E070E080E092E017
+:100930000E94F8107CC08A81882309F478C084E082
+:1009400090E00E9459040AE017ED23E23CE340E006
+:1009500068E070E080E392E0EBCF8A81882311F0B9
+:1009600084E006C084E00DC08A81882349F083E0DA
+:100970000E94652347E063E084E00E945D0B57C05E
+:1009800083E00E948623F6CF8A81882321F085E0C8
+:100990000E9465234CC085E00E94862348C08A815E
+:1009A00081110E940D2D8A81882309F440C086E0C0
+:1009B0000E94AB233CC08A818823C9F160E070E0CB
+:1009C00080E09EE307C08A81882389F160E070E0BF
+:1009D00080E89EE30E949F112AC08A81882339F112
+:1009E00060E070E080E09FE3F5CF8A818823F9F032
+:1009F00060E070E080E49FE3EDCF8A818823B9F066
+:100A00008AE00E94B11113C08A81882381F08AE0B4
+:100A10000E94AB110CC08A81882349F060E070E02D
+:100A200080E09FE30E949F1184E60E94A81180E06D
+:100A300090E0DF91CF911F910F9108950F931F9335
+:100A4000CF93C82F8FE39CE90197F1F700C0000016
+:100A500090911504C1FF0BC091FD14C000E010E09F
+:100A6000980140E062E070E080E991E03AC091FFD7
+:100A700009C000E010E0980140E062E070E080E82A
+:100A800091E02FC0C0FF0BC090FD14C000E010E04B
+:100A9000980140E062E070E080E791E022C090FFC2
+:100AA00009C000E010E0980140E062E070E080E6FC
+:100AB00091E017C0C2FF0BC092FD15C000E010E02E
+:100AC000980140E062E070E080E591E00AC092FFAA
+:100AD0000AC000E010E0980140E062E070E080E4CD
+:100AE00091E00E94F810C0931504CF911F910F91CF
+:100AF00008950F931F938FE39CE90197F1F700C0CE
+:100B000000000AE017ED23E23CE340E06FE070E014
+:100B100088ED92E00E94F8101F910F91089580E0F7
+:100B20000E94C2110C9479050F931F930AE017EDF0
+:100B300023E23CE340E069E070E080E992E00E945B
+:100B4000F8102FEF87EA91E6215080409040E1F7BE
+:100B500000C000001F910F910C94AD0C0F931F93D8
+:100B60000AE017ED23E23CE340E065E070E088ED49
+:100B700091E00E94F8101F910F9108950F931F9319
+:100B80000AE017ED23E23CE340E067E070E080EA32
+:100B900091E00E94F8101F910F9108950F931F93F9
+:100BA0000AE017ED23E23CE340E068E070E080E01B
+:100BB00091E00E94F8101F910F91089581E008952F
+:100BC0000C94DE0508950C94050480916604882336
+:100BD00009F448C08091220490912304009779F48D
+:100BE0000E9424269093230480932204809124045D
+:100BF00090E0009771F48091250490E00AC00E9473
+:100C0000302620915003309151032817390740F3C3
+:100C100029C00197880F991F880F991FFC01EA5D71
+:100C2000FB4F60817181828193810E94E00CE09191
+:100C3000240484E0E89FF0011124EA5DFB4F608109
+:100C40007181828193814FE050E00E9498108091E1
+:100C5000240490E001966091250470E00E943331F5
+:100C6000809324040C94B003109268040C94AD0C8F
+:100C700081E0809368040C94BE058F929F92AF929E
+:100C8000BF92EF92FF920F931F93CF93DF93CDB755
+:100C9000DEB7A3970FB6F894DEBF0FBECDBF7C01C1
+:100CA000FC0100811181C8010E942124B8010E9429
+:100CB0003F088C01B7010E94E005882309F4CCC1EC
+:100CC0000032F0E51F0741F4F7018281882309F41F
+:100CD00058C00E948F11C0C10132F0E51F0741F4D6
+:100CE000F7018281882309F44CC00E949811B4C195
+:100CF0000232F0E51F0751F4F7018281882309F4DD
+:100D000040C00E948B118111F0CFE3CF0332F0E598
+:100D10001F0739F4F7018281882399F10E94380670
+:100D20009BC10432F0E51F0739F4F7018281882363
+:100D300041F10E94340690C10532F0E51F0749F4E5
+:100D4000F70182818823E9F0809168048111F1CF55
+:100D5000E5CF0632F0E51F0739F4F70182818823D9
+:100D600081F00E94C5110AC00732F0E51F0749F45F
+:100D7000F7018281882329F00E94D0110E94CE05BC
+:100D80006BC180916804811105C0F70182818111D6
+:100D9000CFC018C1003E110579F4F7018281882384
+:100DA00009F44DC00E94AD0C81E08093670410925D
+:100DB00066041092250450C1023E110559F4F70152
+:100DC00082818823E1F10E94AD0C10926704109299
+:100DD000660442C1033E110591F4F7018281882324
+:100DE00071F10E94AD0C1092670481E0809366045B
+:100DF0001092240410922304109222042DC1023573
+:100E0000110559F4F7018281882309F425C18091E5
+:100E10005003909151030A970DC00135110579F4E3
+:100E2000F7018281882309F417C1809150039091C2
+:100E300051030A9690935103809350030DC1409142
+:100E4000540383E2EFE6F3E0DE01119601900D9288
+:100E50008A95E1F7F701808121E030E02C0F3D1FFA
+:100E6000280F311DC9012091520330915303FC0119
+:100E7000E20FF31F6081772767FD7095640F711D86
+:100E8000882777FD8095982F0E94552E20E030E02E
+:100E900040E451E40E94BA2D4B015C01F70121812D
+:100EA00084E090E0821B9109BC01882777FD809542
+:100EB000982F0E94552E9B01AC01C501B4010E94E0
+:100EC000522D9B01AC0160E070E080E090E40E9454
+:100ED000C82F20E030E04CED50E40E94652F4B011C
+:100EE0005C01F70182818823D1F04FE050E0C50119
+:100EF000B4010E949810809167048823A1F080912A
+:100F0000250424E0829FF0011124EA5DFB4F8082DA
+:100F10009182A282B3828F5F8093250404C0C501B1
+:100F2000B4010E94E00C0F3F110508F02ECF94C0D1
+:100F30008091210481111FC0043130E5130709F0AD
+:100F400051C00E94E20581E0809321040E94242682
+:100F50009093200480931F041092180410921A0496
+:100F60001092190410921C0410921B0410921E047B
+:100F700010921D0471C080911F04909120040E9462
+:100F80003026883C910570F480911804E82FF0E039
+:100F9000EE0FFF1FE75EFB4F118300838F5F80938F
+:100FA00018045AC0043880E5180721F005381045A8
+:100FB00001F13AC0F7018281882341F010921604B2
+:100FC00082E01EC0043830E5130759F580911604FD
+:100FD000811106C086E20E947D1B86E20E94451CAC
+:100FE00082E01CC00438F0E51F0741F305381045C6
+:100FF000D9F4F7018281882331F01092170480E23E
+:101000000E94941C29C080911704811106C087E2B8
+:101010000E947D1B87E20E94451C80E20E949B1C6F
+:101020001BC00538104529F381E080931604809396
+:101030001704C701A3960FB6F894DEBF0FBECDBF4D
+:10104000DF91CF911F910F91FF90EF90BF90AF90E4
+:101050009F908F900C94B20380E0A3960FB6F89403
+:10106000DEBF0FBECDBFDF91CF911F910F91FF90DB
+:10107000EF90BF90AF909F908F90089508959CE05F
+:10108000799FF001112490E3899FE00DF11D112457
+:10109000E60FF11DEE0FFF1FE850FE4F8591949172
+:1010A0000895880F991FFC01EA58FF4F859194918C
+:1010B0000895880F991FFC01EA50FE4F8591949185
+:1010C00008950F931F93CF93DF93EC01811521E3D4
+:1010D0009207A0F5C11580E3D80708F0D7C0C83E35
+:1010E000D105D8F4C03ED10508F007C2C83AD105F1
+:1010F00078F4C53AD10508F06AC0C130D10509F4C9
+:1011000063C008F4F7C1C430D10508F0F6C1F2C1DC
+:10111000CB3BD10508F466C0EDC1C11590E2D907FB
+:1011200008F0AFC0C11521E0D20708F0E6C1C03F0A
+:10113000D10508F4DFC18E0110651FC2C03880E5FB
+:10114000D80700F5C03790E5D90708F0A3C0C1154E
+:1011500020E5D20709F4ACC050F4CE0190548031A0
+:101160009F4008F0C7C1DF708E01106A06C2C1300F
+:1011700080E5D80709F4AEC0C43190E5D90708F47A
+:10118000AFC0B8C1C33820E5D20709F48EC050F40F
+:10119000C13890E5D90709F482C008F083C000E0A7
+:1011A00011EDEBC1C03181E5D80708F4A3C1C11529
+:1011B00097E5D90708F436C1CE01905781159041C3
+:1011C00008F098C1DF7093C101E010E0D6C1C53AC4
+:1011D000D10509F494C1C63AD10509F093C102E8DA
+:1011E00010E4CBC1C83AD10509F48FC1C93AD10581
+:1011F00009F48EC1CA3AD10509F48DC1CB3AD105A3
+:1012000009F48CC1CC3AD10509F48BC1CD3AD10592
+:1012100009F48AC1C03BD10509F489C1CE3AD10590
+:1012200009F488C1CF3AD10509F487C1C13BD10582
+:1012300009F486C1C23BD10509F485C1C33BD10580
+:1012400009F484C1C43BD10509F483C1C53BD10570
+:1012500009F482C1C63BD10509F481C1C73BD10560
+:1012600009F480C1C83BD10509F47FC1C93BD10550
+:1012700009F47EC1CA3BD10509F47DC100E014E444
+:101280007CC1CE019F700E94590878C1DD278E0174
+:10129000106C73C1CF70DD278E01146D6EC100E03C
+:1012A00010ED6BC100E012ED68C100E013ED65C107
+:1012B0000E94281F0E94AD0C0E9494058FEF94E3BA
+:1012C0002CE0815090402040E1F700C000000E94D7
+:1012D0007F2653C1809143058160809343054DC1B2
+:1012E0000E943628811102C00E9412280E945328B1
+:1012F00090E090936E0580936D05C23080E5D8072D
+:1013000021F480916D05816086C0C43090E5D907D5
+:1013100021F480916D0582607EC0C63020E5D20741
+:1013200021F480916D05846076C0C83080E5D807CF
+:1013300019F480916D0527C0CA3090E5D90721F4D2
+:1013400080916D05806167C0CC3020E5D20721F423
+:1013500080916D0580625FC0CE3080E5D80721F4B2
+:1013600080916D05806457C0C03190E5D90721F4A4
+:1013700080916D0580684FC0C23120E5D20729F405
+:1013800080916D058460886046C0C33080E5D807D1
+:1013900021F480916D058E7F3EC0C53090E5D90760
+:1013A00021F480916D058D7F36C0C73020E5D207CE
+:1013B00021F480916D058B7F2EC0C93080E5D80760
+:1013C00019F480916D0526C0CB3090E5D90721F442
+:1013D00080916D058F7E1FC0CD3020E5D20721F4AE
+:1013E00080916D058F7D17C0CF3080E5D80721F43F
+:1013F00080916D058F7B0FC0C13190E5D90721F435
+:1014000080916D058F7707C0C331D04531F480914D
+:101410006D058B7F877F80936D0580916D050E94A0
+:101420005728ABC08D2F99278F7099278130910550
+:10143000D9F49E012370332702C0880F991F2A9583
+:10144000E2F79C688E0144E0000F111F4A95E1F716
+:1014500000271370802B912B53E0CC0FDD1F5A9582
+:10146000E1F7C076DD272FC08230910531F4DC2F03
+:10147000CC278E01016F106A80C08330910569F41A
+:10148000CE018370992701E010E002C0000F111F08
+:101490008A95E2F7C8019C680FC084309105B9F4C1
+:1014A000CE018370992701E010E002C0000F111FE8
+:1014B0008A95E2F7C8019A6823E0CC0FDD1F2A95D0
+:1014C000E1F7C07ED7708C010C2B1D2B56C08530E8
+:1014D000910531F4DC2FCC278E01046F106A4DC0CA
+:1014E000069709F04AC0CF71DD27DC2FCC278E018B
+:1014F000106243C000E010E040C08E013EC001E831
+:1015000010E43BC003E810E438C002EE14E435C038
+:1015100009EE14E432C00AEE14E42FC005EB14E423
+:101520002CC006EB14E429C007EB14E426C00CEC35
+:1015300014E423C00DEC14E420C003E815E41DC03E
+:101540000AE815E41AC002E915E417C004E915E435
+:1015500014C001E216E411C003E216E40EC004E276
+:1015600016E40BC005E216E408C006E216E405C066
+:1015700007E216E402C00AE216E4C801DF91CF9147
+:101580001F910F9108959CE0799FF001112490E341
+:10159000899FE00DF11D1124E60FF11DEE0FFF1FD5
+:1015A000E850FE4F85919491803E9105E0F4803C97
+:1015B000910558F58133910509F46FC048F48932DB
+:1015C000910509F463C08A32910509F46DC072C0B7
+:1015D00089339105E9F082389105D1F08533910581
+:1015E00009F44DC067C0833E910581F138F4803E17
+:1015F0009105B9F0823E9105D9F05CC0863E910517
+:1016000061F1873E9105A1F155C00E9451080895EE
+:1016100020916D0520FD02C021FF4CC080EE90E0BE
+:1016200049C080916D0580FFF9CF89E390E042C009
+:1016300080916D0582FF0EC080916D0584FF03C00F
+:1016400080E090E037C083EE90E034C080916D057B
+:1016500082FFF2CF82EE90E02DC080916D0583FF76
+:101660000BC080916D0584FDEBCF87EE90E022C02A
+:1016700080916D0583FFF5CF86EE90E01BC08091D1
+:101680006D0585FF07C089E290E014C080916D056B
+:1016900085FFF9CF85E390E00DC080916D0586FF51
+:1016A00007C08AE290E006C080916D0586FFF9CF01
+:1016B00081E390E00E9461080895CF92DF92EF925B
+:1016C000FF920F931F9301E010E020E030E06801EB
+:1016D000790104C0CC0CDD1CEE1CFF1C8A95D2F7EE
+:1016E00004C0000F111F221F331F6A95D2F70C2967
+:1016F0001D292E293F29C0902605D0902705E0906E
+:101700002805F0902905C022D122E222F322842F5D
+:10171000C016D106E206F30641F41F910F91FF9027
+:10172000EF90DF90CF900C9465231F910F91FF9065
+:10173000EF90DF90CF900C9486230C94B403E82FA5
+:10174000F0E0E256FC4F8081E82FEF70F0E08295E8
+:101750008F7021E030E0A90102C0440F551F8A9527
+:10176000E2F740A308950F931F93CF93DF9385B7BC
+:10177000806885BF85B7806885BFC3E0D0E001E0A1
+:1017800010E0FE01E256FC4F8081E82FEF70F0E0A0
+:1017900021A182958F70A80102C0440F551F8A9520
+:1017A000E2F7CA01822B81A38C2F0E949F0B219705
+:1017B00040F78BE090E061E070E0FC01EE56FC4FFA
+:1017C0002081E22FEF70F0E042A122952F70DB0123
+:1017D00002C0AA0FBB1F2A95E2F79D01242B22A36A
+:1017E000019758F7DF91CF911F910F910C94E3056A
+:1017F000EF92FF920F931F93CF93DF9301E714E0D3
+:10180000C3E0EE24E394F12CD5E08C2F0E949F0BD3
+:101810008BE090E040E050E0FC01EE56FC4F608130
+:10182000E62FEF70F0E020A130E062956F7002C00B
+:10183000359527956A95E2F720FD09C09701082E96
+:1018400002C0220F331F0A94E2F7422B532B019759
+:1018500018F7F801929182918F018417950721F072
+:1018600051834083D09355038C2F0E949F0BC1500E
+:1018700060F68091550387FD2CC0815080935503FD
+:101880008F3F39F08FE99FE00197F1F700C000002A
+:1018900020C080916F04909170049093780480939D
+:1018A000770480916D0490916E04909376048093F8
+:1018B000750480916B0490916C04909374048093F0
+:1018C00073048091690490916A04909372048093E8
+:1018D00071040E94E50581E0DF91CF911F910F9186
+:1018E000FF90EF900895E82FF0E0EE0FFF1FEF5804
+:1018F000FB4F80819181089508950F931F93CF939B
+:1019000009E714E0C0E0F801929182918F010E94F2
+:101910009C25C80FF4E001371F07A9F78C2FCF9142
+:101920001F910F9108950E943628811102C00E94D4
+:1019300012280E946528809358053E9A8091710074
+:101940008D7F8093710082E0809390008AE1809384
+:10195000910081E080937B04089580917B04811144
+:1019600002C00E94930C1092CB041092CA04809182
+:1019700071008D7F80937100809190008F738093B0
+:10198000900010928D0410928C041092C404109256
+:10199000C5041092C6041092C7041092C30410929A
+:1019A000C204E2EAF4E0A2E9B4E0119211921192C9
+:1019B00011921D921D9284E0E23CF807B1F7089560
+:1019C000CF92DF92EF92FF920F931F93CF93DF930B
+:1019D00020918C04222309F484C06B017C01809146
+:1019E0007B04811102C00E94930C02EC14E0C7E05A
+:1019F000D0E0A7019601F8019291829172916291D3
+:101A00008F010E94B62D811131C0FE01EE0FFF1F24
+:101A1000EE0FFF1FEE55FB4F1082118212821382D0
+:101A2000DE01AA0FBB1FAE56BB4F11961C921E9231
+:101A3000C730D105E9F021964481558166817781CF
+:101A400040835183628373831482158216821782C6
+:101A500012968D919C91139711969C938E93139649
+:101A60001C921E92129734961296E2CF219708F696
+:101A70008091CA049091CB04019797FD05C0909383
+:101A8000CB048093CA0404C01092CB041092CA0401
+:101A90008091CA049091CB042091C8043091C9046C
+:101AA0002817390724F01092C9041092C804892B12
+:101AB000C1F4809171008D7F8093710080919000BE
+:101AC0008F73809390001092C4041092C5041092FA
+:101AD000C6041092C7041092C3041092C20410925C
+:101AE0008C04DF91CF911F910F91FF90EF90DF90C9
+:101AF000CF9008951F920F920FB60F9211244F921C
+:101B00005F926F927F928F929F92AF92BF92CF928D
+:101B1000DF92EF92FF922F933F934F935F936F93D8
+:101B20007F938F939F93AF93BF93CF93DF93EF9365
+:101B3000FF9380918C04882309F49BC1C091CA044F
+:101B4000D091CB041C161D060CF093C140907C0470
+:101B500050907D0460907E0470907F0420E030E01F
+:101B6000A901C301B2010E94612F18160CF065C0D3
+:101B7000C130D10509F452C08091C8049091C904C4
+:101B8000BE010E9433317C019093C9048093C80444
+:101B900080908E0490908F04A0909004B090910457
+:101BA00020E030E040E85FE3C501B4010E94522D1F
+:101BB00060938E0470938F048093900490939104AB
+:101BC000F701EE0FFF1FEE0FFF1FEE55FB4FA301B6
+:101BD000920160817181828193810E94BA2D20E0FF
+:101BE00030E040E05EE30E94652F9B01AC01C5013F
+:101BF000B4010E94612F18168CF4C7010196BE0132
+:101C00000E9433319093C9048093C80410928E04CB
+:101C100010928F041092900410929104E091C804E5
+:101C2000F091C904EE0FFF1FEE0FFF1FEE55FB4FA3
+:101C30006081718182819381D0C0C090C404D090B2
+:101C4000C504E090C604F090C70420E030E0A9018C
+:101C5000C701B6010E94B62D2197882309F4A2C0BE
+:101C6000FE01EE0FFF1FEE0FFF1FEE55FB4F8080B2
+:101C70009180A280B380A5019401C701B6010E94A2
+:101C8000B62D87FF31C0A501940160E070E08CEDB6
+:101C900093EC0E94BA2D20E030E040E451E40E9431
+:101CA000BA2D20E030E040E05FE30E94652F9B0109
+:101CB000AC0160E070E080E090E40E94C82F9B01DE
+:101CC000AC01C501B4010E94652F9B01AC01C701A5
+:101CD000B6010E94B62D87FF07C0A701960160E0FC
+:101CE00070E08CED93E439C0A5019401C701B60101
+:101CF0000E94612F18160CF055C0A501940160E0F8
+:101D000070E08CED93E40E94BA2D20E030E040E4D6
+:101D100051E40E94BA2D20E030E040E05FE30E94F1
+:101D2000652F9B01AC0160E070E080E090E40E94D0
+:101D3000C82F9B01AC01C501B4010E94652F9B0116
+:101D4000AC01C701B6010E94612F18165CF5A7010E
+:101D5000960160E070E08CED93EC0E94BA2D20E0DB
+:101D600030E040E451E40E94BA2D20E030E040E051
+:101D70005FE30E94652F9B01AC0160E070E080E0B2
+:101D800090E40E94C82F9B01AC01C701B6010E94DC
+:101D9000652F6093C4047093C5048093C604909328
+:101DA000C70413C0FE01EE0FFF1FEE0FFF1FEE551D
+:101DB000FB4F80819181A281B3818093C404909371
+:101DC000C504A093C604B093C7046091C404709185
+:101DD000C5048091C6049091C70420917904309184
+:101DE0007A042F3F4FEF340731F02F5F3F4F30938E
+:101DF0007A04209379040E94DB116B017C0120E0BE
+:101E000034E244EF51E40E94B62D87FF08C086EF0C
+:101E1000C82E88E2D82E84EFE82E81E4F82E20E048
+:101E200030E040E051E4C701B6010E94652F9B01FC
+:101E3000AC0160E074E284E79BE40E94BA2D6B0180
+:101E40007C010E94272E709397006093960020914A
+:101E50005603309157034091580350915903C701DD
+:101E6000B6010E94652F0E94272E709399006093FF
+:101E7000980080918D04882309F433C1C0908804B0
+:101E8000D0908904E0908A04F0908B0420E030E048
+:101E9000A901C701B6010E94612F1816D4F58091DF
+:101EA000790490917A048F3F2FEF920729F00196E1
+:101EB00090937A0480937904C701B6010E94DB11E4
+:101EC00020E030E040E051E40E94652F9B01AC012E
+:101ED00060E074E284E79BE40E94BA2D6B017C0110
+:101EE0000E94272E709397006093960020915603CE
+:101EF000309157034091580350915903C701B601DF
+:101F00000E94652F0E94272E70939900609398007D
+:101F100008C01092970010929600109299001092AB
+:101F2000980060918204709183046F5F7F4F70937B
+:101F3000830460938204209196003091970080E0A2
+:101F400090E0232BF1F0C0919600D09197000E9471
+:101F5000532E6B017C01BE0180E090E00E94532E65
+:101F60009B01AC016091840470918504809186048A
+:101F7000909187040E94BA2D20E03FEF4FE757E48D
+:101F800010C00E94532E6B017C0120E030EE4FEF19
+:101F900054E460918404709185048091860490914A
+:101FA00087040E94652F9B01AC01C701B6010E9406
+:101FB000612F87FD96C0809180048F5F809380049D
+:101FC00090E0209154053091550582179307A0F0B9
+:101FD00080915F05882319F0109280040DC08091D4
+:101FE00071008D7F80937100809190008F7380933A
+:101FF000900010928D047DC080918104C091800476
+:10200000811128C0C0905905D0905A05E0905B0519
+:10201000F0905C0520E030E0A901C701B6010E9404
+:10202000612F1816BCF481E080938104109288041B
+:102030001092890410928A0410928B04C092840436
+:10204000D0928504E0928604F0928704C150C09338
+:10205000800443C01092810410927A041092790493
+:10206000E0915605F091570548E0C49FE00DF11D41
+:10207000112480819181A281B381809388049093FF
+:102080008904A0938A04B0938B0420E030E040E8F8
+:102090005EE364817581868197810E94652F6B0163
+:1020A0007C0180915A03682F70E080E090E00E94EC
+:1020B000532E20E030E048EC52E40E94BA2D9B0100
+:1020C000AC01C701B6010E94652F60938404709330
+:1020D0008504809386049093870410928304109261
+:1020E00082048091580580FD04C010928D041092E6
+:1020F0008C04FF91EF91DF91CF91BF91AF919F91B0
+:102100008F917F916F915F914F913F912F91FF90B0
+:10211000EF90DF90CF90BF90AF909F908F907F9087
+:102120006F905F904F900F900FBE0F901F9018957B
+:10213000CF92DF92EF92FF92CF93DF936B017C01FE
+:10214000EA0180917B04811102C00E94930C80916E
+:10215000580580FF46C08091CA049091CB0408972F
+:102160000CF03FC0809171008D7F80937100809151
+:102170008D0481110E94AD0C81E080938C0410923B
+:102180007A041092790420E030E0A901C701B60179
+:102190000E94612F1816DCF48091CA049091CB0440
+:1021A000FC01EE0FFF1FEE0FFF1FEE55FB4FC0822D
+:1021B000D182E282F382FC01EE0FFF1FEE56FB4F4D
+:1021C000D183C08301969093CB048093CA048091FD
+:1021D000710082608093710080919000806880938C
+:1021E0009000DF91CF91FF90EF90DF90CF90089516
+:1021F0008F929F92AF92BF92CF92DF92EF92FF9217
+:102200000F931F93CF93DF93EC017B01D42E4801F2
+:10221000590180917B04811102C00E94930C80912E
+:10222000580580FF6BC0809171008D7F8093710095
+:1022300080918C0481110E94AD0C81E080938D040B
+:10224000D0935705C0935605F0925505E09254057A
+:10225000D0925F058092590590925A05A0925B0535
+:10226000B0925C0510928E0410928F04109290042C
+:10227000109291041092800488819981AA81BB8177
+:102280008093880490938904A0938A04B0938B046C
+:1022900020E030E040E85EE36C817D818E819F81AB
+:1022A0000E94652F6B017C0180915A03682F70E0BA
+:1022B00080E090E00E94532E20E030E048EC52E4B1
+:1022C0000E94BA2D9B01AC01C701B6010E94652F87
+:1022D00060938404709385048093860490938704AC
+:1022E0001092830410928204809171008260809326
+:1022F000710080919000806880939000DF91CF9171
+:102300001F910F91FF90EF90DF90CF90BF90AF9013
+:102310009F908F90089580915805817008958091C5
+:1023200058058160809358050E9469280C94AE0579
+:10233000809158058E7F809358050C94692860938E
+:10234000560370935703809358039093590308954D
+:1023500080935A03089590915A03890F80935A03EA
+:10236000089590915A03292F30E0281B31092A3013
+:10237000310524F48AE080935A030895981B9093C2
+:102380005A0308958093CC0408958091CC0490E082
+:10239000019666E070E00E9433318093CC0408958A
+:1023A0008091CC0490E0019766E070E00E943331A8
+:1023B0008093CC0408958F929F92AF92BF92CF9258
+:1023C000DF92EF92FF920F931F93CF93DF936B01F6
+:1023D0007C01C0917904D0917A04BE0180E090E044
+:1023E0000E94532E4B015C01A701960160E070E052
+:1023F0008CE594E40E94BA2D9B01AC01C501B401A7
+:102400000E94652F0E94272E2091CC04233009F4CE
+:1024100073C028F4222351F02130E9F02CC124307C
+:1024200009F4A0C0253009F4E0C025C180E090E0A7
+:10243000A0E0BFE38093560390935703A093580303
+:10244000B093590310927C0410927D0410927E0484
+:1024500010927F0410C110927C0410927D0410929F
+:102460007E0410927F046431710540F46A30710576
+:1024700060F520E030E040E85EE32BC0693C710588
+:1024800008F0AAC080E090E00E94532E20E030E0E7
+:1024900040EA51E40E94512D20E030E044E353E44F
+:1024A0000E94BA2D9B01AC010E94652F20E030E014
+:1024B00040E05EE30E94652F9B01AC0160E070E0AC
+:1024C00080E09EE30E94512D44C020E030E040E0D7
+:1024D0005FE3C701B6010E94652F6B017C0180E0BC
+:1024E00090E0A0E0BEE38093560390935703A0933F
+:1024F0005803B0935903BFC010927C0410927D041E
+:1025000010927E0410927F044AE0469F9001479FFC
+:10251000300D1124C90168EB7BE00E941F31BC0122
+:102520006C5D754077FF03C07195619571098827CF
+:1025300077FD8095982F0E94552E2EE333EC4EE2C6
+:1025400059E30E94652F20E030E040EC5EE30E94FA
+:10255000522D6093560370935703809358039093C2
+:10256000590389C010927C0410927D0410927E045D
+:1025700010927F04CE0183709927892BE1F0BE0170
+:102580006170772780E090E00E94532E20E030E0D9
+:1025900040E05EE30E94652F20E030E040E45FE32E
+:1025A0000E94522D609356037093570380935803F3
+:1025B000909359030CC080E090E0A0E0BFE38093CB
+:1025C000560390935703A0935803B0935903C770D1
+:1025D000DD27CD2B09F04FC0109256031092570300
+:1025E000109258031092590346C010927C04109226
+:1025F0007D0410927E0410927F0400E010E020E041
+:102600003FE30093560310935703209358033093EE
+:1026100059036739710578F180E090E00E94532EEC
+:1026200020E030E047E153E40E94512D20E030E00B
+:102630004AE754E40E94BA2D20E030E048E452E436
+:102640000E94652F20E030E040EA51E40E94972E7E
+:102650000E94222E660F771F660F771FFB01EE5533
+:10266000FC4F2081318142815381C701B6010E9414
+:10267000652F6B017C01C701B601DF91CF911F91DE
+:102680000F91FF90EF90DF90CF90BF90AF909F9011
+:102690008F9008958091DD040895CF93DF9300D04B
+:1026A0001F92CDB7DEB79C0180916405843019F587
+:1026B00093E099833B832A839093E9008FEF909175
+:1026C000E800815095FD06C095ED9A95F1F7000060
+:1026D0008111F5CF8091E80085FF0DC040E050E00A
+:1026E00063E070E0CE0101960E94AE158091E80093
+:1026F0008E778093E8000F900F900F90DF91CF912D
+:102700000895CF93DF9300D01F92CDB7DEB720910D
+:102710006405243021F522E029839B838A8383E0AA
+:102720008093E9008FEF9091E800815095FD06C0FD
+:1027300095ED9A95F1F700008111F5CF8091E800B1
+:1027400085FF0DC040E050E063E070E0CE010196EF
+:102750000E94AE158091E8008E778093E8000F907C
+:102760000F900F90DF91CF91089520916405243050
+:10277000F1F422E02093E9002FEF3091E80021509E
+:1027800035FD06C035ED3A95F1F700002111F5CF82
+:102790002091E80025FF0BC040E050E065E070E0CC
+:1027A0000E94AE158091E8008E778093E80008952E
+:1027B000CF93DF93EC0190916405943009F046C00B
+:1027C000809165038823D9F0809166038823B9F04E
+:1027D0009093E9008FEF9091E800815095FD06C03D
+:1027E00095E19A95F1F700008111F5CF8091E8000D
+:1027F00085FF2CC040E050E060E170E017C081E050
+:102800008093E9008FEF9091E800815095FD06C01C
+:1028100095ED9A95F1F700008111F5CF8091E800D0
+:1028200085FF14C040E050E068E070E0CE010E94F7
+:10283000AE158091E8008E778093E80080E1FE017C
+:10284000ADECB4E001900D928A95E1F7DF91CF9164
+:10285000089580916305811109C00E9443170E9469
+:10286000A0178091E20084608093E20008951092A6
+:1028700063050895089508950C94E72542E061ECFE
+:1028800081E00E94BD1642E061EC82E00E94BD162C
+:1028900042E061EC83E00E94BD1642E161EC84E01D
+:1028A0000C94BD1680916605833009F455C030F450
+:1028B000813071F0823009F48EC008958A3009F4B5
+:1028C0007AC08B3009F460C0893009F09CC020C008
+:1028D00080916505813A09F096C08091E800877F74
+:1028E0008093E8008091690590916A05892B21F415
+:1028F00060E18DEC94E003C060E080E090E070E087
+:102900000E94F9158091E8008B778093E800089584
+:1029100080916505813209F076C0809169059091BA
+:102920006A05009719F0039709F06DC08091E800DF
+:10293000877F8093E8008091E80082FD05C0809148
+:1029400064058111F8CF5FC08091F1008093DD04B0
+:102950008091E8008B7753C080916505813A09F03A
+:1029600052C08091690590916A05892B09F04BC08E
+:102970008091E800877F8093E8008091E80080FFE5
+:10298000FCCF8091650336C0809165058132D9F511
+:102990008091690590916A05892BA9F58091E800DD
+:1029A000877F8093E8000E94F216809167058093EC
+:1029B00065030C94281F80916505813221F5809173
+:1029C000E800877F8093E8000E94F21680916805F6
+:1029D0008093DE04089580916505813AA1F4809189
+:1029E000E800877F8093E8008091E80080FFFCCFBB
+:1029F0008091DE048093F1008091E8008E778093CF
+:102A0000E8000C94F216089584B7877F84BF88E1AC
+:102A10000FB6F89480936000109260000FBE90E0B3
+:102A200080E80FB6F89480936100909361000FBE28
+:102A30000E94951A0E9443170E94A0178091E200FD
+:102A400084608093E20078940E94261A0E94971A6C
+:102A50008BE593E00E94411A80916405853069F40A
+:102A60000E94A825809162058823B1F30E94D62593
+:102A7000882391F30E949815EFCF0E949F1AECCF04
+:102A8000292F332723303105C9F064F42130310573
+:102A900081F02230310509F043C08DE690E024E555
+:102AA00035E042C021323105F1F02232310541F1E9
+:102AB00037C082E190E021EC35E036C099278130C3
+:102AC000910541F08230910541F0892B49F5E0E50F
+:102AD000F5E005C0E2E2F5E002C0E8EFF4E0849141
+:102AE00090E09F0121C06430D8F4E62FF0E0EE0FB3
+:102AF000FF1FE250FC4F2081318189E090E014C03B
+:102B0000643070F470E0FB01EE0FFF1FEA50FC4FE1
+:102B100020813181FB01EE50FC4F808190E004C0A8
+:102B200080E090E020E030E0FA01318320830895D6
+:102B300080E189BD82E189BD09B400FEFDCF8091AD
+:102B4000D8008F7D8093D8008091E00082608093D0
+:102B5000E0008091E00081FDFCCF0895CF92DF92EC
+:102B6000EF92FF920F931F93CF93DF93EC018B01B2
+:102B70006A010E941117811133C0C114D10439F0C8
+:102B8000F60180819181081B190BC80FD91FE12C18
+:102B9000F12C0115110519F18091E80085FD16C091
+:102BA0008091E8008E778093E800C114D10449F049
+:102BB000F60180819181E80EF91EF182E08285E0C4
+:102BC0000FC00E941117882321F30AC089918093B6
+:102BD000F10001501109FFEFEF1AFF0ADACF80E090
+:102BE000DF91CF911F910F91FF90EF90DF90CF90E9
+:102BF000089520916B0530916C052617370748F032
+:102C00006115710539F42091E8002E772093E800D2
+:102C100001C0B90140E061157105A9F12091640579
+:102C2000222309F443C0253009F442C02091E80072
+:102C300023FD40C02091E80022FD32C02091E80031
+:102C400020FFE9CF4091F3002091F20030E0342BD7
+:102C5000FC01CF016115710559F02830310540F4B0
+:102C600081918093F100615071092F5F3F4FF1CF47
+:102C700041E02830310509F040E02091E8002E774E
+:102C80002093E800C8CF4111C9CF0AC080916405E4
+:102C9000882361F0853061F08091E80083FD0AC0EF
+:102CA0008091E80082FFF2CF80E0089582E00895ED
+:102CB00083E0089581E0089520916B0530916C05C3
+:102CC0002617370748F06115710539F42091E8009F
+:102CD0002E772093E80001C0B901FC0120E06115C6
+:102CE000710591F180916405882309F440C0853015
+:102CF00009F43FC08091E80083FD3DC08091E80069
+:102D000082FD2FC08091E80080FFE9CF2091F30081
+:102D10008091F20090E0922B6115710559F0883096
+:102D2000910540F424912093F1003196615071098E
+:102D30000196F2CF21E0089709F020E08091E800A9
+:102D40008E778093E800CBCF2111CCCF0AC0809141
+:102D50006405882361F0853061F08091E80083FD8F
+:102D60000AC08091E80082FFF2CF80E0089582E0FF
+:102D7000089583E0089581E00895982F973058F5DD
+:102D80009093E900981739F07091EC002091ED00D4
+:102D90005091F00003C0242F762F50E021FF19C07E
+:102DA0003091EB003E7F3093EB003091ED003D7FA2
+:102DB0003093ED003091EB0031603093EB00709375
+:102DC000EC002093ED005093F0002091EE0027FFDF
+:102DD00007C09F5FD3CF8F708093E90081E0089593
+:102DE00080E008958091650587FF11C08091E8001B
+:102DF00082FD05C0809164058111F8CF11C08091DA
+:102E0000E8008B770BC080916405882349F080919E
+:102E1000E80080FFF8CF8091E8008E778093E8008B
+:102E200008952091E4003091E50095E64091EC0092
+:102E3000842F817040FF22C08091E80080FD1CC07B
+:102E400080916405882391F0853091F08091EB00AA
+:102E500085FD10C04091E4005091E50042175307F2
+:102E600029F39A01915011F784E0089582E00895C2
+:102E700083E0089581E0089580E008954091E8009E
+:102E800042FFDECF08950E94B1170E94B917E0EE0D
+:102E9000F0E0808181608083E8EDF0E080818F77D1
+:102EA000808319BCA7EDB0E08C918E7F8C938081DC
+:102EB0008F7E80831092630508950F931F93CF93A5
+:102EC000DF930E94B1170E94B917C8EDD0E0888146
+:102ED0008F77888388818068888388818F7D8883C5
+:102EE00019BC109264051092600510926205109250
+:102EF000610500EE10E0F80180818B7F808388817E
+:102F00008160888342E060E080E00E94BD16E1EECF
+:102F1000F0E080818E7F8083E2EEF0E0808181604E
+:102F20008083808188608083F80180818E7F8083A8
+:102F3000888180618883DF91CF911F910F910895DF
+:102F4000E8EDF0E080818F7E8083E7EDF0E0808126
+:102F50008160808384E082BF81E0809363050C946C
+:102F60005D17E8EDF0E080818E7F80831092E200B3
+:102F700008951092DA001092E10008951F920F92C6
+:102F80000FB60F9211242F933F934F935F936F933C
+:102F90007F938F939F93AF93BF93EF93FF93809112
+:102FA000E10082FF0BC08091E20082FF07C08091A8
+:102FB000E1008B7F8093E1000E94251A8091DA0066
+:102FC00080FF1FC08091D80080FF1BC08091DA0075
+:102FD0008E7F8093DA008091D90080FF0DC080E160
+:102FE00089BD82E189BD09B400FEFDCF81E08093F7
+:102FF00064050E94291405C019BC109264050E9442
+:1030000037148091E10080FF19C08091E20080FFB9
+:1030100015C08091E2008E7F8093E2008091E200F3
+:1030200080618093E2008091D80080628093D80014
+:1030300019BC85E0809364050E943B148091E100F7
+:1030400084FF30C08091E20084FF2CC080E189BD04
+:1030500082E189BD09B400FEFDCF8091D8008F7D4B
+:103060008093D8008091E1008F7E8093E100809171
+:10307000E2008F7E8093E2008091E2008160809385
+:10308000E20080916005882311F084E007C0809100
+:10309000E30087FD02C081E001C083E08093640506
+:1030A0000E943C148091E10083FF29C08091E200DE
+:1030B00083FF25C08091E100877F8093E10082E05B
+:1030C00080936405109260058091E1008E7F80936B
+:1030D000E1008091E2008E7F8093E2008091E20027
+:1030E00080618093E20042E060E080E00E94BD16D3
+:1030F0008091F00088608093F0000E943A14FF9164
+:10310000EF91BF91AF919F918F917F916F915F915F
+:103110004F913F912F910F900FBE0F901F901895D8
+:103120001F920F920FB60F9211242F933F934F933C
+:103130005F936F937F938F939F93AF93BF93CF933F
+:10314000DF93EF93FF93C091E900CF708091EC0083
+:10315000D82FD17080FDD0E81092E9008091F00066
+:10316000877F8093F00078940E94D4181092E90031
+:103170008091F00088608093F000CD2BCF70C093D9
+:10318000E900FF91EF91DF91CF91BF91AF919F91B6
+:103190008F917F916F915F914F913F912F910F9000
+:1031A0000FBE0F901F9018951F93CF93DF93CDB74D
+:1031B000DEB7AA970FB6F894DEBF0FBECDBFE5E627
+:1031C000F5E088E08E0F9091F10091938E13FBCF84
+:1031D0000E9452148091E80083FF1FC18091650511
+:1031E00090916605492F50E04A30510508F015C10D
+:1031F000FA01E559FF4F0C944731803881F082384D
+:1032000009F00BC1809169058F708093E90080916E
+:10321000EB0085FB882780F91092E90006C08091B9
+:10322000610590916205911182609091E800977F0D
+:103230009093E8008093F1001092F100C8C0282F0D
+:103240002D7F09F0EAC0882319F0823061F0E5C0D3
+:1032500080916705813009F0E0C0933009F080E08B
+:10326000809362052BC080916705811127C08091F2
+:1032700069058F7009F4D1C08093E9002091EB00BB
+:1032800020FF1CC0933021F48091EB00806214C0B9
+:103290009091EB0090619093EB0021E030E0A90168
+:1032A00002C0440F551F8A95E2F74093EA0010923E
+:1032B000EA008091EB0088608093EB001092E900B7
+:1032C0008091E800877F86C08111A7C010916705B3
+:1032D0001F778091E3008078812B8093E3008091B9
+:1032E000E800877F8093E8000E94F2168091E80052
+:1032F00080FFFCCF8091E30080688093E300111190
+:1033000002C082E001C083E08093640586C08058DB
+:10331000823008F082C080916705909168058C3DED
+:1033200053E0950779F583E08A838AE289834FB772
+:10333000F894DE01139620E03EE051E2E32FF0E046
+:1033400050935700E49120FF03C0E295EF703F5F78
+:10335000EF708E2F90E0EA3010F0C79601C0C09653
+:103360008D939D932F5F243149F74FBF8091E800E3
+:10337000877F8093E8006AE270E0CE0101960E94A8
+:10338000F91514C0AE014F5F5F4F609169050E944F
+:103390004015BC01009709F440C09091E800977F68
+:1033A0009093E80089819A810E945C168091E800E0
+:1033B0008B778093E80031C0803879F58091E80000
+:1033C000877F8093E800809160058093F100809171
+:1033D000E8008E778093E8000E94F2161EC08111EB
+:1033E0001CC0909167059230C0F48091E800877FFF
+:1033F0008093E800909360050E94F216809160052A
+:10340000811106C08091E30087FD02C081E001C008
+:1034100084E0809364050E943E148091E80083FF5D
+:103420000AC08091E800877F8093E8008091EB00DC
+:1034300080628093EB00AA960FB6F894DEBF0FBEB1
+:10344000CDBFDF91CF911F9108950895CF938091C3
+:1034500064058823A1F0C091E900CF709091EC0041
+:10346000892F817090FD80E8C82B1092E90080912F
+:10347000E80083FD0E94D418CF70C093E900CF917B
+:1034800008959093E4048093E3040895E091E304A5
+:10349000F091E404309721F00190F081E02D09943F
+:1034A00080E00895E091E304F091E404309721F086
+:1034B0000280F381E02D09940895E091E304F091F6
+:1034C000E404309721F00480F581E02D09940895FB
+:1034D0002091E1043091E2048217930771F09093F8
+:1034E000E2048093E104E091E304F091E404309776
+:1034F00021F00680F781E02D099408952091DF04E2
+:103500003091E0048217930771F09093E004809368
+:10351000DF04E091E304F091E404309721F00084AB
+:10352000F185E02D0994089508950C94941A0E9451
+:103530001B260E94B30B0E94E5260C94B62C5F92CA
+:103540006F927F928F929F92AF92BF92CF92DF92B3
+:10355000EF92FF920F931F93CF93DF9300D000D091
+:103560001F92CDB7DEB70E94F80B9EEEC92E94E0F5
+:10357000D92E03E010E0AA24A394B12C502E802F62
+:103580000E94730C4C01F601729062906F016826E4
+:10359000792661147104A1F40150110978F78FEFB5
+:1035A00089838A831B820E9424268160782F9D83D1
+:1035B0008C8349815A816B818D810E944F1B38C059
+:1035C0008091430581FD0E947C0C2BE030E0750169
+:1035D000022E02C0EE0CFF1C0A94E2F7C7018621FE
+:1035E0009721892B09F129835A828E209F2091E00F
+:1035F000892809F490E09B830E9424268160782F1B
+:103600009D838C8349815A816B818D810E944F1BE0
+:10361000000F111FF801EA51FB4F80819181E826CC
+:10362000F926F182E08204C02150310980F6B4CF3E
+:103630000E94E8291091E5040E94461A1817D1F05B
+:103640000E94461A8093E5040F900F900F900F9000
+:103650000F90DF91CF911F910F91FF90EF90DF902E
+:10366000CF90BF90AF909F908F907F906F905F9022
+:103670000C949D0B0F900F900F900F900F90DF9177
+:10368000CF911F910F91FF90EF90DF90CF90BF905F
+:10369000AF909F908F907F906F905F900895CF93A1
+:1036A000DF93CDB7DEB72B970FB6F894DEBF0FBE12
+:1036B000CDBF4F83588769877A878B87DE01119644
+:1036C00086E0FD0111928A95E9F785E0FE013796C3
+:1036D00001900D928A95E1F749815A816B817C8135
+:1036E0008D819E810E94C6212B960FB6F894DEBF75
+:1036F0000FBECDBFDF91CF910895CF93882309F4FA
+:10370000C2C0C82F823859F40E94461A81FDBBC03E
+:1037100089E30E94A0240E946D2589E30CC08338B0
+:1037200079F40E94461A80FDAEC083E50E94A02471
+:103730000E946D2583E50E94E224CF910C946D25B3
+:10374000843859F40E94461A82FD9DC087E40E9485
+:10375000A0240E946D2587E4EECF8CEF8C0F813A78
+:1037600048F48C2F0E941E2C81118DC08C2F0E943A
+:10377000A024E3CF80E28C0F883048F4C77081E04A
+:1037800001C0880FCA95EAF70E942625D6CF8BE59F
+:103790008C0F833078F4C53A29F0C63A31F083E8CB
+:1037A00090E005C081E890E002C082E890E0CF910F
+:1037B0000C94681A88E58C0F833108F064C0C83A0D
+:1037C00039F1C93A41F1CA3A49F1CB3A51F1CC3A0F
+:1037D00059F1CD3A61F1C03B69F1CE3A71F1CF3A7E
+:1037E00079F1C13B81F1C23B89F1C33B91F1C43B0B
+:1037F00099F1C53BA1F1C63BA9F1C73BB1F1C83B6B
+:10380000B9F1C93BC1F1CA3BC9F180E090E038C0D1
+:1038100082EE90E035C089EE90E032C08AEE90E012
+:103820002FC085EB90E02CC086EB90E029C087EBA1
+:1038300090E026C08CEC90E023C08DEC90E020C09E
+:1038400083E891E01DC08AE891E01AC082E991E026
+:1038500017C084E991E014C081E292E011C083E2D4
+:1038600092E00EC084E292E00BC085E292E008C0D4
+:1038700086E292E005C087E292E002C08AE292E02E
+:10388000CF910C947E1ACF910895882309F44BC0F0
+:10389000823859F40E94461A81FF45C089E30E948C
+:1038A000A0240E946D2589E30CC0833871F40E9426
+:1038B000461A80FF38C083E50E94A0240E946D252F
+:1038C00083E50E94E2240C946D25843859F40E940B
+:1038D000461A82FF28C087E40E94A0240E946D251A
+:1038E00087E4EFCF9CEF980F913A58F390E2980F4E
+:1038F000983050F4877091E001C0990F8A95EAF7EB
+:10390000892F0E942C25DFCF9BE5980F933020F460
+:1039100080E090E00C94681A885A833120F480E0AB
+:1039200090E00C947E1A0895882321F00E942625A9
+:103930000C946D250895882321F00E942C250C9469
+:103940006D2508957F928F929F92AF92BF92CF92F2
+:10395000DF92EF92FF920F931F93CF93DF931F920B
+:10396000CDB7DEB77C01C62E772EFC01058102950E
+:103970000F70128111110E9443250E9499248823FF
+:1039800079F0112369F080E28C0D883048F082E0F4
+:103990000E9482240E94992491E0D82ED92601C049
+:1039A000D12CE72DE295EF70F0E0EB58FF4F0C942F
+:1039B0004731872D807F072D0F70882311F00295E6
+:1039C000007F112389F0002309F499C180E28C0D56
+:1039D000883020F4802F0E94262503C0802F0E946B
+:1039E00036250E946D258BC18C2D0E94451C00231D
+:1039F00009F4C3C180E28C0D883020F4802F0E942E
+:103A00002C2503C0802F0E943C250E946D25B5C146
+:103A1000872D807F972D9F70803211F4892F03C0EE
+:103A2000892F8295807FCC2021F0F1E0CF16A1F084
+:103A30001DC0112339F0002319F1013009F50E944E
+:103A400056259BC1002319F0013009F496C18983E2
+:103A50000E945925898110C1112321F0063008F0F8
+:103A60008CC10EC0053008F088C106C1112359F081
+:103A7000002331F0F701958190FF41C19F7095833C
+:103A80000E94941C7AC1002309F4F6C03EC1872D20
+:103A900086958695837090E0009719F0019761F004
+:103AA0006CC1112321F08C2D972D937002C080E002
+:103AB00090E00E94681A61C1112321F08C2D972D8E
+:103AC000937002C080E090E00E947E1A56C18C2D57
+:103AD000112319F00E94F02802C00E9458290E9468
+:103AE000DD294BC1872D837009F052C0111145C1EA
+:103AF0008C2D829586958770880F880F9C2D9F70DE
+:103B0000892E912CA12CB12C082E04C0880C991C54
+:103B1000AA1CBB1C0A94D2F7C4FE14C00FE010E02C
+:103B200020E030E0B901A80104C0440F551F661F12
+:103B3000771F8A95D2F7CB01BA0160957095809571
+:103B4000909503C060E070E0CB01272D2695269567
+:103B5000237030E02230310569F02330310589F0DF
+:103B6000682979298A299B292130310571F00E9421
+:103B70000E2303C1682979298A299B290E942A23B7
+:103B8000FCC00E940E23C501B4010E94F222F5C0C0
+:103B9000112319F0872D817001C08695882309F4BF
+:103BA000ECC08C2D829586958770880F880F9C2D90
+:103BB0009F70892E912CA12CB12C082E04C0880C4A
+:103BC000991CAA1CBB1C0A94D2F7C4FE14C00FE0B7
+:103BD00010E020E030E0B901A80104C0440F551FF7
+:103BE000661F771F8A95D2F7CB01BA016095709551
+:103BF0008095909503C060E070E0CB01272D26955D
+:103C000026952370422F50E04230510569F0433031
+:103C1000510589F0682979298A299B294130510564
+:103C200071F00E94E823A9C0682979298A299B2973
+:103C30000E940424A2C00E94E823C501B4010E948E
+:103C4000CC239BC08C2D90E0FC01E05EF109E531B6
+:103C5000F10508F050C0EB57FF4F0C9447310C2D85
+:103C60000F70872D8F71112321F00E946523802F03
+:103C700007CF0E948623802F0E949B1C7EC01123A9
+:103C800041F0053008F079C0872D8F710E94AB2379
+:103C900074C0063008F071C0F7CF112339F0872DBA
+:103CA0008F710E94652369C01123C9F3872D8F711D
+:103CB0000E94862362C0112329F0872D8F710E94F4
+:103CC00050235BC00E94462358C0112351F0172D8A
+:103CD0001F71812F0E94652363E0812F0E94792448
+:103CE0004CC081E00E948224023008F446C082E089
+:103CF0000E94822442C0112331F0002381F28C2DD6
+:103D00000E947D1B3AC0002389F28C2D0E94451C25
+:103D100034C0472D4F706C2DC7010E9465040E946E
+:103D20006A222BC0111129C0472D4F7050E042303C
+:103D30005105B9F04CF44115510581F04130510560
+:103D4000E1F40E94DE2C19C04330510569F0443083
+:103D5000510599F48C2D0E94302D0FC00E94C72C64
+:103D60000CC00E94FA2C09C00E940D2D06C0472DE0
+:103D70004F706C2DC7010E943E08DD20F9F00E94B3
+:103D8000752480FD1BC0F70112820E946F240E94DF
+:103D90006523C7010E94ED1E0E946F240F90DF91E2
+:103DA000CF911F910F91FF90EF90DF90CF90BF9038
+:103DB000AF909F908F907F900C9486230F90DF910F
+:103DC000CF911F910F91FF90EF90DF90CF90BF9018
+:103DD000AF909F908F907F9008950F931F93CF93F4
+:103DE000DF93EC01888199812B813C81232BB9F0F1
+:103DF0009F3F11F48F3F99F0CE010E943D0688232A
+:103E000071F0688179818A810E946B248C010E9403
+:103E100020240E94E722B801CE010E94A21CDF915B
+:103E2000CF911F910F9108950E9443250E94532521
+:103E30000E9418250E946D250E948E2A0E94DD296D
+:103E400080E090E00E94681A80E090E00C947E1A76
+:103E50000E9433250C94141F0E946024292F229560
+:103E60002F7030E02C3031054CF42A3031056CF4E1
+:103E70002250310922303105A8F407C02C30310519
+:103E800069F02F30310551F00DC0803F69F018F412
+:103E9000803E40F409C0843F29F406C093FB882784
+:103EA00080F9089580E0089581E00895CF93DF932D
+:103EB00000D000D01F92CDB7DEB70F900F900F90BB
+:103EC0000F900F90DF91CF910895CF93DF9300D0A3
+:103ED00000D000D0CDB7DEB726960FB6F894DEBF7F
+:103EE0000FBECDBFDF91CF9108951F93CF93DF9386
+:103EF000C091EE0416E08091EF04C81799F0D0E06D
+:103F00001C9FF0011D9FF00D1124E051FB4F4081DB
+:103F1000518162817381848195810E94651F219600
+:103F2000C770E9CFDF91CF911F910895409120058F
+:103F300050912105609122057091230580912405FF
+:103F4000909125050C94651F8091250582958F70B1
+:103F500009F054C080912205882309F44FC0809154
+:103F6000EE04A091EF04609120057091210540912D
+:103F7000230550912405B6E08A1709F43FC090E06C
+:103F800041155105C1F17F3F11F46F3FA1F1B89F79
+:103F9000F001B99FF00D1124E051FB4F2181721304
+:103FA0002AC02081621327C02281211124C02381CD
+:103FB00034812417350710F421503109241B350BA7
+:103FC000283C3105C0F4209125052F7020612093F5
+:103FD000250526E0289FF001299FF00D1124EB50C4
+:103FE000FB4F80818F708061808380E295E00E942A
+:103FF000ED1E0C94751F01968770BECF0895CF9269
+:10400000DF92EF92FF920F931F93CF93DF93CDB781
+:10401000DEB762970FB6F894DEBF0FBECDBF8C013E
+:1040200085E0F801DE011D9601900D928A95E1F779
+:10403000D8014C9111965C91119712966C91129740
+:104040001396CD90DC901497309120057091210546
+:104050008091230590912405009709F46BC17F3F5F
+:1040600019F43F3F09F466C1E0902205EE2009F4FF
+:10407000C0C020912505C816D90628F0F601E81B16
+:10408000F90BCF0104C0809590958C0D9D1DFF24E8
+:10409000F394883C910578F0F12C207F09F0C6C09C
+:1040A0007C2DD98AC88A89890E94561F80E295E0B2
+:1040B0000E94ED1EB1C0822F807F09F046C07513AB
+:1040C00014C0341312C0611110C02F7020612093EE
+:1040D00025050E94961F80E295E00E94ED1E8091CA
+:1040E0002505D80115968C932EC0CD2819F15F3F78
+:1040F00011F44F3FF9F0F62E61111CC08091EE04CF
+:104100002091EF0436E0821709F45AC090E0389FFE
+:10411000F001399FF00D1124E051FB4F71815713CD
+:1041200006C07081471303C07281711103C00196EC
+:104130008770E9CFF62E662309F418C18091250512
+:10414000816080932505F12C11C1751308C03413CB
+:1041500006C0611104C080912505D801C3C04D87F8
+:104160005E878D859E856A8B0E942C1F6A898823B5
+:10417000E1F16623D1F120912505822F82958F7080
+:1041800090E0029774F08091200590912105988726
+:104190008F831986DB86CA862C87CE0107960E94FC
+:1041A000ED1E86E0F801A0E2B5E001900D928A953F
+:1041B000E1F70E94A41F0E94961FFF24F394D6C02B
+:1041C0004D875E878D859E850E946024292F2295CC
+:1041D0002F7030E0223031050CF0BCC09F7009F028
+:1041E000B6C0805E883008F4C1C0C8010E94ED1ED0
+:1041F000E4CFC816D90608F453C0F601E81BF90B42
+:10420000CF01883C910508F450C0F12C7C2DD98A4F
+:10421000C88A89890E94561FE0E2F5E086E0DF0146
+:104220001D928A95E9F70E94961FA0C0751314C0CD
+:10423000341312C0611110C080912505F8018583E7
+:10424000C8010E94ED1E86E0E0E2F5E0DF011D926C
+:104250008A95E9F7FE2C8AC04D875E878D859E85FD
+:104260006A8B0E942C1F6A89882309F4BECF6623BB
+:1042700009F4BBCF20912505822F82958F7090E0A5
+:1042800002970CF48ECF80912005909121059A839E
+:1042900089831B82DD82CC822E83CE0101967FCF63
+:1042A000809590958C0D9D1DACCFF62E662309F45C
+:1042B0009CCF75132EC034132CC02091250520FDF2
+:1042C0001FC0822F82958F70D9F0D80115962C933C
+:1042D00015978F3049F08F5F982F9295907F822F9E
+:1042E0008F70892B15968C93C8010E94ED1E86E075
+:1042F000F801A0E2B5E001900D928A95E1F793CF25
+:1043000086E0F801A0E2B5E001900D928A95E1F710
+:104310002DC04D875E878D859E850E942C1F811143
+:1043200040CF80912505816080932505C8010E94BA
+:10433000ED1E1CC0662309F458CF4D875E878D851E
+:104340009E850E942C1F882309F44FCF2ACF81110C
+:1043500048CF0CC0243031050CF047CF9F7009F4D2
+:1043600040CFF8019581907F09F03BCF8F2D629669
+:104370000FB6F894DEBF0FBECDBFDF91CF911F9176
+:104380000F91FF90EF90DF90CF9008951F93CF9300
+:10439000DF93CDB7DEB72C970FB6F894DEBF0FBE14
+:1043A000CDBF4F83588769877A878B879C87CE01DB
+:1043B00007960E94FF1F882369F08F8198852A85C0
+:1043C0003B85232BF1F19F3F09F063C08F3F09F03C
+:1043D00060C037C086E0FE013796DE01119601907D
+:1043E0000D928A95E1F76F817885EA85FB85309794
+:1043F00041F17F3F11F46F3F21F12091EF0430E054
+:10440000C9010196877099274091EE0450E0841706
+:10441000950709F447C069837A83FD83EC8396E0AE
+:10442000929FD001939FB00D1124A051BB4FFE016C
+:10443000319601900D929A95E1F78093EF040E94D6
+:10444000751F16E08091EE049091EF048917C1F179
+:10445000189FC001112480519B4F0E94FF1F882389
+:1044600079F1E091EE041E9FF0011124E051FB4F21
+:104470004081518162817381848195810E94651F91
+:104480008091EE0490E00196877099278093EE0466
+:10449000D9CF4F81588569857A858B859C850E9407
+:1044A000651FCFCF0E94281F1092EF041092EE04D8
+:1044B000E0E2F5E086E0DF011D928A95E9F7C1CFE1
+:1044C0002C960FB6F894DEBF0FBECDBFDF91CF9113
+:1044D0001F910895EF92FF920F931F93CF93DF9355
+:1044E0008C01009709F46CC0F12CEE24E394E801F0
+:1044F0002196F8018491843740F4843008F051C04B
+:10450000813081F0823019F15BC0853709F444C0F5
+:10451000A8F19CE7980F903708F052C08F770E945F
+:10452000451C41C00E5F1F4FFE01C49180E28C0FFD
+:10453000883048F4C7708E2D01C0880FCA95EAF7FD
+:104540000E94462514C08C2F0E947D1B2DC00E5F3B
+:104550001F4FFE01C49180E28C0F883058F4C77061
+:104560008E2D01C0880FCA95EAF70E944C250E9443
+:104570006D251AC08C2F0E94451C16C00E5F1F4F60
+:10458000FE01C491CC2381F08FE99FE00197F1F700
+:1045900000C00000C150F6CF0E5F1F4FFE01F49027
+:1045A00003C00E947D1B8E018F2D882309F49FCFAD
+:1045B000EFE9FFE03197F1F700C000008150F5CF3F
+:1045C000DF91CF911F910F91FF90EF900895089583
+:1045D00060932A0570932B0580932C0590932D05ED
+:1045E0000C94141F0F931F9300912A0510912B0513
+:1045F00020912C0530912D05DC01CB01802B912BD6
+:10460000A22BB32B80932A0590932B05A0932C0506
+:10461000B0932D051F910F910C94141F0F931F93AE
+:1046200000912A0510912B0520912C0530912D0524
+:10463000DC01CB0180239123A223B32380932A059D
+:1046400090932B05A0932C05B0932D051F910F91EE
+:104650000C94141F0F931F9300912A0510912B05A2
+:1046600020912C0530912D05DC01CB01802791276D
+:10467000A227B32780932A0590932B05A0932C059E
+:10468000B0932D051F910F910C94141F10922605C5
+:104690001092270510922805109229050C94141FDA
+:1046A00041E050E060E070E004C0440F551F661F19
+:1046B000771F8A95D2F7409326055093270560937C
+:1046C0002805709329050C94141F41E050E060E028
+:1046D00070E004C0440F551F661F771F8A95D2F7FC
+:1046E0008091260590912705A0912805B091290574
+:1046F000482B592B6A2B7B2B40932605509327057B
+:1047000060932805709329050C94141F41E050E034
+:1047100060E070E004C0440F551F661F771F8A9544
+:10472000D2F74095509560957095809126059091AF
+:104730002705A0912805B0912905482359236A230C
+:104740007B2340932605509327056093280570939B
+:1047500029050C94141F41E050E060E070E004C0B3
+:10476000440F551F661F771F8A95D2F78091260543
+:1047700090912705A0912805B09129054827592730
+:104780006A277B27409326055093270560932805C9
+:10479000709329050C94141F0F931F930091260505
+:1047A000109127052091280530912905DC01CB01C6
+:1047B000802B912BA22BB32B80932605909327055A
+:1047C000A0932805B09329051F910F910C94141FF5
+:1047D0000F931F930091260510912705209128051E
+:1047E00030912905DC01CB0180239123A223B3233F
+:1047F0008093260590932705A0932805B09329055B
+:104800001F910F910C94141F0F931F930091260575
+:10481000109127052091280530912905DC01CB0155
+:1048200080279127A227B3278093260590932705F9
+:10483000A0932805B09329051F910F910C94141F84
+:104840000895CF92DF92EF92FF920F931F93CF9331
+:10485000DF938C01C0902A05D0902B05E0902C05A9
+:10486000F0902D058091260590912705A0912805AF
+:10487000B0912905C82AD92AEA2AFB2ACFE1D0E03B
+:10488000D701C6010C2E04C0B695A79597958795BC
+:104890000A94D2F780FF06C0B8018C2F0E94C30A89
+:1048A000019721F4219760F780E001C08C2FDF9100
+:1048B000CF911F910F91FF90EF90DF90CF900895CF
+:1048C000CF93DF93EC010E942124BE010E94C30A12
+:1048D000DF91CF910895CB010E94602408958091CB
+:1048E0002E05859585958595089580912E0587706F
+:1048F000089598E0899F90011124262B20932E057E
+:104900000C94652320912E058095822380932E059B
+:10491000982F977069F430E0482F552747FD509540
+:104920002417350729F08595859585950C94862360
+:10493000089590912E05977081E009F480E0089524
+:1049400090916503992321F090916603911109C01C
+:104950002091670330916803F90132969FEF40E0A0
+:104960001FC0982F9695969596959F3050F5E0919B
+:104970006703F0916803E90FF11D877021E030E0D3
+:10498000A90102C0440F551F8A95E2F7CA0191811F
+:10499000892B818308959F3F39F04F5F4E3041F05E
+:1049A00051915813F8CF0DC05111F7CF942FF5CF77
+:1049B0009F3F39F0F901E90FF11D97FDFA958283C8
+:1049C0000895089590916503992321F090916603CD
+:1049D000911109C02091670330916803F901329663
+:1049E000205F3F4F1FC0982F9695969596959F30C4
+:1049F000F0F4E0916703F0916803E90FF11D87700F
+:104A000021E030E0A90102C0440F551F8A95E2F76A
+:104A1000CA01809591818923818308953196E21797
+:104A2000F30729F090819813F9CF1082F7CF0895FA
+:104A300081E090E0E0916703F0916803E80FF91FCF
+:104A40001082019680319105A9F708959091420551
+:104A5000892B809342050895809590914205892382
+:104A60008093420508951092420508959091410562
+:104A7000892B809341050895809590914105892364
+:104A80008093410508951092410508959091400545
+:104A9000892B809340050895809590914005892346
+:104AA00080934005089510924005089580932F0546
+:104AB000089510922F0508958091670390916803DF
+:104AC000FC0131969C01205F3F4F80E09191911154
+:104AD0008F5FE217F307D1F70895E0916703F09134
+:104AE0006803809142058083E0916703F091680339
+:104AF000908180914105892B8083E0916703F0913B
+:104B00006803908180914005892B808380912F05D7
+:104B1000882361F0E0916703F09168039081892B0D
+:104B200080830E945C25811110922F05809167037C
+:104B3000909168030C94521A20E0009739F0AC0170
+:104B400041505109842395232F5FF7CF822F089579
+:104B500080916405843039F11092440520E488E1A5
+:104B600090E00FB6F894A895809360000FBE209354
+:104B7000600080E00E94C00380E00E949D0B83B72C
+:104B8000817F846083BF83B7816083BF7894889579
+:104B900083B78E7F83BF88E10FB6F894809360005F
+:104BA000109260000FBE08950895089580E00E945D
+:104BB000C0030E94D4250E94F80B0E94D5250E94B4
+:104BC0007D0C91E0811101C090E0892F08950E9431
+:104BD000281F80E00E94C0030E94B62C0E94461A43
+:104BE0000C949D0B1F920F920FB60F9211248F936E
+:104BF0009F93AF93BF9380914405811113C080911F
+:104C0000450590914605A0914705B091480541960C
+:104C1000A11DB11D8093450590934605A0934705BE
+:104C2000B0934805BF91AF919F918F910F900FBEA8
+:104C30000F901F90189582E084BD93E095BD9AEF88
+:104C400097BD80936E0008952FB7F8948091450525
+:104C500090914605A0914705B09148052FBF089552
+:104C6000CF92DF92EF92FF920F931F932FB7F8949A
+:104C70004091450550914605609147057091480562
+:104C80002FBF6A017B01EE24FF248C0120E030E07D
+:104C9000C016D106E206F30610F4415051099A01FC
+:104CA000281B390BC9011F910F91FF90EF90DF90E6
+:104CB000CF9008951F920F920FB60F9211248F93E9
+:104CC0009F93AF93BF938091450590914605A09126
+:104CD0004705B09148050196A11DB11D809345057A
+:104CE00090934605A0934705B0934805BF91AF91B7
+:104CF0009F918F910F900FBE0F901F9018950E945B
+:104D00004317F8942FEF87EA91E6215080409040B6
+:104D1000E1F700C0000087E090EBDC0180936F05B5
+:104D200090937005A0937105B09372059CE088E1A3
+:104D30000FB6F894A895809360000FBE9093600022
+:104D4000FFCFCF92DF92EF92FF920F931F93CF93FB
+:104D5000DF93D82FC3E0EE24E394F12C8C2F0E9434
+:104D6000730C6C010BE010E09701002E02C0220FC3
+:104D7000331F0A94E2F72C213D21232B49F0602FA9
+:104D80007C2F80E00E943F08D81302C081E006C05B
+:104D90000150110948F7C15008F780E0DF91CF9129
+:104DA0001F910F91FF90EF90DF90CF900895CF93D8
+:104DB000C82F8CE20E94A126882321F08C2FCF914E
+:104DC0000C94A12680E0CF910895CF930E943628BD
+:104DD000811102C00E941228C5E6C15049F00E940C
+:104DE000F80B8FE39CE90197F1F700C00000F5CFC5
+:104DF00089E20E94D726811113C18AE20E94D72638
+:104E000081110E94122885E00E94D72681110E94FC
+:104E10007F260E9441288093430587E00E94D72681
+:104E20008823A9F18BE10E94D726882351F0809135
+:104E3000430581FB222720F991E0922790FB81F91D
+:104E40000EC08EE00E94D726882361F08091430532
+:104E500082FB222720F991E0922790FB82F9809330
+:104E6000430515C080E10E94D72690914305882311
+:104E700041F093FB222720F981E0822780FB93F900
+:104E800004C0892F809580FB90F990934305809111
+:104E900043050E9445280E94532880936D0580EEAB
+:104EA0000E94D726882341F080916D05982F909518
+:104EB00090FB80F980936D0589E30E94D7268823B3
+:104EC00059F080916D0581FB222720F991E092270E
+:104ED00090FB81F980936D0582EE0E94D72688238E
+:104EE00059F080916D0582FB222720F991E09227ED
+:104EF00090FB82F980936D0586EE0E94D726882369
+:104F000059F080916D0583FB222720F991E09227CB
+:104F100090FB83F980936D0583EE0E94D72688234A
+:104F200059F080916D0584FB222720F991E09227AA
+:104F300090FB84F980936D0585E30E94D726882332
+:104F400059F080916D0585FB222720F991E0922789
+:104F500090FB85F980936D0581E30E94D726882315
+:104F600059F080916D0586FB222720F991E0922768
+:104F700090FB86F980936D0581E10E94D7268823F6
+:104F800059F080916D0587FB222720F991E0922747
+:104F900090FB87F980936D0580916D050E945728DD
+:104FA00080916D0587FB882780F98093660387E2EF
+:104FB0000E94D726C82F8EE10E94D7268111C26099
+:104FC0008FE10E94D7268111C46080E20E94D7261B
+:104FD0008111C86081E20E94D7268111C06182E2FE
+:104FE0000E94D7268111C06283E20E94D7268111D8
+:104FF000C06484E20E94D726882311F0C06802C0F2
+:10500000CC2329F08C2F0E944E286C2F03C00E94C5
+:105010004A28682F70E080E090E0CF910C94E8225D
+:10502000CF9108956DEE7EEF80E090E00E946D31AB
+:1050300060E082E090E00E945B3160E083E090E01D
+:105040000E945B3160E084E090E00E945B3160E0B0
+:1050500085E090E00E945B3160E086E090E00E9495
+:105060005B316FEF87E090E00C945B3180E090E083
+:105070000E94553121E08D3E9E4F09F020E0822FA5
+:10508000089582E090E00C944D31682F82E090E02A
+:105090000C945B3183E090E00C944D31682F83E0F9
+:1050A00090E00C945B3184E090E00C944D31682FDB
+:1050B00084E090E00C945B3186E090E00C944D31FC
+:1050C000682F86E090E00C945B3187E090E00C94D0
+:1050D0004D31682F87E090E00C945B3180914B0557
+:1050E00080FF0BC060916C0385E0689FB0011124C4
+:1050F00075956795759567952BC081FF09C060917F
+:105100006C0385E0689FB00111247595679520C0F8
+:1051100082FF07C060916C0385E0689FB001112495
+:1051200017C090914C059923D1F060916B039617AD
+:1051300088F720916C0385E0289F90011124929FAD
+:10514000A001939F500D112470E0CA010E943331D9
+:105150006038710540F46115710539F002C065E0F1
+:1051600070E0862F08958FE7089581E0089580917B
+:105170004B0580FF08C060916A0370E075956795E4
+:105180007595679521C081FF06C060916A0370E044
+:105190007595679519C082FF04C060916A0370E03D
+:1051A00010C090914C059923C1F060916903961746
+:1051B000A0F780916A03899FC001112470E00E94CA
+:1051C00033316038710528F46115710521F0862F9F
+:1051D00008958FE7089581E0089561E070E0F4CFCD
+:1051E000803F21F40E946E28819504C0813F29F4FC
+:1051F0000E946E2880934F050895823F21F40E94FB
+:105200006E28819504C0833F29F40E946E28809304
+:105210004E050895893F19F40E94B72805C08A3FBA
+:1052200031F40E94B72881958093500508958B3FF3
+:1052300021F40E94B728819504C08C3F29F40E9474
+:10524000B728809351050895843F21F480914D053E
+:10525000816017C0853F21F480914D05826011C0A7
+:10526000863F21F480914D0584600BC0873F21F477
+:1052700080914D05886005C0883F31F480914D05CF
+:10528000806180934D0508958D3F21F480914B05F9
+:1052900081600BC08E3F21F480914B05826005C078
+:1052A0008F3F29F480914B05846080934B050895CE
+:1052B000803F39F480914F0587FF6CC010924F05F5
+:1052C00069C0813F29F480914F051816BCF362C074
+:1052D00090914E05823F29F497FF5CC010924E05D5
+:1052E00059C0833F19F41916CCF354C0893F41F4D7
+:1052F0008091500518160CF04DC0109250054AC010
+:105300008A3F29F48091500587FF44C0F6CF8B3F38
+:1053100039F48091510587FF3DC0109251053AC084
+:105320008C3F29F4809151051816BCF333C0843F9B
+:1053300021F480914D058E7F17C0853F21F4809127
+:105340004D058D7F11C0863F21F480914D058B7FE7
+:105350000BC0873F21F480914D05877F05C0883FB2
+:1053600031F480914D058F7E80934D0513C08D3FA4
+:1053700021F480914B058E7F0BC08E3F21F48091EC
+:105380004B058D7F05C08F3F29F480914B058B7FA6
+:1053900080934B0580914E0581110EC080914F0581
+:1053A00081110AC080915005811106C0809151057C
+:1053B000811102C010924C0508958DE495E00E9481
+:1053C0005D1A0E94242690934A058093490508950A
+:1053D0001F93CF93DF938091490590914A050E94D6
+:1053E0003026AC0190914C05992321F020916D035A
+:1053F00030E006C020916E038AE0289F90011124BE
+:105400004217530708F486C080914E05C0914F059E
+:10541000D091500510915105811107C0C11176C07E
+:10542000D11174C0111172C075C09F3F19F09F5FF8
+:1054300090934C05181624F40E946E2880934E0514
+:1054400080914E0587FF05C00E946E28819580934C
+:105450004E051C1624F40E946E2880934F058091FF
+:105460004F0587FF05C00E946E28819580934F05E8
+:1054700060914E05662339F1C0914F05CC2319F197
+:10548000772767FD7095872F972F0E94552E23E36E
+:1054900033E343E35FE30E94652F0E94222E609373
+:1054A0004E056C2F772767FD7095872F972F0E94E9
+:1054B000552E23E333E343E35FE30E94652F0E940D
+:1054C000222E60934F051D1624F40E94B728809366
+:1054D00050058091500587FF05C00E94B72881952F
+:1054E00080935005111624F40E94B728809351052B
+:1054F0008091510587FF05C00E94B7288195809350
+:105500005105DF91CF911F910C94DD299F3F09F048
+:105510008ECF96CFDF91CF911F910895EDE4F5E006
+:1055200085E0DF011D928A95E9F710924C051092F3
+:105530004B050895833081F128F4813059F0823091
+:10554000D1F00895853009F449C0B8F1863009F4E6
+:1055500056C0089580916E03262F30E0280F311D2C
+:105560002F3F310524F4680F60936E0308958FEF89
+:1055700080936E03089580916D03262F30E0280FED
+:10558000311D2F3F310524F4680F60936D0308959A
+:105590008FEF80936D03089580916C03262F30E088
+:1055A000280F311D2F3F310524F4680F60936C03E1
+:1055B00008958FEF80936C03089580916B03262FDD
+:1055C00030E0280F311D2F3F310524F4680F609320
+:1055D0006B0308958FEF80936B03089580916A03A6
+:1055E000262F30E0280F311D2F3F310524F4680F9E
+:1055F00060936A0308958FEF80936A030895809102
+:105600006903262F30E0280F311D2F3F310524F488
+:10561000680F6093690308958FEF8093690308957D
+:10562000833011F128F4813049F0823091F00895EF
+:10563000853081F120F18630C1F1089580916E03AB
+:10564000681720F4861B80936E03089510926E03F2
+:10565000089580916D03681720F4861B80936D0375
+:10566000089510926D03089580916C03681720F4DB
+:10567000861B80936C03089510926C0308958091AB
+:105680006B03681720F4861B80936B0308951092B8
+:105690006B03089580916A03681720F4861B80933A
+:1056A0006A03089510926A03089580916903681748
+:1056B00020F4861B8093690308951092690308956E
+:1056C0000F931F938B3109F470C0A0F58E3009F44D
+:1056D0007FC0C0F4873009F456C068F4863009F002
+:1056E000A5C080914305817F8E7F8093430581E033
+:1056F000809353059CC0883009F491C08B3009F425
+:105700008EC094C0813109F46DC068F4803109F015
+:105710008DC08091430583FB222720F991E09227D9
+:1057200090FB83F94BC0863109F479C0893109F4C3
+:1057300076C07CC0853309F474C068F4873209F4FC
+:1057400070C028F48E3108F471C08D5155C0893273
+:1057500009F467C06BC0833438F48A3308F04BC057
+:10576000883309F45CC062C0833409F45AC08834B9
+:1057700009F05CC00E94281F0E94AD0C0E94940595
+:105780000E947F264CC090914305892F809581709F
+:1057900080FB90F929F0966098609093430547C08C
+:1057A000997F977F909343053AC08091430581FB91
+:1057B000222720F991E0922790FB81F980934305FD
+:1057C000992369F18091430581608093430527C047
+:1057D0008091430582FB222720F991E0922790FBDC
+:1057E00082F9ECCF0E94281F9091660381E08927FF
+:1057F0008093660314C0895341E050E060E070E09C
+:105800008A019B0104C0000F111F221F331F8A95BC
+:10581000D2F7C901B8010E94E8220E94281F81E046
+:1058200006C061E070E080E090E0F5CF80E01F917D
+:105830000F91089580E0089580E00895CF93C82FD8
+:1058400080915305813069F018F08230C9F184C02D
+:10585000E0916703F09168038081823209F07EC095
+:1058600007C0E0916703F09168038081823261F4A0
+:105870008C2F0E941A2C811104C08C2F0E94602B47
+:105880001DC081E090E01AC08C2F0E941C2C811159
+:1058900014C0C43179F048F4CB3079F0C03109F04C
+:1058A00061C082E08093530508C0C93219F0C83343
+:1058B00021F058C01092530555C081E0817054C04A
+:1058C000C93291F120F5C43179F1B0F4C73009F053
+:1058D00047C08EE180936E0382E380936D038AE07C
+:1058E00080936C0384E180936B0388E080936A0368
+:1058F00088E28093690334C0CE51C63088F5EC2F1E
+:10590000F0E0EA5FFB4F80818093520529C0CE34DE
+:10591000E9F020F4CB3421F56AE013C0C13579F009
+:10592000C235F1F461E00DC080915205882319F071
+:105930001092520515C081E08093530515C061E0B7
+:1059400006C0809152050E949A2A0AC06AE080919E
+:1059500052050E94102B04C01092530580E004C031
+:1059600081E002C080E0AACFCF9108950E9436283E
+:10597000811102C00E9412280E945C2880936E054B
+:1059800080FF02C0869501C080E00C94C003809126
+:105990006E05982F9695292F30E0233031054CF471
+:1059A0009F5F990F8170892B816080936E050E94A3
+:1059B000602880916E0586950C94C00380916E05D9
+:1059C000982F969591F09158990F8170892B80931B
+:1059D0006E058E7F91E009F490E080916E0590FB5A
+:1059E00080F980936E050E94602880916E058695EF
+:1059F0000C94C00380916E05982F909590FB80F9D0
+:105A000080936E050E94602880916E0580FF02C021
+:105A1000869501C080E00C94C00390916E05892F9B
+:105A200086958F5F8F779170843028F4880F892B4B
+:105A300080936E0502C090936E0580916E058E7FF7
+:105A400091E009F490E080916E0590FB80F98093DD
+:105A50006E050E94602880916E0586950C94C003A7
+:105A600020916E05922F96958927982F990F822F56
+:105A70008170892B80936E058E7F91E009F490E010
+:105A800080916E0590FB80F980936E050E946028DE
+:105A900080916E0586950C94C00380916E05869565
+:105AA00008955058BB27AA270ED0D1C1C2D130F0DB
+:105AB000C7D120F031F49F3F11F41EF4B7C10EF4AA
+:105AC000E095E7FB9FC1E92FD3D180F3BA176207B6
+:105AD00073078407950718F071F49EF5EBC10EF477
+:105AE000E0950B2EBA2FA02D0B01B90190010C01EE
+:105AF000CA01A0011124FF27591B99F0593F50F406
+:105B0000503E68F11A16F040A22F232F342F44275D
+:105B1000585FF3CF469537952795A795F040539555
+:105B2000C9F77EF41F16BA0B620B730B840BBAF025
+:105B30009150A1F0FF0FBB1F661F771F881FC2F790
+:105B40000EC0BA0F621F731F841F48F487957795A4
+:105B50006795B795F7959E3F08F0B3CF9395880F5B
+:105B600008F09927EE0F97958795089527D108F4A7
+:105B700081E008950CD06BC163D140F05AD130F070
+:105B800021F45F3F19F03EC1511195C14FC170D151
+:105B900098F39923C9F35523B1F3951B550BBB27F4
+:105BA000AA2762177307840738F09F5F5F4F220FA1
+:105BB000331F441FAA1FA9F333D00E2E3AF0E0E89A
+:105BC00030D091505040E695001CCAF729D0FE2FE6
+:105BD00027D0660F771F881FBB1F26173707480778
+:105BE000AB07B0E809F0BB0B802DBF01FF2793582E
+:105BF0005F4F2AF09E3F510568F004C15CC15F3FD2
+:105C0000ECF3983EDCF3869577956795B795F79515
+:105C10009F5FC9F7880F911D9695879597F908950D
+:105C2000E1E0660F771F881FBB1F621773078407A9
+:105C3000BA0720F0621B730B840BBA0BEE1F88F7B8
+:105C4000E095089504D06894B11135C1089518D134
+:105C500088F09F5790F0B92F9927B751A0F0D1F055
+:105C6000660F771F881F991F1AF0BA95C9F712C0DF
+:105C7000B13081F01FD1B1E008951CC1672F782F9A
+:105C80008827B85F39F0B93FCCF38695779567954B
+:105C9000B395D9F73EF490958095709561957F4FB7
+:105CA0008F4F9F4F0895E89409C097FB3EF490955D
+:105CB0008095709561957F4F8F4F9F4F9923A9F0E5
+:105CC000F92F96E9BB279395F69587957795679574
+:105CD000B795F111F8CFFAF4BB0F11F460FF1BC0B8
+:105CE0006F5F7F4F8F4F9F4F16C0882311F096E94B
+:105CF00011C0772321F09EE8872F762F05C06623F9
+:105D000071F096E8862F70E060E02AF09A95660FB1
+:105D1000771F881FDAF7880F9695879597F908956A
+:105D200088D018F011F08CD038F480C0C4C0E92FAE
+:105D30009FD0B0F35523C9F3E7FB621773078407BD
+:105D40009507A8F199F3E92FFF2788232AF03197C7
+:105D5000660F771F881FDAF7952F5527442332F0F7
+:105D600091505040220F331F441FD2F7BB27E91B2D
+:105D7000F50B621B730B840BB109C1F222F4620FA5
+:105D8000731F841FB11D31972AF0660F771F881F7C
+:105D9000BB1FEFCF915050405AF041F0882332F0B2
+:105DA000660F771F881F91505040C1F7939530C000
+:105DB0008695779567959F5FD9F7F8CF990F00087B
+:105DC000550FAA0BE0E8FEEF16161706E807F907CD
+:105DD000C0F012161306E407F50798F0621B730B68
+:105DE000840B950B39F40A2661F0232B242B252BE9
+:105DF00021F408950A2609F4A140A6958FEF811D8C
+:105E0000811D089597F99F6780E870E060E008952C
+:105E10009F3F31F0915020F4879577956795B7951E
+:105E2000880F911D9695879597F908959FEF80ECBF
+:105E3000089500240A9416161706180609060895F0
+:105E400000240A9412161306140605060895092E56
+:105E50000394000C11F4882352F0BB0F40F4BF2BC5
+:105E600011F460FF04C06F5F7F4F8F4F9F4F089505
+:105E700057FD9058440F551F59F05F3F71F04795FB
+:105E8000880F97FB991F61F09F3F79F087950895E0
+:105E9000121613061406551FF2CF4695F1DF08C0FF
+:105EA000161617061806991FF1CF8695710561051C
+:105EB00008940895E894BB2766277727CB0197F9C4
+:105EC00008957CDF08F48FEF08950BD0C0CFB1DFC9
+:105ED00028F0B6DF18F0952309F094CFA7CF11244E
+:105EE000EACFC6DFA0F3959FD1F3950F50E0551F81
+:105EF000629FF001729FBB27F00DB11D639FAA271F
+:105F0000F00DB11DAA1F649F6627B00DA11D661F6D
+:105F1000829F2227B00DA11D621F739FB00DA11D8E
+:105F2000621F839FA00D611D221F749F3327A00D48
+:105F3000611D231F849F600D211D822F762F6A2FE4
+:105F400011249F5750408AF0E1F088234AF0EE0F69
+:105F5000FF1FBB1F661F771F881F91505040A9F776
+:105F60009E3F510570F04ECFA6CF5F3FECF3983EB9
+:105F7000DCF3869577956795B795F795E7959F5FDD
+:105F8000C1F7FE2B880F911D9695879597F9089577
+:105F9000FA01EE0FFF1F30962105310599F16115C9
+:105FA000710561F48038BFE39B0749F1689490382C
+:105FB000810561F08038BFEF9B0741F0992342F5DE
+:105FC000FF3FE1053105210511F1E8940894E795BB
+:105FD000D901AA2329F4AB2FBE2FF85FD0F310C04C
+:105FE000FF5F70F4A695E0F7F73950F019F0FF3A2B
+:105FF00038F49F779F930CD00F9007FC905808952A
+:106000003EF014CF60E070E080E89FE308954FE732
+:106010009F775F934F933F932F939ED02F913F9104
+:106020004F915F9152DF05C019F40EF0EBCE42CFD5
+:10603000FDCE26DFC8F39638C0F707F80F92E89434
+:106040002BE33AEA48EB5FE74EDF0F920F920F9295
+:106050004DB75EB70F92C0D0E4E3F1E016D04F9198
+:106060005F91EF91FF91E595EE1FFF1F49F0FE57FD
+:10607000E0684427EE0F441FFA95E1F74195550B70
+:1060800032D00F9007FE26C00895DF93CF931F9361
+:106090000F93FF92EF92DF927B018C01689405C011
+:1060A000DA2EEF011EDFFE01E894A59125913591CE
+:1060B00045915591AEF3EF0106DDFE019701A80170
+:1060C000DA9479F7DF90EF90FF900F911F91CF91C5
+:1060D000DF9108959B01AC0160E070E080E89FE3F0
+:1060E00049CD90CE95CECCDEE8F39923D9F3940F29
+:1060F000511DBBF39150504094F059F0882332F079
+:10610000660F771F881F91505040C1F79E3F510581
+:1061100044F7880F911D9695879597F908955F3FED
+:10612000ACF0983E9CF0BB27869577956795B79520
+:1061300008F4B1609395C1F7BB0F58F711F460FFF5
+:10614000E8CF6F5F7F4F8F4F9F4FE3CFB4CE0EF0FE
+:106150005FCE6CCE689456CE93DEC8F39923D1F30C
+:10616000C6F3DF93CF931F930F93FF92C92FDD27C1
+:1061700088232AF02197660F771F881FDAF720E01F
+:1061800030E040E85FEB9FE3883920F0803E30F05C
+:1061900021968F7787DCECE5F1E003C083DCE9E84A
+:1061A000F1E073DF8B01BE01EC01FB2E6F5771092B
+:1061B0007595771F880B990B78DD28E132E741E36D
+:1061C0005FE38FDEAF2D9801AE01FF900F911F911D
+:1061D000CF91DF9178DC3BCEFA01DC01AA0FBB1F27
+:1061E0009B01AC01BF5728F422273327442750785E
+:1061F0001FC0B75188F4AB2F0024469537952795DB
+:10620000011CA395D2F3002069F0220F331F441F15
+:10621000B395DAF30DD045CC61307105A0E88A075B
+:10622000B94630F49B01AC01662777278827907820
+:10623000309621F020833183428353830895AA1B33
+:10624000BB1B51E107C0AA1FBB1FA617B70710F061
+:10625000A61BB70B881F991F5A95A9F78095909593
+:10626000BC01CD01089597FB072E16F4009407D0CA
+:1062700077FD09D00E941F3107FC05D03EF49095B0
+:1062800081959F4F0895709561957F4F0895EE0F0A
+:10629000FF1F0590F491E02D0994F999FECF92BD6E
+:1062A00081BDF89A992780B50895A8E1B0E042E051
+:1062B00050E00C947531262FF999FECF92BD81BD27
+:1062C000F89A019700B4021639F01FBA20BD0FB634
+:1062D000F894FA9AF99A0FBE08950196272F0E9412
+:1062E0005C310C945B31DC01CB01FC01F999FECFF0
+:1062F00006C0F2BDE1BDF89A319600B40D9241504E
+:0A6300005040B8F70895F894FFCF5D
+:10630A0000005C440000004148F17644000000416E
+:10631A005C978A44000000411FD592440000004166
+:10632A0052D0A444000000415CFFB8440000004180
+:10633A000AA7CF44000000410000DC4400000041ED
+:10634A00A4D0A443000000417BD492430000004142
+:10635A007BD4924300000041A4D0A4430000004132
+:10636A00A4D02444000000411FD51244000000417B
+:10637A001FD5124400000041A4D02444000000416B
+:10638A00A4F076430000004100005C430000004195
+:10639A0000005C4300000041A4F076430000004185
+:1063AA00A4D082430000C0417BD492430000004144
+:1063BA00A4D0A4430000C041A4D0824300000041FD
+:1063CA00A4D0A44300008041A4D0824300008041AD
+:1063DA00A4D0A443000080411FD51244000080418C
+:1063EA00A4D024440000804100D00244000080412F
+:1063FA00A4D08243000080410000C44300008041D1
+:10640A000AA7CF44000000410000DC44000000411C
+:10641A00000000000000804052D0244500004041A6
+:10642A0000000000000080400AA74F4500004041DC
+:10643A000AA7CF44000000410000DC4400000041EC
+:10644A00000000000000804052D0244500000041B6
+:10645A0000000000000080405CFF38450000004159
+:10646A00000000000000804052D024450000004196
+:10647A000AA7CF44000000410000DC4400000041AC
+:10648A00000000000000804052D0244500008041F6
+:10649A00A4F0F6430000C0417BD4924300000041BF
+:1064AA0048F176440000804100005C44000000424C
+:1064BA005CFF434400008041A4F0F6430000C04161
+:1064CA001FD51244000000415CFF43440000804194
+:1064DA005CFF384400000042A4D0A443000080417D
+:1064EA00A4D0A44300008041719DAE4300008041C6
+:1064FA000000C443000080410000C4430000804102
+:10650A00719DAE4300008041A4D0A44300008041A5
+:10651A007BD4924300008041A4D082430000804192
+:10652A00A4D08243000080417BD492430000804182
+:10653A00A4D0A44300008041A4D0A4430000C041D9
+:10654A007BD49243000000417BD492430000004276
+:10655A00640007000CFF0000003F644A13D813B51B
+:10656A001381134D13010130052808140A321E0045
+:10657A0002040507090B0C0E1011131517181A1C23
+:10658A001D1F2123242628292B2D2F30323435375D
+:10659A00393B1F0F03764F5F6F7F4969437909596A
+:1065AA0053633149803F5D8B803FF8BF803FCAE12A
+:1065BA00803F73ED803FCAE1803FF8BF803F5D8B2B
+:1065CA00803F3149803F0000803FF16D7F3F75EA8F
+:1065DA007E3F4C827E3F833F7E3F84287E3F833FBF
+:1065EA007E3F4C827E3F75EA7E3FF16D7F3F000021
+:1065FA00803F3F4D36398F0642060C06D3056605A5
+:10660A007F059805B105010203040506070809007C
+:00000001FF
diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h new file mode 100644 index 0000000000..b648931081 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c new file mode 100644 index 0000000000..2fc5f0da16 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/keymap.c @@ -0,0 +1,478 @@ +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "led.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_UPPER 3 +#define LAYER_LOWER 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_ADJUST 7 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_UPPER 3 +#define MACRO_LOWER 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_TOGGLE 14 +#define MACRO_AUDIO_TOGGLE 16 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 +#define MACRO_BREATH_TOGGLE 21 +#define MACRO_BREATH_SPEED_INC 23 +#define MACRO_BREATH_SPEED_DEC 24 +#define MACRO_BREATH_DEFAULT 25 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_UPPER M(MACRO_UPPER) +#define M_LOWER M(MACRO_LOWER) +#define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) +#define TIMBR_1 M(MACRO_TIMBRE_1) +#define TIMBR_2 M(MACRO_TIMBRE_2) +#define TIMBR_3 M(MACRO_TIMBRE_3) +#define TIMBR_4 M(MACRO_TIMBRE_4) +#define TMPO_UP M(MACRO_TEMPO_U) +#define TMPO_DN M(MACRO_TEMPO_D) +#define TMPO_DF M(MACRO_TONE_DEFAULT) +#define M_BACKL M(MACRO_BACKLIGHT) +#define M_BRTOG M(MACRO_BREATH_TOGGLE) +#define M_BSPDU M(MACRO_BREATH_SPEED_INC) +#define M_BSPDD M(MACRO_BREATH_SPEED_DEC) +#define M_BDFLT M(MACRO_BREATH_DEFAULT) + + +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) + + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define OS_SHFT KC_FN0 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_QWERTY] = { // QWERTY + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* COLEMAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_COLEMAK] = { // COLEMAK + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* DVORAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_DVORAK] = { // DVORAK + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* UPPER + * .-----------------------------------------------------------------------------------------------------------. + * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | 0 | 0 | | RALT | . | ENTER | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_UPPER] = { // UPPER + { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, + { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, + { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, + { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }, + }, + +/* LOWER + * .-----------------------------------------------------------------------------------------------------------. + * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ^ | * | + | - | ; | : | _ | ' | " | ` | PG DN | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | & | ! | ~ | / | \ | = | < | > | ? | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { // LOWER + { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP }, + { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN }, + { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END }, + }, + + +/* FUNCTION + * .-----------------------------------------------------------------------------------------------------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | + * '-----------------------------------------------------------------------------------------------------------' + */ + [LAYER_FUNCTION] = { // FUNCTION + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, + { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, + { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { // MOUSE + { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, + }, + +#endif + + [LAYER_ADJUST] = { // ADJUST + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, + }, + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, + }, +*/ + +}; + +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +#endif /* AUDIO_ENABLE */ + +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_ONESHOT(MOD_LSFT), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + + // MACRODOWN only works in this function + switch(id) + { + + case MACRO_QWERTY: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_QWERTY); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_COLEMAK: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_COLEMAK); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_DVORAK: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<<LAYER_DVORAK); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); + #endif /* AUDIO_ENABLE */ + } + break; + + case MACRO_LOWER: + if (record->event.pressed) + { + layer_on(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_UPPER: + if (record->event.pressed) + { + layer_on(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); + } + break; + + +#ifdef BACKLIGHT_ENABLE + case MACRO_BACKLIGHT: + if (record->event.pressed) + { + backlight_step(); + } +#endif + +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + + case MACRO_TIMBRE_1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case MACRO_TIMBRE_2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case MACRO_TIMBRE_3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case MACRO_TIMBRE_4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + case MACRO_TEMPO_U: + if (record->event.pressed) increase_tempo(10); + break; + + case MACRO_TEMPO_D: + if (record->event.pressed) decrease_tempo(10); + break; + + case MACRO_TONE_DEFAULT: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + +#endif /* AUDIO_ENABLE */ + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + +void matrix_init_user(void) +{ + set_voice(default_voice); + startup_user(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + + _delay_ms(10); // gets rid of tick + + if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) + { + // If CAPS LK LED is turning on... + PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) + { + // If CAPS LK LED is turning off... + PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); + } + else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) + { + // If NUM LK LED is turning on... + PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) + { + // If NUM LED is turning off... + PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); + } + else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) + { + // If SCROLL LK LED is turning on... + PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); + } + else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) + { + // If SCROLL LED is turning off... + PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); + } + old_usb_led = usb_led; +} + + +void startup_user() +{ + _delay_ms(10); // gets rid of tick + PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); + _delay_ms(2000); + stop_all_notes(); +} + +void audio_on_user(void) +{ + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); +} + +void music_on_user(void) +{ + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); +} + +#endif /* AUDIO_ENABLE */
\ No newline at end of file |