更改内容:1、优化RAM内存,将全局变量均定义为xdata,保证足够的idata容量;2、将bit变量置为TRUE或FALSE,优化程序可读性;3、增加Vox ADT识别充电功能;4、优化跟随充功能;

This commit is contained in:
Alex xu 2025-02-13 11:48:29 +08:00
parent 30111f86c1
commit 98f7532db8
41 changed files with 2372 additions and 1475 deletions

Binary file not shown.

View File

@ -1,921 +0,0 @@
:03000000022924AE
:1029240075FE7275FF00758E009000007F007E03B7
:0D293400E4F0A3DFFCDEFA75815C02297C73
:1033090053797374656D20496E69742E5665723AE6
:0C3319002532782532782532780D0A0024
:10308400122F407BFF7A33790990009FE4F0A30468
:10309400F0A3E4F0A304F0A3E4F0A37402F0120F8D
:0D30A40058D2AED2BE122C4D122EBF80F4B9
:10000E007857E6FE08E6780222F608EFF6C3EE64AD
:04001E008094802228
:1032EC0075FE3175FF8175FE0E43FF107DAC7F308E
:0D32FC001234E475FE5990010CE5FFF0223C
:10281500900099EFF0E5A420E00302291875A401C2
:102825007F351234EB7857760008A6077F361234C9
:10283500EBEF5403785746F608E6F6900099E04426
:1028450008FD7F3112310A90010CE0FF3395E0FE5F
:10285500C37858E69FFF18E69EFE3395E0FDFCE43D
:102865007BC47A09F9F81214C5780A121525785728
:10287500EE1200175005E418F608F690010EE01266
:10288500156228A30028B20128BB0228CE0328DC44
:102895000428EA0528F80629070700002918120068
:1028A5000ECEA2E713CE13D8F8794A80627858E69F
:1028B50025E0795C80447857E6FE08E67803C33363
:1028C500CE33CED8F97950804612000EC333CE33BD
:1028D500CED8F9795A803812000EC333CE33CED80C
:1028E500F97954802A12000EC333CE33CED8F97944
:1028F50052801C7858E625E0794CF718E63319F72D
:10290500801112000ECEA2E713CE13D8F8794EF738
:0F291500EE19F7900099E090010EF075A3812262
:102DA800E5A430E14075A4027F371234EB785576FC
:102DB8000008A6077F381234EBEF5403785546FE17
:102DC80008E6FF18EEF608EFF6FF90010CE0FD3379
:102DD80095E0FCC3EF9DFFEE9CFE1812001750050E
:092DE800E418F608F675A3822236
:10343000780D7603E4780FF67811F6187603781293
:03344000760422ED
:10233700E4FE7855E6FC08E6FDC394E8EC94034018
:10234700037F0022EF700302244FD3ED940FEC9428
:1023570003400302242DED94CBEC94005003022498
:102367002DD3ED94AAEC94024022D21F780DE6FFFC
:10237700137810F6302011D3ED94BFEC940240048B
:10238700C22080047810A607E4FE8070D3ED94AADB
:10239700EC94025043ED9437EC9401403BD2207803
:1023A7000DE6FF7810F6301F13D3ED9493EC9402EB
:1023B7005004C21F8006EFC3137810F67812760414
:1023C700301A11D3ED9451EC94015004C21A8004D1
:1023D70078127601E4FE8024D3ED9437EC94015013
:1023E7001BD21A78127601302010ED9426EC940156
:1023F7005004C220800478127604E4FE301D11C315
:10240700ED94F3EC94025006C21DE4FE80027E01B7
:10241700301E2FD3ED94DDEC94004006C21EE4FE7F
:1024270080207E01801CD3ED940FEC94034006D2EC
:102437001D7E01800DD3ED94CBEC94005004D21E89
:102447007E01C21BC21C8058C21DC21ED3ED949FC1
:10245700EC94035031ED9471EC94004029301B103B
:10246700ED9484EC94035006C21BE4FE80027E01C7
:10247700301C2DD3ED9482EC94004006C21CE4FE80
:10248700801E7E01801AD3ED949FEC94034004D202
:102497001B800BC3ED9471EC94005002D21C7E019B
:0224A700AF067E
:0124A9002210
:102A5600900109E05463600AE4FF1231EDE4780E58
:102A6600F6227F01122337EF600CE4FF1231EDD21C
:102A760021780E760122C22190010AE05407FFBF99
:102A86000605780E7603227810E6FD7F2212310ABB
:102A96007812E6FD7F2112310A780FE6C454F078E9
:102AA6001146FD7F2312310A7F011231ED7814E6BB
:102AB600FFD394014002C23CEFD394034002C238D4
:102AC600EFD394074002C23AEFD3940C4002C239C6
:0D2AD600EFD394114002C23B780E7602222D
:102CB600C23E900109E020E65130E203D23F2230C5
:102CC6003C04E4FF8011900109E030E50D30233A21
:102CD6007F3C12338F7F0102320FE4FF122337EF5E
:102CE6006008E4FF12320FD23D22C23DD23E303F91
:102CF60019780EE6B40213C3785CE6941018E694CD
:0B2D06000E4005D23EC23F22C23E221A
:1033A900426F78204F70656E2E0D0A00426F7820AB
:0933B900436C6F73652E0D0A00D0
:102D5D00E4900099F090010AE0FF5420FE90009954
:102D6D00F0900110E06E6032EF30E50E90010F74BF
:102D7D0001F07BFF7A3379A9800BE490010FF07B92
:102D8D00FF7A3379B5120F58D245C20ED22ED230FA
:0A2D9D00900099E0900110F0D2437D
:012DA7002209
:1026FB00737570706572206C6F6E67203873207005
:10270B00726573732E286C696E653A2564290D0A00
:10271B00004B6579206C696674286C696E653A2587
:10272B0064292E0D0A00426F6F7374204F70656E13
:10273B00204B65792E286C696E653A2564290D0A44
:10274B00006C6F6E672032732070726573730D0AA5
:10275B000073686F72742070726573730D0A004B8F
:10276B006579205061697220545820564F52286C5D
:10277B00696E653A2564292E0D0A004B6579205048
:10278B006169722054696D654F7574286C696E654B
:10279B003A2564292E0D0A004B6579205061697228
:1027AB002047657420564F52286C696E653A256434
:1027BB00292E0D0A004B65792050616972204765FF
:1027CB007420564F4C286C696E653A2564292E0D82
:1027DB000A004B6579205061697220545820564F7E
:1027EB004C286C696E653A2564292E0D0A004B65E1
:1027FB0079205061697220436E743A25642E286CDF
:0A280B00696E653A2564290D0A0084
:103443007BFF90009FE4F0A3227BFF90009F740119
:03345300F0A322C1
:101B570090010AE030E4449000F8E475F0011214B3
:101B67004AC39000F9E094409000F8E094014011D6
:101B7700D2367A2679FB1234437470F0120F5880EC
:101B870014C39000F9E094509000F8E094004005E9
:101B9700203502D235D232C233804D303243D24360
:101BA700E47817F6C232D2339000FAF09000F8E0EA
:101BB700FEA3E0FFD39414EE94005008D231D23440
:101BC700D230800EC3EF94C8EE9400500530350232
:101BD700D237C2357A27791C12344374A6F0120F14
:101BE70058E49000F8F0A3F0303377303E74303784
:101BF7002D200E08121D8874B9021D3F121DAE500C
:101C070003021D74C23778177602E49000F7F0904C
:101C17000068F0A3F07BFF7A27794C120F58303613
:101C27002F200E08121D8874E2021D3F121DAE50B0
:101C370003021D74C236E49000FBF0781776037B2D
:101C4700FF7A2679FB90009FF0A374F7F0120F58E4
:101C570030340BC2347BFF7A27795C120F58C233BA
:101C6700C20E90010FE064016003021D877817E63A
:101C770064026003021D489000F7E0C39401501608
:101C87007F02121DA17BFF7A27796A90009F04F0DB
:101C9700A37421021D129000F6E0D394054010E4CE
:101CA700121DBB7A27798612344C7437021D3F9078
:101CB7000068E0B4011D7D227F031225DA900068D9
:101CC7007402F07BFF7A2779A390009F14F0A37426
:101CD7004D8038900068E064027034A3E0601A7F9A
:101CE70003121DA19000F7F09000F6121DBB7A2792
:101CF70079C012344C746E803F7D227F021225DA40
:101D07007BFF7A2779DD12344E747EF0120F5890DC
:101D170000F7E0D3941440249000F6E004F0E4A325
:101D2700F07BFF7A2779F99000F6E0FF123445EF50
:101D3700F0A37401F0A3748CF0020F589000F780A1
:101D47002C7817E6640370389000FBE0FFC39464B7
:101D5700501FEF540770047D22800A9000FBE05467
:101D67000370077D117F041225DA9000FBE004F071
:101D770022E47817F6D20F9000FBF07F04122B6055
:101D8700227F3C12338F7F0112320FD20E7BFF7AF4
:101D970027793190009FE4F0A3227D111225DAE420
:101DA700900068F0A3F0227F03122B609000FAE006
:101DB700D3941422F07817F6D20F7F04122B6022E7
:102BDA00900099E0FF25E02479F582E43400F5833A
:102BEA0022900099E0FF25E02481F582E43400F583
:102BFA0083E0FCA3E0FDEF25E02491F582E43400B4
:102C0A00F5832274712FF582E43400F58322E4F00F
:102C1A00A3F0EF25E02489F582E43400F5832290BD
:102C2A000099E0FF2475F582E43400F58322E0FE82
:102C3A00A3E0C39DEE9C2225E02481F582E43400C2
:032C4A00F58322ED
:1030DE0075FE0B75FF0F75FE1375FF0F75FE0C75E4
:1030EE00FF55E490006FF090006EF0900070F0903D
:0C30FE00006DF0C290C291C293C29222F9
:10335B00EF14600D14600D14600D2403700BD290EC
:0A336B0022D29122D29222D29322A4
:05325300900099E0FF6E
:10325800EF14600D14600D14600D2403700BC29000
:0A32680022C29122C29222C29322D8
:10302700E4FF122C0DE4F074752F122C30E4F0EF4E
:10303700122BDFE4F0A3F0EF122C41122C18E4F06E
:0E304700A3F0122C00E4F0A3F00FEFB404D4B9
:013055002258
:102F0100AC0774712C122C10EDF0EAC313FEEB1315
:102F1100FFEC122BDFEEF0A3EFF0AF03EC122C412C
:102F2100EAF0A3EFF090009EE0FEA3E0FFEC122C8C
:0F2F31001DEEF0A3EFF0EC122C01E4F0A3F02260
:10327200122C0DEDF074752F122C30EBF0EF122B97
:0F328200DFE4F0A37469F0122C00E4F0A3F02253
:101DC700E4900099F0F0900099E0FFC39404400379
:101DD700021FBC122C0DE0601F24FE6021146078E6
:101DE700147003021E9024036003021F6B90009976
:101DF700E0FF12335B021F6B123253021F6B122B71
:101E0700DA122BFB122C38500512335B8003123287
:101E170053122BEB122C385003021F6B900099E0E2
:101E2700122C01122C18E0FEA3E0D39400EE9400CC
:101E3700400E900099E0122C1D74FFF5F012144A21
:101E4700900099E0FF122C1DE0FCA3E04C60030218
:101E57001F6B74712F021EA1122BDA122BFBE0FEEF
:101E6700A3E0D39DEE9C500512335B8003123253DF
:101E7700122BEB122C385003021F6B900099E012C3
:101E87002C01E4F0A3F0021F6B122C29E07013124F
:101E970033D9C246900099E02471122C10E4F00265
:101EA7001F6B122C29E0FE6402702E20460CD246CE
:101EB700EF122BDFE4F0A37469F0122BDAE475F06C
:101EC7000112144AEF122BDFE0FCA3E0C394FEECEF
:101ED70094005003021F628031EE64017037204680
:101EE7000FD246900099E0122BDFE4F0A374FEF0C6
:101EF700122BDA74FFF5F012144AEF122BDFE0FE13
:101F0700A3E0D39469EE94005051900099E0122C0D
:101F17002EE4F08046122C29E06403703EEF122B6A
:101F2700DFE0FEA3E0FFC394FEEE94004004D24638
:101F3700800BD3EF946AEE94005002C2469000994A
:101F4700E025E02479304609122BE374FFF5F08091
:101F570007122BE3E475F00112144A122BDAA3E0FF
:101F6700FD122DF1900099E0FF700A122C0DE09000
:101F7700006FF08037900099E0B4010C2471122CA7
:101F870010E090006EF08024900099E0B4020C24D9
:101F970071122C10E0900070F08011900099E0B45D
:101FA700030A2471122C10E090006DF0900099E064
:101FB70004F0021DCDE4900099F0900099E0FFC372
:101FC70094045012122C00E475F00112144A900088
:061FD70099E004F080E433
:011FDD0022E1
:10337500D2AC759A03D2BCD2BDD2A9D2AB75FE31FF
:0A33850075FF8175FE3043FF8022C2
:10329100C2ACE4F59AC2BCC2BDC2A9C2AB75FE31D3
:0F32A10053FF7E75FE3053FF7FFD7F3102310AF0
:10305600304421302627C226900102E004F0E0C366
:1030660094054019E4A3F07DAA7F4F12310AE4903B
:0E3076000102F02212329143870212337522BA
:10341C00780EE6D394015006201003304304C243C7
:04342C00C322D322C2
:102F4000123325123468123495E4F5861230B1122A
:102F500032EC7D087F761234E4D2A8D2AF1234303E
:102F60007D697F031234061230DE1230271234A33B
:0D2F7000900106740FF09000FF7401F02234
:030003000234F2D2
:0634F200D24375E20F3227
:0B34BE00E0FF04F074292FF8A699220B
:1033250075FE0443FF0CD2DF43878075BA0375AA87
:0B333500DC759852D299D298D2AC22DD
:062E37009000BD121559C8
:102E3D00E49000C0F075FE0443FF0C75FE0353FFD4
:102E4D00F3F09000C0E0C39FE49E501C2040FDD2E3
:102E5D00409000BDE475F001121542121348F5992A
:0E2E6D009000C0E004F080DA75FE0453FFF31D
:012E7B002234
:030023000229C1EE
:1029C100C0E0C083C082C0D075D000C000C005C0C7
:1029D10006C007309904C299C240309867C298D2A4
:1029E10043900111E014601914602D24027055E523
:1029F10099900111B455087401F0A3E4F0800E80A0
:102A010011E599900111B4AA097402F0A31234BE20
:102A11008032E4F0A3F0802C9001121234BE782DA4
:102A2100E62406FFE433FEE0FDC39FEE6480F87404
:102A310080985005ED9420400B900112E4F0900134
:102A410011F0D242D007D006D005D000D0D0D0822C
:052A5100D083D0E0324B
:0E3487009000C4EFF01234D49000C4E0FF2295
:1034680075F10A759F03759EFD759692759A0222ED
:0834D4002041FDD2418F972237
:03008B000233C27B
:1033C200C0E0E59630E1055396FDC241E59630E056
:0733D200035396FED0E03228
:1024AA00506F776572204F6E2053746174652148AE
:1024BA00616C6C28307825782920286C696E653A19
:1024CA002564290D0A004177616B65205374617494
:1024DA006520286C696E653A2564290D0A004E6FDD
:1024EA00726D616C20537461746520286C696E6525
:1024FA003A2564290D0A00536C656570205374618E
:10250A00746520286C696E653A2564290D0A0053A2
:10251A005441303A307825782C535441313A307846
:10252A0025782C535441323A307825782C436869FF
:10253A00705F5354413A307825782C564F585F5380
:10254A0054413A307825782E4465635F536C65654B
:10255A00703A25640D0A00566E74633A25642C4954
:10256A00766F6C3A25642C566261743A25642C564F
:10257A00696E3A25642C56706D69643A25642C5646
:10258A006F723A25642C566F6C3A25642C56646433
:10259A003A25642C49766F723A25642E0D0A004456
:1025AA0065636E745F536C65657044656C61792010
:1025BA0052656C6F61642E0D0A00456E7465722057
:1025CA005374616E646279204D6F6465210D0A004F
:062FF2004300FF0402028F
:102FBA00E6FF08A3E6CFF0A3EFF0227BFFE0900044
:102FCA009FFFE4F0A3EFF02290009EE4F0A37403C5
:102FDA00F07B647A007D02227BFF90009FE4F0A3DD
:082FEA0022FFE4F0A3EFF02246
:1033F00090010DE0FF04F012281590010DE0C39438
:06340000084002E4F02286
:1032B000122D5D121B57122D11302211C222122A1B
:0E32C00056122CB6122AE31218861215882216
:090082007B017A017907020026D6
:10219A00E4900099F09000FFE0FFA3E0FE6F606C0E
:1021AA00A3EEF09000FFE0A3F024FE602F14603C41
:1021BA0014604A24036003022336122FD2E4FF126A
:1021CA002F01122FD27F01122F017A2479AA9001AE
:1021DA000F122FC5A3E4F0A374BB802C7F01123227
:1021EA00317A2479D0122FE274C7801C90010674C8
:1021FA000FF07A2479E8122FE274D4800B7BFF7AED
:10220A00257901122FE474DFF0022301900100E026
:10221A0024FE603914603D147003022319240360FC
:10222A00030223369000FCE004F0E0C39408500354
:10223A000223369000FF7402F0E49000FCF0781458
:10224A00E660030223369000FF7404F0229000FF38
:10225A007403F022202603022336C2267A2579192E
:10226A00900107122FC5900108E09000A1122FCB10
:10227A00900109E09000A3122FEB90010AE0900070
:10228A00A5122FEB90010BE0FF9000A7E4F0A3EF5B
:10229A00F0900106E0FF9000A9E4F0A3EFF0120F1E
:1022AA00587BFF7A2579617855E6FF0890009F12DE
:1022BA002FBE7849122FBA785B122FBA784F122F95
:1022CA00BA7859122FBA7853122FBA7851122FBAF4
:1022DA00784B122FBA784D122FBA120F5890010666
:1022EA00E0D394004014E014F0304340C243740F2A
:1022FA00F07BFF7A2579A9020F587BFF7A2579C4EA
:10230A00120F589000FF7404F0E4900102F02212B8
:10231A00341C50127F04122B60E4FF12320FE4FFC8
:0C232A001232310230569000FF7402F0B5
:012336002284
:102EBF00302536C2259000FDE0FF04F0EF146012BC
:102ECF001460141460161460182404701C1233F06C
:102EDF0080171200828012122DA8800D1232B0803E
:102EEF000812219AE49000FDF0302705C227121D29
:022EFF00C722E8
:10008E00426F6F7374204F70656E2E286C696E65AB
:10009E003A2564290D0A00426F7820436C6F736510
:1000AE002E286C696E653A2564290D0A00426F7818
:1000BE00204F70656E2E286C696E653A2564290D89
:1000CE000A004F70656E2F436C6F736520426F7818
:1000DE002C45617270686F6E657320496E20426F99
:1000EE0078284E756D3A25642928566F78537461B9
:1000FE003A30782578292E0D0A004F70656E204211
:10010E006F7820434D44205458204F7665722E0D43
:10011E000A004F70656E20426F7820416E64204554
:10012E00617270686F6E6520476574496E284E75F2
:10013E006D3A25642928566F785374613A307825C4
:10014E0078292E0D0A00436C6F736520426F78205C
:10015E00416E6420466F72636520566F6C746167E2
:10016E00652055702E0D0A2000564F5820566F757B
:10017E007420355628564F585F5354413A307825DF
:10018E00782C6C696E653A2564292E0D0A00564F3F
:10019E0058204348472046756C6C2E0D0A00564F6A
:1001AE00582047657420496E746F20536C656570D6
:1001BE002E0D0A00466F6C6C6F772043484720491E
:1001CE006E697453746120536574204D61782056A6
:1001DE00706D69642E28566F785F7374613A30784B
:1001EE00257829286C696E653A2564290D0A004622
:1001FE006F6C6C6F772043484720496E6974537457
:10020E00612E28566F785F7374613A30782578299D
:10021E00286C696E653A2564290D0A00466F6C6C70
:10022E006F772043484720537461312C4E6F204521
:10023E00617250686F6E6520496E20426F782E286D
:10024E006C696E653A2564290D0A00466F6C6C6FF9
:10025E00772043484720537461312C564F52204328
:10026E006867696E672849766F723A25646D412911
:10027E002E286C696E653A2564290D0A00466F6C4E
:10028E006C6F772043484720537461312C564F4C86
:10029E0020436867696E672849766F6C3A25646DEE
:1002AE0041292E286C696E653A2564290D0A00468F
:1002BE006F6C6C6F772043484720537461322C4724
:1002CE0065742049564F523A25646D412E286C694B
:1002DE006E653A2564290D0A00466F6C6C6F7720A7
:1002EE0043484720537461322C4765742049564F5A
:1002FE004C3A25646D412E286C696E653A25642949
:10030E000D0A00466F6C6C6F77204348472053747C
:10031E0061332C564F5820436867205265496E69E9
:10032E00742E286C696E653A2564290D0A00466F95
:10033E006C6C6F77204348472053746133284356C3
:10034E00292C564F522056706D69642041646453B7
:10035E0074612849766F723A25646D41292E286C96
:10036E00696E653A2564290D0A00466F6C6C6F77CD
:10037E00204348472053746133284356292C564F47
:10038E00522056706D69642053756253746128490A
:10039E00766F723A25646D41292E286C696E653A26
:1003AE002564290D0A00466F6C6C6F772043484711
:1003BE002053746133284343292C564F52205670D4
:1003CE006D6964205375625374612849766F723A71
:1003DE0025646D41292E286C696E653A2564290DB8
:1003EE000A00466F6C6C6F77204348472053746148
:1003FE0033284343292C564F522056706D69642082
:10040E004164645374612849766F723A25646D4174
:10041E00292E286C696E653A2564290D0A00466FEF
:10042E006C6C6F77204348472053746133284356D2
:10043E00292C564F4C2056706D69642041646453CC
:10044E0074612849766F6C3A25646D41292E286CAB
:10045E00696E653A2564290D0A00466F6C6C6F77DC
:10046E00204348472053746133284356292C564F56
:10047E004C2056706D69642053756253746128491F
:10048E00766F6C3A25646D41292E286C696E653A3B
:10049E002564290D0A00466F6C6C6F772043484720
:1004AE002053746133284343292C564F4C205670E9
:1004BE006D6964205375625374612849766F6C3A86
:1004CE0025646D41292E286C696E653A2564290DC7
:1004DE000A00466F6C6C6F77204348472053746157
:1004EE0033284343292C564F4C2056706D69642097
:1004FE004164645374612849766F6C3A25646D418A
:10050E00292E286C696E653A2564290D0A00466FFE
:10051E006C6C6F772043484720537461342C564FD0
:10052E00782056706D696420416464537461285656
:10053E006F75743A307825782C49766F6C3A25644D
:10054E006D412C49766F723A25646D4129286C698C
:10055E006E653A2564292E0D0A00466F6C6C6F7716
:10056E002043484720537461342C564F78204368FB
:10057E00696E6728566F75743A307825782C4976EF
:10058E006F6C3A25646D412C49766F723A25646D15
:10059E004129286C696E653A2564292E0D0A00469C
:1005AE006F6C6C6F772043484720537461342C5620
:1005BE004F522056706D69642041646453746128F3
:1005CE00566F75743A307825782C49766F723A25C5
:1005DE00646D4129286C696E653A2564292E0D0AD1
:1005EE0000466F6C6C6F772043484720537461341C
:1005FE002C564F52204368696E6728566F75743AB1
:10060E00307825782C49766F723A25646D41292809
:10061E006C696E653A2564292E0D0A00466F6C6C66
:10062E006F772043484720537461342C564F4C202B
:10063E0056706D69642041646453746128566F75F9
:10064E00743A307825782C49766F6C3A25646D4172
:10065E0029286C696E653A2564292E0D0A00466FAD
:10066E006C6C6F772043484720537461342C564F7F
:10067E004C204368696E6728566F75743A3078253A
:10068E00782C49766F6C3A25646D4129286C696E19
:10069E00653A2564292E0D0A00466F6C6C6F772023
:1006AE00434847205375625374612C564F4C2F5656
:1006BE004F52286C696E653A2564292E0D0A004644
:1006CE006F6C6C6F7720434847205375625374618B
:1006DE002C564F52286C696E653A2564292E0D0AE8
:1006EE0000466F6C6C6F77204348472053756253FA
:1006FE0074612C564F4C286C696E653A2564292E10
:10070E000D0A00466F6C6C6F772043484720537577
:10071E00625374612C285354413A307825782C5604
:10072E00706D69643A3078257829286C696E653A5F
:10073E002564290D0A00466F6C6C6F77204348477D
:10074E00204164645374612C285354413A30782507
:10075E00782C56706D69643A3078257829286C6942
:10076E006E653A2564290D0A005258305F4275664F
:10077E006665725B305D3A307825782C5258305F62
:10078E004275666665725B315D3A307825782C521B
:10079E0058305F4275666665725B325D3A30782519
:1007AE00782C5258305F4275666665725B335D3ADF
:1007BE00307825782C5258305F4275666665725BCC
:1007CE00345D3A307825782C5258305F4275666623
:1007DE0065725B355D3A307825782C5258305F4221
:1007EE0075666665725B365D3A307825782C5258A0
:1007FE00305F4275666665725B375D3A3078257894
:10080E002C6C696E653A25640D0A0000000000002C
:10081E0000000000000000000000000000000000CA
:0B082E000000000000000000000000BF
:101FDE0090002674011213D3740290006BF09000DF
:101FEE0099021539900050121460FFE5F090009F91
:101FFE00F0EFA3F0A37404F0A322E6FFEEF0A3EF3C
:10200E00F008E6FFA3EEF0A3EFF008E6FFA3EEF074
:10201E00A3EFF008E6FFA3EEF0A3EFF02290001A74
:10202E0012136190009FFFE4F0A3EFF0229000489E
:10203E00121460900050FFAEF00214607849E6FF73
:10204E0008E6A3CFF0A3EFF0784DE6FF08E6A3CFA6
:10205E00229000261213D390001A0213617BFF9078
:10206E00009F7405F0A32290002E8FF0021498901A
:10207E000026121460FFAEF090002E021460FF9046
:10208E0000A1E4F0A3EFF0A37405F0A3227BFF9070
:10209E00009F7402F0A32290010BE0540CFBE4FAB3
:1020AE00F9F8900000E0FFE4FCFDFEC3021514EE0B
:1020BE008FF090005002149890004C121460D3FFD1
:1020CE00ED9FEC95F022900028021361900034E40D
:1020DE001213D3E49000230213D390001AEF1213BD
:1020EE00D390006B229000390213617BFF90009F0A
:1020FE007404F022E6FC08E6FD25E0FFEC338FF0D9
:10210E001214987BFF2290010BE0540C22E49000F5
:10211E0007F0A322EE8FF01214987D051213F5EF3F
:10212E0078022274019000370213D3C3FDACF09FE6
:10213E00EC9E22E4FCFDFEFAF9F8C3021514784D6C
:10214E00E6FE08E6FF2290010BE05410FFE4FCFDD2
:10215E00EF2274011213D37BFF22E0FF90009FE465
:10216E00F0A32290003FF0A3F090006BF0227BFFD3
:10217E0090010BE02290010BE05420FFE4FC229032
:0C218E000007E09400229000340213616E
:052B60009000BDEFF044
:102B6500E4A3F0A3F07F27122F7D9000BEEFF07F46
:102B750037122F7D9000BFEFF09000BDE024FD607F
:102B85001B14602424FE6028240570359000BFE0E6
:102B95004494F09000BEE04498F080259000BEE09B
:102BA5004406F054E7F080199000BFE054FD800919
:102BB5009000BFE04402F054FEF09000BEE054E106
:102BC500F09000BEE0FD7F2712310A9000BFE0FDC6
:052BD5007F3702310A08
:10158800900109E054186003D20D22C20D203E03D9
:1015980002185030456F200E1A1218797BFF7A0016
:1015A800798E90009F7401F0A374D7F0120F587FC2
:1015B800038065E4900003F0900001F0A3F0C200FE
:1015C800C201D20B90010FE07022C22FD202D203C7
:1015D800C205C208C204C209C20AD210C2471221F7
:1015E800717A0079A512209B74088011C202C20387
:1015F800D205C2067A0079BB12209B7415F0120F2F
:1016080058C20EC245900001E0C39405500302176A
:10161800DD300B07C20B7F04022B6020003BD20099
:10162800122114FF60147B0C1221419000437005B5
:101638007402F0800A7401F08005E4900043F07BA6
:10164800FF7A0079D0900043E012203190010BE03E
:101658009000A1122034120F582005030216FF90A3
:101668000002E0C39405500A7F06122B6090000226
:101678008027200144900003E0FFD39414501FEF0B
:10168800540370047D118009900003E020E0077D79
:10169800227F091225DA900003E004F080597F04C4
:1016A800122B60E4900003F0D201D20FC2107BFF2E
:1016B8007A017908120F58803E7817E67039300F92
:1016C80004C20F802B1220A5602D90010BE0FF545F
:1016D8000C6004D22FD2307BFF7A0179209000432E
:1016E800E0FD12216AEDF0A3E4F0A3EFF0120F5829
:1016F800122114900000F020020302184D30473BDD
:10170800200E16121879D210E4122171900001F0FF
:10171800C208D20BC200D204227F03122B607BFFC7
:101728007A017954120F58C20ED203900001E0D307
:10173800940350030217DDC247805020044D9000E7
:1017480002E0FFD39414501DEF540370047D118000
:1017580009900002E020E0077D227F081225DA9038
:1017680000020217DD900003E0FFD39414501CEF31
:10177800540370047D118009900003E020E0077D88
:10178800227F0A1225DA900003804A30031F7F0364
:10179800122B607A01797712217C122031A374030D
:1017A800F0A37438F0120F58C20302184D200857DE
:1017B80090010BE05430FF7B30122141600E122162
:1017C80014FFE4FCFDFEEF600330382A900001E0CE
:1017D800D394285004E004F0227BFF7A01799C120C
:1017E8000F58D208E4900004F0900001F0C2097F7D
:1017F80004122B60804F900040E070497B017A0012
:101808007923120839803E900004E0FFD3941450E5
:101818001FEF540370047D118009900004E020E05C
:10182800077D227F051225DA900004E004F0801578
:10183800200912D2097F04122B60C2107BFF7A01A3
:1018480079AC120F58C20722200711D2077F041261
:101858002B60C210122114900000F0221220A56003
:101868000F122114FF6004D22FD230900000EFF045
:0E187800227F3C12338F7F0112320FD20E22DC
:0608390090009912155910
:10083F0090006BE014700302091E1470030209E7A5
:10084F00147003020A51147003020C0C2404600389
:10085F00020D52121FEC90001D1213616003020D66
:10086F005290006CE0D3940A5035E004F090001AD7
:10087F00743C1213D3300C03020D52121FEC1220D2
:10088F0065FF12338F7A0179C212217C122031A3B6
:10089F007403F0A374D8F0120F58D20C020D52E467
:1008AF0090006CF0C20C121FECE412213390002662
:1008BF00E41213D31220DA900032E41213D3900013
:1008CF0021E41213D3900039E41213D3900028E4DB
:1008DF001213D3E4F5F01220C090002EE4F5F012BD
:1008EF001498900019E41213D390001B743C12203B
:1008FF00EC7401F012211BF07BFF7A0179FD90015E
:10090F000BE0122031A37403F0A374FF020AA59029
:10091F00010BE0FB5420FFE4FCFDFEEF6023EB54E2
:10092F0010FF601D121FEC90001D74011213D3E411
:10093F0090006BF07A02792A1220F9A3740E020A42
:10094F00A5122183EF703B12214C121FEC90004433
:10095F00122122C333CE33CED8F9FF121FEC9000F1
:10096F0048EE8FF0121498784D90004C1221027AB5
:10097F0002795990009FECF0ED122000741CF012D8
:10098F000F5812215470407849E6FE08E6FF121FF7
:10099F00EC900022122122C333CE33CED8F9FF12AE
:1009AF001FEC900026EE8FF0121498784990002AD1
:1009BF001221027A02798B90009FECF0A3ED1220A6
:1009CF00017429F0120F58121FEC90001C740112C1
:1009DF0020EC7402F0020D52D3900008E09405123F
:1009EF00218D5003020A5D12211BF0122183FDEFAE
:1009FF00701D12214C121FEC1220BD9000391221D4
:100A0F00607A0279BDEE121FFB7445F0120F581277
:100A1F00215470257849E6FE08E6FF121FECEE120E
:100A2F0020759000281221607A0279E790009FEEDE
:100A3F00121FFE744FF0120F5890006B7403F002E8
:100A4F000D52D3900008E0940212218D500AE475E4
:100A5F00F00112144A020D5212211B121FEB9000CB
:100A6F004C12203ED39FE5F09E5016121FEC9000C3
:100A7F002A12146090002E122044D39FE5F09E405E
:100A8F0019E4121FE890001CE41213D37A037911B2
:100A9F001220F9A37469F0020D4F121FEC1220F30C
:100AAF0064016003020B56900050121460D394142B
:100ABF00E5F09400504D90010BE030E529900037A0
:100ACF007401122062C3943C400A121FEC9000394B
:100ADF00E41213D3121FEC121FF2747BF07BFF7A18
:100AEF0003793C020B53121FEC9000347401121364
:100AFF00D3121FEC121FF27482F07BFF7A03797806
:100B0F00020B53121FEC12203BD39FE5F09E900077
:100B1F0099401C12153990003474011213D3121F0F
:100B2F00EC121FF2748CF07BFF7A0379B4801512EC
:100B3F001539122131121FEC121FF27493F07BFF43
:100B4F007A0379F0120F58121FEC1220D46401604F
:100B5F0003020D52122086D39414E5F09400504DE9
:100B6F0090010BE030E429740112205FC3943C40E4
:100B7F000A121FEC900028E41213D3121FEC9000FE
:100B8F002E121FF574A6F07BFF7A04792C020D4FFD
:100B9F00121FEC74011220E2121FEC90002E121F94
:100BAF00F574ADF07BFF7A047968020D4F121FECDC
:100BBF0012207DD39FE5F09E9000994020121539A9
:100BCF0090002374011213D3121FEC90002E121FEA
:100BDF00F574B7F07BFF7A0479A4020D4F12153923
:100BEF0090002674011213D3121FEC90002E121FC7
:100BFF00F574BEF07BFF7A0479E0020D4FD39000BD
:100C0F0008E0941412218D501DE475F00112144A5E
:100C1F0012214C121FEC1220BD7849E6FF08E6CFD7
:100C2F00122075020D5212211B121FEB1220F364BA
:100C3F000170631220D46401705C12203B122139C1
:100C4F004008121FEC1220C64034121FEC12207DF8
:100C5F00122139400B121FEC90002A1220C9401E9E
:100C6F00121FEC122131121FDE12202B12204A12FA
:100C7F001FFE74E5F07BFF7A05791C020D4F121FE2
:100C8F00EC12202B12204A121FFE74ECF07BFF7A1D
:100C9F00057968020D4F121FEC1220F364017048A2
:100CAF0012203B1221394008121FEC1220C6401CA3
:100CBF00121FEC900037121FE112202B1220561238
:100CCF001FFE74FFF0FB7A0579AD8019121FEC122D
:100CDF00202B122056F0A3EFF07405A3F0A3F07BA6
:100CEF00FF7A0579EF120F58121FEC1220D464010E
:100CFF00705190002A122080D312213A500F121FE8
:100D0F00EC900026121460C31220CD501C121FEC61
:100D1F00121FDE12202B78491220581220917413C3
:100D2F00F07BFF7A06792A8017121FEC12202B789E
:100D3F00491220581220917419F07BFF7A06796CB2
:100D4F00120F58121FEC1220F3FF6401600A1220D9
:100D5F00D464016003020ED7122194FE6401600D6A
:100D6F0090002312136164016003020E63EF6401AC
:100D7F0070251220D4B4011FEEB4011B122194B4BC
:100D8F00011590001474011213D37A0679A712205B
:100D9F006B7431F0120F58121FEC1220F3640170B4
:100DAF001E1220D470191221946401703C9000140B
:100DBF00041213D37A0679CD12206B743B8026125E
:100DCF001FEC1220F370221220D4B4011C900023C8
:100DDF00121361B401139000141221607A0679EF97
:100DEF0012206D7446F0120F58121FEC1220DA9079
:100DFF00001412136164016003020EEC121FEC1257
:100E0F002065D39400400890001A74FE12138E9040
:100E1F000019121361FF122065D39F500B121FECA4
:100E2F001220E87404F0800690006B7402F0122117
:100E3F001B121FEB900014E41220EC122168EF122A
:100E4F001FEB12206512208C7465F07BFF7A0779F7
:100E5F0011020ECA121FEC90003712136164016069
:100E6F000A90002612136164017072900037E41229
:100E7F0013D3E412205FC3943C500B121FEC90006D
:100E8F001A740212138E7404121FE890001B1213AF
:100E9F0061FF122065C39F4009121FEC1220E874F6
:100EAF0001F090006B122168EF121FEB12206512F8
:100EBF00208C7482F07BFF7A077944120F58121F2F
:100ECF00EC122065FF02338F90006BE0D394024049
:0D0EDF000CE4121FEB90001D74011213D3E0
:010EEC0022E3
:0B2E7C009000BD1215599000C0EDF051
:102E8700E4FE9000C0E0FD14F0ED60299000BDE481
:102E970075F0011215421213486EFEE4FFEFC3945A
:102EA7000850DFEE30E007C313648CFE8004EEC3E6
:072EB70013FE0F80E8AF06D7
:012EBE0022F1
:0825DA00900099EFF0A3EDF071
:1025E200E4A3F0A3F0789D7C007D017BFF7A08795B
:1025F20019FE7F2012132290009D7455F0A374AA35
:10260200F0A374FFF090009AE09000A2F09000997D
:10261200E09000A0F0121562263601266D022652C5
:1026220003266D04266D05266D0826360926360A10
:10263200000026739000A17403F0780EE65402C4E1
:10264200333354C07814469000A3F0E4A3F0802101
:10265200E4FF74292FF8E6FE749D2FF582E434001E
:10266200F583EEF00FEFB420E980069000A174012B
:10267200F09000A1E02405FFE43390009BF0A3EF6B
:10268200F07B017A00799DFD122E7C90009BE0FC8C
:10269200A3E0249DF58274003CF583EFF07F0112E4
:1026A2002B6090009AE0FFB4220B75FE0E53FFF0F0
:1026B20043FF08800DEFB4110975FE0E53FFF0437E
:1026C200FF0190009CE02402FF90009BE03400FE9A
:1026D2007B017A00799D122E3790009AE0FFB42296
:1026E2000A75FE0353FFF343FF0822EFB411097585
:0826F200FE0353FFF343FF0454
:0126FA0022BD
:1032CE00E490009AF0EF24FD60028011782EE6B4AF
:0D32DE00110590006880039000697401F0F4
:0132EB0022C0
:102D1100E4FE900099F0304242C2427BFF7A07798B
:102D210077782990009F12200808A3122008A37425
:102D310008F0A374B1F0120F587B007A007929785A
:102D41002DE62405FD122E7C7E00782DE6242EF83A
:0B2D5100E6B50707782CE6FF1232CE33
:012D5C002254
:102FF800602A00C50BB80BEA0C1C0C800CB20CE460
:103008000D160D480D7A0DAC0E100E420E740EA65C
:0E3018000ED80F0A0F3C0F870FD2101D106844
:102AE300E4FFEF25E024C5F582E43400F583E0FC40
:102AF300A3E0D3785C96EC189650050FEFB415E27B
:102B03007814E6FEEFD39E4004180680037813166C
:102B130090010AE030E3047814A6077813E6FED3A5
:102B230094C85006EEC3940A50077814A607187683
:102B3300697814E6FFD394005002D23CEFD394019A
:102B43005002D238EFD394055002D23AEFD3940A0D
:0C2B53005002D239EFD3940F5002D23B55
:012B5F002253
:102C4D009000F4E06062E4F0D2249000F2E004F031
:102C5D00E0C394054004E4F0D2259000F5E004F0C3
:102C6D00E0C3940A4004E4F0D2279000EFE475F03D
:102C7D000112144AC39000F0E094649000EFE094C8
:102C8D00004006E4F0A3F0D2229000F1E004F0E061
:102C9D00C394FA4013E4F0D2239000F3E004F0E083
:092CAD0094044004E4F0D2262254
:03000B000231625D
:10316200C0E0C083C082C0D074FC258CF58C74662C
:10317200258AF58A9000F47401F0D0D0D082D083F1
:03318200D0E03268
:0E349500758901758CFC758A66D2A9D28C22CD
:0D34B10075FE0FEF25E0FE7403A80608224B
:1033D9001234B18002C333D8FCF452FFEFB40406AF
:0733E90075FE0FE4F5FF2261
:1034060075FE11EF5407F5FF75FE12AF058FFF75B8
:06341600FE1075FF01220B
:102DF1001234B18002C333D8FCF452FF7401A80627
:102E0100088002C333D8FC42FF75FE0B7401A8078A
:102E1100088002C333D8FC42FFEF70038DCE22EF4E
:102E2100B401038DCF22EFB402038DDE22EFB40390
:062E310004AF058FDF2253
:033FFD00010102BD
:1030B100D28075FE0443FF0175FE0343FF0175FED7
:1030C1000243FF01D28175FE0443FF0275FE0343F3
:0D30D100FF0275FE0243FF02781576012212
:0C345600C280123462D281123462D28033
:05346200E4FF0FDFFE96
:013467002242
:10334000D281D2801234622081037F0022C2811296
:0B33500034623081037F00227F0122E5
:0F347800C280C28112345DD2811234620234628A
:0834DC00123456C28002346272
:0B34C900123456123462C280023462DA
:0231CB00AE074D
:1031CD007D08AF051DEF6015C280EE30E704D2819A
:0F31DD008002C281EE25E0FE12345D80E5C280E3
:0131EC0022C0
:103185007E08E4FDD281AF061EEF6012ED25E0FD5D
:10319500C28012345D3081EEED4401FD80E8C280CD
:0231A500AF0574
:0131A7002205
:0E34A3007D087F3512310A7D0A7F760234E4FF
:100026009000991215597F1012006EEF1213C17FBE
:100036001112006E900001EF1213D37F1212007896
:10004600900002EF1213D37F13120078900003EF93
:100056001213D37F14122F7D900099121539900038
:1000660004EF1213D37F0022122F7D9000991215F0
:0C0076003922122F7D90009912153922BA
:0531ED00900099EFF0D5
:1031F200E47F20122F7D900099E06006EF4401FFEA
:0D3202008004EF54FEFFAD077F2002310A6B
:05320F0090009AEFF0B1
:10321400E47F27122F7D90009AE06006EF4401FFBF
:0D3224008004EF54FEFFAD077F2702310A42
:05338F0090009CEFF02E
:10339400E47F25122F7DEF54C0FF90009CE04FFD89
:0533A4007F2502310A43
:0532310090009AEFF08F
:10323600E47F20122F7D90009AE06006EF54FBFF9A
:0D3246008004EF4404FFAD077F2002310A31
:0734E4008FFEAF058FFF22F0
:0634EB008FFEAEFFAF06EC
:0134F10022B8
:10310A009000C0EFF0A3EDF01233407F0C1231CBE8
:10311A001234C99000C0E0FF1231CB1234C99000BA
:0C312A00C1E0FF1231CB1234C90234782E
:052F7D009000C0EFF020
:102F8200E4A3F01233407F0C1231CB1234C990000B
:102F9200C0E0FF1231CB1234C91233407F0D12311F
:102FA200CB1234C91231859000C1EFF01234DC1219
:072FB20034789000C1E0FF3C
:012FB90022F5
:1031360090009EE4F0A3740AF07B147A007D0222CC
:1031460090006FF090006EF0900070F090006DF0BF
:0C31560022F0E490009EF0A3F0FBFA22AF
:1031A800E4FB7D04FF123272E4FB7D047F011232DE
:1031B80072E4FB7D047F02123272E4FB7D047F031C
:0331C8000232725E
:1018860030301BC230E4900113F07813F6121AF3CD
:10189600FD7F03122F017402123146D2432220210A
:1018A60006203D03300D64202A05D22AD23022902C
:1018B600006FE06402600E123136E4FF122F0190D1
:1018C600006F7403F090006EE06402600E12313611
:1018D6007F01122F0190006E7403F0900070E06497
:1018E60002600E1231367F02122F019000707403CF
:1018F600F090006DE064027003021ABD1231367F6B
:1019060003122F0190006D7403F022302A0CC22AB4
:10191600C22CC22BC22EC22FD247780EE6FF70030E
:101926000219E364037020202C07D22CC22B02314B
:10193600A8E490009E121ABE7D017F03122F017447
:10194600011231460219DA202B0DD22BC22CD230CD
:10195600E4900114F0807D900113E0C3940150558A
:10196600E004F0A3E014601A146027146034240322
:10197600706290006FE06404605A7B017D04E4FFAE
:10198600802E90006EE06404604A7B017D047F0136
:10199600801E900070E06404603A7B017D047F0243
:1019A600800E90006DE06404602A7B017D047F0355
:1019B600123272801F900113E0C3940F5005E004A9
:1019C600F08011E4900113F0A3E004F0E0C3940466
:1019D6004002E4F0C22EC22FC231D22D22302B0A91
:1019E600C22B1231A8D230D24722202E0C202D092C
:1019F600202F06203103021ABD900113E0FFC39485
:101A0600015004E004F022EFC394644003021AA8D4
:101A1600900113E004F0303A3090006FE0640370F8
:101A260003021ABDE490009EF0A3F07B64FA7D03E6
:101A3600FF122F0190006F7404123157FD7F0112BF
:101A46002F0190006E7402800F30391CE490009EC6
:101A5600121B28121B437401123157FD7F02122FED
:101A6600019000707402801EE490009E303B2712A5
:101A76001B28121B4374011231577D017F02122F5E
:101A8600019000707401123157FD7F03122F0190EF
:101A9600006D7402F022121ABE7D01121B4E7401F3
:101AA6008012C22EC22DC22FC231E4121AF3FD12C9
:071AB6001B4E7402123149BE
:101ABD0022F0A3F0FBFA7D01FF122F01E490009EAE
:101ACD00F0A3F0FBFA7D017F01122F01E490009E3F
:101ADD00F0A3F0FBFA7D017F02122F01E490009E2E
:101AED00F0A3F0FBFA2290009EF0A3F0FBFAFDFFAD
:101AFD00122F01E490009EF0A3F0FBFAFD7F01127E
:101B0D002F01E490009EF0A3F0FBFAFD7F02122F4F
:101B1D0001E490009EF0A3F0FBFA22F0A3F0FBFA93
:101B2D007D01FF122F0190006F7401F0E490009E73
:101B3D00F0A3F0FBFA227D017F01122F0190006EC0
:0A1B4D00227F03122F0190006F2287
:10294100023084E493A3F8E493A34003F68001F2F8
:1029510008DFF48029E493A3F85407240CC8C33397
:10296100C4540F4420C8834004F456800146F6DF66
:10297100E4800B0102040810204080902FF2E47ED5
:10298100019360BCA3FF543F30E509541FFEE4935B
:10299100A360010ECF54C025E060A840B8E493A322
:1029A100FAE493A3F8E493A3C8C582C8CAC583CA4D
:1029B100F0A3C8C582C8CAC583CADFE9DEE780BE05
:0130260000A9
:10125200E709F608DFFA8046E709F208DFFA803E7E
:1012620088828C83E709F0A3DFFA8032E309F6086B
:10127200DFFA8078E309F208DFFA807088828C83D3
:10128200E309F0A3DFFA806489828A83E0A3F60887
:10129200DFFA805889828A83E0A3F208DFFA804C61
:1012A20080D280FA80C680D4806980F28033801038
:1012B20080A680EA809A80A880DA80E280CA8033A1
:1012C20089828A83ECFAE493A3C8C582C8CCC58319
:1012D200CCF0A3C8C582C8CCC583CCDFE9DEE780E9
:1012E2000D89828A83E493A3F608DFF9ECFAA9F068
:1012F200EDFB2289828A83ECFAE0A3C8C582C8CCBE
:10130200C583CCF0A3C8C582C8CCC583CCDFEADED6
:10131200E880DB89828A83E493A3F208DFF980CC38
:1013220088F0EF60010E4E60C388F0ED2402B40431
:101332000050B9F582EB2402B4040050AF232345D8
:0613420082239012A27349
:10134800BB010689828A83E0225002E722BBFE02A3
:09135800E32289828A83E49322D6
:10136100BB010CE58229F582E5833AF583E0225041
:1013710006E92582F8E622BBFE06E92582F8E2228B
:0D138100E58229F582E5833AF583E49322A5
:10138E00BB010FF8E58229F582E5833AF583E02863
:10139E00F0225009C58229F8E58226F622BBFE0905
:1013AE00C58229F8E22582F222F8EA2583F583E93F
:0313BE009328224F
:1013C100BB010689828A83F0225002F722BBFE010B
:0213D100F32205
:1013D300F8BB010DE58229F582E5833AF583E8F050
:1013E300225006E92582C8F622BBFE05E92582C8FC
:0213F300F222E4
:1013F500BC000BBE0029EF8DF084FFADF022E4CCDC
:10140500F875F008EF2FFFEE33FEEC33FCEE9DECA4
:10141500984005FCEE9DFE0FD5F0E9E4CEFD22EDEA
:10142500F8F5F0EE8420D21CFEADF075F008EF2F34
:10143500FFED33FD4007985006D5F0F222C398FD25
:051445000FD5F0EA22C2
:10144A00C5F0F8A3E028F0C5F0F8E582158270022D
:06145A001583E038F022CA
:10146000BB0110E58229F582E5833AF583E0F5F0CA
:10147000A3E0225009E92582F886F008E622BBFEA7
:101480000AE92582F8E2F5F008E222E5832AF583ED
:08149000E993F5F0A3E99322B2
:10149800F8BB0111E58229F582E5833AF583E8F086
:1014A800E5F0A3F0225009E92582C8F608A6F02243
:0D14B800BBFE09E92582C8F2E5F008F2222A
:1014C500E88FF0A4CC8BF0A42CFCE98EF0A42CFCC6
:1014D5008AF0EDA42CFCEA8EF0A4CDA8F08BF0A444
:1014E5002DCC3825F0FDE98FF0A42CCD35F0FCEBA3
:1014F5008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3968
:0F150500FEE43CFCEAA42DCE35F0FDE43CFC22D4
:10151400EB9FF5F0EA9E42F0E99D42F0E89C45F02D
:0115240022A4
:10152500E86010ECA2E713FCED13FDEE13FEEF13DC
:04153500FFD8F022C9
:09153900E0FBA3E0FAA3E0F922B3
:10154200F8E0FBA3A3E0F925F0F0E5821582700232
:071552001583E0FA38F022D6
:09155900EBF0A3EAF0A3E9F02293
:10156200D083D082F8E4937012740193700DA3A318
:1015720093F8740193F5828883E47374029368602C
:06158200EFA3A3A380DF2C
:100EED00E508249FF582E43400F583E0050822909F
:100EFD00009C30180390009FE475F001121542021A
:100F0D0013482011E97F2ED2118018EF540F249031
:100F1D00D43440D4FF30150BEF24BFB41A00500366
:100F2D002461FFE50960021509050CE50C70020549
:100F3D000B30180E90009CE475F001121542EF0273
:100F4D0013C10234877403D2188003E4C218F50864
:100F5D0090009C121559E4F509F50BF50CE50960A7
:100F6D00077F20120F3080F5750AFFC212C211C221
:100F7D0013C214C216C217C219120EFCFF700D3027
:100F8D0018057F00120F41AF0CAE0B22B4255FC2C6
:100F9D00D5C215120EFCFF24D0B40A00501A75F0FC
:100FAD000A780930D50508B6FF0106C6A426F62035
:100FBD00D5047002D21480D924CFB41A00EF500496
:100FCD00C2E5D215021142D21280C6D21180C0D212
:100FDD001380BCD2D580BAD21680B47F20120F30C8
:100FED002013077401B5090040F1120EEDFF120F29
:100FFD0030020F6AD219D2178095120EEDFB120E28
:10100D00EDFA120EEDF94A4B700679137A127BFF49
:10101D0020132EE509602A7E008E8275830012133F
:10102D006160060EEE650A70F0C2D5EBC0E0EAC055
:10103D00E0E9C0E0EE121189D0E0F9D0E0FAD0E09D
:10104D00FB121348FF60AAEBC0E0EAC0E0E9C0E084
:10105D00120F30D0E02401F9D0E03400FAD0E0FBDB
:10106D00E50A0460DCD50AD980877BFF7A11798582
:10107D00D213809C791080027908C217C21980089A
:10108D00D2D5790A8004790AC2D5E50A047002F531
:10109D000AE4FAFDFEFF120EEDFC7B08201213127E
:1010AD000EEDFD7B1030110A120EEDFE120EEDFF4E
:1010BD007B20EC3382D592D55013C3E43011069FBB
:1010CD00FFE49EFEE42012039DFDE49CFCE4CBF8BE
:1010DD00C212EC700CCFCECDCCE824F8F870F380B2
:1010ED0017C3EF33FFEE33FEED33FDEC33FCEB3383
:1010FD00FB994002FB0FD8E9EB301205F8D0E0C4A4
:10110D0048B212C0E00AEC4D4E4F78207B0070C201
:10111D00EAB50A0040BCC0E012118BD0F0D0E0203F
:10112D001204C4C0E0C4B212C0F0120F19D0F0D531
:10113D00F0EB020F6A1215621007531081580FD889
:10114D004C0FD44210854F108D44108D490FED4337
:08115D0010935510774610773E
:10116500451077471233500FDC2D0FE02E10032B5F
:101175000FE423100120121C2A0F9C4800000FFBCE
:101185003F3F3F00790AA2D5201414301609B91043
:10119500020404B9080104A2D52017025001042055
:1011A50013689213B509005034C0E07F203014193C
:1011B5007F30A21372177216500F1211E2C213C2BA
:1011C50017C216C2197F30800F301603E9C0E0122E
:1011D5000F30301603D0E0F9D0E0B509CC30161742
:1011E5007F30B9100C120F307F583015077F78808B
:1011F50003B90803120F303013057F2D020F307F1E
:10120500202019F87F2B2017F322921380CF286E08
:10121500756C6C2900D212120EED3012F8C21278DC
:101225000930D50108F6020F9C2D50434958120E7E
:10123500ED2403B405004001E490122E93120F2112
:0D124500743A120F21D214750904021081B1
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,920 @@
:030000000229389A
:1029380075FE7275FF00758E009000007F007E03A3
:0D294800E4F0A3DFFCDEFA75814602299061
:0F343600122F2FD2AED2BE122C7D122EAE80F4EA
:10317F009001B6E0FEA3E07802229001B7E025E0CF
:10318F00FE9001B6E03322F0A3EFF0C3EE6480941B
:02319F0080228C
:1032C30075FE3175FF8175FE0E43FF107DAC7F30B7
:0D32D3001234AF75FE599001A6E5FFF02200
:10259900900158EFF0E5A420E0030226B175A401EB
:1025A9007F351234B69001B6E4F0A3EFF07F36120E
:1025B90034B6EF5403FE9001B6E04EF0A3E0F0907C
:1025C9000158E04408FD7F311230989001A6E0FFE0
:1025D9003395E0FEC39001B7E09FFF9001B6E09EFE
:1025E900FE3395E0FDFCE47BC47A09F9F81216255F
:1025F900780A1216859001B6EE1231965007E490CA
:1026090001B6F0A3F09001B8E01216C226310026F7
:102619004301264B02266103267104268105269172
:1026290006269D07000026B112317FCEA2E713CE00
:1026390013D8F8FF9001A70226AC1231899001BB8B
:10264900804C9001B6E0FEA3E07803C333CE33CECD
:10265900D8F9FF9001AD804B12317FC333CE33CE11
:10266900D8F9FF9001B9803B12317FC333CE33CE05
:10267900D8F9FF9001B1802B12317FC333CE33CE0D
:10268900D8F9FF9001AF801B1231899001A9F0A3FD
:10269900CEF0801412317FCEA2E713CE13D8F8FF03
:1026A9009001ABEEF0A3EFF0900158E09001B8F083
:0426B90075A3812262
:102D4200E5A430E14A75A4027F371234B69001B38C
:102D5200E4F0A3EFF07F381234B6EF5403FE900193
:102D6200B3E04EFEA3E0FF9001B3EEF0A3EFF0FF5D
:102D72009001A6E0FD3395E0FCC3EF9DFFEE9CFEC3
:102D82009001B31231965007E49001B3F0A3F075AD
:032D9200A38222F7
:1032E0009001D97403F0E49001DBF09001DDF090DF
:0B32F00001DC7403F09001DE04F0220A
:1022EC00E4FE9001B3E0FCA3E0FDC394E8EC94039E
:1022FC0040037F0022EF7003022413D3ED940FEC04
:10230C00940340030223F1ED94CBEC9400500302B0
:10231C0023F1D3ED94AAEC94024025D21F9001D95D
:10232C00E0FF139001DCF0302012D3ED94BFEC945D
:10233C00024004C22080059001DCEFF0E4FE807BBB
:10234C00D3ED94AAEC9402504AED9437EC940140EE
:10235C0042D2209001D9E0FF9001DCF0301F14D361
:10236C00ED9493EC94025004C21F8007EFC31390BA
:10237C0001DCF09001DE7404F0301A13D3ED9451AB
:10238C00EC94015004C21A80069001DE7401F0E452
:10239C00FE8028D3ED9437EC9401501FD21A900193
:1023AC00DE7401F0302012ED9426EC94015004C23E
:1023BC002080069001DE7404F0E4FE301D11C3EDA4
:1023CC0094F3EC94025006C21DE4FE80027E0130B0
:1023DC001E2FD3ED94DDEC94004006C21EE4FE806B
:1023EC00207E01801CD3ED940FEC94034006D21D8B
:1023FC007E01800DD3ED94CBEC94005004D21E7E64
:10240C0001C21BC21C8058C21DC21ED3ED949FEC8E
:10241C0094035031ED9471EC94004029301B10ED75
:10242C009484EC94035006C21BE4FE80027E0130BF
:10243C001C2DD3ED9482EC94004006C21CE4FE806B
:10244C001E7E01801AD3ED949FEC94034004D21BA2
:10245C00800BC3ED9471EC94005002D21C7E01AF42
:01246C000669
:01246D00224C
:1029D5009001ECE05463600BE4FF1231C3E4900115
:1029E500DAF0227F011222ECEF600EE4FF1231C310
:1029F500D2219001DA7401F022C2219001EDE05458
:102A050007FFBF06079001DA7403F0229001DCE0AE
:102A1500FD7F221230989001DEE0FD7F2112309873
:102A25009001DBE0C454F0FF9001DDE04FFD7F2312
:102A35001230987F011231C390012DE0FFD394012C
:102A45004002C23CEFD394034002C238EFD394074F
:102A55004002C23AEFD3940C4002C239EFD394112D
:0B2A65004002C23B9001DA7402F02234
:10002600C23E9001ECE020E65530E203D23F22309A
:100036003C04E4FF80119001ECE030E50D30233EF6
:100046007F3C1233657F010231E5E4FF1222ECEFBB
:100056006008E4FF1231E5D23D22C23DD23E303F78
:100066001D9001DAE0B40216C39001BCE094109032
:0F00760001BBE0940E4005D23EC23F22C23E22A3
:10337F00426F78204F70656E2E0D0A00426F7820D5
:09338F00436C6F73652E0D0A00FA
:102D9500E4900158F09001EDE0FF5420FE900158B9
:102DA500F09001F0E06E6032EF30E50E9001EF74C7
:102DB50001F07BFF7A33797F800BE49001EFF07BA4
:102DC500FF7A33798B121099D245C20ED22ED230AA
:0A2DD500900158E09001F0F0D243A5
:012DDF0022D1
:1026BD00737570706572206C6F6E67203873207043
:1026CD00726573732E286C696E653A2564290D0A3F
:1026DD00004B6579206C696674286C696E653A25C6
:1026ED0064292E0D0A00426F6F7374204F70656E52
:1026FD00204B65792E286C696E653A2564290D0A83
:10270D00006C6F6E672032732070726573730D0AE3
:10271D000073686F72742070726573730D0A004BCD
:10272D006579205061697220545820564F52286C9B
:10273D00696E653A2564292E0D0A004B6579205086
:10274D006169722054696D654F7574286C696E6589
:10275D003A2564292E0D0A004B6579205061697266
:10276D002047657420564F52286C696E653A256472
:10277D00292E0D0A004B657920506169722047653D
:10278D007420564F4C286C696E653A2564292E0DC0
:10279D000A004B6579205061697220545820564FBC
:1027AD004C286C696E653A2564292E0D0A004B651F
:1027BD0079205061697220436E743A25642E286C1D
:0A27CD00696E653A2564290D0A00C3
:1030F0007BFF7A2679BD90015EF0A3227BFF9001D1
:103100005E7401F0A3227BFF90015EF0A322F09099
:0631100001D0F0D20F22F5
:101CB3009001EDE030E4419001CDE475F00112159F
:101CC3008BC39001CEE094409001CDE09401400E8F
:101CD300D236E41230F07470F01210998014C3906D
:101CE30001CEE094509001CDE094004005203502F0
:101CF300D235D232C233804F303245D243E49001E1
:101D0300D0F0C232D2339001CFF09001CDE0FEA3E8
:101D1300E0FFD39414EE94005008D231D234D23081
:101D2300800EC3EF94C8EE94005005303502D237CD
:101D3300C2357A2679DEE412310674A6F0121099C0
:101D4300E49001CDF0A3F0303375303E7230372F7D
:101D5300200E08121EE674B9021EA2121F0C5003B5
:101D6300021ED6C2379001D07402F0E49001CCF089
:101D73009001C7F0A3F07BFF7A27790E12109930F8
:101D8300362B200E08121EE674EC021EA2121F0C44
:101D93005003021ED6C236E49001D1F09001D074F4
:101DA30003F074011230F0740CF012109930340BFC
:101DB300C2347BFF7A27791E121099C233C20E9068
:101DC30001EFE064016003021EE59001D0E06402CC
:101DD3006003021EAB9001CCE0C3940150127F025A
:101DE300121EFF7A27792C041231067436021E72F2
:101DF3009001CBE0D394054015E412310E7F03121A
:101E03002B907A2779481230FC7456021EA2900157
:101E1300C7E0B4011D7D227F0312246E9001C774B5
:101E230002F07BFF7A27796590015E14F0A3746C4E
:101E3300803D9001C7E064027039A3E0601F7F0317
:101E4300121EFF9001CCF09001CB12310E7F0412D1
:101E53002B907A2779821230FC749880427D227FFE
:101E63000212246E7BFF7A27799F1230FE74A8F04A
:101E73001210999001CCE0D3941440279001CBE049
:101E830004F0E4A3F07BFF7A2779BB9001CBE0FF5A
:101E930090015EE4F0A3EFF0A37401F0A374B6F035
:101EA3000210999001CC802B9001D0E06403703232
:101EB300A3E0FFC39464501FEF540770047D228096
:101EC3000A9001D1E0540370077D117F0412246E40
:101ED3009001D1E004F022E412310FA3F07F041249
:021EE3002B9042
:101EE500227F3C1233657F011231E5D20E7BFF7AEA
:101EF5002679F390015EE4F0A3227D1112246EE4AD
:101F05009001C7F0A3F0227F03122B909001CFE040
:041F1500D39414222B
:102C0A00900158E0FF25E0240CF582E43401F583B5
:102C1A0022900158E0FF25E02414F582E43401F5FE
:102C2A0083E0FCA3E0FDEF25E02424F582E43401EF
:102C3A00F5832274042FF582E43401F58322E4F04B
:102C4A00A3F0EF25E0241CF582E43401F5832290F9
:102C5A000158E0FF2408F582E43401F58322E0FEFE
:102C6A00A3E0C39DEE9C2225E02414F582E43401FE
:032C7A00F58322BD
:10306C0075FE0B75FF0F75FE1375FF0F75FE0C7556
:10307C00FF55E4900102F0900101F0900103F090F3
:0C308C000100F0C290C291C293C29222D7
:10333100EF14600D14600D14600D2403700BD29016
:0A33410022D29122D29222D29322CE
:05322900900158E0FFD8
:10322E00EF14600D14600D14600D2403700BC2902A
:0A323E0022C29122C29222C2932202
:102FE000E4FF122C3DE4F074082F122C60E4F0EFA3
:102FF000122C0FE4F0A3F0EF122C71122C48E4F025
:0E300000A3F0122C30E4F0A3F00FEFB404D4D0
:01300E00229F
:102EF000AC0774042C122C40EDF0EAC313FEEB1364
:102F0000FFEC122C0FEEF0A3EFF0AF03EC122C71DC
:102F1000EAF0A3EFF090015DE0FEA3E0FFEC122CDD
:0F2F20004DEEF0A3EFF0EC122C31E4F0A3F02211
:10324800122C3DEDF074082F122C60EBF0EF122CCD
:0F3258000FE4F0A37469F0122C30E4F0A3F0221D
:101F1900E4900158F0F0900158E0FFC394044003A5
:101F290002210E122C3DE0601F24FE60211460780E
:101F3900147003021FE2240360030220BD900158BC
:101F4900E0FF1233310220BD1232290220BD122CCA
:101F59000A122C2B122C68500512333180031232CD
:101F690029122C1B122C6850030220BD900158E045
:101F7900122C31122C48E0FEA3E0D39400EE940019
:101F8900400E900158E0122C4D74FFF5F012158B9C
:101F9900900158E0FF122C4DE0FCA3E04C600302D5
:101FA90020BD74042F021FF3122C0A122C2BE0FE01
:101FB900A3E0D39DEE9C50051233318003123229E0
:101FC900122C1B122C6850030220BD900158E012FC
:101FD9002C31E4F0A3F00220BD122C59E070131249
:101FE90033AFC246900158E02404122C40E4F002B9
:101FF90020BD122C59E0FE6402702E20460CD246F8
:10200900EF122C0FE4F0A37469F0122C0AE475F0B6
:102019000112158BEF122C0FE0FCA3E0C394FEEC28
:10202900940050030220B48031EE640170372046D9
:102039000FD246900158E0122C0FE4F0A374FEF081
:10204900122C0A74FFF5F012158BEF122C0FE0FE1B
:10205900A3E0D39469EE94005051900158E0122CFA
:102069005EE4F08046122C59E06403703EEF122CB6
:102079000FE0FEA3E0FFC394FEEE94004004D246B5
:10208900800BD3EF946AEE94005002C24690015837
:10209900E025E0240C304609122C1374FFF5F0807A
:1020A90007122C13E475F00112158B122C0AA3E008
:1020B900FD122DE0900158E0FF700A122C3DE090CE
:1020C9000102F08037900158E0B4010C2404122C6D
:1020D90040E0900101F08024900158E0B4020C2402
:1020E90004122C40E0900103F08011900158E0B4F3
:1020F900030A2404122C40E0900100F0900158E0FA
:1021090004F0021F1FE4900158F0900158E0FFC34A
:1021190094045012122C30E475F00112158B9001C1
:0621290058E004F080E420
:01212F00228D
:10334B00D2AC759A03D2BCD2BDD2A9D2AB75FE3129
:0A335B0075FF8175FE3043FF8022EC
:10326700C2ACE4F59AC2BCC2BDC2A9C2AB75FE31FD
:0F32770053FF7E75FE3053FF7FFD7F310230988D
:10303E00304421302627C2269001E5E004F0E0C39B
:10304E0094054019E4A3F07DAA7F4F123098E490C6
:0E305E0001E5F02212326743870212334B2243
:10000E009001DAE0D394015006201003304304C26D
:05001E0043C322D322C0
:102F2F001232FB123416123462E4F58612300F128D
:102F3F0032C37D087F761234AFD2A8D2AF1232E0FF
:102F4F007D697F031233DC12306C122FE012347064
:0F2F5F009001E9740FF09001E27401F0C20E22AC
:0300030002008573
:06008500D24375E20F32C8
:1033F200E0FF04F074852FF582E43401F583E5994A
:02340200F022B6
:1032FB0075FE0443FF0CD2DF43878075BA0375AAB2
:0B330B00DC759852D299D298D2AC2207
:062E260090017C1216B9B8
:102E2C00E490017FF075FE0443FF0C75FE0353FF25
:102E3C00F3F090017FE0C39FE49E501C2040FDD234
:102E4C004090017CE475F0011216A2121489F599D8
:0E2E5C0090017FE004F080DA75FE0453FFF36E
:012E6A002245
:0300230002289917
:10289900C0E0C083C082C0D075D000C000C005C0F0
:1028A90006C007309904C299C240309871C298D2C3
:1028B90043900184E014601B1460332402705FE5C7
:1028C90099900184B4550A7401F09001A5E4F0804F
:1028D900108013E599900184B4AA0B7402F0900159
:1028E900A51233F28038E4F09001A5F08030900110
:1028F900A51233F2900189E02406FFE433FE90012A
:10290900A5E0FDC39FEE6480F87480985005ED94AE
:1029190020400B9001A5E4F0900184F0D242D00749
:0F292900D006D005D000D0D0D082D083D0E032FD
:0E345400900183EFF012349F900183E0FF227D
:1034160075F10A759F03759EFD759692759A02223F
:08349F002041FDD2418F97226C
:03008B00023398A5
:10339800C0E0E59630E1055396FDC241E59630E080
:0733A800035396FED0E03252
:062FAB004301E2040202F2
:1034260090015DE4F0A37403F07B647A007D0222D0
:1033C6009001B5E0FF04F01225999001B5E0C39491
:0633D600084002E4F022B1
:1032A500122D95121CB3122A70302211C222122936
:0E32B500D5120026122B031219E01216E82281
:093496007B017A0179EA022CE6BF
:1027D700E4900158F09001E2E0FFA3E0FE6F603162
:1027E700A3EEF09001E2E0A3F024FE601A14601C4F
:1027F70024026003022898123426E4FF122EF012F6
:1028070034267F01022EF07F010232079001E98012
:10281700539001E3E024FE602E14603214605524C7
:1028270003706E9001DFE004F0E0C394084062900B
:1028370001E27402F0E49001DFF090012DE07051A5
:102847009001E27404F0229001E27403F022302632
:1028570040C2269001E9E0D39400400CE014F03028
:10286700432FC243740FF0229001E27404F0E49006
:1028770001E5F02212000E50127F04122B90E4FFA4
:102887001231E5E4FF12320702303E9001E2740292
:01289700F050
:01289800221D
:102EAE00302536C2259001E0E0FF04F0EF146012E9
:102EBE001460141460161460182404701C1233C6A7
:102ECE0080171234968012122D42800D1232A58078
:102EDE00081227D7E49001E0F0302705C227121F11
:022EEE001922A7
:10008E00426F6F7374204F70656E2E286C696E65AB
:10009E003A2564290D0A00426F7820436C6F736510
:1000AE002E286C696E653A2564290D0A00426F7818
:1000BE00204F70656E2E286C696E653A2564290D89
:1000CE000A004F70656E2F436C6F736520426F7818
:1000DE002C45617270686F6E657320496E20426F99
:1000EE0078284E756D3A25642928566F78537461B9
:1000FE003A30782578292E0D0A004F70656E204211
:10010E006F7820434D44205458204F7665722E0D43
:10011E000A004F70656E20426F7820416E64204554
:10012E00617270686F6E6520476574496E284E75F2
:10013E006D3A25642928566F785374613A307825C4
:10014E0078292E0D0A00436C6F736520426F78205C
:10015E00416E6420466F72636520566F6C746167E2
:10016E00652055702E0D0A2000564F5820566F757B
:10017E007420355628564F585F5354413A307825DF
:10018E00782C6C696E653A2564292E0D0A00564F3F
:10019E0058204348472046756C6C2E0D0A00564F6A
:1001AE00582047657420496E746F20536C656570D6
:1001BE002E0D0A00466F6C6C6F772043484720491E
:1001CE006E697453746120536574204D61782056A6
:1001DE00706D69642E28566F785F7374613A30784B
:1001EE00257829286C696E653A2564290D0A004622
:1001FE006F6C6C6F772043484720496E6974537457
:10020E00612E28566F785F7374613A30782578299D
:10021E00286C696E653A2564290D0A00466F6C6C70
:10022E006F772043484720537461312C4E6F204521
:10023E00617250686F6E6520496E20426F782E286D
:10024E006C696E653A2564290D0A00466F6C6C6FF9
:10025E00772043484720537461312C564F52204328
:10026E006867696E672849766F723A25646D412C0E
:10027E0049766F725F4E65673A25646D412C4976FB
:10028E006F725F506F733A25646D41292E286C6929
:10029E006E653A2564290D0A00466F6C6C6F7720E7
:1002AE0043484720537461312C564F4C20436867A6
:1002BE00696E672849766F6C3A25646D412C4976D4
:1002CE006F6C5F4E65673A25646D412C49766F6C95
:1002DE005F506F733A25646D41292E286C696E65E7
:1002EE003A2564290D0A00466F6C6C6F77204348DF
:1002FE004720537461322C4765742049564F523A49
:10030E0025646D412C41745072652049766F723AA6
:10031E0025646D412E286C696E653A2564290D0A97
:10032E0000466F6C6C6F77204348472053746132E0
:10033E002C4765742049564F4C3A25646D412C412B
:10034E00745072652049766F6C3A25646D412E2883
:10035E006C696E653A2564290D0A00466F6C6C6FE8
:10036E00772043484720537461332C564F5820430F
:10037E006867205265496E69742E28417450726503
:10038E002049766F723A25646D412C49766F6C3A2E
:10039E0025646D413B506F732049766F723A256428
:1003AE006D412C49766F6C3A25646D4129286C6934
:1003BE006E653A2564290D0A00466F6C6C6F7720C6
:1003CE004348472053746133284356292C564F52C5
:1003DE002056706D696420416464537461284174C1
:1003EE005072652049766F723A25646D41292E2828
:1003FE006C696E653A2564290D0A00466F6C6C6F48
:10040E0077204348472053746133284356292C568E
:10041E004F522056706D6964205375625374612873
:10042E0041745072652049766F723A25646D412988
:10043E002E286C696E653A2564290D0A00466F6C8C
:10044E006C6F772043484720537461332843432908
:10045E002C564F522056706D69642053756253743A
:10046E00612841745072652049766F723A25646D29
:10047E0041292E286C696E653A2564290D0A0046BD
:10048E006F6C6C6F77204348472053746133284359
:10049E0043292C564F522056706D69642041646476
:1004AE005374612841745072652049766F723A25F3
:1004BE00646D41292E286C696E653A2564290D0AF2
:1004CE0000466F6C6C6F772043484720537461333E
:1004DE00284356292C564F4C2056706D6964204186
:1004EE0064645374612849766F6C3A25646D4129B2
:1004FE002E286C696E653A2564290D0A00466F6CCC
:10050E006C6F772043484720537461332843562934
:10051E002C564F4C2056706D69642053756253747F
:10052E00612849766F6C3A25646D41292E286C69D5
:10053E006E653A2564290D0A00466F6C6C6F772044
:10054E004348472053746133284343292C564F4C5C
:10055E002056706D6964205375625374612841741E
:10056E005072652049766F6C3A25646D41292E28AC
:10057E006C696E653A2564290D0A00466F6C6C6FC6
:10058E0077204348472053746133284343292C5620
:10059E004F4C2056706D6964204164645374612819
:1005AE0041745072652049766F6C3A25646D41290D
:1005BE002E286C696E653A2564290D0A00466F6C0B
:1005CE006C6F772043484720537461342C564F7814
:1005DE002056706D69642041646453746128566FAF
:1005EE0075743A307825782C49766F6C3A25646D9F
:1005FE00412C49766F723A25646D4129286C696EDB
:10060E00653A2564292E0D0A00466F6C6C6F7720B3
:10061E0043484720537461342C564F782043686901
:10062E006E6728566F75743A307825782C49766F38
:10063E006C3A25646D412C49766F723A25646D4192
:10064E0029286C696E653A2564292E0D0A00466FBD
:10065E006C6C6F772043484720537461342C564F8F
:10066E00522056706D69642041646453746128563B
:10067E006F75743A307825782C49766F723A256406
:10068E006D4129286C696E653A2564292E0D0A0084
:10069E00466F6C6C6F772043484720537461342C3F
:1006AE00564F52204368696E6728566F75743A30FC
:1006BE007825782C49766F723A25646D4129286C1D
:1006CE00696E653A2564292E0D0A00466F6C6C6FB3
:1006DE00772043484720537461342C564F4C205694
:1006EE00706D69642041646453746128566F75742B
:1006FE003A307825782C49766F6C3A25646D41290D
:10070E00286C696E653A2564292E0D0A00466F6CB9
:10071E006C6F772043484720537461342C564F4CEE
:10072E00204368696E6728566F75743A307825785D
:10073E002C49766F6C3A25646D4129286C696E657B
:10074E003A2564292E0D0A00466F6C6C6F77204394
:10075E004847205375625374612C564F4C2F564F99
:10076E0052286C696E653A2564292E0D0A00466F73
:10077E006C6C6F7720434847205375625374612C1D
:10078E00564F52286C696E653A2564292E0D0A0063
:10079E00466F6C6C6F7720434847205375625374D5
:1007AE00612C564F4C286C696E653A2564292E0DC6
:1007BE000A00466F6C6C6F77204348472053756272
:1007CE005374612C285354413A307825782C567046
:1007DE006D69643A3078257829286C696E653A25FA
:1007EE0064290D0A00466F6C6C6F772043484720D2
:1007FE004164645374612C285354413A30782578FF
:10080E002C56706D69643A3078257829286C696E9B
:10081E00653A2564290D0A005258305F42756666A6
:10082E0065725B305D3A307825782C5258305F42D5
:10083E0075666665725B315D3A307825782C525854
:10084E00305F4275666665725B325D3A3078257848
:10085E002C5258305F4275666665725B335D3A3076
:10086E007825782C5258305F4275666665725B3417
:10087E005D3A307825782C5258305F427566666541
:10088E00725B355D3A307825782C5258305F427560
:10089E00666665725B365D3A307825782C52583034
:1008AE005F4275666665725B375D3A307825782CE7
:1008BE006C696E653A25640D0A00000000000000A8
:1008CE00000000000000000000000000000000001A
:0A08DE000000000000000000000010
:102130007401121514EE90015EF0EFA3F0900158B7
:1021400002169990000E1215A1FFE5F090015EF0C5
:10215000A3EFF0A37406F0A32290001A1214A2FFBA
:1021600090015EE4F0A3EFF09001A7E0FFA3E0CFC1
:10217000900160F0A3EFF02290001A1214A2FFE485
:10218000900160F0A3EFF0229000061215A1FFAEBF
:10219000F090000E0215A17BFFE0FFE490015EF0DD
:1021A000A3EFF0229000081215A1FFAEF090000CF2
:1021B0000215A190001512151490001A0214A29095
:1021C000001574011215149001C9227BFF90015E65
:1021D0007404F0A322900162F0A3EFF02290000CAF
:1021E0008FF00215F89001EEE0540CFBE4FAF9F8D8
:1021F0009001BDE0FFE4FCFDFEC302167490000AEE
:102200001215A1D3FFED9FEC95F022EE8FF0900018
:102210000E0215F89000170214A2900013E4121594
:1022200014E49000120215149001ABE0FFA3E090BB
:102230000162CFF0A3EFF0A37407F0A3227BFF901D
:10224000015E7407F0A3229000180214A2FD25E09D
:10225000FFEC338FF01215F890015EECF022900144
:10226000EEE0540C22FFE4F0A3EFF02274019000A2
:1022700016021514C3FDACF09FEC9E229001ABE05A
:10228000FEA3E0FF229001A7E0FEA3E0FF22FF9063
:102290000160E5F022E4FCFDFEFAF9F8C3021674D1
:1022A0009001EEE05410FFE4FCFDEF227401900079
:1022B000140215147845F608F69001C9F022900131
:1022C000EEE05420FFE4FC22EE8FF00215F8121528
:1022D000A1FF900162E5F0229001C4E094002290F9
:0C22E00000130214A2FFE4F0A3EFF022B0
:052B900090017CEFF054
:102B9500E4A3F0A3F07F27122F6E90017DEFF07F65
:102BA50037122F6E90017EEFF090017CE024FD60DE
:102BB5001B14602424FE60282405703590017EE0F6
:102BC5004494F090017DE04498F0802590017DE0EB
:102BD5004406F054E7F0801990017EE054FD800929
:102BE50090017EE04402F054FEF090017DE054E156
:102BF500F090017DE0FD7F2712309890017EE0FD89
:052C05007F370230984A
:1016E8009001ECE054186003D20D22C20D203E0395
:1016F8000219AA30456B200E141219D37A00798E7C
:101708001221CB7410F01210997F038067E49001C6
:10171800C0F09001BEF0A3F0C200C201D20B90014C
:10172800EFE07022C22FD202D203C205C208C2045F
:10173800C209C20AD210C2471222B47A0079A5128D
:1017480021CB74418013C202C203D205C2067BFFBB
:101758007A0079BB1221CD744EF0121099C20EC2D4
:10176800459001BEE0C394055003021939300B07B8
:10177800C20B7F04022B90200037D20012225EFF9A
:1017880060147B0C1222959001C670057402F080DB
:101798000A7401F08005E49001C6F07A0079D090CF
:1017A80001C61221979001EEE0FFE4122170121099
:1017B8009920050302185B9001BFE0C39405500A05
:1017C8007F06122B909001BF80272001449001C012
:1017D800E0FFD39414501FEF540370047D11800967
:1017E8009001C0E020E0077D227F0912246E90015D
:1017F800C0E004F0805D7F04122B90E49001C0F0FB
:10180800D201D20FC2107BFF7A0179081210998099
:10181800429001D0E0703C300F04C20F802E12219C
:10182800E560309001EEE0FF540C6004D22FD23016
:101838007BFF7A0179209001C6E0FD90015EE4F01B
:10184800A3EDF0A3E4F0A3EFF012109912225E903A
:1018580001BDF02002030219A730473B200E1612E3
:1018680019D3D210E41222B49001BEF0C208D20BF0
:10187800C200D204227F03122B907BFF7A01795495
:10188800121099C20ED2039001BEE0D39403500304
:10189800021939C247805020044D9001BFE0FFD3A0
:1018A8009414501DEF540370047D1180099001BFFA
:1018B800E020E0077D227F0812246E9001BF021904
:1018C800399001C0E0FFD39414501CEF5403700406
:1018D8007D1180099001C0E020E0077D227F0A1277
:1018E800246E9001C0804A30031F7F03122B907A28
:1018F8000179779001EE122197A37405F0A3747112
:10190800F0121099C2030219A72008559001EEE0C1
:101918005430FF7B30122295600E12225EFFE4FCE9
:10192800FDFEEF600330382A9001BEE0D3942850C2
:1019380004E004F0227BFF7A01799C121099D20806
:10194800E49001C1F09001BEF0C2097F04122B900F
:10195800804D7846E67048FB7A0079291208E880BD
:101968003E9001C1E0FFD39414501FEF540370045C
:101978007D1180099001C1E020E0077D227F0512DA
:10198800246E9001C1E004F08015200912D2097F6D
:1019980004122B90C2107BFF7A0179AC121099C205
:1019A8000722200711D2077F04122B90C21012229F
:1019B8005E9001BDF0221221E5600F12225EFF60E9
:0A19C80004D22FD2309001BDEFF0E1
:0E19D200227F3C1233657F011231E5D20E22D6
:0608E8009001581216B940
:1008EE009001C9E01470030209CF147003020AD4F8
:1008FE00147003020B48147003020D2E24046003BF
:10090E00020E8712213D90001D1214A26003020EEA
:10091E00879001CAE0D3940A5035E004F090001A93
:10092E00743C121514300C03020E8712213D122155
:10093E00B9FF1233657BFF7A0179C29001EEE0FFB9
:10094E00E412214C7413F0121099D20C020E87E4AB
:10095E009001CAF0C20C12213DE412226E900015D5
:10096E00E412151412221A900011E41215149000BC
:10097E0010E4121514900018E4121514900017E4E8
:10098E00121514E4F5F012220E90000CE4F5F0129C
:10099E0015F8900019E412151490001B743C1221E6
:1009AE00C47401F0E49001C4F0A3F07BFF7A0179E6
:1009BE00FD9001EEE0FF90015EE412214F743A804B
:1009CE00349001EEE0FB5420FFE4FCFDFEEF6029C5
:1009DE00EB5410FF602312213D90001D740112157F
:1009EE0014E49001C9F07BFF7A02792A90015E74BB
:1009FE0006F0A37449F0020E841222BEEF70571255
:100A0E00227C12213D9000021222C87D051215365D
:100A1E00EF7802C333CE33CED8F9FF12213D9000CA
:100A2E00061222C89001ABE0FCA3E090000A12224D
:100A3E004DED12213B9000061215A1FFE5F012219B
:100A4E008090000A1222CE12214F7457F07BFF7A4B
:100A5E000279591210991222A0705C12228512216D
:100A6E003DEE8FF01215D91222857D05121536EF47
:100A7E007802C333CE33CED8F9FF12213D90000455
:100A8E001222C89001A7E0FCA3E090000812224DAC
:100A9E00A3ED12213C9000041215A112228EF0A398
:100AAE00EFF09000081222CE12214F7464F07BFFFB
:100ABE007A0279A712109912213D90001C1221C2C0
:100ACE007402F0020E87D39001C5E094051222D86D
:100ADE005003020B54E49001C4F0A3F01222BEFDA9
:100AEE00EF702412227C12213D12220B900018125C
:100AFE00213012219112228E12214F7480F07BFF31
:100B0E007A0279F51210991222A0702512228512FE
:100B1E00213DEE1221DD9000171221301221AD126F
:100B2E00228E12214F748AF07BFF7A03792F1210D6
:100B3E00999001C97403F0020E87D39001C5E09419
:100B4E00021222D8500AE475F00112158B020E879C
:100B5E00E49001C4F012213B90000A12218BD39F26
:100B6E00E5F09E500D12213D1221A4D39FE5F09E7B
:100B7E00404BE49001C912213C90001CE412151464
:100B8E0012213D122191FFE5F012219C1221AD128E
:100B9E00228EF0A3EFF090000A1215A1FFE5F012DD
:100BAE0021D59000081215A1FF900164E5F01221E5
:100BBE004F74A4F07BFF7A037969020E8412213DF3
:100BCE0012224764016003020C75122191D3941412
:100BDE00E5F09400504D9001EEE030E529900016BE
:100BEE0074011221B6C3943C400A12213D900018A4
:100BFE00E412151412213D12214374B6F07BFF7AD4
:100C0E000379C7020C7212213D9000137401121564
:100C1E001412213D12214374BDF07BFF7A04790931
:100C2E00020C7212213D122188D39FE5F09E900195
:100C3E0058401C12169990001374011215141221AB
:100C4E003D12214374C7F07BFF7A04794B80151255
:100C5E00169912226C12213D12214374CEF07BFFA5
:100C6E007A04798D12109912213D122214640160BA
:100C7E0003020E871221ADD39414E5F09400504D6B
:100C8E009001EEE030E42974011221B3C3943C408C
:100C9E000A12213D900017E412151412213D900006
:100CAE000C12214674E1F07BFF7A0479CF020E8498
:100CBE0012213D740112222212213D90000C1221AC
:100CCE004674E8F07BFF7A05790B020E8412213D03
:100CDE009000041221A7D39FE5F09E90015840206A
:100CEE00121699900012740112151412213D9000E3
:100CFE000C12214674F2F07BFF7A057947020E84BE
:100D0E00121699900015740112151412213D9000BF
:100D1E000C12214674F9F07BFF7A057989020E8454
:100D2E00D39001C5E094141222D8501EE475F00140
:100D3E0012158B12227C12213D12220B9001A7E07C
:100D4E00FFA3E0CF1221DD020E87E49001C4F01262
:100D5E00213B122247640170651222146401705EF9
:100D6E00122188122274400812213D1221FD4039B1
:100D7E0012213D9000041221A7122274400B122161
:100D8E003D900008122200402012213D12226C12CA
:100D9E0021BF740212213C1221591222287420F014
:100DAE007BFF7A0579CB020E8412213D1221591256
:100DBE0022287427F07BFF7A067917020E841221FF
:100DCE003D1222476401705A122188122274400883
:100DDE0012213D1221FD402A12213D9000161221B2
:100DEE00C2740212213C1221B912219A9001AB1247
:100DFE00216BA37407F0A3743AF07BFF7A06795C3B
:100E0E00801D12213D1221B912219A9001AB12219F
:100E1E006BA37407F0A37440F07BFF7A06799E12E1
:100E2E00109912213D1222146401704D1221A4D387
:100E3E00122275500F12213D9000041215A1C312FB
:100E4E002204501E12213D1221BF740212213C12A7
:100E5E002159A37407F0A3744EF07BFF7A0679D95B
:100E6E00801412213D122159A37407F0A37454F07B
:100E7E007BFF7A07791B12109912213D122247FF30
:100E8E006401600A12221464016003021018122217
:100E9E00DFFE6401600D9000121214A26401600363
:100EAE00020F96EF64017020122214B4011AEEB4F0
:100EBE0001161222DFB401101222AC7A07795612F3
:100ECE00223D746CF012109912213D1222476401DA
:100EDE00701B12221470161222DF64017038041275
:100EEE0022AE7A07797C12223D7476802512213D3E
:100EFE001222477021122214B4011B9000121214F8
:100F0E00A2B401121222AC7BFF7A07799E12223F05
:100F1E007481F012109912213D12221A90001412AF
:100F2E0014A26401600302102D12213D1221B9D3C7
:100F3E009400400890001A74FE1214CF90001912FB
:100F4E0014A2FF1221B9D39F500F12213D90001A07
:100F5E00EF1221C47404F080069001C97402F0E40B
:100F6E009001C4F012213B900014E41221C4E0FF62
:100F7E00E4122136122178A37407F0A374A0F07B3B
:100F8E00FF7A0779C002100B12213D900016121441
:100F9E00A26401600D9000151214A2640160030298
:100FAE00102D900016E4121514E41221B3C3943CD4
:100FBE00500B12213D90001A74021214CF9001C9E9
:100FCE00740412213C90001B1214A2FF1221B9C30B
:100FDE009F400D12213D90001AEF1221C47401F0B2
:100FEE009001C9E0FF90015EE4122139122178A32D
:100FFE007407F0A374BDF07BFF7A0779F312109992
:10100E0012213D1221B9FF0233659001C9E0D3943C
:0F101E0002400CE412213C90001D7401121514C5
:01102D0022A0
:0B2E6B0090017C1216B990017FEDF081
:102E7600E4FE90017FE0FD14F0ED602990017CE412
:102E860075F0011216A21214896EFEE4FFEFC394C8
:102E96000850DFEE30E007C313648CFE8004EEC3F7
:072EA60013FE0F80E8AF06E8
:012EAD002202
:08246E00900158EFF0A3EDF01E
:10247600E4A3F0A3F0785C7C017D017BFF7A087908
:10248600C8FE7F2012146390015C7455F0A374AAF1
:10249600F0A374FFF0900159E0900161F0900158AB
:1024A600E090015FF01216C224CA01250B0224EA4D
:1024B60003250B04250B05250B0824CA0924CA0A83
:1024C600000025119001607403F09001DAE05402D7
:1024D600C4333354C0FF90012DE04F900162F0E405
:1024E600A3F08027E4FF74852FF582E43401F58399
:1024F600E0FE745C2FF582E43401F583EEF00FEF15
:10250600B420E380069001607401F0900160E0243D
:1025160005FFE43390015AF0A3EFF07B017A0179CD
:102526005CFD122E6B90015AE0FCA3E0245CF58260
:1025360074013CF583EFF07F01122B90900159E076
:10254600FFB4220B75FE0E53FFF043FF08800DEF1C
:10255600B4110975FE0E53FFF043FF0190015BE0D5
:102566002402FF90015AE03400FE7B017A01795C77
:10257600122E26900159E0FFB4220A75FE0353FF7E
:10258600F343FF0822EFB4110975FE0353FFF3432B
:02259600FF0440
:012598002220
:10328600E4900159F0EF24FD6002801290018AE07B
:0E329600B411059001C780039001C87401F0C7
:0132A4002207
:102A7000E4900158F0204203022B02C2427BFF7A0D
:102A8000087926900185122199900186E012217E15
:102A9000900187E0FFE41221D5900188E090016465
:102AA000122265900189E090016612226590018AE8
:102AB000E09001681222E590018BE090016A1222F9
:102AC000E590018CE0FF90016CE4F0A3EFF0A374BB
:102AD0000BF0A37405F01210997B017A01798590AF
:102AE0000189E02405FD122E6B900189E0248AF50E
:102AF00082E43401F583E0B50708900188E0FF1215
:022B000032861B
:012B020022B0
:102FB100602A012E0BB80BEA0C1C0C800CB20CE43D
:102FC1000D160D480D7A0DAC0E100E420E740EA6A4
:0E2FD1000ED80F0A0F3C0F870FD2101D10688C
:102B0300E4FFEF25E0242EF582E43401F583E0FCB5
:102B1300A3E0FDC39001BCE09D9001BBE09C400598
:102B23000FEFB415DD90012DE0FEEFD39E90012C45
:102B3300E0400404F0800214F09001EDE030E3057E
:102B430090012DEFF090012CE0FED394C85006EED7
:102B5300C3940A500B90012DEFF090012C7469F08F
:102B630090012DE0FFD394005002D23CEFD39401A7
:102B73005002D238EFD394055002D23AEFD3940ADD
:0C2B83005002D239EFD3940F5002D23B25
:012B8F002223
:102C7D009001D7E06062E4F0D2249001D5E004F039
:102C8D00E0C394054004E4F0D2259001D8E004F0AF
:102C9D00E0C3940A4004E4F0D2279001D2E475F029
:102CAD000112158BC39001D3E094649001D2E0948E
:102CBD00004006E4F0A3F0D2229001D4E004F0E04D
:102CCD00C394FA4013E4F0D2239001D6E004F0E06F
:092CDD0094044004E4F0D2262224
:03000B00023116A9
:10311600C0E0C083C082C0D074FC258CF58C746678
:10312600258AF58A9001D77401F0D0D0D082D08359
:03313600D0E032B4
:0E346200758901758CFC758A66D2A9D28C2200
:0D347E0075FE0FEF25E0FE7403A80608227E
:1033AF0012347E8002C333D8FCF452FFEFB404060C
:0733BF0075FE0FE4F5FF228B
:1033DC0075FE11EF5407F5FF75FE12AF058FFF75E3
:0633EC00FE1075FF012236
:102DE00012347E8002C333D8FCF452FF7401A8066B
:102DF000088002C333D8FC42FF75FE0B7401A8079C
:102E0000088002C333D8FC42FFEF70038DCE22EF5F
:102E1000B401038DCF22EFB402038DDE22EFB403A1
:062E200004AF058FDF2264
:033FFD00010102BD
:10300F00D28075FE0443FF0175FE0343FF0175FE79
:10301F000243FF01D28175FE0443FF0275FE034395
:0F302F00FF0275FE0243FF029001F17401F022CF
:0C340400C280123410D281123410D28029
:05341000E4FF0FDFFEE8
:013415002294
:10331600D281D2801234102081037F0022C2811212
:0B33260034103081037F00227F012261
:0F344500C280C28112340BD281123410023410B3
:0834A700123404C2800234104B
:0B348B00123404123410C2800234100E
:0231A100AE0777
:1031A3007D08AF051DEF6015C280EE30E704D281C4
:0F31B3008002C281EE25E0FE12340B80E5C2805F
:0131C20022EA
:103139007E08E4FDD281AF061EEF6012ED25E0FDA9
:10314900C28012340B3081EEED4401FD80E8C2806B
:02315900AF05C0
:01315B002251
:0E3470007D087F351230987D0A7F760234AFDA
:102CE6009001581216B97F10122D2EEF1215027F81
:102CF60011122D2E900001EF1215147F12122D388D
:102D0600900002EF1215147F13122D38900003EF76
:102D16001215147F14122F6E9001581216999000F6
:102D260004EF1215147F0022122F6E90015812160E
:0C2D36009922122F6E900158121699225B
:0531C300900158EFF03F
:1031C800E47F20122F6E900158E06006EF4401FF63
:0D31D8008004EF54FEFFAD077F2002309809
:0531E500900159EFF01C
:1031EA00E47F27122F6E900159E06006EF4401FF39
:0D31FA008004EF54FEFFAD077F27023098E0
:0533650090015BEFF098
:10336A00E47F25122F6EEF54C0FF90015BE04FFD02
:05337A007F25023098E0
:05320700900159EFF0F9
:10320C00E47F20122F6E900159E06006EF54FBFF13
:0D321C008004EF4404FFAD077F20023098CE
:0734AF008FFEAF058FFF2225
:0634B6008FFEAEFFAF0621
:0134BC0022ED
:1030980090017FEFF0A3EDF01233167F0C1231A1EF
:1030A80012348B90017FE0FF1231A112348B900112
:0C30B80080E0FF1231A112348B0234457D
:052F6E0090017FEFF06F
:102F7300E4A3F01233167F0C1231A112348B9001AB
:102F83007FE0FF1231A112348B1233167F0D123101
:102F9300A112348B123139900180EFF01234A71251
:072FA3003445900180E0FFBE
:012FAA002204
:1030C40090015DE4F0A3740AF07B147A007D02227F
:1030D400900102F0900101F0900103F0900100F0E2
:0C30E40022F0E490015DF0A3F0FBFA2262
:10315C00E4FB7D04FF123248E4FB7D047F01123254
:10316C0048E4FB7D047F02123248E4FB7D047F03BC
:03317C00023248D4
:1019E00030301CC230E49001F3F090012CF0121C56
:1019F0004FFD7F03122EF074021230D4D243222006
:101A00002106203D03300D64202A05D22AD230223F
:101A1000900102E06402600E1230C4E4FF122EF066
:101A20009001027403F0900101E06402600E123034
:101A3000C47F01122EF09001017403F0900103E0C5
:101A40006402600E1230C47F02122EF09001037403
:101A500003F0900100E064027003021C191230C40C
:101A60007F03122EF09001007403F022302A0CC282
:101A70002AC22CC22BC22EC22FD2479001DAE0FF1D
:101A80007003021B3F64037020202C07D22CC22B52
:101A900002315CE490015D121C1A7D017F03122E5D
:101AA000F074011230D4021B36202B0DD22BC22C25
:101AB000D230E49001F4F0807D9001F3E0C3940112
:101AC0005055E004F0A3E014601A14602714603449
:101AD00024037062900102E06404605A7B017D047B
:101AE000E4FF802E900101E06404604A7B017D04E4
:101AF0007F01801E900103E06404603A7B017D0455
:101B00007F02800E900100E06404602A7B017D0466
:101B10007F03123248801F9001F3E0C3940F5005F9
:101B2000E004F08011E49001F3F0A3E004F0E0C3DE
:101B300094044002E4F0C22EC22FC231D22D2230D2
:101B40002B0AC22B12315CD230D24722202E0C201D
:101B50002D09202F06203103021C199001F3E0FF0C
:101B6000C394015004E004F022EFC39464400302E4
:101B70001C049001F3E004F0303A30900102E0647C
:101B8000037003021C19E490015DF0A3F07B64FA7A
:101B90007D03FF122EF090010274041230E5FD7FE8
:101BA00001122EF09001017402800F30391CE49074
:101BB000015D121C84121C9F74011230E5FD7F022E
:101BC000122EF09001037402801EE490015D303B00
:101BD00027121C84121C9F74011230E57D017F02C4
:101BE000122EF090010374011230E5FD7F03122ED6
:101BF000F09001007402F022121C1A7D01121CAA3E
:101C000074018012C22EC22DC22FC231E4121C4FA9
:091C1000FD121CAA74021230D767
:101C190022F0A3F0FBFA7D01FF122EF0E490015DA2
:101C2900F0A3F0FBFA7D017F01122EF0E490015D33
:101C3900F0A3F0FBFA7D017F02122EF0E490015D22
:101C4900F0A3F0FBFA2290015DF0A3F0FBFAFDFF8F
:101C5900122EF0E490015DF0A3F0FBFAFD7F011272
:101C69002EF0E490015DF0A3F0FBFAFD7F02122E45
:101C7900F0E490015DF0A3F0FBFA22F0A3F0FBFA87
:101C89007D01FF122EF09001027401F0E490015DD4
:101C9900F0A3F0FBFA227D017F01122EF0900101E1
:0A1CA900227F03122EF090010222A8
:10295500023436E493A3F8E493A34003F68001F22E
:1029650008DFF48029E493A3F85407240CC8C33383
:10297500C4540F4420C8834004F456800146F6DF52
:10298500E4800B0102040810204080902FABE47E08
:10299500019360BCA3FF543F30E509541FFEE49347
:1029A500A360010ECF54C025E060A840B8E493A30E
:1029B500FAE493A3F8E493A3C8C582C8CAC583CA39
:1029C500F0A3C8C582C8CAC583CADFE9DEE780BEF1
:012FDF0000F1
:10139300E709F608DFFA8046E709F208DFFA803E3C
:1013A30088828C83E709F0A3DFFA8032E309F60829
:1013B300DFFA8078E309F208DFFA807088828C8391
:1013C300E309F0A3DFFA806489828A83E0A3F60845
:1013D300DFFA805889828A83E0A3F208DFFA804C1F
:1013E30080D280FA80C680D4806980F280338010F6
:1013F30080A680EA809A80A880DA80E280CA80335F
:1014030089828A83ECFAE493A3C8C582C8CCC583D6
:10141300CCF0A3C8C582C8CCC583CCDFE9DEE780A6
:101423000D89828A83E493A3F608DFF9ECFAA9F025
:10143300EDFB2289828A83ECFAE0A3C8C582C8CC7B
:10144300C583CCF0A3C8C582C8CCC583CCDFEADE94
:10145300E880DB89828A83E493A3F208DFF980CCF6
:1014630088F0EF60010E4E60C388F0ED2402B404EF
:101473000050B9F582EB2402B4040050AF23234596
:0614830082239013E373C5
:10148900BB010689828A83E0225002E722BBFE0261
:09149900E32289828A83E4932294
:1014A200BB010CE58229F582E5833AF583E02250FF
:1014B20006E92582F8E622BBFE06E92582F8E22249
:0D14C200E58229F582E5833AF583E4932263
:1014CF00BB010FF8E58229F582E5833AF583E02821
:1014DF00F0225009C58229F8E58226F622BBFE09C3
:1014EF00C58229F8E22582F222F8EA2583F583E9FD
:0314FF009328220D
:10150200BB010689828A83F0225002F722BBFE01C8
:02151200F322C2
:10151400F8BB010DE58229F582E5833AF583E8F00D
:10152400225006E92582C8F622BBFE05E92582C8B9
:02153400F222A1
:10153600BC000BBE0029EF8DF084FFADF022E4CC99
:10154600F875F008EF2FFFEE33FEEC33FCEE9DEC62
:10155600984005FCEE9DFE0FD5F0E9E4CEFD22EDA8
:10156600F8F5F0EE8420D21CFEADF075F008EF2FF2
:10157600FFED33FD4007985006D5F0F222C398FDE3
:051586000FD5F0EA2280
:10158B00C5F0F8A3E028F0C5F0F8E58215827002EB
:06159B001583E038F02288
:1015A100BB0110E58229F582E5833AF583E0F5F088
:1015B100A3E0225009E92582F886F008E622BBFE65
:1015C1000AE92582F8E2F5F008E222E5832AF583AB
:0815D100E993F5F0A3E9932270
:1015D900BB010A89828A83F0E5F0A3F0225006F75D
:0F15E90009A7F01922BBFE06F3E5F009F319225A
:1015F800F8BB0111E58229F582E5833AF583E8F025
:10160800E5F0A3F0225009E92582C8F608A6F022E1
:0D161800BBFE09E92582C8F2E5F008F222C8
:10162500E88FF0A4CC8BF0A42CFCE98EF0A42CFC64
:101635008AF0EDA42CFCEA8EF0A4CDA8F08BF0A4E2
:101645002DCC3825F0FDE98FF0A42CCD35F0FCEB41
:101655008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3906
:0F166500FEE43CFCEAA42DCE35F0FDE43CFC2273
:10167400EB9FF5F0EA9E42F0E99D42F0E89C45F0CC
:011684002243
:10168500E86010ECA2E713FCED13FDEE13FEEF137B
:04169500FFD8F02268
:09169900E0FBA3E0FAA3E0F92252
:1016A200F8E0FBA3A3E0F925F0F0E58215827002D1
:0716B2001583E0FA38F02275
:0916B900EBF0A3EAF0A3E9F02232
:1016C200D083D082F8E4937012740193700DA3A3B7
:1016D20093F8740193F5828883E4737402936860CB
:0616E200EFA3A3A380DFCB
:10102E00E508245EF582E43401F583E0050822909C
:10103E00015B30180390015EE475F0011216A202F6
:10104E0014892011E97F2ED2118018EF540F2490AD
:10105E00D43440D4FF30150BEF24BFB41A00500324
:10106E002461FFE50960021509050CE50C70020507
:10107E000B30180E90015BE475F0011216A2EF0210
:10108E0015020234547403D2188003E4C218F50812
:10109E0090015B1216B9E4F509F50BF50CE5096044
:1010AE00077F2012107180F5750AFFC212C211C29D
:1010BE0013C214C216C217C21912103DFF700D30A2
:1010CE0018057F00121082AF0CAE0B22B4255FC242
:1010DE00D5C21512103DFF24D0B40A00501A75F077
:1010EE000A780930D50508B6FF0106C6A426F620F3
:1010FE00D5047002D21480D924CFB41A00EF500454
:10110E00C2E5D215021283D21280C6D21180C0D28D
:10111E001380BCD2D580BAD21680B47F2012107143
:10112E002013077401B5090040F112102EFF1210A2
:10113E00710210ABD219D217809512102EFB12101D
:10114E002EFA12102EF94A4B700679547A137BFF41
:10115E0020132EE509602A7E008E827583001214FC
:10116E00A260060EEE650A70F0C2D5EBC0E0EAC0D2
:10117E00E0E9C0E0EE1212CAD0E0F9D0E0FAD0E019
:10118E00FB121489FF60AAEBC0E0EAC0E0E9C0E000
:10119E00121071D0E02401F9D0E03400FAD0E0FB57
:1011AE00E50A0460DCD50AD980877BFF7A1279C6FE
:1011BE00D213809C791080027908C217C219800858
:1011CE00D2D5790A8004790AC2D5E50A047002F5EF
:1011DE000AE4FAFDFEFF12102EFC7B0820121312F9
:1011EE00102EFD7B1030110A12102EFE12102EFF43
:1011FE007B20EC3382D592D55013C3E43011069F79
:10120E00FFE49EFEE42012039DFDE49CFCE4CBF87B
:10121E00C212EC700CCFCECDCCE824F8F870F3806F
:10122E0017C3EF33FFEE33FEED33FDEC33FCEB3340
:10123E00FB994002FB0FD8E9EB301205F8D0E0C461
:10124E0048B212C0E00AEC4D4E4F78207B0070C2BF
:10125E00EAB50A0040BCC0E01212CCD0F0D0E020BB
:10126E001204C4C0E0C4B212C0F012105AD0F0D5AD
:10127E00F0EB0210AB1216C211485311C2581119DD
:10128E004C11154211C64F11CE4411CE49112E43A9
:08129E0011D45511B84611B836
:1012A6004511B847137450111D2D11212E11442BD1
:1012B600112523114220135D2A10DD480000113C40
:1012C6003F3F3F00790AA2D5201414301609B91001
:1012D600020404B9080104A2D52017025001042013
:1012E60013689213B509005034C0E07F20301419FA
:1012F6007F30A21372177216500F121323C213C235
:1013060017C216C2197F30800F301603E9C0E012EB
:101316001071301603D0E0F9D0E0B509CC301617BD
:101326007F30B9100C1210717F583015077F788006
:1013360003B908031210713013057F2D0210717F57
:10134600202019F87F2B2017F322921380CF286EC6
:10135600756C6C2900D21212102E3012F8C2127857
:101366000930D50108F60210DD2D504349581210F8
:101376002E2403B405004001E490136F931210620B
:0D138600743A121062D2147509040211C2EB
:00000001FF

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -58,7 +58,7 @@
<CCond>1</CCond>
<CCode>1</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<CSymb>1</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
@ -145,7 +145,24 @@
<Name>-S14 -B921600 -O1799</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>170</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>-16762681</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>E:\todaywork\20241030_sy8835\SY8835_Demo\Project\UsrSrc\userapp\USERAPP.C</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
@ -256,7 +273,7 @@
<GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\UsrSrc\main.c</PathWithFileName>
@ -508,7 +525,7 @@
<GroupNumber>2</GroupNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\UsrSrc\display\display_ui.c</PathWithFileName>

View File

@ -257,8 +257,8 @@
</Ocm3>
<Ocr1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x400</Size>
<StartAddress>0x100</StartAddress>
<Size>0x300</Size>
</Ocr1>
<Ocr2>
<Type>0</Type>
@ -357,7 +357,7 @@
<CSection></CSection>
<UserSection></UserSection>
<CodeBaseAddress></CodeBaseAddress>
<XDataBaseAddress>0X0000-0X03FF</XDataBaseAddress>
<XDataBaseAddress>0X0100-0X03FF</XDataBaseAddress>
<PDataBaseAddress></PDataBaseAddress>
<BitBaseAddress></BitBaseAddress>
<DataBaseAddress></DataBaseAddress>

View File

@ -36,33 +36,27 @@
\******************************************************************************/
extern uint8_t ADC_Chn_Num;
extern idata uint16_t Vbat_Adc;
extern uint16_t Vbat_Adc;
extern idata int16 g_Vpmu_Adc;
extern int16 g_Vpmu_Adc;
extern idata int16 g_Vntc_Adc;
#if 0
extern idata uint16_t g_Vbjt_Adc;
extern int16 g_Vntc_Adc;
extern idata uint16_t g_Vp13_Adc;
extern idata uint16_t g_Vref_Adc;
#endif
extern uint8_t g_PMU_ADC_Chn;
extern idata uint16_t g_pmu_Adc_Ivol;
extern uint16_t g_pmu_Adc_Ivol;
extern idata uint16_t g_pmu_Adc_Vin;
extern uint16_t g_pmu_Adc_Vin;
extern idata uint16_t g_pmu_Adc_Vpmid;
extern uint16_t g_pmu_Adc_Vpmid;
extern idata uint16_t g_pmu_Adc_Vor;
extern uint16_t g_pmu_Adc_Vor;
extern idata uint16_t g_pmu_Adc_Vol;
extern uint16_t g_pmu_Adc_Vol;
extern idata uint16_t g_pmu_Adc_Vdd;
extern uint16_t g_pmu_Adc_Vdd;
extern idata uint16_t g_pmu_Adc_Ivor;
extern uint16_t g_pmu_Adc_Ivor;
typedef enum {

View File

@ -40,10 +40,10 @@
Variables definitions
\******************************************************************************/
extern idata uint8_t bat_level;
extern uint8_t bat_level;
extern idata uint8_t offset_bat_level;
extern uint8_t offset_bat_level;
extern bit F_batlevel_low; //µç³ØµÍѹ

View File

@ -66,9 +66,9 @@ sbit pin_i2c_sda = P0^1;
#endif
#define __I2C_SPEED_FAST__
extern idata bool F_I2C_SIMU_INIT;
extern bool F_I2C_SIMU_INIT;
extern idata bool F_I2C_SIMU_ERROR;
extern bool F_I2C_SIMU_ERROR;
/******************************************************************************\
Functions definitions

View File

@ -369,7 +369,7 @@ typedef enum
} TE_CHG_STA;
extern idata TE_CHG_STA ChgStatus; // Charger״̬¶¨Òå
extern TE_CHG_STA ChgStatus; // Charger״̬¶¨Òå
/* Boost相关标志位 */
extern bit gBoost_Prepared_Flag; //Boost满足开启条件TRUE:Boost无保护可以开启FAULSE:Boost有保护无法正常开启。

View File

@ -44,12 +44,14 @@
#define GPIO_I2C_SIMULATE 1 //GPIO 模拟 I2C接口
#define HALL_ENABLE 1 //Hall功能。(Hall 46Bytes)
#define KEY_ENABLE 1 //Key功能(111Bytes)
#define VOX_ENABLE 1 //1080Bytes
#define VOX_COVER_ENABLE //带HALL关盖应用
//#define VOX_ADT_ENABLE //无HALL耳机入盒充电应用
#define VOX_FOLLOW_CHG 1 //1701Bytes
#if VOX_ENABLE
@ -60,6 +62,16 @@
#endif
#ifdef VOX_ADT_ENABLE
#define HALL_ENABLE 0
#else
#define HALL_ENABLE 1 //Hall功能。(Hall 103Bytes)
#endif
#define CHARGER_ENABLE 1 //94Bytes
#define DISCHARGE_ENABLE 1 //75Bytes
@ -82,7 +94,7 @@
#ifdef _DEBUG_ALL
#define _DEBUG_MAIN
// #define _DEBUG_MAIN
#define _DEBUG_PMU
#define _DEBUG_KEY
#define _DEBUG_VOX

View File

@ -47,7 +47,7 @@ typedef enum {
KEY_EVENT_LL_8S, //Key super long press for 8s interrupt flag
}KEY_EVENT_E;
extern idata KEY_EVENT_E Event_key;
extern KEY_EVENT_E Event_key;
/******************************************************************************\
Functions definitions

View File

@ -449,7 +449,7 @@ typedef enum
}g_chg_type;
extern g_PMU_Info xdata pmu_Info; //pmu状态信息
extern g_PMU_Info pmu_Info; //pmu状态信息
extern g_PMU_Sys_Cfg pmu_Sys_Cfg;

View File

@ -63,7 +63,7 @@ extern char putchar (char ch);
Variables definitions
\******************************************************************************/
extern idata uint8_t RX0_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
extern uint8_t RX0_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
extern bit Uart0_RX_Finish_Flag;
#endif

View File

@ -52,7 +52,7 @@ typedef struct {
}s_sys_state;
extern xdata s_sys_state Systerm_State;
extern s_sys_state Systerm_State;
extern bit Wkup_Earphone_Flag; //保护消失后,需要升压唤醒耳机标志位

View File

@ -34,19 +34,28 @@
/*软件版本信息*/
#define FW_VER 0x001 //程序版本
extern bit Vox_Vout_Enable;
extern bit Vox_Output_Short_Flag;
#define IVOX_THN 20 //耳机跟随充电流下降阈值
#define IVOX_THP 200 //耳机跟随充电流上升阈值
#define VOL_TYPE 0x00
#define VOR_TYPE 0x01
#define VOX_MAX_CHAN 0x02
typedef enum {
VOX_NONE_IN_BOX = 0, //空仓
VOX_GET_INTO_BOX, //耳机入仓
VOX_STAY_IN_BOX, //耳机在仓
}Vox_State_e;
/*耳机配对状态*/
typedef enum {
@ -60,6 +69,7 @@ extern bit Vox_Output_Short_Flag;
}e_Vox_Pairing_State;
/*耳机配对记录*/
typedef enum {
@ -69,6 +79,26 @@ extern bit Vox_Output_Short_Flag;
}e_Vox_Paired_State;
#ifdef VOX_COVER_ENABLE
extern bit Vox_Vout_Enable; //Vox功率输出标志位
#else
extern bit Vor_Vout_Enable; //Vor功率输出标志位
extern bit Vol_Vout_Enable; //Vol功率输出标志位
extern bit Vor_GetOut_Box_Flag;
extern bit Vol_GetOut_Box_Flag;
extern Vox_State_e Vor_State;
extern Vox_State_e Vol_State;
#endif
#if VOX_ENABLE
/******************************************************************************\
@ -151,8 +181,6 @@ typedef enum {
VOR_CHAN = 0x01,
VOX_MAX_CHAN = 0x02,
VOX_BOTH = 0xFF,
}e_Vox_Chan;
@ -190,8 +218,6 @@ typedef enum {
VOR_CHAN = 0x22,
VOX_MAX_CHAN = 0x02,
VOX_BOTH = 0xff,
}e_Vox_Chan;
@ -231,6 +257,7 @@ typedef enum _VOX_BES_COMMAND_E
}VOX_BES_COMMAND_E;
#elif XUANHENG
typedef enum {
@ -241,8 +268,6 @@ typedef enum {
VOX_BOTH = 0x21,
VOX_MAX_CHAN = 0x02,
}e_Vox_Chan;
/*耳机和充电仓进行双向通讯的协议命令ID。*/
@ -268,6 +293,19 @@ typedef enum _VOX_BES_COMMAND_E
}VOX_BES_COMMAND_E;
#else
/*耳机通道选择*/
typedef enum {
VOL_CHAN = 0x00,
VOR_CHAN = 0x01,
VOX_BOTH = 0xFF,
}e_Vox_Chan;
#endif
/* Vox Channel Select. */
@ -323,9 +361,9 @@ extern bit OpenCover_TX_Cmd_Flag;
#ifdef VOX_RX
extern xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态VOL:低4bitVOR:高4bit。0是无效1是正在配对2是配对成功3不处理保持当前状态。
extern uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态VOL:低4bitVOR:高4bit。0是无效1是正在配对2是配对成功3不处理保持当前状态。
extern xdata uint8_t Vox_Get_BES_Addr_Flag[2] ;
extern uint8_t Vox_Get_BES_Addr_Flag[2] ;
#endif
@ -363,7 +401,7 @@ typedef struct {
} g_Vox_Fllow_Chg_Cfg;
extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg;
extern g_Vox_Fllow_Chg_Cfg idata Vox_Fllow_Chg;
#endif
@ -372,17 +410,43 @@ extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg;
/******************************************************************************\
UserCfg.Functions definitions
\******************************************************************************/
#ifdef VOX_TX
extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select);
#endif
#ifdef VOX_ADT_ENABLE
extern void Vol_Det_Machine(void);
extern void Vor_Det_Machine(void);
#else
extern void Vox_Det_Machine(void);
#endif
#if VOX_FOLLOW_CHG
extern void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg );
#endif
#ifdef VOX_ADT_ENABLE
extern void VOL_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode);
extern void VOR_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode);
#else
extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode);
#endif
#ifdef VOX_RX
extern void HandleVoxCommMsg(void);
#endif
#endif

View File

@ -35,27 +35,27 @@ int8_t ADC_Offset_Error; //ADC Offset Error У׼ֵ
uint8_t ADC_Chn_Num;
idata uint16_t Vbat_Adc;
uint16_t Vbat_Adc;
idata int16 g_Vpmu_Adc;
int16 g_Vpmu_Adc;
idata int16 g_Vntc_Adc;
int16 g_Vntc_Adc;
uint8_t g_PMU_ADC_Chn;
idata uint16_t g_pmu_Adc_Ivol;
uint16_t g_pmu_Adc_Ivol;
idata uint16_t g_pmu_Adc_Vin;
uint16_t g_pmu_Adc_Vin;
idata uint16_t g_pmu_Adc_Vpmid;
uint16_t g_pmu_Adc_Vpmid;
idata uint16_t g_pmu_Adc_Vor;
uint16_t g_pmu_Adc_Vor;
idata uint16_t g_pmu_Adc_Vol;
uint16_t g_pmu_Adc_Vol;
idata uint16_t g_pmu_Adc_Vdd;
uint16_t g_pmu_Adc_Vdd;
idata uint16_t g_pmu_Adc_Ivor;
uint16_t g_pmu_Adc_Ivor;
/******************************************************************************\
Functions definitions

View File

@ -21,7 +21,7 @@
#include "adc.h"
#include "pmu.h"
idata uint8_t bat_level;
uint8_t bat_level;
bit F_batlevel_low; //电池低压
@ -482,7 +482,7 @@ bit F_batlevel_50p;
bit F_batlevel_75p;
idata uint8_t offset_bat_level;
uint8_t offset_bat_level;
/*充电电池电压会浮高,具体电压需要测试。*/
const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] =
@ -580,27 +580,27 @@ void check_bat_level(void)
if( bat_level <= C_bat_level_protect )
{
F_batlevel_protect = 1;
F_batlevel_protect = TRUE;
}
if( bat_level <= C_bat_level_lowpower )
{
F_batlevel_low = 1;
F_batlevel_low = TRUE;
}
if( bat_level <= C_bat_level_25p_power )
{
F_batlevel_25p = 1;
F_batlevel_25p = TRUE;
}
if( bat_level <= C_bat_level_50p_power )
{
F_batlevel_50p = 1;
F_batlevel_50p = TRUE;
}
if( bat_level <= C_bat_level_75p_power )
{
F_batlevel_75p = 1;
F_batlevel_75p = TRUE;
}
}

View File

@ -32,7 +32,7 @@
bit CHG_NTC_Pro_Flag;
#endif
idata TE_CHG_STA ChgStatus; // CHG状态定义
TE_CHG_STA ChgStatus; // CHG状态定义
#if CHARGER_ENABLE
/******************************************************************************\
@ -44,11 +44,9 @@ idata TE_CHG_STA ChgStatus; // CHG״̬
Variables definitions
\******************************************************************************/
uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。
idata uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。
idata s_gCharger_Cfg gCharge_Cfg;
s_gCharger_Cfg gCharge_Cfg;
/******************************************************************************\
Functions definitions
@ -138,7 +136,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > JEITA_NTC_CHG_COLD_HIGH_TMP ) //0.5*ICC充电
{
NTC_250mA_Chg_Flag = 1;
NTC_250mA_Chg_Flag = TRUE;
gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting / 2;
@ -146,7 +144,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > JEITA_NTC_CHG_COLD_HYST_HIGH_TMP )
{
NTC_500mA_Chg_Flag = 0;
NTC_500mA_Chg_Flag = FALSE;
//gCharge_Cur.nConstant_Cur = gConstant_Cur_Max_Setting / 2;
}
@ -161,7 +159,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
else
if( NTC_Adc <= JEITA_NTC_CHG_WARM_LOW_TMP && NTC_Adc > JEITA_NTC_CHG_WARM_HIGH_TMP ) //1*ICC充电
{
NTC_500mA_Chg_Flag = 1;
NTC_500mA_Chg_Flag = TRUE;
gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting;
@ -169,7 +167,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_LOW_TMP )
{
NTC_250mA_Chg_Flag = 0;
NTC_250mA_Chg_Flag = FALSE;
// gCharge_Cur.nConstant_Cur = gConstant_Cur_Max_Setting;
}
@ -185,7 +183,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_HIGH_TMP )
{
NTC_Change_CV_Chg_Flag = 0;
NTC_Change_CV_Chg_Flag = FALSE;
// gCharge_Cur.nVFloat = CHG_VFLOAT_4_200V;
}
@ -200,7 +198,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
else
if( NTC_Adc <= JEITA_NTC_CHG_HOT_LOW_TMP ) //浮充电压4.05V
{
NTC_Change_CV_Chg_Flag = 1;
NTC_Change_CV_Chg_Flag = TRUE;
gCharge_Cfg.nVFloat = VFLOAT_JEITA_HOT;
@ -208,7 +206,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if(NTC_Adc <= JEITA_NTC_CHG_HOT_HYST_LOW_TMP)
{
NTC_500mA_Chg_Flag = 0;
NTC_500mA_Chg_Flag = FALSE;
// gCharge_Cur.nVFloat = CHG_VFLOAT_4_050V;
}
@ -225,7 +223,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc < JEITA_NTC_CHG_PRO_HYST_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_Low_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
else
@ -238,7 +237,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > JEITA_NTC_CHG_PRO_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
else
@ -251,7 +251,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > JEITA_NTC_CHG_PRO_LOW_TMP ) //不充电
{
CHG_NTC_Low_Pro_Flag = 1;
CHG_NTC_Low_Pro_Flag = TRUE;
#ifdef _DEBUG_CHARGER
printf("NTC Low Pro!NTC_Adc:%d,(line:%d)\r\n",(uint16)NTC_Adc,(uint16)__LINE__);
@ -262,7 +262,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_Adc <= JEITA_NTC_CHG_PRO_HIGH_TMP ) //不充电
{
CHG_NTC_High_Pro_Flag = 1;
CHG_NTC_High_Pro_Flag = TRUE;
NTC_Flag = TRUE;
@ -272,13 +272,14 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
}
DisChg_NTC_Low_Pro_Flag = 0;
DisChg_NTC_High_Pro_Flag = 0;
DisChg_NTC_Low_Pro_Flag = FALSE;
DisChg_NTC_High_Pro_Flag = FALSE;
}
else //放电模式
{
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
CHG_NTC_Low_Pro_Flag = FALSE;
CHG_NTC_High_Pro_Flag = FALSE;
if( NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP && NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP ) //正常放电
{
@ -286,7 +287,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
DisChg_NTC_Low_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
else
@ -299,7 +301,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
DisChg_NTC_High_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
else
@ -312,12 +315,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > NTC_DISCHG_PRO_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 1;
DisChg_NTC_Low_Pro_Flag = TRUE;
}
else
if( NTC_Adc < NTC_DISCHG_PRO_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 1;
DisChg_NTC_High_Pro_Flag = TRUE;
}
NTC_Flag = TRUE;
@ -334,7 +337,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc < IEC_NTC_CHG_HYST_LOW_TMP )
{
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_Low_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
@ -348,7 +351,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > IEC_NTC_CHG_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
@ -362,12 +365,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if(NTC_Adc > IEC_NTC_CHG_PRO_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 1;
CHG_NTC_Low_Pro_Flag = TRUE;
}
else
if(NTC_Adc <= IEC_NTC_CHG_PRO_HIGH_TMP)
{
CHG_NTC_High_Pro_Flag = 1;
CHG_NTC_High_Pro_Flag = TRUE;
}
#ifdef _DEBUG_CHARGER
@ -376,13 +379,15 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = TRUE;
}
DisChg_NTC_Low_Pro_Flag = 0;
DisChg_NTC_High_Pro_Flag = 0;
DisChg_NTC_Low_Pro_Flag = FALSE;
DisChg_NTC_High_Pro_Flag = FALSE;
}
else //放电模式
{
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
CHG_NTC_Low_Pro_Flag = FALSE;
CHG_NTC_High_Pro_Flag = FALSE;
if( (NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP) && (NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP) ) //正常放电
{
@ -390,7 +395,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
DisChg_NTC_Low_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
@ -404,7 +409,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
DisChg_NTC_High_Pro_Flag = FALSE;
NTC_Flag = FALSE;
}
@ -418,12 +423,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
{
if(NTC_Adc > NTC_DISCHG_PRO_LOW_TMP)
{
DisChg_NTC_Low_Pro_Flag = 1;
DisChg_NTC_Low_Pro_Flag = TRUE;
}
else
if(NTC_Adc <= NTC_DISCHG_PRO_HIGH_TMP)
{
DisChg_NTC_High_Pro_Flag = 1;
DisChg_NTC_High_Pro_Flag = TRUE;
}
NTC_Flag = TRUE;
@ -475,14 +480,14 @@ void Charger_Handler(void)
{
Set_PMU_CHG(OFF); //Disable Charger.
CHG_NTC_Pro_Flag = 1;
CHG_NTC_Pro_Flag = TRUE;
ChgStatus = CHG_PROTECT;
return;
}
CHG_NTC_Pro_Flag = 0;
CHG_NTC_Pro_Flag = FALSE;
#endif
@ -508,27 +513,27 @@ void Charger_Handler(void)
if( bat_level > ( C_bat_level_protect + 1 ) )
{
F_batlevel_protect = 0;
F_batlevel_protect = FALSE;
}
if( bat_level > (C_bat_level_lowpower + 2) )
{
F_batlevel_low = 0;
F_batlevel_low = FALSE;
}
if( bat_level > (C_bat_level_25p_power + 2) )
{
F_batlevel_25p = 0;
F_batlevel_25p = FALSE;
}
if( bat_level > (C_bat_level_50p_power + 2) )
{
F_batlevel_50p = 0;
F_batlevel_50p = FALSE;
}
if( bat_level > (C_bat_level_75p_power + 2) )
{
F_batlevel_75p = 0;
F_batlevel_75p = FALSE;
}
#endif

View File

@ -95,7 +95,7 @@ bit gBoost_UVLO_Flag;
if( (BST_EN & 0x01) && gBoost_Prepared_Flag )
{
BST_EN = 0; //Boost Disable
gBoost_Prepared_Flag = 0;
gBoost_Prepared_Flag = FALSE;
#ifdef _DEBUG_DISCHARGE
printf("Bst Close\r\n");
@ -123,11 +123,11 @@ void DisCharge_Handler(void)
/*放电过流保护 --- 硬件实现*/
#if 0
gBoost_Prepared_Flag = 1;
gBoost_Prepared_Flag = TRUE;
#else
gBoost_Prepared_Flag = 0;
gBoost_Prepared_Flag = FALSE;
/*过温保护 --- 硬件实现*/
if( pmu_Info.pmu_Fault_STA2 & Fault_Sta2_CHIP_OTP )
@ -138,7 +138,7 @@ void DisCharge_Handler(void)
/*Boost Input UVLO 硬件实现*/
if( pmu_Info.pmu_Fault_STA2 & Fault_Sta2_BoostUV )
{
gBoost_UVLO_Flag = 1;
gBoost_UVLO_Flag = TRUE;
return;
}
@ -178,16 +178,16 @@ void DisCharge_Handler(void)
Set_PMU_Boost(OFF);
Boost_NTC_Pro_Flag = 1;
Boost_NTC_Pro_Flag = TRUE;
return;
}
Boost_NTC_Pro_Flag = 0;
Boost_NTC_Pro_Flag = FALSE;
#endif
gBoost_Prepared_Flag = 1;
gBoost_Prepared_Flag = TRUE;
/*
VIN Boost UVLO 2.8/3.0V boost 使
@ -201,13 +201,13 @@ void DisCharge_Handler(void)
{
if( Vbat_Adc >= OPEN_BOOST_VIN )
{
gBoost_Prepared_Flag = 1;
gBoost_Prepared_Flag = TRUE;
gBoost_UVLO_Flag = 0;
gBoost_UVLO_Flag = FALSE;
}
else
{
gBoost_Prepared_Flag = 0; //Boost Disable
gBoost_Prepared_Flag = FALSE;
}
}
}

View File

@ -118,7 +118,7 @@ uint8_t Breathing_Light_Cnt; //
if( LED_On_Flag )
{
LED_On_Flag = 0;
LED_On_Flag = FALSE;
LED_On_Timer = 0;
@ -127,7 +127,7 @@ uint8_t Breathing_Light_Cnt; //
Display_AllOff();
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif
return;
}
@ -138,9 +138,9 @@ uint8_t Breathing_Light_Cnt; //
{
if( !LED_On_Flag1 )
{
LED_On_Flag1 = 1;
LED_On_Flag1 = TRUE;
LED_On_Flag = 1;
LED_On_Flag = TRUE;
}
else
{
@ -171,17 +171,17 @@ uint8_t Breathing_Light_Cnt; //
/* 保护消失后需要开启5V升压一段时间。 */
if( LED_On_Flag1 )
{
LED_On_Flag1 = 0;
LED_On_Flag1 = FALSE;
LED_On_ChgDone_Flag = 0;
LED_On_ChgDone_Flag = FALSE;
LED_On_Chg_Flag = 0;
LED_On_Chg_Flag = FALSE;
CoverEvent_Flg_led = 0;
CoverEvent_Flg_led = FALSE;
Earphone_Chg_Flag_led = 0;
Earphone_Chg_Flag_led = FALSE;
Wkup_Earphone_Flag = 1;
Wkup_Earphone_Flag = TRUE;
}
#endif
@ -192,9 +192,9 @@ uint8_t Breathing_Light_Cnt; //
{
if( !LED_On_ChgDone_Flag )
{
LED_On_ChgDone_Flag = 1;
LED_On_ChgDone_Flag = TRUE;
LED_On_Chg_Flag = 0;
LED_On_Chg_Flag = FALSE;
LED_Breating_Light_Off();
@ -207,13 +207,14 @@ uint8_t Breathing_Light_Cnt; //
{
if( !LED_On_Chg_Flag )
{
LED_On_Chg_Flag = 1;
LED_On_Chg_Flag = TRUE;
LED_On_ChgDone_Flag = 0;
LED_On_Flag = 1;
LED_On_ChgDone_Flag = FALSE;
LED_On_Flag = TRUE;
#ifdef PWM_ENABLE
Breathing_Light_Cnt = LED_R;
#endif
}
else
{
@ -284,25 +285,25 @@ uint8_t Breathing_Light_Cnt; //
}
}
CoverEvent_Flg_led = 0;
CoverEvent_Flg_led = FALSE;
Earphone_Chg_Flag_led = 0;
Earphone_Chg_Flag_led = FALSE;
Key_Press_short_irq_led = 0;
Key_Press_short_irq_led = FALSE;
Disp_Bat_Lev = 1;
Disp_Bat_Lev = TRUE;
}
else
{
if( LED_On_Chg_Flag )
{
LED_On_Chg_Flag = 0;
LED_On_Chg_Flag = FALSE;
LED_Breating_Light_Off();
LED_On_Flag = 1;
LED_On_Flag = TRUE;
Wkup_Earphone_Flag = 1;
Wkup_Earphone_Flag = TRUE;
return;
}
@ -352,13 +353,13 @@ uint8_t Breathing_Light_Cnt; //
}
else
{
CoverEvent_Flg_led = 0;
CoverEvent_Flg_led = FALSE;
Disp_Bat_Lev = 0;
Disp_Bat_Lev = FALSE;
Earphone_Chg_Flag_led = 0;
Earphone_Chg_Flag_led = FALSE;
Key_Press_short_irq_led = 0;
Key_Press_short_irq_led = FALSE;
Display_AllOff(); //清LED显示
}

View File

@ -104,20 +104,20 @@ uint8_t Hall_Sta_bk;
#endif
}
CoverEvent_Flg = 1;
CoverEvent_Flg = TRUE;
Boost_Open_Flag = 0;
Boost_Open_Flag = FALSE;
CoverEvent_Flg_led = 1;
CoverEvent_Flg_led = TRUE;
#ifdef LED_DISPLAY
LED_On_Flag = 1;
LED_On_Flag = TRUE;
#endif
Hall_Sta_bk = Hall_Sta;
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif
}

View File

@ -29,8 +29,8 @@
Variables definitions
\******************************************************************************/
idata bool F_I2C_SIMU_INIT;
idata bool F_I2C_SIMU_ERROR;
bool F_I2C_SIMU_INIT;
bool F_I2C_SIMU_ERROR;
/******************************************************************************\
Functions definitions

View File

@ -60,7 +60,7 @@ bit Key_Press_l_irq;
bit Key_Press_ll_irq;
idata KEY_EVENT_E Event_key;
KEY_EVENT_E Event_key;
uint8_t Key_TWS_Pair_Tim;
@ -107,7 +107,7 @@ uint8_t Key_Lift_Debounce;
Key_Press_Debounce++;
if( Key_Press_Debounce >= KEY_PRESS_8S_CNT ) //长按8sVOX掉电
{
Key_Press_ll_irq = 1;
Key_Press_ll_irq = TRUE;
#ifdef _DEBUG_KEY
printf("supper long 8s press.(line:%d)\r\n",(u16)__LINE__);
#endif
@ -117,13 +117,13 @@ uint8_t Key_Lift_Debounce;
{
if( !nKey_Press_2s_Flag )
{
nKey_Press_2s_Flag = 1;
nKey_Press_2s_Flag = TRUE;
}
}
Key_Press_Flag = 1;
Key_Press_Flag = TRUE;
Key_Lift_Flag = 0;
Key_Lift_Flag = FALSE;
}
else
{
@ -131,24 +131,24 @@ uint8_t Key_Lift_Debounce;
{
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif
Event_key = KEY_EVENT_Empty;
Key_Press_Flag = 0;
Key_Press_Flag = FALSE;
Key_Lift_Flag = 1;
Key_Lift_Flag = TRUE;
Key_Lift_Debounce = 0;
if( (Key_Press_Debounce <= KEY_PRESS_500MS_CNT) ) //松开按键按下时间小于500ms则识别为短按显示电量
{
Key_Press_short_irq_led = 1;
Key_Press_short_irq_led = TRUE;
nKey_Press_short_irq = 1;
nKey_Press_short_irq = TRUE;
#ifdef LED_DISPLAY
LED_On_Flag = 1;
LED_On_Flag = TRUE;
#endif
}
else
@ -156,11 +156,11 @@ uint8_t Key_Lift_Debounce;
{
if( nKey_Press_2s_Flag )
{
Key_Press_l_irq = 1;
Key_Press_l_irq = TRUE;
}
}
nKey_Press_2s_Flag = 0;
nKey_Press_2s_Flag = FALSE;
#ifdef _DEBUG_KEY
printf("Key lift(line:%d).\r\n",(u16)__LINE__);
@ -180,15 +180,25 @@ uint8_t Key_Lift_Debounce;
Set_PMU_Boost(ON);
Boost_Open_Flag = 1;
Boost_Open_Flag = TRUE;
#ifdef _DEBUG_KEY
printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__);
#endif
return;
}
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
Vol_State = VOX_GET_INTO_BOX;
Vor_State = VOX_GET_INTO_BOX;
#else
VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
#endif
#endif
if( Key_Lift_Debounce <= KEY_LIFT_CNT )
{
@ -197,17 +207,17 @@ uint8_t Key_Lift_Debounce;
return;
}
Key_Press_l_irq = 0;
Key_Press_l_irq = FALSE;
/*todo*/
Event_key = KEY_EVENT_L_2S;
Key_TWS_Pair_Tim = 0;
#ifdef VOX_TX
/*耳机配对*/
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
#endif
#ifdef _DEBUG_KEY
printf("long 2s press\r\n");
#endif
@ -221,14 +231,25 @@ uint8_t Key_Lift_Debounce;
Set_PMU_Boost(ON);
Boost_Open_Flag = 1;
Boost_Open_Flag = TRUE;
#ifdef _DEBUG_KEY
printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__);
#endif
return;
}
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
Vol_State = VOX_GET_INTO_BOX;
Vor_State = VOX_GET_INTO_BOX;
#else
VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
#endif
#endif
if( Key_Lift_Debounce <= KEY_LIFT_CNT )
{
@ -237,7 +258,7 @@ uint8_t Key_Lift_Debounce;
return;
}
Key_Press_ll_irq = 0;
Key_Press_ll_irq = FALSE;
Key_TWS_Clear_Pair_Tim = 0;
/*todo*/
@ -250,7 +271,7 @@ uint8_t Key_Lift_Debounce;
if( nKey_Press_short_irq )
{
nKey_Press_short_irq = 0;
nKey_Press_short_irq = FALSE;
/*todo*/
// Event_key = KEY_EVENT_SHORT;
@ -260,12 +281,12 @@ uint8_t Key_Lift_Debounce;
#endif
}
Key_Lift_Flag = 0;
Key_Lift_Flag = FALSE;
Boost_Open_Flag = 0;
Boost_Open_Flag = FALSE;
}
#if 1
#ifdef VOX_TX
if ( CoverStatus == OPEN )
{
if( Event_key == KEY_EVENT_L_2S ) //长按2s充电仓发送配对指令。
@ -303,10 +324,20 @@ uint8_t Key_Lift_Debounce;
#endif
Event_key = KEY_EVENT_Empty;
OpenCover_TX_Cmd_Flag = 1;
OpenCover_TX_Cmd_Flag = TRUE;
#if VOX_ENABLE
VOX_EN_Type(VOX_ADT_Mode);
#ifdef VOX_ADT_ENABLE
Vol_State = VOX_GET_INTO_BOX;
Vor_State = VOX_GET_INTO_BOX;
#else
VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
#endif
#endif
#ifdef _DEBUG_KEY
printf("Key Pair TimeOut(line:%d).\r\n",(uint16_t)__LINE__);
#endif
@ -359,9 +390,20 @@ uint8_t Key_Lift_Debounce;
Event_key = KEY_EVENT_Empty;
OpenCover_TX_Cmd_Flag = 1;
OpenCover_TX_Cmd_Flag = TRUE;
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
Vol_State = VOX_NONE_IN_BOX;
Vor_State = VOX_NONE_IN_BOX;
#else
VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V
#endif
#endif
VOX_EN_Type(VOX_ADT_Mode);
#ifdef _DEBUG_KEY
printf("Key Pair Get VOL(line:%d).\r\n",(uint16_t)__LINE__);
#endif
@ -438,11 +480,23 @@ uint8_t Key_Lift_Debounce;
{
Event_key = KEY_EVENT_Empty;
OpenCover_TX_Cmd_Flag = 1;
OpenCover_TX_Cmd_Flag = TRUE;
Key_TWS_Clear_Pair_Tim = 0;
VOX_EN_Type(VOX_ADT_Mode);
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
Vol_State = VOX_NONE_IN_BOX;
Vor_State = VOX_NONE_IN_BOX;
#else
VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V
#endif
#endif
}
}
}

View File

@ -201,6 +201,7 @@ void LED_Drv(void)
/******************************************************************************/
{
uint8_t i = 0;
static bit PWM_Dir_Flag;
for(i = 0;i < LED_ID_MAX;i++)
@ -262,7 +263,9 @@ void LED_Drv(void)
if( LED.Light_Dir[i] == SHOW_NONE )
{
PWM_Disable(i);
PWM_Dir_Flag = 0;
PWM_Dir_Flag = FALSE;
LED.State[i] = LED_OFF;
}
else
@ -271,7 +274,7 @@ void LED_Drv(void)
{
if( !PWM_Dir_Flag )
{
PWM_Dir_Flag = 1;
PWM_Dir_Flag = TRUE;
LED.Flash_Duty[i] = PWM_REL_VALUE;
}
@ -287,7 +290,7 @@ void LED_Drv(void)
{
if( !PWM_Dir_Flag )
{
PWM_Dir_Flag = 1;
PWM_Dir_Flag = TRUE;
LED.Flash_Duty[i] = PWM_REL_FULL;
}
@ -303,12 +306,12 @@ void LED_Drv(void)
{
if( LED.Flash_Duty[i] >= PWM_REL_FULL )
{
PWM_Dir_Flag = 1;
PWM_Dir_Flag = TRUE;
}
else
if( LED.Flash_Duty[i] <= (PWM_REL_VALUE + 1) )
{
PWM_Dir_Flag = 0;
PWM_Dir_Flag = FALSE;
}
if(PWM_Dir_Flag)

View File

@ -48,7 +48,7 @@ void main(void )
#ifdef _DEBUG_MAIN
printf("System Init.Ver:%2x%2x%2x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2);
printf("System Init.Ver:%02x%02x%02x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2);
#endif

View File

@ -31,7 +31,7 @@
Variables definitions
\******************************************************************************/
g_PMU_Info xdata pmu_Info; //pmu状态信息
g_PMU_Info pmu_Info; //pmu状态信息
#if 0
g_PMU_Sys_Cfg pmu_Sys_Cfg;

View File

@ -254,12 +254,24 @@ void Enter_Sleep(void)
*/
bit Check_Require_Sleep(void )
{
#ifdef VOX_ADT_ENABLE
if( ( ChgStatus > CHG_PROTECT ) || ( ON == Vol_Vout_Enable ) || ( ON == Vor_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下Boost重载输出系统不进休眠模式。 */
#else
if( ( ChgStatus > CHG_PROTECT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下Boost重载输出系统不进休眠模式。 */
#endif
{
#ifdef VOX_ADT_ENABLE
#ifdef _DEBUG_SLEEP
printf("Not Get Into Sleep(ChgStatus:%d,Vol_Vout:%d,Vor_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vol_Vout_Enable,(uint16_t)Vor_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag);
#endif
#else
#ifdef _DEBUG_SLEEP
printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag);
#endif
Enter_Sleep_Cnt_Restart_Flag = 0;
#endif
Enter_Sleep_Cnt_Restart_Flag = FALSE;
/*处理对应的保护和中断唤醒事件。*/
return false;
}

View File

@ -131,6 +131,15 @@ void System_Init(void)
Decnt_SleepDelay = ENTER_STANDBYMODE_CNT;
Systerm_State.Next_State = POWER_ON_STATE;
Boost_Open_Flag = FALSE;
#ifdef VOX_ADT_ENABLE
Vol_GetOut_Box_Flag = TRUE;
Vor_GetOut_Box_Flag = TRUE;
#endif
}
/*
@ -153,7 +162,7 @@ void EX0_isr(void) interrupt Interrupt_Vector_IE0
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif

View File

@ -87,14 +87,15 @@ void Sys_Tim0_Handler(void)
return;
F_sys_tim_tick = 0;
//system tick
F_sys_tim_1ms = 1;
F_sys_tim_1ms = TRUE;
//---------------5ms----------------------------------------
cnt_sys_tim_5ms++;
if(cnt_sys_tim_5ms >= 5)
{
cnt_sys_tim_5ms = 0;
F_sys_tim_5ms = 1;
F_sys_tim_5ms = TRUE;
}
//---------------10ms----------------------------------------
@ -103,8 +104,7 @@ void Sys_Tim0_Handler(void)
{
cnt_sys_tim_10ms = 0;
F_sys_tim_10ms = 1;
F_sys_tim_10ms = TRUE;
}
//---------------100ms----------------------------------------
@ -112,7 +112,8 @@ void Sys_Tim0_Handler(void)
if(cnt_sys_tim_100ms >= 100)
{
cnt_sys_tim_100ms = 0;
F_sys_tim_100ms = 1;
F_sys_tim_100ms = TRUE;
}
//-------------------------------------------------
@ -120,14 +121,16 @@ void Sys_Tim0_Handler(void)
if(cnt_sys_tim_250ms>=250)
{
cnt_sys_tim_250ms = 0;
F_sys_tim_250ms = 1;
F_sys_tim_250ms = TRUE;
//-----------------250ms-------------------------
cnt_sys_tim_1s++;
if(cnt_sys_tim_1s >= 4)
{
cnt_sys_tim_1s = 0;
F_sys_tim_1s = 1;
F_sys_tim_1s = TRUE;
}
}
}
@ -173,8 +176,7 @@ void tim0_Interrupt(void) interrupt Interrupt_Vector_TF0 //interrupt address is
TH0 += C_TIM0_Reload >> 8;
TL0 += C_TIM0_Reload & 0xFF;
F_sys_tim_tick = 1;
F_sys_tim_tick = TRUE;
}
/*
@ -220,8 +222,7 @@ void tim1_Interrupt(void) interrupt Interrupt_Vector_TF1//interrupt address is
TH1 += C_TIM1_Reload >> 8;
TL1 += C_TIM1_Reload & 0xFF;
F_sys_tim1_tick = 1;
F_sys_tim1_tick = TRUE;
}
/*

View File

@ -44,7 +44,7 @@ bit busy0;
#if UART0_ENABLE
idata uint8_t RX0_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
uint8_t RX0_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
bit Uart0_RX_Finish_Flag;
@ -52,7 +52,7 @@ bit Uart0_RX_Finish_Flag;
#if UART1_ENABLE
idata uint8_t RX1_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
uint8_t RX1_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å
bit Uart1_RX_Finish_Flag;
@ -146,7 +146,7 @@ void Uart0SendPacket(uint16_t Length,uint8_t *TransBuf)
{
while(busy0);
busy0 = 1;
busy0 = TRUE;
S0BUF = *TransBuf++;
}
@ -157,6 +157,8 @@ void Uart0SendPacket(uint16_t Length,uint8_t *TransBuf)
#endif
#ifdef VOX_RX
uint8_t Rx0Status;
uint8_t RX0_Cnt;
@ -178,7 +180,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
if(TI0)
{
TI0 = 0;
busy0 = 0;
busy0 = FALSE;
}
/*处理UART0接收中断*/
@ -187,7 +189,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
RI0 = 0;
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif
#ifdef VOX_RX
@ -229,7 +231,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
Rx0Status = 0;
Uart0_RX_Finish_Flag = 1;
Uart0_RX_Finish_Flag = TRUE;
}
}
@ -284,7 +286,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
Rx0Status = 0;
Uart0_RX_Finish_Flag = 1;
Uart0_RX_Finish_Flag = TRUE;
}
}
@ -301,6 +303,8 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
#endif
#endif
#if UART1_ENABLE
bit busy1;
@ -364,7 +368,7 @@ void Uart1SendPacket(uint16_t Length,uint8_t *TransBuf)
{
while(busy1);
//ACC = *TransBuf++;
busy1 = 1;
busy1 = TRUE;
S1BUF = *TransBuf++;
}
@ -406,7 +410,7 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
if(S1CON & 0x02) //TI1 = 1
{
S1CON &= ~0x02; //TI1 = 0
busy1 = 0;
busy1 = FALSE;
}
/*处理UART1接收中断*/
@ -415,7 +419,7 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
S1CON &= ~0x01;
#if SLEEP_ENABLE
Enter_Sleep_Cnt_Restart_Flag = 1;
Enter_Sleep_Cnt_Restart_Flag = TRUE;
#endif
#ifdef VOX_RX
@ -528,7 +532,7 @@ void Uart2SendData(uint8_t Txdata)
{
while(busy2);
busy2 = 1;
busy2 = TRUE;
S2BUF = Txdata;
@ -588,7 +592,7 @@ void uart2_Interrupt(void) interrupt Interrupt_Vector_IE8
if(S2CON & 0x02) //TI2 = 1
{
S2CON &= ~0x02; //TI2 = 0
busy2 = 0;
busy2 = FALSE;
}
/*处理UART1接收中断*/

View File

@ -42,7 +42,7 @@
Variables definitions
\******************************************************************************/
xdata s_sys_state Systerm_State = {SLEEP_STATE,AWAKE_STATE,AWAKE_STATE};
s_sys_state Systerm_State = {SLEEP_STATE,AWAKE_STATE,AWAKE_STATE};
uint8_t Step_Cnt;
@ -115,7 +115,7 @@ void System_Drivers_Machine(void)
if ( F_sys_tim_100ms )
{
F_sys_tim_100ms = 0;
F_sys_tim_100ms = FALSE;
#if CHARGER_ENABLE
Charger_Handler();
@ -134,7 +134,43 @@ void System_Drivers_Machine(void)
#endif
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
/*Vox 过流保护两只耳机都每隔200ms打嗝一次*/
if( pmu_Info.pmu_Fault_STA2 & ( Fault_Sta2_VorOCP | Fault_Sta2_VolOCP ) )
{
Vox_Output_Short_Flag = TRUE;
}
else
{
Vox_Output_Short_Flag = FALSE;
#if VOX_ENABLE
Vol_Det_Machine(); //耳机入盒自动识别充电处理
Vor_Det_Machine();
#endif
#if VOX_FOLLOW_CHG
if( !Vol_GetOut_Box_Flag || !Vor_GetOut_Box_Flag )
{
if ( Vox_Fllow_Chg.Vox_Follow_Stop == OFF )
{
Vox_Follow_Chg( &Vox_Fllow_Chg ); //跟随充处理。
}
}
#endif
}
#else
Vox_Det_Machine();
#endif
#endif
}
}
@ -272,7 +308,7 @@ void SysTem_State_Machine(void)
if(F_sys_tim_1s)
{
F_sys_tim_1s = 0;
F_sys_tim_1s = FALSE;
#ifdef _DEBUG_MAIN
@ -291,7 +327,7 @@ void SysTem_State_Machine(void)
if(Enter_Sleep_Cnt_Restart_Flag)
{
Enter_Sleep_Cnt_Restart_Flag = 0;
Enter_Sleep_Cnt_Restart_Flag = FALSE;
Decnt_SleepDelay = ENTER_STANDBYMODE_CNT;
#ifdef _DEBUG_MAIN
@ -325,8 +361,18 @@ void SysTem_State_Machine(void)
if(Check_Require_Sleep())
{
VOX_EN_Type(VOX_ADT_Mode);
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
VOL_EN_Type(VOX_ADT_Mode);
VOR_EN_Type(VOX_ADT_Mode);
#else
VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V
#endif
#endif
Set_PMU_Boost(OFF);
Set_PMU_StandbyMode_Set(OFF); //¹Ø±ÕLDO
@ -340,7 +386,21 @@ void SysTem_State_Machine(void)
#else
Systerm_State.Next_State = AWAKE_STATE;
#if VOX_ENABLE
#ifdef VOX_ADT_ENABLE
VOL_EN_Type(VOX_ADT_Mode);
VOR_EN_Type(VOX_ADT_Mode);
#else
VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V
#endif
#endif
Set_PMU_Boost(OFF);
Set_PMU_StandbyMode_Set(OFF); //关闭LDO
#endif
break;
@ -363,7 +423,7 @@ void UserAPP(void)
{
if(F_sys_tim_5ms)
{
F_sys_tim_5ms = 0;
F_sys_tim_5ms = FALSE;
switch( Step_Cnt++ )
{
@ -395,7 +455,7 @@ void UserAPP(void)
if ( F_sys_tim_10ms )
{
F_sys_tim_10ms = 0;
F_sys_tim_10ms = FALSE;
#ifdef LED_DISPLAY
LED_Drv();

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,14 @@
---- reg3315 Matches (1 in 1 files) ----
define.h (UsrInc\inc) line 142 : #include "reg3315.h"
---- VOX_MAX_CHAN Matches (13 in 1 files) ----
vox_module.h (UsrInc\vox) line 47 : #define VOX_MAX_CHAN 0x02
vox_module.h (UsrInc\vox) line 184 : VOX_MAX_CHAN = 0x02,
vox_module.h (UsrInc\vox) line 223 : VOX_MAX_CHAN = 0x02,
vox_module.h (UsrInc\vox) line 275 : VOX_MAX_CHAN = 0x02,
vox_module.h (UsrInc\vox) line 311 : VOX_MAX_CHAN = 0x02,
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint16_t IVox_Init[VOX_MAX_CHAN]; //跟随充Vox初始化电流值。
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint16_t IVox_Threshold_Neg[VOX_MAX_CHAN]; //Vox电流下降阈值
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint16_t IVox_Threshold_Pos[VOX_MAX_CHAN]; //Vox电流上升阈值
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint16_t IVox_At_Present[VOX_MAX_CHAN]; //Vox当前电流
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint8_t IVox_TC_Mode[VOX_MAX_CHAN]; //Vox CV_TC充电电流阈值
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint8_t Vpmid_SubSta[VOX_MAX_CHAN]; //Vox的Vpmid电压下降标志
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint8_t Vpmid_AddSta[VOX_MAX_CHAN]; //Vpmid电压上升标志
{anong_Vox_Fllow_Chg_Cfg} in vox_module.h (UsrInc\vox) : uint8_t Vox_InBox_Sta[VOX_MAX_CHAN]; //耳机在盒标志