Changeset 46


Ignore:
Timestamp:
01/03/05 16:22:37 (10 years ago)
Author:
mick
Message:

.kismac changes to remain compatible in non properity mode
GPSController improved by Robin (thx!)
vendor db update to include nintendo

Location:
KisMACng
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • KisMACng/KisMAC.xcode/mick.mode1

    r43 r46  
    243243                                                                <string>29B97314FDCFA39411CA2CEA</string> 
    244244                                                                <string>080E96DDFE201D6D7F000001</string> 
    245                                                                 <string>003533C506A5DD8500AB4577</string> 
     245                                                                <string>003533D206A5DD8500AB4577</string> 
     246                                                                <string>003533D306A5DD8500AB4577</string> 
     247                                                                <string>003533F906A5DD8500AB4577</string> 
     248                                                                <string>29B97317FDCFA39411CA2CEA</string> 
     249                                                                <string>0035332D06A5DD5700AB4577</string> 
    246250                                                                <string>1C37FBAC04509CD000000102</string> 
    247251                                                        </array> 
     
    249253                                                        <array> 
    250254                                                                <array> 
    251                                                                         <integer>28</integer> 
    252                                                                         <integer>8</integer> 
     255                                                                        <integer>22</integer> 
     256                                                                        <integer>18</integer> 
    253257                                                                        <integer>3</integer> 
    254258                                                                        <integer>0</integer> 
     
    289293                                                                <string>1CE0B20306471E060097A5F4</string> 
    290294                                                                <key>PBXProjectModuleLabel</key> 
    291                                                                 <string>ScanControllerMenus.m</string> 
     295                                                                <string>GPSController.m</string> 
    292296                                                                <key>PBXSplitModuleInNavigatorKey</key> 
    293297                                                                <dict> 
     
    297301                                                                                <string>1CE0B20406471E060097A5F4</string> 
    298302                                                                                <key>PBXProjectModuleLabel</key> 
    299                                                                                 <string>ScanControllerMenus.m</string> 
     303                                                                                <string>GPSController.m</string> 
    300304                                                                                <key>bookmark</key> 
    301                                                                                 <string>00B056B2077315D300755A76</string> 
     305                                                                                <string>0046468E0789A8BC005B890E</string> 
    302306                                                                                <key>history</key> 
    303307                                                                                <array> 
     
    305309                                                                                        <string>006300200764DC82003B81CC</string> 
    306310                                                                                        <string>006302200764FCA8003B81CC</string> 
    307                                                                                         <string>00B056AD077312F300755A76</string> 
     311                                                                                        <string>0076657F07844A6400A30713</string> 
     312                                                                                        <string>0076658007844A6400A30713</string> 
     313                                                                                        <string>0076658107844A6400A30713</string> 
     314                                                                                        <string>00766A38078450FA00A30713</string> 
     315                                                                                        <string>0046467F0789A69D005B890E</string> 
     316                                                                                        <string>004646880789A80A005B890E</string> 
     317                                                                                        <string>0046467E0789A69D005B890E</string> 
    308318                                                                                </array> 
    309319                                                                                <key>prevStack</key> 
     
    313323                                                                                        <string>006300210764DC82003B81CC</string> 
    314324                                                                                        <string>006302210764FCA8003B81CC</string> 
     325                                                                                        <string>0076658407844A6400A30713</string> 
     326                                                                                        <string>0076658507844A6400A30713</string> 
     327                                                                                        <string>0076658C0784503B00A30713</string> 
     328                                                                                        <string>00766A2C0784506900A30713</string> 
     329                                                                                        <string>00766A3A078450FA00A30713</string> 
     330                                                                                        <string>004646810789A69D005B890E</string> 
     331                                                                                        <string>004646820789A69D005B890E</string> 
     332                                                                                        <string>004646890789A80A005B890E</string> 
    315333                                                                                </array> 
    316334                                                                        </dict> 
     
    370388                        <key>TableOfContents</key> 
    371389                        <array> 
    372                                 <string>00B056AF077312F300755A76</string> 
     390                                <string>0046467C0789A61A005B890E</string> 
    373391                                <string>1CE0B1FE06471DED0097A5F4</string> 
    374                                 <string>00B056B0077312F300755A76</string> 
     392                                <string>0046467D0789A61A005B890E</string> 
    375393                                <string>1CE0B20306471E060097A5F4</string> 
    376394                                <string>1CE0B20506471E060097A5F4</string> 
     
    400418        <key>WindowOrderList</key> 
    401419        <array> 
     420                <string>1C0AD2B3069F1EA900FABCE6</string> 
    402421                <string>/Users/mick/openDev/KisMACng/KisMAC.xcode</string> 
    403422        </array> 
     
    925944                        <array> 
    926945                                <string>1C0AD2B3069F1EA900FABCE6</string> 
    927                                 <string>006300190764DC1E003B81CC</string> 
     946                                <string>004646860789A79D005B890E</string> 
    928947                                <string>1CD0528B0623707200166675</string> 
    929                                 <string>0063001A0764DC1E003B81CC</string> 
     948                                <string>004646870789A79D005B890E</string> 
    930949                        </array> 
    931950                        <key>ToolbarConfiguration</key> 
  • KisMACng/KisMAC.xcode/mick.pbxuser

    r43 r46  
    109109        0035333106A5DD5700AB4577 = { 
    110110                uiCtxt = { 
    111                         sepNavIntBoundsRect = "{{0, 0}, {964, 8092}}"; 
    112                         sepNavSelRange = "{0, 0}"; 
    113                         sepNavVisRect = "{{0, 0}, {964, 690}}"; 
     111                        sepNavIntBoundsRect = "{{0, 0}, {964, 8120}}"; 
     112                        sepNavSelRange = "{4775, 0}"; 
     113                        sepNavVisRect = "{{0, 2475}, {964, 468}}"; 
    114114                }; 
    115115        }; 
     
    216216        003533B106A5DD8500AB4577 = { 
    217217                uiCtxt = { 
    218                         sepNavIntBoundsRect = "{{0, 0}, {862, 8119}}"; 
     218                        sepNavIntBoundsRect = "{{0, 0}, {964, 8105}}"; 
    219219                        sepNavSelRange = "{18118, 14}"; 
    220                         sepNavVisRect = "{{0, 7444}, {862, 330}}"; 
     220                        sepNavVisRect = "{{0, 7361}, {964, 468}}"; 
    221221                }; 
    222222        }; 
     
    301301                uiCtxt = { 
    302302                        sepNavIntBoundsRect = "{{0, 0}, {964, 14881}}"; 
    303                         sepNavSelRange = "{20991, 36}"; 
    304                         sepNavVisRect = "{{0, 7792}, {964, 468}}"; 
     303                        sepNavSelRange = "{1226, 0}"; 
     304                        sepNavVisRect = "{{0, 448}, {964, 468}}"; 
    305305                }; 
    306306        }; 
     
    414414        003533FA06A5DD8500AB4577 = { 
    415415                uiCtxt = { 
    416                         sepNavIntBoundsRect = "{{0, 0}, {964, 1077}}"; 
    417                         sepNavSelRange = "{1490, 0}"; 
    418                         sepNavVisRect = "{{0, 376}, {964, 690}}"; 
     416                        sepNavIntBoundsRect = "{{0, 0}, {964, 1161}}"; 
     417                        sepNavSelRange = "{81, 31}"; 
     418                        sepNavVisRect = "{{0, 0}, {964, 468}}"; 
    419419                }; 
    420420        }; 
    421421        003533FB06A5DD8500AB4577 = { 
    422422                uiCtxt = { 
    423                         sepNavIntBoundsRect = "{{0, 0}, {964, 10163}}"; 
    424                         sepNavSelRange = "{15967, 5}"; 
    425                         sepNavVisRect = "{{0, 6896}, {964, 468}}"; 
     423                        sepNavIntBoundsRect = "{{0, 0}, {964, 11689}}"; 
     424                        sepNavSelRange = "{26296, 0}"; 
     425                        sepNavVisRect = "{{0, 9909}, {964, 468}}"; 
    426426                }; 
    427427        }; 
     
    533533        0035341C06A5DD8500AB4577 = { 
    534534                uiCtxt = { 
    535                         sepNavIntBoundsRect = "{{0, 0}, {862, 2911}}"; 
    536                         sepNavSelRange = "{4974, 14}"; 
    537                         sepNavVisRect = "{{0, 2334}, {862, 330}}"; 
     535                        sepNavIntBoundsRect = "{{0, 0}, {964, 2883}}"; 
     536                        sepNavSelRange = "{4449, 9}"; 
     537                        sepNavVisRect = "{{0, 1954}, {964, 468}}"; 
    538538                }; 
    539539        }; 
     
    587587                }; 
    588588        }; 
     589        0046467B0789A61A005B890E = { 
     590                fRef = 003533FB06A5DD8500AB4577; 
     591                isa = PBXTextBookmark; 
     592                name = "GPSController.m: 708"; 
     593                rLen = 0; 
     594                rLoc = 26117; 
     595                rType = 0; 
     596                vrLen = 917; 
     597                vrLoc = 25486; 
     598        }; 
     599        0046467E0789A69D005B890E = { 
     600                fRef = 003533FB06A5DD8500AB4577; 
     601                isa = PBXTextBookmark; 
     602                name = "GPSController.m: 708"; 
     603                rLen = 0; 
     604                rLoc = 26117; 
     605                rType = 0; 
     606                vrLen = 917; 
     607                vrLoc = 25486; 
     608        }; 
     609        0046467F0789A69D005B890E = { 
     610                fRef = 0035341C06A5DD8500AB4577; 
     611                isa = PBXTextBookmark; 
     612                name = sendFrame; 
     613                rLen = 9; 
     614                rLoc = 4449; 
     615                rType = 0; 
     616                vrLen = 835; 
     617                vrLoc = 4068; 
     618        }; 
     619        004646800789A69D005B890E = { 
     620                fRef = 003533C406A5DD8500AB4577; 
     621                isa = PBXBookmark; 
     622        }; 
     623        004646810789A69D005B890E = { 
     624                fRef = 003533FB06A5DD8500AB4577; 
     625                isa = PBXTextBookmark; 
     626                name = "GPSController.m: 708"; 
     627                rLen = 0; 
     628                rLoc = 26117; 
     629                rType = 0; 
     630                vrLen = 917; 
     631                vrLoc = 25486; 
     632        }; 
     633        004646820789A69D005B890E = { 
     634                fRef = 0035341C06A5DD8500AB4577; 
     635                isa = PBXTextBookmark; 
     636                name = sendFrame; 
     637                rLen = 9; 
     638                rLoc = 4449; 
     639                rType = 0; 
     640                vrLen = 835; 
     641                vrLoc = 4068; 
     642        }; 
     643        004646830789A69D005B890E = { 
     644                fRef = 003533C406A5DD8500AB4577; 
     645                isa = PBXTextBookmark; 
     646                name = "WaveScanner.mm: 35"; 
     647                rLen = 0; 
     648                rLoc = 1226; 
     649                rType = 0; 
     650                vrLen = 628; 
     651                vrLoc = 1132; 
     652        }; 
     653        004646840789A706005B890E = { 
     654                fRef = 003533C406A5DD8500AB4577; 
     655                isa = PBXTextBookmark; 
     656                name = "WaveScanner.mm: 35"; 
     657                rLen = 0; 
     658                rLoc = 1226; 
     659                rType = 0; 
     660                vrLen = 628; 
     661                vrLoc = 1132; 
     662        }; 
     663        004646850789A71F005B890E = { 
     664                fRef = 003533C406A5DD8500AB4577; 
     665                isa = PBXTextBookmark; 
     666                name = "WaveScanner.mm: 35"; 
     667                rLen = 0; 
     668                rLoc = 1226; 
     669                rType = 0; 
     670                vrLen = 628; 
     671                vrLoc = 1132; 
     672        }; 
     673        004646880789A80A005B890E = { 
     674                fRef = 003533C406A5DD8500AB4577; 
     675                isa = PBXTextBookmark; 
     676                name = "WaveScanner.mm: 35"; 
     677                rLen = 0; 
     678                rLoc = 1226; 
     679                rType = 0; 
     680                vrLen = 628; 
     681                vrLoc = 1132; 
     682        }; 
     683        004646890789A80A005B890E = { 
     684                fRef = 003533C406A5DD8500AB4577; 
     685                isa = PBXTextBookmark; 
     686                name = "WaveScanner.mm: 35"; 
     687                rLen = 0; 
     688                rLoc = 1226; 
     689                rType = 0; 
     690                vrLen = 628; 
     691                vrLoc = 1132; 
     692        }; 
     693        0046468A0789A80A005B890E = { 
     694                fRef = 003533FB06A5DD8500AB4577; 
     695                isa = PBXTextBookmark; 
     696                name = "GPSController.m: 733"; 
     697                rLen = 0; 
     698                rLoc = 26931; 
     699                rType = 0; 
     700                vrLen = 868; 
     701                vrLoc = 25863; 
     702        }; 
     703        0046468B0789A813005B890E = { 
     704                fRef = 003533FB06A5DD8500AB4577; 
     705                isa = PBXTextBookmark; 
     706                name = "GPSController.m: 715"; 
     707                rLen = 0; 
     708                rLoc = 26296; 
     709                rType = 0; 
     710                vrLen = 868; 
     711                vrLoc = 25863; 
     712        }; 
     713        0046468C0789A82A005B890E = { 
     714                fRef = 003533FB06A5DD8500AB4577; 
     715                isa = PBXTextBookmark; 
     716                name = "GPSController.m: 715"; 
     717                rLen = 0; 
     718                rLoc = 26296; 
     719                rType = 0; 
     720                vrLen = 868; 
     721                vrLoc = 25863; 
     722        }; 
     723        0046468D0789A837005B890E = { 
     724                fRef = 003533FB06A5DD8500AB4577; 
     725                isa = PBXTextBookmark; 
     726                name = "GPSController.m: 715"; 
     727                rLen = 0; 
     728                rLoc = 26296; 
     729                rType = 0; 
     730                vrLen = 868; 
     731                vrLoc = 25863; 
     732        }; 
     733        0046468E0789A8BC005B890E = { 
     734                fRef = 003533FB06A5DD8500AB4577; 
     735                isa = PBXTextBookmark; 
     736                name = "GPSController.m: 715"; 
     737                rLen = 0; 
     738                rLoc = 26296; 
     739                rType = 0; 
     740                vrLen = 868; 
     741                vrLoc = 25863; 
     742        }; 
    589743        005B12660730051A00906C36 = { 
    590744                uiCtxt = { 
     
    684838                vrLen = 1120; 
    685839                vrLoc = 17034; 
     840        }; 
     841        0076657F07844A6400A30713 = { 
     842                fRef = 003533AB06A5DD8500AB4577; 
     843                isa = PBXTextBookmark; 
     844                name = "ScanControllerMenus.m: 204"; 
     845                rLen = 0; 
     846                rLoc = 7234; 
     847                rType = 0; 
     848                vrLen = 1111; 
     849                vrLoc = 6862; 
     850        }; 
     851        0076658007844A6400A30713 = { 
     852                fRef = 0035333106A5DD5700AB4577; 
     853                isa = PBXTextBookmark; 
     854                name = "vendor.db: 196"; 
     855                rLen = 0; 
     856                rLoc = 4775; 
     857                rType = 0; 
     858                vrLen = 798; 
     859                vrLoc = 4316; 
     860        }; 
     861        0076658107844A6400A30713 = { 
     862                fRef = 003533B106A5DD8500AB4577; 
     863                isa = PBXTextBookmark; 
     864                name = sleepUntilDate; 
     865                rLen = 14; 
     866                rLoc = 18118; 
     867                rType = 0; 
     868                vrLen = 890; 
     869                vrLoc = 17568; 
     870        }; 
     871        0076658407844A6400A30713 = { 
     872                fRef = 0035333106A5DD5700AB4577; 
     873                isa = PBXTextBookmark; 
     874                name = "vendor.db: 196"; 
     875                rLen = 0; 
     876                rLoc = 4775; 
     877                rType = 0; 
     878                vrLen = 798; 
     879                vrLoc = 4316; 
     880        }; 
     881        0076658507844A6400A30713 = { 
     882                fRef = 003533B106A5DD8500AB4577; 
     883                isa = PBXTextBookmark; 
     884                name = sleepUntilDate; 
     885                rLen = 14; 
     886                rLoc = 18118; 
     887                rType = 0; 
     888                vrLen = 890; 
     889                vrLoc = 17568; 
     890        }; 
     891        0076658C0784503B00A30713 = { 
     892                fRef = 0035341C06A5DD8500AB4577; 
     893                isa = PBXTextBookmark; 
     894                name = sendFrame; 
     895                rLen = 9; 
     896                rLoc = 4449; 
     897                rType = 0; 
     898                vrLen = 816; 
     899                vrLoc = 4088; 
     900        }; 
     901        007665910784504B00A30713 = { 
     902                isa = PBXFileReference; 
     903                lastKnownFileType = sourcecode.c.objc; 
     904                name = GPSController.m; 
     905                path = "/Users/mick/Library/Mail/POP-mick%binaervarianz.de@mail3.netbeat.de/INBOX.mbox/one_quirk___some_new.mimeattach/GPSController.m"; 
     906                refType = 0; 
     907                sourceTree = "<absolute>"; 
     908        }; 
     909        00766A260784506900A30713 = { 
     910                fRef = 007665910784504B00A30713; 
     911                isa = PBXTextBookmark; 
     912                name = "/*\n        \n        File:\t\t\tGPSController.m\n        Program:\t\tKisMAC\n\tAuthor:\t\t\tMichael Rossberg\n                                mick@binaervarianz.de\n\tDescription:\t\tKisMAC is a wireless stumbler for MacOS X.\n                \n        This file is part of KisMAC.\n        \n        Parts of this file are based on bsd airtools by h1kari.\n\n    KisMAC is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    KisMAC is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with KisMAC; if not, write to the Free Software\n    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n*/\n\n#import \"GPSController.h\"\n#import \"WaveHelper.h\"\n#import \"KisMACNotifications.h\"\n#import \"Trace.h\"\n\n#include <stdio.h>\n#include <fcntl.h>\n#include <sys/types.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <arpa/inet.h>\n#include <sys/uio.h>\n#include <sys/vnode.h>\n#include <sys/ioctl.h>\n#include <unistd.h>\n#include <netdb.h>\n#include <string.h>\n#include <errno.h>\n\n#include <sys/termios.h>\n\nstruct termios ttyset;\n\n#define MAX_GPSBUF_LEN 1024\n#define VELOCITY_UNIT \"km/h\"\n#define VELOCITY_CONVERSION 1.852\n#define DISTANCE_UNIT \"km\"\n\n@interface GPSController(PrivateExtension) \n    - (void)setStatus:(NSString*)status;\n@end\n\n@implementation GPSController\n\n- (id)init {\n    _gpsLock = [[NSLock alloc] init];\n    _gpsThreadUp    = NO;\n    _gpsShallRun    = NO;\n    _debugEnabled   = NO;\n    _lastAdd        = [[NSDate date] retain];\n    _linesRead      = 0;\n\n    [self setStatus:NSLocalizedString(@\"GPS subsystem initialized but not running.\", @\"GPS status\")];\n\n    return self;\n}\n\n- (bool)startForDevice:(NSString*) device {\n    _reliable = NO;\n    _ns.dir = 'N';\n    _ns.coordinates = 0;\n    _ew.dir = 'E';\n    _ew.coordinates = 0;\n    _elev.coordinates = 0;\n    _elev.dir = 'm';\n    _velkt = 0;\n\t_peakvel = 0;\n    _veldir = -1;\n    _numsat = -1;\n    _hdop = 100;\n\t_sectordist = 0;\n\t_sectortime = 0;\n\t_totaldist = 0;\n\n    [self stop];\n    \n    [WaveHelper secureReplace:&_gpsDevice withObject:device];\n    [WaveHelper secureRelease:&_lastUpdate];\n    [WaveHelper secureRelease:&_sectorStart];\n    \n    if ([_gpsDevice length]==0) {\n        NSLog(@\"GPS integration disabled\");\n        [self setStatus:NSLocalizedString(@\"GPS subsystem disabled.\", @\"GPS status\")];\n        return NO;\n    }\n\n    [self setStatus:NSLocalizedString(@\"Starting GPS subsystem.\", @\"GPS status\")];\n    \n    if ([_gpsDevice isEqualToString:@\"GPSd\"]) [NSThread detachNewThreadSelector:@selector(gpsThreadGPSd:) toTarget:self withObject:Nil];\n    else [NSThread detachNewThreadSelector:@selector(gpsThreadSerial:) toTarget:self withObject:Nil];\n    return YES;\n}\n\n#pragma mark -\n\n- (bool)reliable {\n    return _reliable;\n}\n\n- (bool)gpsRunning {\n    return _gpsThreadUp;\n}\n\n- (NSString*) NSCoord {\n    if (_ns.coordinates==0) return nil;\n    return [NSString stringWithFormat:@\"%f%c\",_ns.coordinates, _ns.dir];\n}\n\n- (NSString*) EWCoord {\n    if (_ew.coordinates==0) return nil;\n    return [NSString stringWithFormat:@\"%f%c\",_ew.coordinates, _ew.dir];\n}\n\n- (NSString*) ElevCoord {\n    if (_elev.coordinates==0) return [NSString stringWithFormat:@\"No Elevation Data\"];\n    //NSLog([NSString stringWithFormat:@\"%f\",_elev.coordinates]);\n    return [NSString stringWithFormat:@\"%.1f %c/%.1f ft\",_elev.coordinates, _elev.dir, (_elev.coordinates * 3.2808399)]; //don't know if formatting stuff is correct\n}\n\n- (NSString*) VelKt {\n\tfloat velconv,peakconv,maxconv;\n\tvelconv = _velkt * VELOCITY_CONVERSION;\n\tpeakconv = _peakvel * VELOCITY_CONVERSION;\n\tmaxconv = _maxvel * VELOCITY_CONVERSION;\n\tif (_velkt==_maxvel) {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [MAX]\",velconv,VELOCITY_UNIT,_velkt];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [MAX]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,_veldir];\n\t} else if (_velkt==_peakvel) {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [PEAK]\",velconv,VELOCITY_UNIT,_velkt];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [PEAK]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,_veldir];\n\t} else {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]\",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv,_veldir];\n\t}\n}\n\n- (NSString*) DistStats {\n\tint sectortime;\n\tint sterror=0;\n\tfloat timeinterval;\n\tsectortime = (int)_sectortime;\n\n\tif (_sectorStart && (sectortime > 0)) {\n\t\ttimeinterval = [[NSDate date] timeIntervalSinceDate:_sectorStart];\n\t\tsterror = sectortime - (int)timeinterval;\n\t\t// remove negative error that develops after stopping\n\t\tif ((_velkt == 0) && (sterror < 0)) sterror = 0;\n\t}\n\t\n\tif (sterror == 0) {\n\t\tif (sectortime > 3600) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 60) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 0) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d seconds (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse return [NSString stringWithFormat:@\"Total: %.1f %s (%.1f nm)\",(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t} else {\n\t\tif (sectortime > 3600) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 60) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d seconds [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t}\n}\n\n- (NSString*) QualData {\n\tif (_numsat==-1) return [NSString stringWithFormat:@\"\"];\n\tif (_hdop>=50 || _hdop==0) return [NSString stringWithFormat:@\" (%d sats)\",_numsat];\n\treturn [NSString stringWithFormat:@\" (%d sats, HDOP %.1f)\",_numsat,_hdop];\n}\n\n- (NSString*)status {\n    if (_status) return _status;\n    \n    if (_lastUpdate)\n        if (_elev.coordinates) \n            if ((_velkt || _maxvel) && _reliable) // only report velocity if we're sure\n                return [NSString stringWithFormat:@\"%@: %@ %@\\n%@: %@\\n%@: %@\\n%@\\n%@: %@%@\", \n                        NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                        [self NSCoord],[self EWCoord],\n                        NSLocalizedString(@\"Elevation\", \"GPS status string.\"), \n                        [self ElevCoord],\n                        NSLocalizedString(@\"Velocity\", \"GPS status string.\"), \n                        [self VelKt],[self DistStats],\n\t\t\t\t\t\tNSLocalizedString(@\"Time\", \"GPS status string.\"), \n\t\t\t\t\t\t[self lastUpdate],[self QualData]];\n            else\n                return [NSString stringWithFormat:@\"%@: %@ %@\\n%@: %@\\n%@: %@%@%@\", \n                        NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                        [self NSCoord],[self EWCoord],\n                        NSLocalizedString(@\"Elevation\", \"GPS status string.\"), \n                        [self ElevCoord],\n\t\t\t\t\t\tNSLocalizedString(@\"Time\", \"GPS status string.\"), \n\t\t\t\t\t\t[self lastUpdate],\n                        _reliable ? @\"\" : NSLocalizedString(@\" -- NO FIX\", \"GPS status string. Needs leading space\"),\n                        [self QualData]];\n        else\n            return [NSString stringWithFormat:@\"%@: %@ %@\\n%@%@\", \n                NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                [self NSCoord],[self EWCoord],\n                [self lastUpdate],\n                _reliable ? @\"\" : NSLocalizedString(@\" -- NO FIX\", \"GPS status string. Needs leading space\"),\n\t\t\t\t[self QualData]];\n\n    else if ([(NSString*)[[NSUserDefaults standardUserDefaults] objectForKey:@\"GPSDevice\"] length]) {\n        if (_gpsThreadUp) return NSLocalizedString(@\"GPS subsystem works, but there is no data.\\nIf you are using gpsd, there may be no GPS connected.\\nOtherwise, your GPS is probably connected but not yet reporting a position.\", \"GPS status string\");\n        else  return NSLocalizedString(@\"GPS not working\", \"LONG GPS status string with informations howto debug\");\n            //@\"GPS subsystem is not working. See log file for more details.\"\n    } else return NSLocalizedString(@\"GPS disabled\", \"LONG GPS status string with informations where to enable\");\n            //@\"GPS subsystem is disabled. You have to select a device in the preferences window.\"\n}\n\n- (void)setStatus:(NSString*)status {\n    [WaveHelper secureReplace:&_status withObject:status];\n    [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:_status];\n}\n\n- (waypoint) currentPoint {\n    waypoint w;\n    \n    w._lat =_ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n    w._long=_ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n    w._elevation=_elev.coordinates;\n    \n    return w;\n}\n\n- (void) resetTrace {\n    [[WaveHelper trace] setTrace:nil];\n}\n\n- (void)setTraceInterval:(int)interval {\n    _traceInterval = interval;\n}\n- (void)setTripmateMode:(bool)mode {\n    _tripmateMode = mode;\n}\n\n- (void) setCurrentPointNS:(double)ns EW:(double)ew ELV:(double)elv{  //need to add elevation support here\n    waypoint w;\n    _ns.dir = (ns<0 ? 'S' : 'N');\n    _ew.dir = (ew<0 ? 'W' : 'E');\n    \n    _ns.coordinates = fabs(ns);\n    _ew.coordinates = fabs(ew); \n    \n    [WaveHelper secureReplace:&_lastUpdate withObject:[NSDate date]];\n    [WaveHelper secureReplace:&_lastAdd withObject:[NSDate date]];\n    \n    if (abs(ns)>=0 && abs(ns)<=90 && abs(ew)>=0 && abs(ew)<=180) {\n        w._long = ew;\n        w._lat  = ns;\n        [[WaveHelper trace] addPoint:w];\n    }\n}\n\n- (void)setOnNoFix:(int)onNoFix {\n    _onNoFix=onNoFix;\n}\n\n- (NSDate*) lastUpdate {\n    return _lastUpdate;\n}\n\n#pragma mark -\n\nbool check_sum(char *s, char h, char l) {\n  char checksum;\n  unsigned char ref;      /* must be unsigned */\n\n#ifdef PARANOIA\n  if(!s)\n    return NO;\n  if(!*s)\n    return NO;\n#endif\n\n  checksum = *s++;\n  while(*s && *s !='*')\n    checksum ^= *s++;\n\n#ifdef PARANOIA\n  if(!isxdigit(h))\n    return NO;\n  if(!isxdigit(l))\n    return NO;\n  h = (char)toupper(h);\n  l = (char)toupper(l);\n#endif\n\n  ref =  ((h >= 'A') ? (h -'A' + 10):(h - '0'));\n  ref <<= 4;\n  ref &= ((l >= 'A') ? (l -'A' + 10):(l - '0'));\n\n  if((char)ref == checksum)\n    return YES;             /* ckecksum OK */\n  \n  return NO;              /* checksum error */\n}\n\nint ss(char* inp, char* outp) {\n    int x=0;\n    \n    while(true) {\n        if (inp[x]==0) return -1;\n        if (inp[x]=='\\n') {\n            outp[x]=0;\n            return x;\n        }\n        outp[x]=inp[x];\n        x++;\n    }\n    \n    return x;\n}\n\n- (bool)gps_parse:(int) fd {\n    int len, valid, x=0;\n    static int q = 0;\n    char cvalid;\n    static char gpsin[MAX_GPSBUF_LEN];\n    char gpsbuf[MAX_GPSBUF_LEN];\n    int ewh, nsh;\n\tint veldir,numsat;\n\tfloat velkt,hdop;\n\tfloat timeinterval=-1;\n\tfloat displacement;\n    struct _position ns, ew, elev;\n    bool updated;\n    NSDate *date;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n\n    if (_debugEnabled) NSLog(@\"GPS read data\");\n    if (q>=1024) q = 0; //just in case something went wrong\n    \n    if((len = read(fd, &gpsin[q], MAX_GPSBUF_LEN-q-1)) < 0) return NO;\n    if (len == 0) return YES;\n    \n    if (_debugEnabled) NSLog(@\"GPS read data returned.\");\n    [self setStatus:nil];\n    _linesRead++;\n    \n    gpsin[q+len]=0;\n    updated = NO;\n    elev.coordinates = -10000.0;\n\tvelkt = -1.0;\n\tnumsat = -1;\n\thdop = 100;\n    \n    while (ss(&gpsin[x],gpsbuf)>0) {\n        if (_debugEnabled) NSLog(@\"GPS record: %s\", gpsbuf);//uncommented\n        if(_tripmateMode && (!strncmp(gpsbuf, \"ASTRAL\", 6))) {\n            write(fd, \"ASTRAL\\r\", 7);\n        } else if(strncmp(gpsbuf, \"$GPGGA\", 6) == 0) {  //gpsbuf contains GPS fixed data (almost everything poss)\n            if (sscanf(gpsbuf, \"%*[^,],%*f,%2d%f,%c,%3d%f,%c,%d,%d,%f,%f\",\n\t\t&nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir,\n\t        &valid, &numsat, &hdop, &elev.coordinates)>=7) { // this probably should be == 10 not >= 7  more testing\n                \t\t\n                if (valid) _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");\n                updated = YES;\n            }\n        } else if(strncmp(gpsbuf, \"$GPRMC\", 6) == 0) {  //gpsbuf contains Recommended minimum specific GPS/TRANSIT data !!does not include elevation\n            if (sscanf(gpsbuf, \"%*[^,],%*f,%c,%2d%f,%c,%3d%f,%c,%f,%d,\",\n                &cvalid, &nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir, &velkt, &veldir)==9) {\n            \n                if (cvalid == 'A') _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");  \n                updated = YES;\n            }\n        } else if(strncmp(gpsbuf, \"$GPGLL\", 6) == 0) {  //gbsbuf contains Geographical postiion, latitude and longitude only  !!does not include elevation\n            if (sscanf(gpsbuf, \"%*[^,],%2d%f,%c,%3d%f,%c,%*f,%c\",\n                &nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir, &cvalid)==7) {\n            \n                if (cvalid == 'A') _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");  \n                updated = YES;\n            }\n        }\n        \n        x+=strlen(gpsbuf)+1;\n    }\n    \n    q+=len-x;\n    memcpy(gpsbuf,&gpsin[x],q);\n    memcpy(gpsin,gpsbuf,q);\n    if (q>80) q=0;\n    \n\tdate = [[NSDate alloc] init];\n    \n\tif (updated) {\n        if (_reliable) {\n            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) {\n                waypoint w;\n                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date];\n            }\n        } else {\n            [[WaveHelper trace] cut];\n        }\n\t\ttimeinterval = [date timeIntervalSinceDate:_lastUpdate];\n        [WaveHelper secureReplace:&_lastUpdate withObject:date];\n\n        if ((_reliable)||(_onNoFix==0)) {\n            if (ns.dir != 'S') _ns.dir = 'N';\n            else _ns.dir = 'S';\n            \n            if (ew.dir != 'W') _ew.dir = 'E';\n            else _ew.dir = 'W';\n            \n            _ns.coordinates   = nsh + ns.coordinates / 60.0;\n            _ew.coordinates   = ewh + ew.coordinates / 60.0;\n            if (elev.coordinates > -10000.00) _elev.coordinates = elev.coordinates;\n\t\t\t\n            if (velkt > -1.0) {\n\t\t\t\tif ((velkt > 0) && (_velkt==0)) {\n\t\t\t\t\t_peakvel = 0;\n\t\t\t\t\t_sectordist = 0;\n\t\t\t\t\t_sectortime = 0;\n\t\t\t\t\t[WaveHelper secureReplace:&_sectorStart withObject:date];\n\t\t\t\t} else if ((velkt > 0) || (_velkt > 0)) {\n\t\t\t\t\t// update distances only if we're moving (or just stopped)\n\t\t\t\t\tdisplacement = (velkt + _velkt)*timeinterval/7200;\n\t\t\t\t\t_sectordist += displacement;\n\t\t\t\t\t_sectortime += timeinterval;\n\t\t\t\t\t_totaldist += displacement;\n\t\t\t\t}\n                _velkt = velkt;\n                _veldir = veldir;\n\t\t\t\tif (velkt > _peakvel) _peakvel = velkt;\n\t\t\t\tif (velkt > _maxvel) _maxvel = velkt;\n\t\t\t}\n            \n            if (numsat > -1) {\n                _numsat = numsat;\n                _hdop = hdop;\n            }\n        } else if(_onNoFix==2) {\n            _ns.dir = 'N';\n            _ew.dir = 'E';\n            \n            _elev.coordinates = 0;\n            _ns.coordinates = 0;\n            _ew.coordinates = 0;\n            _velkt = 0;\n        }\n    }\n    \n    [subpool release];\n\t[date release];\n    \n    return YES;\n}\n\n- (bool)gpsd_parse:(int) fd {\n    int len, valid, numsat, veldir;\n    char gpsbuf[MAX_GPSBUF_LEN];\n    double ns, ew, elev;\n\tfloat velkt,hdop,fveldir;\n\tfloat timeinterval=-1;\n\tfloat displacement;\n    NSDate *date;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n\n    if (_debugEnabled) NSLog(@\"GPSd write command\");\n    \n    if (write(fd, \"PAMVTQ\\r\\n\", 8) < 8) {\n        NSLog(@\"GPSd write failed\");\n        return NO;\n    }\n    \n    if((len = read(fd, &gpsbuf[0], MAX_GPSBUF_LEN)) < 0) {\n        NSLog(@\"GPSd read failed\");\n        return NO;\n    }\n    if (len == 0) return YES;\n    \n    if (_debugEnabled) NSLog(@\"GPSd read data returned.\");\n    [self setStatus:nil];\n    _linesRead++;\n    \n    gpsbuf[0+len]=0;\n \tnumsat = -1;\n\thdop = 100;\n   \n\tdate = [[NSDate alloc] init];\n\n\tif (sscanf(gpsbuf, \"GPSD,P=%lg %lg,A=%lg,M=%d,V=%f,T=%f,Q=%d %*f %f\",\n        &ns, &ew, &elev, &valid, &velkt, &fveldir, &numsat, &hdop) >=6) {\n                        \n        if (valid >= 2) _reliable = YES;\n        else _reliable = NO;\n        \n        if (_debugEnabled) NSLog(@\"GPSd data updated.\");\n\t\t\n\t\tif (_reliable) {\n            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) {\n                waypoint w;\n                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date];\n            }\n        } else {\n            [[WaveHelper trace] cut];\n        }\n\t\ttimeinterval = [date timeIntervalSinceDate:_lastUpdate];\n        [WaveHelper secureReplace:&_lastUpdate withObject:date];\n\n\n        if ((_reliable)||(_onNoFix==0)) {\n            if (ns >= 0) _ns.dir = 'N';\n            else _ns.dir = 'S';\n            \n            if (ew >= 0) _ew.dir = 'E';\n            else _ew.dir = 'W';\n            \n            _ns.coordinates   = fabs(ns);\n            _ew.coordinates   = fabs(ew);\n            _elev.coordinates = elev;\n\t\t\tif ((velkt > 0) && (_velkt==0)) {\n\t\t\t\t_peakvel = 0;\n\t\t\t\t_sectordist = 0;\n\t\t\t\t_sectortime = 0;\n\t\t\t\t[WaveHelper secureReplace:&_sectorStart withObject:date];\n\t\t\t} else if ((velkt > 0) || (_velkt > 0)) {\n\t\t\t\t// update distances only if we're moving (or just stopped)\n\t\t\t\tdisplacement = (velkt + _velkt)*timeinterval/7200;\n\t\t\t\t_sectordist += displacement;\n\t\t\t\t_sectortime += timeinterval;\n\t\t\t\t_totaldist += displacement;\n\t\t\t}\n\t\t\t_velkt = velkt;\n\t\t\tveldir = (int)fveldir;\n\t\t\t_veldir = veldir;\n\t\t\tif (velkt > _peakvel) _peakvel = velkt;\n\t\t\tif (velkt > _maxvel) _maxvel = velkt;\n\n\t\t\tif (numsat > -1) {\n\t\t\t\t_numsat = numsat;\n\t\t\t\t_hdop = hdop;\n\t\t\t}\n\t\t} else if(_onNoFix==2) {\n            _ns.dir = 'N';\n            _ew.dir = 'E';\n            \n            _elev.coordinates = 0;\n            _ns.coordinates = 0;\n            _ew.coordinates = 0;\n            _velkt = 0;\n        }\n    } else {\n        NSLog(@\"GPSd parsing failure\");\n    }\n    \n    [subpool release];\n\t[date release];\n    \n    return YES;\n}\n\n- (void) continousParse:(int) fd {\n    NSDate *date;\n    unsigned int i = 0;\n    NSAutoreleasePool* subpool;\n\t\n    while (_gpsShallRun && [self gps_parse:fd]) {\n\t\tsubpool = [[NSAutoreleasePool alloc] init];\n        //actually once a sec should be enough, but sometimes we dont get any information. so do it more often.\n        if ((i++ % 10 == 0) && (_status == Nil))\n            [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:[self status]];\n        date = [[NSDate alloc] initWithTimeIntervalSinceNow:0.1];\n        [NSThread sleepUntilDate:date];\n        [date release];\n\t\t[subpool release];\n    }\n}\n\n- (void) continousParseGPSd:(int) fd {\n    NSDate *date;\n    unsigned int i = 0;\n\tNSAutoreleasePool* subpool;\n\n    while (_gpsShallRun && [self gpsd_parse:fd]) {\n\t\tsubpool = [[NSAutoreleasePool alloc] init];\n        if ((i++ % 2 == 0) && (_status == Nil))\n            [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:[self status]];\n        date = [[NSDate alloc] initWithTimeIntervalSinceNow:0.5];\n        [NSThread sleepUntilDate:date];\n        [date release];\n\t\t[subpool release];\n    }\n}\n\n- (void)gpsThreadSerial:(id)object {\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n    int     handshake;\n    struct  termios backup;\n\n    _gpsShallRun = NO;\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:10]]) {\n        _gpsThreadUp = YES;\n        _gpsShallRun = YES;\n        [_lastUpdate release];\n        _lastUpdate = nil;\n        [_sectorStart release];\n        _sectorStart = nil;\n        \n        [self setStatus:NSLocalizedString(@\"GPS subsystem starting up.\", @\"GPS status\")];\n\n        //NSLog(@\"Starting GPS device\");\n        if((_serialFD = open([_gpsDevice cString], O_RDWR | O_NOCTTY | O_NONBLOCK )) < 0) {\n            NSLog(@\"error: unable to open gps device: %s\", strerror(errno));\n            [self setStatus:NSLocalizedString(@\"Could not open GPS.\", @\"GPS status\")];\n        } else if(!isatty(_serialFD)) {\n            NSLog(@\"error: specified gps device is not a tty: %s\", strerror(errno));\n        } else if (ioctl(_serialFD, TIOCEXCL) == -1) {\n            NSLog(@\"error: could not set exclusive flag: %s\", strerror(errno));\n        } else if (fcntl(_serialFD, F_SETFL, 0) == -1) {\n            NSLog(@\"error: clearing O_NONBLOCK: %s(%d).\\n\", strerror(errno), errno);\n        } else if(tcgetattr(_serialFD, &backup) != 0) {\n            NSLog(@\"error: unable to set attributes for gps device: %s\", strerror(errno));\n        } else if(ioctl(_serialFD, TIOCGETA, &ttyset) < 0) {\n            NSLog(@\"error: unable to ioctl gps device: %s\", strerror(errno));\n        } else {\n            //NSLog(@\"GPS device is open\");\n            ttyset.c_ispeed = B4800;\n            ttyset.c_ospeed = B4800;\n            \n            ttyset.c_cflag |=       CRTSCTS;    // hadware flow on\n            ttyset.c_cflag &=       ~PARENB;    // no parity\n            ttyset.c_cflag &=       ~CSTOPB;    // one stopbit\n            ttyset.c_cflag &=       CSIZE;\n            ttyset.c_cflag |=       CS8;        // 8N1\n            ttyset.c_cflag |=       (CLOCAL | CREAD); //enable Localmode, receiver\n            ttyset.c_cc[VMIN] =     20;         // set min read chars if 0  VTIME takes over\n            ttyset.c_cc[VTIME] =    10;         // wait x ms for charakter\n\n            //options.c_cflag &= ~ ICANON; // canonical input \n            ttyset.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);\n\n            \n            if(ioctl(_serialFD, TIOCSETAF, &ttyset) < 0) {\n                NSLog(@\"error: unable to ioctl gps device: %s\", strerror(errno));\n            } else {\n                if (ioctl(_serialFD, TIOCSDTR) == -1) { // Assert Data Terminal Ready (DTR)\n                    NSLog(@\"Error asserting DTR - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                if (ioctl(_serialFD, TIOCCDTR) == -1) { // Clear Data Terminal Ready (DTR) \n                    NSLog(@\"Error clearing DTR - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                handshake = TIOCM_DTR | TIOCM_RTS | TIOCM_CTS | TIOCM_DSR;\n                if (ioctl(_serialFD, TIOCMSET, &handshake) == -1) { // Set the modem lines depending on the bits set in handshake\n                    NSLog(@\"Error setting handshake lines - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                if (ioctl(_serialFD, TIOCMGET, &handshake) == -1) { // Store the state of the modem lines in handshake\n                    NSLog(@\"Error getting handshake lines - %s(%d).\\n\", strerror(errno), errno);\n                }\n\n                NSLog(@\"GPS started successfully in serial mode\\n\");\n                [self setStatus:NSLocalizedString(@\"GPS started in serial mode.\", @\"GPS status\")];\n\n                [self continousParse:_serialFD];\n            }\n            \n            if (_serialFD) close(_serialFD);\n            [self setStatus:NSLocalizedString(@\"GPS device closed.\", @\"GPS status\")];\n        }    \n\n        [_gpsLock unlock];\n        _gpsThreadUp = NO;\n    } else {\n        NSLog(@\"GPS LOCKING FAILURE!\");\n    }\n    \n    [subpool release];\n    return;\n}\n\n- (void)gpsThreadGPSd:(id)object {\n    int sockd;\n    struct sockaddr_in serv_name;\n    int status;\n    struct hostent *hp;\n    UInt32 ip;\n    NSUserDefaults *sets;\n    const char *hostname;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n    \n    _gpsShallRun = NO;\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:10]]) {\n        _gpsThreadUp = YES;\n        _gpsShallRun = YES;\n        [_lastUpdate release];\n        _lastUpdate = nil;\n        [_sectorStart release];\n        _sectorStart = nil;\n        \n        [self setStatus:NSLocalizedString(@\"Starting GPS in GPSd mode.\", @\"GPS status\")];\n\n        sets = [NSUserDefaults standardUserDefaults];\n        \n        sockd  = socket(AF_INET, SOCK_STREAM, 0);\n        if (sockd == -1) {\n            NSLog(@\"Socket creation failed!\");\n            goto err;\n        }\n        \n        hostname = [[sets objectForKey:@\"GPSDaemonHost\"] cString];\n        \n        if (inet_addr(hostname) != INADDR_NONE) {\n            ip = inet_addr(hostname);\n        } else {\n            hp = gethostbyname(hostname);\n            if (hp == NULL) {\n                NSLog(@\"Could not resolve %s\", hostname);\n                goto err;\n            }\n            ip = *(int *)hp->h_addr_list[0];\n        }\n        \n        /* server address */\n        serv_name.sin_addr.s_addr = ip;\n        serv_name.sin_family = AF_INET;\n        serv_name.sin_port = htons([sets integerForKey:@\"GPSDaemonPort\"]);\n\n        NSLog(@\"Connecting to gpsd (%s)\",inet_ntoa(serv_name.sin_addr));\n\n        /* connect to the server */\n        status = connect(sockd, (struct sockaddr*)&serv_name, sizeof(serv_name));\n        \n        if (status == -1) {\n            NSLog(@\"Could not connect to %s port %d\", hostname, [sets integerForKey:@\"GPSDaemonPort\"]);\n            goto err;\n        }\n\n        NSLog(@\"GPS started successfully in GPSd mode.\\n\");\n        [self setStatus:NSLocalizedString(@\"GPS started in GPSd mode.\", @\"GPS status\")];\n\n        [self continousParseGPSd: sockd];\n        close(sockd);\n\n        [self setStatus:NSLocalizedString(@\"GPSd connection terminated.\", @\"GPS status\")];\n    err:\n        [_gpsLock unlock];\n        _gpsThreadUp = NO;\n    } else {\n        NSLog(@\"GPS LOCKING FAILURE!\");\n    }\n\n    [subpool release];\n    return;\n}\n\n#pragma mark -\n\n- (void)writeDebugOutput:(BOOL)enable {\n    _debugEnabled = enable;\n}\n\n#pragma mark -\n\n- (void)stop {\n    int fd;\n    _gpsShallRun=NO;\n\n    [self setStatus:NSLocalizedString(@\"Trying to terminate GPS subsystem.\", @\"GPS status\")];\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:0.5]]) {\n        [_gpsLock unlock];\n    } else {\n        //kill the file descriptor if cannot obtain a lock\n        if (_serialFD) {\n            fd = _serialFD;\n            _serialFD = 0;\n            close(fd);\n        }\n    }\n}\n\n- (void) dealloc {\n    [WaveHelper secureRelease:&_status];\n    _gpsShallRun=NO;\n    [_gpsLock release];\n    [_gpsDevice release];\n    [_lastAdd release];\n    [super dealloc];\n}\n\n@end\n"; 
     913                rLen = 29083; 
     914                rLoc = 0; 
     915                rType = 0; 
     916                vrLen = 719; 
     917                vrLoc = 28364; 
     918        }; 
     919        00766A270784506900A30713 = { 
     920                fRef = 0035341C06A5DD8500AB4577; 
     921                isa = PBXTextBookmark; 
     922                name = sendFrame; 
     923                rLen = 9; 
     924                rLoc = 4449; 
     925                rType = 0; 
     926                vrLen = 835; 
     927                vrLoc = 4068; 
     928        }; 
     929        00766A2A0784506900A30713 = { 
     930                fRef = 007665910784504B00A30713; 
     931                isa = PBXTextBookmark; 
     932                name = "/*\n        \n        File:\t\t\tGPSController.m\n        Program:\t\tKisMAC\n\tAuthor:\t\t\tMichael Rossberg\n                                mick@binaervarianz.de\n\tDescription:\t\tKisMAC is a wireless stumbler for MacOS X.\n                \n        This file is part of KisMAC.\n        \n        Parts of this file are based on bsd airtools by h1kari.\n\n    KisMAC is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    KisMAC is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with KisMAC; if not, write to the Free Software\n    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n*/\n\n#import \"GPSController.h\"\n#import \"WaveHelper.h\"\n#import \"KisMACNotifications.h\"\n#import \"Trace.h\"\n\n#include <stdio.h>\n#include <fcntl.h>\n#include <sys/types.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <arpa/inet.h>\n#include <sys/uio.h>\n#include <sys/vnode.h>\n#include <sys/ioctl.h>\n#include <unistd.h>\n#include <netdb.h>\n#include <string.h>\n#include <errno.h>\n\n#include <sys/termios.h>\n\nstruct termios ttyset;\n\n#define MAX_GPSBUF_LEN 1024\n#define VELOCITY_UNIT \"km/h\"\n#define VELOCITY_CONVERSION 1.852\n#define DISTANCE_UNIT \"km\"\n\n@interface GPSController(PrivateExtension) \n    - (void)setStatus:(NSString*)status;\n@end\n\n@implementation GPSController\n\n- (id)init {\n    _gpsLock = [[NSLock alloc] init];\n    _gpsThreadUp    = NO;\n    _gpsShallRun    = NO;\n    _debugEnabled   = NO;\n    _lastAdd        = [[NSDate date] retain];\n    _linesRead      = 0;\n\n    [self setStatus:NSLocalizedString(@\"GPS subsystem initialized but not running.\", @\"GPS status\")];\n\n    return self;\n}\n\n- (bool)startForDevice:(NSString*) device {\n    _reliable = NO;\n    _ns.dir = 'N';\n    _ns.coordinates = 0;\n    _ew.dir = 'E';\n    _ew.coordinates = 0;\n    _elev.coordinates = 0;\n    _elev.dir = 'm';\n    _velkt = 0;\n\t_peakvel = 0;\n    _veldir = -1;\n    _numsat = -1;\n    _hdop = 100;\n\t_sectordist = 0;\n\t_sectortime = 0;\n\t_totaldist = 0;\n\n    [self stop];\n    \n    [WaveHelper secureReplace:&_gpsDevice withObject:device];\n    [WaveHelper secureRelease:&_lastUpdate];\n    [WaveHelper secureRelease:&_sectorStart];\n    \n    if ([_gpsDevice length]==0) {\n        NSLog(@\"GPS integration disabled\");\n        [self setStatus:NSLocalizedString(@\"GPS subsystem disabled.\", @\"GPS status\")];\n        return NO;\n    }\n\n    [self setStatus:NSLocalizedString(@\"Starting GPS subsystem.\", @\"GPS status\")];\n    \n    if ([_gpsDevice isEqualToString:@\"GPSd\"]) [NSThread detachNewThreadSelector:@selector(gpsThreadGPSd:) toTarget:self withObject:Nil];\n    else [NSThread detachNewThreadSelector:@selector(gpsThreadSerial:) toTarget:self withObject:Nil];\n    return YES;\n}\n\n#pragma mark -\n\n- (bool)reliable {\n    return _reliable;\n}\n\n- (bool)gpsRunning {\n    return _gpsThreadUp;\n}\n\n- (NSString*) NSCoord {\n    if (_ns.coordinates==0) return nil;\n    return [NSString stringWithFormat:@\"%f%c\",_ns.coordinates, _ns.dir];\n}\n\n- (NSString*) EWCoord {\n    if (_ew.coordinates==0) return nil;\n    return [NSString stringWithFormat:@\"%f%c\",_ew.coordinates, _ew.dir];\n}\n\n- (NSString*) ElevCoord {\n    if (_elev.coordinates==0) return [NSString stringWithFormat:@\"No Elevation Data\"];\n    //NSLog([NSString stringWithFormat:@\"%f\",_elev.coordinates]);\n    return [NSString stringWithFormat:@\"%.1f %c/%.1f ft\",_elev.coordinates, _elev.dir, (_elev.coordinates * 3.2808399)]; //don't know if formatting stuff is correct\n}\n\n- (NSString*) VelKt {\n\tfloat velconv,peakconv,maxconv;\n\tvelconv = _velkt * VELOCITY_CONVERSION;\n\tpeakconv = _peakvel * VELOCITY_CONVERSION;\n\tmaxconv = _maxvel * VELOCITY_CONVERSION;\n\tif (_velkt==_maxvel) {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [MAX]\",velconv,VELOCITY_UNIT,_velkt];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [MAX]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,_veldir];\n\t} else if (_velkt==_peakvel) {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [PEAK]\",velconv,VELOCITY_UNIT,_velkt];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [PEAK]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,_veldir];\n\t} else {\n\t\tif (_veldir==-1) return [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]\",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv];\n\t\treturn [NSString stringWithFormat:@\"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]\\nTrack: %d T\",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv,_veldir];\n\t}\n}\n\n- (NSString*) DistStats {\n\tint sectortime;\n\tint sterror=0;\n\tfloat timeinterval;\n\tsectortime = (int)_sectortime;\n\n\tif (_sectorStart && (sectortime > 0)) {\n\t\ttimeinterval = [[NSDate date] timeIntervalSinceDate:_sectorStart];\n\t\tsterror = sectortime - (int)timeinterval;\n\t\t// remove negative error that develops after stopping\n\t\tif ((_velkt == 0) && (sterror < 0)) sterror = 0;\n\t}\n\t\n\tif (sterror == 0) {\n\t\tif (sectortime > 3600) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 60) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 0) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d seconds (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse return [NSString stringWithFormat:@\"Total: %.1f %s (%.1f nm)\",(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t} else {\n\t\tif (sectortime > 3600) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse if (sectortime > 60) return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d:%02d [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t\telse return [NSString stringWithFormat:@\"Sector: %.1f %s (%.1f nm) in %d seconds [ERROR: %ds] (avg: %.1f %s)\\nTotal: %.1f %s (%.1f nm)\",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist];\n\t}\n}\n\n- (NSString*) QualData {\n\tif (_numsat==-1) return [NSString stringWithFormat:@\"\"];\n\tif (_hdop>=50 || _hdop==0) return [NSString stringWithFormat:@\" (%d sats)\",_numsat];\n\treturn [NSString stringWithFormat:@\" (%d sats, HDOP %.1f)\",_numsat,_hdop];\n}\n\n- (NSString*)status {\n    if (_status) return _status;\n    \n    if (_lastUpdate)\n        if (_elev.coordinates) \n            if ((_velkt || _maxvel) && _reliable) // only report velocity if we're sure\n                return [NSString stringWithFormat:@\"%@: %@ %@\\n%@: %@\\n%@: %@\\n%@\\n%@: %@%@\", \n                        NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                        [self NSCoord],[self EWCoord],\n                        NSLocalizedString(@\"Elevation\", \"GPS status string.\"), \n                        [self ElevCoord],\n                        NSLocalizedString(@\"Velocity\", \"GPS status string.\"), \n                        [self VelKt],[self DistStats],\n\t\t\t\t\t\tNSLocalizedString(@\"Time\", \"GPS status string.\"), \n\t\t\t\t\t\t[self lastUpdate],[self QualData]];\n            else\n                return [NSString stringWithFormat:@\"%@: %@ %@\\n%@: %@\\n%@: %@%@%@\", \n                        NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                        [self NSCoord],[self EWCoord],\n                        NSLocalizedString(@\"Elevation\", \"GPS status string.\"), \n                        [self ElevCoord],\n\t\t\t\t\t\tNSLocalizedString(@\"Time\", \"GPS status string.\"), \n\t\t\t\t\t\t[self lastUpdate],\n                        _reliable ? @\"\" : NSLocalizedString(@\" -- NO FIX\", \"GPS status string. Needs leading space\"),\n                        [self QualData]];\n        else\n            return [NSString stringWithFormat:@\"%@: %@ %@\\n%@%@\", \n                NSLocalizedString(@\"Position\", \"GPS status string.\"), \n                [self NSCoord],[self EWCoord],\n                [self lastUpdate],\n                _reliable ? @\"\" : NSLocalizedString(@\" -- NO FIX\", \"GPS status string. Needs leading space\"),\n\t\t\t\t[self QualData]];\n\n    else if ([(NSString*)[[NSUserDefaults standardUserDefaults] objectForKey:@\"GPSDevice\"] length]) {\n        if (_gpsThreadUp) return NSLocalizedString(@\"GPS subsystem works, but there is no data.\\nIf you are using gpsd, there may be no GPS connected.\\nOtherwise, your GPS is probably connected but not yet reporting a position.\", \"GPS status string\");\n        else  return NSLocalizedString(@\"GPS not working\", \"LONG GPS status string with informations howto debug\");\n            //@\"GPS subsystem is not working. See log file for more details.\"\n    } else return NSLocalizedString(@\"GPS disabled\", \"LONG GPS status string with informations where to enable\");\n            //@\"GPS subsystem is disabled. You have to select a device in the preferences window.\"\n}\n\n- (void)setStatus:(NSString*)status {\n    [WaveHelper secureReplace:&_status withObject:status];\n    [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:_status];\n}\n\n- (waypoint) currentPoint {\n    waypoint w;\n    \n    w._lat =_ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n    w._long=_ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n    w._elevation=_elev.coordinates;\n    \n    return w;\n}\n\n- (void) resetTrace {\n    [[WaveHelper trace] setTrace:nil];\n}\n\n- (void)setTraceInterval:(int)interval {\n    _traceInterval = interval;\n}\n- (void)setTripmateMode:(bool)mode {\n    _tripmateMode = mode;\n}\n\n- (void) setCurrentPointNS:(double)ns EW:(double)ew ELV:(double)elv{  //need to add elevation support here\n    waypoint w;\n    _ns.dir = (ns<0 ? 'S' : 'N');\n    _ew.dir = (ew<0 ? 'W' : 'E');\n    \n    _ns.coordinates = fabs(ns);\n    _ew.coordinates = fabs(ew); \n    \n    [WaveHelper secureReplace:&_lastUpdate withObject:[NSDate date]];\n    [WaveHelper secureReplace:&_lastAdd withObject:[NSDate date]];\n    \n    if (abs(ns)>=0 && abs(ns)<=90 && abs(ew)>=0 && abs(ew)<=180) {\n        w._long = ew;\n        w._lat  = ns;\n        [[WaveHelper trace] addPoint:w];\n    }\n}\n\n- (void)setOnNoFix:(int)onNoFix {\n    _onNoFix=onNoFix;\n}\n\n- (NSDate*) lastUpdate {\n    return _lastUpdate;\n}\n\n#pragma mark -\n\nbool check_sum(char *s, char h, char l) {\n  char checksum;\n  unsigned char ref;      /* must be unsigned */\n\n#ifdef PARANOIA\n  if(!s)\n    return NO;\n  if(!*s)\n    return NO;\n#endif\n\n  checksum = *s++;\n  while(*s && *s !='*')\n    checksum ^= *s++;\n\n#ifdef PARANOIA\n  if(!isxdigit(h))\n    return NO;\n  if(!isxdigit(l))\n    return NO;\n  h = (char)toupper(h);\n  l = (char)toupper(l);\n#endif\n\n  ref =  ((h >= 'A') ? (h -'A' + 10):(h - '0'));\n  ref <<= 4;\n  ref &= ((l >= 'A') ? (l -'A' + 10):(l - '0'));\n\n  if((char)ref == checksum)\n    return YES;             /* ckecksum OK */\n  \n  return NO;              /* checksum error */\n}\n\nint ss(char* inp, char* outp) {\n    int x=0;\n    \n    while(true) {\n        if (inp[x]==0) return -1;\n        if (inp[x]=='\\n') {\n            outp[x]=0;\n            return x;\n        }\n        outp[x]=inp[x];\n        x++;\n    }\n    \n    return x;\n}\n\n- (bool)gps_parse:(int) fd {\n    int len, valid, x=0;\n    static int q = 0;\n    char cvalid;\n    static char gpsin[MAX_GPSBUF_LEN];\n    char gpsbuf[MAX_GPSBUF_LEN];\n    int ewh, nsh;\n\tint veldir,numsat;\n\tfloat velkt,hdop;\n\tfloat timeinterval=-1;\n\tfloat displacement;\n    struct _position ns, ew, elev;\n    bool updated;\n    NSDate *date;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n\n    if (_debugEnabled) NSLog(@\"GPS read data\");\n    if (q>=1024) q = 0; //just in case something went wrong\n    \n    if((len = read(fd, &gpsin[q], MAX_GPSBUF_LEN-q-1)) < 0) return NO;\n    if (len == 0) return YES;\n    \n    if (_debugEnabled) NSLog(@\"GPS read data returned.\");\n    [self setStatus:nil];\n    _linesRead++;\n    \n    gpsin[q+len]=0;\n    updated = NO;\n    elev.coordinates = -10000.0;\n\tvelkt = -1.0;\n\tnumsat = -1;\n\thdop = 100;\n    \n    while (ss(&gpsin[x],gpsbuf)>0) {\n        if (_debugEnabled) NSLog(@\"GPS record: %s\", gpsbuf);//uncommented\n        if(_tripmateMode && (!strncmp(gpsbuf, \"ASTRAL\", 6))) {\n            write(fd, \"ASTRAL\\r\", 7);\n        } else if(strncmp(gpsbuf, \"$GPGGA\", 6) == 0) {  //gpsbuf contains GPS fixed data (almost everything poss)\n            if (sscanf(gpsbuf, \"%*[^,],%*f,%2d%f,%c,%3d%f,%c,%d,%d,%f,%f\",\n\t\t&nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir,\n\t        &valid, &numsat, &hdop, &elev.coordinates)>=7) { // this probably should be == 10 not >= 7  more testing\n                \t\t\n                if (valid) _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");\n                updated = YES;\n            }\n        } else if(strncmp(gpsbuf, \"$GPRMC\", 6) == 0) {  //gpsbuf contains Recommended minimum specific GPS/TRANSIT data !!does not include elevation\n            if (sscanf(gpsbuf, \"%*[^,],%*f,%c,%2d%f,%c,%3d%f,%c,%f,%d,\",\n                &cvalid, &nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir, &velkt, &veldir)==9) {\n            \n                if (cvalid == 'A') _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");  \n                updated = YES;\n            }\n        } else if(strncmp(gpsbuf, \"$GPGLL\", 6) == 0) {  //gbsbuf contains Geographical postiion, latitude and longitude only  !!does not include elevation\n            if (sscanf(gpsbuf, \"%*[^,],%2d%f,%c,%3d%f,%c,%*f,%c\",\n                &nsh, &ns.coordinates, &ns.dir,\n                &ewh, &ew.coordinates, &ew.dir, &cvalid)==7) {\n            \n                if (cvalid == 'A') _reliable = YES;\n                else _reliable = NO;\n                \n                if (_debugEnabled) NSLog(@\"GPS data updated.\");  \n                updated = YES;\n            }\n        }\n        \n        x+=strlen(gpsbuf)+1;\n    }\n    \n    q+=len-x;\n    memcpy(gpsbuf,&gpsin[x],q);\n    memcpy(gpsin,gpsbuf,q);\n    if (q>80) q=0;\n    \n\tdate = [[NSDate alloc] init];\n    \n\tif (updated) {\n        if (_reliable) {\n            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) {\n                waypoint w;\n                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date];\n            }\n        } else {\n            [[WaveHelper trace] cut];\n        }\n\t\ttimeinterval = [date timeIntervalSinceDate:_lastUpdate];\n        [WaveHelper secureReplace:&_lastUpdate withObject:date];\n\n        if ((_reliable)||(_onNoFix==0)) {\n            if (ns.dir != 'S') _ns.dir = 'N';\n            else _ns.dir = 'S';\n            \n            if (ew.dir != 'W') _ew.dir = 'E';\n            else _ew.dir = 'W';\n            \n            _ns.coordinates   = nsh + ns.coordinates / 60.0;\n            _ew.coordinates   = ewh + ew.coordinates / 60.0;\n            if (elev.coordinates > -10000.00) _elev.coordinates = elev.coordinates;\n\t\t\t\n            if (velkt > -1.0) {\n\t\t\t\tif ((velkt > 0) && (_velkt==0)) {\n\t\t\t\t\t_peakvel = 0;\n\t\t\t\t\t_sectordist = 0;\n\t\t\t\t\t_sectortime = 0;\n\t\t\t\t\t[WaveHelper secureReplace:&_sectorStart withObject:date];\n\t\t\t\t} else if ((velkt > 0) || (_velkt > 0)) {\n\t\t\t\t\t// update distances only if we're moving (or just stopped)\n\t\t\t\t\tdisplacement = (velkt + _velkt)*timeinterval/7200;\n\t\t\t\t\t_sectordist += displacement;\n\t\t\t\t\t_sectortime += timeinterval;\n\t\t\t\t\t_totaldist += displacement;\n\t\t\t\t}\n                _velkt = velkt;\n                _veldir = veldir;\n\t\t\t\tif (velkt > _peakvel) _peakvel = velkt;\n\t\t\t\tif (velkt > _maxvel) _maxvel = velkt;\n\t\t\t}\n            \n            if (numsat > -1) {\n                _numsat = numsat;\n                _hdop = hdop;\n            }\n        } else if(_onNoFix==2) {\n            _ns.dir = 'N';\n            _ew.dir = 'E';\n            \n            _elev.coordinates = 0;\n            _ns.coordinates = 0;\n            _ew.coordinates = 0;\n            _velkt = 0;\n        }\n    }\n    \n    [subpool release];\n\t[date release];\n    \n    return YES;\n}\n\n- (bool)gpsd_parse:(int) fd {\n    int len, valid, numsat, veldir;\n    char gpsbuf[MAX_GPSBUF_LEN];\n    double ns, ew, elev;\n\tfloat velkt,hdop,fveldir;\n\tfloat timeinterval=-1;\n\tfloat displacement;\n    NSDate *date;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n\n    if (_debugEnabled) NSLog(@\"GPSd write command\");\n    \n    if (write(fd, \"PAMVTQ\\r\\n\", 8) < 8) {\n        NSLog(@\"GPSd write failed\");\n        return NO;\n    }\n    \n    if((len = read(fd, &gpsbuf[0], MAX_GPSBUF_LEN)) < 0) {\n        NSLog(@\"GPSd read failed\");\n        return NO;\n    }\n    if (len == 0) return YES;\n    \n    if (_debugEnabled) NSLog(@\"GPSd read data returned.\");\n    [self setStatus:nil];\n    _linesRead++;\n    \n    gpsbuf[0+len]=0;\n \tnumsat = -1;\n\thdop = 100;\n   \n\tdate = [[NSDate alloc] init];\n\n\tif (sscanf(gpsbuf, \"GPSD,P=%lg %lg,A=%lg,M=%d,V=%f,T=%f,Q=%d %*f %f\",\n        &ns, &ew, &elev, &valid, &velkt, &fveldir, &numsat, &hdop) >=6) {\n                        \n        if (valid >= 2) _reliable = YES;\n        else _reliable = NO;\n        \n        if (_debugEnabled) NSLog(@\"GPSd data updated.\");\n\t\t\n\t\tif (_reliable) {\n            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) {\n                waypoint w;\n                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0);\n                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0);\n                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date];\n            }\n        } else {\n            [[WaveHelper trace] cut];\n        }\n\t\ttimeinterval = [date timeIntervalSinceDate:_lastUpdate];\n        [WaveHelper secureReplace:&_lastUpdate withObject:date];\n\n\n        if ((_reliable)||(_onNoFix==0)) {\n            if (ns >= 0) _ns.dir = 'N';\n            else _ns.dir = 'S';\n            \n            if (ew >= 0) _ew.dir = 'E';\n            else _ew.dir = 'W';\n            \n            _ns.coordinates   = fabs(ns);\n            _ew.coordinates   = fabs(ew);\n            _elev.coordinates = elev;\n\t\t\tif ((velkt > 0) && (_velkt==0)) {\n\t\t\t\t_peakvel = 0;\n\t\t\t\t_sectordist = 0;\n\t\t\t\t_sectortime = 0;\n\t\t\t\t[WaveHelper secureReplace:&_sectorStart withObject:date];\n\t\t\t} else if ((velkt > 0) || (_velkt > 0)) {\n\t\t\t\t// update distances only if we're moving (or just stopped)\n\t\t\t\tdisplacement = (velkt + _velkt)*timeinterval/7200;\n\t\t\t\t_sectordist += displacement;\n\t\t\t\t_sectortime += timeinterval;\n\t\t\t\t_totaldist += displacement;\n\t\t\t}\n\t\t\t_velkt = velkt;\n\t\t\tveldir = (int)fveldir;\n\t\t\t_veldir = veldir;\n\t\t\tif (velkt > _peakvel) _peakvel = velkt;\n\t\t\tif (velkt > _maxvel) _maxvel = velkt;\n\n\t\t\tif (numsat > -1) {\n\t\t\t\t_numsat = numsat;\n\t\t\t\t_hdop = hdop;\n\t\t\t}\n\t\t} else if(_onNoFix==2) {\n            _ns.dir = 'N';\n            _ew.dir = 'E';\n            \n            _elev.coordinates = 0;\n            _ns.coordinates = 0;\n            _ew.coordinates = 0;\n            _velkt = 0;\n        }\n    } else {\n        NSLog(@\"GPSd parsing failure\");\n    }\n    \n    [subpool release];\n\t[date release];\n    \n    return YES;\n}\n\n- (void) continousParse:(int) fd {\n    NSDate *date;\n    unsigned int i = 0;\n    NSAutoreleasePool* subpool;\n\t\n    while (_gpsShallRun && [self gps_parse:fd]) {\n\t\tsubpool = [[NSAutoreleasePool alloc] init];\n        //actually once a sec should be enough, but sometimes we dont get any information. so do it more often.\n        if ((i++ % 10 == 0) && (_status == Nil))\n            [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:[self status]];\n        date = [[NSDate alloc] initWithTimeIntervalSinceNow:0.1];\n        [NSThread sleepUntilDate:date];\n        [date release];\n\t\t[subpool release];\n    }\n}\n\n- (void) continousParseGPSd:(int) fd {\n    NSDate *date;\n    unsigned int i = 0;\n\tNSAutoreleasePool* subpool;\n\n    while (_gpsShallRun && [self gpsd_parse:fd]) {\n\t\tsubpool = [[NSAutoreleasePool alloc] init];\n        if ((i++ % 2 == 0) && (_status == Nil))\n            [[NSNotificationCenter defaultCenter] postNotificationName:KisMACGPSStatusChanged object:[self status]];\n        date = [[NSDate alloc] initWithTimeIntervalSinceNow:0.5];\n        [NSThread sleepUntilDate:date];\n        [date release];\n\t\t[subpool release];\n    }\n}\n\n- (void)gpsThreadSerial:(id)object {\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n    int     handshake;\n    struct  termios backup;\n\n    _gpsShallRun = NO;\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:10]]) {\n        _gpsThreadUp = YES;\n        _gpsShallRun = YES;\n        [_lastUpdate release];\n        _lastUpdate = nil;\n        [_sectorStart release];\n        _sectorStart = nil;\n        \n        [self setStatus:NSLocalizedString(@\"GPS subsystem starting up.\", @\"GPS status\")];\n\n        //NSLog(@\"Starting GPS device\");\n        if((_serialFD = open([_gpsDevice cString], O_RDWR | O_NOCTTY | O_NONBLOCK )) < 0) {\n            NSLog(@\"error: unable to open gps device: %s\", strerror(errno));\n            [self setStatus:NSLocalizedString(@\"Could not open GPS.\", @\"GPS status\")];\n        } else if(!isatty(_serialFD)) {\n            NSLog(@\"error: specified gps device is not a tty: %s\", strerror(errno));\n        } else if (ioctl(_serialFD, TIOCEXCL) == -1) {\n            NSLog(@\"error: could not set exclusive flag: %s\", strerror(errno));\n        } else if (fcntl(_serialFD, F_SETFL, 0) == -1) {\n            NSLog(@\"error: clearing O_NONBLOCK: %s(%d).\\n\", strerror(errno), errno);\n        } else if(tcgetattr(_serialFD, &backup) != 0) {\n            NSLog(@\"error: unable to set attributes for gps device: %s\", strerror(errno));\n        } else if(ioctl(_serialFD, TIOCGETA, &ttyset) < 0) {\n            NSLog(@\"error: unable to ioctl gps device: %s\", strerror(errno));\n        } else {\n            //NSLog(@\"GPS device is open\");\n            ttyset.c_ispeed = B4800;\n            ttyset.c_ospeed = B4800;\n            \n            ttyset.c_cflag |=       CRTSCTS;    // hadware flow on\n            ttyset.c_cflag &=       ~PARENB;    // no parity\n            ttyset.c_cflag &=       ~CSTOPB;    // one stopbit\n            ttyset.c_cflag &=       CSIZE;\n            ttyset.c_cflag |=       CS8;        // 8N1\n            ttyset.c_cflag |=       (CLOCAL | CREAD); //enable Localmode, receiver\n            ttyset.c_cc[VMIN] =     20;         // set min read chars if 0  VTIME takes over\n            ttyset.c_cc[VTIME] =    10;         // wait x ms for charakter\n\n            //options.c_cflag &= ~ ICANON; // canonical input \n            ttyset.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);\n\n            \n            if(ioctl(_serialFD, TIOCSETAF, &ttyset) < 0) {\n                NSLog(@\"error: unable to ioctl gps device: %s\", strerror(errno));\n            } else {\n                if (ioctl(_serialFD, TIOCSDTR) == -1) { // Assert Data Terminal Ready (DTR)\n                    NSLog(@\"Error asserting DTR - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                if (ioctl(_serialFD, TIOCCDTR) == -1) { // Clear Data Terminal Ready (DTR) \n                    NSLog(@\"Error clearing DTR - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                handshake = TIOCM_DTR | TIOCM_RTS | TIOCM_CTS | TIOCM_DSR;\n                if (ioctl(_serialFD, TIOCMSET, &handshake) == -1) { // Set the modem lines depending on the bits set in handshake\n                    NSLog(@\"Error setting handshake lines - %s(%d).\\n\", strerror(errno), errno);\n                }\n                \n                if (ioctl(_serialFD, TIOCMGET, &handshake) == -1) { // Store the state of the modem lines in handshake\n                    NSLog(@\"Error getting handshake lines - %s(%d).\\n\", strerror(errno), errno);\n                }\n\n                NSLog(@\"GPS started successfully in serial mode\\n\");\n                [self setStatus:NSLocalizedString(@\"GPS started in serial mode.\", @\"GPS status\")];\n\n                [self continousParse:_serialFD];\n            }\n            \n            if (_serialFD) close(_serialFD);\n            [self setStatus:NSLocalizedString(@\"GPS device closed.\", @\"GPS status\")];\n        }    \n\n        [_gpsLock unlock];\n        _gpsThreadUp = NO;\n    } else {\n        NSLog(@\"GPS LOCKING FAILURE!\");\n    }\n    \n    [subpool release];\n    return;\n}\n\n- (void)gpsThreadGPSd:(id)object {\n    int sockd;\n    struct sockaddr_in serv_name;\n    int status;\n    struct hostent *hp;\n    UInt32 ip;\n    NSUserDefaults *sets;\n    const char *hostname;\n    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init];\n    \n    _gpsShallRun = NO;\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:10]]) {\n        _gpsThreadUp = YES;\n        _gpsShallRun = YES;\n        [_lastUpdate release];\n        _lastUpdate = nil;\n        [_sectorStart release];\n        _sectorStart = nil;\n        \n        [self setStatus:NSLocalizedString(@\"Starting GPS in GPSd mode.\", @\"GPS status\")];\n\n        sets = [NSUserDefaults standardUserDefaults];\n        \n        sockd  = socket(AF_INET, SOCK_STREAM, 0);\n        if (sockd == -1) {\n            NSLog(@\"Socket creation failed!\");\n            goto err;\n        }\n        \n        hostname = [[sets objectForKey:@\"GPSDaemonHost\"] cString];\n        \n        if (inet_addr(hostname) != INADDR_NONE) {\n            ip = inet_addr(hostname);\n        } else {\n            hp = gethostbyname(hostname);\n            if (hp == NULL) {\n                NSLog(@\"Could not resolve %s\", hostname);\n                goto err;\n            }\n            ip = *(int *)hp->h_addr_list[0];\n        }\n        \n        /* server address */\n        serv_name.sin_addr.s_addr = ip;\n        serv_name.sin_family = AF_INET;\n        serv_name.sin_port = htons([sets integerForKey:@\"GPSDaemonPort\"]);\n\n        NSLog(@\"Connecting to gpsd (%s)\",inet_ntoa(serv_name.sin_addr));\n\n        /* connect to the server */\n        status = connect(sockd, (struct sockaddr*)&serv_name, sizeof(serv_name));\n        \n        if (status == -1) {\n            NSLog(@\"Could not connect to %s port %d\", hostname, [sets integerForKey:@\"GPSDaemonPort\"]);\n            goto err;\n        }\n\n        NSLog(@\"GPS started successfully in GPSd mode.\\n\");\n        [self setStatus:NSLocalizedString(@\"GPS started in GPSd mode.\", @\"GPS status\")];\n\n        [self continousParseGPSd: sockd];\n        close(sockd);\n\n        [self setStatus:NSLocalizedString(@\"GPSd connection terminated.\", @\"GPS status\")];\n    err:\n        [_gpsLock unlock];\n        _gpsThreadUp = NO;\n    } else {\n        NSLog(@\"GPS LOCKING FAILURE!\");\n    }\n\n    [subpool release];\n    return;\n}\n\n#pragma mark -\n\n- (void)writeDebugOutput:(BOOL)enable {\n    _debugEnabled = enable;\n}\n\n#pragma mark -\n\n- (void)stop {\n    int fd;\n    _gpsShallRun=NO;\n\n    [self setStatus:NSLocalizedString(@\"Trying to terminate GPS subsystem.\", @\"GPS status\")];\n    \n    if ([_gpsLock lockBeforeDate:[NSDate dateWithTimeIntervalSinceNow:0.5]]) {\n        [_gpsLock unlock];\n    } else {\n        //kill the file descriptor if cannot obtain a lock\n        if (_serialFD) {\n            fd = _serialFD;\n            _serialFD = 0;\n            close(fd);\n        }\n    }\n}\n\n- (void) dealloc {\n    [WaveHelper secureRelease:&_status];\n    _gpsShallRun=NO;\n    [_gpsLock release];\n    [_gpsDevice release];\n    [_lastAdd release];\n    [super dealloc];\n}\n\n@end\n"; 
     933                rLen = 29083; 
     934                rLoc = 0; 
     935                rType = 0; 
     936                vrLen = 719; 
     937                vrLoc = 28364; 
     938        }; 
     939        00766A2B0784506900A30713 = { 
     940                fRef = 0035341C06A5DD8500AB4577; 
     941                isa = PBXTextBookmark; 
     942                name = sendFrame; 
     943                rLen = 9; 
     944                rLoc = 4449; 
     945                rType = 0; 
     946                vrLen = 835; 
     947                vrLoc = 4068; 
     948        }; 
     949        00766A2C0784506900A30713 = { 
     950                fRef = 003533FB06A5DD8500AB4577; 
     951                isa = PBXTextBookmark; 
     952                name = "GPSController.m: 818"; 
     953                rLen = 0; 
     954                rLoc = 29327; 
     955                rType = 0; 
     956                vrLen = 669; 
     957                vrLoc = 28404; 
     958        }; 
     959        00766A38078450FA00A30713 = { 
     960                fRef = 003533FA06A5DD8500AB4577; 
     961                isa = PBXTextBookmark; 
     962                name = "Michael Rossberg, Robin Darroch"; 
     963                rLen = 31; 
     964                rLoc = 81; 
     965                rType = 0; 
     966                vrLen = 1154; 
     967                vrLoc = 0; 
     968        }; 
     969        00766A39078450FA00A30713 = { 
     970                fRef = 003533FB06A5DD8500AB4577; 
     971                isa = PBXTextBookmark; 
     972                name = "GPSController.m: 5"; 
     973                rLen = 0; 
     974                rLoc = 112; 
     975                rType = 0; 
     976                vrLen = 1171; 
     977                vrLoc = 0; 
     978        }; 
     979        00766A3A078450FA00A30713 = { 
     980                fRef = 003533FA06A5DD8500AB4577; 
     981                isa = PBXTextBookmark; 
     982                name = "Michael Rossberg, Robin Darroch"; 
     983                rLen = 31; 
     984                rLoc = 81; 
     985                rType = 0; 
     986                vrLen = 1154; 
     987                vrLoc = 0; 
     988        }; 
     989        00766A430784870600A30713 = { 
     990                fRef = 003533FB06A5DD8500AB4577; 
     991                isa = PBXTextBookmark; 
     992                name = "GPSController.m: 708"; 
     993                rLen = 0; 
     994                rLoc = 26117; 
     995                rType = 0; 
     996                vrLen = 945; 
     997                vrLoc = 25486; 
    686998        }; 
    687999        00875D190708ADB300CACFCB = { 
     
    8751187                        sepNavVisRect = "{{0, 1281}, {964, 468}}"; 
    8761188                }; 
    877         }; 
    878         00B056AD077312F300755A76 = { 
    879                 fRef = 003533AB06A5DD8500AB4577; 
    880                 isa = PBXTextBookmark; 
    881                 name = showBusy; 
    882                 rLen = 8; 
    883                 rLoc = 7272; 
    884                 rType = 0; 
    885                 vrLen = 1111; 
    886                 vrLoc = 6862; 
    887         }; 
    888         00B056B2077315D300755A76 = { 
    889                 fRef = 003533AB06A5DD8500AB4577; 
    890                 isa = PBXTextBookmark; 
    891                 name = "ScanControllerMenus.m: 204"; 
    892                 rLen = 0; 
    893                 rLoc = 7234; 
    894                 rType = 0; 
    895                 vrLen = 1111; 
    896                 vrLoc = 6862; 
    8971189        }; 
    8981190        00B6296607058E2B006FC563 = { 
     
    12081500                                ); 
    12091501                        }; 
    1210                         PBXPerProjectTemplateStateSaveDate = 124981895; 
     1502                        PBXPerProjectTemplateStateSaveDate = 126461447; 
    12111503                        PBXPrepackagedSmartGroups_v2 = ( 
    12121504                                { 
     
    16391931                                RubberWindowFrame = "267 358 745 464 0 0 1280 832 "; 
    16401932                        }; 
    1641                         PBXWorkspaceStateSaveDate = 124981895; 
     1933                        PBXWorkspaceStateSaveDate = 126461447; 
    16421934                }; 
    16431935                perUserProjectItems = { 
     1936                        0046467B0789A61A005B890E = 0046467B0789A61A005B890E; 
     1937                        0046467E0789A69D005B890E = 0046467E0789A69D005B890E; 
     1938                        0046467F0789A69D005B890E = 0046467F0789A69D005B890E; 
     1939                        004646800789A69D005B890E = 004646800789A69D005B890E; 
     1940                        004646810789A69D005B890E = 004646810789A69D005B890E; 
     1941                        004646820789A69D005B890E = 004646820789A69D005B890E; 
     1942                        004646830789A69D005B890E = 004646830789A69D005B890E; 
     1943                        004646840789A706005B890E = 004646840789A706005B890E; 
     1944                        004646850789A71F005B890E = 004646850789A71F005B890E; 
     1945                        004646880789A80A005B890E = 004646880789A80A005B890E; 
     1946                        004646890789A80A005B890E = 004646890789A80A005B890E; 
     1947                        0046468A0789A80A005B890E = 0046468A0789A80A005B890E; 
     1948                        0046468B0789A813005B890E = 0046468B0789A813005B890E; 
     1949                        0046468C0789A82A005B890E = 0046468C0789A82A005B890E; 
     1950                        0046468D0789A837005B890E = 0046468D0789A837005B890E; 
     1951                        0046468E0789A8BC005B890E = 0046468E0789A8BC005B890E; 
    16441952                        006300060764D4FC003B81CC = 006300060764D4FC003B81CC; 
    16451953                        006300080764D4FC003B81CC = 006300080764D4FC003B81CC; 
     
    16491957                        006302200764FCA8003B81CC = 006302200764FCA8003B81CC; 
    16501958                        006302210764FCA8003B81CC = 006302210764FCA8003B81CC; 
    1651                         00B056AD077312F300755A76 = 00B056AD077312F300755A76; 
    1652                         00B056B2077315D300755A76 = 00B056B2077315D300755A76; 
     1959                        0076657F07844A6400A30713 = 0076657F07844A6400A30713; 
     1960                        0076658007844A6400A30713 = 0076658007844A6400A30713; 
     1961                        0076658107844A6400A30713 = 0076658107844A6400A30713; 
     1962                        0076658407844A6400A30713 = 0076658407844A6400A30713; 
     1963                        0076658507844A6400A30713 = 0076658507844A6400A30713; 
     1964                        0076658C0784503B00A30713 = 0076658C0784503B00A30713; 
     1965                        00766A260784506900A30713 = 00766A260784506900A30713; 
     1966                        00766A270784506900A30713 = 00766A270784506900A30713; 
     1967                        00766A2A0784506900A30713 = 00766A2A0784506900A30713; 
     1968                        00766A2B0784506900A30713 = 00766A2B0784506900A30713; 
     1969                        00766A2C0784506900A30713 = 00766A2C0784506900A30713; 
     1970                        00766A38078450FA00A30713 = 00766A38078450FA00A30713; 
     1971                        00766A39078450FA00A30713 = 00766A39078450FA00A30713; 
     1972                        00766A3A078450FA00A30713 = 00766A3A078450FA00A30713; 
     1973                        00766A430784870600A30713 = 00766A430784870600A30713; 
    16531974                }; 
    16541975                sourceControlManager = 009F5C6006A5C8FF004BB18E; 
  • KisMACng/Resources/Generic/vendor.db

    r1 r46  
    193193        <key>00:09:B7</key> 
    194194        <string>Cisco</string> 
     195        <key>00:09:BF</key> 
     196        <string>Nintendo</string> 
    195197        <key>00:09:E8</key> 
    196198        <string>Cisco</string> 
  • KisMACng/Sources/Core/WaveScanner.mm

    r15 r46  
    3333 
    3434#ifndef CRCFUNCTION 
    35     #define CRCFUNCTION(s) @"<not valid>" 
     35    #define CRCFUNCTION(s) @"00:00:00:00:00:00:00:00:00:00:00:00:00:00:FF" 
    3636#endif 
    3737 
  • KisMACng/Sources/Support/GPSController.h

    r15 r46  
    33        File:                   GPSController.h 
    44        Program:                KisMAC 
    5         Author:                 Michael Rossberg 
     5                Author:                 Michael Rossberg, Robin Darroch 
    66                                mick@binaervarianz.de 
    7         Description:            KisMAC is a wireless stumbler for MacOS X. 
     7                Description:            KisMAC is a wireless stumbler for MacOS X. 
    88                 
    99        This file is part of KisMAC. 
     
    4444    int     _veldir; 
    4545    float   _velkt; 
     46        float   _maxvel; 
     47        float   _peakvel; 
    4648    int     _numsat; 
    4749    float   _hdop; 
     50        float   _sectordist; 
     51        float   _sectortime; 
     52        float   _totaldist; 
    4853     
    4954    struct _position    _ns, _ew, _elev; 
     
    5257    NSString*           _gpsDevice; 
    5358    NSDate*             _lastUpdate; 
     59    NSDate*                             _sectorStart; 
    5460    NSLock*             _gpsLock; 
    5561    NSString*           _status; 
  • KisMACng/Sources/Support/GPSController.m

    r41 r46  
    33        File:                   GPSController.m 
    44        Program:                KisMAC 
    5         Author:                 Michael Rossberg 
    6                                 mick@binaervarianz.de 
    7         Description:            KisMAC is a wireless stumbler for MacOS X. 
     5                Author:                 Michael Rossberg, Robin Darroch 
     6                                                mick@binaervarianz.de 
     7                Description:    KisMAC is a wireless stumbler for MacOS X. 
    88                 
    99        This file is part of KisMAC. 
     
    5252#define VELOCITY_UNIT "km/h" 
    5353#define VELOCITY_CONVERSION 1.852 
     54#define DISTANCE_UNIT "km" 
    5455 
    5556@interface GPSController(PrivateExtension)  
     
    8182    _elev.dir = 'm'; 
    8283    _velkt = 0; 
     84        _peakvel = 0; 
    8385    _veldir = -1; 
    8486    _numsat = -1; 
    8587    _hdop = 100; 
     88        _sectordist = 0; 
     89        _sectortime = 0; 
     90        _totaldist = 0; 
    8691 
    8792    [self stop]; 
     
    8994    [WaveHelper secureReplace:&_gpsDevice withObject:device]; 
    9095    [WaveHelper secureRelease:&_lastUpdate]; 
     96    [WaveHelper secureRelease:&_sectorStart]; 
    9197     
    9298    if ([_gpsDevice length]==0) { 
     
    126132    if (_elev.coordinates==0) return [NSString stringWithFormat:@"No Elevation Data"]; 
    127133    //NSLog([NSString stringWithFormat:@"%f",_elev.coordinates]); 
    128     return [NSString stringWithFormat:@"%.1f%c",_elev.coordinates, _elev.dir]; //don't know if formatting stuff is correct 
     134    return [NSString stringWithFormat:@"%.1f %c/%.1f ft",_elev.coordinates, _elev.dir, (_elev.coordinates * 3.2808399)]; //don't know if formatting stuff is correct 
    129135} 
    130136 
    131137- (NSString*) VelKt { 
    132         if (_velkt==0) return nil; 
    133         if (_veldir==-1) return [NSString stringWithFormat:@"%.1f %s",(_velkt * VELOCITY_CONVERSION),VELOCITY_UNIT]; 
    134         return [NSString stringWithFormat:@"%.1f %s at %d T",(_velkt * VELOCITY_CONVERSION),VELOCITY_UNIT,_veldir]; 
     138        float velconv,peakconv,maxconv; 
     139        velconv = _velkt * VELOCITY_CONVERSION; 
     140        peakconv = _peakvel * VELOCITY_CONVERSION; 
     141        maxconv = _maxvel * VELOCITY_CONVERSION; 
     142        if (_velkt==_maxvel) { 
     143                if (_veldir==-1) return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [MAX]",velconv,VELOCITY_UNIT,_velkt]; 
     144                return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [MAX]\nTrack: %d T",velconv,VELOCITY_UNIT,_velkt,_veldir]; 
     145        } else if (_velkt==_peakvel) { 
     146                if (_veldir==-1) return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [PEAK]",velconv,VELOCITY_UNIT,_velkt]; 
     147                return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [PEAK]\nTrack: %d T",velconv,VELOCITY_UNIT,_velkt,_veldir]; 
     148        } else { 
     149                if (_veldir==-1) return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv]; 
     150                return [NSString stringWithFormat:@"%.1f %s (%.1f kt) [peak: %.1f, max: %.1f]\nTrack: %d T",velconv,VELOCITY_UNIT,_velkt,peakconv,maxconv,_veldir]; 
     151        } 
     152} 
     153 
     154- (NSString*) DistStats { 
     155        int sectortime; 
     156        int sterror=0; 
     157        float timeinterval; 
     158        sectortime = (int)_sectortime; 
     159 
     160        if (_sectorStart && (sectortime > 0)) { 
     161                timeinterval = [[NSDate date] timeIntervalSinceDate:_sectorStart]; 
     162                sterror = sectortime - (int)timeinterval; 
     163                // remove negative error that develops after stopping 
     164                if ((_velkt == 0) && (sterror < 0)) sterror = 0; 
     165        } 
     166         
     167        if (sterror == 0) { 
     168                if (sectortime > 3600) return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     169                else if (sectortime > 60) return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d:%02d (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     170                else if (sectortime > 0) return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d seconds (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     171                else return [NSString stringWithFormat:@"Total: %.1f %s (%.1f nm)",(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     172        } else { 
     173                if (sectortime > 3600) return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d:%02d:%02d [ERROR: %ds] (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/3600),(sectortime%3600/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     174                else if (sectortime > 60) return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d:%02d [ERROR: %ds] (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,(sectortime/60),(sectortime%60),sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     175                else return [NSString stringWithFormat:@"Sector: %.1f %s (%.1f nm) in %d seconds [ERROR: %ds] (avg: %.1f %s)\nTotal: %.1f %s (%.1f nm)",(_sectordist * VELOCITY_CONVERSION),DISTANCE_UNIT,_sectordist,sectortime,sterror,(3600 * _sectordist * VELOCITY_CONVERSION)/_sectortime,VELOCITY_UNIT,(_totaldist * VELOCITY_CONVERSION),DISTANCE_UNIT,_totaldist]; 
     176        } 
    135177} 
    136178 
     
    146188    if (_lastUpdate) 
    147189        if (_elev.coordinates)  
    148             if (_velkt && _reliable) // only report velocity if we're sure 
    149                 return [NSString stringWithFormat:@"%@: %@ %@, %@: %@, %@: %@ @ %@%@",  
     190            if ((_velkt || _maxvel) && _reliable) // only report velocity if we're sure 
     191                return [NSString stringWithFormat:@"%@: %@ %@\n%@: %@\n%@: %@\n%@\n%@: %@%@",  
    150192                        NSLocalizedString(@"Position", "GPS status string."),  
    151193                        [self NSCoord],[self EWCoord], 
     
    153195                        [self ElevCoord], 
    154196                        NSLocalizedString(@"Velocity", "GPS status string."),  
    155                         [self VelKt],[self lastUpdate],[self QualData]]; 
     197                        [self VelKt],[self DistStats], 
     198                                                NSLocalizedString(@"Time", "GPS status string."),  
     199                                                [self lastUpdate],[self QualData]]; 
    156200            else 
    157                 return [NSString stringWithFormat:@"%@: %@ %@, %@: %@ @ %@%@%@",  
     201                return [NSString stringWithFormat:@"%@: %@ %@\n%@: %@\n%@: %@%@%@",  
    158202                        NSLocalizedString(@"Position", "GPS status string."),  
    159203                        [self NSCoord],[self EWCoord], 
    160204                        NSLocalizedString(@"Elevation", "GPS status string."),  
    161                         [self ElevCoord],[self lastUpdate], 
     205                        [self ElevCoord], 
     206                                                NSLocalizedString(@"Time", "GPS status string."),  
     207                                                [self lastUpdate], 
    162208                        _reliable ? @"" : NSLocalizedString(@" -- NO FIX", "GPS status string. Needs leading space"), 
    163209                        [self QualData]]; 
    164210        else 
    165             return [NSString stringWithFormat:@"%@: %@ %@ @ %@%@",  
     211            return [NSString stringWithFormat:@"%@: %@ %@\n%@%@",  
    166212                NSLocalizedString(@"Position", "GPS status string."),  
    167213                [self NSCoord],[self EWCoord], 
     
    171217 
    172218    else if ([(NSString*)[[NSUserDefaults standardUserDefaults] objectForKey:@"GPSDevice"] length]) { 
    173         if (_gpsThreadUp) return NSLocalizedString(@"GPS subsystem works, but there is no data.", "GPS status string"); 
     219        if (_gpsThreadUp) return NSLocalizedString(@"GPS subsystem works, but there is no data.\nIf you are using gpsd, there may be no GPS connected.\nOtherwise, your GPS is probably connected but not yet reporting a position.", "GPS status string"); 
    174220        else  return NSLocalizedString(@"GPS not working", "LONG GPS status string with informations howto debug"); 
    175221            //@"GPS subsystem is not working. See log file for more details." 
     
    291337        int veldir,numsat; 
    292338        float velkt,hdop; 
     339        float timeinterval=-1; 
     340        float displacement; 
    293341    struct _position ns, ew, elev; 
    294342    bool updated; 
     343    NSDate *date; 
    295344    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init]; 
    296345 
     
    360409    if (q>80) q=0; 
    361410     
    362     if (updated) { 
     411        date = [[NSDate alloc] init]; 
     412     
     413        if (updated) { 
    363414        if (_reliable) { 
    364415            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) { 
     
    366417                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0); 
    367418                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0); 
    368                 if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:[NSDate date]]; 
     419                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date]; 
    369420            } 
    370421        } else { 
    371422            [[WaveHelper trace] cut]; 
    372423        } 
    373         [WaveHelper secureReplace:&_lastUpdate withObject:[NSDate date]]; 
     424                timeinterval = [date timeIntervalSinceDate:_lastUpdate]; 
     425        [WaveHelper secureReplace:&_lastUpdate withObject:date]; 
    374426 
    375427        if ((_reliable)||(_onNoFix==0)) { 
     
    385437                         
    386438            if (velkt > -1.0) { 
     439                                if ((velkt > 0) && (_velkt==0)) { 
     440                                        _peakvel = 0; 
     441                                        _sectordist = 0; 
     442                                        _sectortime = 0; 
     443                                        [WaveHelper secureReplace:&_sectorStart withObject:date]; 
     444                                } else if ((velkt > 0) || (_velkt > 0)) { 
     445                                        // update distances only if we're moving (or just stopped) 
     446                                        displacement = (velkt + _velkt)*timeinterval/7200; 
     447                                        _sectordist += displacement; 
     448                                        _sectortime += timeinterval; 
     449                                        _totaldist += displacement; 
     450                                } 
    387451                _velkt = velkt; 
    388452                _veldir = veldir; 
    389             } 
     453                                if (velkt > _peakvel) _peakvel = velkt; 
     454                                if (velkt > _maxvel) _maxvel = velkt; 
     455                        } 
    390456             
    391457            if (numsat > -1) { 
     
    404470    } 
    405471     
     472    [date release]; 
    406473    [subpool release]; 
    407      
     474         
    408475    return YES; 
    409476} 
     
    414481    double ns, ew, elev; 
    415482        float velkt,hdop,fveldir; 
     483        float timeinterval=-1; 
     484        float displacement; 
     485    NSDate *date; 
    416486    NSAutoreleasePool* subpool = [[NSAutoreleasePool alloc] init]; 
    417487 
     
    437507        hdop = 100; 
    438508    
     509        date = [[NSDate alloc] init]; 
     510 
    439511        if (sscanf(gpsbuf, "GPSD,P=%lg %lg,A=%lg,M=%d,V=%f,T=%f,Q=%d %*f %f", 
    440512        &ns, &ew, &elev, &valid, &velkt, &fveldir, &numsat, &hdop) >=6) { 
     
    444516         
    445517        if (_debugEnabled) NSLog(@"GPSd data updated."); 
    446  
    447         if (_reliable) { 
     518                 
     519                if (_reliable) { 
    448520            if (([_lastUpdate timeIntervalSinceDate:_lastAdd]>_traceInterval) && (_traceInterval != 100)) { 
    449521                waypoint w; 
    450522                w._lat  = _ns.coordinates * ((_ns.dir=='N') ? 1.0 : -1.0); 
    451523                w._long = _ew.coordinates * ((_ew.dir=='E') ? 1.0 : -1.0); 
    452                 if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:[NSDate date]]; 
     524                if ([[WaveHelper trace] addPoint:w]) [WaveHelper secureReplace:&_lastAdd withObject:date]; 
    453525            } 
    454526        } else { 
    455527            [[WaveHelper trace] cut]; 
    456528        } 
    457         [WaveHelper secureReplace:&_lastUpdate withObject:[NSDate date]]; 
     529                timeinterval = [date timeIntervalSinceDate:_lastUpdate]; 
     530        [WaveHelper secureReplace:&_lastUpdate withObject:date]; 
    458531 
    459532 
     
    468541            _ew.coordinates   = fabs(ew); 
    469542            _elev.coordinates = elev; 
     543                        if ((velkt > 0) && (_velkt==0)) { 
     544                                _peakvel = 0; 
     545                                _sectordist = 0; 
     546                                _sectortime = 0; 
     547                                [WaveHelper secureReplace:&_sectorStart withObject:date]; 
     548                        } else if ((velkt > 0) || (_velkt > 0)) { 
     549                                // update distances only if we're moving (or just stopped) 
     550                                displacement = (velkt + _velkt)*timeinterval/7200; 
     551                                _sectordist += displacement; 
     552                                _sectortime += timeinterval; 
     553                                _totaldist += displacement; 
     554                        } 
    470555                        _velkt = velkt; 
    471556                        veldir = (int)fveldir; 
    472557                        _veldir = veldir; 
     558                        if (velkt > _peakvel) _peakvel = velkt; 
     559                        if (velkt > _maxvel) _maxvel = velkt; 
    473560 
    474561                        if (numsat > -1) { 
     
    489576    } 
    490577     
     578    [date release]; 
    491579    [subpool release]; 
    492      
     580         
    493581    return YES; 
    494582} 
     
    539627        [_lastUpdate release]; 
    540628        _lastUpdate = nil; 
     629        [_sectorStart release]; 
     630        _sectorStart = nil; 
    541631         
    542632        [self setStatus:NSLocalizedString(@"GPS subsystem starting up.", @"GPS status")]; 
     
    631721        [_lastUpdate release]; 
    632722        _lastUpdate = nil; 
     723        [_sectorStart release]; 
     724        _sectorStart = nil; 
    633725         
    634726        [self setStatus:NSLocalizedString(@"Starting GPS in GPSd mode.", @"GPS status")]; 
     
    639731        if (sockd == -1) { 
    640732            NSLog(@"Socket creation failed!"); 
     733                        [self setStatus:NSLocalizedString(@"Could not create GPSd socket.", @"GPS status")]; 
    641734            goto err; 
    642735        } 
     
    650743            if (hp == NULL) { 
    651744                NSLog(@"Could not resolve %s", hostname); 
     745                                [self setStatus:NSLocalizedString(@"Could not resolve GPSd server.", @"GPS status")]; 
    652746                goto err; 
    653747            } 
     
    667761        if (status == -1) { 
    668762            NSLog(@"Could not connect to %s port %d", hostname, [sets integerForKey:@"GPSDaemonPort"]); 
    669             goto err; 
     763                        [self setStatus:NSLocalizedString(@"Could not connect to GPSd.", @"GPS status")]; 
     764                        goto err; 
    670765        } 
    671766 
  • KisMACng/Subprojects/AtherosDriver/AtherosWifi/AtherosWifi.xcode/mick.mode1

    r37 r46  
    246246                                                                <string>19C28FB6FE9D52B211CA2CBB</string> 
    247247                                                                <string>1C37FBAC04509CD000000102</string> 
     248                                                                <string>00ECB4D50781D81D00E65193</string> 
    248249                                                                <string>1C37FABC05509CD000000102</string> 
    249250                                                        </array> 
     
    251252                                                        <array> 
    252253                                                                <array> 
    253                                                                         <integer>4</integer> 
    254                                                                         <integer>1</integer> 
    255                                                                         <integer>0</integer> 
     254                                                                        <integer>14</integer> 
     255                                                                        <integer>13</integer> 
    256256                                                                </array> 
    257257                                                        </array> 
     
    288288                                                                <string>1CE0B20306471E060097A5F4</string> 
    289289                                                                <key>PBXProjectModuleLabel</key> 
    290                                                                 <string>AtherosWifi.cpp</string> 
     290                                                                <string>Target: AtherosWifi</string> 
    291291                                                                <key>PBXSplitModuleInNavigatorKey</key> 
    292292                                                                <dict> 
     
    296296                                                                                <string>1CE0B20406471E060097A5F4</string> 
    297297                                                                                <key>PBXProjectModuleLabel</key> 
    298                                                                                 <string>AtherosWifi.cpp</string> 
     298                                                                                <string>Target: AtherosWifi</string> 
    299299                                                                                <key>bookmark</key> 
    300                                                                                 <string>003F2B0E06DA98D200DC4841</string> 
     300                                                                                <string>00ECB4DF0781E69800E65193</string> 
    301301                                                                                <key>history</key> 
    302302                                                                                <array> 
     
    304304                                                                                        <string>00FF588406C6268C006C7F1E</string> 
    305305                                                                                        <string>00FF5B9906C6768F006C7F1E</string> 
    306                                                                                         <string>005DA63D06C8D83700ACF77D</string> 
     306                                                                                        <string>00ECB4D60781D81D00E65193</string> 
     307                                                                                        <string>00ECB4D70781D81D00E65193</string> 
    307308                                                                                        <string>005DAA7906C92F9E00ACF77D</string> 
    308                                                                                         <string>003F2AA806DA90CC00DC4841</string> 
    309309                                                                                </array> 
    310310                                                                                <key>prevStack</key> 
     
    315315                                                                                        <string>005DA64006C8D83700ACF77D</string> 
    316316                                                                                        <string>005DAA7B06C92F9E00ACF77D</string> 
     317                                                                                        <string>00ECB4D80781D81D00E65193</string> 
     318                                                                                        <string>00ECB4D90781D81D00E65193</string> 
    317319                                                                                </array> 
    318320                                                                        </dict> 
     
    326328                                                        <dict> 
    327329                                                                <key>Frame</key> 
    328                                                                 <string>{{0, 0}, {1074, 683}}</string> 
     330                                                                <string>{{0, 0}, {1074, 478}}</string> 
    329331                                                                <key>RubberWindowFrame</key> 
    330332                                                                <string>0 100 1280 732 0 0 1280 832 </string> 
     
    333335                                                        <string>PBXNavigatorGroup</string> 
    334336                                                        <key>Proportion</key> 
    335                                                         <string>683pt</string> 
     337                                                        <string>478pt</string> 
    336338                                                </dict> 
    337339                                                <dict> 
     
    346348                                                        <dict> 
    347349                                                                <key>Frame</key> 
    348                                                                 <string>{{0, 690}, {1074, 0}}</string> 
     350                                                                <string>{{0, 485}, {1074, 205}}</string> 
    349351                                                                <key>RubberWindowFrame</key> 
    350352                                                                <string>0 100 1280 732 0 0 1280 832 </string> 
     
    353355                                                        <string>XCDetailModule</string> 
    354356                                                        <key>Proportion</key> 
    355                                                         <string>0pt</string> 
     357                                                        <string>205pt</string> 
    356358                                                </dict> 
    357359                                        </array> 
     
    372374                        <key>TableOfContents</key> 
    373375                        <array> 
    374                                 <string>003F2A9906DA8C9600DC4841</string> 
     376                                <string>00ECB4DB0781D81D00E65193</string> 
    375377                                <string>1CE0B1FE06471DED0097A5F4</string> 
    376                                 <string>003F2A9A06DA8C9600DC4841</string> 
     378                                <string>00ECB4DC0781D81D00E65193</string> 
    377379                                <string>1CE0B20306471E060097A5F4</string> 
    378380                                <string>1CE0B20506471E060097A5F4</string> 
     
    402404        <key>WindowOrderList</key> 
    403405        <array> 
    404                 <string>/Users/mick/Development/WifiDriver/AtherosWifi/AtherosWifi.xcode</string> 
     406                <string>/Users/mick/openDev/KisMACng/Subprojects/AtherosDriver/AtherosWifi/AtherosWifi.xcode</string> 
    405407        </array> 
    406408        <key>WindowString</key> 
  • KisMACng/Subprojects/AtherosDriver/AtherosWifi/AtherosWifi.xcode/mick.pbxuser

    r37 r46  
    11// !$*UTF8*$! 
    22{ 
    3         003F2A9806DA8C9600DC4841 = { 
    4                 fRef = 1A224C3FFF42367911CA2CB7; 
    5                 isa = PBXTextBookmark; 
    6                 name = "AtherosWifi.cpp: 1140"; 
    7                 rLen = 0; 
    8                 rLoc = 33497; 
    9                 rType = 0; 
    10                 vrLen = 2057; 
    11                 vrLoc = 32459; 
    12         }; 
    13         003F2AA806DA90CC00DC4841 = { 
    14                 fRef = 1A224C3FFF42367911CA2CB7; 
    15                 isa = PBXTextBookmark; 
    16                 name = WLFrame; 
    17                 rLen = 7; 
    18                 rLoc = 33226; 
    19                 rType = 0; 
    20                 vrLen = 2085; 
    21                 vrLoc = 32365; 
    22         }; 
    23         003F2AA906DA90CC00DC4841 = { 
    24                 fRef = 1A224C3FFF42367911CA2CB7; 
    25                 isa = PBXTextBookmark; 
    26                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    27                 rLen = 117; 
    28                 rLoc = 33729; 
    29                 rType = 0; 
    30                 vrLen = 2077; 
    31                 vrLoc = 32365; 
    32         }; 
    33         003F2AAC06DA911300DC4841 = { 
    34                 fRef = 1A224C3FFF42367911CA2CB7; 
    35                 isa = PBXTextBookmark; 
    36                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    37                 rLen = 117; 
    38                 rLoc = 33729; 
    39                 rType = 0; 
    40                 vrLen = 2077; 
    41                 vrLoc = 32365; 
    42         }; 
    43         003F2AAF06DA914F00DC4841 = { 
    44                 fRef = 1A224C3FFF42367911CA2CB7; 
    45                 isa = PBXTextBookmark; 
    46                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    47                 rLen = 117; 
    48                 rLoc = 33729; 
    49                 rType = 0; 
    50                 vrLen = 2077; 
    51                 vrLoc = 32365; 
    52         }; 
    53         003F2AB206DA915300DC4841 = { 
    54                 fRef = 1A224C3FFF42367911CA2CB7; 
    55                 isa = PBXTextBookmark; 
    56                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    57                 rLen = 117; 
    58                 rLoc = 33729; 
    59                 rType = 0; 
    60                 vrLen = 2077; 
    61                 vrLoc = 32365; 
    62         }; 
    63         003F2AB506DA919F00DC4841 = { 
    64                 fRef = 1A224C3FFF42367911CA2CB7; 
    65                 isa = PBXTextBookmark; 
    66                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    67                 rLen = 117; 
    68                 rLoc = 33729; 
    69                 rType = 0; 
    70                 vrLen = 2077; 
    71                 vrLoc = 32365; 
    72         }; 
    73         003F2AB906DA91EF00DC4841 = { 
    74                 fRef = 1A224C3FFF42367911CA2CB7; 
    75                 isa = PBXTextBookmark; 
    76                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    77                 rLen = 117; 
    78                 rLoc = 33729; 
    79                 rType = 0; 
    80                 vrLen = 2077; 
    81                 vrLoc = 32365; 
    82         }; 
    83         003F2ABF06DA921300DC4841 = { 
    84                 fRef = 1A224C3FFF42367911CA2CB7; 
    85                 isa = PBXTextBookmark; 
    86                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    87                 rLen = 117; 
    88                 rLoc = 33729; 
    89                 rType = 0; 
    90                 vrLen = 2077; 
    91                 vrLoc = 32365; 
    92         }; 
    93         003F2AC206DA922900DC4841 = { 
    94                 fRef = 1A224C3FFF42367911CA2CB7; 
    95                 isa = PBXTextBookmark; 
    96                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    97                 rLen = 117; 
    98                 rLoc = 33729; 
    99                 rType = 0; 
    100                 vrLen = 2077; 
    101                 vrLoc = 32365; 
    102         }; 
    103         003F2AC506DA928E00DC4841 = { 
    104                 fRef = 1A224C3FFF42367911CA2CB7; 
    105                 isa = PBXTextBookmark; 
    106                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    107                 rLen = 117; 
    108                 rLoc = 33729; 
    109                 rType = 0; 
    110                 vrLen = 2077; 
    111                 vrLoc = 32365; 
    112         }; 
    113         003F2ACB06DA939100DC4841 = { 
    114                 fRef = 1A224C3FFF42367911CA2CB7; 
    115                 isa = PBXTextBookmark; 
    116                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    117                 rLen = 117; 
    118                 rLoc = 33729; 
    119                 rType = 0; 
    120                 vrLen = 2077; 
    121                 vrLoc = 32365; 
    122         }; 
    123         003F2ACE06DA93E800DC4841 = { 
    124                 fRef = 1A224C3FFF42367911CA2CB7; 
    125                 isa = PBXTextBookmark; 
    126                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    127                 rLen = 117; 
    128                 rLoc = 33729; 
    129                 rType = 0; 
    130                 vrLen = 2077; 
    131                 vrLoc = 32365; 
    132         }; 
    133         003F2AD406DA942000DC4841 = { 
    134                 fRef = 1A224C3FFF42367911CA2CB7; 
    135                 isa = PBXTextBookmark; 
    136                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    137                 rLen = 117; 
    138                 rLoc = 33729; 
    139                 rType = 0; 
    140                 vrLen = 2077; 
    141                 vrLoc = 32365; 
    142         }; 
    143         003F2AD806DA945F00DC4841 = { 
    144                 fRef = 1A224C3FFF42367911CA2CB7; 
    145                 isa = PBXTextBookmark; 
    146                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    147                 rLen = 117; 
    148                 rLoc = 33729; 
    149                 rType = 0; 
    150                 vrLen = 2077; 
    151                 vrLoc = 32365; 
    152         }; 
    153         003F2ADB06DA946000DC4841 = { 
    154                 fRef = 1A224C3FFF42367911CA2CB7; 
    155                 isa = PBXTextBookmark; 
    156                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    157                 rLen = 117; 
    158                 rLoc = 33729; 
    159                 rType = 0; 
    160                 vrLen = 2077; 
    161                 vrLoc = 32365; 
    162         }; 
    163         003F2AE306DA948700DC4841 = { 
    164                 fRef = 1A224C3FFF42367911CA2CB7; 
    165                 isa = PBXTextBookmark; 
    166                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    167                 rLen = 117; 
    168                 rLoc = 33729; 
    169                 rType = 0; 
    170                 vrLen = 2077; 
    171                 vrLoc = 32365; 
    172         }; 
    173         003F2AE606DA949900DC4841 = { 
    174                 fRef = 1A224C3FFF42367911CA2CB7; 
    175                 isa = PBXTextBookmark; 
    176                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    177                 rLen = 117; 
    178                 rLoc = 33729; 
    179                 rType = 0; 
    180                 vrLen = 2077; 
    181                 vrLoc = 32365; 
    182         }; 
    183         003F2AEA06DA94DE00DC4841 = { 
    184                 fRef = 1A224C3FFF42367911CA2CB7; 
    185                 isa = PBXTextBookmark; 
    186                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    187                 rLen = 117; 
    188                 rLoc = 33729; 
    189                 rType = 0; 
    190                 vrLen = 2077; 
    191                 vrLoc = 32365; 
    192         }; 
    193         003F2AED06DA950700DC4841 = { 
    194                 fRef = 1A224C3FFF42367911CA2CB7; 
    195                 isa = PBXTextBookmark; 
    196                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    197                 rLen = 117; 
    198                 rLoc = 33729; 
    199                 rType = 0; 
    200                 vrLen = 2077; 
    201                 vrLoc = 32365; 
    202         }; 
    203         003F2AF006DA956800DC4841 = { 
    204                 fRef = 1A224C3FFF42367911CA2CB7; 
    205                 isa = PBXTextBookmark; 
    206                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    207                 rLen = 117; 
    208                 rLoc = 33729; 
    209                 rType = 0; 
    210                 vrLen = 2077; 
    211                 vrLoc = 32365; 
    212         }; 
    213         003F2AF606DA959D00DC4841 = { 
    214                 fRef = 1A224C3FFF42367911CA2CB7; 
    215                 isa = PBXTextBookmark; 
    216                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    217                 rLen = 117; 
    218                 rLoc = 33729; 
    219                 rType = 0; 
    220                 vrLen = 2077; 
    221                 vrLoc = 32365; 
    222         }; 
    223         003F2AFC06DA960000DC4841 = { 
    224                 fRef = 1A224C3FFF42367911CA2CB7; 
    225                 isa = PBXTextBookmark; 
    226                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    227                 rLen = 117; 
    228                 rLoc = 33729; 
    229                 rType = 0; 
    230                 vrLen = 2077; 
    231                 vrLoc = 32365; 
    232         }; 
    233         003F2B0206DA966900DC4841 = { 
    234                 fRef = 1A224C3FFF42367911CA2CB7; 
    235                 isa = PBXTextBookmark; 
    236                 name = "if (!_packetQueue->enqueue(packet, f->dataLen))\n                //    IOLog(\"AtherosWifi:: packet queue overflow\\n\");"; 
    237                 rLen = 117; 
    238                 rLoc = 33729; 
    239                 rType = 0; 
    240                 vrLen = 2077; 
    241                 vrLoc = 32365; 
    242         }; 
    243         003F2B0706DA98AB00DC4841 = { 
    244                 fRef = 1A224C3FFF42367911CA2CB7; 
    245                 isa = PBXTextBookmark; 
    246                 name = "AtherosWIFIController::setcurmode"; 
    247                 rLen = 33; 
    248                 rLoc = 44726; 
    249                 rType = 0; 
    250                 vrLen = 1353; 
    251                 vrLoc = 44148; 
    252         }; 
    253         003F2B0B06DA98AF00DC4841 = { 
    254                 fRef = 1A224C3FFF42367911CA2CB7; 
    255                 isa = PBXTextBookmark; 
    256                 name = "AtherosWIFIController::setcurmode"; 
    257                 rLen = 33; 
    258                 rLoc = 44726; 
    259                 rType = 0; 
    260                 vrLen = 1353; 
    261                 vrLoc = 44148; 
    262         }; 
    263         003F2B0E06DA98D200DC4841 = { 
    264                 fRef = 1A224C3FFF42367911CA2CB7; 
    265                 isa = PBXTextBookmark; 
    266                 name = "AtherosWIFIController::setcurmode"; 
    267                 rLen = 33; 
    268                 rLoc = 44726; 
    269                 rType = 0; 
    270                 vrLen = 1353; 
    271                 vrLoc = 44148; 
    272         }; 
    273         005DA63D06C8D83700ACF77D = { 
    274                 fRef = 089C167EFE841241C02AAC07; 
    275                 isa = PBXTextBookmark; 
    276                 name = "English: 7"; 
    277                 rLen = 0; 
    278                 rLoc = 245; 
    279                 rType = 0; 
    280                 vrLen = 245; 
    281                 vrLoc = 0; 
    282         }; 
    2833        005DA64006C8D83700ACF77D = { 
    2844                fRef = 089C167EFE841241C02AAC07; 
     
    31030                indexTemplatePath = ""; 
    31131                isa = PBXCodeSenseManager; 
    312                 usesDefaults = 1; 
     32                usesDefaults = 0; 
    31333                wantsCodeCompletion = 1; 
    31434                wantsCodeCompletionAutoSuggestions = 1; 
     
    33555                }; 
    33656        }; 
    337         008D9F5806D908B7007FD27E = { 
    338                 fRef = 1A224C3FFF42367911CA2CB7; 
    339                 isa = PBXTextBookmark; 
    340                 rLen = 1; 
    341                 rLoc = 450; 
    342                 rType = 1; 
    343         }; 
    344         008D9F6206D90924007FD27E = { 
    345                 fRef = 1A224C3FFF42367911CA2CB7; 
    346                 isa = PBXTextBookmark; 
    347                 name = "AtherosWifi.cpp: 1699"; 
    348                 rLen = 0; 
    349                 rLoc = 48118; 
    350                 rType = 0; 
    351                 vrLen = 1504; 
    352                 vrLoc = 47091; 
    353         }; 
    354         008F87DF06D90BD2005E3361 = { 
    355                 fRef = 1A224C3FFF42367911CA2CB7; 
    356                 isa = PBXTextBookmark; 
    357                 name = "AtherosWifi.cpp: 1699"; 
    358                 rLen = 0; 
    359                 rLoc = 48118; 
    360                 rType = 0; 
    361                 vrLen = 1502; 
    362                 vrLoc = 47091; 
    363         }; 
    364         008F87E006D90BD2005E3361 = { 
    365                 fRef = 1A224C3FFF42367911CA2CB7; 
    366                 isa = PBXTextBookmark; 
    367                 name = "AtherosWifi.cpp: 1699"; 
    368                 rLen = 0; 
    369                 rLoc = 48118; 
    370                 rType = 0; 
    371                 vrLen = 1502; 
    372                 vrLoc = 47091; 
    373         }; 
    374         008F87E806D90BE8005E3361 = { 
    375                 fRef = 1A224C3FFF42367911CA2CB7; 
    376                 isa = PBXTextBookmark; 
    377                 name = "AtherosWifi.cpp: 1699"; 
    378                 rLen = 0; 
    379                 rLoc = 48118; 
    380                 rType = 0; 
    381                 vrLen = 1502; 
    382                 vrLoc = 47091; 
    383         }; 
    384         008F87EB06D90C39005E3361 = { 
    385                 fRef = 1A224C3FFF42367911CA2CB7; 
    386                 isa = PBXTextBookmark; 
    387                 name = "AtherosWifi.cpp: 1699"; 
    388                 rLen = 0; 
    389                 rLoc = 48118; 
    390                 rType = 0; 
    391                 vrLen = 1502; 
    392                 vrLoc = 47091; 
    393         }; 
    394         008F87F106D90C43005E3361 = { 
    395                 fRef = 1A224C3FFF42367911CA2CB7; 
    396                 isa = PBXTextBookmark; 
    397                 name = "AtherosWifi.cpp: 1699"; 
    398                 rLen = 0; 
    399                 rLoc = 48118; 
    400                 rType = 0; 
    401                 vrLen = 1502; 
    402                 vrLoc = 47091; 
    403         }; 
    404         008F87F406D90C48005E3361 = { 
    405                 fRef = 1A224C3FFF42367911CA2CB7; 
    406                 isa = PBXTextBookmark; 
    407                 name = "AtherosWifi.cpp: 1699"; 
    408                 rLen = 0; 
    409                 rLoc = 48118; 
    410                 rType = 0; 
    411                 vrLen = 1502; 
    412                 vrLoc = 47091; 
    413         }; 
    414         008F87F706D90C4C005E3361 = { 
    415                 fRef = 1A224C3FFF42367911CA2CB7; 
    416                 isa = PBXTextBookmark; 
    417                 name = "AtherosWifi.cpp: 1699"; 
    418                 rLen = 0; 
    419                 rLoc = 48118; 
    420                 rType = 0; 
    421                 vrLen = 1502; 
    422                 vrLoc = 47091; 
    423         }; 
    424         008F87FA06D90C59005E3361 = { 
    425                 fRef = 1A224C3FFF42367911CA2CB7; 
    426                 isa = PBXTextBookmark; 
    427                 name = "AtherosWifi.cpp: 1699"; 
    428                 rLen = 0; 
    429                 rLoc = 48118; 
    430                 rType = 0; 
    431                 vrLen = 1502; 
    432                 vrLoc = 47091; 
    433         }; 
    434         008F87FD06D90C5E005E3361 = { 
    435                 fRef = 1A224C3FFF42367911CA2CB7; 
    436                 isa = PBXTextBookmark; 
    437                 name = "AtherosWifi.cpp: 1699"; 
    438                 rLen = 0; 
    439                 rLoc = 48118; 
    440                 rType = 0; 
    441                 vrLen = 1502; 
    442                 vrLoc = 47091; 
    443         }; 
    444         008F880006D90C8C005E3361 = { 
    445                 fRef = 1A224C3FFF42367911CA2CB7; 
    446                 isa = PBXTextBookmark; 
    447                 name = "AtherosWifi.cpp: 1699"; 
    448                 rLen = 0; 
    449                 rLoc = 48118; 
    450                 rType = 0; 
    451                 vrLen = 1502; 
    452                 vrLoc = 47091; 
    453         }; 
    454         008F880806D90CB6005E3361 = { 
    455                 fRef = 1A224C3FFF42367911CA2CB7; 
    456                 isa = PBXTextBookmark; 
    457                 name = "AtherosWifi.cpp: 1699"; 
    458                 rLen = 0; 
    459                 rLoc = 48118; 
    460                 rType = 0; 
    461                 vrLen = 1502; 
    462                 vrLoc = 47091; 
    463         }; 
    464         008F880B06D90CCB005E3361 = { 
    465                 fRef = 1A224C3FFF42367911CA2CB7; 
    466                 isa = PBXTextBookmark; 
    467                 name = "AtherosWifi.cpp: 1699"; 
    468                 rLen = 0; 
    469                 rLoc = 48118; 
    470                 rType = 0; 
    471                 vrLen = 1502; 
    472                 vrLoc = 47091; 
    473         }; 
    474         008F880E06D90D1D005E3361 = { 
    475                 fRef = 1A224C3FFF42367911CA2CB7; 
    476                 isa = PBXTextBookmark; 
    477                 name = "AtherosWifi.cpp: 1699"; 
    478                 rLen = 0; 
    479                 rLoc = 48118; 
    480                 rType = 0; 
    481                 vrLen = 1502; 
    482                 vrLoc = 47091; 
    483         }; 
    484         008F881106D90D5C005E3361 = { 
    485                 fRef = 1A224C3FFF42367911CA2CB7; 
    486                 isa = PBXTextBookmark; 
    487                 name = "AtherosWifi.cpp: 1699"; 
    488                 rLen = 0; 
    489                 rLoc = 48118; 
    490                 rType = 0; 
    491                 vrLen = 1502; 
    492                 vrLoc = 47091; 
    493         }; 
    494         008F881406D90D82005E3361 = { 
    495                 fRef = 1A224C3FFF42367911CA2CB7; 
    496                 isa = PBXTextBookmark; 
    497                 name = "AtherosWifi.cpp: 1699"; 
    498                 rLen = 0; 
    499                 rLoc = 48118; 
    500                 rType = 0; 
    501                 vrLen = 1502; 
    502                 vrLoc = 47091; 
    503         }; 
    504         008F881706D90E64005E3361 = { 
    505                 fRef = 1A224C3FFF42367911CA2CB7; 
    506                 isa = PBXTextBookmark; 
    507                 name = "AtherosWifi.cpp: 1699"; 
    508                 rLen = 0; 
    509                 rLoc = 48118; 
    510                 rType = 0; 
    511                 vrLen = 1502; 
    512                 vrLoc = 47091; 
    513         }; 
    514         008F881A06D9335E005E3361 = { 
    515                 fRef = 1A224C3FFF42367911CA2CB7; 
    516                 isa = PBXTextBookmark; 
    517                 name = "AtherosWifi.cpp: 1699"; 
    518                 rLen = 0; 
    519                 rLoc = 48118; 
    520                 rType = 0; 
    521                 vrLen = 1502; 
    522                 vrLoc = 47091; 
    523         }; 
    524         008F881D06D93380005E3361 = { 
    525                 fRef = 1A224C3FFF42367911CA2CB7; 
    526                 isa = PBXTextBookmark; 
    527                 name = "AtherosWifi.cpp: 1699"; 
    528                 rLen = 0; 
    529                 rLoc = 48118; 
    530                 rType = 0; 
    531                 vrLen = 1502; 
    532                 vrLoc = 47091; 
    533         }; 
    534         008F882006D9357D005E3361 = { 
    535                 fRef = 1A224C3FFF42367911CA2CB7; 
    536                 isa = PBXTextBookmark; 
    537                 name = "AtherosWifi.cpp: 1697"; 
    538                 rLen = 0; 
    539                 rLoc = 48039; 
    540                 rType = 0; 
    541                 vrLen = 1502; 
    542                 vrLoc = 47091; 
    543         }; 
    544         008F882406D935E6005E3361 = { 
    545                 fRef = 1A224C3FFF42367911CA2CB7; 
    546                 isa = PBXTextBookmark; 
    547                 name = "AtherosWifi.cpp: 1988"; 
    548                 rLen = 0; 
    549                 rLoc = 55773; 
    550                 rType = 0; 
    551                 vrLen = 1438; 
    552                 vrLoc = 47916; 
    553         }; 
    554         008F882706D93615005E3361 = { 
    555                 fRef = 1A224C3FFF42367911CA2CB7; 
    556                 isa = PBXTextBookmark; 
    557                 name = "AtherosWifi.cpp: 1578"; 
    558                 rLen = 0; 
    559                 rLoc = 44972; 
    560                 rType = 0; 
    561                 vrLen = 1265; 
    562                 vrLoc = 44375; 
    563         }; 
    564         008F882A06D936FA005E3361 = { 
    565                 fRef = 1A224C3FFF42367911CA2CB7; 
    566                 isa = PBXTextBookmark; 
    567                 name = "AtherosWIFIController::enable"; 
    568                 rLen = 29; 
    569                 rLoc = 26340; 
    570                 rType = 0; 
    571                 vrLen = 921; 
    572                 vrLoc = 25949; 
    573         }; 
    574         008F882D06D937F7005E3361 = { 
    575                 fRef = 1A224C3FFF42367911CA2CB7; 
    576                 isa = PBXTextBookmark; 
    577                 rLen = 1; 
    578                 rLoc = 1337; 
    579                 rType = 1; 
    580         }; 
    581         008F882E06D937F7005E3361 = { 
    582                 fRef = 1A224C3FFF42367911CA2CB7; 
    583                 isa = PBXTextBookmark; 
    584                 name = "AtherosWifi.cpp: 1410"; 
    585                 rLen = 0; 
    586                 rLoc = 41295; 
    587                 rType = 0; 
    588                 vrLen = 1471; 
    589                 vrLoc = 40416; 
    590         }; 
    591         008F883206D93849005E3361 = { 
    592                 fRef = 1A224C3FFF42367911CA2CB7; 
    593                 isa = PBXTextBookmark; 
    594                 name = "AtherosWifi.cpp: 1410"; 
    595                 rLen = 0; 
    596                 rLoc = 41295; 
    597                 rType = 0; 
    598                 vrLen = 1471; 
    599                 vrLoc = 40416; 
    600         }; 
    601         008F883506D938D7005E3361 = { 
    602                 fRef = 1A224C3FFF42367911CA2CB7; 
    603                 isa = PBXTextBookmark; 
    604                 name = "AtherosWifi.cpp: 1410"; 
    605                 rLen = 0; 
    606                 rLoc = 41295; 
    607                 rType = 0; 
    608                 vrLen = 1471; 
    609                 vrLoc = 40416; 
    610         }; 
    611         008F883806D939C0005E3361 = { 
    612                 fRef = 1A224C3FFF42367911CA2CB7; 
    613                 isa = PBXTextBookmark; 
    614                 name = "AtherosWifi.cpp: 1410"; 
    615                 rLen = 0; 
    616                 rLoc = 41295; 
    617                 rType = 0; 
    618                 vrLen = 1471; 
    619                 vrLoc = 40416; 
    620         }; 
    621         008F883B06D93A06005E3361 = { 
    622                 fRef = 1A224C3FFF42367911CA2CB7; 
    623                 isa = PBXTextBookmark; 
    624                 name = "AtherosWifi.cpp: 1410"; 
    625                 rLen = 0; 
    626                 rLoc = 41295; 
    627                 rType = 0; 
    628                 vrLen = 1471; 
    629                 vrLoc = 40416; 
    630         }; 
    631         008F883E06D93A64005E3361 = { 
    632                 fRef = 1A224C3FFF42367911CA2CB7; 
    633                 isa = PBXTextBookmark; 
    634                 name = "AtherosWifi.cpp: 1410"; 
    635                 rLen = 0; 
    636                 rLoc = 41295; 
    637                 rType = 0; 
    638                 vrLen = 1471; 
    639                 vrLoc = 40416; 
    640         }; 
    641         008F884406D93ACA005E3361 = { 
    642                 fRef = 1A224C3FFF42367911CA2CB7; 
    643                 isa = PBXTextBookmark; 
    644                 name = "AtherosWifi.cpp: 1410"; 
    645                 rLen = 0; 
    646                 rLoc = 41295; 
    647                 rType = 0; 
    648                 vrLen = 1471; 
    649                 vrLoc = 40416; 
    650         }; 
    651         008F884706D93B19005E3361 = { 
    652                 fRef = 1A224C3FFF42367911CA2CB7; 
    653                 isa = PBXTextBookmark; 
    654                 name = "AtherosWifi.cpp: 1410"; 
    655                 rLen = 0; 
    656                 rLoc = 41295; 
    657                 rType = 0; 
    658                 vrLen = 1471; 
    659                 vrLoc = 40416; 
    660         }; 
    661         008F886306D93B71005E3361 = { 
    662                 fRef = 1A224C3FFF42367911CA2CB7; 
    663                 isa = PBXTextBookmark; 
    664                 name = "AtherosWifi.cpp: 1410"; 
    665                 rLen = 0; 
    666                 rLoc = 41295; 
    667                 rType = 0; 
    668                 vrLen = 1471; 
    669                 vrLoc = 40416; 
    670         }; 
    671         008F886606D93C44005E3361 = { 
    672                 fRef = 1A224C3FFF42367911CA2CB7; 
    673                 isa = PBXTextBookmark; 
    674                 name = "AtherosWifi.cpp: 1410"; 
    675                 rLen = 0; 
    676                 rLoc = 41295; 
    677                 rType = 0; 
    678                 vrLen = 1471; 
    679                 vrLoc = 40416; 
    680         }; 
    681         008F887606D93CAB005E3361 = { 
    682                 fRef = 1A224C3FFF42367911CA2CB7; 
    683                 isa = PBXTextBookmark; 
    684                 name = "AtherosWifi.cpp: 1410"; 
    685                 rLen = 0; 
    686                 rLoc = 41295; 
    687                 rType = 0; 
    688                 vrLen = 1471; 
    689                 vrLoc = 40416; 
    690         }; 
    691         008F887A06D93CC4005E3361 = { 
    692                 fRef = 1A224C3FFF42367911CA2CB7; 
    693                 isa = PBXTextBookmark; 
    694                 name = "AtherosWifi.cpp: 1410"; 
    695                 rLen = 0; 
    696                 rLoc = 41295; 
    697                 rType = 0; 
    698                 vrLen = 1471; 
    699                 vrLoc = 40416; 
    700         }; 
    701         008F887D06D93D49005E3361 = { 
    702                 fRef = 1A224C3FFF42367911CA2CB7; 
    703                 isa = PBXTextBookmark; 
    704                 name = "AtherosWifi.cpp: 1416"; 
    705                 rLen = 0; 
    706                 rLoc = 41473; 
    707                 rType = 0; 
    708                 vrLen = 1471; 
    709                 vrLoc = 40416; 
    710         }; 
    711         008F888206D93D4F005E3361 = { 
    712                 fRef = 1A224C3FFF42367911CA2CB7; 
    713                 isa = PBXTextBookmark; 
    714                 name = "AtherosWifi.cpp: 1416"; 
    715                 rLen = 0; 
    716                 rLoc = 41473; 
    717                 rType = 0; 
    718                 vrLen = 1471; 
    719                 vrLoc = 40416; 
    720         }; 
    721         008F888506D93D56005E3361 = { 
    722                 fRef = 1A224C3FFF42367911CA2CB7; 
    723                 isa = PBXTextBookmark; 
    724                 name = "AtherosWifi.cpp: 1416"; 
    725                 rLen = 0; 
    726                 rLoc = 41473; 
    727                 rType = 0; 
    728                 vrLen = 1471; 
    729                 vrLoc = 40416; 
    730         }; 
    731         008F888806D93ED9005E3361 = { 
    732                 fRef = 1A224C3FFF42367911CA2CB7; 
    733                 isa = PBXTextBookmark; 
    734                 rLen = 1; 
    735                 rLoc = 1352; 
    736                 rType = 1; 
    737         }; 
    738         008F888906D93ED9005E3361 = { 
    739                 fRef = 1A224C3FFF42367911CA2CB7; 
    740                 isa = PBXTextBookmark; 
    741                 name = "AtherosWifi.cpp: 1376"; 
    742                 rLen = 0; 
    743                 rLoc = 40081; 
    744                 rType = 0; 
    745                 vrLen = 1561; 
    746                 vrLoc = 40054; 
    747         }; 
    748         008F888C06D93EEA005E3361 = { 
    749                 fRef = 1A224C3FFF42367911CA2CB7; 
    750                 isa = PBXTextBookmark; 
    751                 name = "AtherosWifi.cpp: 1422"; 
    752                 rLen = 0; 
    753                 rLoc = 41597; 
    754                 rType = 0; 
    755                 vrLen = 1561; 
    756                 vrLoc = 40054; 
    757         }; 
    758         008F888F06D93F0D005E3361 = { 
    759                 fRef = 1A224C3FFF42367911CA2CB7; 
    760                 isa = PBXTextBookmark; 
    761                 name = reset; 
    762                 rLen = 5; 
    763                 rLoc = 47306; 
    764                 rType = 0; 
    765                 vrLen = 1379; 
    766                 vrLoc = 46642; 
    767         }; 
    768         008F889206D93F3B005E3361 = { 
    769                 fRef = 1A224C3FFF42367911CA2CB7; 
    770                 isa = PBXTextBookmark; 
    771                 name = reset; 
    772                 rLen = 5; 
    773                 rLoc = 47306; 
    774                 rType = 0; 
    775                 vrLen = 1379; 
    776                 vrLoc = 46642; 
    777         }; 
    778         008F889506D9411E005E3361 = { 
    779                 fRef = 1A224C3FFF42367911CA2CB7; 
    780                 isa = PBXTextBookmark; 
    781                 name = reset; 
    782                 rLen = 5; 
    783                 rLoc = 47306; 
    784                 rType = 0; 
    785                 vrLen = 1379; 
    786                 vrLoc = 46642; 
    787         }; 
    788         008F889806D94135005E3361 = { 
    789                 fRef = 1A224C3FFF42367911CA2CB7; 
    790                 isa = PBXTextBookmark; 
    791                 name = reset; 
    792                 rLen = 5; 
    793                 rLoc = 47306; 
    794                 rType = 0; 
    795                 vrLen = 1379; 
    796                 vrLoc = 46642; 
    797         }; 
    798         008F889B06D94635005E3361 = { 
    799                 fRef = 1A224C3FFF42367911CA2CB7; 
    800                 isa = PBXTextBookmark; 
    801                 name = reset; 
    802                 rLen = 5; 
    803                 rLoc = 47306; 
    804                 rType = 0; 
    805                 vrLen = 1379; 
    806                 vrLoc = 46642; 
    807         }; 
    808         008F889E06D94643005E3361 = { 
    809                 fRef = 1A224C3FFF42367911CA2CB7; 
    810                 isa = PBXTextBookmark; 
    811                 name = reset; 
    812                 rLen = 5; 
    813                 rLoc = 47306; 
    814                 rType = 0; 
    815                 vrLen = 1379; 
    816                 vrLoc = 46642; 
    817         }; 
    818         008F88A106D9464D005E3361 = { 
    819                 fRef = 1A224C3FFF42367911CA2CB7; 
    820                 isa = PBXTextBookmark; 
    821                 name = reset; 
    822                 rLen = 5; 
    823                 rLoc = 47306; 
    824                 rType = 0; 
    825                 vrLen = 1379; 
    826                 vrLoc = 46642; 
    827         }; 
    828         008F88A506D94651005E3361 = { 
    829                 fRef = 1A224C3FFF42367911CA2CB7; 
    830                 isa = PBXTextBookmark; 
    831                 name = reset; 
    832                 rLen = 5; 
    833                 rLoc = 47306; 
    834                 rType = 0; 
    835                 vrLen = 1379; 
    836                 vrLoc = 46642; 
    837         }; 
    838         008F88A806D9465D005E3361 = { 
    839                 fRef = 1A224C3FFF42367911CA2CB7; 
    840                 isa = PBXTextBookmark; 
    841                 name = reset; 
    842                 rLen = 5; 
    843                 rLoc = 47306; 
    844                 rType = 0; 
    845                 vrLen = 1379; 
    846                 vrLoc = 46642; 
    847         }; 
    848         008F88AB06D9C589005E3361 = { 
    849                 fRef = 1A224C3FFF42367911CA2CB7; 
    850                 isa = PBXTextBookmark; 
    851                 name = reset; 
    852                 rLen = 5; 
    853                 rLoc = 47306; 
    854                 rType = 0; 
    855                 vrLen = 1379; 
    856                 vrLoc = 46642; 
    857         }; 
    858         008F88AE06D9C599005E3361 = { 
    859                 fRef = 1A224C3FFF42367911CA2CB7; 
    860                 isa = PBXTextBookmark; 
    861                 name = reset; 
    862                 rLen = 5; 
    863                 rLoc = 47306; 
    864                 rType = 0; 
    865                 vrLen = 1379; 
    866                 vrLoc = 46642; 
    867         }; 
    868         008F88B106D9CA4F005E3361 = { 
    869                 fRef = 1A224C3FFF42367911CA2CB7; 
    870                 isa = PBXTextBookmark; 
    871                 name = reset; 
    872                 rLen = 5; 
    873                 rLoc = 47306; 
    874                 rType = 0; 
    875                 vrLen = 1379; 
    876                 vrLoc = 46642; 
    877         }; 
    878         008F88B406D9CAB6005E3361 = { 
    879                 fRef = 1A224C3FFF42367911CA2CB7; 
    880                 isa = PBXTextBookmark; 
    881                 name = reset; 
    882                 rLen = 5; 
    883                 rLoc = 47306; 
    884                 rType = 0; 
    885                 vrLen = 1379; 
    886                 vrLoc = 46642; 
    887         }; 
    888         008F88B906D9CDAE005E3361 = { 
    889                 fRef = 1A224C3FFF42367911CA2CB7; 
    890                 isa = PBXTextBookmark; 
    891                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    892                 rLen = 1053; 
    893                 rLoc = 48612; 
    894                 rType = 0; 
    895                 vrLen = 1370; 
    896                 vrLoc = 48673; 
    897         }; 
    898         008F88BF06D9CE3D005E3361 = { 
    899                 fRef = 1A224C3FFF42367911CA2CB7; 
    900                 isa = PBXTextBookmark; 
    901                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    902                 rLen = 1053; 
    903                 rLoc = 48612; 
    904                 rType = 0; 
    905                 vrLen = 1370; 
    906                 vrLoc = 48673; 
    907         }; 
    908         008F88C406D9CE9C005E3361 = { 
    909                 fRef = 1A224C3FFF42367911CA2CB7; 
    910                 isa = PBXTextBookmark; 
    911                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    912                 rLen = 1053; 
    913                 rLoc = 48612; 
    914                 rType = 0; 
    915                 vrLen = 1370; 
    916                 vrLoc = 48673; 
    917         }; 
    918         008F88C806D9CEF8005E3361 = { 
    919                 fRef = 1A224C3FFF42367911CA2CB7; 
    920                 isa = PBXTextBookmark; 
    921                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    922                 rLen = 1053; 
    923                 rLoc = 48612; 
    924                 rType = 0; 
    925                 vrLen = 1370; 
    926                 vrLoc = 48673; 
    927         }; 
    928         008F88CB06D9CF44005E3361 = { 
    929                 fRef = 1A224C3FFF42367911CA2CB7; 
    930                 isa = PBXTextBookmark; 
    931                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    932                 rLen = 1053; 
    933                 rLoc = 48612; 
    934                 rType = 0; 
    935                 vrLen = 1370; 
    936                 vrLoc = 48673; 
    937         }; 
    938         008F88CF06D9CF83005E3361 = { 
    939                 fRef = 1A224C3FFF42367911CA2CB7; 
    940                 isa = PBXTextBookmark; 
    941                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    942                 rLen = 1053; 
    943                 rLoc = 48612; 
    944                 rType = 0; 
    945                 vrLen = 1370; 
    946                 vrLoc = 48673; 
    947         }; 
    948         008F88D306D9D01C005E3361 = { 
    949                 fRef = 1A224C3FFF42367911CA2CB7; 
    950                 isa = PBXTextBookmark; 
    951                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    952                 rLen = 1053; 
    953                 rLoc = 48612; 
    954                 rType = 0; 
    955                 vrLen = 1370; 
    956                 vrLoc = 48673; 
    957         }; 
    958         008F88D706D9D036005E3361 = { 
    959                 fRef = 1A224C3FFF42367911CA2CB7; 
    960                 isa = PBXTextBookmark; 
    961                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    962                 rLen = 1053; 
    963                 rLoc = 48612; 
    964                 rType = 0; 
    965                 vrLen = 1370; 
    966                 vrLoc = 48673; 
    967         }; 
    968         008F88DA06D9D054005E3361 = { 
    969                 fRef = 1A224C3FFF42367911CA2CB7; 
    970                 isa = PBXTextBookmark; 
    971                 name = "IOReturn AtherosWIFIController::getFrequency(UInt32* freq) {\n    *freq = chans[_activeChannelIndex].channel;\n    return kIOReturnSuccess;\n}\n\nIOReturn AtherosWIFIController::setFrequency(UInt32 freq) {\n    unsigned int i;\n    UInt32 flags;\n    \n    switch(_activeIEEEMode) {\n        case _modulationMode80211a:\n            flags = CHANNEL_A;\n            break;\n        case _modulationMode80211b:\n            flags = CHANNEL_B;\n            break;\n        case _modulationMode80211g:\n            flags = CHANNEL_G;\n            break;\n        case _modulationModeAtherosT:\n            flags = CHANNEL_T;\n            break;\n        default:\n            IOLog(\"Warning: Unknown IEEE mode! Defaulting to 802.11b\\n\");\n            flags = CHANNEL_B;\n            break;\n    }\n    \n    for (i = 0; i < nchans; i++) {\n        if (chans[i].channel == freq && (chans[i].channelFlags & flags) == flags) break;\n    }\n    if (i == nchans) return kIOReturnUnsupportedMode;\n    \n    _activeChannelIndex = i;\n    \n    if (_enabled) reset();\n    return kIOReturnSuccess;\n}\n"; 
    972                 rLen = 1053; 
    973                 rLoc = 48612; 
    974                 rType = 0; 
    975                 vrLen = 1370; 
    976                 vrLoc = 48673; 
    977         }; 
    978         008F88DE06D9D101005E3361 = { 
    979                 fRef = 1A224C3FFF42367911CA2CB7; 
    980                 isa = PBXTextBookmark; 
    981                 name = "AtherosWifi.cpp: 1759"; 
    982                 rLen = 0; 
    983                 rLoc = 49801; 
    984                 rType = 0; 
    985                 vrLen = 1370; 
    986                 vrLoc = 48673; 
    987         }; 
    988         008F88E206D9D1D1005E3361 = { 
    989                 fRef = 1A224C3FFF42367911CA2CB7; 
    990                 isa = PBXTextBookmark; 
    991                 name = "AtherosWIFIController::ath_rate_ctl_reset"; 
    992                 rLen = 41; 
    993                 rLoc = 56262; 
    994                 rType = 0; 
    995                 vrLen = 1471; 
    996                 vrLoc = 51658; 
    997         }; 
    998         008F88E606D9D1D4005E3361 = { 
    999                 fRef = 1A224C3FFF42367911CA2CB7; 
    1000                 isa = PBXTextBookmark; 
    1001                 name = "AtherosWIFIController::ath_rate_ctl_reset"; 
    1002                 rLen = 41; 
    1003                 rLoc = 56262; 
    1004                 rType = 0; 
    1005                 vrLen = 1471; 
    1006                 vrLoc = 51658; 
    1007         }; 
    1008         008F88E906D9D1DD005E3361 = { 
    1009                 fRef = 1A224C3FFF42367911CA2CB7; 
    1010                 isa = PBXTextBookmark; 
    1011                 name = "AtherosWIFIController::ath_rate_ctl_reset"; 
    1012                 rLen = 41; 
    1013                 rLoc = 56262; 
    1014                 rType = 0; 
    1015                 vrLen = 1471; 
    1016                 vrLoc = 51658; 
    1017         }; 
    1018         008F88ED06D9D798005E3361 = { 
    1019                 fRef = 1A224C3FFF42367911CA2CB7; 
    1020                 isa = PBXTextBookmark; 
    1021                 name = HAL_EINPROGRESS; 
    1022                 rLen = 15; 
    1023                 rLoc = 30772; 
    1024                 rType = 0; 
    1025                 vrLen = 1575; 
    1026                 vrLoc = 29412; 
    1027         }; 
    1028         008F88EE06D9D798005E3361 = { 
    1029                 fRef = 1A224C3FFF42367911CA2CB7; 
    1030                 isa = PBXTextBookmark; 
    1031                 name = "AtherosWifi.cpp: 1179"; 
    1032                 rLen = 0; 
    1033                 rLoc = 34882; 
    1034                 rType = 0; 
    1035                 vrLen = 1530; 
    1036                 vrLoc = 33577; 
    1037         }; 
    1038         008F88F406D9D7A1005E3361 = { 
    1039                 fRef = 1A224C3FFF42367911CA2CB7; 
    1040                 isa = PBXTextBookmark; 
    1041                 name = "AtherosWifi.cpp: 1179"; 
    1042                 rLen = 0; 
    1043                 rLoc = 34882; 
    1044                 rType = 0; 
    1045                 vrLen = 1530; 
    1046                 vrLoc = 33577; 
    1047         }; 
    1048         008F88FE06D9DB87005E3361 = { 
    1049                 fRef = 1A224C3FFF42367911CA2CB7; 
    1050                 isa = PBXTextBookmark; 
    1051                 name = ah_procRxDesc; 
    1052                 rLen = 13; 
    1053                 rLoc = 30558; 
    1054                 rType = 0; 
    1055                 vrLen = 1638; 
    1056                 vrLoc = 30162; 
    1057         }; 
    1058         008F88FF06D9DB87005E3361 = { 
    1059                 fRef = 1A224C3FFF42367911CA2CB7; 
    1060                 isa = PBXTextBookmark; 
    1061                 name = getPhysicalAddress; 
    1062                 rLen = 18; 
    1063                 rLoc = 30604; 
    1064                 rType = 0; 
    1065                 vrLen = 1638; 
    1066                 vrLoc = 30162; 
    1067         }; 
    1068         008F890806D9DB8A005E3361 = { 
    1069                 fRef = 1A224C3FFF42367911CA2CB7; 
    1070                 isa = PBXTextBookmark; 
    1071                 name = getPhysicalAddress; 
    1072                 rLen = 18; 
    1073                 rLoc = 30604; 
    1074                 rType = 0; 
    1075                 vrLen = 1638; 
    1076                 vrLoc = 30162; 
    1077         }; 
    1078         008F890B06D9DBC7005E3361 = { 
    1079                 fRef = 1A224C3FFF42367911CA2CB7; 
    1080                 isa = PBXTextBookmark; 
    1081                 name = getPhysicalAddress; 
    1082                 rLen = 18; 
    1083                 rLoc = 30604; 
    1084                 rType = 0; 
    1085                 vrLen = 1638; 
    1086                 vrLoc = 30162; 
    1087         }; 
    1088         008F890F06D9DBEC005E3361 = { 
    1089                 fRef = 1A224C3FFF42367911CA2CB7; 
    1090                 isa = PBXTextBookmark; 
    1091                 name = getPhysicalAddress; 
    1092                 rLen = 18; 
    1093                 rLoc = 30604; 
    1094                 rType = 0; 
    1095                 vrLen = 1638; 
    1096                 vrLoc = 30162; 
    1097         }; 
    1098         008F891206D9DC0D005E3361 = { 
    1099                 fRef = 1A224C3FFF42367911CA2CB7; 
    1100                 isa = PBXTextBookmark; 
    1101                 name = getPhysicalAddress; 
    1102                 rLen = 18; 
    1103                 rLoc = 30604; 
    1104                 rType = 0; 
    1105                 vrLen = 1638; 
    1106                 vrLoc = 30162; 
    1107         }; 
    1108         008F891806D9DC25005E3361 = { 
    1109                 fRef = 1A224C3FFF42367911CA2CB7; 
    1110                 isa = PBXTextBookmark; 
    1111                 name = getPhysicalAddress; 
    1112                 rLen = 18; 
    1113                 rLoc = 30604; 
    1114                 rType = 0; 
    1115                 vrLen = 1638; 
    1116                 vrLoc = 30162; 
    1117         }; 
    1118         008F891B06D9DC32005E3361 = { 
    1119                 fRef = 1A224C3FFF42367911CA2CB7; 
    1120                 isa = PBXTextBookmark; 
    1121                 name = "AtherosWifi.cpp: 1082"; 
    1122                 rLen = 0; 
    1123                 rLoc = 31287; 
    1124                 rType = 0; 
    1125                 vrLen = 1638; 
    1126                 vrLoc = 30162; 
    1127         }; 
    1128         008F891E06D9DC5C005E3361 = { 
    1129                 fRef = 1A224C3FFF42367911CA2CB7; 
    1130                 isa = PBXTextBookmark; 
    1131                 name = "AtherosWifi.cpp: 1082"; 
    1132                 rLen = 0; 
    1133                 rLoc = 31287; 
    1134                 rType = 0; 
    1135                 vrLen = 1638; 
    1136                 vrLoc = 30162; 
    1137         }; 
    1138         008F892106D9DC63005E3361 = { 
    1139                 fRef = 1A224C3FFF42367911CA2CB7; 
    1140                 isa = PBXTextBookmark; 
    1141                 name = "AtherosWifi.cpp: 1082"; 
    1142                 rLen = 0; 
    1143                 rLoc = 31287; 
    1144                 rType = 0; 
    1145                 vrLen = 1638; 
    1146                 vrLoc = 30162; 
    1147         }; 
    1148         008F892406D9DC92005E3361 = { 
    1149                 fRef = 1A224C3FFF42367911CA2CB7; 
    1150                 isa = PBXTextBookmark; 
    1151                 name = "AtherosWifi.cpp: 1082"; 
    1152                 rLen = 0; 
    1153                 rLoc = 31287; 
    1154                 rType = 0; 
    1155                 vrLen = 1638; 
    1156                 vrLoc = 30162; 
    1157         }; 
    1158         008F892706D9DD4C005E3361 = { 
    1159                 fRef = 1A224C3FFF42367911CA2CB7; 
    1160                 isa = PBXTextBookmark; 
    1161                 name = "AtherosWifi.cpp: 1082"; 
    1162                 rLen = 0; 
    1163                 rLoc = 31287; 
    1164                 rType = 0; 
    1165                 vrLen = 1638; 
    1166                 vrLoc = 30162; 
    1167         }; 
    1168         008F892B06D9DD72005E3361 = { 
    1169                 fRef = 1A224C3FFF42367911CA2CB7; 
    1170                 isa = PBXTextBookmark; 
    1171                 name = "AtherosWifi.cpp: 1082"; 
    1172                 rLen = 0; 
    1173                 rLoc = 31287; 
    1174                 rType = 0; 
    1175                 vrLen = 1638; 
    1176                 vrLoc = 30162; 
    1177         }; 
    1178         008F893106D9DDD3005E3361 = { 
    1179                 fRef = 1A224C3FFF42367911CA2CB7; 
    1180                 isa = PBXTextBookmark; 
    1181                 name = "AtherosWifi.cpp: 1082"; 
    1182                 rLen = 0; 
    1183                 rLoc = 31287; 
    1184                 rType = 0; 
    1185                 vrLen = 1638; 
    1186                 vrLoc = 30162; 
    1187         }; 
    1188         008F893406D9DE5C005E3361 = { 
    1189                 fRef = 1A224C3FFF42367911CA2CB7; 
    1190                 isa = PBXTextBookmark; 
    1191                 name = "AtherosWifi.cpp: 1082"; 
    1192                 rLen = 0; 
    1193                 rLoc = 31287; 
    1194                 rType = 0; 
    1195                 vrLen = 1638; 
    1196                 vrLoc = 30162; 
    1197         }; 
    1198         008F893706D9DEA3005E3361 = { 
    1199                 fRef = 1A224C3FFF42367911CA2CB7; 
    1200                 isa = PBXTextBookmark; 
    1201                 name = "AtherosWifi.cpp: 1082"; 
    1202                 rLen = 0; 
    1203                 rLoc = 31287; 
    1204                 rType = 0; 
    1205                 vrLen = 1638; 
    1206                 vrLoc = 30162; 
    1207         }; 
    1208         008F893D06D9DF02005E3361 = { 
    1209                 fRef = 1A224C3FFF42367911CA2CB7; 
    1210                 isa = PBXTextBookmark; 
    1211                 name = "AtherosWifi.cpp: 1082"; 
    1212                 rLen = 0; 
    1213                 rLoc = 31287; 
    1214                 rType = 0; 
    1215                 vrLen = 1638; 
    1216                 vrLoc = 30162; 
    1217         }; 
    1218         008F894006D9DF53005E3361 = { 
    1219                 fRef = 1A224C3FFF42367911CA2CB7; 
    1220                 isa = PBXTextBookmark; 
    1221                 name = "AtherosWifi.cpp: 1082"; 
    1222                 rLen = 0; 
    1223                 rLoc = 31287; 
    1224                 rType = 0; 
    1225                 vrLen = 1638; 
    1226                 vrLoc = 30162; 
    1227         }; 
    1228         008F894306D9DF71005E3361 = { 
    1229                 fRef = 1A224C3FFF42367911CA2CB7; 
    1230                 isa = PBXTextBookmark; 
    1231                 name = "AtherosWifi.cpp: 1082"; 
    1232                 rLen = 0; 
    1233                 rLoc = 31287; 
    1234                 rType = 0; 
    1235                 vrLen = 1638; 
    1236                 vrLoc = 30162; 
    1237         }; 
    1238         008F894906D9DF98005E3361 = { 
    1239                 fRef = 1A224C3FFF42367911CA2CB7; 
    1240                 isa = PBXTextBookmark; 
    1241                 name = "AtherosWifi.cpp: 1082"; 
    1242                 rLen = 0; 
    1243                 rLoc = 31287; 
    1244                 rType = 0; 
    1245                 vrLen = 1638; 
    1246                 vrLoc = 30162; 
    1247         }; 
    1248         008F894C06D9DFD1005E3361 = { 
    1249                 fRef = 1A224C3FFF42367911CA2CB7; 
    1250                 isa = PBXTextBookmark; 
    1251                 name = "AtherosWifi.cpp: 1082"; 
    1252                 rLen = 0; 
    1253                 rLoc = 31287; 
    1254                 rType = 0; 
    1255                 vrLen = 1638; 
    1256                 vrLoc = 30162; 
    1257         }; 
    1258         008F894F06D9E034005E3361 = { 
    1259                 fRef = 1A224C3FFF42367911CA2CB7; 
    1260                 isa = PBXTextBookmark; 
    1261                 name = "AtherosWifi.cpp: 1082"; 
    1262                 rLen = 0; 
    1263                 rLoc = 31287; 
    1264                 rType = 0; 
    1265                 vrLen = 1638; 
    1266                 vrLoc = 30162; 
    1267         }; 
    1268         008F895306D9E086005E3361 = { 
    1269                 fRef = 1A224C3FFF42367911CA2CB7; 
    1270                 isa = PBXTextBookmark; 
    1271                 name = "AtherosWifi.cpp: 1082"; 
    1272                 rLen = 0; 
    1273                 rLoc = 31287; 
    1274                 rType = 0; 
    1275                 vrLen = 1638; 
    1276                 vrLoc = 30162; 
    1277         }; 
    1278         008F895606D9E172005E3361 = { 
    1279                 fRef = 1A224C3FFF42367911CA2CB7; 
    1280                 isa = PBXTextBookmark; 
    1281                 name = "AtherosWifi.cpp: 1082"; 
    1282                 rLen = 0; 
    1283                 rLoc = 31287; 
    1284                 rType = 0; 
    1285                 vrLen = 1638; 
    1286                 vrLoc = 30162; 
    1287         }; 
    1288         008F895A06D9E237005E3361 = { 
    1289                 fRef = 1A224C3FFF42367911CA2CB7; 
    1290                 isa = PBXTextBookmark; 
    1291                 name = "AtherosWifi.cpp: 1082"; 
    1292                 rLen = 0; 
    1293                 rLoc = 31287; 
    1294                 rType = 0; 
    1295                 vrLen = 1638; 
    1296                 vrLoc = 30162; 
    1297         }; 
    1298         008F895D06D9E338005E3361 = { 
    1299                 fRef = 1A224C3FFF42367911CA2CB7; 
    1300                 isa = PBXTextBookmark; 
    1301                 name = "AtherosWifi.cpp: 1082"; 
    1302                 rLen = 0; 
    1303                 rLoc = 31287; 
    1304                 rType = 0; 
    1305                 vrLen = 1638; 
    1306                 vrLoc = 30162; 
    1307         }; 
    1308         008F896106D9E34A005E3361 = { 
    1309                 fRef = 1A224C3FFF42367911CA2CB7; 
    1310                 isa = PBXTextBookmark; 
    1311                 name = "AtherosWifi.cpp: 1082"; 
    1312                 rLen = 0; 
    1313                 rLoc = 31287; 
    1314                 rType = 0; 
    1315                 vrLen = 1638; 
    1316                 vrLoc = 30162; 
    1317         }; 
    1318         008F896406D9E3DC005E3361 = { 
    1319                 fRef = 1A224C3FFF42367911CA2CB7; 
    1320                 isa = PBXTextBookmark; 
    1321                 name = "AtherosWifi.cpp: 1082"; 
    1322                 rLen = 0; 
    1323                 rLoc = 31287; 
    1324                 rType = 0; 
    1325                 vrLen = 1638; 
    1326                 vrLoc = 30162; 
    1327         }; 
    1328         008F896A06D9E406005E3361 = { 
    1329                 fRef = 1A224C3FFF42367911CA2CB7; 
    1330                 isa = PBXTextBookmark; 
    1331                 name = "AtherosWifi.cpp: 1082"; 
    1332                 rLen = 0; 
    1333                 rLoc = 31287; 
    1334                 rType = 0; 
    1335                 vrLen = 1638; 
    1336                 vrLoc = 30162; 
    1337         }; 
    1338         008F896D06D9E4AD005E3361 = { 
    1339                 fRef = 1A224C3FFF42367911CA2CB7; 
    1340                 isa = PBXTextBookmark; 
    1341                 name = "AtherosWifi.cpp: 1082"; 
    1342                 rLen = 0; 
    1343                 rLoc = 31287; 
    1344                 rType = 0; 
    1345                 vrLen = 1638; 
    1346                 vrLoc = 30162; 
    1347         }; 
    1348         008F897106D9E4CC005E3361 = { 
    1349                 fRef = 1A224C3FFF42367911CA2CB7; 
    1350                 isa = PBXTextBookmark; 
    1351                 name = "AtherosWifi.cpp: 1082"; 
    1352                 rLen = 0; 
    1353                 rLoc = 31287; 
    1354                 rType = 0; 
    1355                 vrLen = 1638; 
    1356                 vrLoc = 30162; 
    1357         }; 
    1358         008F897406D9E500005E3361 = { 
    1359                 fRef = 1A224C3FFF42367911CA2CB7; 
    1360                 isa = PBXTextBookmark; 
    1361                 name = "AtherosWifi.cpp: 1082"; 
    1362                 rLen = 0; 
    1363                 rLoc = 31287; 
    1364                 rType = 0; 
    1365                 vrLen = 1638; 
    1366                 vrLoc = 30162; 
    1367         }; 
    1368         008F897706D9E50F005E3361 = { 
    1369                 fRef = 1A224C3FFF42367911CA2CB7; 
    1370                 isa = PBXTextBookmark; 
    1371                 name = "AtherosWifi.cpp: 1082"; 
    1372                 rLen = 0; 
    1373                 rLoc = 31287; 
    1374                 rType = 0; 
    1375                 vrLen = 1638; 
    1376                 vrLoc = 30162; 
    1377         }; 
    1378         008F897A06D9E516005E3361 = { 
    1379                 fRef = 1A224C3FFF42367911CA2CB7; 
    1380                 isa = PBXTextBookmark; 
    1381                 name = "AtherosWifi.cpp: 1082"; 
    1382                 rLen = 0; 
    1383                 rLoc = 31287; 
    1384                 rType = 0; 
    1385                 vrLen = 1638; 
    1386                 vrLoc = 30162; 
    1387         }; 
    1388         008F898006D9E54C005E3361 = { 
    1389                 fRef = 1A224C3FFF42367911CA2CB7; 
    1390                 isa = PBXTextBookmark; 
    1391                 name = "AtherosWifi.cpp: 1082"; 
    1392                 rLen = 0; 
    1393                 rLoc = 31287; 
    1394                 rType = 0; 
    1395                 vrLen = 1638; 
    1396                 vrLoc = 30162; 
    1397         }; 
    1398         008F898306D9E559005E3361 = { 
    1399                 fRef = 1A224C3FFF42367911CA2CB7; 
    1400                 isa = PBXTextBookmark; 
    1401                 name = "AtherosWifi.cpp: 1082"; 
    1402                 rLen = 0; 
    1403                 rLoc = 31287; 
    1404                 rType = 0; 
    1405                 vrLen = 1638; 
    1406                 vrLoc = 30162; 
    1407         }; 
    1408         008F898606D9E563005E3361 = { 
    1409                 fRef = 1A224C3FFF42367911CA2CB7; 
    1410                 isa = PBXTextBookmark; 
    1411                 name = "AtherosWifi.cpp: 1082"; 
    1412                 rLen = 0; 
    1413                 rLoc = 31287; 
    1414                 rType = 0; 
    1415                 vrLen = 1638; 
    1416                 vrLoc = 30162; 
    1417         }; 
    1418         008F898906D9E5A0005E3361 = { 
    1419                 fRef = 1A224C3FFF42367911CA2CB7; 
    1420                 isa = PBXTextBookmark; 
    1421                 name = "AtherosWifi.cpp: 1082"; 
    1422                 rLen = 0; 
    1423                 rLoc = 31287; 
    1424                 rType = 0; 
    1425                 vrLen = 1638; 
    1426                 vrLoc = 30162; 
    1427         }; 
    1428         008F898D06D9E5AB005E3361 = { 
    1429                 fRef = 1A224C3FFF42367911CA2CB7; 
    1430                 isa = PBXTextBookmark; 
    1431                 name = "AtherosWifi.cpp: 1082"; 
    1432                 rLen = 0; 
    1433                 rLoc = 31287; 
    1434                 rType = 0; 
    1435                 vrLen = 1638; 
    1436                 vrLoc = 30162; 
    1437         }; 
    1438         008F899506D9E615005E3361 = { 
    1439                 fRef = 1A224C3FFF42367911CA2CB7; 
    1440                 isa = PBXTextBookmark; 
    1441                 name = "AtherosWifi.cpp: 1082"; 
    1442                 rLen = 0; 
    1443                 rLoc = 31287; 
    1444                 rType = 0; 
    1445                 vrLen = 1638; 
    1446                 vrLoc = 30162; 
    1447         }; 
    1448         008F899D06D9E618005E3361 = { 
    1449                 fRef = 1A224C3FFF42367911CA2CB7; 
    1450                 isa = PBXTextBookmark; 
    1451                 name = "AtherosWifi.cpp: 1082"; 
    1452                 rLen = 0; 
    1453                 rLoc = 31287; 
    1454                 rType = 0; 
    1455                 vrLen = 1638; 
    1456                 vrLoc = 30162; 
    1457         }; 
    1458         008F89A106D9E61B005E3361 = { 
    1459                 fRef = 1A224C3FFF42367911CA2CB7; 
    1460                 isa = PBXTextBookmark; 
    1461                 name = "AtherosWifi.cpp: 1082"; 
    1462                 rLen = 0; 
    1463                 rLoc = 31287; 
    1464                 rType = 0; 
    1465                 vrLen = 1638; 
    1466                 vrLoc = 30162; 
    1467         }; 
    1468         008F89A506D9E636005E3361 = { 
    1469                 fRef = 1A224C3FFF42367911CA2CB7; 
    1470                 isa = PBXTextBookmark; 
    1471                 name = "AtherosWifi.cpp: 1082"; 
    1472                 rLen = 0; 
    1473                 rLoc = 31287; 
    1474                 rType = 0; 
    1475                 vrLen = 1638; 
    1476                 vrLoc = 30162; 
    1477         }; 
    1478         008F89A806D9E6B5005E3361 = { 
    1479                 fRef = 1A224C3FFF42367911CA2CB7; 
    1480                 isa = PBXTextBookmark; 
    1481                 name = "AtherosWifi.cpp: 1082"; 
    1482                 rLen = 0; 
    1483                 rLoc = 31287; 
    1484                 rType = 0; 
    1485                 vrLen = 1638; 
    1486                 vrLoc = 30162; 
    1487         }; 
    1488         008F89AD06D9E70F005E3361 = { 
    1489                 fRef = 1A224C3FFF42367911CA2CB7; 
    1490                 isa = PBXTextBookmark; 
    1491                 name = "AtherosWifi.cpp: 1082"; 
    1492                 rLen = 0; 
    1493                 rLoc = 31287; 
    1494                 rType = 0; 
    1495                 vrLen = 1638; 
    1496                 vrLoc = 30162; 
    1497         }; 
    1498         008F89B306D9E721005E3361 = { 
    1499                 fRef = 1A224C3FFF42367911CA2CB7; 
    1500                 isa = PBXTextBookmark; 
    1501                 name = "AtherosWifi.cpp: 1082"; 
    1502                 rLen = 0; 
    1503                 rLoc = 31287; 
    1504                 rType = 0; 
    1505                 vrLen = 1638; 
    1506                 vrLoc = 30162; 
    1507         }; 
    1508         008F89B706D9E7AC005E3361 = { 
    1509                 fRef = 1A224C3FFF42367911CA2CB7; 
    1510                 isa = PBXTextBookmark; 
    1511                 name = "AtherosWifi.cpp: 1082"; 
    1512                 rLen = 0; 
    1513                 rLoc = 31287; 
    1514                 rType = 0; 
    1515                 vrLen = 1638; 
    1516                 vrLoc = 30162; 
    1517         }; 
    1518         008F89BE06D9E7B1005E3361 = { 
    1519                 fRef = 1A224C3FFF42367911CA2CB7; 
    1520                 isa = PBXTextBookmark; 
    1521                 name = "AtherosWifi.cpp: 1082"; 
    1522                 rLen = 0; 
    1523                 rLoc = 31287; 
    1524                 rType = 0; 
    1525                 vrLen = 1638; 
    1526                 vrLoc = 30162; 
    1527         }; 
    1528         008F89C106D9E85A005E3361 = { 
    1529                 fRef = 1A224C3FFF42367911CA2CB7; 
    1530                 isa = PBXTextBookmark; 
    1531                 name = "AtherosWifi.cpp: 1082"; 
    1532                 rLen = 0; 
    1533                 rLoc = 31287; 
    1534                 rType = 0; 
    1535                 vrLen = 1638; 
    1536                 vrLoc = 30162; 
    1537         }; 
    1538         008F89C706D9E863005E3361 = { 
    1539                 fRef = 1A224C3FFF42367911CA2CB7; 
    1540                 isa = PBXTextBookmark; 
    1541                 name = "AtherosWifi.cpp: 1082"; 
    1542                 rLen = 0; 
    1543                 rLoc = 31287; 
    1544                 rType = 0; 
    1545                 vrLen = 1638; 
    1546                 vrLoc = 30162; 
    1547         }; 
    1548         008F89CA06D9E8EF005E3361 = { 
    1549                 fRef = 1A224C3FFF42367911CA2CB7; 
    1550                 isa = PBXTextBookmark; 
    1551                 name = "AtherosWifi.cpp: 1082"; 
    1552                 rLen = 0; 
    1553                 rLoc = 31287; 
    1554                 rType = 0; 
    1555                 vrLen = 1638; 
    1556                 vrLoc = 30162; 
    1557         }; 
    1558         008F89CD06D9E90F005E3361 = { 
    1559                 fRef = 1A224C3FFF42367911CA2CB7; 
    1560                 isa = PBXTextBookmark; 
    1561                 name = "AtherosWifi.cpp: 1082"; 
    1562                 rLen = 0; 
    1563                 rLoc = 31287; 
    1564                 rType = 0; 
    1565                 vrLen = 1638; 
    1566                 vrLoc = 30162; 
    1567         }; 
    1568         008F89D006D9E93F005E3361 = { 
    1569                 fRef = 1A224C3FFF42367911CA2CB7; 
    1570                 isa = PBXTextBookmark; 
    1571                 name = "AtherosWifi.cpp: 1082"; 
    1572                 rLen = 0; 
    1573                 rLoc = 31287; 
    1574                 rType = 0; 
    1575                 vrLen = 1638; 
    1576                 vrLoc = 30162; 
    1577         }; 
    1578         008F89D406D9E957005E3361 = { 
    1579                 fRef = 1A224C3FFF42367911CA2CB7; 
    1580                 isa = PBXTextBookmark; 
    1581                 name = "AtherosWifi.cpp: 1082"; 
    1582                 rLen = 0; 
    1583                 rLoc = 31287; 
    1584                 rType = 0; 
    1585                 vrLen = 1638; 
    1586                 vrLoc = 30162; 
    1587         }; 
    1588         008F89D706D9E9B0005E3361 = { 
    1589                 fRef = 1A224C3FFF42367911CA2CB7; 
    1590                 isa = PBXTextBookmark; 
    1591                 name = "AtherosWifi.cpp: 1082"; 
    1592                 rLen = 0; 
    1593                 rLoc = 31287; 
    1594                 rType = 0; 
    1595                 vrLen = 1638; 
    1596                 vrLoc = 30162; 
    1597         }; 
    1598         008F89DB06D9F3A6005E3361 = { 
    1599                 fRef = 1A224C3FFF42367911CA2CB7; 
    1600                 isa = PBXTextBookmark; 
    1601                 name = "AtherosWifi.cpp: 1140"; 
    1602                 rLen = 0; 
    1603                 rLoc = 33497; 
    1604                 rType = 0; 
    1605                 vrLen = 2137; 
    1606                 vrLoc = 32459; 
    1607         }; 
    160857        00AC719A05B1CEB00066AB78 = { 
    160958                uiCtxt = { 
     
    161261                        sepNavVisRect = "{{0, 271}, {1033, 666}}"; 
    161362                        sepNavWindowFrame = "{{15, 269}, {750, 558}}"; 
     63                }; 
     64        }; 
     65        00ECB4D60781D81D00E65193 = { 
     66                fRef = 1A224C3FFF42367911CA2CB7; 
     67                isa = PBXTextBookmark; 
     68                name = "AtherosWifi.cpp: freeTxResources"; 
     69                rLen = 0; 
     70                rLoc = 44719; 
     71                rType = 0; 
     72                vrLen = 1151; 
     73                vrLoc = 41154; 
     74        }; 
     75        00ECB4D70781D81D00E65193 = { 
     76                fRef = 089C167EFE841241C02AAC07; 
     77                isa = PBXTextBookmark; 
     78                name = "English: 7"; 
     79                rLen = 0; 
     80                rLoc = 245; 
     81                rType = 0; 
     82                vrLen = 245; 
     83                vrLoc = 0; 
     84        }; 
     85        00ECB4D80781D81D00E65193 = { 
     86                fRef = 1A224C3FFF42367911CA2CB7; 
     87                isa = PBXTextBookmark; 
     88                name = "AtherosWifi.cpp: freeTxResources"; 
     89                rLen = 0; 
     90                rLoc = 44719; 
     91                rType = 0; 
     92                vrLen = 1151; 
     93                vrLoc = 41154; 
     94        }; 
     95        00ECB4D90781D81D00E65193 = { 
     96                fRef = 089C167EFE841241C02AAC07; 
     97                isa = PBXTextBookmark; 
     98                name = "English: 7"; 
     99                rLen = 0; 
     100                rLoc = 245; 
     101                rType = 0; 
     102                vrLen = 245; 
     103                vrLoc = 0; 
     104        }; 
     105        00ECB4DF0781E69800E65193 = { 
     106                isa = PBXTargetBookmark; 
     107                trg = 089C1673FE841209C02AAC07; 
     108                uiCtxt = { 
     109                        TOCViewDetailVisibleRect = "{{0, 0}, {737, 429}}"; 
     110                        TOCViewExpandedItems = ( 
     111                                "com.apple.target-editor-pane.settings", 
     112                                "com.apple.target-editor-pane.settings.simple", 
     113                                "com.apple.target-editor-pane.info-plist", 
     114                                "com.apple.target-editor-pane.info-plist.simple", 
     115                                "com.apple.target-editor-pane.buildphases", 
     116                        ); 
     117                        TOCViewMasterVisibleRect = "{{0, 0}, {296, 429}}"; 
     118                        TOCViewSelectedItems = ( 
     119                                PBXInfoPlistExpertSettingsEditorModule, 
     120                        ); 
    1614121                }; 
    1615122        }; 
     
    1770277                                ); 
    1771278                        }; 
    1772                         PBXPerProjectTemplateStateSaveDate = 114986130; 
     279                        PBXPerProjectTemplateStateSaveDate = 125949796; 
    1773280                        PBXPrepackagedSmartGroups_v2 = ( 
    1774281                                { 
     
    2204711                                RubberWindowFrame = "0 84 1280 748 0 0 1280 832 "; 
    2205712                        }; 
    2206                         PBXWorkspaceStateSaveDate = 114986130; 
     713                        PBXWorkspaceStateSaveDate = 125949796; 
    2207714                }; 
    2208715                perUserProjectItems = { 
    2209                         003F2A9806DA8C9600DC4841 = 003F2A9806DA8C9600DC4841; 
    2210                         003F2AA806DA90CC00DC4841 = 003F2AA806DA90CC00DC4841; 
    2211                         003F2AA906DA90CC00DC4841 = 003F2AA906DA90CC00DC4841; 
    2212                         003F2AAC06DA911300DC4841 = 003F2AAC06DA911300DC4841; 
    2213                         003F2AAF06DA914F00DC4841 = 003F2AAF06DA914F00DC4841; 
    2214                         003F2AB206DA915300DC4841 = 003F2AB206DA915300DC4841; 
    2215                         003F2AB506DA919F00DC4841 = 003F2AB506DA919F00DC4841; 
    2216                         003F2AB906DA91EF00DC4841 = 003F2AB906DA91EF00DC4841; 
    2217                         003F2ABF06DA921300DC4841 = 003F2ABF06DA921300DC4841; 
    2218                         003F2AC206DA922900DC4841 = 003F2AC206DA922900DC4841; 
    2219                         003F2AC506DA928E00DC4841 = 003F2AC506DA928E00DC4841; 
    2220                         003F2ACB06DA939100DC4841 = 003F2ACB06DA939100DC4841; 
    2221                         003F2ACE06DA93E800DC4841 = 003F2ACE06DA93E800DC4841; 
    2222                         003F2AD406DA942000DC4841 = 003F2AD406DA942000DC4841; 
    2223                         003F2AD806DA945F00DC4841 = 003F2AD806DA945F00DC4841; 
    2224                         003F2ADB06DA946000DC4841 = 003F2ADB06DA946000DC4841; 
    2225                         003F2AE306DA948700DC4841 = 003F2AE306DA948700DC4841; 
    2226                         003F2AE606DA949900DC4841 = 003F2AE606DA949900DC4841; 
    2227                         003F2AEA06DA94DE00DC4841 = 003F2AEA06DA94DE00DC4841; 
    2228                         003F2AED06DA950700DC4841 = 003F2AED06DA950700DC4841; 
    2229                         003F2AF006DA956800DC4841 = 003F2AF006DA956800DC4841; 
    2230                         003F2AF606DA959D00DC4841 = 003F2AF606DA959D00DC4841; 
    2231                         003F2AFC06DA960000DC4841 = 003F2AFC06DA960000DC4841; 
    2232                         003F2B0206DA966900DC4841 = 003F2B0206DA966900DC4841; 
    2233                         003F2B0706DA98AB00DC4841 = 003F2B0706DA98AB00DC4841; 
    2234                         003F2B0B06DA98AF00DC4841 = 003F2B0B06DA98AF00DC4841; 
    2235                         003F2B0E06DA98D200DC4841 = 003F2B0E06DA98D200DC4841; 
    2236                         005DA63D06C8D83700ACF77D = 005DA63D06C8D83700ACF77D; 
    2237716                        005DA64006C8D83700ACF77D = 005DA64006C8D83700ACF77D; 
    2238717                        005DAA7906C92F9E00ACF77D = 005DAA7906C92F9E00ACF77D; 
    2239718                        005DAA7B06C92F9E00ACF77D = 005DAA7B06C92F9E00ACF77D; 
    2240                         008D9F5806D908B7007FD27E = 008D9F5806D908B7007FD27E; 
    2241                         008D9F6206D90924007FD27E = 008D9F6206D90924007FD27E; 
    2242                         008F87DF06D90BD2005E3361 = 008F87DF06D90BD2005E3361; 
    2243                         008F87E006D90BD2005E3361 = 008F87E006D90BD2005E3361; 
    2244                         008F87E806D90BE8005E3361 = 008F87E806D90BE8005E3361; 
    2245                         008F87EB06D90C39005E3361 = 008F87EB06D90C39005E3361; 
    2246                         008F87F106D90C43005E3361 = 008F87F106D90C43005E3361; 
    2247                         008F87F406D90C48005E3361 = 008F87F406D90C48005E3361; 
    2248                         008F87F706D90C4C005E3361 = 008F87F706D90C4C005E3361; 
    2249                         008F87FA06D90C59005E3361 = 008F87FA06D90C59005E3361; 
    2250                         008F87FD06D90C5E005E3361 = 008F87FD06D90C5E005E3361; 
    2251                         008F880006D90C8C005E3361 = 008F880006D90C8C005E3361; 
    2252                         008F880806D90CB6005E3361 = 008F880806D90CB6005E3361; 
    2253                         008F880B06D90CCB005E3361 = 008F880B06D90CCB005E3361; 
    2254                         008F880E06D90D1D005E3361 = 008F880E06D90D1D005E3361; 
    2255                         008F881106D90D5C005E3361 = 008F881106D90D5C005E3361; 
    2256                         008F881406D90D82005E3361 = 008F881406D90D82005E3361; 
    2257                         008F881706D90E64005E3361 = 008F881706D90E64005E3361; 
    2258                         008F881A06D9335E005E3361 = 008F881A06D9335E005E3361; 
    2259                         008F881D06D93380005E3361 = 008F881D06D93380005E3361; 
    2260                         008F882006D9357D005E3361 = 008F882006D9357D005E3361; 
    2261                         008F882406D935E6005E3361 = 008F882406D935E6005E3361; 
    2262                         008F882706D93615005E3361 = 008F882706D93615005E3361; 
    2263                         008F882A06D936FA005E3361 = 008F882A06D936FA005E3361; 
    2264                         008F882D06D937F7005E3361 = 008F882D06D937F7005E3361; 
    2265                         008F882E06D937F7005E3361 = 008F882E06D937F7005E3361; 
    2266                         008F883206D93849005E3361 = 008F883206D93849005E3361; 
    2267                         008F883506D938D7005E3361 = 008F883506D938D7005E3361; 
    2268                         008F883806D939C0005E3361 = 008F883806D939C0005E3361; 
    2269                         008F883B06D93A06005E3361 = 008F883B06D93A06005E3361; 
    2270                         008F883E06D93A64005E3361 = 008F883E06D93A64005E3361; 
    2271                         008F884406D93ACA005E3361 = 008F884406D93ACA005E3361; 
    2272                         008F884706D93B19005E3361 = 008F884706D93B19005E3361; 
    2273                         008F886306D93B71005E3361 = 008F886306D93B71005E3361; 
    2274                         008F886606D93C44005E3361 = 008F886606D93C44005E3361; 
    2275                         008F887606D93CAB005E3361 = 008F887606D93CAB005E3361; 
    2276                         008F887A06D93CC4005E3361 = 008F887A06D93CC4005E3361; 
    2277                         008F887D06D93D49005E3361 = 008F887D06D93D49005E3361; 
    2278                         008F888206D93D4F005E3361 = 008F888206D93D4F005E3361; 
    2279                         008F888506D93D56005E3361 = 008F888506D93D56005E3361; 
    2280                         008F888806D93ED9005E3361 = 008F888806D93ED9005E3361; 
    2281                         008F888906D93ED9005E3361 = 008F888906D93ED9005E3361; 
    2282                         008F888C06D93EEA005E3361 = 008F888C06D93EEA005E3361; 
    2283                         008F888F06D93F0D005E3361 = 008F888F06D93F0D005E3361; 
    2284                         008F889206D93F3B005E3361 = 008F889206D93F3B005E3361; 
    2285                         008F889506D9411E005E3361 = 008F889506D9411E005E3361; 
    2286                         008F889806D94135005E3361 = 008F889806D94135005E3361; 
    2287                         008F889B06D94635005E3361 = 008F889B06D94635005E3361; 
    2288                         008F889E06D94643005E3361 = 008F889E06D94643005E3361; 
    2289                         008F88A106D9464D005E3361 = 008F88A106D9464D005E3361; 
    2290                         008F88A506D94651005E3361 = 008F88A506D94651005E3361; 
    2291                         008F88A806D9465D005E3361 = 008F88A806D9465D005E3361; 
    2292                         008F88AB06D9C589005E3361 = 008F88AB06D9C589005E3361; 
    2293                         008F88AE06D9C599005E3361 = 008F88AE06D9C599005E3361; 
    2294                         008F88B106D9CA4F005E3361 = 008F88B106D9CA4F005E3361; 
    2295                         008F88B406D9CAB6005E3361 = 008F88B406D9CAB6005E3361; 
    2296                         008F88B906D9CDAE005E3361 = 008F88B906D9CDAE005E3361; 
    2297                         008F88BF06D9CE3D005E3361 = 008F88BF06D9CE3D005E3361; 
    2298                         008F88C406D9CE9C005E3361 = 008F88C406D9CE9C005E3361; 
    2299                         008F88C806D9CEF8005E3361 = 008F88C806D9CEF8005E3361; 
    2300                         008F88CB06D9CF44005E3361 = 008F88CB06D9CF44005E3361; 
    2301                         008F88CF06D9CF83005E3361 = 008F88CF06D9CF83005E3361; 
    2302                         008F88D306D9D01C005E3361 = 008F88D306D9D01C005E3361; 
    2303                         008F88D706D9D036005E3361 = 008F88D706D9D036005E3361; 
    2304                         008F88DA06D9D054005E3361 = 008F88DA06D9D054005E3361; 
    2305                         008F88DE06D9D101005E3361 = 008F88DE06D9D101005E3361; 
    2306                         008F88E206D9D1D1005E3361 = 008F88E206D9D1D1005E3361; 
    2307                         008F88E606D9D1D4005E3361 = 008F88E606D9D1D4005E3361; 
    2308                         008F88E906D9D1DD005E3361 = 008F88E906D9D1DD005E3361; 
    2309                         008F88ED06D9D798005E3361 = 008F88ED06D9D798005E3361; 
    2310                         008F88EE06D9D798005E3361 = 008F88EE06D9D798005E3361; 
    2311                         008F88F406D9D7A1005E3361 = 008F88F406D9D7A1005E3361; 
    2312                         008F88FE06D9DB87005E3361 = 008F88FE06D9DB87005E3361; 
    2313                         008F88FF06D9DB87005E3361 = 008F88FF06D9DB87005E3361; 
    2314                         008F890806D9DB8A005E3361 = 008F890806D9DB8A005E3361; 
    2315                         008F890B06D9DBC7005E3361 = 008F890B06D9DBC7005E3361; 
    2316                         008F890F06D9DBEC005E3361 = 008F890F06D9DBEC005E3361; 
    2317                         008F891206D9DC0D005E3361 = 008F891206D9DC0D005E3361; 
    2318                         008F891806D9DC25005E3361 = 008F891806D9DC25005E3361; 
    2319                         008F891B06D9DC32005E3361 = 008F891B06D9DC32005E3361; 
    2320                         008F891E06D9DC5C005E3361 = 008F891E06D9DC5C005E3361; 
    2321                         008F892106D9DC63005E3361 = 008F892106D9DC63005E3361; 
    2322                         008F892406D9DC92005E3361 = 008F892406D9DC92005E3361; 
    2323                         008F892706D9DD4C005E3361 = 008F892706D9DD4C005E3361; 
    2324                         008F892B06D9DD72005E3361 = 008F892B06D9DD72005E3361; 
    2325                         008F893106D9DDD3005E3361 = 008F893106D9DDD3005E3361; 
    2326                         008F893406D9DE5C005E3361 = 008F893406D9DE5C005E3361; 
    2327                         008F893706D9DEA3005E3361 = 008F893706D9DEA3005E3361; 
    2328                         008F893D06D9DF02005E3361 = 008F893D06D9DF02005E3361; 
    2329                         008F894006D9DF53005E3361 = 008F894006D9DF53005E3361; 
    2330                         008F894306D9DF71005E3361 = 008F894306D9DF71005E3361; 
    2331                         008F894906D9DF98005E3361 = 008F894906D9DF98005E3361; 
    2332                         008F894C06D9DFD1005E3361 = 008F894C06D9DFD1005E3361; 
    2333                         008F894F06D9E034005E3361 = 008F894F06D9E034005E3361; 
    2334                         008F895306D9E086005E3361 = 008F895306D9E086005E3361; 
    2335                         008F895606D9E172005E3361 = 008F895606D9E172005E3361; 
    2336                         008F895A06D9E237005E3361 = 008F895A06D9E237005E3361; 
    2337                         008F895D06D9E338005E3361 = 008F895D06D9E338005E3361; 
    2338                         008F896106D9E34A005E3361 = 008F896106D9E34A005E3361; 
    2339                         008F896406D9E3DC005E3361 = 008F896406D9E3DC005E3361; 
    2340                         008F896A06D9E406005E3361 = 008F896A06D9E406005E3361; 
    2341                         008F896D06D9E4AD005E3361 = 008F896D06D9E4AD005E3361; 
    2342                         008F897106D9E4CC005E3361 = 008F897106D9E4CC005E3361; 
    2343                         008F897406D9E500005E3361 = 008F897406D9E500005E3361; 
    2344                         008F897706D9E50F005E3361 = 008F897706D9E50F005E3361; 
    2345                         008F897A06D9E516005E3361 = 008F897A06D9E516005E3361; 
    2346                         008F898006D9E54C005E3361 = 008F898006D9E54C005E3361; 
    2347                         008F898306D9E559005E3361 = 008F898306D9E559005E3361; 
    2348                         008F898606D9E563005E3361 = 008F898606D9E563005E3361; 
    2349                         008F898906D9E5A0005E3361 = 008F898906D9E5A0005E3361; 
    2350                         008F898D06D9E5AB005E3361 = 008F898D06D9E5AB005E3361; 
    2351                         008F899506D9E615005E3361 = 008F899506D9E615005E3361; 
    2352                         008F899D06D9E618005E3361 = 008F899D06D9E618005E3361; 
    2353                         008F89A106D9E61B005E3361 = 008F89A106D9E61B005E3361; 
    2354                         008F89A506D9E636005E3361 = 008F89A506D9E636005E3361; 
    2355                         008F89A806D9E6B5005E3361 = 008F89A806D9E6B5005E3361; 
    2356                         008F89AD06D9E70F005E3361 = 008F89AD06D9E70F005E3361; 
    2357                         008F89B306D9E721005E3361 = 008F89B306D9E721005E3361; 
    2358                         008F89B706D9E7AC005E3361 = 008F89B706D9E7AC005E3361; 
    2359                         008F89BE06D9E7B1005E3361 = 008F89BE06D9E7B1005E3361; 
    2360                         008F89C106D9E85A005E3361 = 008F89C106D9E85A005E3361; 
    2361                         008F89C706D9E863005E3361 = 008F89C706D9E863005E3361; 
    2362                         008F89CA06D9E8EF005E3361 = 008F89CA06D9E8EF005E3361; 
    2363                         008F89CD06D9E90F005E3361 = 008F89CD06D9E90F005E3361; 
    2364                         008F89D006D9E93F005E3361 = 008F89D006D9E93F005E3361; 
    2365                         008F89D406D9E957005E3361 = 008F89D406D9E957005E3361; 
    2366                         008F89D706D9E9B0005E3361 = 008F89D706D9E9B0005E3361; 
    2367                         008F89DB06D9F3A6005E3361 = 008F89DB06D9F3A6005E3361; 
     719                        00ECB4D60781D81D00E65193 = 00ECB4D60781D81D00E65193; 
     720                        00ECB4D70781D81D00E65193 = 00ECB4D70781D81D00E65193; 
     721                        00ECB4D80781D81D00E65193 = 00ECB4D80781D81D00E65193; 
     722                        00ECB4D90781D81D00E65193 = 00ECB4D90781D81D00E65193; 
     723                        00ECB4DF0781E69800E65193 = 00ECB4DF0781E69800E65193; 
    2368724                        00FF588306C6268C006C7F1E = 00FF588306C6268C006C7F1E; 
    2369725                        00FF588406C6268C006C7F1E = 00FF588406C6268C006C7F1E; 
Note: See TracChangeset for help on using the changeset viewer.