Renaming planck/cbbrowne in keeping with recent naming conventions (#405)

* More documentation

* Saving crontab for user  on host

* Restructuring in keeping with recent changes to conventions

* Simplify submitting my fave cbbrowne keystroke by using SEND_STRING()

* Local change, not apropos to have in this repo

* Simplify logic; no need to return so much
pull/406/merge
Christopher Browne 9 years ago committed by Jack Humbert
parent 25d4772754
commit 498455403e

@ -20,3 +20,4 @@ When adding your keymap to this list, keep it organised alphabetically (select l
# List of Planck keymaps # List of Planck keymaps
* **default** default Planck layout * **default** default Planck layout
* **cbbrowne** cbbrowne's Planck layout

@ -1,16 +0,0 @@
cbbrowne custom keyboard
==============================
Due to cbbrowne@acm.org
Christopher Browne
This was originally based on the default keyboard map, but I have been
doing sundry experimentation:
* To figure things out about the toolset
* I'm an Emacs guy, so will be needing a fair bit of tuning
* It made sense to mess around some with keyboard maps.
- I added Workman alongside Dvorak and Colemak
- Boy, oh boy, these don't help
- I have done 30 years of learning of Emacs key mappings, and these alternative keyboards massively mess me up
- I added a keypad, originally based on keymaps/numpad.c, but mighty substantially revised, as that one seems to be rotated 90 degrees from usual conventions for number pads

@ -1,1463 +0,0 @@
:100000000C94A2020C94E6020C94E6020C94E60214
:100010000C94E6020C94E6020C94E6020C94E602C0
:100020000C94E6020C94E6020C94E7140C94B915B7
:100030000C941B230C94E6020C94E6020C94E6024A
:100040000C94E6020C9448030C94E6020C94E6022D
:100050000C94E6020C9483230C94E6020C94E602C2
:100060000C94E6020C94E6020C94E6020C94E60270
:100070000C94E6020C94E6020C94E6020C94E60260
:100080000C945C0B0C94E6020C94E6020C94E602D1
:100090000C94E6020C94E6020C94E6020C94E60240
:1000A0000C94E6020C94E6020C94E602261648161E
:1000B0003617481636178D16B01636170517181747
:1000C000021A021A311A311A701A901AE61BE61B2C
:1000D0009B1AE61B4B1B4B1BB21BBB1BE61BE01BFF
:1000E000581B581B581B581B581B581B581B581B78
:1000F000581B581B581B581B581B581B581B581B68
:10010000681B761B7D1B841B8E1B07634236B79BC7
:10011000D8A71A39685618AEBAAB558C1D3CB7CC67
:100120005763BD6DEDFD753EF6177231BF000000DF
:10013000803F08000000BE922449123EABAAAA2AC2
:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD
:1001500000000000BF000000803F00000000000819
:100160004178D3BB4387D1133D190E3CC3BD4282B6
:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74
:10018000FFBE01C4FF7F3F00000000000000000030
:1001900000000000000000010204060A0F17202CD6
:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2
:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF
:1001C00002010000000000000000000075010106AF
:1001D00002060105020501050205011502150112BD
:1001E0000212011A021A0111021101080208290063
:1001F00014001A000800150017001C0018000C005D
:10020000120013002A00E000040016000700090095
:100210000A000B000D000E000F0033002800E10063
:100220001D001B000600190005001100100036001B
:100230003700380034002B000030E200E3000152A8
:100240002C002C0002525000510052004F00350289
:100250001E021F0220022102220223022402250282
:10026000260227022A0001003A003B003C003D0024
:100270003E003F002D022E022F023002310201000B
:100280004000410042004300440045000053035336
:10029000035300500100010003530100010001005D
:1002A000010001000100AB00AA00A900AE0035006A
:1002B0001E001F0020002100220023002400250032
:1002C000260027002A0001003A003B003C003D00C8
:1002D0003E003F002D002E002F00300031000100B5
:1002E00040004100420043004400450000530353D6
:1002F0000353005001000100010001000100010052
:10030000010001000100AB00AA00A900AE00290015
:1003100001301A000800150017001C005800570093
:10032000570058002A00E0000230160007000900BC
:100330000A000B0056002400250026002800E100DA
:1003400003301B00060019000500110057002100B2
:1003500022002300370083500030E200E300000059
:100360002C002C0000531E001F0020002700280333
:10037000540068006500200050006C0061006E00B1
:1003800063006B0020004B006500790062006F0085
:1003900061007200640000002C034F0072007400C2
:1003A00068006F006C0069006E00650061007200FB
:1003B00020004B006500790062006F006100720050
:1003C0006400730000000403090409026D000401C5
:1003D00000A0FA0904000001030101000921110134
:1003E0000001223F000705810308000A09040100FB
:1003F0000103010200092111010001224D0007053E
:10040000820308000A090402000103000000092118
:10041000110100012236000705830308000A0904C0
:10042000030001030000000921110100012239002D
:10043000070584031000011201100100000008EDFF
:10044000FE606001000102000105010906A101052D
:100450000719E029E71500250195087501810205B6
:1004600008190129059505750191029501750391FA
:100470000105071900297715002501957875018177
:1004800002C005010980A101850216010026B700FE
:100490001A01002AB700751095018100C0050C09EA
:1004A00001A1018503160100269C021A01002A9C65
:1004B00002751095018100C005010902A101090121
:1004C000A1000509190129051500250195057501EA
:1004D00081029501750381010501093009311581FA
:1004E000257F95027508810609381581257F9501BC
:1004F00075088106050C0A38021581257F9501755E
:10050000088106C0C005010906A101050719E029F7
:10051000E71500250195087501810295017508818F
:1005200001050819012905950575019102950175C7
:100530000391010507190029FF150025FF95067590
:10054000088100C011241FBECFEFDAE0DEBFCDBFAF
:1005500004B603FE24C08091200390912103A09152
:100560002203B09123038730904BA740B04BB9F4DE
:100570001092200310922103109222031092230361
:1005800014BE84B7877F84BF88E10FB6F894809348
:100590006000109260000FBEE0E0F8E3099511E002
:1005A000A0E0B1E0E0E9FAE502C005900D92A23CBE
:1005B000B107D9F713E0A2ECB1E001C01D92A0325F
:1005C000B107E1F70E942D120C94462D0C94000007
:1005D0000895089581E0089508950C94E9020C941B
:1005E000EA020C94EC020E94102923E030E0281B60
:1005F0003109220F2093C6010895282F2F9880914A
:100600008000211108C0877F8093800010928D00A8
:1006100010928C001BC0886080938000233019F4F6
:100620008FEF9FEF0FC083E090E0821B9109880F4E
:10063000991F2FEF3FEFA90102C0569547958A9564
:10064000E2F7CA0190938D0080938C000C94F30222
:100650000E94F30284E08093C5011092C2010895C4
:10066000279A2F988FEF9FEF9093870080938600B3
:100670008AE08093800089E1809381000E9479283C
:100680000C9428030E9430036E9A769A0C94E80228
:100690001F920F920FB60F9211242F933F938F93B7
:1006A0009F93EF93FF93E091C301F091C401CF01B9
:1006B00001969093C4018093C3010090C50102C0CC
:1006C000F695E7950A94E2F7EF738091C2018230C4
:1006D00019F4E03251F404C0813039F4EF3329F4D5
:1006E00080916F008D7F80936F00F0E0E457FE4FA4
:1006F000E49121E031E0E29FC001E39F900D1124DD
:100700000090C60102C0969587950A94E2F79093EF
:100710008D0080938C00FF91EF919F918F913F917D
:100720002F910F900FBE0F901F901895CF9320918F
:10073000840030918500FC01613089F028F062303E
:1007400091F06330B9F133C08281882331F085EEB6
:100750000E94A6180E94D0282AC085EE26C0828159
:10076000811146C024C0409100015091010165EB08
:10077000649FC001659F900D112487589A4D67EAC8
:1007800070E00E94E22C909301018093000142816D
:10079000442369F082276AE070E00E94E22CCEE1F7
:1007A000C80F8C2F0E94A6188C2F0E946E1980E013
:1007B00090E020C0409100015091010165EB649FE1
:1007C000C001659F900D112487589A4D67EA70E02B
:1007D0000E94E22C90930101809300014281442306
:1007E00031F382276AE170E00E94E22CC4E0D8CFA6
:1007F0008CEC91E0CF91089581E008950C94FC0376
:1008000008950C94420380911702882309F448C08C
:100810008091D3019091D401009779F40E944D23E7
:100820009093D4018093D3018091D50190E00097FB
:1008300071F48091D60190E00AC00E945923209162
:100840000201309103012817390740F329C00197AD
:10085000880F991F880F991FFC01E952FE4F608194
:100860007181828193810E94C20AE091D50184E066
:10087000E89FF0011124E952FE4F6081718182816D
:1008800093814FE050E00E947A0E8091D50190E074
:1008900001966091D60170E00E94F62C8093D501FC
:1008A0000C94ED02109219020C948F0A0895089589
:1008B00081E0809319020C945704089508958F9253
:1008C0009F92AF92BF92EF92FF920F931F93CF939D
:1008D000DF93CDB7DEB7A3970FB6F894DEBF0FBE98
:1008E000CDBF7C01FC0100811181C8010E944A2119
:1008F000B8010E9461068C01B7010E94FE038823A3
:1009000009F4CCC10032F0E51F0741F4F701828100
:10091000882309F458C00E94DE0EC0C10132F0E500
:100920001F0741F4F7018281882309F44CC00E941B
:10093000E70EB4C10232F0E51F0751F4F7018281DE
:10094000882309F440C00E94DA0E8111F0CFE3CF72
:100950000332F0E51F0739F4F7018281882399F10A
:100960000E9458049BC10432F0E51F0739F4F701D7
:100970008281882341F10E94520490C10532F0E542
:100980001F0749F4F70182818823E9F08091190259
:100990008111F1CFE5CF0632F0E51F0739F4F701F9
:1009A0008281882381F00E94EE0E0AC00732F0E5B2
:1009B0001F0749F4F7018281882329F00E94F90E6C
:1009C0000E945E046BC180911902811105C0F7017C
:1009D00082818111CFC018C1003E110579F4F70161
:1009E0008281882309F44DC00E948F0A81E08093A0
:1009F0001802109217021092D60150C1023E110542
:100A000059F4F70182818823E1F10E948F0A109244
:100A100018021092170242C1033E110591F4F7012A
:100A20008281882371F10E948F0A1092180281E05E
:100A3000809317021092D5011092D4011092D30125
:100A40002DC10235110559F4F7018281882309F47B
:100A500025C180910201909103010A970DC00135D3
:100A6000110579F4F7018281882309F417C1809177
:100A70000201909103010A96909303018093020171
:100A80000DC14091060183E2E1E2F1E0DE01119641
:100A900001900D928A95E1F7F701808121E030E025
:100AA0002C0F3D1F280F311DC901209104013091E9
:100AB0000501FC01E20FF31F6081772767FD709548
:100AC000640F711D882777FD8095982F0E94182A42
:100AD00020E030E040E451E40E947D294B015C01BC
:100AE000F701218184E090E0821B9109BC018827F5
:100AF00077FD8095982F0E94182A9B01AC01C501B3
:100B0000B4010E9415299B01AC0160E070E080E017
:100B100090E40E948B2B20E030E04CED50E40E94EA
:100B2000282B4B015C01F70182818823D1F04FE033
:100B300050E0C501B4010E947A0E8091180288230A
:100B4000A1F08091D60124E0829FF0011124E952A6
:100B5000FE4F80829182A282B3828F5F8093D60102
:100B600004C0C501B4010E94C20A0F3F110508F07C
:100B70002ECF94C08091D20181111FC0043130E585
:100B8000130709F051C00E94000481E08093D20154
:100B90000E944D239093D1018093D0011092C901FE
:100BA0001092CB011092CA011092CD011092CC018B
:100BB0001092CF011092CE0171C08091D00190911E
:100BC000D1010E945923883C910570F48091C9019C
:100BD000E82FF0E0EE0FFF1FE653FE4F1183008376
:100BE0008F5F8093C9015AC0043880E5180721F04F
:100BF0000538104501F13AC0F7018281882341F0A0
:100C00001092C70182E01EC0043830E5130759F581
:100C10008091C701811106C086E20E94A61886E273
:100C20000E946E1982E01CC00438F0E51F0741F3F2
:100C300005381045D9F4F7018281882331F01092EC
:100C4000C80180E20E94BD1929C08091C8018111AC
:100C500006C087E20E94A61887E20E946E1980E211
:100C60000E94C4191BC00538104529F381E0809308
:100C7000C7018093C801C701A3960FB6F894DEBFE1
:100C80000FBECDBFDF91CF911F910F91FF90EF90DD
:100C9000BF90AF909F908F900C94EF0280E0A3964E
:100CA0000FB6F894DEBF0FBECDBFDF91CF911F917D
:100CB0000F91FF90EF90BF90AF909F908F9008950D
:100CC00008959CE0799FF001112490E3899FE00D45
:100CD000F11D1124E60FF11DEE0FFF1FE251FE4F33
:100CE000859194910895880F991FFC01E259FF4F57
:100CF000859194910895880F991FFC01E251FE4F50
:100D00008591949108950F931F93CF93DF93EC01F6
:100D1000811521E39207A0F5C11580E3D80708F0FB
:100D2000D7C0C83ED105D8F4C03ED10508F007C2EF
:100D3000C83AD10578F4C53AD10508F06AC0C13087
:100D4000D10509F463C008F4F7C1C430D10508F037
:100D5000F6C1F2C1CB3BD10508F466C0EDC1C115A7
:100D600090E2D90708F0AFC0C11521E0D20708F022
:100D7000E6C1C03FD10508F4DFC18E0110651FC276
:100D8000C03880E5D80700F5C03790E5D90708F0EE
:100D9000A3C0C11520E5D20709F4ACC050F4CE01C0
:100DA000905480319F4008F0C7C1DF708E01106AF7
:100DB00006C2C13080E5D80709F4AEC0C43190E561
:100DC000D90708F4AFC0B8C1C33820E5D20709F489
:100DD0008EC050F4C13890E5D90709F482C008F0FC
:100DE00083C000E011EDEBC1C03181E5D80708F404
:100DF000A3C1C11597E5D90708F436C1CE019057B4
:100E00008115904108F098C1DF7093C101E010E0B6
:100E1000D6C1C53AD10509F494C1C63AD10509F045
:100E200093C102E810E4CBC1C83AD10509F48FC1DF
:100E3000C93AD10509F48EC1CA3AD10509F48DC168
:100E4000CB3AD10509F48CC1CC3AD10509F48BC158
:100E5000CD3AD10509F48AC1C03BD10509F489C155
:100E6000CE3AD10509F488C1CF3AD10509F487C13A
:100E7000C13BD10509F486C1C23BD10509F485C146
:100E8000C33BD10509F484C1C43BD10509F483C136
:100E9000C53BD10509F482C1C63BD10509F481C126
:100EA000C73BD10509F480C1C83BD10509F47FC116
:100EB000C93BD10509F47EC1CA3BD10509F47DC106
:100EC00000E014E47CC1CE019F700E947B0678C1D3
:100ED000DD278E01106C73C1CF70DD278E01146D7C
:100EE0006EC100E010ED6BC100E012ED68C100E0E2
:100EF00013ED65C10E94511C0E948F0A0E94560486
:100F00008FEF94E32CE0815090402040E1F700C047
:100F100000000E94A82353C18091F4028160809355
:100F2000F4024DC10E940924811102C00E94E523F0
:100F30000E941C2490E090931F0380931E03C230F4
:100F400080E5D80721F480911E03816086C0C430FB
:100F500090E5D90721F480911E0382607EC0C630DF
:100F600020E5D20721F480911E03846076C0C8304A
:100F700080E5D80719F480911E0327C0CA3090E598
:100F8000D90721F480911E03806167C0CC3020E531
:100F9000D20721F480911E0380625FC0CE3080E5CD
:100FA000D80721F480911E03806457C0C03190E5BA
:100FB000D90721F480911E0380684FC0C23120E51B
:100FC000D20729F480911E038460886046C0C33034
:100FD00080E5D80721F480911E038E7F3EC0C53086
:100FE00090E5D90721F480911E038D7F36C0C7306C
:100FF00020E5D20721F480911E038B7F2EC0C930DB
:1010000080E5D80719F480911E0326C0CB3090E507
:10101000D90721F480911E038F7E1FC0CD3020E5BB
:10102000D20721F480911E038F7D17C0CF3080E559
:10103000D80721F480911E038F7B0FC0C13190E54A
:10104000D90721F480911E038F7707C0C331D045A3
:1010500031F480911E038B7F877F80931E038091E4
:101060001E030E942024ABC08D2F99278F709927D3
:1010700081309105D9F49E012370332702C0880F77
:10108000991F2A95E2F79C688E0144E0000F111F1A
:101090004A95E1F700271370802B912B53E0CC0F7A
:1010A000DD1F5A95E1F7C076DD272FC0823091050C
:1010B00031F4DC2FCC278E01016F106A80C08330A1
:1010C000910569F4CE018370992701E010E002C018
:1010D000000F111F8A95E2F7C8019C680FC0843089
:1010E0009105B9F4CE018370992701E010E002C0A8
:1010F000000F111F8A95E2F7C8019A6823E0CC0F10
:10110000DD1F2A95E1F7C07ED7708C010C2B1D2BBB
:1011100056C08530910531F4DC2FCC278E01046F49
:10112000106A4DC0069709F04AC0CF71DD27DC2F49
:10113000CC278E01106243C000E010E040C08E0159
:101140003EC001E810E43BC003E810E438C002EE02
:1011500014E435C009EE14E432C00AEE14E42FC0E2
:1011600005EB14E42CC006EB14E429C007EB14E4EF
:1011700026C00CEC14E423C00DEC14E420C003E8FA
:1011800015E41DC00AE815E41AC002E915E417C009
:1011900004E915E414C001E216E411C003E216E408
:1011A0000EC004E216E40BC005E216E408C006E235
:1011B00016E405C007E216E402C00AE216E4C8011C
:1011C000DF91CF911F910F9108959CE0799FF001DD
:1011D000112490E3899FE00DF11D1124E60FF11D0C
:1011E000EE0FFF1FE251FE4F85919491803E9105D5
:1011F000E0F4803C910558F58133910509F46FC006
:1012000048F48932910509F463C08A32910509F4E2
:101210006DC072C089339105E9F082389105D1F033
:101220008533910509F44DC067C0833E910581F176
:1012300038F4803E9105B9F0823E9105D9F05CC04A
:10124000863E910561F1873E9105A1F155C00E944E
:101250007306089520911E0320FD02C021FF4CC09B
:1012600080EE90E049C080911E0380FFF9CF89E3B2
:1012700090E042C080911E0382FF0EC080911E0349
:1012800084FF03C080E090E037C083EE90E034C07C
:1012900080911E0382FFF2CF82EE90E02DC08091FC
:1012A0001E0383FF0BC080911E0384FDEBCF87EEEE
:1012B00090E022C080911E0383FFF5CF86EE90E080
:1012C0001BC080911E0385FF07C089E290E014C017
:1012D00080911E0385FFF9CF85E390E00DC08091DA
:1012E0001E0386FF07C08AE290E006C080911E03BD
:1012F00086FFF9CF81E390E00E94830608950C9465
:10130000F102E82FF0E0E05BFE4F8081E82FEF7004
:10131000F0E082958F7021E030E0A90102C0440F17
:10132000551F8A95E2F740A308950F931F93CF931B
:10133000DF9385B7806885BF85B7806885BFC3E0C8
:10134000D0E001E010E0FE01E05BFE4F8081E82F7D
:10135000EF70F0E021A182958F70A80102C0440FC8
:10136000551F8A95E2F7CA01822B81A38C2F0E9418
:101370008109219740F78BE090E061E070E0FC018B
:10138000EC5BFE4F2081E22FEF70F0E042A122954E
:101390002F70DB0102C0AA0FBB1F2A95E2F79D0147
:1013A000242B22A3019758F7DF91CF911F910F9122
:1013B0000C940104EF92FF920F931F93CF93DF934E
:1013C00002E212E0C3E0EE24E394F12CD5E08C2F8E
:1013D0000E9481098BE090E040E050E0FC01EC5B72
:1013E000FE4F6081E62FEF70F0E020A130E06295C3
:1013F0006F7002C0359527956A95E2F720FD09C008
:101400009701082E02C0220F331F0A94E2F7422BE5
:10141000532B019718F7F801929182918F0184174D
:10142000950721F051834083D09307018C2F0E94B0
:101430008109C15060F68091070187FD2CC0815061
:10144000809307018F3F39F08FE99FE00197F1F713
:1014500000C0000020C08091200290912102909352
:1014600029028093280280911E0290911F0290937E
:1014700027028093260280911C0290911D02909376
:1014800025028093240280911A0290911B0290936E
:101490002302809322020E94030481E0DF91CF9116
:1014A0001F910F91FF90EF900895E82FF0E0EE0F5D
:1014B000FF1FEE5DFD4F80819181089508950F9388
:1014C0001F93CF930AE212E0C0E0F801929182915B
:1014D0008F010E94C522C80FF2E002321F07A9F750
:1014E0008C2FCF911F910F9108950E940924811193
:1014F00002C00E94E5230E942E24809309033E9A95
:10150000809171008D7F8093710082E080939000C4
:101510008AE18093910081E080932C02089580916C
:101520002C02811102C00E94750A10927C02109256
:101530007B02809171008D7F80937100809190007B
:101540008F738093900010923E0210923D02109291
:101550007502109276021092770210927802109221
:10156000740210927302E3E5F2E0A3E4B2E0119298
:101570001192119211921D921D9282E0E337F807A9
:10158000B1F70895CF92DF92EF92FF920F931F93DE
:10159000CF93DF9320913D02222309F484C06B0195
:1015A0007C0180912C02811102C00E94750A03E720
:1015B00012E0C7E0D0E0A7019601F8019291829174
:1015C000729162918F010E947929811131C0FE01CF
:1015D000EE0FFF1FEE0FFF1FED5AFD4F108211821D
:1015E00012821382DE01AA0FBB1FAD5BBD4F1196A5
:1015F0001C921E92C730D105E9F021964481558195
:10160000668177814083518362837383148215825C
:101610001682178212968D919C91139711969C9326
:101620008E9313961C921E92129734961296E2CFC6
:10163000219708F680917B0290917C02019797FD9B
:1016400005C090937C0280937B0204C010927C02C0
:1016500010927B0280917B0290917C022091790212
:1016600030917A022817390724F010927A021092EA
:101670007902892BC1F4809171008D7F8093710074
:10168000809190008F738093900010927502109259
:1016900076021092770210927802109274021092E1
:1016A000730210923D02DF91CF911F910F91FF9035
:1016B000EF90DF90CF9008951F920F920FB60F9288
:1016C00011244F925F926F927F928F929F92AF926E
:1016D000BF92CF92DF92EF92FF922F933F934F935F
:1016E0005F936F937F938F939F93AF93BF93CF93AA
:1016F000DF93EF93FF9380913D02882309F49BC110
:10170000C0917B02D0917C021C161D060CF093C187
:1017100040902D0250902E0260902F027090300267
:1017200020E030E0A901C301B2010E94242B181669
:101730000CF065C0C130D10509F452C08091790226
:1017400090917A02BE010E94F62C7C0190937A025D
:101750008093790280903F0290904002A0904102D5
:10176000B090420220E030E040E85FE3C501B40100
:101770000E94152960933F027093400280934102BA
:1017800090934202F701EE0FFF1FEE0FFF1FED5A7D
:10179000FD4FA301920160817181828193810E943A
:1017A0007D2920E030E040E05EE30E94282B9B0191
:1017B000AC01C501B4010E94242B18168CF4C7019A
:1017C0000196BE010E94F62C90937A0280937902D2
:1017D00010923F0210924002109241021092420277
:1017E000E0917902F0917A02EE0FFF1FEE0FFF1FDA
:1017F000ED5AFD4F6081718182819381D0C0C0908C
:101800007502D0907602E0907702F090780220E0A6
:1018100030E0A901C701B6010E94792921978823E8
:1018200009F4A2C0FE01EE0FFF1FEE0FFF1FED5ADD
:10183000FD4F80809180A280B380A5019401C701F3
:10184000B6010E94792987FF31C0A501940160E0AB
:1018500070E08CED93EC0E947D2920E030E040E4C4
:1018600051E40E947D2920E030E040E05FE30E94E7
:10187000282B9B01AC0160E070E080E090E40E94C6
:101880008B2B9B01AC01C501B4010E94282B9B014D
:10189000AC01C701B6010E94792987FF07C0A701E3
:1018A000960160E070E08CED93E439C0A5019401ED
:1018B000C701B6010E94242B18160CF055C0A501D3
:1018C000940160E070E08CED93E40E947D2920E0BB
:1018D00030E040E451E40E947D2920E030E040E027
:1018E0005FE30E94282B9B01AC0160E070E080E088
:1018F00090E40E948B2B9B01AC01C501B4010E94B6
:10190000282B9B01AC01C701B6010E94242B18169D
:101910005CF5A701960160E070E08CED93EC0E940D
:101920007D2920E030E040E451E40E947D2920E060
:1019300030E040E05FE30E94282B9B01AC0160E0B7
:1019400070E080E090E40E948B2B9B01AC01C7010A
:10195000B6010E94282B60937502709376028093E3
:1019600077029093780213C0FE01EE0FFF1FEE0F77
:10197000FF1FED5AFD4F80819181A281B381809339
:10198000750290937602A0937702B09378026091EB
:101990007502709176028091770290917802209181
:1019A0002A0230912B022F3F4FEF340731F02F5F87
:1019B0003F4F30932B0220932A020E94040F6B01A9
:1019C0007C0120E034E244EF51E40E94792987FF52
:1019D00008C086EFC82E88E2D82E84EFE82E81E476
:1019E000F82E20E030E040E051E4C701B6010E944B
:1019F000282B9B01AC0160E074E284E79BE40E9429
:101A00007D296B017C010E94EA2970939700609305
:101A10009600209108013091090140910A015091EE
:101A20000B01C701B6010E94282B0E94EA2970937E
:101A300099006093980080913E02882309F433C195
:101A4000C0903902D0903A02E0903B02F0903C0204
:101A500020E030E0A901C701B6010E94242B18162E
:101A6000D4F580912A0290912B028F3F2FEF92079D
:101A700029F0019690932B0280932A02C701B601A8
:101A80000E94040F20E030E040E051E40E94282B47
:101A90009B01AC0160E074E284E79BE40E947D2935
:101AA0006B017C010E94EA29709397006093960075
:101AB000209108013091090140910A0150910B01D8
:101AC000C701B6010E94282B0E94EA297093990051
:101AD0006093980008C010929700109296001092A0
:101AE00099001092980060913302709134026F5FF8
:101AF0007F4F7093340260933302209196003091AF
:101B0000970080E090E0232BF1F0C0919600D091F7
:101B100097000E94162A6B017C01BE0180E090E0D4
:101B20000E94162A9B01AC01609135027091360229
:101B300080913702909138020E947D2920E03FEF8A
:101B40004FE757E410C00E94162A6B017C0120E089
:101B500030EE4FEF54E4609135027091360280917F
:101B60003702909138020E94282B9B01AC01C701DB
:101B7000B6010E94242B87FD96C0809131028F5FB1
:101B80008093310290E02091050330910603821783
:101B90009307A0F080911003882319F0109231026E
:101BA0000DC0809171008D7F8093710080919000B5
:101BB0008F738093900010923E027DC0809132021C
:101BC000C0913102811128C0C0900A03D0900B034C
:101BD000E0900C03F0900D0320E030E0A901C70174
:101BE000B6010E94242B1816BCF481E080933202C7
:101BF0001092390210923A0210923B0210923C026B
:101C0000C0923502D0923602E0923702F09238024A
:101C1000C150C093310243C01092320210922B0285
:101C200010922A02E0910703F091080348E0C49F54
:101C3000E00DF11D112480819181A281B3818093F7
:101C4000390290933A02A0933B02B0933C0220E009
:101C500030E040E85EE364817581868197810E946F
:101C6000282B6B017C0180910C01682F70E080E0D3
:101C700090E00E94162A20E030E048EC52E40E94F6
:101C80007D299B01AC01C701B6010E94282B6093FE
:101C90003502709336028093370290933802109287
:101CA0003402109233028091090380FD04C0109227
:101CB0003E0210923D02FF91EF91DF91CF91BF91D3
:101CC000AF919F918F917F916F915F914F913F91D4
:101CD0002F91FF90EF90DF90CF90BF90AF909F90AB
:101CE0008F907F906F905F904F900F900FBE0F90EE
:101CF0001F901895CF92DF92EF92FF92CF93DF93D0
:101D00006B017C01EA0180912C02811102C00E94CA
:101D1000750A8091090380FF46C080917B029091F3
:101D20007C0208970CF03FC0809171008D7F8093FA
:101D3000710080913E0281110E948F0A81E08093A0
:101D40003D0210922B0210922A0220E030E0A901FD
:101D5000C701B6010E94242B1816DCF480917B0287
:101D600090917C02FC01EE0FFF1FEE0FFF1FED5A5A
:101D7000FD4FC082D182E282F382FC01EE0FFF1F91
:101D8000ED5BFD4FD183C083019690937C028093DD
:101D90007B0280917100826080937100809190003D
:101DA000806880939000DF91CF91FF90EF90DF905B
:101DB000CF9008958091090381700895809109035F
:101DC0008160809309030E9432240C945D04809109
:101DD00009038E7F809309030C94322480917D0245
:101DE00090E0019666E070E00E94F62C80937D0200
:101DF000089580917D0290E0019766E070E00E9476
:101E0000F62C80937D0208958F929F92AF92BF929D
:101E1000CF92DF92EF92FF920F931F93CF93DF93B6
:101E20006B017C01C0912A02D0912B02BE0180E09F
:101E300090E00E94162A4B015C01A701960160E028
:101E400070E08CE594E40E947D299B01AC01C50102
:101E5000B4010E94282B0E94EA2920917D022330A0
:101E600009F473C028F4222351F02130E9F02CC189
:101E7000243009F4A0C0253009F4E0C025C180E079
:101E800090E0A0E0BFE38093080190930901A09344
:101E90000A01B0930B0110922D0210922E021092A3
:101EA0002F021092300210C110922D0210922E02B9
:101EB00010922F02109230026431710540F46A30A2
:101EC000710560F520E030E040E85EE32BC0693C3E
:101ED000710508F0AAC080E090E00E94162A20E078
:101EE00030E040EA51E40E94142920E030E044E36D
:101EF00053E40E947D299B01AC010E94282B20E025
:101F000030E040E05EE30E94282B9B01AC0160E0E2
:101F100070E080E09EE30E94142944C020E030E09D
:101F200040E05FE3C701B6010E94282B6B017C01F2
:101F300080E090E0A0E0BEE3809308019093090167
:101F4000A0930A01B0930B01BFC010922D02109212
:101F50002E0210922F02109230024AE0469F90010A
:101F6000479F300D1124C90168EB7BE00E94E22CF1
:101F7000BC016C5D754077FF03C071956195710977
:101F8000882777FD8095982F0E94182A2EE333EC3E
:101F90004EE259E30E94282B20E030E040EC5EE363
:101FA0000E941529609308017093090180930A012A
:101FB00090930B0189C010922D0210922E02109264
:101FC0002F0210923002CE0183709927892BE1F005
:101FD000BE016170772780E090E00E94162A20E021
:101FE00030E040E05EE30E94282B20E030E040E457
:101FF0005FE30E94152960930801709309018093A3
:102000000A0190930B010CC080E090E0A0E0BFE3D8
:102010008093080190930901A0930A01B0930B01EA
:10202000C770DD27CD2B09F04FC010920801109228
:10203000090110920A0110920B0146C010922D0264
:1020400010922E0210922F021092300200E010E047
:1020500020E03FE3009308011093090120930A0157
:1020600030930B016739710578F180E090E00E94B0
:10207000162A20E030E047E153E40E94142920E0D2
:1020800030E04AE754E40E947D2920E030E048E453
:1020900052E40E94282B20E030E040EA51E40E9404
:1020A0005A2A0E94E529660F771F660F771FFB01EA
:1020B000EC5AFE4F2081318142815381C701B60124
:1020C0000E94282B6B017C01C701B601DF91CF91E3
:1020D0001F910F91FF90EF90DF90CF90BF90AF9046
:1020E0009F908F90089580918E020895CF93DF93F3
:1020F00000D01F92CDB7DEB79C01809115038430CC
:1021000019F593E099833B832A839093E9008FEF3D
:102110009091E800815095FD06C095ED9A95F1F7F4
:1021200000008111F5CF8091E80085FF0DC040E0EF
:1021300050E063E070E0CE0101960E94D7128091DA
:10214000E8008E778093E8000F900F900F90DF915A
:10215000CF910895CF93DF9300D01F92CDB7DEB714
:1021600020911503243021F522E029839B838A8363
:1021700083E08093E9008FEF9091E800815095FD16
:1021800006C095ED9A95F1F700008111F5CF809189
:10219000E80085FF0DC040E050E063E070E0CE0154
:1021A00001960E94D7128091E8008E778093E80014
:1021B0000F900F900F90DF91CF910895209115030C
:1021C0002430F1F422E02093E9002FEF3091E80071
:1021D000215035FD06C035ED3A95F1F7000021118B
:1021E000F5CF2091E80025FF0BC040E050E065E00E
:1021F00070E00E94D7128091E8008E778093E8000B
:102200000895CF93DF93EC0190911503943009F07A
:1022100046C0809117018823D9F080911801882346
:10222000B9F09093E9008FEF9091E800815095FD0F
:1022300006C095E19A95F1F700008111F5CF8091E4
:10224000E80085FF2CC040E050E060E170E017C07E
:1022500081E08093E9008FEF9091E800815095FD37
:1022600006C095ED9A95F1F700008111F5CF8091A8
:10227000E80085FF14C040E050E068E070E0CE0167
:102280000E94D7128091E8008E778093E80080E169
:10229000FE01AEE7B2E001900D928A95E1F7DF9181
:1022A000CF91089580911403811109C00E946C148C
:1022B0000E94C9148091E20084608093E200089536
:1022C000109214030895089508950C94102342E089
:1022D00061EC81E00E94E61342E061EC82E00E9442
:1022E000E61342E061EC83E00E94E61342E161EC18
:1022F00084E00C94E61380911703833009F455C0F1
:1023000030F4813071F0823009F48EC008958A3043
:1023100009F47AC08B3009F460C0893009F09CC0A0
:1023200020C080911603813A09F096C08091E800A0
:10233000877F8093E80080911A0390911B03892B7B
:1023400021F460E18EE792E003C060E080E090E07D
:1023500070E00E9422138091E8008B778093E80060
:10236000089580911603813209F076C080911A0396
:1023700090911B03009719F0039709F06DC08091AD
:10238000E800877F8093E8008091E80082FD05C027
:10239000809115038111F8CF5FC08091F100809387
:1023A0008E028091E8008B7753C080911603813AAA
:1023B00009F052C080911A0390911B03892B09F0F8
:1023C0004BC08091E800877F8093E8008091E8000F
:1023D00080FFFCCF8091170136C0809116038132B7
:1023E000D9F580911A0390911B03892BA9F580914F
:1023F000E800877F8093E8000E941B1480911803F7
:10240000809317010C94511C80911603813221F5A1
:102410008091E800877F8093E8000E941B148091E0
:10242000190380938F02089580911603813AA1F4D5
:102430008091E800877F8093E8008091E80080FF2A
:10244000FCCF80918F028093F1008091E8008E771D
:102450008093E8000C941B14089584B7877F84BF91
:1024600088E10FB6F89480936000109260000FBE70
:1024700090E080E80FB6F89480936100909361003B
:102480000FBE0E94BE170E946C140E94C914809156
:10249000E20084608093E20078940E944F170E94CB
:1024A000C0178DE091E00E946A1780911503853076
:1024B00069F40E94D122809113038823B1F30E9412
:1024C000FF22882391F30E94C112EFCF0E94C81708
:1024D000ECCF292F332723303105C9F064F42130A4
:1024E000310581F02230310509F043C08DE690E0DE
:1024F0002AEC33E042C021323105F1F022323105BD
:1025000041F137C082E190E027E334E036C09927FB
:102510008130910541F08230910541F0892B49F5D8
:10252000E6ECF3E005C0E8E9F3E002C0EEE6F3E034
:10253000849190E09F0121C06430D8F4E62FF0E050
:10254000EE0FFF1FE055FE4F2081318189E090E0C2
:1025500014C0643070F470E0FB01EE0FFF1FE8550B
:10256000FE4F20813181FB01EC55FE4F808190E0D0
:1025700004C080E090E020E030E0FA013183208365
:10258000089580E189BD82E189BD09B400FEFDCFD7
:102590008091D8008F7D8093D8008091E000826088
:1025A0008093E0008091E00081FDFCCF0895CF9200
:1025B000DF92EF92FF920F931F93CF93DF93EC0183
:1025C0008B016A010E943A14811133C0C114D104F5
:1025D00039F0F60180819181081B190BC80FD91FB2
:1025E000E12CF12C0115110519F18091E80085FD10
:1025F00016C08091E8008E778093E800C114D10462
:1026000049F0F60180819181E80EF91EF182E082A5
:1026100085E00FC00E943A14882321F30AC08991F3
:102620008093F10001501109FFEFEF1AFF0ADACF92
:1026300080E0DF91CF911F910F91FF90EF90DF909D
:10264000CF90089520911C0330911D032617370762
:1026500048F06115710539F42091E8002E77209338
:10266000E80001C0B90140E061157105A9F12091B0
:102670001503222309F443C0253009F442C02091F8
:10268000E80023FD40C02091E80022FD32C02091E7
:10269000E80020FFE9CF4091F3002091F20030E004
:1026A000342BFC01CF016115710559F0283031053B
:1026B00040F481918093F100615071092F5F3F4F89
:1026C000F1CF41E02830310509F040E02091E800E9
:1026D0002E772093E800C8CF4111C9CF0AC080915E
:1026E0001503882361F0853061F08091E80083FD57
:1026F0000AC08091E80082FFF2CF80E0089582E076
:10270000089583E0089581E0089520911C0330919D
:102710001D032617370748F06115710539F420911C
:10272000E8002E772093E80001C0B901FC0120E009
:102730006115710591F180911503882309F440C05A
:10274000853009F43FC08091E80083FD3DC0809151
:10275000E80082FD2FC08091E80080FFE9CF209142
:10276000F3008091F20090E0922B6115710559F011
:102770008830910540F424912093F1003196615006
:1027800071090196F2CF21E0089709F020E08091CD
:10279000E8008E778093E800CBCF2111CCCF0AC020
:1027A00080911503882361F0853061F08091E80005
:1027B00083FD0AC08091E80082FFF2CF80E0089597
:1027C00082E0089583E0089581E00895982F97307E
:1027D00058F59093E900981739F07091EC0020912A
:1027E000ED005091F00003C0242F762F50E021FF20
:1027F00019C03091EB003E7F3093EB003091ED003B
:102800003D7F3093ED003091EB0031603093EB0071
:102810007093EC002093ED005093F0002091EE00B7
:1028200027FF07C09F5FD3CF8F708093E90081E0BF
:10283000089580E008958091160387FF11C080916C
:10284000E80082FD05C0809115038111F8CF11C009
:102850008091E8008B770BC080911503882349F0A5
:102860008091E80080FFF8CF8091E8008E77809318
:10287000E80008952091E4003091E50095E640914C
:10288000EC00842F817040FF22C08091E80080FD21
:102890001CC080911503882391F0853091F08091C0
:1028A000EB0085FD10C04091E4005091E500421717
:1028B000530729F39A01915011F784E0089582E0BB
:1028C000089583E0089581E0089580E0089540919F
:1028D000E80042FFDECF08950E94DA140E94E2145D
:1028E000E0EEF0E0808181608083E8EDF0E08081BF
:1028F0008F77808319BCA7EDB0E08C918E7F8C938D
:1029000080818F7E80831092140308950F931F930C
:10291000CF93DF930E94DA140E94E214C8EDD0E056
:1029200088818F77888388818068888388818F7D7C
:10293000888319BC1092150310921103109213038F
:102940001092120300EE10E0F80180818B7F8083EB
:1029500088818160888342E060E080E00E94E61325
:10296000E1EEF0E080818E7F8083E2EEF0E0808116
:1029700081608083808188608083F80180818E7F80
:102980008083888180618883DF91CF911F910F912F
:102990000895E8EDF0E080818F7E8083E7EDF0E040
:1029A00080818160808384E082BF81E08093140312
:1029B0000C948614E8EDF0E080818E7F8083109285
:1029C000E20008951092DA001092E10008951F923B
:1029D0000F920FB60F9211242F933F934F935F9353
:1029E0006F937F938F939F93AF93BF93EF93FF93D7
:1029F0008091E10082FF0BC08091E20082FF07C05E
:102A00008091E1008B7F8093E1000E944E178091BE
:102A1000DA0080FF1FC08091D80080FF1BC080912A
:102A2000DA008E7F8093DA008091D90080FF0DC09C
:102A300080E189BD82E189BD09B400FEFDCF81E05E
:102A4000809315030E94521105C019BC1092150302
:102A50000E9460118091E10080FF19C08091E20026
:102A600080FF15C08091E2008E7F8093E20080910C
:102A7000E20080618093E2008091D80080628093C0
:102A8000D80019BC85E0809315030E9464118091E1
:102A9000E10084FF30C08091E20084FF2CC080E11F
:102AA00089BD82E189BD09B400FEFDCF8091D800C7
:102AB0008F7D8093D8008091E1008F7E8093E1002C
:102AC0008091E2008F7E8093E2008091E20081603D
:102AD0008093E20080911103882311F084E007C005
:102AE0008091E30087FD02C081E001C083E0809314
:102AF00015030E9465118091E10083FF29C0809138
:102B0000E20083FF25C08091E100877F8093E10090
:102B100082E080931503109211038091E1008E7F73
:102B20008093E1008091E2008E7F8093E2008091AB
:102B3000E20080618093E20042E060E080E00E9479
:102B4000E6138091F00088608093F0000E9463118A
:102B5000FF91EF91BF91AF919F918F917F916F9175
:102B60005F914F913F912F910F900FBE0F901F904B
:102B700018951F920F920FB60F9211242F933F9327
:102B80004F935F936F937F938F939F93AF93BF9375
:102B9000CF93DF93EF93FF93C091E900CF708091C3
:102BA000EC00D82FD17080FDD0E81092E900809120
:102BB000F000877F8093F00078940E94FD151092BA
:102BC000E9008091F00088608093F000CD2BCF70F9
:102BD000C093E900FF91EF91DF91CF91BF91AF9149
:102BE0009F918F917F916F915F914F913F912F9125
:102BF0000F900FBE0F901F9018951F93CF93DF93E8
:102C0000CDB7DEB7AA970FB6F894DEBF0FBECDBF23
:102C1000E6E1F3E088E08E0F9091F10091938E133E
:102C2000FBCF0E947B118091E80083FF1FC1809140
:102C3000160390911703492F50E04A30510508F0D0
:102C400015C1FA01EA5AFF4F0C940A2D803881F021
:102C5000823809F00BC180911A038F708093E900CC
:102C60008091EB0085FB882780F91092E90006C06F
:102C70008091120390911303911182609091E8006A
:102C8000977F9093E8008093F1001092F100C8C004
:102C9000282F2D7F09F0EAC0882319F0823061F0D7
:102CA000E5C080911803813009F0E0C0933009F04D
:102CB00080E0809313032BC080911803811127C0FB
:102CC00080911A038F7009F4D1C08093E90020919C
:102CD000EB0020FF1CC0933021F48091EB00806258
:102CE00014C09091EB0090619093EB0021E030E0F4
:102CF000A90102C0440F551F8A95E2F74093EA00EC
:102D00001092EA008091EB0088608093EB001092B3
:102D1000E9008091E800877F86C08111A7C01091EB
:102D200018031F778091E3008078812B8093E30064
:102D30008091E800877F8093E8000E941B148091B7
:102D4000E80080FFFCCF8091E30080688093E3007F
:102D5000111102C082E001C083E08093150386C098
:102D60008058823008F082C0809118039091190336
:102D70008C3D53E0950779F583E08A838AE2898365
:102D80004FB7F894DE01139620E03EE051E2E32FC6
:102D9000F0E050935700E49120FF03C0E295EF70FC
:102DA0003F5FEF708E2F90E0EA3010F0C79601C0C1
:102DB000C0968D939D932F5F243149F74FBF80912B
:102DC000E800877F8093E8006AE270E0CE01019618
:102DD0000E94221314C0AE014F5F5F4F60911A032F
:102DE0000E946912BC01009709F440C09091E8006C
:102DF000977F9093E80089819A810E948513809142
:102E0000E8008B778093E80031C0803879F58091B5
:102E1000E800877F8093E800809111038093F100A0
:102E20008091E8008E778093E8000E941B141EC0FA
:102E300081111CC0909118039230C0F48091E80079
:102E4000877F8093E800909311030E941B14809168
:102E50001103811106C08091E30087FD02C081E06B
:102E600001C084E0809315030E9467118091E800FF
:102E700083FF0AC08091E800877F8093E8008091FB
:102E8000EB0080628093EB00AA960FB6F894DEBF49
:102E90000FBECDBFDF91CF911F9108950895CF93BD
:102EA000809115038823A1F0C091E900CF70909123
:102EB000EC00892F817090FD80E8C82B1092E9000A
:102EC0008091E80083FD0E94FD15CF70C093E9005A
:102ED000CF91089590939502809394020895E09184
:102EE0009402F0919502309721F00190F081E02D4D
:102EF000099480E00895E0919402F0919502309752
:102F000021F00280F381E02D09940895E09194026C
:102F1000F0919502309721F00480F581E02D09941D
:102F2000089520919202309193028217930771F0D5
:102F30009093930280939202E0919402F091950213
:102F4000309721F00680F781E02D099408952091B3
:102F50009002309191028217930771F09093910241
:102F600080939002E0919402F0919502309721F0C5
:102F70000084F185E02D0994089508950C94BD17FF
:102F80000E9444230E9495090E94CA230C94792828
:102F90005F926F927F928F929F92AF92BF92CF92E9
:102FA000DF92EF92FF920F931F93CF93DF9300D0A6
:102FB00000D01F92CDB7DEB70E94DA099FE9C92E73
:102FC00092E0D92E03E010E0AA24A394B12C502E55
:102FD000802F0E94550A4C01F601729062906F0199
:102FE0006826792661147104A1F40150110978F75B
:102FF0008FEF89838A831B820E944D238160782F03
:103000009D838C8349815A816B818D810E947818C0
:1030100038C08091F40281FD0E945E0A2BE030E00E
:103020007501022E02C0EE0CFF1C0A94E2F7C701E4
:1030300086219721892B09F129835A828E209F208E
:1030400091E0892809F490E09B830E944D238160E0
:10305000782F9D838C8349815A816B818D810E9459
:103060007818000F111FF801E956FD4F80819181FA
:10307000E826F926F182E08204C02150310980F669
:10308000B4CF0E94B125109196020E946F171817B5
:10309000D1F00E946F17809396020F900F900F90BF
:1030A0000F900F90DF91CF911F910F91FF90EF90B4
:1030B000DF90CF90BF90AF909F908F907F906F9058
:1030C0005F900C947F090F900F900F900F900F90CE
:1030D000DF91CF911F910F91FF90EF90DF90CF90F4
:1030E000BF90AF909F908F907F906F905F9008956A
:1030F000CF93DF93CDB7DEB72B970FB6F894DEBF33
:103100000FBECDBF4F83588769877A878B87DE01D3
:10311000119686E0FD0111928A95E9F785E0FE019E
:10312000379601900D928A95E1F749815A816B811A
:103130007C818D819E810E94EF1E2B960FB6F894A4
:10314000DEBF0FBECDBFDF91CF910895CF9388230F
:1031500009F4C2C0C82F823859F40E946F1781FD4C
:10316000BBC089E30E94C9210E94962289E30CC05A
:10317000833879F40E946F1780FDAEC083E50E940A
:10318000C9210E94962283E50E940B22CF910C94C4
:103190009622843859F40E946F1782FD9DC087E4FF
:1031A0000E94C9210E94962287E4EECF8CEF8C0FFB
:1031B000813A48F48C2F0E94E12781118DC08C2F19
:1031C0000E94C921E3CF80E28C0F883048F4C77099
:1031D00081E001C0880FCA95EAF70E944F22D6CF3E
:1031E0008BE58C0F833078F4C53A29F0C63A31F07C
:1031F00083E890E005C081E890E002C082E890E0BA
:10320000CF910C94911788E58C0F833108F064C03E
:10321000C83A39F1C93A41F1CA3A49F1CB3A51F1C8
:10322000CC3A59F1CD3A61F1C03B69F1CE3A71F136
:10323000CF3A79F1C13B81F1C23B89F1C33B91F1B6
:10324000C43B99F1C53BA1F1C63BA9F1C73BB1F124
:10325000C83BB9F1C93BC1F1CA3BC9F180E090E07C
:1032600038C082EE90E035C089EE90E032C08AEE40
:1032700090E02FC085EB90E02CC086EB90E029C059
:1032800087EB90E026C08CEC90E023C08DEC90E0C2
:1032900020C083E891E01DC08AE891E01AC082E96D
:1032A00091E017C084E991E014C081E292E011C07E
:1032B00083E292E00EC084E292E00BC085E292E0ED
:1032C00008C086E292E005C087E292E002C08AE28E
:1032D00092E0CF910C94A717CF910895882309F419
:1032E0004BC0823859F40E946F1781FF45C089E3B3
:1032F0000E94C9210E94962289E30CC0833871F490
:103300000E946F1780FF38C083E50E94C9210E9488
:10331000962283E50E940B220C949622843859F45D
:103320000E946F1782FF28C087E40E94C9210E9473
:10333000962287E4EFCF9CEF980F913A58F390E2F2
:10334000980F983050F4877091E001C0990F8A95DA
:10335000EAF7892F0E945522DFCF9BE5980F933023
:1033600020F480E090E00C949117885A833120F487
:1033700080E090E00C94A7170895882321F00E9424
:103380004F220C9496220895882321F00E94552202
:103390000C94962208957F928F929F92AF92BF9243
:1033A000CF92DF92EF92FF920F931F93CF93DF9311
:1033B0001F92CDB7DEB77C01C62E772EFC010581AA
:1033C00002950F70128111110E946C220E94C2217D
:1033D000882379F0112369F080E28C0D883048F061
:1033E00082E00E94AB210E94C22191E0D82ED92612
:1033F00001C0D12CE72DE295EF70F0E0E05AFF4FCD
:103400000C940A2D872D807F072D0F70882311F0D3
:103410000295007F112389F0002309F499C180E20D
:103420008C0D883020F4802F0E944F2203C0802F03
:103430000E945F220E9496228BC18C2D0E946E19E1
:10344000002309F4C3C180E28C0D883020F4802F62
:103450000E94552203C0802F0E9465220E9496225E
:10346000B5C1872D807F972D9F70803211F4892FF1
:1034700003C0892F8295807FCC2021F0F1E0CF1608
:10348000A1F01DC0112339F0002319F1013009F515
:103490000E947F229BC1002319F0013009F496C1DC
:1034A00089830E948222898110C1112321F0063074
:1034B00008F08CC10EC0053008F088C106C1112388
:1034C00059F0002331F0F701958190FF41C19F70C1
:1034D00095830E94BD197AC1002309F4F6C03EC14C
:1034E000872D86958695837090E0009719F0019757
:1034F00061F06CC1112321F08C2D972D937002C0C7
:1035000080E090E00E94911761C1112321F08C2D81
:10351000972D937002C080E090E00E94A71756C1DB
:103520008C2D112319F00E94B92402C00E9421257C
:103530000E94A6254BC1872D837009F052C011113E
:1035400045C18C2D829586958770880F880F9C2D9C
:103550009F70892E912CA12CB12C082E04C0880CB0
:10356000991CAA1CBB1C0A94D2F7C4FE14C00FE01D
:1035700010E020E030E0B901A80104C0440F551F5D
:10358000661F771F8A95D2F7CB01BA0160957095B7
:103590008095909503C060E070E0CB01272D2695C3
:1035A0002695237030E02230310569F02330310553
:1035B00089F0682979298A299B292130310571F000
:1035C0000E94372003C1682979298A299B290E94F2
:1035D0005320FCC00E943720C501B4010E941B206B
:1035E000F5C0112319F0872D817001C086958823BD
:1035F00009F4ECC08C2D829586958770880F880F12
:103600009C2D9F70892E912CA12CB12C082E04C0CA
:10361000880C991CAA1CBB1C0A94D2F7C4FE14C0C7
:103620000FE010E020E030E0B901A80104C0440F31
:10363000551F661F771F8A95D2F7CB01BA01609597
:1036400070958095909503C060E070E0CB01272DC8
:10365000269526952370422F50E04230510569F09F
:103660004330510589F0682979298A299B294130FD
:10367000510571F00E941121A9C0682979298A2970
:103680009B290E942D21A2C00E941121C501B401D5
:103690000E94F5209BC08C2D90E0FC01E05EF109BA
:1036A000E531F10508F050C0E059FF4F0C940A2DA8
:1036B0000C2D0F70872D8F71112321F00E948E2009
:1036C000802F07CF0E94AF20802F0E94C4197EC098
:1036D000112341F0053008F079C0872D8F710E94C9
:1036E000D42074C0063008F071C0F7CF112339F030
:1036F000872D8F710E948E2069C01123C9F3872DF9
:103700008F710E94AF2062C0112329F0872D8F7125
:103710000E9479205BC00E946F2058C0112351F095
:10372000172D1F71812F0E948E2063E0812F0E9430
:10373000A2214CC081E00E94AB21023008F446C0B7
:1037400082E00E94AB2142C0112331F0002381F2BC
:103750008C2D0E94A6183AC0002389F28C2D0E945D
:103760006E1934C0472D4F706C2DC7010E9496030F
:103770000E94931F2BC0111129C0472D4F7050E09C
:1037800042305105B9F04CF44115510581F04130FA
:103790005105E1F40E94A12819C04330510569F098
:1037A0004430510599F48C2D0E94F3280FC00E94DB
:1037B0008A280CC00E94BD2809C00E94D02806C0DB
:1037C000472D4F706C2DC7010E946006DD20F9F077
:1037D0000E949E2180FD1BC0F70112820E94982149
:1037E0000E948E20C7010E94161C0E9498210F90F3
:1037F000DF91CF911F910F91FF90EF90DF90CF90CD
:10380000BF90AF909F908F907F900C94AF200F90BF
:10381000DF91CF911F910F91FF90EF90DF90CF90AC
:10382000BF90AF909F908F907F9008950F931F93BC
:10383000CF93DF93EC01888199812B813C81232BED
:10384000B9F09F3F11F48F3F99F0CE010E945F04C1
:10385000882371F0688179818A810E9494218C018A
:103860000E9449210E941020B801CE010E94CB196C
:10387000DF91CF911F910F9108950E946C220E94B9
:103880007C220E9441220E9496220E9457260E947A
:10389000A62580E090E00E94911780E090E00C94D3
:1038A000A7170E945C220C943D1C0E948921292F9D
:1038B00022952F7030E02C3031054CF42A30310540
:1038C0006CF42250310922303105A8F407C02C30A5
:1038D000310569F02F30310551F00DC0803F69F09E
:1038E00018F4803E40F409C0843F29F406C093FBDD
:1038F000882780F9089580E0089581E00895CF93A6
:10390000DF9300D000D01F92CDB7DEB70F900F909D
:103910000F900F900F90DF91CF910895CF93DF9389
:1039200000D000D000D0CDB7DEB726960FB6F89401
:10393000DEBF0FBECDBFDF91CF9108951F93CF9310
:10394000DF93C0919F0216E08091A002C81799F002
:10395000D0E01C9FF0011D9FF00D1124EF55FD4F8D
:103960004081518162817381848195810E948E1C86
:103970002196C770E9CFDF91CF911F9108954091B3
:10398000D1025091D2026091D3027091D402809101
:10399000D5029091D6020C948E1C8091D60282950D
:1039A0008F7009F054C08091D302882309F44FC06E
:1039B00080919F02A091A0026091D1027091D202E9
:1039C0004091D4025091D502B6E08A1709F43FC065
:1039D00090E041155105C1F17F3F11F46F3FA1F116
:1039E000B89FF001B99FF00D1124EF55FD4F2181D3
:1039F00072132AC02081621327C02281211124C0A2
:103A0000238134812417350710F421503109241BF8
:103A1000350B283C3105C0F42091D6022F7020616F
:103A20002093D60226E0289FF001299FF00D112453
:103A3000EA55FD4F80818F708061808381ED92E037
:103A40000E94161C0C949E1C01968770BECF089590
:103A5000CF92DF92EF92FF920F931F93CF93DF935A
:103A6000CDB7DEB762970FB6F894DEBF0FBECDBFFD
:103A70008C0185E0F801DE011D9601900D928A957A
:103A8000E1F7D8014C9111965C91119712966C91C7
:103A900012971396CD90DC9014973091D1027091CB
:103AA000D2028091D4029091D502009709F46BC1A3
:103AB0007F3F19F43F3F09F466C1E090D302EE2046
:103AC00009F4C0C02091D602C816D90628F0F60124
:103AD000E81BF90BCF0104C0809590958C0D9D1DBE
:103AE000FF24F394883C910578F0F12C207F09F0B5
:103AF000C6C07C2DD98AC88A89890E947F1C81ED25
:103B000092E00E94161CB1C0822F807F09F046C04F
:103B1000751314C0341312C0611110C02F702061CE
:103B20002093D6020E94BF1C81ED92E00E94161CD9
:103B30008091D602D80115968C932EC0CD2819F10C
:103B40005F3F11F44F3FF9F0F62E61111CC08091D8
:103B50009F022091A00236E0821709F45AC090E03B
:103B6000389FF001399FF00D1124EF55FD4F718101
:103B7000571306C07081471303C07281711103C0CF
:103B800001968770E9CFF62E662309F418C180915B
:103B9000D60281608093D602F12C11C1751308C042
:103BA000341306C0611104C08091D602D801C3C08D
:103BB0004D875E878D859E856A8B0E94551C6A891C
:103BC0008823E1F16623D1F12091D602822F8295DC
:103BD0008F7090E0029774F08091D1029091D202A0
:103BE00098878F831986DB86CA862C87CE01079635
:103BF0000E94161C86E0F801A1EDB2E001900D9242
:103C00008A95E1F70E94CD1C0E94BF1CFF24F3940B
:103C1000D6C04D875E878D859E850E948921292F7C
:103C200022952F7030E0223031050CF0BCC09F701F
:103C300009F0B6C0805E883008F4C1C0C8010E9497
:103C4000161CE4CFC816D90608F453C0F601E81BC9
:103C5000F90BCF01883C910508F450C0F12C7C2D64
:103C6000D98AC88A89890E947F1CE1EDF2E086E04A
:103C7000DF011D928A95E9F70E94BF1CA0C0751351
:103C800014C0341312C0611110C08091D602F80123
:103C90008583C8010E94161C86E0E1EDF2E0DF0199
:103CA0001D928A95E9F7FE2C8AC04D875E878D8527
:103CB0009E856A8B0E94551C6A89882309F4BECFB1
:103CC000662309F4BBCF2091D602822F82958F7094
:103CD00090E002970CF48ECF8091D1029091D202A5
:103CE0009A8389831B82DD82CC822E83CE0101964A
:103CF0007FCF809590958C0D9D1DACCFF62E6623C1
:103D000009F49CCF75132EC034132CC02091D60219
:103D100020FD1FC0822F82958F70D9F0D801159693
:103D20002C9315978F3049F08F5F982F9295907F45
:103D3000822F8F70892B15968C93C8010E94161CB8
:103D400086E0F801A1EDB2E001900D928A95E1F7CD
:103D500093CF86E0F801A1EDB2E001900D928A9533
:103D6000E1F72DC04D875E878D859E850E94551C8D
:103D7000811140CF8091D60281608093D602C80124
:103D80000E94161C1CC0662309F458CF4D875E871D
:103D90008D859E850E94551C882309F44FCF2ACF1C
:103DA000811148CF0CC0243031050CF047CF9F70F3
:103DB00009F440CFF8019581907F09F03BCF8F2D1A
:103DC00062960FB6F894DEBF0FBECDBFDF91CF91E4
:103DD0001F910F91FF90EF90DF90CF9008951F9368
:103DE000CF93DF93CDB7DEB72C970FB6F894DEBF35
:103DF0000FBECDBF4F83588769877A878B879C8793
:103E0000CE0107960E94281D882369F08F8198852E
:103E10002A853B85232BF1F19F3F09F063C08F3F3B
:103E200009F060C037C086E0FE013796DE011196CA
:103E300001900D928A95E1F76F817885EA85FB857F
:103E4000309741F17F3F11F46F3F21F12091A002A3
:103E500030E0C90101968770992740919F0250E098
:103E60008417950709F447C069837A83FD83EC833F
:103E700096E0929FD001939FB00D1124AF55BD4F96
:103E8000FE01319601900D929A95E1F78093A00280
:103E90000E949E1C16E080919F029091A0028917BB
:103EA000C1F1189FC00111248F559D4F0E94281DFC
:103EB000882379F1E0919F021E9FF0011124EF55B4
:103EC000FD4F4081518162817381848195810E947F
:103ED0008E1C80919F0290E00196877099278093B5
:103EE0009F02D9CF4F81588569857A858B859C85BE
:103EF0000E948E1CCFCF0E94511C1092A0021092E3
:103F00009F02E1EDF2E086E0DF011D928A95E9F77C
:103F1000C1CF2C960FB6F894DEBF0FBECDBFDF9198
:103F2000CF911F910895EF92FF920F931F93CF931C
:103F3000DF938C01009709F46CC0F12CEE24E3941C
:103F4000E8012196F8018491843740F4843008F028
:103F500051C0813081F0823019F15BC0853709F49E
:103F600044C0A8F19CE7980F903708F052C08F77B3
:103F70000E946E1941C00E5F1F4FFE01C49180E286
:103F80008C0F883048F4C7708E2D01C0880FCA95F9
:103F9000EAF70E946F2214C08C2F0E94A6182DC031
:103FA0000E5F1F4FFE01C49180E28C0F883058F4E1
:103FB000C7708E2D01C0880FCA95EAF70E9475223E
:103FC0000E9496221AC08C2F0E946E1916C00E5F96
:103FD0001F4FFE01C491CC2381F08FE99FE0019730
:103FE000F1F700C00000C150F6CF0E5F1F4FFE0179
:103FF000F49003C00E94A6188E018F2D882309F427
:104000009FCFEFE9FFE03197F1F700C0000081504A
:10401000F5CFDF91CF911F910F91FF90EF90089511
:1040200008956093DB027093DC028093DD0290932D
:10403000DE020C943D1C0F931F930091DB02109144
:10404000DC022091DD023091DE02DC01CB01802B0D
:10405000912BA22BB32B8093DB029093DC02A093D5
:10406000DD02B093DE021F910F910C943D1C0F9363
:104070001F930091DB021091DC022091DD02309150
:10408000DE02DC01CB0180239123A223B3238093A2
:10409000DB029093DC02A093DD02B093DE021F915D
:1040A0000F910C943D1C0F931F930091DB02109114
:1040B000DC022091DD023091DE02DC01CB018027A1
:1040C0009127A227B3278093DB029093DC02A09371
:1040D000DD02B093DE021F910F910C943D1C1092F3
:1040E000D7021092D8021092D9021092DA020C94E0
:1040F0003D1C41E050E060E070E004C0440F551FFB
:10410000661F771F8A95D2F74093D7025093D80243
:104110006093D9027093DA020C943D1C41E050E0A8
:1041200060E070E004C0440F551F661F771F8A953A
:10413000D2F78091D7029091D802A091D902B09184
:10414000DA02482B592B6A2B7B2B4093D7025093D2
:10415000D8026093D9027093DA020C943D1C41E0BE
:1041600050E060E070E004C0440F551F661F771FE9
:104170008A95D2F740955095609570958091D702B9
:104180009091D802A091D902B091DA024823592324
:104190006A237B234093D7025093D8026093D902BD
:1041A0007093DA020C943D1C41E050E060E070E056
:1041B00004C0440F551F661F771F8A95D2F7809160
:1041C000D7029091D802A091D902B091DA02482783
:1041D00059276A277B274093D7025093D8026093D0
:1041E000D9027093DA020C943D1C0F931F93009137
:1041F000D7021091D8022091D9023091DA02DC0165
:10420000CB01802B912BA22BB32B8093D7029093C1
:10421000D802A093D902B093DA021F910F910C94A7
:104220003D1C0F931F930091D7021091D80220914B
:10423000D9023091DA02DC01CB0180239123A22341
:10424000B3238093D7029093D802A093D902B0935E
:10425000DA021F910F910C943D1C0F931F93009154
:10426000D7021091D8022091D9023091DA02DC01F4
:10427000CB0180279127A227B3278093D702909361
:10428000D802A093D902B093DA021F910F910C9437
:104290003D1C0895CF92DF92EF92FF920F931F93F0
:1042A000CF93DF938C01C090DB02D090DC02E090D2
:1042B000DD02F090DE028091D7029091D802A091A9
:1042C000D902B091DA02C82AD92AEA2AFB2ACFE118
:1042D000D0E0D701C6010C2E04C0B695A7959795DE
:1042E00087950A94D2F780FF06C0B8018C2F0E94F0
:1042F000E508019721F4219760F780E001C08C2F39
:10430000DF91CF911F910F91FF90EF90DF90CF90B1
:104310000895CF93DF93EC010E944A21BE010E94D1
:10432000E508DF91CF910895CB010E94892108957E
:104330008091DF0285958595859508958091DF02AE
:104340008770089598E0899F90011124262B20936F
:10435000DF020C948E202091DF02809582238093CF
:10436000DF02982F977069F430E0482F552747FDFA
:1043700050952417350729F08595859585950C94DA
:10438000AF2008959091DF02977081E009F480E0FA
:10439000089590911701992321F09091180191119E
:1043A00009C02091190130911A01F90132969FEF4D
:1043B00040E01FC0982F9695969596959F3050F5A2
:1043C000E0911901F0911A01E90FF11D877021E0C8
:1043D00030E0A90102C0440F551F8A95E2F7CA01D7
:1043E0009181892B818308959F3F39F04F5F4E3033
:1043F00041F051915813F8CF0DC05111F7CF942FC0
:10440000F5CF9F3F39F0F901E90FF11D97FDFA95BE
:1044100082830895089590911701992321F0909136
:104420001801911109C02091190130911A01F90167
:104430003296205F3F4F1FC0982F96959695969580
:104440009F30F0F4E0911901F0911A01E90FF11D8C
:10445000877021E030E0A90102C0440F551F8A9502
:10446000E2F7CA018095918189238183089531966D
:10447000E217F30729F090819813F9CF1082F7CF54
:10448000089581E090E0E0911901F0911A01E80FA0
:10449000F91F1082019680319105A9F70895909136
:1044A000F302892B8093F302089580959091F30293
:1044B00089238093F30208951092F3020895909156
:1044C000F202892B8093F202089580959091F20276
:1044D00089238093F20208951092F2020895909138
:1044E000F102892B8093F102089580959091F10259
:1044F00089238093F10208951092F1020895809328
:10450000E00208951092E0020895809119019091BF
:104510001A01FC0131969C01205F3F4F80E0919190
:1045200091118F5FE217F307D1F70895E091190118
:10453000F0911A018091F3028083E0911901F091CA
:104540001A0190818091F202892B8083E0911901F8
:10455000F0911A0190818091F102892B80838091E2
:10456000E002882361F0E0911901F0911A01908135
:10457000892B80830E94852281111092E002809114
:10458000190190911A010C947B1720E0009739F0E3
:10459000AC0141505109842395232F5FF7CF822F1F
:1045A000089580911503843039F11092F50220E4CA
:1045B00088E190E00FB6F894A895809360000FBE54
:1045C0002093600080E00E94FD0280E00E947F094D
:1045D00083B7817F846083BF83B7816083BF789412
:1045E000889583B78E7F83BF88E10FB6F894809358
:1045F0006000109260000FBE08950895089580E055
:104600000E94FD020E94FD220E94DA090E94FE2201
:104610000E945F0A91E0811101C090E0892F089506
:104620000E94511C80E00E94FD020E9479280E9495
:104630006F170C947F091F920F920FB60F921124DF
:104640008F939F93AF93BF938091F502811113C015
:104650008091F6029091F702A091F802B091F902D0
:104660004196A11DB11D8093F6029093F702A0938D
:10467000F802B093F902BF91AF919F918F910F9083
:104680000FBE0F901F90189582E084BD93E095BDFA
:104690009AEF97BD80936E0008952FB7F89480919C
:1046A000F6029091F702A091F802B091F9022FBFA3
:1046B0000895CF92DF92EF92FF920F931F932FB73F
:1046C000F8944091F6025091F7026091F8027091CF
:1046D000F9022FBF6A017B01EE24FF248C0120E048
:1046E00030E0C016D106E206F30610F4415051093D
:1046F0009A01281B390BC9011F910F91FF90EF9070
:10470000DF90CF9008951F920F920FB60F92112451
:104710008F939F93AF93BF938091F6029091F7028E
:10472000A091F802B091F9020196A11DB11D8093EC
:10473000F6029093F702A093F802B093F902BF91AA
:10474000AF919F918F910F900FBE0F901F90189572
:104750000E946C14F8942FEF87EA91E62150804074
:104760009040E1F700C0000087E090EBDC0180930F
:10477000200390932103A0932203B09323039CE092
:1047800088E10FB6F894A895809360000FBE9093CF
:104790006000FFCF0E940924811102C00E94E5231E
:1047A0000E9414248093F4020E941C2480931E0310
:1047B00087FB882780F9809318010E941824682FAE
:1047C00070E080E090E00C9411206DEE7EEF80E0D0
:1047D00090E00E94302D60E082E090E00E941E2D6B
:1047E00060E083E090E00E941E2D60E084E090E0B5
:1047F0000E941E2D60E085E090E00E941E2D60E08A
:1048000086E090E00E941E2D6FEF87E090E00C9410
:104810001E2D80E090E00E94182D21E08D3E9E4FDD
:1048200009F020E0822F089582E090E00C94102D92
:1048300083E090E00C94102D84E090E00C94102D17
:10484000682F84E090E00C941E2D86E090E00C949C
:10485000102D682F86E090E00C941E2D87E090E0EC
:104860000C94102D682F87E090E00C941E2D809101
:10487000FC0280FF0BC060911E0185E0689FB001C3
:10488000112475956795759567952BC081FF09C0B3
:1048900060911E0185E0689FB001112475956795B0
:1048A00020C082FF07C060911E0185E0689FB001B3
:1048B000112417C09091FD029923D1F060911D0140
:1048C000961788F720911E0185E0289F90011124FA
:1048D000929FA001939F500D112470E0CA010E9485
:1048E000F62C6038710540F46115710539F002C08D
:1048F00065E070E0862F08958FE7089581E00895C0
:104900008091FC0280FF08C060911C0170E07595E9
:1049100067957595679521C081FF06C060911C0160
:1049200070E07595679519C082FF04C060911C0105
:1049300070E010C09091FD029923C1F060911B01BD
:104940009617A0F780911C01899FC001112470E087
:104950000E94F62C6038710528F46115710521F06C
:10496000862F08958FE7089581E0089561E070E053
:10497000F4CF803F21F40E943724819504C0813F09
:1049800029F40E943724809300030895823F21F484
:104990000E943724819504C0833F29F40E94372464
:1049A0008093FF020895893F19F40E94802405C076
:1049B0008A3F31F40E9480248195809301030895F9
:1049C0008B3F21F40E948024819504C08C3F29F400
:1049D0000E948024809302030895843F21F48091F3
:1049E000FE02816017C0853F21F48091FE02826043
:1049F00011C0863F21F48091FE0284600BC0873F86
:104A000021F48091FE02886005C0883F31F48091D6
:104A1000FE0280618093FE0208958D3F21F4809113
:104A2000FC0281600BC08E3F21F48091FC02826009
:104A300005C08F3F29F48091FC0284608093FC02C2
:104A40000895803F39F48091000387FF6CC0109275
:104A5000000369C0813F29F4809100031816BCF35C
:104A600062C09091FF02823F29F497FF5CC01092D0
:104A7000FF0259C0833F19F41916CCF354C0893F83
:104A800041F48091010318160CF04DC010920103FF
:104A90004AC08A3F29F48091010387FF44C0F6CFC2
:104AA0008B3F39F48091020387FF3DC010920203CF
:104AB0003AC08C3F29F4809102031816BCF333C02E
:104AC000843F21F48091FE028E7F17C0853F21F440
:104AD0008091FE028D7F11C0863F21F48091FE02FD
:104AE0008B7F0BC0873F21F48091FE02877F05C03A
:104AF000883F31F48091FE028F7E8093FE0213C0C6
:104B00008D3F21F48091FC028E7F0BC08E3F21F4FB
:104B10008091FC028D7F05C08F3F29F48091FC02BB
:104B20008B7F8093FC028091FF0281110EC08091E7
:104B3000000381110AC080910103811106C0809198
:104B40000203811102C01092FD0208958EEF92E0DF
:104B50000E9486170E944D239093FB028093FA02D5
:104B600008951F93CF93DF938091FA029091FB02F7
:104B70000E945923AC019091FD02992321F02091CC
:104B80001F0130E006C0209120018AE0289F90019B
:104B900011244217530708F486C08091FF02C09188
:104BA0000003D091010310910203811107C0C111CC
:104BB00076C0D11174C0111172C075C09F3F19F039
:104BC0009F5F9093FD02181624F40E94372480936F
:104BD000FF028091FF0287FF05C00E943724819564
:104BE0008093FF021C1624F40E9437248093000354
:104BF0008091000387FF05C00E9437248195809330
:104C000000036091FF02662339F1C0910003CC23B9
:104C100019F1772767FD7095872F972F0E94182A23
:104C200023E333E343E35FE30E94282B0E94E5295B
:104C30006093FF026C2F772767FD7095872F972F62
:104C40000E94182A23E333E343E35FE30E94282B07
:104C50000E94E529609300031D1624F40E9480241D
:104C6000809301038091010387FF05C00E94802487
:104C7000819580930103111624F40E94802480936F
:104C800002038091020387FF05C00E948024819562
:104C900080930203DF91CF911F910C94A6259F3F33
:104CA00009F08ECF96CFDF91CF911F910895EEEF4F
:104CB000F2E085E0DF011D928A95E9F71092FD028E
:104CC0001092FC020895833081F128F4813059F06C
:104CD0008230D1F00895853009F449C0B8F18630AA
:104CE00009F456C0089580912001262F30E0280F46
:104CF000311D2F3F310524F4680F60932001089582
:104D00008FEF80932001089580911F01262F30E0BE
:104D1000280F311D2F3F310524F4680F60931F01C8
:104D200008958FEF80931F01089580911E01262F13
:104D300030E0280F311D2F3F310524F4680F6093B8
:104D40001E0108958FEF80931E01089580911D012B
:104D5000262F30E0280F311D2F3F310524F4680F36
:104D600060931D0108958FEF80931D010895809138
:104D70001C01262F30E0280F311D2F3F310524F470
:104D8000680F60931C0108958FEF80931C010895B4
:104D900080911B01262F30E0280F311D2F3F310558
:104DA00024F4680F60931B0108958FEF80931B011B
:104DB0000895833011F128F4813049F0823091F068
:104DC0000895853081F120F18630C1F108958091F8
:104DD0002001681720F4861B80932001089510920B
:104DE0002001089580911F01681720F4861B80938D
:104DF0001F01089510921F01089580911E016817E8
:104E000020F4861B80931E01089510921E010895C0
:104E100080911D01681720F4861B80931D01089561
:104E200010921D01089580911C01681720F4861BC3
:104E300080931C01089510921C01089580911B011C
:104E4000681720F4861B80931B01089510921B01A4
:104E500008950F931F93873208F048C08E3108F0F1
:104E60008DC0803109F477C008F5873009F461C03E
:104E700068F4863009F09DC08091F402817F8E7FB6
:104E80008093F40281E08093040394C08B3009F492
:104E900089C08E3009F08DC08091F40282FB2227F8
:104EA00020F991E0922790FB82F95EC0863109F4E7
:104EB00079C060F4813109F07CC00E94511C90914E
:104EC000180181E08927809318016CC0893109F4A9
:104ED00069C08B3109F06DC08091F40281FB2227FB
:104EE00020F991E0922790FB81F93EC0883309F4C4
:104EF00059C050F4893209F457C0853309F454C0BD
:104F0000873209F451C055C0833409F44DC028F4E8
:104F10008A3308F44EC0895332C0883409F049C03E
:104F20000E94511C0E948F0A0E9456040E94A823CE
:104F300039C09091F402892F8095817080FB90F99F
:104F400029F0966098609093F40234C0997F977F1F
:104F50009093F40227C08091F40283FB222720F96A
:104F600091E0922790FB83F98093F4029923D1F08A
:104F70008091F40281608093F40214C08D5141E06D
:104F800050E060E070E08A019B0104C0000F111F37
:104F9000221F331F8A95D2F7C901B8010E94112040
:104FA0000E94511C81E006C061E070E080E090E06A
:104FB000F5CF80E01F910F91089580E0089580E083
:104FC0000895CF93C82F80910403813069F018F0C1
:104FD0008230C9F184C0E0911901F0911A018081F9
:104FE000823209F07EC007C0E0911901F0911A01E8
:104FF0008081823261F48C2F0E94DD27811104C0F0
:105000008C2F0E9429271DC081E090E01AC08C2FB0
:105010000E94DF27811114C0C43179F048F4CB30ED
:1050200079F0C03109F061C082E08093040308C0C8
:10503000C93219F0C83321F058C01092040355C08A
:1050400081E0817054C0C93291F120F5C43179F109
:10505000B0F4C73009F047C08EE18093200182E3AD
:1050600080931F018AE080931E0184E180931D01DB
:1050700088E080931C0188E280931B0134C0CE51EC
:10508000C63088F5EC2FF0E0E854FE4F8081809325
:10509000030329C0CE34E9F020F4CB3421F56AE0D3
:1050A00013C0C13579F0C235F1F461E00DC08091D3
:1050B0000303882319F01092030315C081E0809345
:1050C000040315C061E006C0809103030E946326BB
:1050D0000AC06AE0809103030E94D92604C010929E
:1050E000040380E004C081E002C080E0AACFCF9139
:1050F00008950E940924811102C00E94E5230E94A4
:10510000252480931F0380FF02C0869501C080E0A4
:105110000C94FD0280911F03982F9695292F30E063
:10512000233031054CF49F5F990F8170892B81608A
:1051300080931F030E94292480911F0386950C945D
:10514000FD0280911F03982F969591F09158990F29
:105150008170892B80931F038E7F91E009F490E08A
:1051600080911F0390FB80F980931F030E942924E4
:1051700080911F0386950C94FD0280911F03982F48
:10518000909590FB80F980931F030E9429248091C1
:105190001F0380FF02C0869501C080E00C94FD02D1
:1051A00090911F03892F86958F5F8F779170843040
:1051B00028F4880F892B80931F0302C090931F034C
:1051C00080911F038E7F91E009F490E080911F038E
:1051D00090FB80F980931F030E94292480911F0374
:1051E00086950C94FD0220911F03922F9695892796
:1051F000982F990F822F8170892B80931F038E7FA8
:1052000091E009F490E080911F0390FB80F9809376
:105210001F030E94292480911F0386950C94FD0290
:1052200080911F03869508955058BB27AA270ED05A
:10523000D1C1C2D130F0C7D120F031F49F3F11F479
:105240001EF4B7C10EF4E095E7FB9FC1E92FD3D15F
:1052500080F3BA17620773078407950718F071F493
:105260009EF5EBC10EF4E0950B2EBA2FA02D0B018D
:10527000B90190010C01CA01A0011124FF27591B9B
:1052800099F0593F50F4503E68F11A16F040A22FA1
:10529000232F342F4427585FF3CF46953795279512
:1052A000A795F0405395C9F77EF41F16BA0B620B11
:1052B000730B840BBAF09150A1F0FF0FBB1F661F58
:1052C000771F881FC2F70EC0BA0F621F731F841F9B
:1052D00048F4879577956795B795F7959E3F08F0C1
:1052E000B3CF9395880F08F09927EE0F9795879580
:1052F000089527D108F481E008950CD06BC163D1E3
:1053000040F05AD130F021F45F3F19F03EC1511105
:1053100095C14FC170D198F39923C9F35523B1F3C7
:10532000951B550BBB27AA2762177307840738F014
:105330009F5F5F4F220F331F441FAA1FA9F333D073
:105340000E2E3AF0E0E830D091505040E695001C27
:10535000CAF729D0FE2F27D0660F771F881FBB1FE3
:10536000261737074807AB07B0E809F0BB0B802DBD
:10537000BF01FF2793585F4F2AF09E3F510568F009
:1053800004C15CC15F3FECF3983EDCF386957795F2
:105390006795B795F7959F5FC9F7880F911D96950B
:1053A000879597F90895E1E0660F771F881FBB1F67
:1053B000621773078407BA0720F0621B730B840B14
:1053C000BA0BEE1F88F7E095089504D06894B111E8
:1053D00035C1089518D188F09F5790F0B92F9927BB
:1053E000B751A0F0D1F0660F771F881F991F1AF0F0
:1053F000BA95C9F712C0B13081F01FD1B1E008955C
:105400001CC1672F782F8827B85F39F0B93FCCF3DC
:10541000869577956795B395D9F73EF490958095E5
:10542000709561957F4F8F4F9F4F0895E89409C005
:1054300097FB3EF490958095709561957F4F8F4FC7
:105440009F4F9923A9F0F92F96E9BB279395F695DD
:10545000879577956795B795F111F8CFFAF4BB0F5B
:1054600011F460FF1BC06F5F7F4F8F4F9F4F16C0BF
:10547000882311F096E911C0772321F09EE8872F49
:10548000762F05C0662371F096E8862F70E060E005
:105490002AF09A95660F771F881FDAF7880F96957E
:1054A000879597F9089588D018F011F08CD038F4CA
:1054B00080C0C4C0E92F9FD0B0F35523C9F3E7FBE8
:1054C0006217730784079507A8F199F3E92FFF275F
:1054D00088232AF03197660F771F881FDAF7952FF8
:1054E0005527442332F091505040220F331F441F60
:1054F000D2F7BB27E91BF50B621B730B840BB109B9
:10550000C1F222F4620F731F841FB11D31972AF07C
:10551000660F771F881FBB1FEFCF915050405AF086
:1055200041F0882332F0660F771F881F915050405A
:10553000C1F7939530C08695779567959F5FD9F7AA
:10554000F8CF990F0008550FAA0BE0E8FEEF1616EA
:105550001706E807F907C0F012161306E407F50767
:1055600098F0621B730B840B950B39F40A2661F0DB
:10557000232B242B252B21F408950A2609F4A1407E
:10558000A6958FEF811D811D089597F99F6780E88B
:1055900070E060E008959F3F31F0915020F48795CE
:1055A00077956795B795880F911D9695879597F98B
:1055B00008959FEF80EC089500240A9416161706AC
:1055C00018060906089500240A94121613061406F4
:1055D00005060895092E0394000C11F4882352F057
:1055E000BB0F40F4BF2B11F460FF04C06F5F7F4F0F
:1055F0008F4F9F4F089557FD9058440F551F59F0F6
:105600005F3F71F04795880F97FB991F61F09F3FAF
:1056100079F087950895121613061406551FF2CFD8
:105620004695F1DF08C0161617061806991FF1CF28
:1056300086957105610508940895E894BB2766274F
:105640007727CB0197F908957CDF08F48FEF089551
:105650000BD0C0CFB1DF28F0B6DF18F0952309F0EA
:1056600094CFA7CF1124EACFC6DFA0F3959FD1F343
:10567000950F50E0551F629FF001729FBB27F00D00
:10568000B11D639FAA27F00DB11DAA1F649F662755
:10569000B00DA11D661F829F2227B00DA11D621FA4
:1056A000739FB00DA11D621F839FA00D611D221F5E
:1056B000749F3327A00D611D231F849F600D211D42
:1056C000822F762F6A2F11249F5750408AF0E1F0E5
:1056D00088234AF0EE0FFF1FBB1F661F771F881F2E
:1056E00091505040A9F79E3F510570F04ECFA6CF84
:1056F0005F3FECF3983EDCF3869577956795B79519
:10570000F795E7959F5FC1F7FE2B880F911D969542
:10571000879597F90895FA01EE0FFF1F309621053E
:10572000310599F16115710561F48038BFE39B077C
:1057300049F168949038810561F08038BFEF9B078C
:1057400041F0992342F5FF3FE1053105210511F1B3
:10575000E8940894E795D901AA2329F4AB2FBE2F2A
:10576000F85FD0F310C0FF5F70F4A695E0F7F7394B
:1057700050F019F0FF3A38F49F779F930CD00F90B8
:1057800007FC905808953EF014CF60E070E080E888
:105790009FE308954FE79F775F934F933F932F9336
:1057A0009ED02F913F914F915F9152DF05C019F428
:1057B0000EF0EBCE42CFFDCE26DFC8F39638C0F711
:1057C00007F80F92E8942BE33AEA48EB5FE74EDFE5
:1057D0000F920F920F924DB75EB70F92C0D0EAE0D2
:1057E000F1E016D04F915F91EF91FF91E595EE1F9B
:1057F000FF1F49F0FE57E0684427EE0F441FFA955B
:10580000E1F74195550B32D00F9007FE26C0089561
:10581000DF93CF931F930F93FF92EF92DF927B0161
:105820008C01689405C0DA2EEF011EDFFE01E894BA
:10583000A5912591359145915591AEF3EF0106DD86
:10584000FE019701A801DA9479F7DF90EF90FF90BD
:105850000F911F91CF91DF9108959B01AC0160E002
:1058600070E080E89FE349CD90CE95CECCDEE8F3A2
:105870009923D9F3940F511DBBF39150504094F0EC
:1058800059F0882332F0660F771F881F91505040DF
:10589000C1F79E3F510544F7880F911D9695879556
:1058A00097F908955F3FACF0983E9CF0BB27869532
:1058B00077956795B79508F4B1609395C1F7BB0FDD
:1058C00058F711F460FFE8CF6F5F7F4F8F4F9F4F06
:1058D000E3CFB4CE0EF05FCE6CCE689456CE93DE9E
:1058E000C8F39923D1F3C6F3DF93CF931F930F939C
:1058F000FF92C92FDD2788232AF02197660F771F93
:10590000881FDAF720E030E040E85FEB9FE388395A
:1059100020F0803E30F021968F7787DCE2E3F1E0E3
:1059200003C083DCEFE5F1E073DF8B01BE01EC0126
:10593000FB2E6F5771097595771F880B990B78DDD2
:1059400028E132E741E35FE38FDEAF2D9801AE013E
:10595000FF900F911F91CF91DF9178DC3BCEFA0140
:10596000DC01AA0FBB1F9B01AC01BF5728F4222703
:105970003327442750781FC0B75188F4AB2F002439
:10598000469537952795011CA395D2F3002069F021
:10599000220F331F441FB395DAF30DD045CC61308D
:1059A0007105A0E88A07B94630F49B01AC0166276F
:1059B000772788279078309621F02083318342839F
:1059C00053830895AA1BBB1B51E107C0AA1FBB1F2D
:1059D000A617B70710F0A61BB70B881F991F5A957B
:1059E000A9F780959095BC01CD01089597FB072EEE
:1059F00016F4009407D077FD09D00E94E22C07FC32
:105A000005D03EF4909581959F4F089570956195CE
:105A10007F4F0895EE0FFF1F0590F491E02D09943C
:105A2000F999FECF92BD81BDF89A992780B5089566
:105A3000A8E1B0E042E050E00C94382D262FF9990F
:105A4000FECF92BD81BDF89A019700B4021639F0DD
:105A50001FBA20BD0FB6F894FA9AF99A0FBE0895AE
:105A60000196272F0E941F2D0C941E2DDC01CB01C7
:105A7000FC01F999FECF06C0F2BDE1BDF89A31965E
:105A800000B40D9241505040B8F70895F894FFCFFC
:105A90009D00640007000CFF0000003F64731001CC
:105AA00011DE10AA1076100101E1022808140A3252
:105AB0001E0002040507090B0C0E10111315171810
:105AC0001A1C1D1F2123242628292B2D2F30323468
:105AD0003537393B1F0F03764F5F6F7F4969437935
:105AE000095953633149803F5D8B803FF8BF803F48
:105AF000CAE1803F73ED803FCAE1803FF8BF803F3D
:105B00005D8B803F3149803F0000803FF16D7F3FDA
:105B100075EA7E3F4C827E3F833F7E3F84287E3FF6
:105B2000833F7E3F4C827E3F75EA7E3FF16D7F3F33
:105B30000000803F3F4D36390505B8048204490412
:105B4000DC03F5030E04270401020304050607081D
:025B500009004A
:00000001FF

@ -0,0 +1,7 @@
/* cbbrowne user configuration */
#define randadd 53
#define randmul 181
#define randmod 167

@ -2,6 +2,8 @@
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
#include "backlight.h" #include "backlight.h"
#endif #endif
#include "config_user.h"
#include "quantum.h"
/* Each layer is given a name to aid in readability, which is then /* Each layer is given a name to aid in readability, which is then
used in the keymap matrix below. The underscores do not denote used in the keymap matrix below. The underscores do not denote
@ -19,26 +21,25 @@
/* Things I did not like about the default mapping /* Things I did not like about the default mapping
- I find control too hard to get to. I think I'll want it on a - I found control too hard to get to. I use it more than Tab, so
left finger. Gonna need to lose something to do that... switched it there.
- Almost certainly, KC_LCTL should be on [2][1] - Having dash on [lower-j] is a bit nonintuitive, but may be OK
- having dash on [lower-j] is a bit nonintuitive, but may be OK
- I'll bet I should switch ESC/TAB - I'll bet I should switch ESC/TAB
- I'm suspicious that I want to shift M(0) from [4][1] to [4][2], - I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
and shift ESC off the first column so KC_LCTL and KC_LALT can and shift ESC off the first column so KC_LCTL and KC_LALT can
be on the first column. be on the first column.
- I think I wanna swap ' and ENTER - I needed to swap ' and ENTER
- All of the above are done :-) - All of the above are done :-)
- I'm keeping Colemak and Dvorak around for reference, and added - Dropped out support for Dvorak and friends. They aren't
Workman just for fun. They're useless to me, though. improvements to me
*/ */
/* Some interesting things implemented /* Some interesting things implemented
- There is a macro that writes out "cbbrowne" just because I could - There is a macro that writes out "cbbrowne" to show that I could
- There is a (somewhat cruddy) linear congruential random number - There is a (somewhat cruddy) linear congruential random number
generator. generator.
- I would like to be seeding it with clock info to make it look - I would like to be seeding it with clock info to make it look
@ -50,16 +51,15 @@
of the random number generator of the random number generator
- in both, note the use of register_code()/unregister_code() - in both, note the use of register_code()/unregister_code()
to indicate the desired key to indicate the desired key
- I do indeed want a sweet number pad!
*/ */
/* Other things to do... /* Other things to do...
- Need to think about what zsh and readline actions I use lots - Need to think about what zsh and readline actions I use lots
- Wanna figure out macros, so I can put in a "cbbrowne" macro
- Ought to ensure that Control-Alt-Delete is convenient enough - Ought to ensure that Control-Alt-Delete is convenient enough
- How about Alt-F1 thru Alt-F8? - How about Alt-F1 thru Alt-F8?
- What's the keystroke to get from X to console these days? - What's the keystroke to get from X to console these days?
- I do indeed want a sweet number pad!
- A layer for doing console switching would not be a bad idea - A layer for doing console switching would not be a bad idea
*/ */
@ -99,10 +99,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
}, },
[_KP] = { /* Key Pad */ [_KP] = { /* Key Pad */
{KC_ESC, M(M_USERNAME), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_BSPC}, {KC_ESC, M(M_USERNAME), KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC},
{KC_LCTL, M(M_RANDDIGIT), KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_MINUS, KC_7, KC_8, KC_9, KC_ENT}, {KC_LCTL, M(M_RANDDIGIT), KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE},
{KC_LSFT, M(M_RANDLETTER), KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_PLUS, KC_4, KC_5, KC_6, KC_DOT}, {KC_LSFT, M(M_RANDLETTER), KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER},
{BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_1, KC_2, KC_3, KC_0} {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
} }
}; };
@ -110,11 +110,8 @@ const uint16_t PROGMEM fn_actions[] = {
}; };
/* This bit of logic seeds a wee linear congruential random number generator */ /* This bit of logic seeds a wee linear congruential random number generator */
/* lots of prime numbers everywhere... */
static uint16_t random_value = 157; static uint16_t random_value = 157;
#define randadd 53
#define randmul 181
#define randmod 167
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
@ -135,9 +132,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
break; break;
case M_USERNAME: case M_USERNAME:
if (record->event.pressed) { if (record->event.pressed) {
return MACRO( I(1), T(C), T(B), T(B), T(R), T(O), T(W), T(N), T(E)); SEND_STRING("cbbrowne");
} else {
return MACRO_NONE ;
} }
break; break;
case M_RANDDIGIT: case M_RANDDIGIT:

@ -0,0 +1,63 @@
cbbrowne custom keyboard
==============================
Due to cbbrowne@acm.org
Christopher Browne
This was originally based on the default keyboard map, but I have been
doing sundry experimentation:
1. Experiments
----------------------------------------
* To figure things out about the toolset
* I'm an Emacs guy, so will be needing a fair bit of tuning
* It made sense to mess around some with keyboard maps.
- I tried added Workman alongside Dvorak and Colemak
- Boy, oh boy, these don't help!!!
- I have done 30 years of learning of Emacs key mappings, and
these alternative keyboards massively mess me up
- I added a keypad, originally based on keymaps/numpad.c, but
mighty substantially revised, as that one seems to be rotated 90
degrees from usual conventions for number pads
* The keypad layer also includes some sample "hacks" of cool things,
all using actions attached in using the function action_get_macro()
- Key [1][2] aka "q" types out my name, cbbrowne, as a fun example
of a key generating a bunch of keystrokes. The keystroke is
sufficiently inconvenient that it isn't terribly practical for me
to use it, but hey, it shows how others might use this facility
in a more useful context.
- Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random
- Key [3][2] aka "z" uses a random number generator to select a letter a-z at random
2. Some code structure ideas
---------------------------------------------------
Each layer is given a name to aid in readability, which is then
used in the keymap matrix below. The underscores do not denote
anything - you can have a layer called STUFF or any other name.
Layer names don't all need to be of the same length, obviously, and
you could also skip them entirely and just use numbers, though that
means needing to manage the numbers.
It is preferable to keep the symbols short so that a line worth of
key mappings fits compactly onto a line of code. It might be an
interesting idea to express the maps rotated 90%, so that you
only need to fit 4 symbols onto each line, rather than 12.
I used enums to manage layer IDs and macro IDs so that I don't need
to care (beyond "start at 0", and arguably that's not needed) about
their values.
3. Things I did not like about the default mapping
---------------------------------------------------------
* I found control too hard to get to. I use it more than Tab, so
switched it there.
* Having dash on [lower-j] is a bit nonintuitive, but may be OK
* I switched ESC/TAB/M(0) around
* I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
and shift ESC off the first column so KC_LCTL and KC_LALT can
be on the first column.
* I needed to swap ' and ENTER
Loading…
Cancel
Save