diff --git a/Out/8837_EVB_250106_1941.bin b/Out/8837_EVB_250106_1941.bin
deleted file mode 100644
index 8ff419c..0000000
Binary files a/Out/8837_EVB_250106_1941.bin and /dev/null differ
diff --git a/Out/8837_EVB_250106_1941.hex b/Out/8837_EVB_250106_1941.hex
deleted file mode 100644
index 4142f4e..0000000
--- a/Out/8837_EVB_250106_1941.hex
+++ /dev/null
@@ -1,816 +0,0 @@
-:030000000227468E
-:10274600758E3075D20078FFE4F6D8FD9000007FD4
-:10275600007E01E4F0A3DFFCDEFA7581A80227A162
-:0F2E580053797374656D20496E69742E0D0A00ED
-:102DED00122A507BFF7A2E7958120F5CD2AED2BECA
-:082DFD00122864122C3E80F440
-:101CC800010D000113000112000111000110004173
-:101CD80000DA00020E00004200D400004200D800E2
-:101CE800004200CD00004200CF00004200D60000B4
-:0F1CF8004200D200004100D1004100DB00C14694
-:102E050075FE0F43FF8075FE2975FFB575A5217504
-:082E1500FE1E43FF01D2BD22A5
-:1021D400AB0720460302230B9000D4E0FEA3E07873
-:1021E40003CEC313CE13D8F9F0EE9000D4F09000D0
-:1021F400D1E024FD603014606514700302229E2433
-:10220400FE70030222D224056003022308780DE63F
-:10221400FF3395E0FEC39000D5E09FFF9000D4E02B
-:102224009E9000D8806E9000D4E0FEA3E0FF7C096D
-:102234007DC412187D780A12181B9000D4EEF0A306
-:10224400EFF07810E6FD3395E0FCC3EF9DFFEE9CC4
-:10225400FE7C007D0512173A9000CDEE803690008A
-:10226400D4E0FEA3E0FF7C097DC412187D780A1235
-:10227400181B9000D4EEF0A3EFF07811E6FD33952F
-:10228400E0FCC3EF9DFFEE9CFE7C007D0512173A37
-:102294009000CFEEF0A3EFF0806A780DE6FF33955F
-:1022A400E0FEC39000D5E09FFF9000D4E09EFE7C4A
-:1022B400097DC412187D780A12181BEEF0A3EFF002
-:1022C400E025E0FE9000D4E0339000D68032780D13
-:1022D400E6FF3395E0FEC39000D5E09FFF9000D465
-:1022E400E09EFE7C097DC412187D780A12181BEE4C
-:1022F400F0A3EFF0E025E0FE9000D4E0339000D2AC
-:10230400F0A3CEF0C246229000D1EBF0C454F044C6
-:0F23140001F5A5E49000D4F0A3F09000DBF022D7
-:03006B000228CD9B
-:1028CD00C0E0C0F0C083C082C0D075D000C000C0D1
-:1028DD0006C007E5F330E038AFA1780E760008A604
-:1028ED0007E5A254031846F608E6F69000DBE0C3B0
-:1028FD009408501718E6FE08E6FF9000D4EE8FF00E
-:10290D0012178F9000DBE004F08005D24653A5FE30
-:10291D0075F301D007D006D000D0D0D082D083D0AF
-:04292D00F0D0E032D4
-:051D0700C123011403DB
-:102C700075FE8743FF2075FE7043FF1853B3F14381
-:102C8000B301E47816F67818F67814E67817F67833
-:102C90001976017916E718461846F5B175B2012282
-:10205B00E4FE9000D8E0FCA3E0FDC394D8EC94031D
-:10206B0040037F0022EF7003022174D3ED940FEC39
-:10207B0094034003022152ED94CBEC9400500302E5
-:10208B002152D3ED94AAEC94024022D2217814E68B
-:10209B00FF137817F6302211D3ED94BFEC94024066
-:1020AB0004C22280047817A607E4FE8070D3ED9457
-:1020BB00AAEC94025043ED9437EC9401403BD222AE
-:1020CB007814E6FF7817F6302113D3ED9493EC9444
-:1020DB00025004C2218006EFC3137817F6781976E5
-:1020EB0001301C11D3ED9451EC94015004C21C80AF
-:1020FB0004E47819F6E4FE8024D3ED9437EC9401D4
-:10210B00501BD21CE47819F6302210ED9426EC9477
-:10211B00015004C222800478197601E4FE301F11AD
-:10212B00C3ED94F3EC94025006C21FE4FE80027ED2
-:10213B000130202FD3ED94DDEC94004006C220E457
-:10214B00FE80207E01801CD3ED940FEC940340069F
-:10215B00D21F7E01800DD3ED94CBEC94005004D2B2
-:10216B00207E01C21DC21E8058C21FC220D3ED9417
-:10217B009FEC94035031ED9471EC94004029301D89
-:10218B0010ED9484EC94035006C21DE4FE80027E95
-:10219B0001301E2DD3ED9482EC94004006C21EE458
-:1021AB00FE801E7E01801AD3ED949FEC94034004B5
-:1021BB00D21D800BC3ED9471EC94005002D21E7EA5
-:0821CB00017819E6F5B2AF0638
-:0121D30022E9
-:10252500E5E65480FFE4FCFDFEEF700753B3FE784B
-:1025350015F62278157601E5E830E50575E8208081
-:102545000FE5E530E1028008E5F230E50775F22098
-:1025550053B3FE22E5F2540C601353B3FEE5F35476
-:10256500C070030225EF75F20C75F3C02275F3C038
-:102575007F0112205BEF600653B3FED22322C223F4
-:10258500E5F230E4247819E6246AFFE434FFFEC35B
-:102595009000D7E09F9000D6E09E500575F2108020
-:1025A5000353B3FE78157603227916E77818461893
-:1025B50046F5B17819E6F5B243B311781BE6FFD3BA
-:1025C50094014002C23DEFD394034002C239EFD3D8
-:1025D50094074002C23BEFD3940C4002C23AEFD3BA
-:0B25E50094114002C23C7815760222DF
-:061D0C00C13EC13FC140D1
-:10000E00303F10EFB4010475B5C02253B5BFED44B7
-:04001E0080F5B52292
-:102E4700E5B55480FFEF6008303F05E4F5B5C23FB4
-:012E57002258
-:1029F400C23FE5E520E154E5E230E703D24022E5B9
-:102A0400E830E00D30254475E8017D3FE4FF020025
-:102A14000EE4FF12205BEF6006122E47D23E22C264
-:102A24003E303D03022E47D23F30401F7815E6B4B6
-:102A34000219C39000D7E094109000D6E0940E40A1
-:0C2A440005D23FC24022122E47C23F22A2
-:081D1200C144C1454100F5FF89
-:102CA000E5E25408FF9000F5E06F6021E5E230E3D3
-:102CB000089000F47401F08005E49000F4F0D24430
-:0D2CC000C210D245D2389000F5EFF0D24896
-:012CCD0022E4
-:101D1A00C132C131C130011C004100EC004100F068
-:0E1D2A00004100EB004200ED00004100EF0020
-:101E9B00E5E25402FFE4FCFDFEEF70319000ED75BE
-:101EAB00F00112178F9000EDE0FEA3E0FFC3941733
-:101EBB00EE94024004D230800EC3EF9487EE940070
-:101ECB004005202F02D22FD22CC22D8040302C3631
-:101EDB00D248E4781CF6C22CD22D9000EFF0900083
-:101EEB00EDE0FEA3E0FFD3941EEE94005008D23237
-:101EFB00D22ED238800EC3EF944FEE9401500530A2
-:101F0B002F02D231C22FE49000EDF0A3F0302D66FA
-:101F1B00303F6330312720100280287F03122AA71D
-:101F2B009000EFE0D394235003022047C231781C7A
-:101F3B007602E49000ECF0900071F0A3F0303029C1
-:101F4B0020100A7D3FE4FF12000ED210227F0312F5
-:101F5B002AA79000EFE0D394235003022047C2300E
-:101F6B00E49000F0F0781C7603302E06C22E781C1D
-:101F7B007601C22DC2109000F4E0640160030220D0
-:101F8B005A781CE66402600302201B9000ECE0C34D
-:101F9B00940150107D227F02122323E4900071F0F4
-:101FAB00A3F080549000EBE0D394054003E4803918
-:101FBB00900072E0B4010F7D117F03122323900078
-:101FCB00727402F08032900072E06402702A90000A
-:101FDB0071E0601D7D227F03122323E4900071F0DA
-:101FEB00A3F09000ECF09000EBF0781CF6D211808F
-:101FFB00597D117F021223239000ECE0D3941440FF
-:10200B000A9000EBE004F0E4A3F0229000EC802CAB
-:10201B00781CE6640370389000F0E0FFC394B45072
-:10202B001FEF540F70047D22800A9000F0E05407DC
-:10203B0070077D117F041223239000F0E004F0223F
-:0F204B00E4781CF6D2119000F0F07F04122AA75F
-:01205A002263
-:101D3800410079004100780041007A0041007700B5
-:102D1D0075FE0675FF3C75FE0E53FF0F75FE0F53C6
-:102D2D00FFF075FE0375FFFFC282C283C285C284A8
-:012D3D002273
-:102DB900EF14600D14600D14600D2403700BD282A2
-:0A2DC90022D28322D28422D2852276
-:052D5E00900000E0FF01
-:102D6300EF14600D14600D14600D2403700BC28208
-:0A2D730022C28322C28422C28522FC
-:10299400E4FF747B2FF582E43400F583E4F0747F64
-:1029A4002FF582E43400F583E4F0EF25E02483F589
-:1029B40082E43400F583E4F0A3F0EF25E0248BF502
-:1029C40082E43400F583E4F0A3F0EF25E02493F5EA
-:1029D40082E43400F583E4F0A3F0EF25E0249BF5D2
-:0F29E40082E43400F583E4F0A3F00FEFB404A312
-:0129F30022C1
-:10293100AC07747B2CF582E43400F583EDF0EAC337
-:1029410013FEEB13FFEC25E02483F582E43400F55C
-:1029510083EEF0A3EFF0AF03EC25E0248BF582E4E6
-:102961003400F583EAF0A3EFF0900005E0FEA3E068
-:10297100FFEC25E02493F582E43400F583EEF0A327
-:10298100EFF0EC25E0249BF582E43400F583E4F0DC
-:03299100A3F0228E
-:102BD000747B2FF582E43400F583EDF0747F2FF5DC
-:102BE00082E43400F583EBF0EF25E02483F582E402
-:102BF0003400F583E4F0A37469F0EF25E0249BF53D
-:0B2C000082E43400F583E4F0A3F0222E
-:100B8400E4900000F0F0900000E0FFC39404400300
-:100B9400020EC6747B2FF582E43400F583E06022F4
-:100BA40024FE6024147003020C8E147003020D05DD
-:100BB40024036003020E62900000E0FF122DB902CC
-:100BC4000E62122D5E020E62900000E0FF25E0240A
-:100BD40083F582E43400F583E0FCA3E0FDEF25E037
-:100BE400249BF582E43400F583E0FEA3E0C39DEE8C
-:100BF4009C5005122DB98003122D5E900000E0FF79
-:100C040025E0248BF582E43400F583E0FCA3E0FDC9
-:100C1400EF25E0249BF582E43400F583E0FEA3E0B5
-:100C2400C39DEE9C5003020E62900000E025E02478
-:100C34009BF582E43400F583E4F0A3F0EF25E0248F
-:100C440093F582E43400F583E0FEA3E0D39400EE50
-:100C540094004016900000E025E02493F582E434EB
-:100C640000F58374FFF5F012178F900000E0FF2564
-:100C7400E02493F582E43400F583E0FCA3E04C60C7
-:100C840003020E62747B2F020D21900000E0FF2509
-:100C9400E02483F582E43400F583E0FCA3E0FDEF77
-:100CA40025E0249BF582E43400F583E0FEA3E0D341
-:100CB4009DEE9C5005122DB98003122D5E9000000C
-:100CC400E0FF25E0248BF582E43400F583E0FCA307
-:100CD400E0FDEF25E0249BF582E43400F583E0FE9B
-:100CE400A3E0C39DEE9C5003020E62900000E02539
-:100CF400E0249BF582E43400F583E4F0A3F0020ED3
-:100D040062900000E0FF247FF582E43400F583E084
-:100D14007017122B49C247900000E0247BF582E44F
-:100D24003400F583E4F0020E62900000E0FF247FBB
-:100D3400F582E43400F583E0FE6402704B2047142E
-:100D4400D247EF25E02483F582E43400F583E4F010
-:100D5400A37469F0900000E0FF25E02483F582E4A9
-:100D64003400F583E475F00112178FEF25E0248336
-:100D7400F582E43400F583E0FCA3E0C394FEEC9434
-:100D8400005003020E4C804EEE6401705A20471747
-:100D9400D247900000E025E02483F582E43400F596
-:100DA40083E4F0A374FEF0900000E0FF25E02483C8
-:100DB400F582E43400F58374FFF5F012178FEF2504
-:100DC400E02483F582E43400F583E0FEA3E0D394C9
-:100DD40069EE94005072900000E0247FF582E434C0
-:100DE40000F583E4F08061900000E0FF247FF58249
-:100DF400E43400F583E06403704EEF25E02483F5CA
-:100E040082E43400F583E0FEA3E0FFC394FEEE9495
-:100E1400004004D247800BD3EF946AEE9400500252
-:100E2400C247900000E025E0248330470DF582E4BA
-:100E34003400F58374FFF5F0800BF582E43400F59B
-:100E440083E475F00112178F900000E0FF25E02481
-:100E540083F582E43400F583A3E0FD122AF89000C0
-:100E640000E0FF7011747B2FF582E43400F583E019
-:100E7400900079F08043900000E0B40110247BF5E9
-:100E840082E43400F583E0900078F0802C90000038
-:100E9400E0B40210247BF582E43400F583E0900092
-:100EA4007AF08015900000E0B4030E247BF582E410
-:100EB4003400F583E0900077F0900000E004F00245
-:100EC4000B8AE4900000F0900000E0FFC39404500B
-:100ED4001BEF25E0249BF582E43400F583E475F0F0
-:0C0EE4000112178F900000E004F080DB8A
-:010EF00022DF
-:0B1D48004200F100004100F30FC14811
-:102CCE0075FE1E43FF0275FE2143FF0875D48775FE
-:102CDE00FE2143FF0475FE2143FF02300F0775FEF0
-:0C2CEE002453FFC32275FE2443FF3C2248
-:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E
-:0400660043FFB02282
-:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923
-:04007E0053FF4F22BB
-:092E9D0012006E43870202005688
-:102E33007815E6D394015006201203304804C248A3
-:042E4300C322D322B1
-:102A500075FE01E4F5FF122DD3122E90122E75E4AF
-:102A6000F58675B7C375FE6A75FF0475FE6C43FF86
-:102A70000B122E0575FE8043FF0275FE0E53FFFC00
-:102A800043FF0175FE1775FF3CD2A8D2AF122C7020
-:102A90007D697F03122E1D122D1D122994122CCE3A
-:072AA0009000E07401F02238
-:03000300020006F2
-:03000600D24832AB
-:03004B00022EAED4
-:062EAE0075EB3CD2483236
-:03005300022EB4C6
-:062EB40075F302D2483262
-:101D530020402A00000000000000000000000000F6
-:101D63000000000000000000000000000000000070
-:101D73000000000000000000000000000000000060
-:101D83000000000000000000000000000000000050
-:0F1D9300000000C143C1424100F6004100F700CB
-:0E2E6700900029EFF0122EA6900029E0FF2225
-:082EA6002041FDD2418F992269
-:102DD30075FE0E53FFF343FF04D2DF43878075BABA
-:0A2DE3000375AAFD759852D2AC22C8
-:03002300022E8327
-:0D2E8300309904C299C241309802C29832C1
-:0D2E900075BB03759DDC759B92439A012272
-:062C0B0090004312184E78
-:102C1100E4900046F0F0900046E0C39FE49E501C13
-:102C21002042FDD242900043E475F00112183712A0
-:0C2C3100169FF59C900046E004F080DA4D
-:012C3D002274
-:0300830002269DB5
-:10269D00C0E0C083C082C0D075D000C000C005C0EE
-:1026AD0006C007E59B30E105539BFDC242E59B301B
-:1026BD00E076539BFED2489000F6E014601914604A
-:1026CD003424027063E59C9000F6B455087401F053
-:1026DD00A3E4F0800E8018E59C9000F6B4AA107467
-:1026ED0002F0A3E0FF04F0742A2FF8A69C8039E4D1
-:1026FD00F0A3F080339000F7E0FF04F0742A2FF878
-:10270D00A69C782EE62406FFE433FEE0FDC39FEE83
-:10271D006480F87480985005ED9440400B9000F75C
-:10272D00E4F09000F6F0D243D007D006D005D000EB
-:09273D00D0D0D082D083D0E0326C
-:102441004177616B6520536F757263653A57505FD1
-:10245100466C6167303A307825782C57505F466C6E
-:102461006167313A307825782C57505F466C616747
-:10247100333A307825782E286C696E653A256429BF
-:102481000D0A00536C6565702053746174652028D2
-:102491006C696E653A2564290D0A004348475F530C
-:1024A10054413A25642C53545F564F583A3078259D
-:1024B100782C535441303A307825782C535441319B
-:1024C1003A307825782C535441323A307825782C9B
-:1024D100535441333A307825782C535441343A30AF
-:1024E1007825782E4465635F536C6565703A256481
-:1024F1000D0A004465636E745F536C6565704465D5
-:102501006C61792052656C6F61642E0D0A00456E15
-:10251100746572205374616E646279204D6F6465D5
-:04252100210D0A007E
-:101DA2004300E00402024100DD004100DE00C138D0
-:0E1DB200C1374100DF004100E3004100DC00CA
-:10002600E4FB7D04FF122BD0E4FB7D047F01122B41
-:10003600D0E4FB7D047F02122BD0E4FB7D047F031A
-:03004600022BD0BA
-:1007B100303859C238E49000DEF0781AF69000051E
-:1007C100F0A3F0FBFAFDFF122931E4900005F0A33C
-:1007D100F0FBFAFD7F01122931E4900005F0A3F04E
-:1007E100FBFAFD7F02122931E4900005F0A3F0FB32
-:1007F100FAFD7F031229319000797402F09000789C
-:10080100F090007AF0900077F0D2482220230F2058
-:100811003E0C200D030208C6300F030208C6203328
-:1008210005D233D23822900079E06402601A900038
-:1008310005E4F0A3740AF07B147A007D02E4FF1250
-:1008410029319000797403F0900078E06402601A15
-:10085100900005E4F0A3740AF07B147A007D027F16
-:10086100011229319000787403F090007AE064025B
-:10087100601A900005E4F0A3740AF07B147A007DFD
-:10088100027F0212293190007A7403F0900077E020
-:100891006402601A900005E4F0A3740AF07B147AF4
-:1008A100007D027F031229319000777403F0200D3F
-:1008B10003020B839000DEE0C394285003020A0177
-:1008C100D20FD2382230330CC233C235C234C245C2
-:1008D100C20ED2377815E6FF70030209DB6403709C
-:1008E1005E203507D235C234020026E4900005F0BF
-:1008F100A3F0FBFA7D01FF122931E4900005F0A37A
-:10090100F0FBFA7D017F01122931E4900005F0A38B
-:10091100F0FBFA7D017F02122931E4900005F0A37A
-:10092100F0FBFA7D017F031229319000797401F007
-:10093100900078F090007AF0900077F00209D220D0
-:10094100340ED234C235D238E49000E3F00209D239
-:100951009000DEE0C394015057E004F09000E3E022
-:1009610014601A14602714603424037064900079B1
-:10097100E06404605C7B017D04E4FF802E900078DC
-:10098100E06404604C7B017D047F01801E90007A4D
-:10099100E06404603C7B017D047F02800E9000775F
-:1009A100E06404602C7B017D047F03122BD0802145
-:1009B1009000DEE0C3940F5005E004F08013E49052
-:1009C10000DEF09000E3E004F0E0C394044002E4B0
-:1009D100F0C245C20EC232D2362230340AC23412BB
-:1009E1000026D238D2372220450C203609200E06A7
-:1009F100203203020B839000DEE0FFC39401500418
-:100A0100E004F022EFC394644003020B2E9000DE59
-:100A1100E004F0303B37900079E064037003020B8F
-:100A210083E4900005F0A3F07B64FA7D03FF1229B3
-:100A3100319000797404F0E4900005F0A3F0FBFA22
-:100A4100FD7F011229319000787402802D303A41E6
-:100A5100E4900005F0A3F0FBFA7D01FF122931902B
-:100A610000797401F0E4900005F0A3F0FBFA7D0138
-:100A71007F011229319000787401F0E4900005F0B3
-:100A8100A3F0FBFAFD7F0212293190007A740280F3
-:100A910043E4900005303C53F0A3F0FBFA7D01FFE5
-:100AA1001229319000797401F0E4900005F0A3F06F
-:100AB100FBFA7D017F011229319000787401F0E485
-:100AC100900005F0A3F0FBFA7D017F02122931901D
-:100AD100007A7401F0E4900005F0A3F0FBFAFD7FC9
-:100AE100031229319000777402F022F0A3F0FBFA8F
-:100AF1007D01FF122931E4900005F0A3F0FBFA7D9E
-:100B0100017F01122931E4900005F0A3F0FBFA7D89
-:100B1100017F02122931E4900005F0A3F0FBFA7D78
-:100B2100017F0312293190007974018048C245C2C6
-:100B310036C20EC232E4900005F0A3F0FBFAFDFFCD
-:100B4100122931E4900005F0A3F0FBFAFD7F0112B8
-:100B51002931E4900005F0A3F0FBFAFD7F02122990
-:100B610031E4900005F0A3F0FBFAFD7F0312293177
-:100B71009000797402F0900078F090007AF0900083
-:020B810077F00B
-:010B8300224F
-:102D3E009000DAE0FF04F01221D49000DAE0B4063D
-:102D4E000204F09000DAE0C3940840037402F0220B
-:102D7D00122CA0121E9B1227E6302411C2241225FC
-:0E2D8D00251229F41225F01207B11212562257
-:1018BC00E4900000F09000E0E0FFA3E0FE6F700306
-:1018CC00021960A3EEF09000E0E0A3F024FE603576
-:1018DC0014606714606B24036003021ADF90000528
-:1018EC00E4F0A37403F07B647A007D02E4FF122918
-:1018FC0031900005E4F0A37403F07B647A007D0260
-:10190C007F01022931300F09D24475E80CC20DC297
-:10191C000F7BFF7A247941AFF6900004E4F0A3EF3B
-:10192C00F0AFF8A3E4F0A3EFF0AFFAA3E4F0A3EF69
-:10193C00F0A37402F0A3740680169000F3740FF0F9
-:10194C00227BFF7A2479849000047402F0A3741E25
-:10195C00F0021A669000E1E024FE60351460761403
-:10196C007003021A7924036003021ADF9000DCE092
-:10197C0004F0E0C394085003021ADF9000E07402F4
-:10198C00F0E49000DCF0781BE66003021ADF021A28
-:10199C0072E5F6700CE5F87008E5FA7004E5E160A4
-:1019AC002D9000E07403F0E5F6540FFFE4FCFDFE0F
-:1019BC007B08FAF9F8C312180A70069000E0740458
-:1019CC00F075E11F75F60F75F8FC75FABC229000E6
-:1019DC00E07403F022202803021ADFC22875FE6E81
-:1019EC00900000E5FFF07BFF7A24799C7815E6FFE8
-:1019FC00900004E4F0A3EFF0900000E0FF900006EC
-:101A0C00E4F0A3EFF0AFE2A3E4F0A3EFF0AFE3A3B5
-:101A1C00E4F0A3EFF0AFE4A3E4F0A3EFF0AFE5A3A1
-:101A2C00E4F0A3EFF0AFE6A3E4F0A3EFF09000F343
-:101A3C00E0FF900012E4F0A3EFF0120F5C9000F3C3
-:101A4C00E0D394004017E014F0204803021ADFC2E0
-:101A5C0048740FF07BFF7A2479F4020F5C7BFF7AD9
-:101A6C0025790F120F5C9000E07404F022122E33D3
-:101A7C00505B122CCE7F04122AA7122E47E4900042
-:101A8C0005F0A3F0FBFAFDFF122931E4900005F0FC
-:101A9C00A3F0FBFAFD7F01122931E4900005F0A3BD
-:101AAC00F0FBFAFD7F02122931E4900005F0A3F05F
-:101ABC00FBFAFD7F031229319000797402F090003B
-:101ACC0078F090007AF0900077F0022E9D9000E074
-:031ADC007402F0A1
-:011ADF0022E4
-:102C3E00302726C2279000DDE0FF04F0EF14600C71
-:102C4E0014600E24027012122D3E800D122D7D8006
-:102C5E00081218BCE49000DDF0302905C229120BD1
-:022C6E008422BE
-:101AE000426F7820436C6F73652E286C696E653A7F
-:101AF0002564290D0A00426F78204F70656E2E28EC
-:101B00006C696E653A2564290D0A004F70656E2F69
-:101B1000436C6F736520426F782C45617270686FFB
-:101B20006E657320496E20426F78284E756D3A2598
-:101B3000642928566F785374613A30782578292EB5
-:101B40000D0A004F70656E20426F7820434D44208F
-:101B50005458204F7665722E0D0A004F70656E2026
-:101B6000426F7820416E642045617270686F6E65C7
-:101B700020476574496E284E756D3A2564292856AC
-:101B80006F785374613A30782578292E0D0A004316
-:101B90006C6F736520426F7820416E6420466F72CF
-:101BA000636520566F6C746167652055702E0D0A51
-:101BB00000564F5820566F7574203556285354419F
-:101BC000313A307825782C6C696E653A2564292E77
-:101BD0000D0A00564F58204348472046756C6C2E1E
-:101BE0000D0A00564F582047657420496E746F20C7
-:101BF000536C6565702E0D0A005258315F42756650
-:101C00006665725B305D3A307825782C5258315FCA
-:101C10004275666665725B315D3A307825782C5284
-:101C200058315F4275666665725B325D3A30782581
-:101C3000782C5258315F4275666665725B335D3A47
-:101C4000307825782C5258315F4275666665725B34
-:101C5000345D3A307825782C5258315F427566668B
-:101C600065725B355D3A307825782C5258315F4289
-:101C700075666665725B365D3A307825782C6C69DE
-:101C80006E653A25640D0A000000000000000000A7
-:101C90000000000000000000000000000000000044
-:101CA0000000000000000000000000000000000034
-:101CB0000000000000000000000000000000000024
-:081CC00000000000000000001C
-:101DC000C112C10EC110410073FFC10D42004D0090
-:101DD0000042004B000042007100001A6A0000003F
-:101DE00000000000000000000000000000000000F3
-:101DF000000000000000002024840000000000001B
-:101E000000000000000000000000000000000000D2
-:101E10000000000000000000000000000000410081
-:101E2000700042006E00004200740000C10FC1113A
-:031E300001A80006
-:102AA700EF24FE601E14602814602F24FE60352476
-:102AB70005703D43BD8853BDBB75FE6F53FFF243A1
-:102AC700FF092243BDCC75FE6F53FFFE43FF0C2267
-:102AD70053BD7753B7CF43B7302253B7CF43B7036D
-:102AE70053BD772253B7CC53BD7775FE6A43FF308A
-:012AF70022BC
-:10125600203F0302157030447A20100A7D3FE4FFD8
-:1012660012000ED210227F03122AA7E490004AF041
-:10127600900048F0A3F0C200C201D20B9000F4E047
-:10128600702EC20ED202D203C205C208C204C2091F
-:10129600C20AD212C23790006CF0A3F0900076F02A
-:1012A6007BFF7A1A79E090000404F0A374E38017B8
-:1012B600C202C203D205C2067BFF7A1A79F69000F3
-:1012C600047401F0A374F0F0120F5CC210C20DC2D8
-:1012D6000FC244900048E0C3940550030214FD3049
-:1012E6000B05C20B0214B520004CD200E5E354A056
-:1012F6006021E5E354A0FFE4FCFDFE7BA0FAF9F8CB
-:10130600C312180A90007070057402F0800A740106
-:10131600F08005E4900070F07BFF7A1B790B90005B
-:1013260070E0FF900004E4F0A3EFF0AFE3A3E4F075
-:10133600A3EFF0120F5C2005030213ED900049E0C5
-:10134600C3940550077F06122AA7802720014490E0
-:10135600004AE0FFD39414501FEF540370047D112C
-:10136600800990004AE020E0077D227F01122323B6
-:1013760090004AE004F0806F7F04122AA7E49000F0
-:101386004AF0D201D211C2127BFF7A1B7943120FA7
-:101396005C8054781CE6704F301104C2118040E521
-:1013A600E354A0FBE4FAF9F8900047E0FFE4FCFD03
-:1013B600FEC312180A6030E5E354A06004D20ED2D0
-:1013C600387BFF7A1B795B900070E0FF900004E4A5
-:1013D600F0A3EFF0AFE3A3E4F0A3EFF0120F5CE5A8
-:1013E600E354A0900047F020020302156D30374801
-:1013F6002010237D3FE4FF12000ED210D212E4909B
-:10140600006CF0A3F0900076F0900048F0C208D28D
-:101416000BC200D204227F03122AA77BFF7A1B7914
-:101426008F120F5CC210D203900048E0D394035091
-:10143600030214FDC237805020044D900049E0FF9E
-:10144600D39414501DEF540370047D11800990004D
-:1014560049E020E0077D227F0812232390004902FD
-:1014660014FD90004AE0FFD39414501CEF5403700F
-:10147600047D11800990004AE020E0077D227F026A
-:1014860012232390004A806FE5E8540C6026200F53
-:101496001E90004AE004F0E0C3940550030215A82C
-:1014A600E4F075E80C7F03122AA7D20DC212227F40
-:1014B60004022AA7C20DC20F3003257F03122AA7F2
-:1014C6007BFF7A1B79B1AFE3900004E4F0A3EFF061
-:1014D600A37403F0A37428F0120F5CC20302156D07
-:1014E600200846E5E354AC64AC600330392A90002A
-:1014F60048E0D394285004E004F0227BFF7A1B795D
-:10150600D3120F5CD208E490004AF0900048F0C273
-:10151600097F04122AA7804F90006DE070497B0175
-:101526007A00794F120086803E90004AE0FFD394FD
-:1015360014501FEF540370047D11800990004AE097
-:1015460020E0077D227F0512232390004AE004F065
-:101556008015200912D2097F04122AA7C2127BFF26
-:101566007A1B79E3120F5CC2072220070BD2077F92
-:1015760004122AA7C2128022E5E354A0FBE4FAF97A
-:10158600F8900047E0FFE4FCFDFEC312180A601263
-:10159600E5E354A06004D20ED238E5E354A09000EF
-:0215A60047F00C
-:0115A8002220
-:0600860090000012184E6C
-:10008C00900076E014700302016314700302023DC9
-:10009C001470030202AE14700302041A24046003E9
-:1000AC0002059A90000012182E90001E1216B860CD
-:1000BC000302059A78A8E6D3940A50260690001AF3
-:1000CC00743F121718300C0302059A900000121896
-:1000DC002E90001A1216B8FDE4FF12000ED20C027C
-:1000EC00059AE478A8F6C20C90000012182E900025
-:1000FC0037E4121718900026E4121718900034E415
-:10010C00121718900023E4121718900032E41217FB
-:10011C0018900021E4121718900039E41217189067
-:10012C000028E4121718900050E4F5F01217DD9037
-:10013C00002EE4F5F01217DD900019E41217189058
-:10014C00001B743F1217189000767401F0E49000B5
-:10015C004DF0A3F002059AE5E35408FFE4FCEF60D0
-:10016C001CE5E35404601690000012182E90001E3B
-:10017C007401121718E4900076F002059AE5E35426
-:10018C0008FFE4FCEF704A9000CFE0FEA3E0FF9084
-:10019C00000012182E900044EE8FF01217DD7D0532
-:1001AC0012173AEF7802C333CE33CED8F9FF900052
-:1001BC000012182E900048EE8FF01217DD9000D030
-:1001CC00E025E0FF9000CFE03390004C8FF0121749
-:1001DC00DDE5E35404FFE4FCEF704A9000CDE0FE53
-:1001EC00A3E0FF90000012182E900022EE8FF01268
-:1001FC0017DD7D0512173AEF7802C333CE33CED814
-:10020C00F9FF90000012182E900026EE8FF01217B6
-:10021C00DD9000CEE025E0FF9000CDE03390002A89
-:10022C008FF01217DD90000012182E90001D0205A1
-:10023C008FD390004EE0940590004DE09400500256
-:10024C00806FE490004DF0A3F0E5E35408FFEF70ED
-:10025C001F9000CFE0FEA3E0FF90000012182E903C
-:10026C000050EE8FF01217DD900039740112171840
-:10027C00E5E35404FFE4FCEF701F9000CDE0FEA317
-:10028C00E0FF90000012182E90002EEE8FF0121747
-:10029C00DD90002874011217189000767403F00298
-:1002AC00059AD390004EE0940290004DE0940050DB
-:1002BC000AE475F00112178F02059AE490004DF0D4
-:1002CC00A3F090000012182E90004C1217A5FFAE50
-:1002DC00F09000501217A5D39FE5F09E501C900093
-:1002EC000012182E90002A1217A5FFAEF090002EC7
-:1002FC001217A5D39FE5F09E4011E4900076F09084
-:10030C00000012182E90001D0203DC900000121841
-:10031C002E9000391216B86401706D9000501217AF
-:10032C00A5FFAEF0D39414EE94005031E5E330E326
-:10033C001F900037740112171890001A1216B8C3C8
-:10034C00943F404490000012182E900039E4803500
-:10035C0090000012182E9000347401802890000038
-:10036C0012182E9000481217A5FDD3EF9DEE95F0B4
-:10037C00900000400812182E900034800612182E9F
-:10038C00900037740112171890000012182E90006C
-:10039C00281216B86401600302059A90002E1217F9
-:1003AC00A5FFAEF0D39414EE94005034E5E330E2A4
-:1003BC0022900026740112171890001A1216B8C356
-:1003CC00943F500302059A90000012182E900028BA
-:1003DC00E4803590000012182E90002374018028C0
-:1003EC0090000012182E9000261217A5FDD3EF9D39
-:1003FC00EE95F0900000400812182E900023800615
-:10040C0012182E900026740112171802059AD39018
-:10041C00004EE0941490004DE094005031E475F0DF
-:10042C000112178F9000CFE0FEA3E0FF90000012A6
-:10043C00182E900050EE8FF01217DD9000CDE0FFDB
-:10044C00A3E090002ECF8FF01217DD02059AE490F6
-:10045C00004DF0A3F090000012182E9000391216E7
-:10046C00B8640160030204F89000281216B8640105
-:10047C00707A9000481217A5FFAEF090005012173A
-:10048C00A5FDACF0C39FEC9E401890000012182EF6
-:10049C0090004C1217A5FFD3ED9FEC95F050030282
-:1004AC00059A90000012182E9000261217A5FFAE88
-:1004BC00F090002E1217A5FDACF0C39FEC9E4018D7
-:1004CC0090000012182E90002A1217A5FFD3ED9F52
-:1004DC00EC95F0500302059A90000012182E900033
-:1004EC0037740112171890002602058F9000001225
-:1004FC00182E9000391216B8640170419000481201
-:10050C0017A5FFAEF09000501217A5FDACF0C39FDD
-:10051C00EC9E401590000012182E90004C1217A55E
-:10052C00FFD3ED9FEC95F0401490000012182E9024
-:10053C00003774011217189000767402F0900000C6
-:10054C0012182E9000281216B86401704190002ADF
-:10055C001217A5FFAEF090002E1217A5FDACF0D32C
-:10056C009FEC9E501590000012182E90002612172A
-:10057C00A5FFC3ED9FEC95F0501490000012182EBF
-:10058C0090002674011217189000767402F09000F7
-:10059C000012182E9000391216B8FF6401600D90ED
-:1005AC0000281216B86401600302079790003412F9
-:1005BC0016B8FE6401600D9000231216B864016039
-:1005CC0003020711EFB4011E9000281216B8B401F3
-:1005DC0015EEB401119000341216B8B40108900055
-:1005EC001474011217189000391216B8FFB40118C0
-:1005FC009000281216B870109000341216B86401CE
-:10060C00702390001404801AEF701A9000281216B0
-:10061C00B8B401119000231216B8B401089000145C
-:10062C007401121718900034E4121718900023E488
-:10063C001217189000141216B8640160030207B068
-:10064C0090000012182E90001A1216B8D394004085
-:10065C000890001A74FE1216E59000191216B8FFD5
-:10066C0090001A1216B8D39F401B9000D7E024C8F4
-:10067C00FF9000D6E03400FEC39000D3E09F9000C2
-:10068C00D2E09E504890000012182E9000191216BD
-:10069C00B8FF90001A1216B8D39F90000050131296
-:1006AC00182E90001AEF12171890001CE41217184D
-:1006BC00801312182E90001C740112171890001A37
-:1006CC0074021216E59000767404F0801390007694
-:1006DC007402F090000012182E90001CE4121718EF
-:1006EC00E490004DF0A3F090000012182E9000142E
-:1006FC00E412171890001C1216B8FF90001A12166C
-:10070C00B8FD02079490000012182E9000371216B4
-:10071C00B86401600D9000261216B86401600302E3
-:10072C0007B0900037E4121718900026E41217183F
-:10073C0090001A1216B8C3943F500E900000121875
-:10074C002E90001A74021216E59000767404F09044
-:10075C00000012182E90001B1216B8FF90001A12EF
-:10076C0016B8C39F401390000012182E90001AEF79
-:10077C001217189000767401F090000012182E9049
-:10078C00001A1216B8FDE4FF02000E900076E0D3BA
-:10079C0094024010E4F090000012182E90001E7489
-:0407AC000112171807
-:0107B0002226
-:0B2B8D0090004312184E900046EDF03F
-:102B9800E4FE900046E0FD14F0ED6029900043E467
-:102BA80075F00112183712169F6EFEE4FFEFC394FA
-:102BB8000850DFEE30E007C313648CFE8004EEC3D8
-:072BC80013FE0F80E8AF06C9
-:012BCF0022E3
-:08232300900000EFF0A3EDF0C3
-:10232B00E4A3F078037C007D017BFF7A1C7988FEA7
-:10233B007F401216799000037455F0A374AAF0A392
-:10234B0074FFF0900001E0900008F0900000E09026
-:10235B000006F0121857237D0123B402239903239F
-:10236B00B40423B40523B408237D09237D0A00009C
-:10237B0023BA9000077403F07815E65402C4333384
-:10238B0054C0781B46900009F0E4A3F08021E4FFD1
-:10239B00742A2FF8E6FE74032FF582E43400F583DC
-:1023AB00EEF00FEFB440E980069000077401F09057
-:1023BB000007E02405FF900002F0FD7B017A007915
-:1023CB0003122B8D900002E02403F582E43400F518
-:1023DB0083EFF07F01122AA7900001E0FFB41108F0
-:1023EB0043BD0253BDFE8016EFB4220843BD2053FC
-:1023FB00BDEF800AEFB4FF0643BD2253BDEE900044
-:10240B0002E02402FFE433FE7B017A007903122CF5
-:10241B000B900001E0FFB4110753BDFD43BD01223A
-:10242B00EFB4220753BDDF43BD1022EFB4FF0653B9
-:05243B00BDDF43BD11EF
-:012440002279
-:102D9B00E4900001F0EF24FD60028011782FE6B47F
-:0D2DAB00110590007180039000727401F01A
-:012DB80022F8
-:1027E600E4900000F0304375C2437BFF7A1B79F911
-:1027F600782AE6FF900004E4F0A3EFF008E6FFA3D2
-:10280600E4F0A3EFF008E6FFA3E4F0A3EFF008E698
-:10281600FFA3E4F0A3EFF008E6FFA3E4F0A3EFF0D4
-:1028260008E6FFA3E4F0A3EFF008E6FFA3E4F0A3B5
-:10283600EFF0A37407F0A37455F0120F5C7B007AD7
-:1028460000792A782EE62405FD122B8D782EE624B3
-:0D2856002FF8E6B50707782DE6FF122D9B41
-:012863002252
-:101E3300011B00C139C13DC13BC13AC13C011A6913
-:101E4300602A00A30BB80BEA0C1C0C800CB20CE448
-:101E53000D160D480D7A0DAC0E100E420E740EA623
-:0E1E63000ED80F0A0F3C0F870FD2101D10680B
-:1025F000E4FF7815E6B40225EF25E024A3F582E494
-:102600003400F583E0FCA3E02432FDE43CFCC390FD
-:1026100000D7E09D9000D6E09C50208023EF25E07D
-:1026200024A3F582E43400F583E0FCA3E0FDC3902D
-:1026300000D7E09D9000D6E09C40050FEFB415B2A6
-:10264000781BE6FEEFD39E400418068003781A1626
-:10265000E5E16007E4F5E1781BA607781AE6FED30A
-:1026600094C85006EEC3940A5007781BA607187644
-:1026700069781BE6FFD394005002D23DEFD394015A
-:102680005002D239EFD394055002D23BEFD3940AD3
-:0C2690005002D23AEFD3940F5002D23C1B
-:01269C00221B
-:101E71004100E7004100EA004100E6004200E400C1
-:101E8100004100E800C126C127C129C125C124C1E3
-:091E9100284100E900C12AC12B1F
-:102864009000E9E06062E4F0D2269000E7E004F032
-:10287400E0C394054004E4F0D2279000EAE004F0B9
-:10288400E0C3940A4004E4F0D2299000E4E475F033
-:102894000112178FC39000E5E094649000E4E09483
-:1028A400004006E4F0A3F0D2249000E6E004F0E057
-:1028B400C394FA4013E4F0D2259000E8E004F0E079
-:0928C40094044004E4F0D228223F
-:03000B00022CFACA
-:102CFA00C0E0C083C082C0D074FC258CF58C746699
-:102D0A00258AF58A9000E97401F0D0D0D082D08368
-:032D1A00D0E032D4
-:0E2E7500758901758CFC758A66D2A9D28C22F3
-:102B4900EFD39401501675FE0EEF25E02404FE74B0
-:102B590003A806088002C333D8FC801475FE0FEF62
-:102B690024FE25E0FE7403A806088002C333D8FCBE
-:102B7900F452FFEFB4040C75FE0F53FFF075FE0E0F
-:042B890053FF0F22C5
-:102E1D0075FE54EF5407F5FF75FE56AF058FFF7520
-:062E2D00FE5375FF0122B7
-:102AF800EFD39401501875FE0EEF25E02404FE7400
-:102B080003A806088002C333D8FC42FF801675FE6E
-:102B18000FEF24FE25E0FE7403A806088002C333E5
-:102B2800D8FC42FFEF70038DCE22EFB401038DCFA6
-:102B380022EFB402038DDE22EFB40304AF058FDF6A
-:012B4800226A
-:032FFD00010102CD
-:10276600022DEDE493A3F8E493A34003F68001F26F
-:1027760008DFF48029E493A3F85407240CC8C33374
-:10278600C4540F4420C8834004F456800146F6DF43
-:10279600E4800B0102040810204080901CC8E47EEF
-:1027A600019360BCA3FF543F30E509541FFEE49338
-:1027B600A360010ECF54C025E060A840B8E493A3FF
-:1027C600FAE493A3F8E493A3C8C582C8CAC583CA2A
-:1027D600F0A3C8C582C8CAC583CADFE9DEE780BEE2
-:011E9A000047
-:1015A900E709F608DFFA8046E709F208DFFA803E24
-:1015B90088828C83E709F0A3DFFA8032E309F60811
-:1015C900DFFA8078E309F208DFFA807088828C8379
-:1015D900E309F0A3DFFA806489828A83E0A3F6082D
-:1015E900DFFA805889828A83E0A3F208DFFA804C07
-:1015F90080D280FA80C680D4806980F280338010DE
-:1016090080A680EA809A80A880DA80E280CA803346
-:1016190089828A83ECFAE493A3C8C582C8CCC583BE
-:10162900CCF0A3C8C582C8CCC583CCDFE9DEE7808E
-:101639000D89828A83E493A3F608DFF9ECFAA9F00D
-:10164900EDFB2289828A83ECFAE0A3C8C582C8CC63
-:10165900C583CCF0A3C8C582C8CCC583CCDFEADE7C
-:10166900E880DB89828A83E493A3F208DFF980CCDE
-:1016790088F0EF60010E4E60C388F0ED2402B404D7
-:101689000050B9F582EB2402B4040050AF2323457E
-:0616990082239015F97395
-:10169F00BB010689828A83E0225002E722BBFE0249
-:0916AF00E32289828A83E493227C
-:1016B800BB010CE58229F582E5833AF583E02250E7
-:1016C80006E92582F8E622BBFE06E92582F8E22231
-:0D16D800E58229F582E5833AF583E493224B
-:1016E500BB010FF8E58229F582E5833AF583E02809
-:1016F500F0225009C58229F8E58226F622BBFE09AB
-:10170500C58229F8E22582F222F8EA2583F583E9E4
-:03171500932822F4
-:10171800F8BB010DE58229F582E5833AF583E8F007
-:10172800225006E92582C8F622BBFE05E92582C8B3
-:02173800F2229B
-:10173A00BC000BBE0029EF8DF084FFADF022E4CC93
-:10174A00F875F008EF2FFFEE33FEEC33FCEE9DEC5C
-:10175A00984005FCEE9DFE0FD5F0E9E4CEFD22EDA2
-:10176A00F8F5F0EE8420D21CFEADF075F008EF2FEC
-:10177A00FFED33FD4007985006D5F0F222C398FDDD
-:05178A000FD5F0EA227A
-:10178F00C5F0F8A3E028F0C5F0F8E58215827002E5
-:06179F001583E038F02282
-:1017A500BB0110E58229F582E5833AF583E0F5F082
-:1017B500A3E0225009E92582F886F008E622BBFE5F
-:1017C5000AE92582F8E2F5F008E222E5832AF583A5
-:0817D500E993F5F0A3E993226A
-:1017DD00F8BB0111E58229F582E5833AF583E8F03E
-:1017ED00E5F0A3F0225009E92582C8F608A6F022FB
-:0D17FD00BBFE09E92582C8F2E5F008F222E2
-:10180A00EB9FF5F0EA9E42F0E99D42F0E89C45F034
-:01181A0022AB
-:10181B00E8600FECC313FCED13FDEE13FEEF13FFAB
-:03182B00D8F122CF
-:09182E00E0FBA3E0FAA3E0F922BB
-:10183700F8E0FBA3A3E0F925F0F0E582158270023A
-:071847001583E0FA38F022DE
-:09184E00EBF0A3EAF0A3E9F0229B
-:10185700D083D082F8E4937012740193700DA3A320
-:1018670093F8740193F5828883E473740293686034
-:06187700EFA3A3A380DF34
-:10187D00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DF8
-:10188D00FDE43CFCE8A42EC8C5F03DFDE43CFCEFB6
-:0D189D00A4FFE5F028FEE43DFDE43CFC2244
-:100EF100E5082404F582E43400F583E00508229036
-:100F01000001301A03900004E475F0011218370251
-:100F1100169F2013E97F2ED2138018EF540F2490CF
-:100F2100D43440D4FF30170BEF24BFB41A00500360
-:100F31002461FFE50960021509050CE50C70020545
-:100F41000B301A0E900001E475F001121837EF0210
-:100F510018AA022E677403D21A8003E4C21AF50894
-:100F610090000112184EE4F509F50BF50CE5096046
-:100F7100077F20120F3480F5750AFFC214C213C215
-:100F810015C216C218C219C21B120F00FF700D3014
-:100F91001A057F00120F45AF0CAE0B22B4255FC2BC
-:100FA100D5C217120F00FF24D0B40A00501A75F0F1
-:100FB1000A780930D50508B6FF0106C6A426F62031
-:100FC100D5047002D21680D924CFB41A00EF500490
-:100FD100C2E5D217021146D21480C6D21380C0D204
-:100FE1001580BCD2D580BAD21880B47F20120F34BC
-:100FF1002015077401B5090040F1120EF1FF120F1F
-:1010010034020F6ED21BD2198095120EF1FB120E13
-:10101100F1FA120EF1F94A4B700679177A127BFF39
-:1010210020152EE509602A7E008E82758300121636
-:10103100B860060EEE650A70F0C2D5EBC0E0EAC0FA
-:10104100E0E9C0E0EE12118DD0E0F9D0E0FAD0E095
-:10105100FB12169FFF60AAEBC0E0EAC0E0E9C0E026
-:10106100120F34D0E02401F9D0E03400FAD0E0FBD3
-:10107100E50A0460DCD50AD980877BFF7A1179897A
-:10108100D215809C791080027908C219C21B800890
-:10109100D2D5790A8004790AC2D5E50A047002F52D
-:1010A1000AE4FAFDFEFF120EF1FC7B082014131274
-:1010B1000EF1FD7B1030130A120EF1FE120EF1FF3C
-:1010C1007B20EC3382D592D55013C3E43013069FB5
-:1010D100FFE49EFEE42014039DFDE49CFCE4CBF8B8
-:1010E100C214EC700CCFCECDCCE824F8F870F380AC
-:1010F10017C3EF33FFEE33FEED33FDEC33FCEB337F
-:10110100FB994002FB0FD8E9EB301405F8D0E0C49D
-:1011110048B214C0E00AEC4D4E4F78207B0070C2FB
-:10112100EAB50A0040BCC0E012118FD0F0D0E02037
-:101131001404C4C0E0C4B214C0F0120F1DD0F0D525
-:10114100F0EB020F6E121857100B531085580FDC7D
-:101151004C0FD84210894F1091441091490FF1431F
-:08116100109755107B46107B2E
-:1011690045107B471237500FE02D0FE42E10072B47
-:101179000FE82310052012202A0FA04800000FFFB6
-:101189003F3F3F00790AA2D5201614301809B9103B
-:10119900020404B9080104A2D5201902500104204F
-:1011A90015689215B509005034C0E07F2030161932
-:1011B9007F30A21572197218500F1211E6C215C2AA
-:1011C90019C218C21B7F30800F301803E9C0E01222
-:1011D9000F34301803D0E0F9D0E0B509CC30181736
-:1011E9007F30B9100C120F347F583017077F788081
-:1011F90003B90803120F343015057F2D020F347F10
-:1012090020201BF87F2B2019F322921580CF286EFE
-:10121900756C6C2900D214120EF13014F8C21478CE
-:101229000930D50108F6020FA02D50434958120E76
-:10123900F12403B405004001E490123293120F2502
-:0D124900743A120F25D216750904021085A3
-:1018AA00BB010689828A83F0225002F722BBFE011D
-:0218BA00F32217
-:00000001FF
diff --git a/Out/8837_EVB_250106_1941_A0D2_010102.bin b/Out/8837_EVB_250106_1941_A0D2_010102.bin
deleted file mode 100644
index b1cacf7..0000000
Binary files a/Out/8837_EVB_250106_1941_A0D2_010102.bin and /dev/null differ
diff --git a/Out/8837_EVB_250108_1930.bin b/Out/8837_EVB_250108_1930.bin
new file mode 100644
index 0000000..381decd
Binary files /dev/null and b/Out/8837_EVB_250108_1930.bin differ
diff --git a/Out/8837_EVB_250108_1930.hex b/Out/8837_EVB_250108_1930.hex
new file mode 100644
index 0000000..474cf5a
--- /dev/null
+++ b/Out/8837_EVB_250108_1930.hex
@@ -0,0 +1,830 @@
+:03000000022732A2
+:10273200758E3075D20078FFE4F6D8FD9000007FE8
+:10274200007E01E4F0A3DFFCDEFA75818802278DAA
+:0F2F210053797374656D20496E69742E0D0A0023
+:102EB600122B377BFF7A2F7921120F61D2AED2BE49
+:082EC60012294B122D2580F4A6
+:10205A00010D000114000113000112000111000119
+:10206A0010004100BC00020E00004200B60000420F
+:10207A0000BA00004200AF00004200B10000420076
+:10208A00B800004200B400004100B3004100BD00A6
+:02209A00C1463D
+:102ECE0075FE0F43FF8075FE2975FFB575A521753B
+:082EDE00FE1E43FF01D2BD22DC
+:10238400AB072046030224B19000B6E0FEA3E07838
+:1023940003CEC313CE13D8F9F0EE9000B6F090003C
+:1023A400B3E024FD603014606514700302244E24ED
+:1023B400FE7003022478240560030224AE780DE63F
+:1023C400FF3395E0FEC39000B7E09FFF9000B6E0B6
+:1023D4009E9000BA806E9000B6E0FEA3E0FF7C09F8
+:1023E4007DC412189E780A12183C9000B6EEF0A331
+:1023F400EFF07810E6FD3395E0FCC3EF9DFFEE9C13
+:10240400FE7C007D0512173C9000AFEE80369000F4
+:10241400B6E0FEA3E0FF7C097DC412189E780A1280
+:10242400183C9000B6EEF0A3EFF07811E6FD33957A
+:10243400E0FCC3EF9DFFEE9CFE7C007D0512173C83
+:102444009000B1EEF0A3EFF080609000B6E0FEA340
+:10245400E0FF7C097DC412189E780A12183C900093
+:10246400B6EEF0A3EFF0E025E0FE9000B6E0339086
+:1024740000B88032780DE6FF3395E0FEC39000B7D4
+:10248400E09FFF9000B6E09EFE7C097DC412189E7A
+:10249400780A12183CEEF0A3EFF0E025E0FE90007D
+:1024A400B6E0339000B4F0A3CEF0C246229000B35D
+:1024B400EBF0C454F04401F5A5E49000B6F0A3F0A9
+:0524C4009000BDF022B4
+:03006B000229B4B3
+:1029B400C0E0C0F0C083C082C0D075D000C000C0E9
+:1029C40006C007E5F330E038AFA1780E760008A61C
+:1029D40007E5A254031846F608E6F69000BDE0C3E6
+:1029E4009408501718E6FE08E6FF9000B6EE8FF044
+:1029F4001217919000BDE004F08005D24653A5FE65
+:102A040075F301D007D006D000D0D0D082D083D0C7
+:042A1400F0D0E032EC
+:05209C00C12301150342
+:102D570075FE8743FF2075FE7043FF1853B3F14399
+:102D6700B301E47817F67819F67815E67818F67847
+:102D77001A76017917E718461846F5B175B2012298
+:10220B00E4FE9000BAE0FCA3E0FDC394D8EC940389
+:10221B0040037F0022EF7003022324D3ED940FECD5
+:10222B0094034003022302ED94CBEC940050030281
+:10223B002302D3ED94AAEC94024022D2217815E626
+:10224B00FF137818F6302211D3ED94BFEC940240B3
+:10225B0004C22280047818A607E4FE8070D3ED94A4
+:10226B00AAEC94025043ED9437EC9401403BD222FC
+:10227B007815E6FF7818F6302113D3ED9493EC9490
+:10228B00025004C2218006EFC3137818F6781A7631
+:10229B0001301C11D3ED9451EC94015004C21C80FD
+:1022AB0004E4781AF6E4FE8024D3ED9437EC940121
+:1022BB00501BD21CE4781AF6302210ED9426EC94C5
+:1022CB00015004C2228004781A7601E4FE301F11FB
+:1022DB00C3ED94F3EC94025006C21FE4FE80027E21
+:1022EB000130202FD3ED94DDEC94004006C220E4A6
+:1022FB00FE80207E01801CD3ED940FEC94034006EE
+:10230B00D21F7E01800DD3ED94CBEC94005004D200
+:10231B00207E01C21DC21E8058C21FC220D3ED9465
+:10232B009FEC94035031ED9471EC94004029301DD7
+:10233B0010ED9484EC94035006C21DE4FE80027EE3
+:10234B0001301E2DD3ED9482EC94004006C21EE4A6
+:10235B00FE801E7E01801AD3ED949FEC9403400403
+:10236B00D21D800BC3ED9471EC94005002D21E7EF3
+:08237B0001781AE6F5B2AF0685
+:012383002237
+:1025AD00E4FBFAE5E65480FFE4FCFDFEEF70075313
+:1025BD00B3FE7816F62278167601E5E830E5057556
+:1025CD00E820800FE5E530E1028008E5F230E5070F
+:1025DD0075F22053B3FE22E5F2540C601353B3FE93
+:1025ED00E5F354C0700302268875F20C75F3C02212
+:1025FD0075F3C07F0112220BEF600653B3FED22399
+:10260D0022C223E5F230E432781AE6B401067A10DC
+:10261D007B6880047A0F7BA0EB246AFFEA34FFFE0F
+:10262D00C39000B9E09F9000B8E09E500575F21080
+:10263D00800353B3FE78167603227917E77819468F
+:10264D001846F5B1781AE6F5B243B311781CE6FFDA
+:10265D00D394014002C23DEFD394034002C239EF3F
+:10266D00D394074002C23BEFD3940C4002C23AEF21
+:0B267D00D394114002C23C7816760294
+:01268800222F
+:0620A100C13EC13FC14039
+:10000E00303F10EFB4010475B5C02253B5BFED44B7
+:04001E0080F5B52292
+:102F1000E5B55480FFEF6008303F05E4F5B5C23FEA
+:012F2000228E
+:102ADB00C23FE5E520E154E5E230E703D24022E5D1
+:102AEB00E830E00D30254475E8017D3FE4FF02003E
+:102AFB000EE4FF12220BEF6006122F10D23E22C201
+:102B0B003E303D03022F10D23F30401F7816E6B403
+:102B1B000219C39000B9E094109000B8E0940E40F5
+:0C2B2B0005D23FC24022122F10C23F22F0
+:0820A700C144C1454100D7FF0F
+:102D8700E5E25408FF9000D7E06F6021E5E230E309
+:102D9700089000D67401F08005E49000D6F0D24484
+:0D2DA700C210D245D2389000D7EFF0D248CC
+:012DB40022FC
+:1020AF00C132C131C130011D004100CE004100D20B
+:0E20BF00004100CD004200CF00004100D100E2
+:101E9F00E5E25402FFE4FCFDFEEF70319000CF75D8
+:101EAF00F0011217919000CFE0FEA3E0FFC394174B
+:101EBF00EE94024004D230800EC3EF9487EE94006C
+:101ECF004005202F02D22FD22CC22D8040302C362D
+:101EDF00D248E4781DF6C22CD22D9000D1F090009C
+:101EEF00CFE0FEA3E0FFD3941EEE94005008D23251
+:101EFF00D22ED238800EC3EF944FEE94015005309E
+:101F0F002F02D231C22FE49000CFF0A3F0302D6218
+:101F1F00303F5F30312720100280287F03122B8E35
+:101F2F009000D1E0D394235003022046C231781D94
+:101F3F007602E49000CEF090002BF0A3F030302921
+:101F4F0020100A7D3FE4FF12000ED210227F0312F1
+:101F5F002B8E9000D1E0D394235003022046C23041
+:101F6F00E49000D2F0781D7603302E02C22EC22DDF
+:101F7F00C2109000D6E064016003022059781DE67C
+:101F8F006402600302201B9000CEE0C39401501046
+:101F9F007D017F01121B01E490002BF0A3F0805410
+:101FAF009000CDE0D394054003E4803990002CE0FD
+:101FBF00B4010FE4FD7F02121B0190002C7402F09C
+:101FCF00803290002CE06402702A90002BE0601D9C
+:101FDF007D017F02121B01E490002BF0A3F0900013
+:101FEF00CEF09000CDF0781DF6D2118058E4FD7F31
+:101FFF0001121B019000CEE0D39414400A9000CD43
+:10200F00E004F0E4A3F0229000CE802B781DE6646C
+:10201F000370379000D2E0FFC394B4501EEF540FFB
+:10202F0070047D0180099000D2E054077006FD7F97
+:10203F0003121B019000D2E004F022E4781DF6D2C7
+:0A204F00119000D2F07F04122B8ED6
+:012059002264
+:1020CD0041003100410030004100320041002F003D
+:102E040075FE0675FF3C75FE0E53FF0F75FE0F53DE
+:102E1400FFF075FE0375FFFFC282C283C285C284C0
+:012E2400228B
+:102E8200EF14600D14600D14600D2403700BD282D8
+:0A2E920022D28322D28422D28522AC
+:052E4500900085E0FF94
+:102E4A00EF14600D14600D14600D2403700BC28220
+:0A2E5A0022C28322C28422C2852214
+:102A7B00E4FF74332FF582E43400F583E4F074370C
+:102A8B002FF582E43400F583E4F0EF25E0243BF5E9
+:102A9B0082E43400F583E4F0A3F0EF25E02443F562
+:102AAB0082E43400F583E4F0A3F0EF25E0244BF54A
+:102ABB0082E43400F583E4F0A3F0EF25E02453F532
+:0F2ACB0082E43400F583E4F0A3F00FEFB404A32A
+:012ADA0022D9
+:102A1800AC0774332CF582E43400F583EDF0EAC397
+:102A280013FEEB13FFEC25E0243BF582E43400F5BC
+:102A380083EEF0A3EFF0AF03EC25E02443F582E446
+:102A48003400F583EAF0A3EFF090008AE0FEA3E0FB
+:102A5800FFEC25E0244BF582E43400F583EEF0A387
+:102A6800EFF0EC25E02453F582E43400F583E4F03C
+:032A7800A3F022A6
+:102CB70074332FF582E43400F583EDF074372FF584
+:102CC70082E43400F583EBF0EF25E0243BF582E462
+:102CD7003400F583E4F0A37469F0EF25E02453F59D
+:0B2CE70082E43400F583E4F0A3F02247
+:100B8900E4900085F0F0900085E0FFC394044003F1
+:100B9900020ECB74332FF582E43400F583E0602232
+:100BA90024FE6024147003020C93147003020D0ACE
+:100BB90024036003020E67900085E0FF122E820273
+:100BC9000E67122E45020E67900085E0FF25E0248E
+:100BD9003BF582E43400F583E0FCA3E0FDEF25E07A
+:100BE9002453F582E43400F583E0FEA3E0C39DEECF
+:100BF9009C5005122E828003122E45900085E0FF3D
+:100C090025E02443F582E43400F583E0FCA3E0FD0C
+:100C1900EF25E02453F582E43400F583E0FEA3E0F8
+:100C2900C39DEE9C5003020E67900085E025E024E9
+:100C390053F582E43400F583E4F0A3F0EF25E024D2
+:100C49004BF582E43400F583E0FEA3E0D39400EE93
+:100C590094004016900085E025E0244BF582E434A9
+:100C690000F58374FFF5F0121791900085E0FF25D8
+:100C7900E0244BF582E43400F583E0FCA3E04C600A
+:100C890003020E6774332F020D26900085E0FF25BD
+:100C9900E0243BF582E43400F583E0FCA3E0FDEFBA
+:100CA90025E02453F582E43400F583E0FEA3E0D384
+:100CB9009DEE9C5005122E828003122E45900085D0
+:100CC900E0FF25E02443F582E43400F583E0FCA34A
+:100CD900E0FDEF25E02453F582E43400F583E0FEDE
+:100CE900A3E0C39DEE9C5003020E67900085E025AA
+:100CF900E02453F582E43400F583E4F0A3F0020E16
+:100D090067900085E0FF2437F582E43400F583E03D
+:100D19007017122C30C247900085E02433F582E425
+:100D29003400F583E4F0020E67900085E0FF243774
+:100D3900F582E43400F583E0FE6402704B20471429
+:100D4900D247EF25E0243BF582E43400F583E4F053
+:100D5900A37469F0900085E0FF25E0243BF582E467
+:100D69003400F583E475F001121791EF25E0243B77
+:100D7900F582E43400F583E0FCA3E0C394FEEC942F
+:100D8900005003020E51804EEE6401705A2047173D
+:100D9900D247900085E025E0243BF582E43400F554
+:100DA90083E4F0A374FEF0900085E0FF25E0243B86
+:100DB900F582E43400F58374FFF5F0121791EF25FD
+:100DC900E0243BF582E43400F583E0FEA3E0D3940C
+:100DD90069EE94005072900085E02437F582E4347E
+:100DE90000F583E4F08061900085E0FF2437F58207
+:100DF900E43400F583E06403704EEF25E0243BF50D
+:100E090082E43400F583E0FEA3E0FFC394FEEE9490
+:100E1900004004D247800BD3EF946AEE940050024D
+:100E2900C247900085E025E0243B30470DF582E478
+:100E39003400F58374FFF5F0800BF582E43400F596
+:100E490083E475F001121791900085E0FF25E024F5
+:100E59003BF582E43400F583A3E0FD122BDF90001B
+:100E690085E0FF701174332FF582E43400F583E0D7
+:100E7900900031F08043900085E0B401102433F5EF
+:100E890082E43400F583E0900030F0802C900085F6
+:100E9900E0B402102433F582E43400F583E09000D5
+:100EA90032F08015900085E0B4030E2433F582E416
+:100EB9003400F583E090002FF0900085E004F00203
+:100EC9000B8FE4900085F0900085E0FFC3940450F7
+:100ED9001BEF25E02453F582E43400F583E475F033
+:0C0EE90001121791900085E004F080DBFE
+:010EF50022DA
+:0B20DD004200D300004100D50FC148B5
+:102DB50075FE1E43FF0275FE2143FF0875D4C275DB
+:102DC500FE2143FF0475FE2143FF02300F0775FE08
+:0C2DD5002453FFC32275FE2443FF3C2260
+:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E
+:0400660043FFB02282
+:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923
+:04007E0053FF4F22BB
+:092F660012006E438702020056BE
+:102EFC007816E6D394015006201203304804C248D9
+:042F0C00C322D322E7
+:102B370075FE01E4F5FF122E9C122F59122F3EE469
+:102B4700F58675B7C375FE6A75FF0475FE6C43FF9E
+:102B57000B122ECE75FE8043FF0275FE0E53FFFC4F
+:102B670043FF0175FE1775FF3CD2A8D2AF122D5750
+:102B77007D697F03122EE6122E04122A7B122DB5D1
+:072B87009000C27401F0226E
+:03000300020006F2
+:03000600D24832AB
+:03004B00022F770A
+:062F770075EB3CD248326C
+:03005300022F7DFC
+:062F7D0075F302D2483298
+:1020E800202069000000000000000000000000003F
+:1020F80000000000000000000000000000000000D8
+:0F210800000000C143C1424100D8004100D9008E
+:0E2F30009000AEEFF0122F6F9000AEE0FF2287
+:082F6F002041FDD2418F99229F
+:102E9C0075FE0E53FFF343FF04D2DF43878075BAF0
+:0A2EAC000375AAFD759852D2AC22FE
+:03002300022F4C5D
+:0D2F4C00309904C299C241309802C29832F7
+:0D2F590075BB03759DDC759B92439A0122A8
+:062CF2009000A912186F0A
+:102CF800E49000ACF0F09000ACE0C39FE49E501C60
+:102D08002042FDD2429000A9E475F0011218581231
+:0C2D180016A1F59C9000ACE004F080DAFD
+:012D2400228C
+:03008300022689C9
+:10268900C0E0C083C082C0D075D000C000C005C002
+:1026990006C007E59B30E105539BFDC242E59B302F
+:1026A900E076539BFED2489000D8E014601914607C
+:1026B9003424027063E59C9000D8B455087401F085
+:1026C900A3E4F0800E8018E59C9000D8B4AA107499
+:1026D90002F0A3E0FF04F074692FF8A69C8039E4A6
+:1026E900F0A3F080339000D9E0FF04F074692FF86B
+:1026F900A69C786BE62404FFE433FEE0FDC39FEE5D
+:102709006480F87480985005ED9420400B9000D9AE
+:10271900E4F09000D8F0D243D007D006D005D0001D
+:09272900D0D0D082D083D0E03280
+:1024C9004177616B6520536F757263653A57505F49
+:1024D900466C6167303A307825782C57505F466CE6
+:1024E9006167313A307825782C57505F466C6167BF
+:1024F900333A307825782E286C696E653A25642937
+:102509000D0A00536C656570205374617465202849
+:102519006C696E653A2564290D0A004348475F5383
+:1025290054413A25642C53545F564F583A30782514
+:10253900782C535441303A307825782C5354413112
+:102549003A307825782C535441323A307825782C12
+:10255900535441333A307825782C535441343A3026
+:102569007825782E4465635F536C6565703A2564F8
+:102579000D0A004465636E745F536C65657044654C
+:102589006C61792052656C6F61642E0D0A00456E8D
+:10259900746572205374616E646279204D6F64654D
+:0425A900210D0A00F6
+:102117004300C20402024100BF004100C000C138B1
+:0E212700C1374100C1004100C5004100BE00AB
+:10002600E4FB7D04FF122CB7E4FB7D047F01122C58
+:10003600B7E4FB7D047F02122CB7E4FB7D047F034B
+:03004600022CB7D2
+:1007B600303859C238E49000C0F0781BF690008AB1
+:1007C600F0A3F0FBFAFDFF122A18E490008AF0A3CA
+:1007D600F0FBFAFD7F01122A18E490008AF0A3F0DC
+:1007E600FBFAFD7F02122A18E490008AF0A3F0FBC0
+:1007F600FAFD7F03122A189000317402F09000303F
+:10080600F0900032F090002FF0D2482220230F20E3
+:100816003E0C200D030208CB300F030208CB203319
+:1008260005D233D23822900031E06402601A90007B
+:100836008AE4F0A3740AF07B147A007D02E4FF12C6
+:100846002A189000317403F0900030E06402601AB8
+:1008560090008AE4F0A3740AF07B147A007D027F8C
+:1008660001122A189000307403F0900032E06402FE
+:10087600601A90008AE4F0A3740AF07B147A007D73
+:10088600027F02122A189000327403F090002FE0C3
+:100896006402601A90008AE4F0A3740AF07B147A6A
+:1008A600007D027F03122A1890002F7403F0200D9A
+:1008B60003020B889000C0E0C394285003020A0686
+:1008C600D20FD2382230330CC233C235C234C245BD
+:1008D600C20ED2377816E6FF70030209E064037091
+:1008E6005E203507D235C234020026E490008AF035
+:1008F600A3F0FBFA7D01FF122A18E490008AF0A308
+:10090600F0FBFA7D017F01122A18E490008AF0A319
+:10091600F0FBFA7D017F02122A18E490008AF0A308
+:10092600F0FBFA7D017F03122A189000317401F062
+:10093600900030F0900032F090002FF00209D7209E
+:10094600340ED234C235D238E49000C5F00209D74D
+:100956009000C0E0C394015057E004F09000C5E059
+:1009660014601A14602714603424037064900031F4
+:10097600E06404605C7B017D04E4FF802E9000301F
+:10098600E06404604C7B017D047F01801E90003290
+:10099600E06404603C7B017D047F02800E90002FA2
+:1009A600E06404602C7B017D047F03122CB7802158
+:1009B6009000C0E0C3940F5005E004F08013E4906B
+:1009C60000C0F09000C5E004F0E0C394044002E4E7
+:1009D600F0C245C20EC232D2362230340AC23412B6
+:1009E6000026D238D2372220450C203609200E06A2
+:1009F600203203020B889000C0E0FFC3940150042C
+:100A0600E004F022EFC394644003020B339000C06D
+:100A1600E004F0303B37900031E064037003020BD2
+:100A260088E490008AF0A3F07B64FA7D03FF122A23
+:100A3600189000317404F0E490008AF0A3F0FBFAF9
+:100A4600FD7F01122A189000307402802D303A4141
+:100A5600E490008AF0A3F0FBFA7D01FF122A1890B9
+:100A660000317401F0E490008AF0A3F0FBFA7D01F6
+:100A76007F01122A189000307401F0E490008AF089
+:100A8600A3F0FBFAFD7F02122A189000327402804E
+:100A960043E490008A303C53F0A3F0FBFA7D01FF5B
+:100AA600122A189000317401F0E490008AF0A3F045
+:100AB600FBFA7D017F01122A189000307401F0E4E0
+:100AC60090008AF0A3F0FBFA7D017F02122A1890AB
+:100AD60000327401F0E490008AF0A3F0FBFAFD7F87
+:100AE60003122A1890002F7402F022F0A3F0FBFAEA
+:100AF6007D01FF122A18E490008AF0A3F0FBFA7D2C
+:100B0600017F01122A18E490008AF0A3F0FBFA7D17
+:100B1600017F02122A18E490008AF0A3F0FBFA7D06
+:100B2600017F03122A1890003174018048C245C221
+:100B360036C20EC232E490008AF0A3F0FBFAFDFF43
+:100B4600122A18E490008AF0A3F0FBFAFD7F011246
+:100B56002A18E490008AF0A3F0FBFAFD7F02122A1D
+:100B660018E490008AF0A3F0FBFAFD7F03122A181E
+:100B76009000317402F0900030F0900032F0900056
+:020B86002FF04E
+:010B8800224A
+:102E25009000BCE0FF04F01223849000BCE0B406DF
+:102E35000204F09000BCE0C3940840037402F02241
+:102E6400122D87121E9F122854302411C2241225B9
+:0E2E7400AD122ADB1227D21207B612125B2211
+:1018DD00E4900085F09000C2E0FFA3E0FE6F70037E
+:1018ED00021981A3EEF09000C2E0A3F024FE603552
+:1018FD0014606714606B24036003021B0090008A60
+:10190D00E4F0A37403F07B647A007D02E4FF122AF5
+:10191D001890008AE4F0A37403F07B647A007D02D2
+:10192D007F01022A18300F09D24475E80CC20DC28E
+:10193D000F7BFF7A2479C9AFF6900089E4F0A3EF0D
+:10194D00F0AFF8A3E4F0A3EFF0AFFAA3E4F0A3EF48
+:10195D00F0A37402F0A3740680169000D5740FF0F6
+:10196D00227BFF7A25790C9000897402F0A3741EF6
+:10197D00F0021A879000C3E024FE603514607614DF
+:10198D007003021A9A24036003021B009000BEE04C
+:10199D0004F0E0C394085003021B009000C27402CF
+:1019AD00F0E49000BEF0781CE66003021B00021A02
+:1019BD0093E5F6700CE5F87008E5FA7004E5E16062
+:1019CD002D9000C27403F0E5F6540FFFE4FCFDFE0C
+:1019DD007B08FAF9F8C312182B70069000C2740434
+:1019ED00F075E11F75F60F75F8FC75FABC229000C5
+:1019FD00C27403F022202803021B00C22875FE6E5C
+:101A0D00900085E5FFF07BFF7A2579247816E6FFB7
+:101A1D00900089E4F0A3EFF0900085E0FF90008B3B
+:101A2D00E4F0A3EFF0AFE2A3E4F0A3EFF0AFE3A394
+:101A3D00E4F0A3EFF0AFE4A3E4F0A3EFF0AFE5A380
+:101A4D00E4F0A3EFF0AFE6A3E4F0A3EFF09000D540
+:101A5D00E0FF900097E4F0A3EFF0120F619000D536
+:101A6D00E0D394004017E014F0204803021B00C29D
+:101A7D0048740FF07BFF7A25797C020F617BFF7A2A
+:101A8D00257997120F619000C27404F022122EFC7A
+:101A9D00505B122DB57F04122B8E122F10E4900087
+:101AAD008AF0A3F0FBFAFDFF122A18E490008AF0E9
+:101ABD00A3F0FBFAFD7F01122A18E490008AF0A32F
+:101ACD00F0FBFAFD7F02122A18E490008AF0A3F0D1
+:101ADD00FBFAFD7F03122A189000317402F090007A
+:101AED0030F0900032F090002FF0022F669000C27F
+:031AFD007402F080
+:011B000022C2
+:102D2500302726C2279000BFE0FF04F0EF14600CA7
+:102D350014600E24027012122E25800D122E64804E
+:102D4500081218DDE49000BFF0302905C229120BE6
+:022D55008922D1
+:101CD700426F7820436C6F73652E286C696E653A86
+:101CE7002564290D0A00426F78204F70656E2E28F3
+:101CF7006C696E653A2564290D0A004F70656E2F71
+:101D0700436C6F736520426F782C45617270686F02
+:101D17006E657320496E20426F78284E756D3A259F
+:101D2700642928566F785374613A30782578292EBC
+:101D37000D0A004F70656E20426F7820434D442096
+:101D47005458204F7665722E0D0A004F70656E202D
+:101D5700426F7820416E642045617270686F6E65CE
+:101D670020476574496E284E756D3A2564292856B3
+:101D77006F785374613A30782578292E0D0A00431D
+:101D87006C6F736520426F7820416E6420466F72D6
+:101D9700636520566F6C746167652055702E0D0A58
+:101DA70000564F5820566F757420355628535441A6
+:101DB700313A307825782C6C696E653A2564292E7E
+:101DC7000D0A00564F58204348472046756C6C2E25
+:101DD7000D0A00564F582047657420496E746F20CE
+:101DE700536C6565702E0D0A005258315F42756657
+:101DF7006665725B305D3A307825782C5258315FD2
+:101E07004275666665725B315D3A307825782C528B
+:101E170058315F4275666665725B325D3A30782588
+:101E2700782C5258315F4275666665725B335D3A4E
+:101E3700307825782C5258315F4275666665725B3B
+:101E4700345D3A307825782C5258315F4275666692
+:101E570065725B355D3A307825782C5258315F4290
+:101E670075666665725B365D3A307825782C6C69E5
+:101E77006E653A25640D0A000000000000000000AE
+:101E8700000000000000000000000000000000004B
+:081E9700000000000000000043
+:10213500C112C10EC11041002DFFC10D42000700A3
+:1021450000420005000042002B000041002A00C1AA
+:102155000FC1111A2A000000000000000000000055
+:10216500000000000000000000000000000000204A
+:1021750024440000000000000000000000000000F2
+:10218500000000000000000000000000000000004A
+:0E219500000000000000420028000001680069
+:102B8E00EF24FE601E14602814602F24FE6035248E
+:102B9E0005703D43BD8853BDBB75FE6F53FFF243B9
+:102BAE00FF092243BDCC75FE6F53FFFE43FF0C227F
+:102BBE0053BD7753B7CF43B7302253B7CF43B70385
+:102BCE0053BD772253B7CC53BD7775FE6A43FF30A2
+:012BDE0022D4
+:10125B00203F0302157230447B20100A7D3FE4FFD0
+:10126B0012000ED210227F03122B8EE4900003F09B
+:10127B00900001F0A3F0C200C201D20B9000D6E0A7
+:10128B00702FC20ED202D203C205C208C204C20919
+:10129B00C20AD212C237900026F0A3F090002EF0B3
+:1012AB007BFF7A1C79D79000897402F0A3740880B5
+:1012BB0017C202C203D205C2067BFF7A1C79ED90DE
+:1012CB0000897402F0A37415F0120F61C210C20DE5
+:1012DB00C20FC244900001E0C394055003021500F5
+:1012EB00300B05C20B0214B820004CD200E5E354BE
+:1012FB00A06021E5E354A0FFE4FCFDFE7BA0FAF91E
+:10130B00F8C312182B90002A70057402F0800A742F
+:10131B0001F08005E490002AF07BFF7A1D790290A2
+:10132B00002AE0FF900089E4F0A3EFF0AFE3A3E421
+:10133B00F0A3EFF0120F612005030213F2900002ED
+:10134B00E0C3940550077F06122B8E8026200143A5
+:10135B00900003E0FFD39414501EEF54037003FD71
+:10136B008009900003E020E0077D017F06121B013E
+:10137B00900003E004F0806F7F04122B8EE490004A
+:10138B0003F0D201D211C2127BFF7A1D793A120FF0
+:10139B00618054781DE6704F301104C2118040E516
+:1013AB00E354A0FBE4FAF9F8900000E0FFE4FCFD45
+:1013BB00FEC312182B6030E5E354A06004D20ED2AA
+:1013CB00387BFF7A1D795290002AE0FF900089E468
+:1013DB00F0A3EFF0AFE3A3E4F0A3EFF0120F61E59E
+:1013EB00E354A0900000F020020302156F30374841
+:1013FB002010237D3FE4FF12000ED210D212E49096
+:10140B000026F0A3F090002EF0900001F0C208D25D
+:10141B000BC200D204227F03122B8E7BFF7A1D7925
+:10142B0086120F61C210D203900001E0D3940350D7
+:10143B0003021500C237804E20044B900002E0FFE0
+:10144B00D39414501CEF54037003FD8009900002D9
+:10145B00E020E0077D017F81121B01900002021545
+:10146B0000900003E0FFD39414501BEF5403700360
+:10147B00FD8009900003E020E0077D017F07121B30
+:10148B0001900003806FE5E8540C6026200F1E903E
+:10149B000003E004F0E0C3940550030215AAE4F046
+:1014AB0075E80C7F03122B8ED20DC212227F040221
+:1014BB002B8EC20DC20F3003257F03122B8E7BFFA9
+:1014CB007A1D79A8AFE3900089E4F0A3EFF0A37441
+:1014DB0003F0A37475F0120F61C20302156F20089D
+:1014EB0046E5E354AC64AC600330392A900001E06C
+:1014FB00D394285004E004F0227BFF7A1D79CA12A2
+:10150B000F61D208E4900004F0900001F0C2097F53
+:10151B0004122B8E804E900027E070487B017A00DE
+:10152B007909120086803D900004E0FFD39414509B
+:10153B001EEF54037003FD8009900004E020E007C8
+:10154B007D017F80121B01900004E004F0801520C8
+:10155B000912D2097F04122B8EC2127BFF7A1D79DE
+:10156B00DA120F61C2072220070BD2077F04122B5E
+:10157B008EC2128022E5E354A0FBE4FAF9F8900046
+:10158B0000E0FFE4FCFDFEC312182B6012E5E354F0
+:0F159B00A06004D20ED238E5E354A0900000F017
+:0115AA00221E
+:0600860090008512186FC6
+:10008C0090002EE01470030201631470030202420C
+:10009C001470030202B314700302041F24046003DF
+:1000AC0002059F90008512184F90001E1216BA6020
+:1000BC000302059F7868E6D3940A50260690001A2E
+:1000CC00743F12171A300C0302059F90008512180A
+:1000DC004F90001A1216BAFDE4FF12000ED20C0259
+:1000EC00059FE47868F6C20C90008512184F9000BA
+:1000FC0016E412171A900015E412171A900013E464
+:10010C0012171A900012E412171A900011E4121729
+:10011C001A900010E412171A900018E412171A9093
+:10012C000017E412171A90000EE4F5F01217FE9067
+:10013C00000CE4F5F01217FE900019E412171A9057
+:10014C00001B743F12171A90002E7401F0E49000FB
+:10015C0007F0A3F002059FE5E35408FFE4FCEF6011
+:10016C001CE5E35404601690008512184F90001E95
+:10017C00740112171AE490002EF002059FE5E35467
+:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2
+:10019C00008512184F900002EE8FF01217FE7D05AD
+:1001AC0012173CEF7802C333CE33CED8F9FF900050
+:1001BC008512184F900006EE8FF01217FE9000B2C9
+:1001CC00E025E0FF9000B1E03390000A8FF01217A9
+:1001DC00FEE5E35404FFE4FCEF704F9000AFE0FE4B
+:1001EC00A3E0FF90008512184FEE8FF01217DF90EE
+:1001FC0000AFE0FEA3E0FF7D0512173CEF7802C3D1
+:10020C0033CE33CED8F9FF90008512184F900004EE
+:10021C00EE8FF01217FE9000B0E025E0FF9000AFDB
+:10022C00E0339000088FF01217FE90008512184FE3
+:10023C0090001D020594D3900008E09405900007EF
+:10024C00E094005002806FE4900007F0A3F0E5E327
+:10025C005408FFEF701F9000B1E0FEA3E0FF900088
+:10026C008512184F90000EEE8FF01217FE900018AA
+:10027C00740112171AE5E35404FFE4FCEF701F90AD
+:10028C0000AFE0FEA3E0FF90008512184F90000C29
+:10029C00EE8FF01217FE900017740112171A9000CF
+:1002AC002E7403F002059FD3900008E09402900096
+:1002BC0007E09400500AE475F00112179102059FB3
+:1002CC00E4900007F0A3F090008512184F90000AFC
+:1002DC001217A7FFAEF090000E1217A7D39FE5F0F0
+:1002EC009E501C90008512184F9000081217A7FF03
+:1002FC00AEF090000C1217A7D39FE5F09E4011E4CE
+:10030C0090002EF090008512184F90001D0203E112
+:10031C0090008512184F9000181216BA6401706D77
+:10032C0090000E1217A7FFAEF0D39414EE94005069
+:10033C0031E5E330E31F900016740112171A900098
+:10034C001A1216BAC3943F404490008512184F906D
+:10035C000018E4803590008512184F90001374013A
+:10036C00802890008512184F9000061217A7FDD315
+:10037C00EF9DEE95F0900085400812184F900013F9
+:10038C00800612184F900016740112171A900085EF
+:10039C0012184F9000171216BA6401600302059FE1
+:1003AC0090000C1217A7FFAEF0D39414EE940050EB
+:1003BC0034E5E330E222900015740112171A900014
+:1003CC001A1216BAC3943F500302059F900085126F
+:1003DC00184F900017E4803590008512184F90004C
+:1003EC00127401802890008512184F900004121787
+:1003FC00A7FDD3EF9DEE95F0900085400812184FA5
+:10040C00900012800612184F900015740112171AE2
+:10041C0002059FD3900008E09414900007E094002C
+:10042C005031E475F0011217919000B1E0FEA3E099
+:10043C00FF90008512184F90000EEE8FF01217FEF1
+:10044C009000AFE0FFA3E090000CCF8FF01217FEEE
+:10045C0002059FE4900007F0A3F090008512184F5E
+:10046C009000181216BA640160030204FD90001784
+:10047C001216BA6401707A9000061217A7FFAEF03C
+:10048C0090000E1217A7FDACF0C39FEC9E40189085
+:10049C00008512184F90000A1217A7FFD3ED9FEC9E
+:1004AC0095F0500302059F90008512184F900004A0
+:1004BC001217A7FFAEF090000C1217A7FDACF0C3FB
+:1004CC009FEC9E401890008512184F900008121750
+:1004DC00A7FFD3ED9FEC95F0500302059F9000858C
+:1004EC0012184F900016740112171A90001502057D
+:1004FC009490008512184F9000181216BA6401706F
+:10050C00419000061217A7FFAEF090000E1217A72D
+:10051C00FDACF0C39FEC9E401590008512184F90D7
+:10052C00000A1217A7FFD3ED9FEC95F04014900032
+:10053C008512184F900016740112171A90002E7421
+:10054C0002F090008512184F9000171216BA640131
+:10055C0070419000081217A7FFAEF090000C121714
+:10056C00A7FDACF0D39FEC9E501590008512184F50
+:10057C009000041217A7FFC3ED9FEC95F050149058
+:10058C00008512184F900015740112171A90002E46
+:10059C007402F090008512184F9000181216BAFFD2
+:1005AC006401600D9000171216BA64016003020713
+:1005BC009C9000131216BAFE6401600D900012128A
+:1005CC0016BA64016003020716EFB4011E900017FF
+:1005DC001216BAB40115EEB401119000131216BA2A
+:1005EC00B40108900014740112171A900018121616
+:1005FC00BAFFB401189000171216BA7010900013BD
+:10060C001216BA6401702390001404801AEF701A49
+:10061C009000171216BAB401119000121216BAB447
+:10062C000108900014740112171A900013E41217A9
+:10063C001A900012E412171A9000141216BA6401E0
+:10064C0060030207B590008512184F90001A12161D
+:10065C00BAD39400400890001A74FE1216E790006A
+:10066C00191216BAFF90001A1216BAD39F401B909B
+:10067C0000B9E024C8FF9000B8E03400FEC390003D
+:10068C00B5E09F9000B4E09E504890008512184F42
+:10069C009000191216BAFF90001A1216BAD39F9036
+:1006AC000085501312184F90001AEF12171A900071
+:1006BC001CE412171A801312184F90001C740112AC
+:1006CC00171A90001A74021216E790002E7404F098
+:1006DC00801390002E7402F090008512184F900039
+:1006EC001CE412171AE4900007F0A3F09000851296
+:1006FC00184F900014E412171A90001C1216BAFF2F
+:10070C0090001A1216BAFD02079990008512184F24
+:10071C009000161216BA6401600D9000151216BAEC
+:10072C00640160030207B5900016E412171A9000DA
+:10073C0015E412171A90001A1216BAC3943F500EF1
+:10074C0090008512184F90001A74021216E7900050
+:10075C002E7404F090008512184F90001B1216BADC
+:10076C00FF90001A1216BAC39F40139000851218FE
+:10077C004F90001AEF12171A90002E7401F090008F
+:10078C008512184F90001A1216BAFDE4FF02000EE3
+:10079C0090002EE0D394024010E4F09000851218E3
+:0907AC004F90001E740112171A8F
+:0107B5002221
+:0B2C74009000A912186F9000ACEDF06A
+:102C7F00E4FE9000ACE0FD14F0ED60299000A9E4B3
+:102C8F0075F0011218581216A16EFEE4FFEFC394EF
+:102C9F000850DFEE30E007C313648CFE8004EEC3F0
+:072CAF0013FE0F80E8AF06E1
+:012CB60022FB
+:081B0100900085EFF0A3EDF068
+:101B0900E4A3F0A3F078897C007D017BFF7A1E793C
+:101B19007FFE7F2012167BE4900089F0A37455F0B4
+:101B2900A374AAF0900085E0FE90008DF0900086E5
+:101B3900E0FD90002DF0EE1218781B5C011B8B0262
+:101B49001BDA031BE7061BE7071C30801C388100E2
+:101B5900001C4690008C7402F0ED700E90008E749B
+:101B690002F0E490002BF0021C46900086E064012C
+:101B79006003021C4690008E04F0E490002CF002F1
+:101B89001C4690008C7420F07F05900086E075F06B
+:101B990012A424442FF8E6FE74892FF582E4340058
+:101BA900F583EEF00FEFB412E17F17EFC3940D4008
+:101BB90003021C46900086E075F00DA4242A2FF834
+:101BC900E6FE74892FF582E43400F583EEF00F8088
+:101BD900DA90008C7402F090008E04F0805F90001F
+:101BE9008C7405F090008E7401F0781CE675F00590
+:101BF900A4A3F0A37420F0900086E0FF700D90007C
+:101C090028E07002800F9000298015EFB4012E9012
+:101C19000029E0700890009174FFF080209000285E
+:101C2900E0900091F0801690008C7401F0800E9085
+:101C3900008C7402F090002AE090008EF090008CE5
+:101C4900E02404FFE433900087F0A3EFF07B017AEE
+:101C5900007989FD122C74900087E0FCA3E02489A7
+:101C6900F58274003CF583EFF07F01122B8E900012
+:101C790086E0FF700843BD0253BDFE8016EFB40134
+:101C89000843BD2053BDEF800AEFB4FF0643BD22D0
+:101C990053BDEE900088E02402FF900087E03400F5
+:101CA900FE7B017A007989122CF2900086E0FF70A0
+:101CB9000753BDFD43BD0122EFB4010753BDDF4307
+:0D1CC900BD1022EFB4FF0653BDDF43BD1177
+:011CD60022EB
+:1028D500EF24FA605014604D24067069E4FE746DAF
+:1028E5002EF8E6FF90002DE075F012A424442EF892
+:1028F500A6070EEEB412E7E4FE747F2EF8E6FF900D
+:10290500002DE075F00DA4242A2EF8A6070EEEB4CE
+:1029150008E790002DE0700690002B04F02290004F
+:102925002C7401F022786DE6B4E30D900005740176
+:10293500F008E6900028F0229000067401F0786E09
+:05294500E6900029F0FE
+:01294A00226A
+:10285400E4FE900085F0304377C2437BFF7A1D7914
+:10286400F07869E6FF900089EEF0A3EFF008E6FF48
+:10287400A3EEF0A3EFF008E6FFA3EEF0A3EFF00859
+:10288400E6FFA3EEF0A3EFF008E6FFA3EEF0A3EF5C
+:10289400F008E6FFA3EEF0A3EFF008E6FFA3EEF0E6
+:1028A400A3EFF0A37409F0A3740EF0120F617B0080
+:1028B4007A007969786BE62403FD122C747E007823
+:1028C4006BE6246CF8E6B50707786CE6FF1228D5AA
+:0128D40022E1
+:1021A300011C00C139C13DC13BC13AC13C011B699E
+:1021B300602A005B0BB80BEA0C1C0C800CB20CE41D
+:1021C3000D160D480D7A0DAC0E100E420E740EA6B0
+:0E21D3000ED80F0A0F3C0F870FD2101D106898
+:1027D200E4FFEF25E0245BF582E43400F583E0FCBE
+:1027E200A3E0FDC39000B9E09D9000B8E09C4005D5
+:1027F2000FEFB415DD781CE6FEEFD39E40041806F9
+:102802008003781B16E5E16007E4F5E1781CA60772
+:10281200781BE6FED394C85006EEC3940A5007789C
+:102822001CA607187669781CE6FFD394005002D2E2
+:102832003DEFD394015002D239EFD394055002D226
+:102842003BEFD3940A5002D23AEFD3940F5002D204
+:012852003C49
+:012853002262
+:1021E1004100C9004100CC004100C8004200C600C6
+:1021F100004100CA00C126C127C129C125C124C18E
+:09220100284100CB00C12AC12BC9
+:10294B009000CBE06062E4F0D2269000C9E004F086
+:10295B00E0C394054004E4F0D2279000CCE004F0EF
+:10296B00E0C3940A4004E4F0D2299000C6E475F069
+:10297B0001121791C39000C7E094649000C6E094D5
+:10298B00004006E4F0A3F0D2249000C8E004F0E08D
+:10299B00C394FA4013E4F0D2259000CAE004F0E0AF
+:0929AB0094044004E4F0D2282257
+:03000B00022DE1E2
+:102DE100C0E0C083C082C0D074FC258CF58C7466B1
+:102DF100258AF58A9000CB7401F0D0D0D082D0839F
+:032E0100D0E032EC
+:0E2F3E00758901758CFC758A66D2A9D28C2229
+:102C3000EFD39401501675FE0EEF25E02404FE74C8
+:102C400003A806088002C333D8FC801475FE0FEF7A
+:102C500024FE25E0FE7403A806088002C333D8FCD6
+:102C6000F452FFEFB4040C75FE0F53FFF075FE0E27
+:042C700053FF0F22DD
+:102EE60075FE54EF5407F5FF75FE56AF058FFF7557
+:062EF600FE5375FF0122EE
+:102BDF00EFD39401501875FE0EEF25E02404FE7418
+:102BEF0003A806088002C333D8FC42FF801675FE87
+:102BFF000FEF24FE25E0FE7403A806088002C333FE
+:102C0F00D8FC42FFEF70038DCE22EFB401038DCFBE
+:102C1F0022EFB402038DDE22EFB40304AF058FDF82
+:012C2F002282
+:032FFD00010102CD
+:10275200022EB6E493A3F8E493A34003F68001F2B9
+:1027620008DFF48029E493A3F85407240CC8C33388
+:10277200C4540F4420C8834004F456800146F6DF57
+:10278200E4800B010204081020408090205AE47E6D
+:10279200019360BCA3FF543F30E509541FFEE4934C
+:1027A200A360010ECF54C025E060A840B8E493A313
+:1027B200FAE493A3F8E493A3C8C582C8CAC583CA3E
+:1027C200F0A3C8C582C8CAC583CADFE9DEE780BEF6
+:01220A0000D3
+:1015AB00E709F608DFFA8046E709F208DFFA803E22
+:1015BB0088828C83E709F0A3DFFA8032E309F6080F
+:1015CB00DFFA8078E309F208DFFA807088828C8377
+:1015DB00E309F0A3DFFA806489828A83E0A3F6082B
+:1015EB00DFFA805889828A83E0A3F208DFFA804C05
+:1015FB0080D280FA80C680D4806980F280338010DC
+:10160B0080A680EA809A80A880DA80E280CA803344
+:10161B0089828A83ECFAE493A3C8C582C8CCC583BC
+:10162B00CCF0A3C8C582C8CCC583CCDFE9DEE7808C
+:10163B000D89828A83E493A3F608DFF9ECFAA9F00B
+:10164B00EDFB2289828A83ECFAE0A3C8C582C8CC61
+:10165B00C583CCF0A3C8C582C8CCC583CCDFEADE7A
+:10166B00E880DB89828A83E493A3F208DFF980CCDC
+:10167B0088F0EF60010E4E60C388F0ED2402B404D5
+:10168B000050B9F582EB2402B4040050AF2323457C
+:06169B0082239015FB7391
+:1016A100BB010689828A83E0225002E722BBFE0247
+:0916B100E32289828A83E493227A
+:1016BA00BB010CE58229F582E5833AF583E02250E5
+:1016CA0006E92582F8E622BBFE06E92582F8E2222F
+:0D16DA00E58229F582E5833AF583E4932249
+:1016E700BB010FF8E58229F582E5833AF583E02807
+:1016F700F0225009C58229F8E58226F622BBFE09A9
+:10170700C58229F8E22582F222F8EA2583F583E9E2
+:03171700932822F2
+:10171A00F8BB010DE58229F582E5833AF583E8F005
+:10172A00225006E92582C8F622BBFE05E92582C8B1
+:02173A00F22299
+:10173C00BC000BBE0029EF8DF084FFADF022E4CC91
+:10174C00F875F008EF2FFFEE33FEEC33FCEE9DEC5A
+:10175C00984005FCEE9DFE0FD5F0E9E4CEFD22EDA0
+:10176C00F8F5F0EE8420D21CFEADF075F008EF2FEA
+:10177C00FFED33FD4007985006D5F0F222C398FDDB
+:05178C000FD5F0EA2278
+:10179100C5F0F8A3E028F0C5F0F8E58215827002E3
+:0617A1001583E038F02280
+:1017A700BB0110E58229F582E5833AF583E0F5F080
+:1017B700A3E0225009E92582F886F008E622BBFE5D
+:1017C7000AE92582F8E2F5F008E222E5832AF583A3
+:0817D700E993F5F0A3E9932268
+:1017DF00BB010A89828A83F0E5F0A3F0225006F755
+:0F17EF0009A7F01922BBFE06F3E5F009F3192252
+:1017FE00F8BB0111E58229F582E5833AF583E8F01D
+:10180E00E5F0A3F0225009E92582C8F608A6F022D9
+:0D181E00BBFE09E92582C8F2E5F008F222C0
+:10182B00EB9FF5F0EA9E42F0E99D42F0E89C45F013
+:01183B00228A
+:10183C00E8600FECC313FCED13FDEE13FEEF13FF8A
+:03184C00D8F122AE
+:09184F00E0FBA3E0FAA3E0F9229A
+:10185800F8E0FBA3A3E0F925F0F0E5821582700219
+:071868001583E0FA38F022BD
+:09186F00EBF0A3EAF0A3E9F0227A
+:10187800D083D082F8E4937012740193700DA3A3FF
+:1018880093F8740193F5828883E473740293686013
+:06189800EFA3A3A380DF13
+:10189E00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DD7
+:1018AE00FDE43CFCE8A42EC8C5F03DFDE43CFCEF95
+:0D18BE00A4FFE5F028FEE43DFDE43CFC2223
+:100EF600E5082489F582E43400F583E005082290AC
+:100F06000086301A03900089E475F0011218580221
+:100F160016A12013E97F2ED2138018EF540F2490C8
+:100F2600D43440D4FF30170BEF24BFB41A0050035B
+:100F36002461FFE50960021509050CE50C70020540
+:100F46000B301A0E900086E475F001121858EF0265
+:100F560018CB022F307403D21A8003E4C21AF508A4
+:100F660090008612186FE4F509F50BF50CE509609B
+:100F7600077F20120F3980F5750AFFC214C213C20B
+:100F860015C216C218C219C21B120F05FF700D300A
+:100F96001A057F00120F4AAF0CAE0B22B4255FC2B2
+:100FA600D5C217120F05FF24D0B40A00501A75F0E7
+:100FB6000A780930D50508B6FF0106C6A426F6202C
+:100FC600D5047002D21680D924CFB41A00EF50048B
+:100FD600C2E5D21702114BD21480C6D21380C0D2FA
+:100FE6001580BCD2D580BAD21880B47F20120F39B2
+:100FF6002015077401B5090040F1120EF6FF120F15
+:1010060039020F73D21BD2198095120EF6FB120EFF
+:10101600F6FA120EF6F94A4B7006791C7A127BFF25
+:1010260020152EE509602A7E008E82758300121631
+:10103600BA60060EEE650A70F0C2D5EBC0E0EAC0F3
+:10104600E0E9C0E0EE121192D0E0F9D0E0FAD0E08B
+:10105600FB1216A1FF60AAEBC0E0EAC0E0E9C0E01F
+:10106600120F39D0E02401F9D0E03400FAD0E0FBC9
+:10107600E50A0460DCD50AD980877BFF7A11798E70
+:10108600D215809C791080027908C219C21B80088B
+:10109600D2D5790A8004790AC2D5E50A047002F528
+:1010A6000AE4FAFDFEFF120EF6FC7B08201413126A
+:1010B6000EF6FD7B1030130A120EF6FE120EF6FF28
+:1010C6007B20EC3382D592D55013C3E43013069FB0
+:1010D600FFE49EFEE42014039DFDE49CFCE4CBF8B3
+:1010E600C214EC700CCFCECDCCE824F8F870F380A7
+:1010F60017C3EF33FFEE33FEED33FDEC33FCEB337A
+:10110600FB994002FB0FD8E9EB301405F8D0E0C498
+:1011160048B214C0E00AEC4D4E4F78207B0070C2F6
+:10112600EAB50A0040BCC0E0121194D0F0D0E0202D
+:101136001404C4C0E0C4B214C0F0120F22D0F0D51B
+:10114600F0EB020F73121878101053108A580FE143
+:101156004C0FDD42108E4F1096441096490FF64301
+:08116600109C5510804610801A
+:10116E0045108047123C500FE52D0FE92E100C2B29
+:10117E000FED23100A2012252A0FA5480000100497
+:10118E003F3F3F00790AA2D5201614301809B91036
+:10119E00020404B9080104A2D5201902500104204A
+:1011AE0015689215B509005034C0E07F203016192D
+:1011BE007F30A21572197218500F1211EBC215C2A0
+:1011CE0019C218C21B7F30800F301803E9C0E0121D
+:1011DE000F39301803D0E0F9D0E0B509CC3018172C
+:1011EE007F30B9100C120F397F583017077F788077
+:1011FE0003B90803120F393015057F2D020F397F01
+:10120E0020201BF87F2B2019F322921580CF286EF9
+:10121E00756C6C2900D214120EF63014F8C21478C4
+:10122E000930D50108F6020FA52D50434958120E6C
+:10123E00F62403B405004001E490123793120F2AEE
+:0D124E00743A120F2AD21675090402108A94
+:1018CB00BB010689828A83F0225002F722BBFE01FC
+:0218DB00F322F6
+:00000001FF
diff --git a/Out/8837_EVB_250108_1930_E201_010102.bin b/Out/8837_EVB_250108_1930_E201_010102.bin
new file mode 100644
index 0000000..1591706
Binary files /dev/null and b/Out/8837_EVB_250108_1930_E201_010102.bin differ
diff --git a/Project/SY8837_Demo.uvgui.GH b/Project/SY8837_Demo.uvgui.GH
index a598303..4fe02a4 100644
--- a/Project/SY8837_Demo.uvgui.GH
+++ b/Project/SY8837_Demo.uvgui.GH
@@ -93,8 +93,8 @@
2
3
- -32000
- -32000
+ -1
+ -1
-1
@@ -102,16 +102,16 @@
66
- 1872
- 3792
+ -8
+ 1912
1028
0
- 996
- 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000009000000070000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000CF020000
+ 1090
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000010000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000CF020000
@@ -1806,7 +1806,7 @@
File
2558
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000832303234313031359600000000000000010008323032343130313500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000832303234313031359600000000000000010008323032343130313500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
976
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -3603,7 +3603,7 @@
0
100
- 7
+ 1
..\UsrSrc\main.c
0
@@ -3615,9 +3615,9 @@
..\UsrSrc\vox\vox_module.c
- 0
- 1323
- 1356
+ 2
+ 531
+ 560
1
0
@@ -3660,18 +3660,18 @@
..\UsrSrc\key\key.c
- 0
- 169
- 194
+ 1
+ 253
+ 275
1
0
\todaywork\20241202_tp3410\SY8837_Demo\UsrInc\inc\config.h
- 0
- 203
- 231
+ 16
+ 183
+ 205
1
0
@@ -3685,6 +3685,15 @@
0
+
+ ..\UsrInc\vox\vox_module.h
+ 18
+ 459
+ 490
+ 1
+
+ 0
+
diff --git a/SY8837_Demo.si4project/SY8837_Demo.SearchResults b/SY8837_Demo.si4project/SY8837_Demo.SearchResults
index 4844565..fe983b7 100644
--- a/SY8837_Demo.si4project/SY8837_Demo.SearchResults
+++ b/SY8837_Demo.si4project/SY8837_Demo.SearchResults
@@ -1,7 +1,2 @@
----- BOOST_VOUT_MAX Matches (6 in 4 files) ----
-config.h (UsrInc\inc) line 169 : #define BOOST_VOUT_MAX Boost_Vout_5_225V //Boost 输出最高电压阈值。
-DisCharge_Handler in discharge_module.c (UsrSrc\discharge) : DisCharge_Boost_Open(OFF, BOOST_VOUT_MAX); //250ms定时开一次Boost,这个VOUT输出电压是直接输出固定值?还是输出跟随充当前电压值?
-Key_Handler in key.c (UsrSrc\key) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX);
-Key_Handler in key.c (UsrSrc\key) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX);
-Vox_Det_Machine in vox_module.c (UsrSrc\vox) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); //开关盖Boost输出5.2V,保证耳机一定能被唤醒。Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。
-Vox_Det_Machine in vox_module.c (UsrSrc\vox) : DisCharge_Boost_Open(OFF, BOOST_VOUT_MAX); //Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。
+---- JEITA_NTC_CHG_COLD_LOW_TMP Matches (1 in 1 files) ----
+config.h (UsrInc\inc) line 191 : #define JEITA_NTC_CHG_COLD_LOW_TMP T_0C //配置充电NTC冷状态温度下限值。
diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_sym b/SY8837_Demo.si4project/SY8837_Demo.sip_sym
index 400e98a..31b3488 100644
Binary files a/SY8837_Demo.si4project/SY8837_Demo.sip_sym and b/SY8837_Demo.si4project/SY8837_Demo.sip_sym differ
diff --git a/SY8837_Demo.si4project/cache/parse/UsrInc_charger_charger_module.h.sisc b/SY8837_Demo.si4project/cache/parse/UsrInc_charger_charger_module.h.sisc
deleted file mode 100644
index afb5586..0000000
Binary files a/SY8837_Demo.si4project/cache/parse/UsrInc_charger_charger_module.h.sisc and /dev/null differ
diff --git a/SY8837_Demo.si4project/cache/parse/UsrSrc_charger_charger_module.c.sisc b/SY8837_Demo.si4project/cache/parse/UsrSrc_charger_charger_module.c.sisc
deleted file mode 100644
index 9a4e309..0000000
Binary files a/SY8837_Demo.si4project/cache/parse/UsrSrc_charger_charger_module.c.sisc and /dev/null differ
diff --git a/SY8837_Demo.si4project/cache/parse/UsrSrc_userapp_userapp.c.sisc b/SY8837_Demo.si4project/cache/parse/UsrSrc_userapp_userapp.c.sisc
deleted file mode 100644
index 1f6380f..0000000
Binary files a/SY8837_Demo.si4project/cache/parse/UsrSrc_userapp_userapp.c.sisc and /dev/null differ
diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h
index 0d06e87..e289879 100644
--- a/UsrInc/charger/charger_module.h
+++ b/UsrInc/charger/charger_module.h
@@ -76,7 +76,8 @@ typedef struct {
#define PRECHG_TMR_EN_Pos (3U)
#define PRECHG_TMR_EN_Pos_Msk (0x1UL << PRECHG_TMR_EN_Pos)
-#define PRECHG_TMR_EN PRECHG_TMR_EN_Pos_Msk
+#define PRECHG_TMR_EN_2H PRECHG_TMR_EN_Pos_Msk
+#define PRECHG_TMR_EN_1H 0x00
#define FASTCHG_TMR_SET_3H 0x00
#define FASTCHG_TMR_SET_5H 0x01
diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h
index 74adf43..b28c2fc 100644
--- a/UsrInc/inc/config.h
+++ b/UsrInc/inc/config.h
@@ -160,6 +160,87 @@
#define T_80C 113 //80 NTC:12.4K
#endif
+/* NTCѡJEITA or IEC.*/
+#define NTC_JEITA 1
+
+#define NTC_IEC 0
+
+/* NTC¶ȷΧ */
+#if NTC_IEC
+
+#define IEC_NTC_CHG_PRO_LOW_TMP T_0C //óNTC¶ֵ
+
+#define IEC_NTC_CHG_HYST_LOW_TMP T_3C //óNTCָ¶ֵ
+
+#define IEC_NTC_CHG_PRO_HIGH_TMP T_45C //óNTC¶ֵ
+
+#define IEC_NTC_CHG_HYST_HIGH_TMP T_42C //óNTCָ¶ֵ
+
+#elif NTC_JEITA
+
+/* JEITAģʽNTC¶ȱֵͳ¶ȡ */
+#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //óNTC¶ֵ
+
+#define JEITA_NTC_CHG_PRO_HYST_LOW_TMP T_3C //óNTCָ¶ֵ
+
+#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //óNTC¶ֵ
+
+#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //óNTCָ¶ֵ
+
+/* JEITAģʽNTC¶״ֵ̬ͳ¶ȡ */
+#define JEITA_NTC_CHG_COLD_HIGH_TMP T_10C //óNT C״̬¶ֵ
+
+#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //óNTC״ָ̬¶ֵ
+
+/* JEITAģʽNTC¶ů״ֵ̬ͳ¶ȡ */
+#define JEITA_NTC_CHG_WARM_LOW_TMP T_10C //óNTCů״̬¶ֵ
+
+#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //óNTCů״ָ̬¶ֵ
+
+#define JEITA_NTC_CHG_WARM_HIGH_TMP T_45C //óNT Ců״̬¶ֵ
+
+#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //óNTCů״ָ̬¶ֵ
+
+/* JEITAģʽNTC¶״ֵ̬ͳ¶ȡ */
+#define JEITA_NTC_CHG_HOT_LOW_TMP T_45C //óNTC״̬¶ֵ
+
+#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //óNTC״ָ̬¶ֵ
+
+#endif
+
+/* NTCŵ¶ȷΧ */
+#define NTC_DISCHG_PRO_LOW_TMP T_N20C //÷ŵNTC¶ֵ
+
+#define NTC_DISCHG_HYST_LOW_TMP T_N15C //÷ŵNTCָ¶ֵ
+
+#define NTC_DISCHG_PRO_HIGH_TMP T_80C //÷ŵNTC¶ֵ
+
+#define NTC_DISCHG_HYST_HIGH_TMP T_75C //÷ŵNTCָ¶ֵ
+
+/* Bat Level Set. 5% Each Gear */
+#define C_batLevel_SetMax 21 //Ƶλ
+
+#define Bat_Lev_0 3000 //0%
+#define Bat_Lev_5 3050 //5%
+#define Bat_Lev_10 3100 //10%
+#define Bat_Lev_15 3200 //15%
+#define Bat_Lev_20 3250 //20%
+#define Bat_Lev_25 3300 //25%
+#define Bat_Lev_30 3350 //30%
+#define Bat_Lev_35 3400 //35%
+#define Bat_Lev_40 3450 //40%
+#define Bat_Lev_45 3500 //45%
+#define Bat_Lev_50 3600 //50%
+#define Bat_Lev_55 3650 //55%
+#define Bat_Lev_60 3700 //60%
+#define Bat_Lev_65 3750 //65%
+#define Bat_Lev_70 3800 //70%
+#define Bat_Lev_75 3850 //75%
+#define Bat_Lev_80 3900 //80%
+#define Bat_Lev_85 3975 //85%
+#define Bat_Lev_90 4050 //90%
+#define Bat_Lev_95 4125 //95%
+#define Bat_Lev_100 4200 //100%
/* Boost Module Config Para Setting. */
@@ -169,6 +250,10 @@
#define BOOST_VOUT_MAX Boost_Vout_5_225V //Boost ߵѹֵ
+/* LED á */
+
+#define LED_DRV_LIMIT_SET P0_DRV_400 //P02-P05λ400800
+
/* KEY And Hall Module Setting. */
#define HALL_OPEN_LEV_SET 1 //ǸߵƽΪǻǵ͵ƽΪǡ1:ߵƽΪǣ0:͵ƽΪǡ
@@ -183,7 +268,9 @@
#define VFLOAT_SET CHG_VFLOAT_4_200V //øѹ
-#define FASTCHG_TMR_SET FASTCHG_TMR_SET_5H //úͺѹʱ䡣
+#define PRECHG_TIM_SET PRECHG_TMR_EN_1H //䳬ʱʱ䡣
+
+#define FASTCHG_TMR_SET FASTCHG_TMR_SET_5H //úͺѹʱʱ䡣
#define VFLOAT_JEITA_HOT CHG_VFLOAT_4_000V //JEITANTCȳ縡ѹ
@@ -213,6 +300,14 @@
#define VOX_CLOSE_5V_HOLD_CNT 3 //ùظǶVOX 5Vʱ䣨100ms * 3λms
+ /* ˫ͨѶЭѡ */
+
+#define JIELI 1 //оƬ
+
+#define ZHONGKE 0 //пѶоƬ
+
+#define XUANHENG 0 //оƬ
+
/* Voxá(100ms) */
#define VOX_CV_TC_CURRENT 20 //紦CV/TCεĵֵλmA
@@ -233,7 +328,9 @@
/*Sleep Module Setting*/
/*Enter Sleep Time Debounce*/
-#define ENTER_STANDBYMODE_CNT 15 //Standby Mode ӳʱ䣬λ
+#define ENTER_STANDBYMODE_CNT 15 //Standby Mode ӳʱ䣬λ
+
+#define STANDBY_TIM_SET STB_TMR_SET_8S //Standbyʱʱ䣺2s4s8s16sλ
//#define ENTER_STANDBYMODE_CNT 10 //Standby Mode ӳʱ䣬λ
diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h
index fb0f135..22f0324 100644
--- a/UsrInc/inc/define.h
+++ b/UsrInc/inc/define.h
@@ -61,12 +61,6 @@
#define VOX_RX //739Bytes
- /* ˫ͨѶЭѡ */
-
-#define JIELI 0
-
-#define ZHONGKE 1
-
#endif
#define CHARGER_ENABLE 1 //94Bytes
@@ -81,10 +75,6 @@
#if ADC_ENABLE
-#define NTC_JEITA 1
-
-#define NTC_IEC 0
-
#define NTC_ENABLE //513Bytes JEITA
#endif
diff --git a/UsrInc/led/led.h b/UsrInc/led/led.h
index 5979640..3f4bf71 100644
--- a/UsrInc/led/led.h
+++ b/UsrInc/led/led.h
@@ -60,6 +60,13 @@ sbit pin_LED_4 = P0^5;
#define LEDB_OFF() pin_LED_4 = 0 //LED_4_OFF()
#define LEDB_TOG() pin_LED_4 = !pin_LED_4 //LED_4_RUN()
+/* P02-P05<03h> --P0_DRV */
+#define P0_DRV_NONE 0x00
+
+#define P0_DRV_400 0xAA
+
+#define P0_DRV_800 0xFF
+
/******************************************************************************\
Typedef definitions
\******************************************************************************/
diff --git a/UsrInc/system/system.h b/UsrInc/system/system.h
index 816cbf8..3f5729e 100644
--- a/UsrInc/system/system.h
+++ b/UsrInc/system/system.h
@@ -161,6 +161,20 @@
#define VIN_PRESENT_WK_FLAG_Pos_Msk (0x1UL << VIN_PRESENT_WK_FLAG_Pos)
#define VIN_PRESENT_WK_FLAG VIN_PRESENT_WK_FLAG_Pos_Msk
+/* Standby ʱѿƼĴ--STB_TIM_CTL */
+#define EN_FORCE_LOSC_Pos (7U)
+#define EN_FORCE_LOSC_Pos_Msk (0x1UL << EN_FORCE_LOSC_Pos)
+#define EN_FORCE_LOSC EN_FORCE_LOSC_Pos_Msk
+
+#define STB_TMR_EN_Pos (6U)
+#define STB_TMR_EN_Pos_Msk (0x1UL << STB_TMR_EN_Pos)
+#define STB_TMR_EN STB_TMR_EN_Pos_Msk
+
+#define STB_TMR_SET_2S (0U)
+#define STB_TMR_SET_4S (1U)
+#define STB_TMR_SET_8S (2U)
+#define STB_TMR_SET_16S (3U)
+
/*жϺż㷽ʽж = жϺ * 8 + 3*/
#define Interrupt_Vector_IE0 0 //0x03,SY8836 IE0 use for wakeup
diff --git a/UsrInc/uart/uart.h b/UsrInc/uart/uart.h
index 46c7e3c..e85d75e 100644
--- a/UsrInc/uart/uart.h
+++ b/UsrInc/uart/uart.h
@@ -44,7 +44,7 @@ extern char putchar (char ch);
#endif
-#define COM0_Data_Lenth 64
+#define COM0_Data_Lenth 32
#ifdef VOX_RX
diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h
index 177ba7e..83bc535 100644
--- a/UsrInc/vox/vox_module.h
+++ b/UsrInc/vox/vox_module.h
@@ -260,6 +260,11 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
#define Vox_Pull_Up_50k_Pos (0U)
#define Vox_Pull_Up_50k_Pos_Msk (0x1UL << Vox_Pull_Up_50k_Pos)
#define Vox_Pull_Up_50k Vox_Pull_Up_50k_Pos_Msk
+#if XUANHENG
+
+#define BOXHEADER 0xAA //VOXͨѶݰͷ
+
+#else
#define BOXHEADER 0x55AA //VOXͨѶݰͷ
@@ -268,6 +273,8 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
#define BOXIDCODE 0xFF //VOXͨѶ->ݰͷ
+#endif
+
#define Vox_TX_Interval 2 //Voxʱָʱ
#define Vox_TX_Interval_2 4
@@ -374,6 +381,49 @@ typedef enum _VOX_BES_COMMAND_E
}VOX_BES_COMMAND_E;
+#elif XUANHENG
+
+ /*ͨѡ*/
+
+#define TWS_VOL 0x04
+#define TWS_VOR 0x05
+#define TWS_BOX 0x02
+#define TWS_PC 0x03
+
+typedef enum {
+
+ VOL_CHAN = 0x24,
+
+ VOR_CHAN = 0x25,
+
+ VOX_BOTH = 0x21,
+
+ VOX_MAX_CHAN = 0x02,
+
+}e_Vox_Chan;
+
+ /*ͳֽ˫ͨѶЭID*/
+typedef enum _VOX_BES_COMMAND_E
+{
+ CMD_SHUT_DOWN = 0x0005, //ػ
+
+ CMD_TWS_GET_BTADDR = 0x0037, //ȡԶMACַ
+
+ CMD_TWS_SET_BTADDR = 0x000A, //дԶMACַ
+
+ CMD_CLEAR_PAIR = 0x000B, //Լ¼
+
+ CMD_HEARTBEAT = 0x000D, //
+
+ CMD_SN = 0x000E, //дSN뵽
+
+ CMD_GET_INTO_PAIR = 0x000F, //״̬
+
+ CMD_PAIRING_IMD = 0x0011, //ִTWS
+
+ BES_RESET, //λPattern
+
+}VOX_BES_COMMAND_E;
#endif
diff --git a/UsrSrc/adc/adc.c b/UsrSrc/adc/adc.c
index 4ea1a31..32a4079 100644
--- a/UsrSrc/adc/adc.c
+++ b/UsrSrc/adc/adc.c
@@ -36,6 +36,8 @@
idata int8_t ADC_Offset_Error = 0; //ADC Offset Error УֵĴ
+idata int8_t Bat_ADC_Offset_Error = 0;
+
idata int8_t Vor_Isense_Gain_Error = 0;
idata int8_t Vol_Isense_Gain_Error = 0;
@@ -106,7 +108,10 @@ void Adc_Init(void)
SFRDATA |= 0x01;
#if 0
- ADC_Offset_Error = ADC_OFFSET; //ȡADC Offset ErrorУֵ
+
+ ADC_Offset_Error = (int8_t)( ADC_OFFSET - 8 ); //ȡADC Offset ErrorУֵ
+
+ Bat_ADC_Offset_Error = (int8_t)( ADC_OFFSET >> 4 );
/* ȡIvoxӦOffset Error Gain Error */
Vol_Isense_Offset_Error = (int8_t)( IVOX_OFFSET - 8 ) * 10; //VOX offset ÿһλΪ 10mV1000 Ӧ offset Ϊ 0mV1001 Ӧ offsetΪ 10mV0111 Ӧ offset Ϊ-10mV
@@ -116,6 +121,7 @@ void Adc_Init(void)
Vor_Isense_Offset_Error = (int8_t)( ( IVOX_OFFSET >> 4 ) - 8 ) * 10;
Vor_Isense_Gain_Error = IVOR_GAIN;
+
#endif
EX6 = 1; //ADC IRQ Enable
@@ -155,7 +161,7 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn )
g_Value_Adc_Avg = ((uint32_t)g_Value_Adc_Avg * 2500) >> 10 ; //ADCLSB = 2500mV / 1024 = 2.44mV
- //g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / ( (uint32_t)( 5000 + 3 * Vol_Isense_Gain_Error ) / 1000 ); //IVOLѹλVOLĵŴ5ADC磺100mAADCѹΪ500mV
+ //g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / ( (uint16_t)( 500 + 2 * Vol_Isense_Gain_Error ) / 100 ); //IVOLѹλVOLĵŴ5ADC磺100mAADCѹΪ500mV
g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / 5 ;
break;
@@ -163,15 +169,17 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn )
g_Value_Adc_Avg = ((uint32_t)g_Value_Adc_Avg * 2500) >> 10 ; //ADCLSB = 2500mV / 1024 = 2.44mV
- //g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / ( (uint32_t)( 5000 + 3 * Vor_Isense_Gain_Error ) / 1000 ); //IVORѹλVORĵŴ5ADC磺100mAADCѹΪ500mV
+ // g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / ( (uint16_t)( 500 + 2 * Vor_Isense_Gain_Error ) / 100 ); //IVORѹλVORĵŴ5ADC磺100mAADCѹΪ500mV
g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / 5;
break;
case ADC_BAT:
- g_Value_Adc_Avg = ((uint32_t)( g_Value_Adc_Avg - ADC_Offset_Error ) * 2500) >> 10 ; //ADCLSB = 2500mV / 1024 = 2.44mV
+ g_Value_Adc_Avg = ((uint32_t)( g_Value_Adc_Avg ) * 2500) >> 10 ; //ADCLSB = 2500mV / 1024 = 2.44mV
g_Vbat_Adc = g_Value_Adc_Avg << 1; //VBAT2ѹ
+
+ //g_Vbat_Adc += (int32)( ( g_Vbat_Adc * 4 * ( Bat_ADC_Offset_Error - 8 ) ) / 1000 );
break;
diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c
index 67d54e6..3e7feef 100644
--- a/UsrSrc/bat/bat.c
+++ b/UsrSrc/bat/bat.c
@@ -473,7 +473,6 @@ void Bat_Gauge_Handle(void)
#define C_offset_bat_level_MAX 200
#define C_offset_bat_level_MIN 10
-
bit F_batlevel_protect = 0; //͵籣
bit F_batlevel_25p = 0;
@@ -484,32 +483,30 @@ bit F_batlevel_75p = 0;
idata uint8_t offset_bat_level = ( C_offset_bat_level_MAX + C_offset_bat_level_MIN ) / 2;
-#define C_batLevel_SetMax 21
-
/*صѹḡ,ѹҪԡ*/
const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] =
{
- 3000, //0%
- 3050, //5%
- 3100, //10%
- 3200, //15%
- 3250, //20%
- 3300, //25%
- 3350, //30%
- 3400, //40%
- 3450, //45%
- 3500, //50%
- 3600, //55%
- 3650, //60%
- 3700, //65%
- 3750, //70%
- 3800, //75%
- 3850, //80%
- 3900, //85%
- 3975, //90%
- 4050, //95%
- 4125, //100%
- 4200 //10
+ Bat_Lev_0, //0%
+ Bat_Lev_5, //5%
+ Bat_Lev_10, //10%
+ Bat_Lev_15, //15%
+ Bat_Lev_20, //20%
+ Bat_Lev_25, //25%
+ Bat_Lev_30, //30%
+ Bat_Lev_35, //35%
+ Bat_Lev_40, //40%
+ Bat_Lev_45, //45%
+ Bat_Lev_50, //50%
+ Bat_Lev_55, //55%
+ Bat_Lev_60, //60%
+ Bat_Lev_65, //65%
+ Bat_Lev_70, //70%
+ Bat_Lev_75, //75%
+ Bat_Lev_80, //80%
+ Bat_Lev_85, //85%
+ Bat_Lev_90, //90%
+ Bat_Lev_95, //95%
+ Bat_Lev_100 //100%
};
#if 0
@@ -534,7 +531,7 @@ void check_bat_level(void)
#if ADC_ENABLE
for(i=0; i < C_batLevel_SetMax; i++)
{
- #if 0
+ #if 1
if( g_Vbat_Adc < Boost_batlevel_Threshold[i] )
{
diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c
index 3a1796b..8bd3d1d 100644
--- a/UsrSrc/charger/charger_module.c
+++ b/UsrSrc/charger/charger_module.c
@@ -89,7 +89,7 @@ void Charger_Init(void)
SFRDATA |= R_Set0 | R_Set1; //Charger · RC ã00-11 λֵ
CHG_CTL &=~ 0x0E;
- CHG_CTL |= FASTCHG_TMR_SET;
+ CHG_CTL |= FASTCHG_TMR_SET | PRECHG_TIM_SET ;
gCharge_Cfg.nTrickle_Cur = TRICKLE_CUR_SET;
@@ -156,9 +156,9 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( Charge_sta ) //VBUS plugin status ģʽ
{
- if( ( NTC_Adc <= T_0C ) && ( NTC_Adc > T_60C ) )
+ if( ( NTC_Adc <= JEITA_NTC_CHG_PRO_LOW_TMP ) && ( NTC_Adc > JEITA_NTC_CHG_PRO_HIGH_TMP ) )
{
- if( NTC_Adc > T_10C ) //0.5*ICC
+ if( NTC_Adc > JEITA_NTC_CHG_COLD_HIGH_TMP ) //0.5*ICC
{
NTC_250mA_Chg_Flag = 1;
@@ -166,7 +166,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_500mA_Chg_Flag )
{
- if( NTC_Adc > T_8C )
+ if( NTC_Adc > JEITA_NTC_CHG_COLD_HYST_HIGH_TMP )
{
NTC_500mA_Chg_Flag = 0;
@@ -181,7 +181,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = FALSE;
}
else
- if( NTC_Adc <= T_10C && NTC_Adc > T_45C ) //1*ICC
+ if( NTC_Adc <= JEITA_NTC_CHG_WARM_LOW_TMP && NTC_Adc > JEITA_NTC_CHG_WARM_HIGH_TMP ) //1*ICC
{
NTC_500mA_Chg_Flag = 1;
@@ -189,7 +189,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_250mA_Chg_Flag )
{
- if( NTC_Adc <= T_12C )
+ if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_LOW_TMP )
{
NTC_250mA_Chg_Flag = 0;
@@ -205,7 +205,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_Change_CV_Chg_Flag )
{
- if( NTC_Adc <= T_42C )
+ if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_HIGH_TMP )
{
NTC_Change_CV_Chg_Flag = 0;
@@ -220,7 +220,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = FALSE;
}
else
- if( NTC_Adc <= T_45C ) //ѹ4.05V
+ if( NTC_Adc <= JEITA_NTC_CHG_HOT_LOW_TMP ) //ѹ4.05V
{
NTC_Change_CV_Chg_Flag = 1;
@@ -228,7 +228,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_500mA_Chg_Flag )
{
- if(NTC_Adc <= T_47C)
+ if(NTC_Adc <= JEITA_NTC_CHG_HOT_HYST_LOW_TMP)
{
NTC_500mA_Chg_Flag = 0;
@@ -245,7 +245,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( CHG_NTC_Low_Pro_Flag )
{
- if( NTC_Adc < T_3C)
+ if( NTC_Adc < JEITA_NTC_CHG_PRO_HYST_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 0;
NTC_Flag = FALSE;
@@ -258,7 +258,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( CHG_NTC_High_Pro_Flag )
{
- if( NTC_Adc > T_57C )
+ if( NTC_Adc > JEITA_NTC_CHG_PRO_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
NTC_Flag = FALSE;
@@ -271,7 +271,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else
{
- if( NTC_Adc > T_0C ) //
+ if( NTC_Adc > JEITA_NTC_CHG_PRO_LOW_TMP ) //
{
CHG_NTC_Low_Pro_Flag = 1;
@@ -281,7 +281,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = TRUE;
}
else
- if( NTC_Adc <= T_60C ) //
+ if( NTC_Adc <= JEITA_NTC_CHG_PRO_HIGH_TMP ) //
{
CHG_NTC_High_Pro_Flag = 1;
@@ -302,11 +302,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
- if( NTC_Adc <= T_N20C && NTC_Adc > T_80C ) //ŵ
+ if( NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP && NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP ) //ŵ
{
if( DisChg_NTC_Low_Pro_Flag )
{
- if( NTC_Adc < T_N15C )
+ if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
NTC_Flag = FALSE;
@@ -319,7 +319,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( DisChg_NTC_High_Pro_Flag )
{
- if( NTC_Adc > T_75C )
+ if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
NTC_Flag = FALSE;
@@ -332,12 +332,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //쳣ŵ
{
- if( NTC_Adc > T_N20C )
+ if( NTC_Adc > NTC_DISCHG_PRO_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 1;
}
else
- if( NTC_Adc < T_80C )
+ if( NTC_Adc < NTC_DISCHG_PRO_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 1;
}
@@ -350,11 +350,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(Charge_sta) //VBUS plugin status ģʽ
{
- if(NTC_Adc <= T_0C && NTC_Adc > T_45C) //
+ if(NTC_Adc <= IEC_NTC_CHG_PRO_LOW_TMP && NTC_Adc > IEC_NTC_CHG_PRO_HIGH_TMP) //
{
if(CHG_NTC_Low_Pro_Flag)
{
- if( NTC_Adc < T_3C )
+ if( NTC_Adc < IEC_NTC_CHG_HYST_LOW_TMP )
{
CHG_NTC_Low_Pro_Flag = 0;
@@ -368,7 +368,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(CHG_NTC_High_Pro_Flag)
{
- if( NTC_Adc > T_42C )
+ if( NTC_Adc > IEC_NTC_CHG_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
@@ -382,12 +382,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //쳣
{
- if(NTC_Adc > T_0C)
+ if(NTC_Adc > IEC_NTC_CHG_PRO_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 1;
}
else
- if(NTC_Adc <= T_45C)
+ if(NTC_Adc <= IEC_NTC_CHG_PRO_HIGH_TMP)
{
CHG_NTC_High_Pro_Flag = 1;
}
@@ -406,11 +406,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
- if( (NTC_Adc <= T_N20C) && (NTC_Adc > T_80C) ) //ŵ
+ if( (NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP) && (NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP) ) //ŵ
{
if( DisChg_NTC_Low_Pro_Flag )
{
- if( NTC_Adc < T_N15C )
+ if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
@@ -424,7 +424,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(DisChg_NTC_High_Pro_Flag)
{
- if( NTC_Adc > T_75C )
+ if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
@@ -438,12 +438,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //쳣ŵ
{
- if(NTC_Adc > T_N20C)
+ if(NTC_Adc > NTC_DISCHG_PRO_LOW_TMP)
{
DisChg_NTC_Low_Pro_Flag = 1;
}
else
- if(NTC_Adc <= T_80C)
+ if(NTC_Adc <= NTC_DISCHG_PRO_HIGH_TMP)
{
DisChg_NTC_High_Pro_Flag = 1;
}
@@ -489,6 +489,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
*/
void Charger_Handler(void)
{
+ uint16_t nCVFloat = 0;
if( !(CHIP_STA4 & VIN_PG) ) //δPower good,رChargerʹܺء
{
CHG_CTL &= ~CHG_EN; //Disable Charger
@@ -568,8 +569,16 @@ void Charger_Handler(void)
if( IRQ_FLAG9 & CHG_Complete ) //Charg complete interrupt
{
#if ADC_ENABLE
-
- if( g_Vbat_Adc < ( gCharge_Cfg.nVFloat - BAT_RECHARG_THD ) ) //ָ
+ if( gCharge_Cfg.nVFloat == CHG_VFLOAT_4_200V )
+ {
+ nCVFloat = 4200;
+ }
+ else
+ {
+ nCVFloat = 4000;
+ }
+
+ if( g_Vbat_Adc < ( nCVFloat - BAT_RECHARG_THD ) ) //ָ
{
IRQ_FLAG9 = CHG_Complete;
}
diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c
index 0a36d8a..9900f71 100644
--- a/UsrSrc/key/key.c
+++ b/UsrSrc/key/key.c
@@ -253,7 +253,7 @@ uint8_t Key_Lift_Debounce = 0;
nKey_Press_short_irq = 0;
/*todo*/
- Event_key = KEY_EVENT_SHORT;
+ // Event_key = KEY_EVENT_SHORT;
#ifdef _DEBUG_KEY
printf("short press\r\n");
@@ -273,7 +273,13 @@ uint8_t Key_Lift_Debounce = 0;
if( Key_TWS_Pair_Tim < 1 )
{
#ifdef VOX_TX
+
+#if XUANHENG
+ HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN);
+#else
HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //Ҷֶָͨ
+#endif
+
#endif
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
@@ -305,11 +311,15 @@ uint8_t Key_Lift_Debounce = 0;
if( Vox_Get_BES_Addr_Flag[VOR_TYPE] == 0x01 ) /*յҶظCMD3ָ*/
{
#ifdef VOX_TX
+
#if JIELI
HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOL_CHAN); /*ȡҶظCMD3ָת*/
#elif ZHONGKE
HandleTxCommand( VHOUSE_CMD_GET_TWS_BTADDR, VOL_CHAN ); /*ȡҶظCMD3ָת*/
+#elif XUANHENG
+ HandleTxCommand( CMD_TWS_SET_BTADDR, VOL_CHAN );
#endif
+
#endif
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02;
#ifdef _DEBUG_KEY
@@ -323,11 +333,15 @@ uint8_t Key_Lift_Debounce = 0;
if( Vox_Get_BES_Addr_Flag[VOL_TYPE] != 0x00 )
{
#ifdef VOX_TX
+
#if JIELI
HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOR_CHAN); /*ȡҶظCMD3ָת*/
#elif ZHONGKE
HandleTxCommand( VHOUSE_CMD_GET_TWS_BTADDR, VOR_CHAN ); /*ȡҶظCMD3ָת*/
+#elif XUANHENG
+ HandleTxCommand( CMD_TWS_SET_BTADDR, VOR_CHAN );
#endif
+
#endif
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
@@ -349,7 +363,13 @@ uint8_t Key_Lift_Debounce = 0;
else
{
#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN);
+
+#if XUANHENG
+ HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN);
+#else
+ HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //Ҷֶָͨ
+#endif
+
#endif
#ifdef _DEBUG_KEY
printf("Key Pair TX VOL(line:%d).\r\n",(uint16_t)__LINE__);
@@ -380,15 +400,27 @@ uint8_t Key_Lift_Debounce = 0;
{
if( !( Key_TWS_Clear_Pair_Tim % KEY_LL_TX_Interval_2 ) )
{
-#ifdef VOX_TX
+#ifdef VOX_TX
+
+#if XUANHENG
+ HandleTxCommand(CMD_CLEAR_PAIR,VOR_CHAN);
+#else
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOR_CHAN);
+#endif
+
#endif
}
else
if( !( Key_TWS_Clear_Pair_Tim % KEY_LL_TX_Interval ) )
{
-#ifdef VOX_TX
+#ifdef VOX_TX
+
+#if XUANHENG
+ HandleTxCommand(CMD_CLEAR_PAIR,VOL_CHAN);
+#else
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOL_CHAN);
+#endif
+
#endif
}
diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c
index 97046f3..d55f55a 100644
--- a/UsrSrc/sleep/sleep.c
+++ b/UsrSrc/sleep/sleep.c
@@ -69,7 +69,7 @@ void WakeUp_Init_Set(void)
SFRADDR = WKUP_EN0;
SFRDATA |= 0x08;
- STBTIM_CTL = 0x87; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:12s.
+ STBTIM_CTL = EN_FORCE_LOSC | STB_TMR_EN | STANDBY_TIM_SET;; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:12s.
#endif
diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c
index 7b06aa0..4977811 100644
--- a/UsrSrc/uart/uart.c
+++ b/UsrSrc/uart/uart.c
@@ -284,10 +284,18 @@ uint8_t Rx1Status = 0;
uint8_t RX1_Cnt = 0;
+#if XUANHENG
+
+uint16_t RX1DataLen = 0;
+
+#endif
+
#define Vox_Comm_JL_HEADER_DATA_LEN 4
#define Vox_Comm_ZK_HEADER_DATA_LEN 6
+#define Vox_Comm_XH_HEADER_DATA_LEN 7
+
/*uart1жϴ*/
void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
{
@@ -311,6 +319,49 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
#ifdef VOX_RX
+#if XUANHENG
+
+ switch(Rx1Status)
+ {
+ case 0:
+
+ if( S1BUF == BOXHEADER )
+ {
+ Rx1Status = 1;
+
+ RX1_Cnt = 0;
+
+ RX1_Buffer[RX1_Cnt++] = S1BUF;
+ }
+ else
+ {
+ Rx1Status = 0;
+
+ RX1_Cnt = 0;
+ }
+ break;
+
+ case 1:
+
+ RX1_Buffer[RX1_Cnt++] = S1BUF;
+
+ if( RX1_Cnt == Vox_Comm_XH_HEADER_DATA_LEN )
+ {
+ RX1DataLen = RX1_Buffer[5] | (RX1_Buffer[6] << 8) + 9; //ȡݳȣHeadr(1Byte) + Trandsmit Dir(1Byte) + CMD(2Bytes) + datalen(2Bytes) + CRC16(2Bytes)
+ }
+
+ if( (RX1DataLen == RX1_Cnt) || (RX1_Cnt > COM0_Data_Lenth) ) //յdataRX0DataLenδ䡣
+ {
+ RX1_Cnt = 0;
+
+ Rx1Status = 0;
+
+ Uart1_RX_Finish_Flag = 1;
+ }
+ }
+
+#else
+
switch(Rx1Status)
{
case 0:
@@ -367,6 +418,8 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
default:
break;
}
+#endif
+
#endif
}
diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c
index 57fd8b2..9f213f5 100644
--- a/UsrSrc/vox/vox_module.c
+++ b/UsrSrc/vox/vox_module.c
@@ -80,19 +80,8 @@ xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0};
#endif
-#ifdef VOX_TX
-
-idata uint8_t Net_Info[2][13] = {0};
-
-idata uint8_t MAC_Addr[2][18] = {0};
-
uint8_t EarPhone_Num = 0;
-#endif
-
-xdata uint8_t Earphone_Vbat[2] = 0; //Զ
-xdata uint8_t Vox_Online_State[2] = {0}; //߱־λ
-
bit Vox_Ocp_Flag = 0;
bit OpenCover_TX_Cmd_Flag = 0;
@@ -103,6 +92,51 @@ bit OpenCover_TX_Cmd_Flag = 0;
#define KEY_TWS_PAIR_CLEAR_CNT 30
+#if XUANHENG
+
+idata uint8_t Vox_Pairing_State[2] = {0}; //״̬0Ч1ԣ2Գɹ3ֵǰ״̬
+
+idata uint8_t Vox_Set_BES_Addr_Flag[2] = {0};
+
+idata uint8_t BES_Addr[6] = {0}; //ַVox_Bes_Addr[0][6]VOLVox_Bes_Addr[1][6]VOR
+
+idata uint8_t Random_Data[8] = {0};
+
+idata uint8_t Bes_Bet_Level[2] = {0}; //ԶصϢBes_Bet_Level[0]Bes_Bet_Level[1]Ҷ
+
+idata uint8_t Bes_Chg_Full[2] = {0}; //ԶӲǷ磺0磻1硣
+
+idata uint8_t Tws_Paired_Record[2] = {0}; //TWSԼ¼0TWSԼ¼1ûTWSԼ¼
+
+idata uint8_t Phone_Paired_Record[2] = {0}; //ֻԼ¼0ֻԼ¼1ûкֻԼ¼
+
+idata uint8_t Bes_OTA_State[2] = {0}; //Ĭ״̬1У0û
+
+idata uint8_t Bes_Set_SN_State[2] = {0}; //ӦдSNǷɹ1ɹ0ʧ
+
+idata uint8_t Bes_In_Pair_State[2] = {0}; //״̬־λ
+
+idata uint8_t Vox_Clear_Pair_Flag[2] = {0};
+
+bit Vol_Bes_Addr_Flag = 0;
+bit Vor_Bes_Addr_Flag = 0;
+
+idata uint8_t SN_Num[22] = {0}; //SN룬ҪOTPĹ̶λûȡ
+
+idata uint8_t SN_Num_Start = 0; //SN뷢ʼλãпǶʱ㡣
+
+bit gShip_Mode_Flag = 0; //ģʽ־λ0ػ1ģʽ
+
+#else
+
+idata uint8_t Net_Info[2][13] = {0};
+
+idata uint8_t MAC_Addr[2][18] = {0};
+
+xdata uint8_t Earphone_Vbat[2] = 0; //Զ
+
+#endif
+
/******************************************************************************\
Functions definitions
\******************************************************************************/
@@ -420,6 +454,9 @@ void Vox_Det_Machine(void)
static bit Vox_Chn_Select;
static uint8_t Vox_Output_Debounce;
+
+ static uint8_t Vox_Output_Cnt;
+
static bit CoverEvent_Flg1;
if( gBoost_Prepared_Flag )
@@ -577,7 +614,8 @@ void Vox_Det_Machine(void)
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOL_CHAN); //ֶָͨ
-
+#elif XUANHENG
+ HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN);
#endif
#endif
}
@@ -592,7 +630,10 @@ void Vox_Det_Machine(void)
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOR_CHAN); //Ҷֶָͨ
-
+#elif XUANHENG
+
+ HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN);
+
#endif
#endif
@@ -710,24 +751,43 @@ void Vox_Det_Machine(void)
if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200msһ
{
#ifdef VOX_TX
+
#if JIELI
+
HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //ֶָͨ
+
#elif ZHONGKE
+
HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //ֶָͨ
+
+#elif XUANHENG
+
+ HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN);
+
#endif
+
#endif
}
else
if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200msһ
{
#ifdef VOX_TX
+
#if JIELI
+
HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //Ҷֶָͨ
-#elif ZHONGKE
- HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //Ҷֶָͨ
-#endif
+#elif ZHONGKE
+
+ HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //Ҷֶָͨ
+
+#elif XUANHENG
+
+ HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN);
+
#endif
+
+#endif
}
Vox_TX_Timer++;
@@ -742,24 +802,41 @@ void Vox_Det_Machine(void)
#ifdef VOX_TX
#if JIELI
+
HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //ֶָͨ
+
#elif ZHONGKE
- HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //ֶָͨ
+
+ HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //ֶָͨ
+
+#elif XUANHENG
+
+ HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN);
+
#endif
-#endif
+#endif
}
else
if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200msһ
{
#ifdef VOX_TX
+
#if JIELI
HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //Ҷֶָͨ
+
#elif ZHONGKE
- HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //Ҷֶָͨ
+
+ HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //Ҷֶָͨ
+
+#elif XUANHENG
+
+ HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN);
+
+#endif
+
#endif
-#endif
}
Vox_Output_Debounce++;
@@ -827,7 +904,7 @@ void Vox_Det_Machine(void)
#endif
Vox_Chg_Full_Flag = 1;
- Vox_Output_Debounce = 0;
+ Vox_Output_Cnt = 0;
Vox_Voltage_Hold_Timer = 0;
@@ -847,23 +924,43 @@ void Vox_Det_Machine(void)
}
else
{
- if( Vox_Output_Debounce <= Vox_COM_MSG_Tim )
+ if( Vox_Output_Cnt <= Vox_COM_MSG_Tim )
{
- if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200msһ
+ if( (Vox_Output_Cnt % Vox_TX_Interval_2) == 0 ) //200msһ
{
#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //ֶָͨ
+
+#if XUANHENG
+
+ HandleTxCommand(CMD_SHUT_DOWN,VOL_CHAN); //ػֶָͨ
+
+#else
+
+ HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //ػֶָͨ
+
+#endif
+
#endif
}
else
- if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200msһ
+ if( (Vox_Output_Cnt % Vox_TX_Interval) == 0 ) //200msһ
{
#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //Ҷֶָͨ
+
+#if XUANHENG
+
+ HandleTxCommand(CMD_SHUT_DOWN,VOR_CHAN); //Ҷػֶָͨ
+
+#else
+
+ HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //Ҷػֶָͨ
+
+#endif
+
#endif
}
- Vox_Output_Debounce++;
+ Vox_Output_Cnt++;
}
else
{
@@ -1413,6 +1510,57 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
#endif
+#if XUANHENG
+
+ /*
+ *******************************************************************************
+ * u16 CalCheckCrc16(u8 * pucFrame, u16 usLen)
+ *
+ * Description : У͵ļ
+ *
+ *
+ * Arguments : u8 *pucFrame: ݴŵַ
+ u16 usLen: ݳ, byteΪλ
+
+ * Returns :
+ *
+ * Notes :
+ *
+ *******************************************************************************
+ */
+
+ uint16_t CalCheckCrc16(uint8_t *pucFrame, unsigned int usLen)
+{
+ uint16_t wCRCin = 0x0000;
+ uint16_t wCPoly = 0x1021;
+ uint8_t wChar = 0;
+ unsigned int i;
+
+ while (usLen--)
+ {
+
+ wChar = *(pucFrame++);
+
+ wCRCin ^= (wChar << 8);
+
+ for(i = 0;i < 8;i++)
+ {
+ if(wCRCin & 0x8000)
+ {
+ wCRCin = (wCRCin << 1) ^ wCPoly;
+ }
+ else
+ {
+ wCRCin = wCRCin << 1;
+ }
+ }
+ }
+
+ return (wCRCin);
+}
+
+#else
+
/*
*******************************************************************************
* uint8_t Crc8Maxim(u8 *buf, u8 length)
@@ -1450,6 +1598,8 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
}
return crc;
}
+
+#endif
#ifdef VOX_TX
/*
@@ -1472,7 +1622,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
*/
void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
{
- uint8_t dataLen = 0;
+ uint16_t dataLen = 0;
uint8_t tx_pData[COM0_Data_Lenth] = 0;
uint8_t i = 0;
@@ -1667,7 +1817,165 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
tx_pData[dataLen] = Crc8Maxim(tx_pData,dataLen);
+#elif XUANHENG
+
+ uint16_t Checksum = 0;
+
+ /*ݰͷ*/
+ tx_pData[0] = BOXHEADER;
+ /*ͨ*/
+
+ tx_pData[1] = nVox_Chn_Select; /*䷽Bit0-3նˣBit4-7Ͷ
+ 1˫
+ 2
+ 3PC/װ
+ 4
+ 5Ҷ
+ */
+ /*ָ*/
+ tx_pData[2] = TxCommand;
+ tx_pData[3] = TxCommand >> 8; /*Сģʽֽǰ
+ Bit0-7
+ Bit8-14Ԥ
+ Bit15:
+ 0:REQ
+ 1:ACK
+ */
+ tx_pData[4] = CoverStatus; //غ״̬
+
+ switch(TxCommand)
+ {
+ case CMD_TWS_GET_BTADDR: //ȡMACַ
+ /*Data Length*/
+ tx_pData[5] = 0x00; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+#ifdef VOX_RX
+ for(i=0;i<6;i++)
+ {
+ BES_Addr[i] = 0; //屾ضַ
+ }
+#endif
+ break;
+
+ case CMD_TWS_SET_BTADDR:
+ /*Data Length*/
+ tx_pData[5] = 0x0E; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+#ifdef VOX_RX
+ for(i=0;i<6;i++)
+ {
+ tx_pData[7+i] = BES_Addr[i]; //Ͷַ
+ }
+#endif
+ for(i=0;i<8;i++)
+ {
+ tx_pData[13+i] = Random_Data[i]; //
+ }
+
+ break;
+
+ case CMD_SHUT_DOWN:
+ /*Data Length*/
+ tx_pData[5] = 0x01; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+
+ tx_pData[7] = gShip_Mode_Flag; //ģʽ0ػ1ģʽ
+
+ break;
+
+ case CMD_PAIRING_IMD: //ִTWS
+ /*Data Length*/
+ tx_pData[5] = 0x00; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+
+ break;
+
+ case CMD_CLEAR_PAIR:
+ /*Data Length*/
+ tx_pData[5] = 0x00; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+ break;
+
+ case CMD_HEARTBEAT:
+ /*Data Length*/
+ tx_pData[5] = 0x05; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+ /*
+ data壺
+ 1D0D12Bytesɳеİ汾ϢD0ĸ4bitΪӲPCBA汾ţD04bitD1ɳ汾š
+ 2D21Byteɳеͳ״̬D2bit7ΪǷPG룻D2ĵ7λʾеϢΧ0-100;
+ 3D31ByteɶԶϢЭеSideϢҶϢ
+ 4D41ByteĬĬϷ0x00
+ */
+ tx_pData[7] = HW_VER << 4;
+ tx_pData[7] = FW_VER >> 8;
+ tx_pData[8] = FW_VER;
+
+ tx_pData[9] = ( ( ChgStatus & CHG_STA_ING ) << 6 ) | bat_level;
+
+ if(nVox_Chn_Select == VOL_CHAN)
+ {
+ tx_pData[10] = Bes_Bet_Level[0];
+ }
+ else
+ if(nVox_Chn_Select == VOR_CHAN)
+ {
+ tx_pData[10] = Bes_Bet_Level[1];
+ }
+
+ tx_pData[11] = 0x00;
+
+ break;
+
+ case CMD_SN: //SNϳֶηͣD0ʾڼλʼͣһι̶9BytesһSNݲ9BytesIJ00xff
+ /*Data Length*/
+ tx_pData[5] = 0x0A; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+
+ tx_pData[7] = SN_Num_Start;
+
+ for(i=0;i<9;i++)
+ {
+ if( (SN_Num_Start + i) > 22 )
+ {
+ tx_pData[8+i] = 0xFF;
+ }
+ else
+ {
+ tx_pData[8+i] = SN_Num[ SN_Num_Start + i ]; //
+ }
+ }
+
+ SN_Num_Start += 9;
+
+ break;
+
+ case CMD_GET_INTO_PAIR:
+ /*Data Length*/
+ tx_pData[5] = 0x01; //Сģʽλǰ2Bytes
+ tx_pData[6] = 0x00;
+
+ tx_pData[7] = 0x01; //01״̬
+ break;
+
+ case BES_RESET: //λpatten
+
+ return;
+
+ default:
+ break;
+ }
+
+ dataLen = (uint16_t)( tx_pData[5] | ( tx_pData[6] << 8 ) ) + 7;
+
+ Checksum = CalCheckCrc16( tx_pData, dataLen ); //
+
+ tx_pData[ dataLen ] = Checksum;
+
+ tx_pData[ ++dataLen ] = Checksum >> 8;
+
#endif
+
/* vorvolʹuart1зʱͨѶTXģʽ*/
VOX_EN_Type( VOX_COMM_Mode_Uart );
@@ -1844,6 +2152,137 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand)
break;
}
+#elif XUANHENG
+
+ uint8_t CMD_Type = 0;
+
+ CMD_Type = RX1_Buffer[1] >> 4;
+ if( CMD_Type & TWS_PC ) //PC/װ->
+ {
+
+ }
+ else //->
+ {
+ switch(RxCommand)
+ {
+ case CMD_TWS_GET_BTADDR:
+
+ for(i=0;i> 7; //ȡǷ
+
+ Vox_Pairing_State[VOL_TYPE] = RX1_Buffer[10]; //ȡ״̬
+
+ Tws_Paired_Record[VOL_TYPE] = RX1_Buffer[11] & 0x01; //bit0:0TWSԼ¼1ûTWSԼ¼bit1:0ֻԼ¼1ûкֻԼ¼
+
+ Phone_Paired_Record[VOL_TYPE] = ( RX1_Buffer[11] >> 1 ) & 0x01;
+
+ Bes_OTA_State[VOL_TYPE] = RX1_Buffer[12];
+ }
+ else
+ {
+ Bes_Bet_Level[VOR_TYPE] = RX1_Buffer[9] & 0x7F;
+
+ Bes_Chg_Full[VOR_TYPE] = RX1_Buffer[9] >> 7;
+
+ Vox_Pairing_State[VOR_TYPE] = RX1_Buffer[10];
+
+ Tws_Paired_Record[VOR_TYPE] = RX1_Buffer[11] & 0x01;
+
+ Phone_Paired_Record[VOR_TYPE] = (RX1_Buffer[11] >> 1) & 0x01;
+
+ Bes_OTA_State[VOR_TYPE] = RX1_Buffer[12];
+ }
+
+ break;
+
+ case CMD_SN:
+
+ if( CMD_Type == TWS_VOL ) //ݶSide
+ {
+ Bes_Set_SN_State[VOL_TYPE] = RX1_Buffer[7]; //SNдǷɹ״̬־
+ }
+ else
+ {
+ Bes_Set_SN_State[VOR_TYPE] = RX1_Buffer[7]; //ҶSNдǷɹ״̬־
+ }
+
+ break;
+
+ case CMD_GET_INTO_PAIR:
+ if( CMD_Type == TWS_VOL ) //ݶSide
+ {
+ Bes_In_Pair_State[VOL_TYPE] = RX1_Buffer[7]; //Ƿ״̬ɹ״̬־
+ }
+ else
+ {
+ Bes_In_Pair_State[VOR_TYPE] = RX1_Buffer[7]; //ҶǷ״̬ɹ״̬־
+ }
+
+ break;
+ case CMD_PAIRING_IMD:
+ if( CMD_Type == TWS_VOL ) //ݶSide
+ {
+ Bes_In_Pair_State[VOL_TYPE] = 1; //Ƿ״̬ɹ״̬־
+ }
+ else
+ {
+ Bes_In_Pair_State[VOR_TYPE] = 1; //ҶǷ״̬ɹ״̬־
+ }
+
+ break;
+ default:
+ break;
+ }
+ }
+
+
#endif
}
@@ -1865,9 +2304,11 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand)
void HandleVoxCommMsg(void)
{
- uint8_t CrcCheckSum = 0;
+ uint16_t CrcCheckSum = 0;
uint8_t i = 0;
-
+#if XUANHENG
+ uint16_t Data_Len = 0;
+#endif
/*RXݴ*/
if( Uart1_RX_Finish_Flag )
{
@@ -1888,10 +2329,26 @@ void HandleVoxCommMsg(void)
CrcCheckSum = Crc8Maxim( RX1_Buffer, RX1_Buffer[4] + 5 );
if( CrcCheckSum == RX1_Buffer[ RX1_Buffer[4] + 5 ] )
-
+
+#elif XUANHENG
+
+ Data_Len = RX1_Buffer[5] | ( RX1_Buffer[6] << 8 ) + 7;
+
+ CrcCheckSum = CalCheckCrc16( RX1_Buffer, Data_Len); //
+
+ if( CrcCheckSum == (uint16_t)(RX1_Buffer[ Data_Len + 1 ] | RX1_Buffer[ Data_Len + 2 ] << 8) ) //УСģʽλǰ
+
#endif
{
- HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[3]);
+#if XUANHENG
+
+ HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[2]);
+
+#else
+
+ HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[3]);
+
+#endif
}
else
{